From 0e9b041baa582fc153ce1438c8f9e1e6b4366fcb Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Fri, 3 Jul 2009 00:24:36 +0000 Subject: [PATCH] 2009-07-03 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc * harbour/source/compiler/harbour.y * harbour/source/compiler/harbour.yyc % reduced INASSING definition - thanks to Xavi for information * harbour/source/compiler/hbopt.c ! fixed stupid bug in logical expression optimization - thanks to Randy for self contain example * harbour/include/hbapi.h * harbour/include/hbmacro.h * harbour/include/hbexprb.c * harbour/source/vm/macro.c * harbour/source/vm/hvm.c * harbour/source/macro/macro.y * harbour/source/macro/macro.yyc + added direct support for pushing references to macro expressions. It resolves the problem with Clipper compatibility (thanks to Alex for information and example) in code like: m->var := {0} &("var[1]") += 10 and also many other things, f.e. now Harbour can cleanly compile and execute this code: proc main local s m->o := errorNew() s:="o:tries" ? m->o:tries ? &s ? &(s+"+=2") ? m->o:tries ? &(s+":=3") ? m->o:tries ? &s := 4 ? m->o:tries &s -= 2 ? m->o:tries &s++ ? m->o:tries ? s := "o" m->o := 1 ? &s &s := &s + 4 ? &s ? &s += 5 ? --&s ? s := "o[2]" m->o := { 1, 2 } ? &s &s := &s + 4 ? &s ? &s += 5 ? --&s return * harbour/utils/hbtest/Makefile * force hbtest compilation with line numbers - information about line numbers is important part of this test. --- harbour/ChangeLog | 64 + harbour/include/hbapi.h | 1 + harbour/include/hbexprb.c | 7 + harbour/include/hbmacro.h | 1 + harbour/source/compiler/harbour.y | 37 +- harbour/source/compiler/harbour.yyc | 4816 +++++++++++++-------------- harbour/source/compiler/hbopt.c | 11 +- harbour/source/macro/macro.y | 41 +- harbour/source/macro/macro.yyc | 1348 ++++---- harbour/source/vm/hvm.c | 19 +- harbour/source/vm/macro.c | 38 + harbour/utils/hbtest/Makefile | 2 + 12 files changed, 3081 insertions(+), 3304 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index cf7a6d268a..17b63ff173 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,70 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-07-03 02:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/macro/macro.y + * harbour/source/macro/macro.yyc + * harbour/source/compiler/harbour.y + * harbour/source/compiler/harbour.yyc + % reduced INASSING definition - thanks to Xavi for information + + * harbour/source/compiler/hbopt.c + ! fixed stupid bug in logical expression optimization - thanks to Randy + for self contain example + + * harbour/include/hbapi.h + * harbour/include/hbmacro.h + * harbour/include/hbexprb.c + * harbour/source/vm/macro.c + * harbour/source/vm/hvm.c + * harbour/source/macro/macro.y + * harbour/source/macro/macro.yyc + + added direct support for pushing references to macro expressions. + It resolves the problem with Clipper compatibility (thanks to Alex + for information and example) in code like: + m->var := {0} + &("var[1]") += 10 + and also many other things, f.e. now Harbour can cleanly compile + and execute this code: + proc main + local s + m->o := errorNew() + s:="o:tries" + ? m->o:tries + ? &s + ? &(s+"+=2") + ? m->o:tries + ? &(s+":=3") + ? m->o:tries + ? + &s := 4 + ? m->o:tries + &s -= 2 + ? m->o:tries + &s++ + ? m->o:tries + ? + s := "o" + m->o := 1 + ? &s + &s := &s + 4 + ? &s + ? &s += 5 + ? --&s + ? + s := "o[2]" + m->o := { 1, 2 } + ? &s + &s := &s + 4 + ? &s + ? &s += 5 + ? --&s + return + + * harbour/utils/hbtest/Makefile + * force hbtest compilation with line numbers - information about line + numbers is important part of this test. + 2009-07-02 09:24 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbxbp/tests/demoxbp.prg * contrib/hbxbp/xbpstatic.prg diff --git a/harbour/include/hbapi.h b/harbour/include/hbapi.h index 2aa3f442c2..ba93c42c43 100644 --- a/harbour/include/hbapi.h +++ b/harbour/include/hbapi.h @@ -1066,6 +1066,7 @@ typedef void * HB_MACRO_PTR; #endif extern void hb_macroGetValue( HB_ITEM_PTR pItem, BYTE iContext, BYTE flags ); /* retrieve results of a macro expansion */ extern void hb_macroSetValue( HB_ITEM_PTR pItem, BYTE flags ); /* assign a value to a macro-expression item */ +extern void hb_macroPushReference( HB_ITEM_PTR pItem ); /* push reference to given expression */ extern void hb_macroTextValue( HB_ITEM_PTR pItem ); /* macro text substitution */ extern void hb_macroPushSymbol( HB_ITEM_PTR pItem ); /* handle a macro function calls, e.g. var := ¯o() */ extern void hb_macroRun( HB_MACRO_PTR pMacro ); /* executes pcode compiled by macro compiler */ diff --git a/harbour/include/hbexprb.c b/harbour/include/hbexprb.c index 20a1e88bf1..14d3861936 100644 --- a/harbour/include/hbexprb.c +++ b/harbour/include/hbexprb.c @@ -836,6 +836,13 @@ static HB_EXPR_FUNC( hb_compExprUseRef ) break; } } + else if( pExp->ExprType == HB_ET_VARIABLE ) + { + pExp->ExprType = HB_ET_VARREF; + HB_EXPR_USE( pExp, HB_EA_PUSH_PCODE ); + pExp->ExprType = HB_ET_VARIABLE; + break; + } else if( pExp->ExprType == HB_ET_ALIASVAR ) { if( pExp->value.asAlias.pVar->ExprType == HB_ET_VARIABLE && diff --git a/harbour/include/hbmacro.h b/harbour/include/hbmacro.h index 4c122fbbab..2b99c4ed02 100644 --- a/harbour/include/hbmacro.h +++ b/harbour/include/hbmacro.h @@ -78,6 +78,7 @@ HB_EXTERN_BEGIN #define HB_MACRO_GEN_TYPE 8 /* check the type of expression (from TYPE() function) */ #define HB_MACRO_GEN_PARE 16 /* generate parentesized list */ #define HB_MACRO_GEN_LIST 32 /* generate push operation for every comma separated expressions */ +#define HB_MACRO_GEN_REFER 64 /* generate PUSH pcodes for reference to given expression */ #define HB_MACRO_DEALLOCATE 128 /* macro structure is allocated on the heap */ /* values returned from compilation process diff --git a/harbour/source/compiler/harbour.y b/harbour/source/compiler/harbour.y index 7a2e87f6bc..383a813130 100644 --- a/harbour/source/compiler/harbour.y +++ b/harbour/source/compiler/harbour.y @@ -951,49 +951,28 @@ ExprUnary : NOT Expression { $$ = hb_compExprNewNot( $2, HB_CO | '+' Expression %prec UNARY { $$ = $2; } ; -ExprAssign : NumValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | NilValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | DateValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | TimeStampValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | LiteralValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | CodeBlock INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Logical INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | SelfValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Array INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | ArrayAt INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Hash INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | AliasVar INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | AliasExpr INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | MacroVar INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | MacroExpr INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Variable INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | VariableAt INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | PareExpList INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | IfInline INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | FunCall INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | ObjectData INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | ObjectMethod INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } +ExprEqual : LeftExpression '=' Expression %prec INASSIGN { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } ; -ExprEqual : LeftExpression '=' Expression %prec INASSIGN { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } +ExprAssign : LeftExpression INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } ; -ExprPlusEq : LeftExpression PLUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewPlusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprPlusEq : LeftExpression PLUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewPlusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprMinusEq : LeftExpression MINUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMinusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprMinusEq : LeftExpression MINUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMinusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprMultEq : LeftExpression MULTEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMultEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprMultEq : LeftExpression MULTEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMultEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprDivEq : LeftExpression DIVEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewDivEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprDivEq : LeftExpression DIVEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewDivEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprModEq : LeftExpression MODEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewModEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprModEq : LeftExpression MODEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewModEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprExpEq : LeftExpression EXPEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewExpEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprExpEq : LeftExpression EXPEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewExpEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; ExprOperEq : ExprPlusEq diff --git a/harbour/source/compiler/harbour.yyc b/harbour/source/compiler/harbour.yyc index 12756b8e84..9639caf3f7 100644 --- a/harbour/source/compiler/harbour.yyc +++ b/harbour/source/compiler/harbour.yyc @@ -710,18 +710,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 295 +#define YYFINAL 281 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 8763 +#define YYLAST 8680 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 134 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 241 /* YYNRULES -- Number of rules. */ -#define YYNRULES 632 +#define YYNRULES 611 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1012 +#define YYNSTATES 956 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -812,35 +812,33 @@ static const yytype_uint16 yyprhs[] = 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 895, 898, 901, 904, 907, 910, 914, 918, 922, 926, 930, 934, 938, - 942, 946, 950, 954, 958, 962, 966, 970, 974, 978, - 982, 986, 990, 994, 998, 1002, 1006, 1010, 1014, 1018, - 1022, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1042, 1046, - 1050, 1054, 1058, 1062, 1066, 1070, 1074, 1078, 1082, 1086, - 1090, 1094, 1098, 1102, 1106, 1109, 1112, 1116, 1121, 1123, - 1127, 1128, 1133, 1134, 1136, 1138, 1142, 1145, 1150, 1152, - 1156, 1157, 1158, 1164, 1165, 1171, 1173, 1177, 1181, 1184, - 1193, 1196, 1197, 1202, 1203, 1208, 1209, 1215, 1216, 1221, - 1223, 1227, 1229, 1233, 1235, 1238, 1243, 1247, 1250, 1251, - 1257, 1261, 1264, 1267, 1271, 1276, 1277, 1283, 1286, 1291, - 1292, 1295, 1296, 1301, 1304, 1309, 1310, 1319, 1320, 1326, - 1330, 1335, 1339, 1340, 1348, 1350, 1354, 1356, 1359, 1361, - 1364, 1365, 1372, 1373, 1377, 1378, 1380, 1382, 1386, 1388, - 1392, 1394, 1397, 1401, 1407, 1412, 1418, 1426, 1430, 1435, - 1442, 1448, 1455, 1464, 1466, 1468, 1470, 1472, 1474, 1476, - 1478, 1480, 1483, 1487, 1491, 1496, 1497, 1498, 1505, 1506, - 1511, 1512, 1513, 1520, 1521, 1522, 1530, 1532, 1534, 1536, - 1540, 1544, 1547, 1552, 1554, 1556, 1558, 1559, 1563, 1565, - 1568, 1569, 1570, 1577, 1578, 1579, 1587, 1588, 1589, 1595, - 1596, 1602, 1603, 1604, 1612, 1614, 1616, 1618, 1620, 1621, - 1622, 1623, 1636, 1638, 1640, 1641, 1644, 1647, 1649, 1652, - 1654, 1657, 1659, 1661, 1663, 1667, 1670, 1672, 1674, 1678, - 1679, 1680, 1681, 1692, 1693, 1695, 1696, 1701, 1704, 1706, - 1708, 1710, 1711, 1716, 1718, 1721, 1722, 1728, 1729, 1736, - 1738, 1741, 1742, 1743, 1749, 1750, 1751, 1752, 1753, 1765, - 1767, 1769, 1770, 1773, 1774, 1778, 1780, 1781, 1785, 1789, - 1791, 1794, 1796, 1798, 1802, 1805, 1806, 1809, 1811, 1814, - 1816, 1819, 1823, 1825, 1827, 1829, 1831, 1833, 1834, 1841, - 1843, 1845, 1847 + 942, 944, 946, 948, 950, 952, 954, 958, 962, 966, + 970, 974, 978, 982, 986, 990, 994, 998, 1002, 1006, + 1010, 1014, 1018, 1022, 1025, 1028, 1032, 1037, 1039, 1043, + 1044, 1049, 1050, 1052, 1054, 1058, 1061, 1066, 1068, 1072, + 1073, 1074, 1080, 1081, 1087, 1089, 1093, 1097, 1100, 1109, + 1112, 1113, 1118, 1119, 1124, 1125, 1131, 1132, 1137, 1139, + 1143, 1145, 1149, 1151, 1154, 1159, 1163, 1166, 1167, 1173, + 1177, 1180, 1183, 1187, 1192, 1193, 1199, 1202, 1207, 1208, + 1211, 1212, 1217, 1220, 1225, 1226, 1235, 1236, 1242, 1246, + 1251, 1255, 1256, 1264, 1266, 1270, 1272, 1275, 1277, 1280, + 1281, 1288, 1289, 1293, 1294, 1296, 1298, 1302, 1304, 1308, + 1310, 1313, 1317, 1323, 1328, 1334, 1342, 1346, 1351, 1358, + 1364, 1371, 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, + 1396, 1399, 1403, 1407, 1412, 1413, 1414, 1421, 1422, 1427, + 1428, 1429, 1436, 1437, 1438, 1446, 1448, 1450, 1452, 1456, + 1460, 1463, 1468, 1470, 1472, 1474, 1475, 1479, 1481, 1484, + 1485, 1486, 1493, 1494, 1495, 1503, 1504, 1505, 1511, 1512, + 1518, 1519, 1520, 1528, 1530, 1532, 1534, 1536, 1537, 1538, + 1539, 1552, 1554, 1556, 1557, 1560, 1563, 1565, 1568, 1570, + 1573, 1575, 1577, 1579, 1583, 1586, 1588, 1590, 1594, 1595, + 1596, 1597, 1608, 1609, 1611, 1612, 1617, 1620, 1622, 1624, + 1626, 1627, 1632, 1634, 1637, 1638, 1644, 1645, 1652, 1654, + 1657, 1658, 1659, 1665, 1666, 1667, 1668, 1669, 1681, 1683, + 1685, 1686, 1689, 1690, 1694, 1696, 1697, 1701, 1705, 1707, + 1710, 1712, 1714, 1718, 1721, 1722, 1725, 1727, 1730, 1732, + 1735, 1739, 1741, 1743, 1745, 1747, 1749, 1750, 1757, 1759, + 1761, 1763 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -864,7 +862,7 @@ static const yytype_int16 yyrhs[] = 145, -1, 289, 159, -1, 253, 159, -1, 203, 159, -1, 199, 159, -1, 214, 159, -1, 191, 159, -1, 193, 159, -1, 251, 159, -1, 224, 159, -1, 223, - 159, -1, 234, 159, -1, 227, 159, -1, 226, 159, + 159, -1, 234, 159, -1, 226, 159, -1, 227, 159, -1, 367, 159, -1, 63, 159, -1, -1, 63, 151, 217, 374, -1, 26, 159, -1, 44, 159, -1, 6, 159, -1, -1, 6, 152, 217, 374, -1, -1, -1, @@ -925,7 +923,7 @@ static const yytype_int16 yyrhs[] = 182, -1, 184, -1, 186, -1, 198, -1, 199, -1, 191, -1, 193, -1, 200, -1, 203, -1, 203, 147, -1, 253, -1, 210, -1, 210, 147, -1, 214, -1, - 214, 147, -1, 226, -1, 234, -1, 223, -1, 224, + 214, 147, -1, 227, -1, 234, -1, 223, -1, 224, -1, 225, -1, 235, -1, 236, -1, 237, -1, 216, -1, 189, -1, 251, -1, 189, 147, -1, 251, 147, -1, 204, -1, 106, -1, 217, -1, -1, 217, -1, @@ -937,100 +935,92 @@ static const yytype_int16 yyrhs[] = 203, -1, 253, -1, 210, -1, 214, -1, 34, -1, 35, -1, 221, 222, -1, 34, 217, -1, 35, 217, -1, 29, 217, -1, 115, 217, -1, 114, 217, -1, - 169, 9, 217, -1, 173, 9, 217, -1, 170, 9, - 217, -1, 171, 9, 217, -1, 175, 9, 217, -1, - 246, 9, 217, -1, 178, 9, 217, -1, 180, 9, - 217, -1, 182, 9, 217, -1, 184, 9, 217, -1, - 186, 9, 217, -1, 198, 9, 217, -1, 199, 9, - 217, -1, 191, 9, 217, -1, 193, 9, 217, -1, - 189, 9, 217, -1, 200, 9, 217, -1, 251, 9, - 217, -1, 253, 9, 217, -1, 203, 9, 217, -1, - 210, 9, 217, -1, 214, 9, 217, -1, 221, 110, - 217, -1, 221, 54, 217, -1, 221, 55, 217, -1, - 221, 56, 217, -1, 221, 57, 217, -1, 221, 60, - 217, -1, 221, 59, 217, -1, 228, -1, 229, -1, - 230, -1, 231, -1, 232, -1, 233, -1, 217, 114, - 217, -1, 217, 115, 217, -1, 217, 116, 217, -1, - 217, 117, 217, -1, 217, 118, 217, -1, 217, 58, - 217, -1, 217, 27, 217, -1, 217, 28, 217, -1, - 217, 31, 217, -1, 217, 111, 217, -1, 217, 112, - 217, -1, 217, 49, 217, -1, 217, 50, 217, -1, - 217, 32, 217, -1, 217, 33, 217, -1, 217, 113, - 217, -1, 217, 110, 217, -1, 239, 131, -1, 132, - 218, -1, 239, 125, 218, -1, 239, 131, 132, 218, - -1, 209, -1, 240, 125, 209, -1, -1, 96, 242, - 243, 133, -1, -1, 106, -1, 244, -1, 244, 125, - 106, -1, 168, 145, -1, 244, 125, 168, 145, -1, - 217, -1, 245, 125, 217, -1, -1, -1, 241, 247, - 245, 248, 129, -1, -1, 241, 374, 249, 165, 129, - -1, 217, -1, 250, 125, 217, -1, 126, 250, 127, - -1, 251, 36, -1, 13, 126, 217, 125, 207, 125, - 207, 127, -1, 253, 36, -1, -1, 11, 256, 260, - 374, -1, -1, 12, 257, 260, 374, -1, -1, 108, - 12, 258, 260, 374, -1, -1, 53, 259, 273, 374, - -1, 263, -1, 260, 125, 263, -1, 262, -1, 261, - 125, 262, -1, 263, -1, 191, 145, -1, 191, 145, - 9, 217, -1, 191, 265, 146, -1, 168, 145, -1, - -1, 168, 145, 264, 9, 217, -1, 168, 265, 146, - -1, 266, 131, -1, 132, 217, -1, 266, 125, 217, - -1, 266, 131, 132, 217, -1, -1, 51, 268, 269, - 270, 374, -1, 168, 145, -1, 269, 125, 168, 145, - -1, -1, 52, 168, -1, -1, 42, 272, 273, 374, - -1, 168, 145, -1, 273, 125, 168, 145, -1, -1, - 83, 168, 126, 275, 284, 127, 145, 374, -1, -1, - 83, 168, 276, 279, 374, -1, 85, 168, 374, -1, - 85, 168, 168, 374, -1, 86, 280, 374, -1, -1, - 86, 128, 145, 277, 278, 129, 374, -1, 282, -1, - 278, 125, 282, -1, 280, -1, 279, 280, -1, 282, - -1, 279, 282, -1, -1, 168, 126, 281, 284, 127, - 145, -1, -1, 168, 283, 145, -1, -1, 287, -1, - 288, -1, 287, 125, 288, -1, 286, -1, 285, 125, - 286, -1, 219, -1, 168, 145, -1, 122, 168, 145, - -1, 122, 168, 126, 285, 127, -1, 287, 125, 168, - 145, -1, 287, 125, 122, 168, 145, -1, 287, 125, - 122, 168, 126, 285, 127, -1, 84, 168, 145, -1, - 84, 122, 168, 145, -1, 84, 122, 168, 126, 285, - 127, -1, 288, 125, 84, 168, 145, -1, 288, 125, - 84, 122, 168, 145, -1, 288, 125, 84, 122, 168, - 126, 285, 127, -1, 290, -1, 303, -1, 318, -1, - 324, -1, 354, -1, 336, -1, 341, -1, 371, -1, - 291, 301, -1, 291, 294, 301, -1, 291, 296, 301, - -1, 291, 296, 294, 301, -1, -1, -1, 14, 250, - 292, 374, 293, 165, -1, -1, 15, 374, 295, 165, - -1, -1, -1, 16, 297, 250, 374, 298, 165, -1, - -1, -1, 296, 16, 299, 250, 374, 300, 165, -1, - 302, -1, 18, -1, 17, -1, 308, 309, 304, -1, - 308, 314, 304, -1, 308, 304, -1, 308, 309, 314, - 304, -1, 305, -1, 40, -1, 17, -1, -1, 37, - 307, 374, -1, 306, -1, 306, 164, -1, -1, -1, - 38, 310, 250, 374, 311, 165, -1, -1, -1, 309, - 38, 312, 250, 374, 313, 165, -1, -1, -1, 39, - 315, 374, 316, 165, -1, -1, 314, 39, 317, 374, - 165, -1, -1, -1, 321, 250, 374, 319, 165, 320, - 322, -1, 43, -1, 323, -1, 41, -1, 17, -1, - -1, -1, -1, 45, 220, 328, 217, 325, 47, 250, - 329, 326, 374, 327, 330, -1, 110, -1, 9, -1, - -1, 48, 250, -1, 165, 331, -1, 46, -1, 46, - 168, -1, 17, -1, 17, 168, -1, 168, -1, 198, - -1, 332, -1, 333, 125, 332, -1, 122, 168, -1, - 217, -1, 334, -1, 335, 125, 334, -1, -1, -1, - -1, 98, 333, 52, 335, 337, 340, 338, 374, 339, - 330, -1, -1, 99, -1, -1, 347, 342, 348, 343, - -1, 347, 343, -1, 344, -1, 101, -1, 17, -1, - -1, 100, 346, 217, 374, -1, 345, -1, 345, 164, - -1, -1, 38, 217, 349, 374, 165, -1, -1, 348, - 38, 217, 350, 374, 165, -1, 351, -1, 348, 351, - -1, -1, -1, 39, 352, 374, 353, 165, -1, -1, - -1, -1, -1, 62, 355, 360, 374, 165, 356, 363, - 357, 361, 358, 359, -1, 67, -1, 17, -1, -1, - 69, 217, -1, -1, 362, 374, 165, -1, 66, -1, - -1, 364, 374, 165, -1, 365, 374, 165, -1, 64, - -1, 65, 168, -1, 191, -1, 193, -1, 68, 366, - 368, -1, 97, 368, -1, -1, 69, 369, -1, 125, - -1, 125, 370, -1, 370, -1, 369, 125, -1, 369, - 125, 370, -1, 168, -1, 208, -1, 204, -1, 216, - -1, 251, -1, -1, 102, 217, 374, 372, 165, 373, - -1, 103, -1, 17, -1, 123, -1, 124, -1 + 221, 110, 217, -1, 221, 9, 217, -1, 221, 54, + 217, -1, 221, 55, 217, -1, 221, 56, 217, -1, + 221, 57, 217, -1, 221, 60, 217, -1, 221, 59, + 217, -1, 228, -1, 229, -1, 230, -1, 231, -1, + 232, -1, 233, -1, 217, 114, 217, -1, 217, 115, + 217, -1, 217, 116, 217, -1, 217, 117, 217, -1, + 217, 118, 217, -1, 217, 58, 217, -1, 217, 27, + 217, -1, 217, 28, 217, -1, 217, 31, 217, -1, + 217, 111, 217, -1, 217, 112, 217, -1, 217, 49, + 217, -1, 217, 50, 217, -1, 217, 32, 217, -1, + 217, 33, 217, -1, 217, 113, 217, -1, 217, 110, + 217, -1, 239, 131, -1, 132, 218, -1, 239, 125, + 218, -1, 239, 131, 132, 218, -1, 209, -1, 240, + 125, 209, -1, -1, 96, 242, 243, 133, -1, -1, + 106, -1, 244, -1, 244, 125, 106, -1, 168, 145, + -1, 244, 125, 168, 145, -1, 217, -1, 245, 125, + 217, -1, -1, -1, 241, 247, 245, 248, 129, -1, + -1, 241, 374, 249, 165, 129, -1, 217, -1, 250, + 125, 217, -1, 126, 250, 127, -1, 251, 36, -1, + 13, 126, 217, 125, 207, 125, 207, 127, -1, 253, + 36, -1, -1, 11, 256, 260, 374, -1, -1, 12, + 257, 260, 374, -1, -1, 108, 12, 258, 260, 374, + -1, -1, 53, 259, 273, 374, -1, 263, -1, 260, + 125, 263, -1, 262, -1, 261, 125, 262, -1, 263, + -1, 191, 145, -1, 191, 145, 9, 217, -1, 191, + 265, 146, -1, 168, 145, -1, -1, 168, 145, 264, + 9, 217, -1, 168, 265, 146, -1, 266, 131, -1, + 132, 217, -1, 266, 125, 217, -1, 266, 131, 132, + 217, -1, -1, 51, 268, 269, 270, 374, -1, 168, + 145, -1, 269, 125, 168, 145, -1, -1, 52, 168, + -1, -1, 42, 272, 273, 374, -1, 168, 145, -1, + 273, 125, 168, 145, -1, -1, 83, 168, 126, 275, + 284, 127, 145, 374, -1, -1, 83, 168, 276, 279, + 374, -1, 85, 168, 374, -1, 85, 168, 168, 374, + -1, 86, 280, 374, -1, -1, 86, 128, 145, 277, + 278, 129, 374, -1, 282, -1, 278, 125, 282, -1, + 280, -1, 279, 280, -1, 282, -1, 279, 282, -1, + -1, 168, 126, 281, 284, 127, 145, -1, -1, 168, + 283, 145, -1, -1, 287, -1, 288, -1, 287, 125, + 288, -1, 286, -1, 285, 125, 286, -1, 219, -1, + 168, 145, -1, 122, 168, 145, -1, 122, 168, 126, + 285, 127, -1, 287, 125, 168, 145, -1, 287, 125, + 122, 168, 145, -1, 287, 125, 122, 168, 126, 285, + 127, -1, 84, 168, 145, -1, 84, 122, 168, 145, + -1, 84, 122, 168, 126, 285, 127, -1, 288, 125, + 84, 168, 145, -1, 288, 125, 84, 122, 168, 145, + -1, 288, 125, 84, 122, 168, 126, 285, 127, -1, + 290, -1, 303, -1, 318, -1, 324, -1, 354, -1, + 336, -1, 341, -1, 371, -1, 291, 301, -1, 291, + 294, 301, -1, 291, 296, 301, -1, 291, 296, 294, + 301, -1, -1, -1, 14, 250, 292, 374, 293, 165, + -1, -1, 15, 374, 295, 165, -1, -1, -1, 16, + 297, 250, 374, 298, 165, -1, -1, -1, 296, 16, + 299, 250, 374, 300, 165, -1, 302, -1, 18, -1, + 17, -1, 308, 309, 304, -1, 308, 314, 304, -1, + 308, 304, -1, 308, 309, 314, 304, -1, 305, -1, + 40, -1, 17, -1, -1, 37, 307, 374, -1, 306, + -1, 306, 164, -1, -1, -1, 38, 310, 250, 374, + 311, 165, -1, -1, -1, 309, 38, 312, 250, 374, + 313, 165, -1, -1, -1, 39, 315, 374, 316, 165, + -1, -1, 314, 39, 317, 374, 165, -1, -1, -1, + 321, 250, 374, 319, 165, 320, 322, -1, 43, -1, + 323, -1, 41, -1, 17, -1, -1, -1, -1, 45, + 220, 328, 217, 325, 47, 250, 329, 326, 374, 327, + 330, -1, 110, -1, 9, -1, -1, 48, 250, -1, + 165, 331, -1, 46, -1, 46, 168, -1, 17, -1, + 17, 168, -1, 168, -1, 198, -1, 332, -1, 333, + 125, 332, -1, 122, 168, -1, 217, -1, 334, -1, + 335, 125, 334, -1, -1, -1, -1, 98, 333, 52, + 335, 337, 340, 338, 374, 339, 330, -1, -1, 99, + -1, -1, 347, 342, 348, 343, -1, 347, 343, -1, + 344, -1, 101, -1, 17, -1, -1, 100, 346, 217, + 374, -1, 345, -1, 345, 164, -1, -1, 38, 217, + 349, 374, 165, -1, -1, 348, 38, 217, 350, 374, + 165, -1, 351, -1, 348, 351, -1, -1, -1, 39, + 352, 374, 353, 165, -1, -1, -1, -1, -1, 62, + 355, 360, 374, 165, 356, 363, 357, 361, 358, 359, + -1, 67, -1, 17, -1, -1, 69, 217, -1, -1, + 362, 374, 165, -1, 66, -1, -1, 364, 374, 165, + -1, 365, 374, 165, -1, 64, -1, 65, 168, -1, + 191, -1, 193, -1, 68, 366, 368, -1, 97, 368, + -1, -1, 69, 369, -1, 125, -1, 125, 370, -1, + 370, -1, 369, 125, -1, 369, 125, 370, -1, 168, + -1, 208, -1, 204, -1, 216, -1, 251, -1, -1, + 102, 217, 374, 372, 165, 373, -1, 103, -1, 17, + -1, 123, -1, 124, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1070,36 +1060,34 @@ static const yytype_uint16 yyrline[] = 903, 904, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 938, 939, 942, 945, 946, 949, - 950, 951, 954, 955, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 978, 981, 984, 987, 990, 993, - 996, 999, 1000, 1001, 1002, 1003, 1004, 1007, 1008, 1009, - 1010, 1011, 1012, 1015, 1016, 1019, 1020, 1021, 1022, 1023, - 1024, 1025, 1026, 1027, 1030, 1036, 1037, 1038, 1041, 1042, - 1045, 1045, 1051, 1052, 1053, 1054, 1057, 1058, 1061, 1062, - 1066, 1069, 1065, 1072, 1071, 1107, 1108, 1110, 1113, 1122, - 1126, 1129, 1129, 1131, 1131, 1133, 1133, 1135, 1135, 1145, - 1146, 1149, 1150, 1158, 1159, 1161, 1165, 1172, 1190, 1190, - 1219, 1225, 1228, 1229, 1230, 1233, 1233, 1240, 1241, 1244, - 1245, 1248, 1248, 1251, 1252, 1255, 1255, 1274, 1274, 1275, - 1276, 1277, 1278, 1278, 1281, 1282, 1285, 1286, 1287, 1288, - 1291, 1291, 1310, 1310, 1365, 1366, 1367, 1368, 1371, 1372, - 1375, 1378, 1379, 1380, 1381, 1382, 1383, 1386, 1387, 1388, - 1389, 1390, 1391, 1394, 1395, 1396, 1397, 1398, 1399, 1400, - 1401, 1404, 1405, 1406, 1407, 1411, 1413, 1410, 1418, 1418, - 1422, 1424, 1422, 1432, 1434, 1432, 1443, 1451, 1452, 1455, - 1459, 1463, 1466, 1472, 1479, 1480, 1483, 1483, 1486, 1487, - 1495, 1496, 1495, 1507, 1508, 1507, 1520, 1520, 1520, 1522, - 1522, 1527, 1532, 1526, 1546, 1555, 1559, 1560, 1564, 1577, - 1582, 1563, 1630, 1631, 1634, 1635, 1638, 1646, 1647, 1648, - 1649, 1652, 1653, 1656, 1657, 1660, 1661, 1664, 1665, 1670, - 1676, 1687, 1669, 1707, 1708, 1712, 1711, 1724, 1732, 1740, - 1741, 1745, 1744, 1755, 1756, 1765, 1765, 1768, 1768, 1771, - 1773, 1776, 1776, 1776, 1781, 1789, 1800, 1810, 1780, 1841, - 1842, 1845, 1846, 1854, 1855, 1858, 1867, 1868, 1869, 1872, - 1883, 1901, 1902, 1905, 1909, 1917, 1918, 1921, 1922, 1923, - 1924, 1925, 1928, 1929, 1930, 1931, 1932, 1936, 1935, 1958, - 1959, 1962, 1963 + 950, 951, 954, 957, 960, 963, 966, 969, 972, 975, + 978, 979, 980, 981, 982, 983, 986, 987, 988, 989, + 990, 991, 994, 995, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1006, 1009, 1015, 1016, 1017, 1020, 1021, 1024, + 1024, 1030, 1031, 1032, 1033, 1036, 1037, 1040, 1041, 1045, + 1048, 1044, 1051, 1050, 1086, 1087, 1089, 1092, 1101, 1105, + 1108, 1108, 1110, 1110, 1112, 1112, 1114, 1114, 1124, 1125, + 1128, 1129, 1137, 1138, 1140, 1144, 1151, 1169, 1169, 1198, + 1204, 1207, 1208, 1209, 1212, 1212, 1219, 1220, 1223, 1224, + 1227, 1227, 1230, 1231, 1234, 1234, 1253, 1253, 1254, 1255, + 1256, 1257, 1257, 1260, 1261, 1264, 1265, 1266, 1267, 1270, + 1270, 1289, 1289, 1344, 1345, 1346, 1347, 1350, 1351, 1354, + 1357, 1358, 1359, 1360, 1361, 1362, 1365, 1366, 1367, 1368, + 1369, 1370, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1383, 1384, 1385, 1386, 1390, 1392, 1389, 1397, 1397, 1401, + 1403, 1401, 1411, 1413, 1411, 1422, 1430, 1431, 1434, 1438, + 1442, 1445, 1451, 1458, 1459, 1462, 1462, 1465, 1466, 1474, + 1475, 1474, 1486, 1487, 1486, 1499, 1499, 1499, 1501, 1501, + 1506, 1511, 1505, 1525, 1534, 1538, 1539, 1543, 1556, 1561, + 1542, 1609, 1610, 1613, 1614, 1617, 1625, 1626, 1627, 1628, + 1631, 1632, 1635, 1636, 1639, 1640, 1643, 1644, 1649, 1655, + 1666, 1648, 1686, 1687, 1691, 1690, 1703, 1711, 1719, 1720, + 1724, 1723, 1734, 1735, 1744, 1744, 1747, 1747, 1750, 1752, + 1755, 1755, 1755, 1760, 1768, 1779, 1789, 1759, 1820, 1821, + 1824, 1825, 1833, 1834, 1837, 1846, 1847, 1848, 1851, 1862, + 1880, 1881, 1884, 1888, 1896, 1897, 1900, 1901, 1902, 1903, + 1904, 1907, 1908, 1909, 1910, 1911, 1915, 1914, 1937, 1938, + 1941, 1942 }; #endif @@ -1145,7 +1133,7 @@ static const char *const yytname[] = "ObjectDataAlias", "ObjectMethod", "ObjectMethodAlias", "SimpleExpression", "Expression", "ExtExpression", "EmptyExpression", "LValue", "LeftExpression", "PostOp", "ExprPostOp", "ExprPreOp", - "ExprUnary", "ExprAssign", "ExprEqual", "ExprPlusEq", "ExprMinusEq", + "ExprUnary", "ExprEqual", "ExprAssign", "ExprPlusEq", "ExprMinusEq", "ExprMultEq", "ExprDivEq", "ExprModEq", "ExprExpEq", "ExprOperEq", "ExprMath", "ExprBool", "ExprRelation", "ArrayIndex", "IndexList", "ElemList", "BlockHead", "@13", "BlockVars", "BlockVarList", @@ -1232,36 +1220,34 @@ static const yytype_uint16 yyr1[] = 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 223, 224, 224, 225, - 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 234, 234, 234, 234, 234, 235, 235, 235, - 235, 235, 235, 236, 236, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 238, 239, 239, 239, 240, 240, - 242, 241, 243, 243, 243, 243, 244, 244, 245, 245, - 247, 248, 246, 249, 246, 250, 250, 251, 252, 253, - 254, 256, 255, 257, 255, 258, 255, 259, 255, 260, - 260, 261, 261, 262, 262, 262, 262, 263, 264, 263, - 263, 265, 266, 266, 266, 268, 267, 269, 269, 270, - 270, 272, 271, 273, 273, 275, 274, 276, 274, 274, - 274, 274, 277, 274, 278, 278, 279, 279, 279, 279, - 281, 280, 283, 282, 284, 284, 284, 284, 285, 285, - 286, 287, 287, 287, 287, 287, 287, 288, 288, 288, - 288, 288, 288, 289, 289, 289, 289, 289, 289, 289, - 289, 290, 290, 290, 290, 292, 293, 291, 295, 294, - 297, 298, 296, 299, 300, 296, 301, 302, 302, 303, - 303, 303, 303, 304, 305, 305, 307, 306, 308, 308, - 310, 311, 309, 312, 313, 309, 315, 316, 314, 317, - 314, 319, 320, 318, 321, 322, 323, 323, 325, 326, - 327, 324, 328, 328, 329, 329, 330, 331, 331, 331, - 331, 332, 332, 333, 333, 334, 334, 335, 335, 337, - 338, 339, 336, 340, 340, 342, 341, 341, 343, 344, - 344, 346, 345, 347, 347, 349, 348, 350, 348, 348, - 348, 352, 353, 351, 355, 356, 357, 358, 354, 359, - 359, 360, 360, 361, 361, 362, 363, 363, 363, 364, - 365, 366, 366, 367, 367, 368, 368, 369, 369, 369, - 369, 369, 370, 370, 370, 370, 370, 372, 371, 373, - 373, 374, 374 + 225, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, + 235, 235, 236, 236, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 238, 239, 239, 239, 240, 240, 242, + 241, 243, 243, 243, 243, 244, 244, 245, 245, 247, + 248, 246, 249, 246, 250, 250, 251, 252, 253, 254, + 256, 255, 257, 255, 258, 255, 259, 255, 260, 260, + 261, 261, 262, 262, 262, 262, 263, 264, 263, 263, + 265, 266, 266, 266, 268, 267, 269, 269, 270, 270, + 272, 271, 273, 273, 275, 274, 276, 274, 274, 274, + 274, 277, 274, 278, 278, 279, 279, 279, 279, 281, + 280, 283, 282, 284, 284, 284, 284, 285, 285, 286, + 287, 287, 287, 287, 287, 287, 288, 288, 288, 288, + 288, 288, 289, 289, 289, 289, 289, 289, 289, 289, + 290, 290, 290, 290, 292, 293, 291, 295, 294, 297, + 298, 296, 299, 300, 296, 301, 302, 302, 303, 303, + 303, 303, 304, 305, 305, 307, 306, 308, 308, 310, + 311, 309, 312, 313, 309, 315, 316, 314, 317, 314, + 319, 320, 318, 321, 322, 323, 323, 325, 326, 327, + 324, 328, 328, 329, 329, 330, 331, 331, 331, 331, + 332, 332, 333, 333, 334, 334, 335, 335, 337, 338, + 339, 336, 340, 340, 342, 341, 341, 343, 344, 344, + 346, 345, 347, 347, 349, 348, 350, 348, 348, 348, + 352, 353, 351, 355, 356, 357, 358, 354, 359, 359, + 360, 360, 361, 361, 362, 363, 363, 363, 364, 365, + 366, 366, 367, 367, 368, 368, 369, 369, 369, 369, + 369, 370, 370, 370, 370, 370, 372, 371, 373, 373, + 374, 374 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1302,35 +1288,33 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 3, 4, 1, 3, - 0, 4, 0, 1, 1, 3, 2, 4, 1, 3, - 0, 0, 5, 0, 5, 1, 3, 3, 2, 8, - 2, 0, 4, 0, 4, 0, 5, 0, 4, 1, - 3, 1, 3, 1, 2, 4, 3, 2, 0, 5, - 3, 2, 2, 3, 4, 0, 5, 2, 4, 0, - 2, 0, 4, 2, 4, 0, 8, 0, 5, 3, - 4, 3, 0, 7, 1, 3, 1, 2, 1, 2, - 0, 6, 0, 3, 0, 1, 1, 3, 1, 3, - 1, 2, 3, 5, 4, 5, 7, 3, 4, 6, - 5, 6, 8, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 3, 3, 4, 0, 0, 6, 0, 4, - 0, 0, 6, 0, 0, 7, 1, 1, 1, 3, - 3, 2, 4, 1, 1, 1, 0, 3, 1, 2, - 0, 0, 6, 0, 0, 7, 0, 0, 5, 0, - 5, 0, 0, 7, 1, 1, 1, 1, 0, 0, - 0, 12, 1, 1, 0, 2, 2, 1, 2, 1, - 2, 1, 1, 1, 3, 2, 1, 1, 3, 0, - 0, 0, 10, 0, 1, 0, 4, 2, 1, 1, - 1, 0, 4, 1, 2, 0, 5, 0, 6, 1, - 2, 0, 0, 5, 0, 0, 0, 0, 11, 1, - 1, 0, 2, 0, 3, 1, 0, 3, 3, 1, - 2, 1, 1, 3, 2, 0, 2, 1, 2, 1, - 2, 3, 1, 1, 1, 1, 1, 0, 6, 1, - 1, 1, 1 + 3, 3, 3, 2, 2, 3, 4, 1, 3, 0, + 4, 0, 1, 1, 3, 2, 4, 1, 3, 0, + 0, 5, 0, 5, 1, 3, 3, 2, 8, 2, + 0, 4, 0, 4, 0, 5, 0, 4, 1, 3, + 1, 3, 1, 2, 4, 3, 2, 0, 5, 3, + 2, 2, 3, 4, 0, 5, 2, 4, 0, 2, + 0, 4, 2, 4, 0, 8, 0, 5, 3, 4, + 3, 0, 7, 1, 3, 1, 2, 1, 2, 0, + 6, 0, 3, 0, 1, 1, 3, 1, 3, 1, + 2, 3, 5, 4, 5, 7, 3, 4, 6, 5, + 6, 8, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 3, 4, 0, 0, 6, 0, 4, 0, + 0, 6, 0, 0, 7, 1, 1, 1, 3, 3, + 2, 4, 1, 1, 1, 0, 3, 1, 2, 0, + 0, 6, 0, 0, 7, 0, 0, 5, 0, 5, + 0, 0, 7, 1, 1, 1, 1, 0, 0, 0, + 12, 1, 1, 0, 2, 2, 1, 2, 1, 2, + 1, 1, 1, 3, 2, 1, 1, 3, 0, 0, + 0, 10, 0, 1, 0, 4, 2, 1, 1, 1, + 0, 4, 1, 2, 0, 5, 0, 6, 1, 2, + 0, 0, 5, 0, 0, 0, 0, 11, 1, 1, + 0, 2, 0, 3, 1, 0, 3, 3, 1, 2, + 1, 1, 3, 2, 0, 2, 1, 2, 1, 2, + 3, 1, 1, 1, 1, 1, 0, 6, 1, 1, + 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1338,934 +1322,760 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 120, 78, 145, 139, 140, 421, 423, 0, + 0, 0, 120, 78, 145, 139, 140, 400, 402, 0, 0, 147, 150, 151, 129, 127, 128, 28, 124, 80, - 0, 0, 526, 451, 544, 123, 0, 122, 121, 445, - 125, 427, 83, 594, 73, 0, 153, 0, 166, 167, - 0, 126, 0, 0, 136, 400, 615, 0, 137, 581, - 0, 141, 142, 138, 0, 631, 632, 0, 303, 0, + 0, 0, 505, 430, 523, 123, 0, 122, 121, 424, + 125, 406, 83, 573, 73, 0, 153, 0, 166, 167, + 0, 126, 0, 0, 136, 379, 594, 0, 137, 560, + 0, 141, 142, 138, 0, 610, 611, 0, 303, 0, 0, 0, 8, 6, 0, 7, 164, 312, 314, 315, 0, 313, 0, 316, 0, 0, 318, 0, 319, 0, 320, 0, 321, 0, 322, 0, 327, 0, 325, 0, 326, 0, 0, 0, 323, 324, 328, 0, 237, 330, 0, 332, 0, 0, 333, 0, 0, 96, 96, 96, - 96, 371, 372, 373, 374, 375, 376, 96, 410, 317, - 329, 0, 331, 0, 86, 87, 88, 5, 96, 493, - 0, 494, 0, 0, 495, 0, 496, 498, 499, 0, - 575, 497, 96, 500, 4, 9, 0, 77, 0, 144, + 96, 350, 351, 352, 353, 354, 355, 96, 389, 317, + 329, 0, 331, 0, 86, 87, 88, 5, 96, 472, + 0, 473, 0, 0, 474, 0, 475, 477, 478, 0, + 554, 476, 96, 479, 4, 9, 0, 77, 0, 144, 143, 0, 0, 0, 130, 132, 129, 127, 128, 124, 0, 134, 131, 123, 0, 135, 133, 136, 138, 0, 0, 0, 263, 265, 266, 264, 267, 269, 270, 272, 273, 274, 296, 277, 278, 275, 276, 279, 280, 300, - 283, 285, 295, 415, 0, 289, 290, 291, 287, 288, - 292, 293, 294, 268, 505, 297, 282, 91, 0, 116, + 283, 285, 295, 394, 0, 289, 290, 291, 287, 288, + 292, 293, 294, 268, 484, 297, 282, 91, 0, 116, 0, 118, 75, 0, 337, 338, 0, 0, 76, 164, - 312, 314, 315, 313, 316, 318, 319, 320, 321, 322, - 327, 307, 308, 306, 324, 310, 330, 309, 333, 0, - 0, 317, 311, 331, 171, 0, 0, 0, 601, 0, - 72, 611, 612, 615, 0, 457, 0, 34, 0, 0, - 94, 0, 402, 0, 614, 164, 325, 326, 562, 328, - 332, 329, 563, 0, 0, 0, 425, 0, 169, 0, - 0, 251, 0, 0, 0, 252, 245, 398, 304, 244, - 0, 256, 257, 258, 255, 1, 0, 14, 12, 13, - 11, 10, 0, 0, 165, 303, 0, 0, 216, 0, - 0, 218, 0, 219, 187, 188, 189, 190, 210, 0, - 146, 217, 194, 0, 148, 220, 195, 197, 0, 152, - 222, 196, 0, 154, 224, 199, 0, 156, 157, 200, - 0, 158, 201, 0, 161, 223, 198, 0, 225, 207, - 211, 0, 168, 303, 63, 228, 191, 212, 0, 170, - 303, 64, 229, 192, 213, 0, 0, 187, 174, 0, - 178, 0, 179, 181, 0, 180, 0, 182, 0, 183, - 0, 184, 0, 185, 173, 188, 176, 189, 177, 208, - 0, 215, 175, 0, 186, 209, 0, 226, 0, 61, - 227, 0, 235, 202, 0, 241, 60, 232, 204, 0, - 260, 303, 230, 0, 205, 0, 262, 62, 231, 206, - 334, 335, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 67, 66, 70, 69, 68, 0, 413, 0, 149, - 221, 0, 418, 65, 234, 193, 214, 0, 420, 59, - 233, 203, 58, 0, 510, 518, 517, 0, 0, 501, - 516, 103, 423, 110, 124, 101, 99, 112, 102, 0, - 0, 100, 98, 525, 530, 536, 524, 521, 523, 0, - 0, 0, 0, 580, 579, 0, 577, 578, 71, 0, - 97, 34, 0, 429, 0, 0, 339, 341, 340, 0, - 240, 47, 42, 39, 0, 40, 41, 38, 43, 45, - 52, 53, 49, 0, 50, 51, 48, 54, 271, 46, - 298, 281, 284, 286, 0, 0, 0, 0, 0, 0, + 307, 308, 306, 324, 310, 330, 309, 333, 0, 0, + 311, 331, 171, 0, 0, 0, 580, 0, 72, 590, + 591, 594, 0, 436, 0, 34, 0, 0, 94, 0, + 381, 0, 593, 164, 325, 326, 541, 329, 542, 0, + 0, 0, 404, 0, 169, 0, 0, 251, 0, 0, + 0, 252, 245, 377, 304, 244, 0, 256, 257, 258, + 255, 1, 0, 14, 12, 13, 11, 10, 0, 0, + 165, 303, 0, 216, 0, 218, 219, 187, 188, 189, + 190, 210, 146, 217, 194, 148, 220, 195, 197, 152, + 222, 196, 154, 224, 199, 156, 157, 200, 158, 201, + 161, 223, 198, 225, 207, 211, 168, 303, 63, 228, + 191, 212, 170, 303, 64, 229, 192, 213, 0, 0, + 187, 174, 0, 178, 0, 179, 181, 0, 180, 0, + 182, 0, 183, 0, 184, 0, 185, 173, 188, 176, + 189, 177, 208, 0, 215, 175, 0, 186, 209, 226, + 61, 227, 235, 202, 241, 60, 232, 204, 260, 303, + 230, 0, 205, 262, 62, 231, 206, 0, 334, 335, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 67, + 66, 69, 70, 68, 0, 392, 149, 221, 397, 65, + 234, 193, 214, 399, 59, 233, 203, 58, 0, 489, + 497, 496, 0, 0, 480, 495, 103, 402, 110, 124, + 101, 99, 112, 102, 0, 0, 100, 98, 504, 509, + 515, 503, 500, 502, 0, 0, 0, 0, 559, 558, + 0, 556, 557, 71, 0, 97, 34, 0, 408, 0, + 0, 339, 341, 340, 0, 240, 47, 42, 39, 0, + 40, 41, 38, 43, 45, 52, 53, 49, 0, 50, + 51, 48, 54, 271, 46, 298, 281, 284, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 0, 0, 89, 0, 90, 34, - 81, 431, 433, 527, 34, 0, 553, 552, 0, 172, - 34, 449, 0, 84, 0, 0, 0, 613, 0, 455, - 0, 0, 459, 462, 35, 470, 461, 0, 0, 403, - 34, 0, 404, 617, 164, 300, 623, 295, 0, 297, - 616, 619, 0, 0, 0, 627, 0, 0, 417, 159, - 246, 247, 248, 250, 240, 249, 0, 160, 303, 303, - 155, 15, 18, 20, 0, 242, 304, 342, 301, 302, - 395, 0, 394, 344, 345, 343, 346, 348, 349, 350, - 351, 352, 357, 355, 0, 356, 0, 353, 354, 358, - 361, 362, 0, 254, 363, 365, 366, 367, 368, 370, - 369, 364, 253, 408, 411, 0, 347, 359, 360, 508, - 0, 502, 513, 0, 503, 0, 0, 113, 0, 0, - 533, 519, 0, 539, 520, 541, 0, 591, 0, 589, - 79, 0, 437, 36, 0, 0, 422, 424, 303, 44, - 55, 383, 384, 385, 390, 391, 388, 389, 382, 393, - 386, 387, 392, 377, 378, 379, 380, 381, 416, 506, - 92, 117, 119, 434, 36, 0, 0, 453, 0, 452, - 548, 447, 0, 0, 0, 428, 0, 602, 0, 74, - 0, 16, 474, 472, 0, 466, 468, 460, 0, 474, - 95, 93, 406, 401, 0, 618, 620, 0, 566, 567, - 569, 564, 582, 0, 0, 259, 0, 162, 399, 0, - 0, 0, 0, 303, 236, 396, 0, 238, 239, 261, - 0, 0, 0, 0, 0, 0, 0, 504, 0, 0, - 0, 537, 0, 522, 0, 0, 585, 0, 0, 576, - 590, 442, 0, 440, 37, 0, 441, 430, 0, 0, - 0, 436, 432, 82, 34, 0, 450, 34, 446, 85, - 595, 0, 126, 0, 34, 0, 475, 476, 34, 467, - 469, 458, 472, 0, 464, 0, 405, 34, 621, 565, - 0, 573, 0, 426, 303, 19, 30, 21, 30, 243, - 397, 409, 412, 414, 509, 511, 0, 30, 104, 30, - 106, 531, 0, 0, 0, 542, 0, 592, 587, 0, - 443, 0, 303, 507, 435, 454, 0, 448, 606, 17, - 0, 34, 34, 481, 34, 0, 0, 473, 0, 0, - 34, 407, 568, 574, 570, 630, 629, 628, 163, 31, - 0, 32, 34, 0, 0, 514, 0, 0, 0, 538, - 534, 540, 0, 0, 0, 0, 439, 444, 0, 554, - 609, 0, 596, 0, 0, 34, 487, 303, 482, 0, - 0, 34, 477, 0, 465, 463, 471, 0, 0, 0, - 56, 0, 512, 0, 0, 0, 532, 0, 547, 546, - 543, 545, 586, 593, 0, 419, 0, 549, 610, 603, - 0, 0, 303, 488, 480, 0, 478, 456, 34, 484, - 0, 34, 571, 23, 33, 34, 25, 515, 105, 107, - 535, 588, 555, 0, 605, 597, 0, 607, 608, 0, - 303, 483, 303, 485, 34, 490, 0, 57, 550, 0, - 0, 489, 479, 0, 303, 491, 0, 572, 0, 600, - 599, 598, 604, 486, 0, 559, 557, 556, 551, 492, - 560, 558 + 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, + 0, 89, 0, 90, 34, 81, 410, 412, 506, 34, + 0, 532, 531, 0, 172, 34, 428, 0, 84, 0, + 0, 0, 592, 0, 434, 0, 0, 438, 441, 35, + 449, 440, 0, 0, 382, 34, 0, 383, 596, 164, + 300, 602, 295, 0, 297, 595, 598, 0, 0, 0, + 606, 0, 0, 396, 159, 246, 247, 248, 250, 240, + 249, 0, 160, 303, 303, 155, 15, 18, 20, 0, + 242, 304, 301, 302, 374, 0, 373, 0, 0, 0, + 254, 343, 344, 345, 346, 347, 349, 348, 342, 253, + 387, 390, 0, 487, 0, 481, 492, 0, 482, 0, + 0, 113, 0, 0, 512, 498, 0, 518, 499, 520, + 0, 570, 0, 568, 79, 0, 416, 36, 0, 0, + 401, 403, 303, 44, 55, 362, 363, 364, 369, 370, + 367, 368, 361, 372, 365, 366, 371, 356, 357, 358, + 359, 360, 395, 485, 92, 117, 119, 413, 36, 0, + 0, 432, 0, 431, 527, 426, 0, 0, 0, 407, + 0, 581, 0, 74, 0, 16, 453, 451, 0, 445, + 447, 439, 0, 453, 95, 93, 385, 380, 0, 597, + 599, 0, 545, 546, 548, 543, 561, 0, 0, 259, + 0, 162, 378, 0, 0, 0, 0, 303, 236, 375, + 0, 238, 239, 261, 0, 0, 0, 0, 0, 0, + 0, 483, 0, 0, 0, 516, 0, 501, 0, 0, + 564, 0, 0, 555, 569, 421, 0, 419, 37, 0, + 420, 409, 0, 0, 0, 415, 411, 82, 34, 0, + 429, 34, 425, 85, 574, 0, 126, 0, 34, 0, + 454, 455, 34, 446, 448, 437, 451, 0, 443, 0, + 384, 34, 600, 544, 0, 552, 0, 405, 303, 19, + 30, 21, 30, 243, 376, 388, 391, 393, 488, 490, + 0, 30, 104, 30, 106, 510, 0, 0, 0, 521, + 0, 571, 566, 0, 422, 0, 303, 486, 414, 433, + 0, 427, 585, 17, 0, 34, 34, 460, 34, 0, + 0, 452, 0, 0, 34, 386, 547, 553, 549, 609, + 608, 607, 163, 31, 0, 32, 34, 0, 0, 493, + 0, 0, 0, 517, 513, 519, 0, 0, 0, 0, + 418, 423, 0, 533, 588, 0, 575, 0, 0, 34, + 466, 303, 461, 0, 0, 34, 456, 0, 444, 442, + 450, 0, 0, 0, 56, 0, 491, 0, 0, 0, + 511, 0, 526, 525, 522, 524, 565, 572, 0, 398, + 0, 528, 589, 582, 0, 0, 303, 467, 459, 0, + 457, 435, 34, 463, 0, 34, 550, 23, 33, 34, + 25, 494, 105, 107, 514, 567, 534, 0, 584, 576, + 0, 586, 587, 0, 303, 462, 303, 464, 34, 469, + 0, 57, 529, 0, 0, 468, 458, 0, 303, 470, + 0, 551, 0, 579, 578, 577, 583, 465, 0, 538, + 536, 535, 530, 471, 539, 537 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 60, 61, 465, 63, 759, 761, 760, 762, 64, - 890, 573, 793, 574, 519, 891, 466, 249, 146, 213, - 716, 247, 726, 544, 261, 212, 148, 467, 468, 469, - 772, 996, 208, 210, 66, 172, 173, 174, 70, 175, + -1, 60, 61, 430, 63, 703, 705, 704, 706, 64, + 834, 538, 737, 539, 484, 835, 431, 237, 146, 213, + 660, 235, 670, 509, 249, 212, 148, 432, 433, 434, + 716, 940, 208, 210, 66, 172, 173, 174, 70, 175, 72, 176, 74, 75, 177, 77, 178, 79, 179, 81, - 180, 83, 181, 85, 284, 182, 87, 183, 89, 184, - 91, 92, 93, 317, 185, 186, 187, 97, 98, 188, - 189, 100, 614, 285, 286, 615, 190, 294, 102, 103, - 191, 105, 192, 616, 620, 289, 239, 194, 430, 195, - 196, 197, 198, 110, 111, 112, 113, 114, 115, 116, - 199, 200, 201, 202, 355, 309, 290, 118, 262, 581, - 582, 654, 203, 436, 771, 655, 280, 205, 121, 206, - 123, 124, 151, 152, 596, 246, 492, 550, 551, 493, - 792, 683, 684, 125, 245, 561, 724, 126, 217, 555, - 471, 732, 570, 738, 823, 734, 259, 739, 736, 818, - 815, 955, 956, 816, 817, 128, 129, 130, 542, 799, - 457, 774, 458, 660, 894, 776, 933, 459, 460, 131, - 477, 478, 132, 216, 133, 479, 668, 898, 782, 937, - 480, 669, 852, 784, 134, 785, 902, 135, 940, 941, - 136, 805, 973, 998, 558, 947, 997, 1007, 272, 273, - 749, 750, 137, 831, 927, 986, 884, 138, 485, 486, - 487, 139, 274, 140, 678, 856, 905, 679, 787, 904, - 141, 248, 868, 949, 989, 1001, 565, 975, 976, 912, - 913, 914, 253, 142, 264, 590, 591, 143, 753, 887, - 472 + 180, 83, 181, 85, 270, 182, 87, 183, 89, 184, + 91, 92, 93, 300, 185, 186, 187, 97, 98, 188, + 189, 100, 579, 271, 272, 580, 190, 280, 102, 103, + 191, 105, 192, 581, 584, 275, 228, 194, 398, 195, + 196, 197, 109, 198, 111, 112, 113, 114, 115, 116, + 199, 200, 201, 202, 329, 294, 276, 118, 250, 546, + 547, 601, 203, 404, 715, 602, 266, 205, 121, 206, + 123, 124, 151, 152, 561, 234, 457, 515, 516, 458, + 736, 627, 628, 125, 233, 526, 668, 126, 217, 520, + 436, 676, 535, 682, 767, 678, 247, 683, 680, 762, + 759, 899, 900, 760, 761, 128, 129, 130, 507, 743, + 422, 718, 423, 604, 838, 720, 877, 424, 425, 131, + 442, 443, 132, 216, 133, 444, 612, 842, 726, 881, + 445, 613, 796, 728, 134, 729, 846, 135, 884, 885, + 136, 749, 917, 942, 523, 891, 941, 951, 258, 259, + 693, 694, 137, 775, 871, 930, 828, 138, 450, 451, + 452, 139, 260, 140, 622, 800, 849, 623, 731, 848, + 141, 236, 812, 893, 933, 945, 530, 919, 920, 856, + 857, 858, 241, 142, 252, 555, 556, 143, 697, 831, + 437 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -707 +#define YYPACT_NINF -859 static const yytype_int16 yypact[] = { - 3439, 402, -707, 444, -707, 42, 60, 482, 208, -58, - 7315, -707, -707, -707, 8527, 8527, 8527, -707, 192, 1662, - 7315, 7315, -707, 1830, -707, 444, 7811, -707, -707, 80, - -707, 1993, 2791, -707, 444, 226, -707, 189, -707, -707, - 8527, -707, 8527, 660, 69, -707, 177, 7811, -707, -707, - 7315, -707, -707, 274, 143, -707, -707, 7439, 4432, 8287, - 310, 4590, -707, -707, 570, -707, 183, 21, 34, 47, - 8020, 30, 8287, 46, 8287, 8287, 58, 8287, 71, 8287, - 86, 8287, 225, 8287, 99, 8287, 53, 8020, 18, 8020, - 155, 8020, 3708, 8287, 56, 25, 257, 8287, -707, 28, - 8287, 54, 193, 8287, 205, 8287, 816, -707, -707, -707, - -707, -707, -707, -707, -707, -707, -707, -707, 402, 100, - 212, 8020, 268, 8287, -707, -707, -707, -707, -707, -707, - 451, -707, 5025, 405, -707, 7315, -707, -707, -707, 5153, - 32, -707, -707, -707, -707, -707, 7315, -707, 402, -707, - -707, 8527, 8527, 7315, -707, -707, -707, -707, -707, -707, - 7315, -707, -707, -707, 80, -707, -707, -707, -707, 7315, - 7315, 8527, 851, 914, 1349, 770, 997, 1134, 2990, 1236, - 1385, 1609, 4089, 216, 2030, 2981, 3083, 1466, 3541, -707, - 2177, 4668, -707, 4246, 759, -707, -707, -707, -707, -707, - -707, -707, -707, 2520, 233, 7929, 3127, -707, 369, -707, - 397, -707, -707, 8331, -707, -707, 402, 8527, -707, 14, - 236, 236, 236, -3, 5, 6, 15, 50, 392, 65, - 236, 76, 98, -72, 236, 63, 66, 164, 209, 20, - 285, 218, -5, 220, 372, 8527, 8527, 8331, 370, 7315, - -707, -707, -707, 177, 431, 331, 8064, 8669, 345, 402, - 374, 351, 3753, 6943, -707, 256, 78, 199, -72, 447, - 213, 222, -707, 181, 7315, 3236, -707, 7315, -707, 8527, - 261, -707, 382, 7811, 188, -707, -707, -707, 3268, -707, - 232, -707, -707, -707, -707, -707, 402, -707, -707, -707, - -707, -707, 8527, 8527, -707, 7067, 7315, 7191, -707, 180, - 7315, -707, 7315, -707, -707, -707, -707, -707, -707, 7315, - -707, -707, -707, 7315, -707, -707, -707, -707, 7315, -707, - -707, -707, 7315, -707, -707, -707, 7315, -707, -707, -707, - 7315, -707, -707, 7315, -707, -707, -707, 7315, -707, -707, - -707, 7315, -707, 7067, -707, -707, -707, -707, 7315, -707, - 7067, -707, -707, -707, -707, 42, 60, 472, -707, 479, - -707, 494, -707, -707, 499, -707, 517, -707, 50, -707, - 392, -707, 534, -707, -707, 549, -707, 562, -707, -707, - 563, 564, -707, 565, -707, -707, 7315, -707, 7315, -707, - -707, 7315, -707, -707, 7315, -707, -707, -707, -707, 7315, - -707, 7067, -707, 8287, -707, 7315, -707, -707, -707, -707, - -707, -707, 7315, 7315, 7315, 7315, 7315, 7315, 7315, 8287, - -707, -707, -707, -707, -707, -707, 7315, -707, 7315, -707, - -707, 7315, -707, -707, -707, -707, -707, 7315, -707, -707, - -707, -707, -707, 402, -707, -707, -707, 561, 483, -707, - -707, -707, 568, -707, 281, -707, -707, -707, -707, 585, - 5281, -707, -707, -707, -707, -707, -707, -707, -707, 425, - 362, 409, 5409, -707, -707, 552, -707, -707, -707, 3236, - -707, 3840, 420, -707, 420, 2285, 3496, -707, -707, 480, - -707, -707, -707, -707, 8527, -707, -707, -707, -707, -707, - -707, -707, -707, 8527, -707, -707, -707, -707, -707, -707, - -707, -707, -707, -707, 7315, 7315, 7315, 7315, 7315, 7315, - 7315, 7315, 7315, 7315, 7315, 7315, 7315, 7315, 7315, 7315, - 7315, 7315, 402, -707, 402, 8527, -707, 8527, -707, 3840, - 484, -707, -707, -707, 8669, 423, -707, -707, 7315, -707, - 8669, 187, 423, 484, 7315, 402, 3236, -707, 433, -707, - 8527, 402, -707, -707, -707, -707, -707, 586, 402, -707, - 8669, 477, 486, 7563, 336, 440, -707, 459, 4246, 7868, - 488, -707, 7687, 7811, 3236, -707, 8527, 468, -707, -707, - 165, 76, -72, 63, 200, 164, 7315, -707, 7315, 7067, - -707, -707, 491, 492, 287, -707, 4246, 4246, -707, 4246, - -707, 7191, 487, 4246, 4246, 4246, 4246, 4246, 4246, 4246, - 4246, 4246, 4246, 4246, 322, 4246, 359, 4246, 4246, 4246, - 4246, 4246, 377, -707, 4246, 4246, 4246, 4246, 4246, 4246, - 4246, 4246, -707, 4246, 495, 6817, 4246, 4246, 4246, -707, - 7315, -707, -707, 561, -707, 8527, 8527, -707, 7315, 402, - -707, -707, 362, -707, -707, -707, 7315, -707, 379, -707, - -707, 7315, 617, 542, 231, 8527, -707, -707, 7563, -707, - -707, 3930, 4246, 3496, 3496, 3496, 1262, 1262, 579, 3496, - 1262, 1262, 1262, 318, 318, 337, 337, 337, 4246, -707, - -707, -707, -707, 630, 542, 8331, 402, -707, 8527, -707, - 4246, -707, 8527, 8527, 402, -707, 402, 4246, 4897, -707, - 621, -707, 8109, 345, 8064, -707, -707, -707, 8527, 8109, - -707, -707, -707, -707, 8376, -707, 7563, 8527, 4246, -707, - 516, -707, -707, 6177, 420, -707, 3943, -707, -707, 402, - 519, 402, 520, 7067, -707, -707, 7191, -707, -707, -707, - 7315, 513, 4767, 514, 6305, 409, 7315, -707, 251, 349, - 409, -707, 7315, -707, 402, 6433, 4246, 402, 7315, -707, - -707, 4246, 639, -707, -707, 7315, 522, -707, 524, 5537, - 7315, -707, -707, -707, 8669, 604, -707, 8669, -707, -707, - -707, 402, 8153, 8527, 8669, 529, 533, 535, 8669, -707, - -707, -707, -707, 301, -707, 530, -707, 8669, -707, 480, - 7687, 567, 52, -707, 7315, -707, 8420, -707, 8420, -707, - -707, 4246, -707, -707, -707, -707, 409, 8420, -707, 8420, - -707, -707, 5921, 409, 5921, -707, 402, -707, 4246, 7315, - 4246, 7315, 7563, -707, 4246, -707, 7315, -707, 532, -707, - 8527, 8669, 8525, -707, 8669, 8198, 575, -707, 8527, 402, - 8669, -707, -707, -707, -707, -707, -707, -707, -707, -707, - 536, 537, 8669, 540, 5537, -707, 541, 546, 5665, -707, - -707, -707, 35, 5793, 5793, 402, 4246, 4246, 547, 178, - -707, 8527, -707, 402, 402, 8565, -707, 7315, -707, 402, - 8527, 8669, 535, 8242, -707, -707, -707, 402, 402, 8483, - -707, 402, -707, 5537, 402, 402, -707, 5665, -707, -707, - -707, -707, -707, -707, 5793, -707, 7315, -707, -707, 598, - 6049, 6049, 7315, -707, -707, 380, -707, -707, 8586, -707, - 8527, 8669, -707, -707, -707, 8669, -707, -707, -707, -707, - -707, -707, 233, 402, -707, -707, 402, -707, -707, 387, - 7315, -707, 7315, -707, 8607, -707, 6561, -707, -707, 31, - 6689, -707, -707, 424, 7315, -707, 27, -707, 6561, -707, - -707, -707, -707, -707, 434, 8527, 8527, -707, -707, -707, - -707, -707 + 4677, 255, -859, 278, -859, 18, 33, 92, 653, -75, + 7365, -859, -859, -859, 8572, 8572, 8572, -859, 59, 713, + 7365, 7365, -859, 1717, -859, 278, 7861, -859, -859, 37, + -859, 1749, 1871, -859, 278, 274, -859, 80, -859, -859, + 8572, -859, 8572, 1694, 89, -859, 51, 7861, -859, -859, + 7365, -859, -859, 222, 115, -859, -859, 7489, 3437, 8269, + 254, 4813, -859, -859, 407, -859, 73, 125, 125, 125, + 8180, 5, 8269, 21, 8269, 8269, 28, 8269, 42, 8269, + 46, 8269, 228, 8269, 66, 8269, 125, 8180, 12, 8180, + 68, 8180, 7973, 8269, 125, -74, 236, 8269, -859, 1, + 8269, -14, 212, 8269, 105, 8269, 211, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, 255, 79, + 126, 8180, 165, 8269, -859, -859, -859, -859, -859, -859, + 442, -859, 5199, 387, -859, 7365, -859, -859, -859, 5327, + 204, -859, -859, -859, -859, -859, 7365, -859, 255, -859, + -859, 8572, 8572, 7365, -859, -859, -859, -859, -859, -859, + 7365, -859, -859, -859, 37, -859, -859, -859, -859, 7365, + 7365, 8572, 946, 1883, 2558, 775, 1597, 1939, 3135, 1995, + 227, 2282, 8089, 433, 541, 2588, 2678, 2544, 3723, -859, + 2981, 4278, -859, 1382, 2440, -859, -859, -859, -859, -859, + -859, -859, -859, 2406, 242, 8028, 2551, -859, 359, -859, + 371, -859, -859, 8313, -859, -859, 255, 8572, -859, 24, + 78, 170, 180, 125, 149, 144, 194, 159, 19, 266, + 40, 161, 348, 8572, 8572, 8313, 283, 7365, -859, -859, + -859, 51, 419, 294, 4112, 4201, 310, 255, 330, 334, + 8358, 4486, -859, 263, 77, 196, 180, 181, -859, 127, + 7365, 4271, -859, 7365, -859, 8572, 192, -859, 341, 7861, + 130, -859, -859, -859, 4518, -859, 198, -859, -859, -859, + -859, -859, 255, -859, -859, -859, -859, -859, 8572, 8572, + -859, 7117, 7241, -859, -37, -859, -859, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, 7117, -859, -859, + -859, -859, -859, 7117, -859, -859, -859, -859, 18, 33, + 440, -859, 443, -859, 455, -859, -859, 461, -859, 464, + -859, 46, -859, 228, -859, 484, -859, -859, 493, -859, + 505, -859, -859, 515, 518, -859, 519, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, -859, 7117, + -859, 8269, -859, -859, -859, -859, -859, 7365, -859, -859, + 7365, 7365, 7365, 7365, 7365, 7365, 7365, 8269, -859, -859, + -859, -859, -859, -859, 7365, -859, -859, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, 255, -859, + -859, -859, 411, 457, -859, -859, -859, 1455, -859, 103, + -859, -859, -859, -859, 449, 5455, -859, -859, -859, -859, + -859, -859, -859, -859, 401, 26, 380, 5583, -859, -859, + 447, -859, -859, -859, 4271, -859, 2699, 384, -859, 384, + 3286, 2970, -859, -859, 430, -859, -859, -859, -859, 8572, + -859, -859, -859, -859, -859, -859, -859, -859, 8572, -859, + -859, -859, -859, -859, -859, -859, -859, -859, -859, 7365, + 7365, 7365, 7365, 7365, 7365, 7365, 7365, 7365, 7365, 7365, + 7365, 7365, 7365, 7365, 7365, 7365, 7365, 255, -859, 255, + 8572, -859, 8572, -859, 2699, 432, -859, -859, -859, 4201, + 399, -859, -859, 7365, -859, 4201, 191, 399, 432, 7365, + 255, 4271, -859, 404, -859, 8572, 255, -859, -859, -859, + -859, -859, 543, 255, -859, 4201, 431, 453, 7613, 206, + 409, -859, 412, 1382, 2120, 456, -859, 7737, 7861, 4271, + -859, 8572, 422, -859, -859, 224, 78, 180, 149, 121, + 194, 7365, -859, 7365, 7117, -859, -859, 458, 459, 249, + -859, 1382, -859, 1382, -859, 7241, 450, 267, 289, 307, + -859, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, -859, + 1382, 462, 6991, -859, 7365, -859, -859, 411, -859, 8572, + 8572, -859, 7365, 255, -859, -859, 26, -859, -859, -859, + 7365, -859, 297, -859, -859, 7365, 570, 479, 113, 8572, + -859, -859, 7613, -859, -859, 3544, 1382, 2970, 2970, 2970, + 1208, 1208, 530, 2970, 1208, 1208, 1208, 291, 291, 306, + 306, 306, 1382, -859, -859, -859, -859, 580, 479, 8313, + 255, -859, 8572, -859, 1382, -859, 8572, 8572, 255, -859, + 255, 1382, 5071, -859, 572, -859, 2825, 310, 4112, -859, + -859, -859, 8572, 2825, -859, -859, -859, -859, 8402, -859, + 7613, 8572, 1382, -859, 467, -859, -859, 6351, 384, -859, + 8021, -859, -859, 255, 468, 255, 477, 7117, -859, -859, + 7241, -859, -859, -859, 7365, 475, 4941, 480, 6479, 380, + 7365, -859, 259, 340, 380, -859, 7365, -859, 255, 6607, + 1382, 255, 7365, -859, -859, 1382, 597, -859, -859, 7365, + 478, -859, 486, 5711, 7365, -859, -859, -859, 4201, 565, + -859, 4201, -859, -859, -859, 255, 3975, 8572, 4201, 487, + 488, 491, 4201, -859, -859, -859, -859, 241, -859, 492, + -859, 4201, -859, 430, 7737, 521, 14, -859, 7365, -859, + 8465, -859, 8465, -859, -859, 1382, -859, -859, -859, -859, + 380, 8465, -859, 8465, -859, -859, 6095, 380, 6095, -859, + 255, -859, 1382, 7365, 1382, 7365, 7613, -859, 1382, -859, + 7365, -859, 446, -859, 8572, 4201, 3182, -859, 4201, 7906, + 534, -859, 8572, 255, 4201, -859, -859, -859, -859, -859, + -859, -859, -859, -859, 496, 499, 4201, 498, 5711, -859, + 500, 501, 5839, -859, -859, -859, 15, 5967, 5967, 255, + 1382, 1382, 502, 183, -859, 8572, -859, 255, 255, 3338, + -859, 7365, -859, 255, 8572, 4201, 491, 8224, -859, -859, + -859, 255, 255, 8509, -859, 255, -859, 5711, 255, 255, + -859, 5839, -859, -859, -859, -859, -859, -859, 5967, -859, + 7365, -859, -859, 564, 6223, 6223, 7365, -859, -859, 389, + -859, -859, 3785, -859, 8572, 4201, -859, -859, -859, 4201, + -859, -859, -859, -859, -859, -859, 242, 255, -859, -859, + 255, -859, -859, 413, 7365, -859, 7365, -859, 4324, -859, + 6735, -859, -859, 29, 6863, -859, -859, 417, 7365, -859, + 25, -859, 6735, -859, -859, -859, -859, -859, 420, 8572, + 8572, -859, -859, -859, -859, -859 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -707, -707, -707, 45, 608, -707, -707, -707, -707, -707, - -478, -434, -39, -169, -643, -707, 240, -707, -707, -707, - -707, -707, -707, -707, -707, 299, -707, -458, -707, -707, - -21, -375, -707, -707, 3153, 1204, 1341, 1425, 584, 227, - 587, 364, 588, 589, 448, 593, 560, 595, 644, 596, - 756, 597, 840, 601, -707, 1488, 603, 0, 609, 84, - 611, 452, -707, 8632, 1552, 1572, 1709, -707, -166, 1816, - -261, -707, -307, -670, -257, -57, 1891, -64, -707, -707, - 2031, -707, -256, 3789, -596, -597, -707, 2158, -707, 1779, - 1965, -707, 2221, -707, -707, -707, -707, -707, -707, -707, - 2379, -707, -707, -707, 4164, -707, -707, -707, -707, -707, - -707, -707, 977, -707, -707, -707, -7, 168, 618, 1047, - 619, -707, -707, -707, -707, -707, -144, 467, 1, -209, - -707, 169, -707, -707, -707, -707, -707, -707, -707, 471, - 282, -707, -707, -707, -707, -707, -560, -707, -706, -707, - -20, -631, -260, -707, -153, -707, -707, -707, -707, -707, - 265, -707, -707, -707, -707, -707, -707, -443, -707, -707, - -463, -707, -707, -707, -707, -707, -707, -707, -707, -707, - 245, -707, -707, -707, -707, -707, -707, -707, -707, -707, - -707, -707, -707, -707, -707, -707, -273, -707, 133, -707, - -103, -707, -707, -707, -707, -707, -707, -707, -707, 51, - -707, -707, -707, -707, -707, -707, -707, 55, -707, -707, - -707, -707, -707, -707, -707, -707, -707, -707, -707, -707, - -707, -707, -707, -707, 481, -707, -563, -707, -707, -707, - 3099 + -859, -859, -859, 219, 571, -859, -859, -859, -859, -859, + -422, -403, -20, -161, -591, -859, 290, -859, -859, -859, + -859, -859, -859, -859, -859, 527, -859, -431, -859, -859, + -87, -504, -859, -859, 3284, 1072, 1236, 1344, 547, 248, + 548, 311, 549, 551, 339, 554, 451, 556, 454, 558, + 513, 561, 705, 562, -859, 1419, 566, 0, 568, 84, + 569, 434, -859, 4379, 1487, 1629, 1660, -859, -170, 1829, + -245, -859, -293, -618, -244, -56, 1964, -342, -859, -859, + 2097, -859, -242, 3932, -570, -563, -859, 2251, -859, 1987, + 2254, -859, -859, 2407, -859, -859, -859, -859, -859, -859, + 2444, -859, -859, -859, 3519, -859, -859, -859, -859, -859, + -859, -859, 728, -859, -859, -859, -5, 186, 573, 969, + 576, -859, -859, -859, -859, -859, -144, 428, 11, -210, + -859, 150, -859, -859, -859, -859, -859, -859, -859, 441, + 301, -859, -859, -859, -859, -859, -512, -859, -658, -859, + -9, -858, -248, -859, -142, -859, -859, -859, -859, -859, + 256, -859, -859, -859, -859, -859, -859, -411, -859, -859, + -426, -859, -859, -859, -859, -859, -859, -859, -859, -859, + 234, -859, -859, -859, -859, -859, -859, -859, -859, -859, + -859, -859, -859, -859, -859, -859, -262, -859, 123, -859, + -92, -859, -859, -859, -859, -859, -859, -859, -859, 62, + -859, -859, -859, -859, -859, -859, -859, 63, -859, -859, + -859, -859, -859, -859, -859, -859, -859, -859, -859, -859, + -859, -859, -859, -859, 452, -859, -535, -859, -859, -859, + 3390 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -627 +#define YYTABLE_NINF -606 static const yytype_int16 yytable[] = { - 88, 287, 585, 204, 552, 500, 586, 587, 494, 518, - 735, 757, 667, 520, 661, 664, 671, 674, 798, 521, - 745, 522, 523, -305, 667, 765, 231, 351, 820, 556, - 306, 442, 824, 320, 398, 251, 543, 404, 552, 319, - 794, 324, 329, 310, 1005, 62, 634, 266, 999, 483, - 304, 333, 938, 636, 352, 323, 312, 682, -323, 292, - 307, 88, 347, 409, 405, 396, 320, 328, 153, 885, - 315, 794, 315, 1006, 315, 315, 939, 315, 149, 315, - 332, 315, 324, 315, 90, 315, 337, 315, 260, 315, - 410, 315, 385, 315, 329, 336, 150, 315, 1000, 402, - 315, 344, 405, 315, 642, 315, 297, 333, 343, 438, - 232, 470, 352, 500, 352, 713, 244, 604, 482, 252, - 717, 315, 337, 315, -305, -329, 721, 307, 481, 307, - 557, 267, 88, 484, 359, 344, 439, 307, 307, 88, - 305, -96, -96, 293, 353, 90, 742, 307, -96, -96, - 307, -96, -96, 307, 316, 886, 316, 307, 316, 316, - 307, 316, 307, 316, 358, 316, 307, 316, 120, 316, - 840, 316, 924, 316, 819, 316, 387, 316, 307, 307, - 411, 316, 307, 828, 316, 307, 307, 316, 307, 316, - 307, 359, 908, -328, 242, -29, -29, 307, 307, 254, - 410, 304, 353, 307, 353, 316, -325, 316, 307, 783, - 307, -27, -27, 549, 415, 271, 90, -132, 307, 304, - 777, 441, 278, 90, 360, 351, 946, 71, -326, 120, - 307, 307, 307, 592, 340, 359, -237, 888, 318, 722, - 65, 416, -132, -132, -132, 416, 263, 549, 442, 410, - -325, -325, 352, 223, 439, 350, 448, 357, 442, 364, - 391, 341, -132, -132, -132, -132, 401, -132, -132, 277, - -325, -325, -325, -325, 223, -325, -325, 447, -96, -96, - 773, 360, 127, 601, -111, -111, 276, 307, 71, 446, - 411, 305, 304, 402, -332, -164, 307, -164, 38, 39, - 120, 299, 147, 541, 448, 621, 593, 120, -561, 305, - 295, 622, 723, 606, 667, -96, -96, 607, -132, 369, - 954, 979, 585, 413, 218, 360, 586, 587, -96, -96, - -237, 307, -237, 250, -132, -96, -96, 307, -132, 411, - -132, 307, 353, 300, 307, 307, -325, 54, 307, 643, - 307, 993, 307, 810, 307, 954, 795, 609, 541, 71, - 893, 610, 796, 1004, 73, 652, 71, 267, 307, 896, - 865, 897, 304, 867, 55, 56, 531, 847, 832, 473, - 873, -561, 305, 954, 877, 954, 541, 354, 598, 361, - 224, -96, -96, 881, 399, 531, 483, 954, 406, 844, - 307, 673, 476, 417, -96, -96, 431, 432, 433, 434, - 855, 224, 763, 292, 764, 429, 435, 788, 677, 443, - 543, 449, 473, 164, 863, 73, 878, 452, 341, 292, - 879, 589, 536, 537, 538, 539, 540, 916, 918, 564, - 919, 488, 473, 474, 475, 476, 926, 763, 76, 767, - 568, 271, 754, 538, 539, 540, 371, 569, 930, -622, - -622, -622, 305, 670, 475, 476, 453, 454, 455, 456, - 88, 575, 55, 56, 225, 849, 797, 899, 578, 901, - 484, 953, 88, 402, 763, 585, 768, 959, 577, 586, - 587, -130, 55, 56, 545, 225, 73, 293, 453, 662, - 455, 456, 763, 73, 769, 980, 552, 981, 304, 76, - 223, 599, 980, 293, 991, 320, -130, -130, -130, 932, - 55, 56, 547, 936, 983, 55, 56, 985, 942, 943, - 324, 987, 55, 56, 541, 329, -130, -130, -130, -130, - 374, -130, -130, 55, 56, 685, 55, 56, 718, 980, - 995, 1003, 758, 333, 90, 730, 55, 56, 967, 980, - 78, 1009, 970, -624, -624, -624, 90, -96, -96, 971, - 344, -109, -109, 302, 303, 977, 978, -132, 455, 456, - 76, 500, -625, -625, -625, 352, 226, 76, 665, 666, - 676, 677, -130, 266, 305, 755, 910, 911, 359, 439, - 442, 448, -132, -132, -132, 740, 305, 226, -130, 715, - 743, 744, -130, 746, -130, 1002, 501, -22, -24, 766, - 770, 78, -132, -132, -132, -132, -438, -132, -132, 510, - 511, 512, 513, 514, 515, 516, 517, 531, 120, 800, - 811, 830, 842, 843, 80, 836, 838, 224, 859, 862, - 120, 866, 376, 775, 861, 88, 874, 880, 875, 923, - 876, 780, 929, 928, 974, 2, 883, 931, 934, 298, - 227, 154, 155, 935, 945, 801, 368, 267, -132, 370, - 372, 373, 156, 157, 158, 375, 159, 377, 379, 381, - 161, 227, 78, 383, -132, 384, 559, 71, -132, 78, - -132, 386, 162, 388, 163, 80, 839, 27, 28, 71, - 392, 394, 30, 165, 563, 549, 802, 562, 714, 825, - 992, 166, 922, 663, 672, 1008, 751, 882, 88, 789, - 0, 225, 0, 790, 567, 0, 378, 0, 0, 90, - 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, - 0, 589, 0, 88, 0, 167, 82, 0, 0, 48, - 0, 271, 0, 0, 0, 0, 0, 0, 168, 846, - 0, 0, 88, 0, 88, 853, 80, 0, 0, 319, - 0, 0, 228, 80, 0, 88, 0, 0, 257, 0, - 0, 0, 0, 420, 421, 0, 0, 0, 0, 88, - 0, 0, 0, 228, -313, -313, 320, 0, 0, 0, - 0, 0, 90, 422, 423, 424, 425, 82, 426, 427, - 223, 0, 0, 120, -313, -313, -313, -313, 0, -313, - -313, 0, 0, 0, 73, 0, 0, 90, 0, 0, - 84, 0, 0, 226, 0, 0, 73, 0, 380, 0, - 420, 421, 88, 0, 88, 0, 90, 0, 90, 909, - 306, 0, 0, 0, 0, 0, 229, 0, 0, 90, - 422, 423, 424, 425, 0, 426, 427, 0, 0, 0, - 0, 0, 71, 90, 0, -312, -312, 229, 82, 429, - 0, 0, 0, 0, 88, 82, 120, 0, 88, 0, - -313, 84, 307, 88, 88, -312, -312, -312, -312, 0, - -312, -312, 0, 0, 589, 0, 0, 0, 76, 0, - 0, 120, 0, 310, 0, 0, 428, 227, 0, 0, - 76, 0, 382, 88, 0, 0, 90, 88, 90, 972, - 120, 0, 120, 0, 88, 0, 429, 0, -314, -314, - 88, 88, 0, 120, 0, 71, 0, 224, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 120, -314, -314, - -314, -314, 84, -314, -314, 0, 0, 119, 90, 84, - 71, -312, 90, 307, 0, 0, 88, 90, 90, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 88, 71, - 0, 71, 0, 241, 0, 0, 323, 0, 0, 0, - 0, 0, 71, 0, 0, 0, 0, 90, 0, 73, - 120, 90, 120, 0, 241, 0, 71, 0, 90, 0, - 78, -316, -316, 324, 90, 90, 0, 0, 119, 228, - 0, 225, 78, 0, -314, 0, 307, 122, 0, 0, - 0, -316, -316, -316, -316, 0, -316, -316, 0, 0, - 0, 0, 120, 0, 0, 0, 120, 0, 0, 390, - 90, 120, 120, 243, 90, 0, 0, 0, 0, 71, - 0, 71, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 0, 243, 0, 0, 0, 0, 0, - 0, 120, 0, 76, 0, 120, 0, 0, 122, 119, - 0, 0, 120, 0, 80, 0, 119, 73, 120, 120, - 0, 71, 0, 229, 0, 71, 80, -316, 0, 307, - 71, 71, 0, 0, 0, 0, 73, 0, 73, 393, - 0, 0, 0, 328, 0, 0, 0, 0, 0, 73, - 0, 0, 0, 226, 120, 0, 0, 0, 120, 0, - 71, 0, 0, 73, 71, 0, 120, 0, -318, -318, - 329, 71, 0, 0, 0, 0, 76, 71, 71, 122, - 0, 0, 0, 0, 0, 0, 122, 0, -318, -318, - -318, -318, 0, -318, -318, 0, 0, 0, 0, 0, - 0, 76, 0, 0, 67, 0, 0, 0, 0, 0, - 0, 0, 0, 71, 0, 78, 73, 71, 73, 0, - 76, 0, 76, 0, 0, 71, 82, 0, 0, 0, - 220, 0, 0, 76, 0, 0, 0, 227, 82, 0, - 0, 0, 0, 0, 0, 336, 0, 76, 0, 0, - 0, 220, 0, 0, 0, 0, 0, 0, 73, 0, - 241, 0, 73, 0, -318, 67, 307, 73, 73, 0, - -320, -320, 337, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, - -320, -320, -320, -320, 0, -320, -320, 73, 0, 80, - 76, 73, 76, 0, 0, 0, 0, 0, 73, 0, - 84, 529, 530, 78, 73, 73, 0, 0, 0, 0, - 531, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 243, 0, 78, 0, 78, 0, 67, 0, 0, 0, - 0, 68, 76, 67, 0, 78, 76, 0, 0, 228, - 73, 76, 76, 0, 73, 0, 0, 0, 312, 78, - 0, 0, 73, 0, 0, 0, -320, 221, 307, 0, - 0, 0, 80, 533, 534, 535, 536, 537, 538, 539, - 540, 76, 0, -315, -315, 76, 0, 0, 221, 0, - 0, 0, 76, 0, 340, 0, 0, 80, 76, 76, - 0, 0, 68, -315, -315, -315, -315, 0, -315, -315, - 0, 82, 78, 0, 78, 0, 80, 0, 80, -321, - -321, 341, 0, 0, 0, 69, 0, 0, 0, 80, - 0, 0, 0, 229, 76, 0, 0, 0, 76, -321, - -321, -321, -321, 80, -321, -321, 76, 119, 0, 0, - 0, 222, 0, 0, 78, 0, 0, 0, 78, 119, - 0, 0, 0, 78, 78, 0, 0, 0, 0, 0, - 0, 0, 222, 68, 0, 401, 0, 0, 0, -315, - 68, 307, 0, 0, 82, 0, 69, 220, 86, 0, - 0, 0, 0, 78, 0, 84, 80, 78, 80, 0, - -328, -328, 402, 0, 78, 0, 0, 0, 0, 82, - 78, 78, 0, 0, 230, -321, 0, 122, 0, 0, - -328, -328, -328, -328, 0, -328, -328, 0, 82, 122, - 82, 0, 0, 0, 0, 230, 0, 0, 80, 0, - 0, 82, 80, 0, 0, 0, 78, 80, 80, 86, - 78, 0, 94, 0, 0, 82, 0, 69, 78, 0, - 0, 0, 0, 0, 69, 0, 0, 0, 84, 0, - 241, 0, 95, 0, 0, 0, 0, 80, 233, 0, - 0, 80, 0, 0, 0, 0, 0, 0, 80, 0, - 0, 0, 0, 84, 80, 80, -328, 0, 234, 268, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 82, 0, 84, 94, 84, 0, 0, 0, 343, 234, - 86, 0, 0, 0, 221, 84, 0, 86, 0, 0, - 80, 0, 119, 95, 80, 0, 0, 0, 0, 84, - 243, 0, 80, -322, -322, 344, 0, 0, 0, 0, - 82, 0, 0, 0, 82, 0, 0, 0, 0, 82, - 82, 0, 0, -322, -322, -322, -322, 0, -322, -322, - 0, -134, 0, 0, 67, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 0, 67, 0, 0, 82, - 0, 94, 84, 82, 84, 0, -134, -134, -134, 0, - 82, 0, 122, 0, 95, 119, 82, 82, 222, 96, - 0, 95, 0, 0, 0, 0, -134, -134, -134, -134, - 0, -134, -134, 0, 0, 0, 0, 0, 0, 0, - 119, 0, 0, 0, 84, 235, 0, 0, 84, -322, - 0, 307, 82, 84, 84, 0, 82, 0, 0, 119, - 0, 119, 0, 0, 82, 0, 269, 0, 0, 0, - 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, - 96, 230, -134, 84, 0, 122, 119, 84, 0, 107, - 0, 0, 0, 0, 84, 0, 0, 0, -134, 0, - 84, 84, -134, 0, -134, 0, 0, 220, 0, 0, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 68, 0, 0, 0, 0, 99, 0, 0, 122, - 0, 122, 0, 68, 0, 0, 84, 0, 0, 119, - 84, 119, 122, 0, 0, 602, 0, 0, 84, -131, - 107, 96, 236, 0, 0, 0, 122, 0, 96, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 0, 67, - 0, 0, 0, 236, -131, -131, -131, 0, 0, 0, - 0, 119, 0, 0, 0, 119, 0, 99, 0, 0, - 119, 119, 0, 0, -131, -131, -131, -131, 0, -131, - -131, 101, 0, 0, 0, 69, 0, 0, 0, 122, - 0, 122, 0, 0, 0, 0, 0, 69, 0, 0, - 119, 107, 0, 0, 119, 0, 0, 237, 107, 0, - 0, 119, 0, 0, 0, 0, 0, 119, 119, 0, - 0, 0, 67, 0, 221, 0, 0, 0, 270, 0, - -131, 122, 0, 0, 0, 122, 0, 0, 99, 0, - 122, 122, 101, 0, 0, 99, -131, 67, 86, 0, - -131, 0, -131, 119, 0, 108, 0, 119, 0, 0, - 86, 0, 0, 0, 0, 119, 67, 0, 67, 0, - 122, 0, 0, 0, 122, 0, 0, 0, 0, 67, - 0, 122, 603, 0, 0, 0, 68, 122, 122, 0, - 0, 0, -135, 67, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, - 0, 0, 94, 101, 0, 0, 108, -135, -135, -135, - 101, 104, 0, 122, 94, 0, 0, 122, 0, 358, - 0, 0, 95, 0, 0, 122, 0, -135, -135, -135, - -135, 0, -135, -135, 95, 0, 67, 238, 67, 0, - 0, 0, 0, 0, -326, -326, 359, 0, 0, 68, - 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, - 69, 230, 0, 0, -326, -326, -326, -326, 0, -326, - -326, 0, 104, 0, 68, 0, 0, 108, 67, 236, - 0, 0, 67, -135, 108, 0, 0, 67, 67, 0, - 0, 0, 0, 68, 0, 68, 0, 0, 0, -135, - 0, 0, 0, -135, 0, -135, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 68, 67, 0, 86, 0, 268, 0, 0, 67, 0, - 0, 0, 0, 69, 67, 67, 360, 0, 106, 0, - -326, 0, 307, 104, 0, 234, 0, 0, 0, 0, - 104, 0, 0, 0, 605, 0, 0, 0, 69, 96, - 0, 0, 0, 0, 240, 0, 409, 0, 0, 0, - 67, 96, 0, 68, 67, 68, 0, 69, 0, 69, - 0, 0, 67, 0, 0, 240, 0, 94, 0, 0, - 69, -332, -332, 410, 0, 0, 86, 0, 0, 106, - 0, 109, 0, 0, 69, 0, 0, 95, 0, 0, - 0, -332, -332, -332, -332, 68, -332, -332, 0, 68, - 0, 86, 0, 0, 68, 68, 0, 0, 0, 107, - 0, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 86, 107, 86, 0, 510, 511, 512, 513, 514, 515, - 516, 517, 0, 86, 68, 0, 0, 69, 68, 69, - 94, 0, 109, 0, 0, 68, 99, 86, 0, 0, - 106, 68, 68, 0, 0, 0, 0, 106, 99, 0, - 95, 0, 269, 411, 0, 94, 0, -332, 0, 307, - 0, 0, 524, 525, 238, 0, 526, 527, 528, 69, - 0, 0, 0, 69, 94, 95, 94, 68, 69, 69, - 0, 68, 0, 0, 529, 530, 0, 94, 0, 68, - 86, 0, 86, 531, 95, 0, 95, 0, 0, 0, - 0, 94, 0, 109, 0, 0, 0, 95, 69, 0, - 109, 101, 69, 0, 96, 0, 0, 0, 0, 69, - 0, 95, 0, 101, 0, 69, 69, 0, 0, 117, - 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, - 0, 86, 86, 0, 0, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 94, 0, 94, 0, 0, 236, - 688, 69, 0, 0, 0, 69, 0, 0, 0, 0, - 0, 86, 0, 69, 95, 86, 95, 0, 0, 0, - 0, 0, 86, 0, 107, 108, 0, 96, 86, 86, - 117, 240, 0, 0, 0, 0, 94, 108, 0, 0, - 94, 0, 0, 0, 0, 94, 94, 0, 0, 0, - 0, 0, 96, 0, 0, 0, 95, 0, 0, 0, - 95, 99, 0, 0, 86, 95, 95, 0, 86, 0, - 0, 96, 0, 96, 270, 94, 86, 0, 0, 94, - 0, 0, 0, 0, 96, 0, 94, 0, 0, 0, - 0, 104, 94, 94, 0, 95, 0, 107, 96, 95, - 0, 117, 0, 104, 0, 0, 95, 0, 117, 0, - 0, 0, 95, 95, 0, 0, 0, 0, 0, 438, - 0, 0, 107, 0, 0, 0, 0, 0, 94, 0, - 0, 0, 94, 0, 99, 0, 101, 0, 0, 0, - 94, 107, 0, 107, -317, -317, 439, 0, 95, 0, - 0, 96, 95, 96, 107, 0, 0, 0, 0, 99, - 95, 0, 0, 0, -317, -317, -317, -317, 107, -317, - -317, 0, 0, 0, 0, 0, 0, 0, 99, 0, - 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 99, 0, 96, 0, 0, 0, 96, 0, 0, - 0, 0, 96, 96, 0, 99, 0, 0, 0, 101, - 108, 0, 0, 0, 238, 0, 0, 0, 106, 0, - 0, 107, 0, 107, 0, 0, 0, 0, 0, 0, - 106, 0, 96, 0, 101, 0, 96, 0, 0, 0, - -317, 0, 307, 96, 0, 0, 0, 0, 0, 96, - 96, 0, 0, 101, 0, 101, 0, 0, 99, 0, - 99, 0, 0, 107, 0, 0, 101, 107, 0, 0, - 0, 0, 107, 107, 0, 0, 104, 0, 0, 0, - 101, 109, 0, 108, 0, 96, 0, 0, 0, 96, - 0, 0, 0, 109, 0, 0, 0, 96, 0, 0, - 99, 0, 107, 0, 99, 0, 107, 0, 108, 99, - 99, 0, 0, 107, 0, 0, 0, 0, 0, 107, - 107, 0, 0, 0, 0, 0, 0, 108, 0, 108, - 0, 0, 0, 101, 0, 101, 0, 0, 0, 99, - 108, 240, 0, 99, 0, 0, 0, 0, 0, 104, - 99, 0, 0, 0, 108, 107, 99, 99, 0, 107, + 88, 465, 273, 517, 611, 204, 550, 551, 459, 552, + 701, 605, 608, 689, 742, 709, 611, 483, 615, 618, + 764, 485, 378, 679, 768, 517, 220, 486, 521, 487, + 488, 829, 882, -305, 587, 239, 738, 374, 923, 590, + 588, 302, 949, 438, 508, 435, 943, 254, 326, -96, + -96, 153, 447, 626, 149, 599, 883, 305, 292, 278, + 290, 88, -29, -29, 309, 617, 441, 738, 937, 150, + 298, 950, 298, 232, 298, 298, 408, 298, 312, 298, + 948, 298, 315, 298, 90, 298, 589, 298, 585, 298, + 242, 298, 358, 298, 586, 465, 944, 298, 717, 569, + 298, -130, 320, 298, 332, 298, -111, -111, 248, 290, + 221, 657, 379, 326, 326, 406, 661, 830, 292, 240, + 251, 298, 665, 298, -96, -96, -130, -130, -130, 522, + 446, 255, 88, 292, -305, -96, -96, 292, 327, 88, + 784, 383, 686, 279, 292, 90, -130, -130, -130, -130, + 291, -130, -130, 292, 299, 772, 299, -237, 299, 299, + 292, 299, 408, 299, 868, 299, 763, 299, 754, 299, + -329, 299, 292, 299, 292, 299, 360, 299, 292, 557, + 374, 299, -96, -96, 299, 372, 120, 299, 852, 299, + 727, -96, -96, 776, 333, 383, 721, 413, 292, 291, + 292, 413, -130, 327, 327, 299, 332, 299, -325, 292, + 292, 292, 230, 514, 788, 832, 90, 408, -130, 62, + 387, 448, -130, 90, -130, 799, -96, -96, -96, -96, + 378, 890, 332, 257, 262, 514, -321, 292, 739, 807, + 264, 263, 290, 666, 740, 388, 389, 120, 71, -96, + -96, -237, 558, -237, 281, 571, 301, 292, 292, 572, + 290, -321, -321, 318, 318, 390, 391, 392, 393, 566, + 394, 395, 372, 325, 71, 331, 292, 337, 364, -328, + 283, -321, -321, -321, -321, 611, -321, -321, -96, -96, + 65, 292, 843, 292, 845, 71, 333, 292, 898, 290, + -326, 127, 292, 550, 551, 449, 552, 412, 506, 71, + -323, 73, 292, 292, 448, -540, 667, 506, 120, 563, + 379, 396, 333, 574, -332, 120, 292, 575, 292, -601, + -601, -601, 291, 898, 876, 732, 621, 73, 880, 76, + 342, 397, 381, 886, 887, 809, 38, 39, 811, 496, + 291, 285, 529, 255, -164, 817, -164, -321, 73, 821, + 837, 898, 286, 898, 496, 76, 822, 506, 825, 840, + 823, 841, 73, 911, 707, 898, 708, 914, 55, 56, + 71, 278, 55, 56, 915, 791, 76, 71, -540, 291, + 921, 922, 707, 508, 711, 54, 397, 278, 449, 164, + 76, -96, -96, 344, 438, 501, 502, 503, 504, 505, + 288, 289, 860, 862, 707, 863, 712, 698, 438, 741, + 534, 870, 503, 504, 505, 439, 440, 441, 420, 421, + 946, 347, 707, 874, 713, 88, 540, 554, 533, 614, + 440, 441, -325, 73, 542, 550, 551, 88, 552, 517, + 73, 78, 609, 610, 80, 257, 897, 418, 419, 420, + 421, 543, 903, 55, 56, 279, 793, -325, -325, 326, + 564, 76, 418, 606, 420, 421, 290, 78, 76, 302, + 80, 279, 55, 56, 510, 620, 621, -325, -325, -325, + -325, 305, -325, -325, 55, 56, 512, 309, 78, 927, + 312, 80, 929, 55, 56, 506, 931, 55, 56, 629, + 854, 855, 78, 82, 924, 80, 925, 71, 702, 90, + 320, 465, 55, 56, 662, 939, 674, 55, 56, 326, + 147, 90, -603, -603, -603, -604, -604, -604, 924, 82, + 935, 332, 924, 349, 947, 924, 351, 953, 291, 699, + -326, 406, 218, 466, 408, 413, 291, 659, 254, 327, + 82, 238, 684, -325, 687, 292, 475, 476, 477, 478, + 479, 480, 481, 482, 82, -326, -326, 332, 688, -417, + 73, 690, 710, 78, -22, -24, 80, 714, 496, 744, + 78, 755, 774, 80, 780, -326, -326, -326, -326, 719, + -326, -326, 88, 782, 786, 353, 803, 724, 76, 787, + 805, 806, 810, 819, 818, 328, 820, 334, 867, 824, + 827, 120, 370, 872, 873, 875, 375, 878, 879, 889, + 918, 384, 284, 120, 399, 400, 401, 402, 745, 341, + 343, 345, 255, 346, 403, 82, 348, 409, 350, 414, + 352, 783, 82, 354, 356, 417, -27, -27, 357, 514, + 359, 361, -132, 528, 658, 365, 524, 333, 367, 453, + 746, -326, 88, 292, 769, 527, 936, 866, 616, 607, + 952, 695, 826, 71, 733, 734, 90, -132, -132, -132, + 0, 0, 0, 532, 0, 71, 0, 88, 0, 0, + 0, 0, 0, 0, 0, 84, 0, -132, -132, -132, + -132, 0, -132, -132, 0, 790, 88, 0, 88, 0, + 78, 797, -134, 80, 0, 0, 0, 0, 119, 88, + 0, 84, 0, 0, 554, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 257, 0, 73, -134, -134, -134, + 0, 0, 84, 0, 119, 0, 90, 0, 73, 0, + 0, 0, 0, -132, 0, 0, 84, -134, -134, -134, + -134, 0, -134, -134, 76, 119, 0, 0, 0, -132, + 0, 90, 82, -132, -313, -132, 76, 0, 120, 119, + 0, 0, 0, 0, 0, 0, 88, 355, 88, 0, + 90, 0, 90, 0, 0, 853, 71, 0, 0, -313, + -313, 302, 0, 90, 0, 0, 0, 0, 0, 0, + 363, 0, 0, -134, 0, 0, 0, 90, 0, -313, + -313, -313, -313, 0, -313, -313, 0, 84, 88, -134, + 0, 0, 88, -134, 84, -134, 0, 88, 88, 0, + 71, 0, 0, 0, 0, 0, 0, 0, 120, 0, + 119, 0, 0, 0, 0, 0, 0, 119, 0, 73, + 0, 0, 0, 0, 0, 0, 554, 88, 0, 0, + 90, 88, 90, 120, 0, 916, 78, 0, 88, 80, + 0, 0, 0, 0, 88, 88, 0, 76, 78, 0, + 0, 80, 120, 0, 120, -313, 0, 292, 0, 0, + 0, 0, 0, 73, 0, 120, 0, 0, 0, 0, + 71, 0, 90, 0, 0, 0, 90, 0, 0, 120, + 88, 90, 90, 0, 88, 0, 0, 0, 0, 0, + 0, 76, 88, 0, 0, 71, 0, 0, 82, 0, + 0, 0, 0, 0, 0, -312, 0, 0, 0, 0, + 82, 90, 0, 0, 71, 90, 71, 0, 0, 122, + 0, 0, 90, 0, 84, 0, 0, 71, 90, 90, + -312, -312, 120, 73, 120, 0, 0, 0, 0, 0, + 0, 71, 0, 0, 0, 231, 0, 119, 0, 0, + -312, -312, -312, -312, 0, -312, -312, 0, 73, 78, + 0, 76, 80, 0, 90, 0, 231, 0, 90, 0, + 0, 0, 0, 0, 120, 0, 90, 73, 120, 73, + 122, 0, 0, 120, 120, 0, 76, 0, 0, 0, + 73, 0, 0, 0, 71, 0, 71, 0, 0, 0, + 0, 0, 0, 78, 73, 76, 80, 76, 0, 0, + 0, 366, 0, 120, 0, 0, 0, 120, 76, 0, + 0, 82, 67, 0, 120, 0, -312, 0, 292, 0, + 120, 120, 76, 0, 0, 0, 71, 0, 0, 0, + 71, 0, 0, 0, 0, 71, 71, 0, 67, 0, + 0, 122, 0, 0, 0, 0, 0, 73, 122, 73, + 0, 0, 0, 0, 0, 82, 120, 0, 0, 67, + 120, 0, 0, 78, 0, 71, 80, 0, 120, 71, + 0, 0, 0, 67, 0, 76, 71, 76, 0, 0, + 84, 0, 71, 71, 0, 0, 0, 0, 78, 73, + 0, 80, 84, 73, 0, 0, 0, 0, 73, 73, + 0, 0, 0, 119, 0, 0, 0, 78, 0, 78, + 80, 0, 80, 0, 0, 119, 0, 76, 71, 0, + 78, 76, 71, 80, 0, 82, 76, 76, 73, 0, + 71, 0, 73, 0, 78, 0, 0, 80, 0, 73, + 0, 0, 0, 0, 67, 73, 73, 0, 0, 0, + 82, 67, 0, 0, 0, 0, 76, 0, 0, 0, + 76, 0, 0, 0, 0, 0, 0, 76, 0, 82, + 0, 82, 0, 76, 76, 0, 68, 0, 231, 0, + 0, 73, 82, 0, 0, 73, 0, 78, 0, 78, + 80, 0, 80, 73, 0, 0, 82, 494, 495, 0, + 0, 0, 68, 84, 0, 0, 496, 0, 0, 76, + 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, + 0, 76, 0, 68, 0, 0, 119, 0, 0, 78, + 0, 0, 80, 78, 0, 0, 80, 68, 78, 78, + 0, 80, 80, 0, 0, 0, 0, 84, 0, 82, + 0, 82, 0, 0, 0, 0, 0, 0, 0, 498, + 499, 500, 501, 502, 503, 504, 505, 0, 78, 0, + 119, 80, 78, 0, 0, 80, 0, 0, 0, 78, + 0, 67, 80, 0, 69, 78, 78, 0, 80, 80, + 0, 82, 0, 0, 0, 82, 0, 0, 0, 0, + 82, 82, 0, 0, 0, 0, 0, 0, 68, 0, + 69, 0, 0, 0, 0, 68, 0, 84, 0, 0, + 0, 78, 0, 0, 80, 78, 0, 0, 80, 0, + 82, 69, 0, 78, 82, 0, 80, 0, 0, 0, + 119, 82, 84, 0, 122, 69, 0, 82, 82, 489, + 490, 0, 0, 491, 492, 493, 122, 0, 0, 86, + 0, 84, 0, 84, 0, 119, 0, 0, 0, 0, + 0, 494, 495, 0, 84, 0, 0, 0, 0, 0, + 496, 0, 0, 82, 119, 86, 119, 82, 84, 0, + 0, 0, 0, 0, 0, 82, 0, 119, -109, -109, + 0, 0, 0, 0, -132, 0, 86, 0, 0, 0, + 0, 119, 0, 0, 0, 0, 69, 0, 0, 0, + 86, 0, 0, 69, 0, 0, 0, 94, 0, -132, + -132, -132, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 84, 0, 84, 0, 68, 0, 67, 0, -132, + -132, -132, -132, 222, -132, -132, 0, 0, 0, 67, + 0, 0, 0, 0, 119, 0, 119, 231, 0, 0, + 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, + 0, 0, 0, 84, 0, 0, 0, 84, 94, 0, + 0, 86, 84, 84, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, -132, 119, 0, 0, 0, + 119, 122, 0, 0, 0, 119, 119, 0, 0, 0, + 0, -132, 84, 0, 0, -132, 84, -132, 0, 0, + 0, 0, 0, 84, 0, 0, 0, 0, 0, 84, + 84, 0, 0, 0, 0, 119, -316, 0, 0, 119, + 0, 0, 0, 69, 0, 0, 119, 0, 0, 94, + 0, 0, 119, 119, 0, 0, 94, 0, 0, 95, + 67, -316, -316, 305, 0, 84, 0, 0, 0, 84, + 0, 122, 0, 0, 0, 0, 0, 84, 0, 0, + 0, -316, -316, -316, -316, 223, -316, -316, 119, 0, + 96, 0, 119, 0, 0, 0, 122, 0, 0, 0, + 119, 68, 0, 0, 67, 0, 223, 0, 0, 0, + 0, 0, 0, 68, 0, 122, 224, 122, 86, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 122, 2, + 0, 0, 0, 0, 0, 154, 155, 96, 0, 0, + 0, 0, 122, 0, 0, 0, 156, 157, 158, 0, + 159, 96, 0, 0, 161, 0, -131, -316, 0, 292, + 0, 0, 0, 0, 0, 0, 162, 0, 163, 0, + 0, 27, 28, 0, 67, 0, 30, 165, 0, 0, + 0, -131, -131, -131, 0, 166, 567, 0, -135, 0, + 0, 95, 0, 0, 0, 122, 0, 122, 95, 67, + 0, -131, -131, -131, -131, 0, -131, -131, 41, 69, + 0, 0, 0, -135, -135, -135, 0, 0, 67, 167, + 67, 69, 96, 48, 68, 0, 0, 0, 0, 96, + 0, 67, 168, -135, -135, -135, -135, 122, -135, -135, + 0, 122, 0, 0, 0, 67, 122, 122, 0, 0, + 0, 0, 245, 0, 0, 0, 0, -131, 0, 99, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, + 0, 0, 0, -131, 0, 0, 122, -131, 0, -131, + 122, 0, 0, 0, 86, 225, 0, 122, 0, -135, + 0, 0, 0, 122, 122, 0, 86, 0, 67, 0, + 67, 0, 0, 0, 0, -135, 225, 0, 0, -135, + -133, -135, 0, 0, 0, 0, 0, 0, 0, 0, + 99, 0, -314, 0, 0, 0, 0, 0, 223, 122, + 0, 0, 69, 122, 0, -133, -133, -133, 68, 0, + 67, 122, 0, 0, 67, 0, 0, -314, -314, 67, + 67, 0, 94, 0, 0, -133, -133, -133, -133, 568, + -133, -133, 0, 68, 94, 0, 0, -314, -314, -314, + -314, 0, -314, -314, 0, 0, 69, 0, -318, 67, + 0, 0, 68, 67, 68, 0, 0, 0, 0, 0, + 67, 99, 0, 0, 101, 68, 67, 67, 99, 0, + 0, 0, 0, -318, -318, 309, 0, 86, 0, 68, + 0, -133, 0, 0, 0, 0, 0, 107, 0, 0, + 226, 0, 0, -318, -318, -318, -318, -133, -318, -318, + 0, -133, 67, -133, -320, 0, 67, 0, 0, 0, + 0, 101, 0, -314, 67, 292, 69, 0, 0, 0, + 0, 86, 0, 0, 0, 101, 0, 0, 0, -320, + -320, 315, 68, 0, 68, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 0, 256, 0, 0, 107, -320, + -320, -320, -320, 0, -320, -320, 0, 0, 0, 0, + 69, 0, 69, 0, 95, 0, 0, 0, 0, -318, + 0, 292, 0, 69, 68, 0, 95, 0, 68, 0, + 0, 0, 0, 68, 68, 0, 0, 69, 0, 94, + 0, 86, 0, 0, 0, 96, 101, 104, 225, 0, + 0, 0, 0, 101, 0, 0, 0, 96, 0, 0, + 0, 0, 0, 68, 0, 0, 86, 68, 0, 107, + 0, 0, 0, 227, 68, -320, 107, 292, 0, -329, + 68, 68, 0, 0, 0, 86, 0, 86, 0, 0, + 69, 0, 69, 0, 227, 0, 0, 0, 86, 0, + 0, 0, 0, 0, -329, -329, 408, 0, 104, 94, + 0, 0, 86, 0, 0, 0, 68, 0, 0, 0, + 68, 0, 0, 0, -329, -329, -329, -329, 68, -329, + -329, 0, 69, 0, 94, 0, 69, 223, 0, 0, + 0, 69, 69, 0, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 94, 0, 94, 0, 475, 476, 477, + 478, 479, 480, 481, 482, 86, 94, 86, 96, 0, + 0, 69, 0, 0, 0, 69, 0, 0, 0, 104, + 94, 95, 69, 570, 0, 0, 104, 0, 69, 69, + 0, 0, 0, -605, -605, -605, 0, 0, 0, 0, + -329, 106, 292, 0, 108, 0, 0, 86, 0, 0, + 0, 86, 96, 0, 99, 0, 86, 86, 0, 0, + 0, 0, 0, 0, 69, 0, 99, 229, 69, 0, + 0, 0, 0, 94, 0, 94, 69, 0, 0, 0, + 0, -322, 0, 0, 0, 0, 86, 0, 229, 0, + 86, 95, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 106, 86, 86, 108, -322, -322, 320, 0, + 0, 0, 0, 0, 0, 94, 95, 0, 0, 94, + 0, 0, 96, 0, 94, 94, -322, -322, -322, -322, + 0, -322, -322, 0, 0, 95, 0, 95, 0, 86, + 0, 0, 0, 86, 0, 0, 0, 96, 95, 0, + 0, 86, 0, 0, 94, 0, 227, 0, 94, 0, + 0, 0, 95, 0, 0, 94, 96, 0, 96, 0, + 0, 94, 94, 106, 0, 0, 108, 225, 0, 96, + 106, 0, 0, 108, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 96, 0, 0, 0, 110, 0, 0, + 0, 101, -322, 0, 292, -317, 0, 94, 0, 0, + 0, 94, 107, 0, 0, 95, 0, 95, 0, 94, + 0, 99, 0, 0, 107, 0, 0, 0, 0, 0, + -317, -317, 406, 0, 117, 0, 0, 0, 0, 387, + 0, 0, 0, 0, 0, 0, 96, 0, 96, 0, + -317, -317, -317, -317, 0, -317, -317, 95, 110, 0, + 0, 95, 0, 0, 388, 389, 95, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 390, 391, 392, 393, 96, 394, + 395, 99, 96, 0, 0, 117, 95, 96, 96, 0, + 95, 0, 0, 0, 0, 0, 0, 95, 0, 0, + 229, 0, 101, 95, 95, 0, 99, 0, 0, 0, + 0, 0, 104, 0, 0, 0, -317, 96, 292, 110, + 0, 96, 0, 0, 104, 99, 110, 99, 96, 0, + 0, 0, 0, -328, 96, 96, 0, 0, 99, 95, + -331, 0, 0, 95, 0, 0, 101, -315, 0, 0, + 397, 95, 99, 0, 0, 0, 117, 0, -328, -328, + 372, 0, 0, 117, 0, -331, -331, 413, 0, 107, + 96, 0, -315, -315, 96, 0, 0, -323, -328, -328, + -328, -328, 96, -328, -328, -331, -331, -331, -331, 0, + -331, -331, -315, -315, -315, -315, 0, -315, -315, 0, + 0, 0, -323, -323, 0, 99, 0, 99, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, + 0, 0, -323, -323, -323, -323, 0, -323, -323, 0, + 0, 0, 0, 0, 0, 227, 0, 0, 0, 107, + 0, 101, 0, 0, 0, 0, 0, 99, 0, 0, + 0, 99, 0, 0, -328, 0, 99, 99, 0, 0, + 101, -331, 101, 292, 107, 0, 106, -324, -315, 108, + 292, 0, 0, 101, 0, 0, 0, 0, 106, 104, + 0, 108, 0, 107, 0, 107, 99, 101, 0, 0, + 99, 0, -324, -324, 0, 0, 107, 99, -323, 0, + 292, 0, 0, 99, 99, 0, 0, 0, 0, 0, + 107, 0, -324, -324, -324, -324, 0, -324, -324, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, + 101, 0, 101, 99, 0, 0, 0, 0, 0, 104, + 0, 99, 0, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 0, 107, 0, 107, 475, 476, 477, 478, + 479, 480, 481, 482, 104, 0, 0, 0, 0, 0, + 0, 0, 101, 0, 0, 0, 101, 0, -324, 229, + 292, 101, 101, 104, 0, 104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 104, 0, 0, 107, + 2, 625, 0, 0, 107, 107, 154, 155, 0, 0, + 104, 101, 110, 0, 0, 101, 0, 156, 157, 158, + 0, 159, 101, 106, 110, 161, 108, 0, 101, 101, + 0, 0, 0, 0, 107, 0, 0, 162, 107, 163, + 0, 0, 27, 28, 0, 107, 0, 30, 165, 117, + 0, 107, 107, 0, 0, 0, 166, 0, 0, 0, + 0, 117, 0, 104, 101, 104, 0, 0, 101, 0, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, - 0, 0, 0, 0, 104, 101, 0, 0, 0, 101, - 0, 0, 0, 0, 101, 101, 0, 0, 0, 0, - -133, 0, 99, 104, 0, 104, 99, 0, 0, 0, - 0, 0, 0, 106, 99, 0, 104, 108, 0, 108, - 0, 0, 0, 0, 101, -133, -133, -133, 101, 0, - 104, 0, 0, 0, 0, 101, 0, 0, 0, 0, - 0, 101, 101, 0, 0, -133, -133, -133, -133, 117, - -133, -133, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 117, 0, 108, 0, 0, 0, 0, 108, 108, - 0, 0, 0, 0, 0, 0, 109, 101, 0, 0, - 0, 101, 0, 104, 0, 104, 106, 0, 0, 101, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, - 0, -133, 108, 0, 0, 0, 0, 0, 0, 108, - 0, 106, 0, 0, 0, 108, 108, -133, 0, 0, - 0, -133, 0, -133, 0, 104, 0, 0, 0, 104, - 106, 0, 106, 0, 104, 104, 0, 0, 0, 0, - 0, 0, 0, 106, 0, 0, 0, 0, 0, 109, - 0, 108, 0, 0, 0, 108, 0, 106, 0, 0, - 0, 0, 0, 108, 104, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 109, 104, 0, 0, 0, 0, - 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, - 396, 0, 0, 109, 0, 109, 0, 0, 0, 332, - 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, - 106, 0, 106, 0, 0, -323, -323, 104, 0, 0, - 109, 104, 0, 0, -319, -319, 333, 0, 0, 104, - 0, 0, 0, 0, 117, -323, -323, -323, -323, 0, - -323, -323, 0, 0, -319, -319, -319, -319, 0, -319, - -319, 0, 106, 0, 0, 0, 106, 0, 0, 0, - 0, 106, 106, 0, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 109, 0, 109, 0, 510, 511, 512, - 513, 514, 515, 516, 517, 0, 0, 0, 0, 0, - 0, 106, 398, 0, 0, 106, 0, 0, 0, 144, - 145, 0, 106, 0, 0, 0, 0, 117, 106, 106, - 0, -323, 0, 307, 0, 109, 0, -324, -324, 109, - -319, 0, 307, 0, 109, 109, 0, 0, 0, 0, - 0, 0, 117, 0, 0, 0, 447, -324, -324, -324, - -324, 0, -324, -324, 106, 0, 0, 0, 106, 0, - 0, 117, 0, 117, 109, 0, 106, 0, 109, 0, - 301, -331, -331, 448, 117, 109, 0, 207, 209, 211, - 0, 109, 109, 0, 0, 0, 0, 0, 117, 219, - 0, -331, -331, -331, -331, 0, -331, -331, 0, 0, - 0, 0, 0, 255, 0, 256, 258, 0, 0, 0, - 265, 0, 0, 0, 0, 0, 0, 109, 0, 0, - 0, 109, 291, -324, 0, 307, 0, 437, 0, 109, - 0, 0, 0, 314, 0, 314, 0, 314, 314, 0, - 314, 117, 314, 117, 314, 0, 314, 0, 314, 0, - 314, 0, 314, 0, 314, 367, 314, 490, 0, 0, - 314, 0, 0, 314, 0, 0, 314, -331, 314, 307, - 0, 0, 0, 524, 525, 0, 0, 526, 527, 528, - 0, 0, 0, 117, 314, 0, 314, 117, 0, 0, - 0, 0, 117, 117, 0, 529, 530, 0, 0, 0, - 0, 0, 0, 0, 531, 524, 525, 0, 0, 526, - 527, 528, 0, 0, 491, 491, 0, 546, 0, 548, - 0, 0, 117, 0, 0, 553, 117, 529, 530, 0, - 0, 0, 0, 117, 499, 0, 531, 0, 0, 117, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 572, 0, 0, 576, 55, - 56, 0, 0, 0, 0, 117, 491, 0, 0, 117, - 554, 0, 0, 0, 595, 608, 0, 117, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 0, 0, 0, - 0, 0, 0, 0, 0, 611, 0, 0, 560, 554, - 491, 0, 0, 0, 0, 0, 0, 0, 0, 571, - 0, 0, 0, 0, 0, 580, 584, 0, 0, 0, + 167, 107, 0, 106, 48, 0, 108, 0, 0, 107, + 0, 0, 0, 168, 0, 104, 0, 0, 0, 104, + 0, 0, 0, 0, 104, 104, 0, 757, 106, 0, + 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 106, 0, 106, + 108, 0, 108, 0, 104, 0, 0, 0, 104, 0, + 106, 0, 0, 108, 0, 104, 0, 0, 0, 0, + -332, 104, 104, 0, 106, 0, 0, 108, 0, 0, + 0, 491, 492, 493, 0, 0, 0, 0, 0, 110, + 0, 0, 0, 0, 0, -332, -332, 378, 0, 494, + 495, 0, 0, 0, 0, 0, 0, 104, 496, 0, + 0, 104, 0, 0, 0, -332, -332, -332, -332, 104, + -332, -332, 0, 0, 0, 0, 117, 106, 0, 106, + 108, 0, 108, 0, 0, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 0, 0, 0, 0, 475, 476, + 477, 478, 479, 480, 481, 482, 0, 0, 0, 110, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 106, + 0, 0, 108, 106, 0, 0, 108, 0, 106, 106, + 0, 108, 108, 0, 110, 0, 0, 379, 0, 0, + 0, -332, 0, 292, 0, 0, 117, 0, 0, 0, + 0, 0, 0, 110, 0, 110, 0, 0, 106, 0, + 0, 108, 106, 0, 0, 108, 110, 0, 0, 106, + 0, 117, 108, 0, -319, 106, 106, 0, 108, 108, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 117, 0, 117, 0, 0, 0, 0, 0, 0, -319, + -319, 312, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 106, 0, 0, 108, 106, 0, 117, 108, -319, + -319, -319, -319, 106, -319, -319, 108, 0, 0, 0, + 0, 0, 0, 110, 0, 110, 0, 0, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, + 0, 0, 475, 476, 477, 478, 479, 480, 481, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 597, 0, 0, 0, 600, 0, 0, -3, - 1, 0, -26, -26, 2, 3, 4, 5, 0, 6, - 7, 8, 9, 10, 0, 612, 613, 0, 11, 12, - 13, 14, 15, 16, 17, 18, 0, 0, 0, 19, - 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, - 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, - 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 526, 527, 528, - 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, - 0, 50, 0, 51, 52, 529, 530, 53, 0, 0, - 404, 0, 659, 0, 531, 0, 0, 0, 0, 0, - 54, 0, 55, 56, 0, 57, 291, 58, 0, 59, - 0, 0, 0, 0, 0, -330, -330, 405, 0, 0, - 675, 0, 291, 0, 0, 0, 0, 0, 680, 0, - 0, 686, 0, 687, 0, -330, -330, -330, -330, 0, - -330, -330, 0, 0, 0, 0, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 0, 0, 0, 0, 510, 511, - 512, 513, 514, 515, 516, 517, 0, 0, 0, 0, - 0, 709, 0, 710, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 719, 0, 0, 689, 0, 0, - 0, 725, 0, 0, 728, 729, 690, 731, 0, 0, - 737, -330, 0, 307, 0, 0, 0, 741, 0, 0, + 117, 0, 117, 0, 0, 110, 0, 0, 0, 110, + 0, 0, 0, 0, 110, 110, 466, 467, 468, 469, + 470, 471, 472, 473, 474, -319, 0, 292, 0, 475, + 476, 477, 478, 479, 480, 481, 482, 0, 0, 0, + 0, 0, 117, 0, 110, 0, 117, 0, 110, 0, + 0, 117, 117, 0, 0, 110, 0, 0, 207, 209, + 211, 110, 110, 0, 0, 0, 0, 0, 861, 0, + 219, 0, 0, 489, 490, 0, 0, 491, 492, 493, + 0, 117, 0, 0, 243, 117, 244, 246, 0, 0, + 0, 253, 117, 0, 0, 494, 495, 110, 117, 117, + 0, 110, 0, 277, 496, 0, 0, 0, 0, 110, + 0, 0, 0, 0, 297, 0, 297, 0, 297, 297, + 0, 297, 0, 297, 0, 297, 0, 297, 0, 297, + 0, 297, 0, 297, 117, 297, 340, 297, 117, 0, + 0, 297, 0, 0, 297, 0, 117, 297, 0, 297, + 144, 145, 0, 0, 0, 0, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 297, 0, 297, 0, 0, + 0, 632, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 0, 0, 0, 0, 475, 476, 477, 478, 479, + 480, 481, 482, 0, 0, 456, 456, 0, 0, 0, + 0, 0, 2, 0, 4, 5, 0, 6, 154, 155, + 9, 287, 0, 0, 0, 464, 11, 12, 13, 156, + 157, 158, 0, 159, 896, 0, 160, 161, 0, 0, + 0, 20, 21, 0, 0, 0, 0, 0, 0, 162, + 0, 163, 0, 0, 27, 28, 0, 0, 164, 30, + 165, 0, 0, 0, 0, 0, 0, 456, 166, 0, + 0, 519, 0, 0, 0, 0, 0, 36, 405, 38, + 39, 0, 0, 0, 0, 0, 0, 525, 519, 456, + 0, 41, 0, 0, 0, 0, 0, 0, 536, 0, + 0, 0, 167, 45, 545, 549, 48, 0, 455, 0, + 0, 51, 52, 267, 268, 168, 0, 0, 0, 562, + 0, 169, 170, 565, 0, 0, 0, 0, 54, 269, + 0, 0, 0, 57, 0, 58, 0, 59, 0, 0, + 0, 489, 577, 578, 0, 491, 492, 493, 0, 0, + 0, 0, 0, 0, 0, 0, 293, 295, 296, 0, + 303, 0, 306, 494, 495, 310, 0, 313, 511, 316, + 513, 0, 496, 321, 0, 323, 518, 0, 0, 335, + 0, 0, 0, 369, 371, 0, 0, 0, 376, 0, + 380, 0, 0, 385, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 0, 0, 541, 407, 410, + 0, 415, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 560, 0, 0, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 0, 0, 277, 0, 0, 0, 0, + 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, + 0, 277, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 293, 295, 296, 303, 306, 310, 313, 316, 0, + 321, 323, 0, 335, 369, 371, 0, 376, 0, 380, + 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 407, 0, 410, 415, 0, 0, 0, 0, + 0, 0, -330, 0, 0, 0, 0, 0, 0, 0, + 335, 369, 371, 0, 376, 380, 385, 0, 0, 410, + 415, 0, 0, 633, 0, 0, 0, -330, -330, 374, + 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 335, 369, 410, -330, -330, -330, + -330, 0, -330, -330, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 655, 0, 656, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 0, 0, 603, 0, + 475, 476, 477, 478, 479, 480, 481, 482, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 752, 0, 0, 0, 0, 711, 0, - 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 4, 365, 0, 366, 154, - 155, 9, 0, 733, 0, 0, 0, 11, 12, 13, - 156, 157, 158, 0, 159, 0, 584, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 265, 0, 0, 491, - 162, 0, 163, 0, 0, 27, 28, 0, 2, 0, - 30, 165, 0, 0, 154, 155, 0, 0, 781, 166, - 0, 0, 0, 0, 0, 156, 157, 158, 36, 159, - 38, 39, 0, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 0, 0, 162, 0, 163, 0, 193, - 27, 28, 0, 167, 45, 30, 165, 48, 0, 214, - 215, 0, 0, 0, 166, 803, 168, 0, 778, 779, - 0, 0, 0, 808, 0, 809, 0, 0, 0, 54, - 0, 0, 0, 821, 277, 0, 58, 41, 491, 275, - 0, 0, 0, 0, 0, 0, 193, 288, 167, 0, - 0, 0, 48, 833, 0, 0, 0, 0, 835, 579, - 837, 168, 0, 0, 0, 0, 0, 0, 491, 0, - 0, 804, 0, 0, 845, 806, 807, 848, 850, 851, - 0, 0, 0, 854, 0, 814, 857, 733, 0, 0, - 0, 822, 814, 0, 0, 0, 0, 827, 0, 584, - 829, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 869, 0, 0, 0, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 0, 193, 0, 0, 510, 511, 512, - 513, 514, 515, 516, 517, 489, 0, 0, 0, 0, - 0, 0, 495, 0, 0, 895, 0, 0, 0, 496, - 0, 0, 900, 0, 0, 903, 0, 524, 497, 498, - 0, 526, 527, 528, 0, 871, 872, 0, 0, 0, - 524, 525, 681, 0, 526, 527, 528, 0, 925, 529, - 530, 0, 0, 0, 0, 0, 0, 0, 531, 892, - 0, 892, 529, 530, 0, 0, 0, 0, 0, 0, - 892, 531, 892, 0, 944, 0, 0, 0, 0, 0, - 0, 0, 950, 951, 0, 0, 0, 0, 957, 0, - 0, 0, 0, 915, 0, 0, 962, 963, 921, 0, - 966, 822, 0, 968, 969, 0, 0, 0, 566, 0, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 0, - 834, 0, 588, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 0, 594, 948, 0, 193, 0, 0, 0, - 0, 0, 988, 958, 0, 990, 961, 0, 0, 0, - 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 617, 619, 0, 347, 623, - 0, 624, 0, 0, 0, 0, 0, 0, 625, 0, - 0, 0, 626, 984, 0, 0, 0, 627, 0, 0, - 0, 628, 0, -327, -327, 629, 0, 0, 0, 630, - 0, 0, 631, 0, 0, 0, 632, 0, 0, 0, - 633, 0, 0, -327, -327, -327, -327, 635, -327, -327, - 0, 0, 0, 0, 0, 0, 0, 0, 1010, 1011, - 0, 0, 0, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 0, 0, 0, 0, 510, 511, 512, 513, - 514, 515, 516, 517, 0, 637, 0, 638, 0, 0, - 639, 0, 0, 640, 0, 0, 0, 0, 641, 0, - 0, 0, 0, 0, 644, 0, 0, 0, 0, 0, - 0, 645, 646, 647, 648, 649, 650, 651, 0, -327, - 0, 307, 0, 0, 0, 653, 0, 656, 0, 0, - 657, 308, 311, 313, 0, 321, 658, 325, 0, 0, - 330, 0, 334, 0, 338, 0, 0, 0, 345, 0, - 348, 0, 0, 0, 362, 0, 0, 0, 397, 400, - 0, 0, 0, 407, 0, 412, 0, 0, 418, 0, - 0, 0, 0, 524, 525, 0, 0, 526, 527, 528, - 0, 0, 0, 440, 444, 0, 450, 0, 0, 0, - 0, 0, 0, 0, 0, 529, 530, 0, 0, 0, - 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, - 0, 0, 0, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 0, 0, 0, 0, 0, 308, 311, 313, 321, - 325, 330, 334, 338, 0, 345, 348, 720, 362, 397, - 400, 0, 407, 727, 412, 418, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 0, 0, 440, 0, 444, - 450, 0, 588, 0, 0, 0, 0, 0, 0, 0, - 0, 748, 0, 0, 308, 311, 313, 321, 325, 330, - 334, 338, 0, 345, 348, 756, 362, 397, 400, 0, - 407, 412, 418, 0, 0, 440, 444, 450, 0, 0, - 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 549, 0, 0, 0, 619, 0, 0, 0, + 0, 0, 253, 0, 624, 456, 0, 630, 0, 631, + 0, 0, 0, -330, 0, 292, 0, 0, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, + 316, 0, 475, 476, 477, 478, 479, 480, 481, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 362, 397, 0, 412, 444, 0, 2, 0, 4, - 5, 0, 6, 154, 155, 9, 0, 0, 0, 193, - 0, 11, 12, 13, 156, 157, 158, 193, 159, 0, - 0, 160, 161, 0, 0, 786, 20, 21, 0, 0, - 791, 0, 0, 0, 162, 0, 163, 0, 0, 27, - 28, 0, 0, 164, 30, 165, 0, 0, 0, 0, + 0, 0, 0, 722, 723, 0, 0, 653, 0, 654, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 663, 926, 0, 456, 0, 0, 0, 669, 0, 0, + 672, 673, 0, 675, 0, 0, 681, 0, 0, 0, + 0, 0, 0, 685, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 456, 0, 0, 748, 0, 0, 696, + 750, 751, 214, 215, 0, 0, 0, 0, 0, 0, + 758, 0, 677, 0, 0, 0, 766, 758, 0, 0, + 0, 0, 771, 0, 549, 773, 0, 0, 0, 0, + 2, 0, 261, 0, 0, 0, 154, 155, 0, 193, + 274, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 0, 159, 0, 725, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 162, 0, 163, + 0, 0, 27, 28, 0, 0, 0, 30, 165, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 815, 816, 0, 0, 0, 0, 0, 0, 0, 0, + 747, 0, 0, 0, 0, 0, 0, 0, 752, 41, + 753, 0, 0, 0, 836, 0, 836, 193, 765, 0, + 167, 0, 0, 410, 48, 836, 0, 836, 454, 0, + 0, 0, 0, 168, 0, 460, 369, 0, 777, 380, + 0, 0, 461, 779, 0, 781, 0, 814, 859, 0, + 0, 462, 463, 865, 0, 0, 766, 0, 0, 789, + 0, 0, 792, 794, 795, 0, 0, 2, 798, 0, + 0, 801, 0, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 158, 0, 159, 892, + 0, 0, 161, 0, 0, 813, 0, 0, 902, 0, + 0, 905, 0, 0, 162, 0, 163, 909, 0, 27, + 28, 0, 0, 0, 30, 165, 0, 0, 0, 531, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 36, 0, 38, 39, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 167, 45, 0, - 0, 48, 0, 0, 0, 588, 51, 52, 281, 282, - 168, 0, 338, 0, 0, 0, 169, 170, 0, 0, - 0, 0, 0, 54, 283, 619, 0, 0, 57, 841, - 58, 0, 59, 0, 0, 193, 0, 0, 0, 0, - 0, 193, 0, 0, 0, 0, 0, 858, 0, 0, - 0, 0, 0, 0, 860, 0, 0, 0, 0, 864, - -2, 296, 0, -26, -26, 2, 3, 4, 5, 0, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 0, 0, 748, - 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 906, 0, - 907, 32, 33, 34, 0, 193, 0, 0, 35, 0, - 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 40, 41, 42, 43, 415, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, - 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, - 0, 0, -333, -333, 416, 0, 0, 0, 0, 0, - 0, 54, 0, 55, 56, 0, 57, 0, 58, 0, - 59, 0, -333, -333, -333, -333, 0, -333, -333, 0, - 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, - 0, 0, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 0, 0, 444, 0, 510, 511, 512, 513, 514, - 515, 516, 517, 0, 0, 0, 397, 0, 461, 412, - -108, -108, 2, 3, 4, 5, 0, 6, 7, 462, - 9, 10, -115, -115, -115, -115, 11, 12, 13, 14, - 15, 16, 463, 464, 0, 0, 0, 19, -333, 0, - 307, 20, 21, 0, 22, -115, -115, -115, -115, 23, - 24, 25, 26, -115, 27, 28, 0, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, -115, -115, -115, -115, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 46, 47, 48, 49, -115, 50, - -115, 51, 52, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 55, 56, 0, 57, 0, 58, -115, 59, 461, 0, - -108, -108, 2, 3, 4, 5, 0, 6, 7, 462, - 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, - 15, 16, 463, 464, 0, 0, 0, 19, 0, 0, + 839, 0, 0, 553, 0, 0, 0, 844, 928, 0, + 847, 0, 559, 0, 0, 193, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 0, 48, 0, 869, 0, 0, 0, 0, 0, 0, + 168, 0, 0, 0, 583, 0, 0, 0, 0, 0, + 0, 0, 0, 954, 955, 55, 56, 0, 0, 888, + 0, 0, 0, 0, 0, 0, 0, 894, 895, 0, + 0, 0, 0, 901, 0, 0, 0, 0, 0, 0, + 0, 906, 907, 0, 0, 910, 0, 0, 912, 913, + 0, 0, 0, 0, 0, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 0, 0, 0, -333, 475, 476, + 477, 478, 479, 480, 481, 482, 0, 0, 489, 490, + 0, 0, 491, 492, 493, 0, 0, 932, 0, 0, + 934, 0, -333, -333, 383, 0, 0, 0, 0, 591, + 494, 495, 592, 593, 594, 595, 596, 597, 598, 496, + 0, 0, -333, -333, -333, -333, 600, -333, -333, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 0, 0, 0, 0, 475, 476, 477, 478, 479, + 480, 481, 482, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 0, 0, 0, 0, 55, 56, 0, 0, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 0, -333, 0, + 292, 475, 476, 477, 478, 479, 480, 481, 482, 0, + 0, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 938, 304, 0, 307, 308, 664, 311, 0, 314, 0, + 317, 671, 319, 0, 322, 0, 324, 0, 330, 0, + 336, 362, 368, 0, 0, 0, 373, 0, 0, 377, + 553, 0, 382, 0, 386, 0, 0, 0, 0, 692, + 0, 2, 0, 4, 5, 0, 6, 154, 155, 9, + 411, 0, 416, 700, 0, 11, 12, 13, 156, 157, + 158, 0, 159, 0, 0, 160, 161, 583, 0, 0, + 20, 21, 0, 0, 0, 0, 0, 0, 162, 0, + 163, 0, 0, 27, 28, 0, 193, 164, 30, 165, + 0, 0, 0, 0, 193, 489, 490, 166, 0, 491, + 492, 493, 730, 0, 0, 0, 36, 735, 38, 39, + 0, 0, 0, 0, 0, 0, 0, 494, 495, 0, + 41, 0, 0, 0, 0, 0, 496, 0, 0, 0, + 0, 167, 45, 0, 0, 48, 0, 0, 0, 0, + 51, 52, 0, 0, 168, 0, 0, 0, 0, 0, + 169, 170, 0, 0, 0, 0, 0, 54, 269, 0, + 0, 548, 57, 0, 58, 0, 59, 0, 0, 0, + 0, 0, 553, 0, 0, 573, 0, 0, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 0, 0, 0, + 0, 0, 583, 0, 0, 0, 785, 0, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 0, 193, 0, + 0, 0, 0, 0, 802, 0, 0, 0, 0, 0, + 0, 804, 0, 0, 0, 0, 808, -3, 1, 0, + -26, -26, 2, 3, 4, 5, 0, 6, 7, 8, + 9, 10, 0, 0, 0, 0, 11, 12, 13, 14, + 15, 16, 17, 18, 0, 0, 692, 19, 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, -114, -114, -114, -114, 35, 0, 36, 37, 38, + 31, 0, 0, 0, 0, 850, 0, 851, 32, 33, + 34, 0, 193, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 55, 56, 0, 57, 0, 58, 461, 59, -108, -108, - 2, 3, 4, 5, 0, 6, 7, 462, 9, 10, - 0, 0, -528, 0, 11, 12, 13, 14, 15, 16, - 463, 464, 0, 0, 0, 19, 0, 0, 0, 20, - 21, 0, 22, -528, -528, -528, 0, 23, 24, 25, - 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, - 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, - 0, 57, 0, 58, 461, 59, -108, -108, 2, 3, - 4, 5, 0, 6, 7, 462, 9, 10, 0, 0, - -583, 0, 11, 12, 13, 14, 15, 16, 463, 464, + 55, 56, 0, 57, 0, 58, 0, 59, 0, 0, + 0, 0, 0, -2, 282, 0, -26, -26, 2, 3, + 4, 5, 193, 6, 7, 8, 9, 10, 0, 0, + 0, 0, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, - 22, -583, -583, 0, 0, 23, 24, 25, 26, 0, - 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, - 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 46, 47, 48, 49, -583, 50, 0, 51, 52, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, - 0, 58, 461, 59, -108, -108, 2, 3, 4, 5, - 0, 6, 7, 462, 9, 10, 0, 0, -529, 0, - 11, 12, 13, 14, 15, 16, 463, 464, 0, 0, - 0, 19, 0, 0, 0, 20, 21, 0, 22, -529, - -529, -529, 0, 23, 24, 25, 26, 0, 27, 28, - 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, - 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 461, 59, -108, -108, 2, 3, 4, 5, 0, 6, - 7, 462, 9, 10, 0, 0, -584, 0, 11, 12, - 13, 14, 15, 16, 463, 464, 0, 0, 0, 19, - 0, 0, 0, 20, 21, 0, 22, -584, -584, 0, - 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, - 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, - -584, 50, 0, 51, 52, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 55, 56, 0, 57, 0, 58, 461, 59, - -108, -108, 2, 3, 4, 5, 0, 6, 7, 462, - 9, 10, -114, -114, -114, -114, 11, 12, 13, 14, - 15, 16, 463, 464, 0, 0, 0, 19, 0, 0, - 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 46, 47, 48, 49, 0, 50, - 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 55, 56, 0, 57, 0, 58, 461, 59, -108, -108, - 2, 3, 4, 5, 0, 6, 7, 462, 9, 10, - 0, 0, -114, 0, 11, 12, 13, 14, 15, 16, - 463, 464, 0, 0, 0, 19, 0, 0, 0, 20, - 21, 0, 22, -114, -114, -114, 0, 23, 24, 25, - 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, - 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, - 0, 57, 0, 58, 461, 59, -108, -108, 2, 3, - 4, 5, 0, 6, 7, 462, 9, 10, 0, 0, - -114, 0, 11, 12, 13, 14, 15, 16, 463, 464, - 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, - 22, -114, -114, 0, 0, 23, 24, 25, 26, 0, - 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, - 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 46, 47, 48, 49, -114, 50, 0, 51, 52, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, - 0, 58, 461, 59, -108, -108, 2, 3, 4, 5, - 0, 6, 7, 462, 9, 10, 0, 0, -114, 0, - 11, 12, 13, 14, 15, 16, 463, 464, 0, 0, - 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, - -114, -114, 0, 23, 24, 25, 26, 0, 27, 28, - 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, - 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 461, 59, -108, -108, 2, 3, 4, 5, 0, 6, - 7, 462, 9, 10, 0, 0, -114, 0, 11, 12, - 13, 14, 15, 16, 463, 464, 0, 0, 0, 19, - 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, - 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, - 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 0, 0, -114, -114, 35, 0, 36, - 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, - 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 55, 56, 0, 57, 0, 58, 461, 59, - -108, -108, 2, 3, 4, 5, 0, 6, 7, 462, - 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, - 15, 16, 463, 464, 0, 0, 0, 19, 0, 0, - 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 46, 47, 48, 49, 0, 50, - -114, 51, 52, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 55, 56, 0, 57, 0, 58, 461, 59, -108, -108, - 2, 3, 4, 5, 0, 6, 7, 462, 9, 10, - 0, 0, -114, -114, 11, 12, 13, 14, 15, 16, - 463, 464, 0, 0, 0, 19, 0, 0, 0, 20, - 21, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, - 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, - 0, 57, 0, 58, 461, 59, -108, -108, 2, 3, - 4, 5, 0, 6, 7, 462, 9, 10, 0, 0, - -114, 0, 11, 12, 13, 14, 15, 16, 463, 464, - 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, - 22, 0, 0, 0, -114, 23, 24, 25, 26, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, @@ -2274,11 +2084,88 @@ static const yytype_int16 yytable[] = 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, - 0, 58, 461, 59, -108, -108, 2, 3, 4, 5, - 0, 6, 7, 462, 9, 10, 0, 0, -114, 0, - 11, 12, 13, 14, 15, 16, 463, 464, 0, 0, + 0, 58, 426, 59, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 427, 9, 10, -115, -115, -115, -115, + 11, 12, 13, 14, 15, 16, 428, 429, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, -115, + -115, -115, -115, 23, 24, 25, 26, -115, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, -115, -115, -115, -115, 35, + 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, -115, 50, -115, 51, 52, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, + -115, 59, 426, 0, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 427, 9, 10, 0, 0, -114, 0, + 11, 12, 13, 14, 15, 16, 428, 429, 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, - 0, 0, 0, 23, 24, 25, 26, -114, 27, 28, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, -114, -114, -114, -114, 35, + 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, + 426, 59, -108, -108, 2, 3, 4, 5, 0, 6, + 7, 427, 9, 10, 0, 0, -507, 0, 11, 12, + 13, 14, 15, 16, 428, 429, 0, 0, 0, 19, + 0, 0, 0, 20, 21, 0, 22, -507, -507, -507, + 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, + 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, + 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 0, 55, 56, 0, 57, 0, 58, 426, 59, + -108, -108, 2, 3, 4, 5, 0, 6, 7, 427, + 9, 10, 0, 0, -562, 0, 11, 12, 13, 14, + 15, 16, 428, 429, 0, 0, 0, 19, 0, 0, + 0, 20, 21, 0, 22, -562, -562, 0, 0, 23, + 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, + 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, + 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 47, 48, 49, -562, 50, + 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, + 55, 56, 0, 57, 0, 58, 426, 59, -108, -108, + 2, 3, 4, 5, 0, 6, 7, 427, 9, 10, + 0, 0, -508, 0, 11, 12, 13, 14, 15, 16, + 428, 429, 0, 0, 0, 19, 0, 0, 0, 20, + 21, 0, 22, -508, -508, -508, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, + 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, + 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, + 0, 57, 0, 58, 426, 59, -108, -108, 2, 3, + 4, 5, 0, 6, 7, 427, 9, 10, 0, 0, + -563, 0, 11, 12, 13, 14, 15, 16, 428, 429, + 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, + 22, -563, -563, 0, 0, 23, 24, 25, 26, 0, + 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, + 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 47, 48, 49, -563, 50, 0, 51, 52, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 426, 59, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 427, 9, 10, -114, -114, -114, -114, + 11, 12, 13, 14, 15, 16, 428, 429, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, @@ -2287,23 +2174,87 @@ static const yytype_int16 yytable[] = 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, - 461, 59, -108, -108, 2, 3, 4, 5, 0, 6, - 7, 462, 9, 10, 0, 0, -114, 0, 11, 12, - 13, 14, 15, 16, 463, 464, 0, 0, 0, 19, - 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, + 426, 59, -108, -108, 2, 3, 4, 5, 0, 6, + 7, 427, 9, 10, 0, 0, -114, 0, 11, 12, + 13, 14, 15, 16, 428, 429, 0, 0, 0, 19, + 0, 0, 0, 20, 21, 0, 22, -114, -114, -114, 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 0, 0, 0, -114, 35, 0, 36, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 54, 0, 55, 56, 0, 57, 0, 58, 461, 59, - -108, -108, 2, 3, 4, 5, 0, 6, 7, 462, - 9, 10, 0, 0, 0, 0, 11, 12, 13, 14, - 15, 16, 463, 464, 0, 0, 0, 19, 0, 0, - 0, 20, 21, 0, 22, 0, 0, 0, 0, 23, + 54, 0, 55, 56, 0, 57, 0, 58, 426, 59, + -108, -108, 2, 3, 4, 5, 0, 6, 7, 427, + 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, + 15, 16, 428, 429, 0, 0, 0, 19, 0, 0, + 0, 20, 21, 0, 22, -114, -114, 0, 0, 23, + 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, + 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, + 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 47, 48, 49, -114, 50, + 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, + 55, 56, 0, 57, 0, 58, 426, 59, -108, -108, + 2, 3, 4, 5, 0, 6, 7, 427, 9, 10, + 0, 0, -114, 0, 11, 12, 13, 14, 15, 16, + 428, 429, 0, 0, 0, 19, 0, 0, 0, 20, + 21, 0, 22, 0, -114, -114, 0, 23, 24, 25, + 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, + 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, + 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, + 0, 57, 0, 58, 426, 59, -108, -108, 2, 3, + 4, 5, 0, 6, 7, 427, 9, 10, 0, 0, + -114, 0, 11, 12, 13, 14, 15, 16, 428, 429, + 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, + 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 32, 33, 34, 0, 0, -114, + -114, 35, 0, 36, 37, 38, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 426, 59, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 427, 9, 10, 0, 0, -114, 0, + 11, 12, 13, 14, 15, 16, 428, 429, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, + 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, 0, 50, -114, 51, 52, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, + 426, 59, -108, -108, 2, 3, 4, 5, 0, 6, + 7, 427, 9, 10, 0, 0, -114, -114, 11, 12, + 13, 14, 15, 16, 428, 429, 0, 0, 0, 19, + 0, 0, 0, 20, 21, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 27, 28, 0, 0, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, + 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 47, 48, 49, + 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 0, 55, 56, 0, 57, 0, 58, 426, 59, + -108, -108, 2, 3, 4, 5, 0, 6, 7, 427, + 9, 10, 0, 0, -114, 0, 11, 12, 13, 14, + 15, 16, 428, 429, 0, 0, 0, 19, 0, 0, + 0, 20, 21, 0, 22, 0, 0, 0, -114, 23, 24, 25, 26, 0, 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, @@ -2312,20 +2263,46 @@ static const yytype_int16 yytable[] = 0, 0, 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, - 55, 56, 0, 57, 0, 58, -114, 59, 2, 0, - 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, - 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, - 0, 0, 160, 161, 0, 0, 0, 20, 21, 0, - 0, 0, 0, 0, 0, 162, 0, 163, 0, 0, - 27, 28, 0, 0, 164, 30, 165, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 0, 38, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 167, 45, - 0, 0, 48, 0, 0, 0, 0, 51, 52, 0, - 0, 168, 0, 0, 0, 0, 0, 169, 170, 0, - 0, 0, 0, 0, 54, 283, 0, 0, 583, 57, - 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, + 55, 56, 0, 57, 0, 58, 426, 59, -108, -108, + 2, 3, 4, 5, 0, 6, 7, 427, 9, 10, + 0, 0, -114, 0, 11, 12, 13, 14, 15, 16, + 428, 429, 0, 0, 0, 19, 0, 0, 0, 20, + 21, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, -114, 27, 28, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 0, + 0, 0, 0, 35, 0, 36, 37, 38, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 47, 48, 49, 0, 50, 0, 51, + 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 54, 0, 55, 56, + 0, 57, 0, 58, 426, 59, -108, -108, 2, 3, + 4, 5, 0, 6, 7, 427, 9, 10, 0, 0, + -114, 0, 11, 12, 13, 14, 15, 16, 428, 429, + 0, 0, 0, 19, 0, 0, 0, 20, 21, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, + 27, 28, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, + -114, 35, 0, 36, 37, 38, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 47, 48, 49, 0, 50, 0, 51, 52, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 0, 57, + 0, 58, 426, 59, -108, -108, 2, 3, 4, 5, + 0, 6, 7, 427, 9, 10, 0, 0, 0, 0, + 11, 12, 13, 14, 15, 16, 428, 429, 0, 0, + 0, 19, 0, 0, 0, 20, 21, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 27, 28, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 32, 33, 34, 0, 0, 0, 0, 35, + 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 42, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 47, + 48, 49, 0, 50, 0, 51, 52, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 55, 56, 0, 57, 0, 58, + -114, 59, 2, 0, 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, 0, 0, 160, 161, 0, 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, 162, @@ -2335,8 +2312,8 @@ static const yytype_int16 yytable[] = 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 45, 0, 0, 48, 0, 0, 0, - 0, 51, 52, 281, 0, 168, 0, 0, 0, 0, - 0, 169, 170, 0, 0, 0, 0, 0, 54, 283, + 0, 51, 52, 267, 0, 168, 0, 0, 0, 0, + 0, 169, 170, 0, 0, 0, 0, 0, 54, 269, 0, 0, 0, 57, 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, 0, 0, @@ -2347,7 +2324,7 @@ static const yytype_int16 yytable[] = 0, 36, 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 45, 0, 0, - 48, 0, 0, 0, 0, 51, 52, 618, 0, 168, + 48, 0, 0, 0, 0, 51, 52, 582, 0, 168, 0, 0, 0, 0, 0, 169, 170, 0, 0, 0, 0, 0, 54, 171, 0, 0, 0, 57, 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, 9, 0, @@ -2374,7 +2351,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 167, 45, 0, 0, 48, 0, 0, 0, 0, 51, 52, 0, 0, 168, 0, 0, 0, 0, 0, 169, 170, 0, 0, 0, 0, 0, - 54, 279, 0, 0, 0, 57, 0, 58, 2, 59, + 54, 265, 0, 0, 0, 57, 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, 0, 0, 160, 161, 0, 0, 0, 20, 21, 0, @@ -2386,7 +2363,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 167, 45, 0, 0, 48, 0, 0, 0, 0, 51, 52, 0, 0, 168, 0, 0, 0, 0, 0, 169, 170, 0, - 0, 0, 0, 0, 54, 283, 0, 0, 0, 57, + 0, 0, 0, 0, 54, 269, 0, 0, 0, 57, 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, 0, 0, 160, 161, 0, 0, @@ -2398,33 +2375,44 @@ static const yytype_int16 yytable[] = 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 45, 0, 0, 48, 0, 0, 0, 0, 51, 52, 0, 0, 168, 0, 0, 0, 0, - 0, 169, 170, 0, 0, 0, 0, 0, 54, 747, + 0, 169, 170, 0, 0, 0, 0, 0, 54, 691, 0, 0, 0, 57, 0, 58, 2, 59, 4, 5, 0, 6, 154, 155, 9, 0, 0, 0, 0, 0, 11, 12, 13, 156, 157, 158, 0, 159, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 163, 0, 0, 27, 28, - 0, 0, 164, 30, 165, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 441, 0, 0, - 0, 36, 0, 38, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, - 0, 0, -329, -329, 442, 0, 167, 45, 0, 0, - 48, 0, 0, 0, 0, 51, 52, 0, 0, 168, - 0, 0, -329, -329, -329, -329, 0, -329, -329, 0, - 0, 0, 54, 0, 0, 0, 0, 57, 441, 58, - 0, 59, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 0, 0, 0, 0, 510, 511, 512, 513, 514, - 515, 516, 517, -329, -329, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -329, -329, -329, -329, 0, -329, -329, - 0, -626, -626, -626, 0, 0, 0, 0, -329, 0, - 307, 0, 0, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 0, 0, 0, 0, 510, 511, 512, 513, - 514, 515, 516, 517, 0, 2, 0, 0, 0, 0, + 0, 2, 164, 30, 165, 0, 0, 154, 155, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 156, 157, + 158, 36, 159, 38, 39, 0, 161, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 0, 0, 162, 0, + 163, 0, 0, 27, 28, 0, 167, 45, 30, 165, + 48, 0, 0, 0, 0, 51, 52, 166, 0, 168, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 4, 338, 54, 339, 154, 155, 9, 57, 0, 58, + 756, 59, 11, 12, 13, 156, 157, 158, 0, 159, + 0, 167, 0, 161, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 168, 162, 0, 163, 0, 0, + 27, 28, 0, 0, 0, 30, 165, 0, 864, 0, + 0, 0, 0, 0, 166, 0, 0, -329, 0, 0, + 0, 0, 0, 36, 0, 38, 39, 0, 489, 490, + 0, 0, 491, 492, 493, 0, 0, 41, 0, 0, + 0, 0, -329, -329, 408, 0, 0, 0, 167, 45, + 494, 495, 48, 0, 0, 0, 0, 0, 0, 496, + 0, 168, -329, -329, -329, -329, 0, -329, -329, 0, + 0, 0, 0, 0, 54, 0, 0, 0, -327, 263, + 0, 58, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 0, 0, 0, 0, 475, 476, 477, 478, 479, + 480, 481, 482, -327, -327, 0, 0, 0, 778, 0, + 0, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 0, 0, 0, -327, -327, -327, -327, 0, -327, -327, + 0, 0, 0, 0, 0, 0, 0, 0, -329, 0, + 292, 0, 0, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 0, 0, 0, 0, 475, 476, 477, 478, + 479, 480, 481, 482, 0, 2, 0, 0, 0, 0, 0, 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 0, 159, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, -329, - 0, 307, 162, 0, 163, 0, 0, 27, 28, 2, + 161, 0, 0, 0, 0, 0, 0, 0, 0, -327, + 0, 292, 162, 0, 163, 0, 0, 27, 28, 2, 0, 0, 30, 165, 0, 154, 155, 0, 0, 0, 0, 166, 0, 0, 0, 0, 156, 157, 158, 0, 159, 0, 38, 39, 161, 0, 0, 0, 0, 0, @@ -2432,721 +2420,535 @@ static const yytype_int16 yytable[] = 0, 27, 28, 0, 2, 167, 30, 165, 0, 48, 154, 155, 0, 0, 0, 166, 0, 0, 168, 0, 0, 156, 157, 158, 0, 159, 0, 0, 0, 161, - 0, 54, 0, 0, 0, 0, 277, 0, 41, 0, + 0, 54, 0, 0, 0, 0, 263, 0, 41, 0, 0, 162, 0, 163, 0, 0, 27, 28, 2, 167, 0, 30, 165, 48, 154, 155, 0, 0, 0, 0, 166, 0, 168, 0, 0, 156, 157, 158, 0, 159, - 0, 0, 0, 161, 0, 0, 0, 55, 56, 0, - 0, 0, 0, 812, 0, 162, 0, 163, 0, 0, + 0, 38, 39, 161, 0, 0, 904, 0, 0, 0, + 0, 0, 0, 41, 0, 162, 0, 163, 0, 0, 27, 28, 0, 2, 167, 30, 165, 0, 48, 154, 155, 0, 0, 0, 166, 0, 0, 168, 0, 0, - 156, 157, 158, 0, 159, 0, 0, 0, 161, 0, - 0, 813, 0, 0, 0, 0, 0, 41, 0, 0, + 156, 157, 158, 0, 159, 38, 39, 0, 161, 0, + 54, 0, 0, 0, 0, 0, 0, 41, 0, 0, 162, 0, 163, 0, 0, 27, 28, 2, 167, 0, 30, 165, 48, 154, 155, 0, 0, 0, 0, 166, 0, 168, 0, 0, 156, 157, 158, 0, 159, 0, - 0, 0, 161, 0, 0, 870, 0, 0, 0, 0, - 0, 0, 812, 0, 162, 0, 163, 0, 0, 27, - 28, 0, 2, 167, 30, 165, 0, 48, 154, 155, - 0, 0, 0, 166, 0, 0, 168, 0, 0, 156, - 157, 158, 0, 159, 0, 0, 0, 161, 0, 0, - 920, 0, 0, 0, 0, 0, 41, 0, 0, 162, - 0, 163, 0, 0, 27, 28, 2, 167, 0, 30, - 165, 48, 154, 155, 0, 0, 0, 0, 166, 0, - 168, 0, 0, 156, 157, 158, 0, 159, 0, 38, - 39, 161, 0, 0, 960, 0, 0, 0, 0, 0, - 0, 41, 0, 162, 0, 163, 0, 0, 27, 28, - 0, 2, 167, 30, 165, 0, 48, 154, 155, 0, - 0, 0, 166, 0, 0, 168, 0, 0, 156, 157, - 158, 0, 159, 38, 39, 0, 161, 0, 54, 0, - 0, 0, 0, 0, 0, 41, 0, 0, 162, 0, - 163, 0, 0, 27, 28, 2, 167, 0, 30, 165, - 48, 154, 155, 0, 0, 0, 0, 166, 0, 168, - 0, 0, 156, 157, 158, 0, 159, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 41, 0, 162, 0, 163, 0, 0, 27, 28, 0, - 0, 167, 30, 165, 0, 48, 0, 0, 0, 0, - 0, 166, 826, 0, 168, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 156, 157, 158, 0, 159, - 0, 0, 0, 161, 0, 167, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 162, 889, 163, 168, 0, - 27, 28, 2, 0, 0, 30, 165, 0, 154, 155, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 156, - 157, 158, 0, 159, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 0, 162, - 0, 163, 0, 0, 27, 28, 0, 0, 167, 30, - 165, 0, 48, 0, 0, 0, 0, 0, 166, 964, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 0, 0, - 0, 41, 510, 511, 512, 513, 514, 515, 516, 517, - 0, 0, 167, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 0, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 0, 0, - 0, 917, 510, 511, 512, 513, 514, 515, 516, 517, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 0, - 0, 0, 0, 510, 511, 512, 513, 514, 515, 516, - 517, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 0, 952, 0, 0, 510, 511, 512, 513, 514, 515, - 516, 517, 0, 0, 322, 0, 326, 327, 0, 331, - 0, 335, 982, 339, 0, 342, 0, 346, 0, 349, - 0, 356, 0, 363, 389, 395, 0, 0, 0, 403, - 0, 0, 408, 994, 0, 414, 0, 419, 0, 0, - 0, 0, 0, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 0, 445, 0, 451, 510, 511, 512, 513, - 514, 515, 516, 517 + 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 162, 0, 163, 0, 0, 27, + 28, 0, 0, 167, 30, 165, 0, 48, 0, 0, + 0, 0, 0, 166, 544, 0, 168, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 156, 157, 158, + 0, 159, 0, 0, 0, 161, 0, 167, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 162, 770, 163, + 168, 0, 27, 28, 2, 0, 0, 30, 165, 0, + 154, 155, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 156, 157, 158, 0, 159, 0, 0, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, + 0, 162, 0, 163, 0, 0, 27, 28, 0, 0, + 167, 30, 165, 0, 48, 0, 0, 0, 0, 0, + 166, 833, 0, 168, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 156, 157, 158, 0, 159, 0, + 0, 0, 161, 0, 167, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 162, 908, 163, 168, 0, 27, + 28, 0, 0, 0, 30, 165, 0, 0, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 168 }; static const yytype_int16 yycheck[] = { - 0, 58, 263, 10, 213, 171, 263, 263, 152, 178, - 570, 608, 470, 182, 457, 458, 479, 480, 688, 188, - 583, 190, 191, 9, 482, 621, 26, 9, 734, 9, - 9, 36, 738, 36, 9, 35, 205, 9, 247, 9, - 683, 36, 36, 9, 17, 0, 353, 47, 17, 17, - 36, 36, 17, 360, 36, 9, 9, 491, 130, 59, - 132, 61, 9, 9, 36, 9, 36, 9, 126, 17, - 70, 714, 72, 46, 74, 75, 41, 77, 36, 79, - 9, 81, 36, 83, 0, 85, 36, 87, 19, 89, - 36, 91, 92, 93, 36, 9, 36, 97, 67, 36, - 100, 36, 36, 103, 411, 105, 61, 36, 9, 9, - 26, 132, 36, 279, 36, 549, 36, 283, 139, 35, - 554, 121, 36, 123, 110, 130, 560, 132, 135, 132, - 110, 47, 132, 101, 36, 36, 36, 132, 132, 139, - 126, 123, 124, 59, 126, 61, 580, 132, 123, 124, - 132, 123, 124, 132, 70, 103, 72, 132, 74, 75, - 132, 77, 132, 79, 9, 81, 132, 83, 0, 85, - 766, 87, 878, 89, 734, 91, 92, 93, 132, 132, - 126, 97, 132, 746, 100, 132, 132, 103, 132, 105, - 132, 36, 862, 130, 26, 3, 4, 132, 132, 10, - 36, 36, 126, 132, 126, 121, 130, 123, 132, 672, - 132, 3, 4, 213, 9, 47, 132, 9, 132, 36, - 663, 9, 54, 139, 126, 9, 48, 0, 130, 61, - 132, 132, 132, 52, 9, 36, 36, 834, 70, 52, - 0, 36, 34, 35, 36, 36, 69, 247, 36, 36, - 34, 35, 36, 26, 36, 87, 36, 89, 36, 91, - 92, 36, 54, 55, 56, 57, 9, 59, 60, 126, - 54, 55, 56, 57, 47, 59, 60, 9, 123, 124, - 655, 126, 0, 283, 3, 4, 12, 132, 61, 121, - 126, 126, 36, 36, 130, 130, 132, 132, 72, 73, - 132, 61, 3, 125, 36, 125, 125, 139, 52, 126, - 0, 131, 125, 125, 772, 123, 124, 129, 110, 92, - 917, 952, 583, 130, 25, 126, 583, 583, 123, 124, - 130, 132, 132, 34, 126, 123, 124, 132, 130, 126, - 132, 132, 126, 61, 132, 132, 130, 121, 132, 413, - 132, 982, 132, 728, 132, 952, 125, 125, 125, 132, - 838, 129, 131, 994, 0, 429, 139, 283, 132, 847, - 804, 849, 36, 807, 123, 124, 58, 126, 753, 17, - 814, 125, 126, 980, 818, 982, 125, 88, 127, 90, - 26, 123, 124, 827, 95, 58, 17, 994, 99, 774, - 132, 39, 40, 104, 123, 124, 107, 108, 109, 110, - 785, 47, 125, 413, 127, 130, 117, 38, 39, 120, - 589, 122, 17, 51, 799, 61, 125, 128, 36, 429, - 129, 263, 114, 115, 116, 117, 118, 871, 872, 69, - 874, 142, 17, 38, 39, 40, 880, 125, 0, 127, - 19, 283, 596, 116, 117, 118, 92, 126, 892, 123, - 124, 125, 126, 38, 39, 40, 15, 16, 17, 18, - 470, 126, 123, 124, 26, 126, 685, 852, 127, 854, - 101, 915, 482, 36, 125, 746, 127, 921, 114, 746, - 746, 9, 123, 124, 125, 47, 132, 413, 15, 16, - 17, 18, 125, 139, 127, 125, 715, 127, 36, 61, - 283, 129, 125, 429, 127, 36, 34, 35, 36, 894, - 123, 124, 125, 898, 958, 123, 124, 961, 903, 904, - 36, 965, 123, 124, 125, 36, 54, 55, 56, 57, - 92, 59, 60, 123, 124, 125, 123, 124, 125, 125, - 984, 127, 609, 36, 470, 122, 123, 124, 933, 125, - 0, 127, 937, 123, 124, 125, 482, 123, 124, 944, - 36, 3, 4, 3, 4, 950, 951, 9, 17, 18, - 132, 747, 123, 124, 125, 36, 26, 139, 3, 4, - 38, 39, 110, 593, 126, 127, 64, 65, 36, 36, - 36, 36, 34, 35, 36, 19, 126, 47, 126, 125, - 133, 125, 130, 125, 132, 990, 74, 126, 126, 132, - 125, 61, 54, 55, 56, 57, 9, 59, 60, 87, - 88, 89, 90, 91, 92, 93, 94, 58, 470, 9, - 19, 125, 129, 129, 0, 126, 126, 283, 9, 125, - 482, 47, 92, 660, 132, 655, 127, 127, 125, 84, - 125, 668, 125, 127, 66, 5, 99, 127, 127, 61, - 26, 11, 12, 127, 127, 714, 92, 593, 110, 92, - 92, 92, 22, 23, 24, 92, 26, 92, 92, 92, - 30, 47, 132, 92, 126, 92, 244, 470, 130, 139, - 132, 92, 42, 92, 44, 61, 763, 47, 48, 482, - 92, 92, 52, 53, 247, 715, 715, 246, 549, 739, - 980, 61, 875, 458, 479, 998, 593, 830, 728, 678, - -1, 283, -1, 678, 253, -1, 92, -1, -1, 655, - -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, - -1, 583, -1, 753, -1, 95, 0, -1, -1, 99, - -1, 593, -1, -1, -1, -1, -1, -1, 108, 776, - -1, -1, 772, -1, 774, 782, 132, -1, -1, 9, - -1, -1, 26, 139, -1, 785, -1, -1, 128, -1, - -1, -1, -1, 34, 35, -1, -1, -1, -1, 799, - -1, -1, -1, 47, 34, 35, 36, -1, -1, -1, - -1, -1, 728, 54, 55, 56, 57, 61, 59, 60, - 593, -1, -1, 655, 54, 55, 56, 57, -1, 59, - 60, -1, -1, -1, 470, -1, -1, 753, -1, -1, - 0, -1, -1, 283, -1, -1, 482, -1, 92, -1, - 34, 35, 852, -1, 854, -1, 772, -1, 774, 866, - 9, -1, -1, -1, -1, -1, 26, -1, -1, 785, - 54, 55, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, 655, 799, -1, 34, 35, 47, 132, 130, - -1, -1, -1, -1, 894, 139, 728, -1, 898, -1, - 130, 61, 132, 903, 904, 54, 55, 56, 57, -1, - 59, 60, -1, -1, 746, -1, -1, -1, 470, -1, - -1, 753, -1, 9, -1, -1, 110, 283, -1, -1, - 482, -1, 92, 933, -1, -1, 852, 937, 854, 946, - 772, -1, 774, -1, 944, -1, 130, -1, 34, 35, - 950, 951, -1, 785, -1, 728, -1, 593, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 799, 54, 55, - 56, 57, 132, 59, 60, -1, -1, 0, 894, 139, - 753, 130, 898, 132, -1, -1, 986, 903, 904, -1, - 990, -1, -1, -1, -1, -1, -1, -1, 998, 772, - -1, 774, -1, 26, -1, -1, 9, -1, -1, -1, - -1, -1, 785, -1, -1, -1, -1, 933, -1, 655, - 852, 937, 854, -1, 47, -1, 799, -1, 944, -1, - 470, 34, 35, 36, 950, 951, -1, -1, 61, 283, - -1, 593, 482, -1, 130, -1, 132, 0, -1, -1, - -1, 54, 55, 56, 57, -1, 59, 60, -1, -1, - -1, -1, 894, -1, -1, -1, 898, -1, -1, 92, - 986, 903, 904, 26, 990, -1, -1, -1, -1, 852, - -1, 854, 998, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 728, -1, 47, -1, -1, -1, -1, -1, - -1, 933, -1, 655, -1, 937, -1, -1, 61, 132, - -1, -1, 944, -1, 470, -1, 139, 753, 950, 951, - -1, 894, -1, 283, -1, 898, 482, 130, -1, 132, - 903, 904, -1, -1, -1, -1, 772, -1, 774, 92, - -1, -1, -1, 9, -1, -1, -1, -1, -1, 785, - -1, -1, -1, 593, 986, -1, -1, -1, 990, -1, - 933, -1, -1, 799, 937, -1, 998, -1, 34, 35, - 36, 944, -1, -1, -1, -1, 728, 950, 951, 132, - -1, -1, -1, -1, -1, -1, 139, -1, 54, 55, - 56, 57, -1, 59, 60, -1, -1, -1, -1, -1, - -1, 753, -1, -1, 0, -1, -1, -1, -1, -1, - -1, -1, -1, 986, -1, 655, 852, 990, 854, -1, - 772, -1, 774, -1, -1, 998, 470, -1, -1, -1, - 26, -1, -1, 785, -1, -1, -1, 593, 482, -1, - -1, -1, -1, -1, -1, 9, -1, 799, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, 894, -1, - 283, -1, 898, -1, 130, 61, 132, 903, 904, -1, - 34, 35, 36, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 728, -1, - 54, 55, 56, 57, -1, 59, 60, 933, -1, 655, - 852, 937, 854, -1, -1, -1, -1, -1, 944, -1, - 470, 49, 50, 753, 950, 951, -1, -1, -1, -1, - 58, -1, 482, -1, -1, -1, -1, -1, -1, -1, - 283, -1, 772, -1, 774, -1, 132, -1, -1, -1, - -1, 0, 894, 139, -1, 785, 898, -1, -1, 593, - 986, 903, 904, -1, 990, -1, -1, -1, 9, 799, - -1, -1, 998, -1, -1, -1, 130, 26, 132, -1, - -1, -1, 728, 111, 112, 113, 114, 115, 116, 117, - 118, 933, -1, 34, 35, 937, -1, -1, 47, -1, - -1, -1, 944, -1, 9, -1, -1, 753, 950, 951, - -1, -1, 61, 54, 55, 56, 57, -1, 59, 60, - -1, 655, 852, -1, 854, -1, 772, -1, 774, 34, - 35, 36, -1, -1, -1, 0, -1, -1, -1, 785, - -1, -1, -1, 593, 986, -1, -1, -1, 990, 54, - 55, 56, 57, 799, 59, 60, 998, 470, -1, -1, - -1, 26, -1, -1, 894, -1, -1, -1, 898, 482, - -1, -1, -1, 903, 904, -1, -1, -1, -1, -1, - -1, -1, 47, 132, -1, 9, -1, -1, -1, 130, - 139, 132, -1, -1, 728, -1, 61, 283, 0, -1, - -1, -1, -1, 933, -1, 655, 852, 937, 854, -1, - 34, 35, 36, -1, 944, -1, -1, -1, -1, 753, - 950, 951, -1, -1, 26, 130, -1, 470, -1, -1, - 54, 55, 56, 57, -1, 59, 60, -1, 772, 482, - 774, -1, -1, -1, -1, 47, -1, -1, 894, -1, - -1, 785, 898, -1, -1, -1, 986, 903, 904, 61, - 990, -1, 0, -1, -1, 799, -1, 132, 998, -1, - -1, -1, -1, -1, 139, -1, -1, -1, 728, -1, - 593, -1, 0, -1, -1, -1, -1, 933, 26, -1, - -1, 937, -1, -1, -1, -1, -1, -1, 944, -1, - -1, -1, -1, 753, 950, 951, 130, -1, 26, 47, - -1, -1, -1, -1, -1, -1, -1, -1, 852, -1, - 854, -1, 772, 61, 774, -1, -1, -1, 9, 47, - 132, -1, -1, -1, 283, 785, -1, 139, -1, -1, - 986, -1, 655, 61, 990, -1, -1, -1, -1, 799, - 593, -1, 998, 34, 35, 36, -1, -1, -1, -1, - 894, -1, -1, -1, 898, -1, -1, -1, -1, 903, - 904, -1, -1, 54, 55, 56, 57, -1, 59, 60, - -1, 9, -1, -1, 470, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 132, -1, 482, -1, -1, 933, - -1, 139, 852, 937, 854, -1, 34, 35, 36, -1, - 944, -1, 655, -1, 132, 728, 950, 951, 283, 0, - -1, 139, -1, -1, -1, -1, 54, 55, 56, 57, - -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, - 753, -1, -1, -1, 894, 26, -1, -1, 898, 130, - -1, 132, 986, 903, 904, -1, 990, -1, -1, 772, - -1, 774, -1, -1, 998, -1, 47, -1, -1, -1, - -1, -1, 785, -1, -1, -1, -1, -1, -1, -1, - 61, 283, 110, 933, -1, 728, 799, 937, -1, 0, - -1, -1, -1, -1, 944, -1, -1, -1, 126, -1, - 950, 951, 130, -1, 132, -1, -1, 593, -1, -1, - 753, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 470, -1, -1, -1, -1, 0, -1, -1, 772, - -1, 774, -1, 482, -1, -1, 986, -1, -1, 852, - 990, 854, 785, -1, -1, 283, -1, -1, 998, 9, - 61, 132, 26, -1, -1, -1, 799, -1, 139, -1, - -1, -1, -1, -1, -1, 283, -1, -1, -1, 655, - -1, -1, -1, 47, 34, 35, 36, -1, -1, -1, - -1, 894, -1, -1, -1, 898, -1, 61, -1, -1, - 903, 904, -1, -1, 54, 55, 56, 57, -1, 59, - 60, 0, -1, -1, -1, 470, -1, -1, -1, 852, - -1, 854, -1, -1, -1, -1, -1, 482, -1, -1, - 933, 132, -1, -1, 937, -1, -1, 26, 139, -1, - -1, 944, -1, -1, -1, -1, -1, 950, 951, -1, - -1, -1, 728, -1, 593, -1, -1, -1, 47, -1, - 110, 894, -1, -1, -1, 898, -1, -1, 132, -1, - 903, 904, 61, -1, -1, 139, 126, 753, 470, -1, - 130, -1, 132, 986, -1, 0, -1, 990, -1, -1, - 482, -1, -1, -1, -1, 998, 772, -1, 774, -1, - 933, -1, -1, -1, 937, -1, -1, -1, -1, 785, - -1, 944, 283, -1, -1, -1, 655, 950, 951, -1, - -1, -1, 9, 799, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 593, -1, - -1, -1, 470, 132, -1, -1, 61, 34, 35, 36, - 139, 0, -1, 986, 482, -1, -1, 990, -1, 9, - -1, -1, 470, -1, -1, 998, -1, 54, 55, 56, - 57, -1, 59, 60, 482, -1, 852, 26, 854, -1, - -1, -1, -1, -1, 34, 35, 36, -1, -1, 728, - -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, - 655, 593, -1, -1, 54, 55, 56, 57, -1, 59, - 60, -1, 61, -1, 753, -1, -1, 132, 894, 283, - -1, -1, 898, 110, 139, -1, -1, 903, 904, -1, - -1, -1, -1, 772, -1, 774, -1, -1, -1, 126, - -1, -1, -1, 130, -1, 132, 785, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 933, -1, -1, - 799, 937, -1, 655, -1, 593, -1, -1, 944, -1, - -1, -1, -1, 728, 950, 951, 126, -1, 0, -1, - 130, -1, 132, 132, -1, 593, -1, -1, -1, -1, - 139, -1, -1, -1, 283, -1, -1, -1, 753, 470, - -1, -1, -1, -1, 26, -1, 9, -1, -1, -1, - 986, 482, -1, 852, 990, 854, -1, 772, -1, 774, - -1, -1, 998, -1, -1, 47, -1, 655, -1, -1, - 785, 34, 35, 36, -1, -1, 728, -1, -1, 61, - -1, 0, -1, -1, 799, -1, -1, 655, -1, -1, - -1, 54, 55, 56, 57, 894, 59, 60, -1, 898, - -1, 753, -1, -1, 903, 904, -1, -1, -1, 470, - -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 772, 482, 774, -1, 87, 88, 89, 90, 91, 92, - 93, 94, -1, 785, 933, -1, -1, 852, 937, 854, - 728, -1, 61, -1, -1, 944, 470, 799, -1, -1, - 132, 950, 951, -1, -1, -1, -1, 139, 482, -1, - 728, -1, 593, 126, -1, 753, -1, 130, -1, 132, - -1, -1, 27, 28, 283, -1, 31, 32, 33, 894, - -1, -1, -1, 898, 772, 753, 774, 986, 903, 904, - -1, 990, -1, -1, 49, 50, -1, 785, -1, 998, - 852, -1, 854, 58, 772, -1, 774, -1, -1, -1, - -1, 799, -1, 132, -1, -1, -1, 785, 933, -1, - 139, 470, 937, -1, 655, -1, -1, -1, -1, 944, - -1, 799, -1, 482, -1, 950, 951, -1, -1, 0, - -1, -1, 894, -1, -1, -1, 898, -1, -1, -1, - -1, 903, 904, -1, -1, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 852, -1, 854, -1, -1, 593, - 125, 986, -1, -1, -1, 990, -1, -1, -1, -1, - -1, 933, -1, 998, 852, 937, 854, -1, -1, -1, - -1, -1, 944, -1, 655, 470, -1, 728, 950, 951, - 61, 283, -1, -1, -1, -1, 894, 482, -1, -1, - 898, -1, -1, -1, -1, 903, 904, -1, -1, -1, - -1, -1, 753, -1, -1, -1, 894, -1, -1, -1, - 898, 655, -1, -1, 986, 903, 904, -1, 990, -1, - -1, 772, -1, 774, 593, 933, 998, -1, -1, 937, - -1, -1, -1, -1, 785, -1, 944, -1, -1, -1, - -1, 470, 950, 951, -1, 933, -1, 728, 799, 937, - -1, 132, -1, 482, -1, -1, 944, -1, 139, -1, - -1, -1, 950, 951, -1, -1, -1, -1, -1, 9, - -1, -1, 753, -1, -1, -1, -1, -1, 986, -1, - -1, -1, 990, -1, 728, -1, 655, -1, -1, -1, - 998, 772, -1, 774, 34, 35, 36, -1, 986, -1, - -1, 852, 990, 854, 785, -1, -1, -1, -1, 753, - 998, -1, -1, -1, 54, 55, 56, 57, 799, 59, - 60, -1, -1, -1, -1, -1, -1, -1, 772, -1, - 774, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 785, -1, 894, -1, -1, -1, 898, -1, -1, - -1, -1, 903, 904, -1, 799, -1, -1, -1, 728, - 655, -1, -1, -1, 593, -1, -1, -1, 470, -1, - -1, 852, -1, 854, -1, -1, -1, -1, -1, -1, - 482, -1, 933, -1, 753, -1, 937, -1, -1, -1, - 130, -1, 132, 944, -1, -1, -1, -1, -1, 950, - 951, -1, -1, 772, -1, 774, -1, -1, 852, -1, - 854, -1, -1, 894, -1, -1, 785, 898, -1, -1, - -1, -1, 903, 904, -1, -1, 655, -1, -1, -1, - 799, 470, -1, 728, -1, 986, -1, -1, -1, 990, - -1, -1, -1, 482, -1, -1, -1, 998, -1, -1, - 894, -1, 933, -1, 898, -1, 937, -1, 753, 903, - 904, -1, -1, 944, -1, -1, -1, -1, -1, 950, - 951, -1, -1, -1, -1, -1, -1, 772, -1, 774, - -1, -1, -1, 852, -1, 854, -1, -1, -1, 933, - 785, 593, -1, 937, -1, -1, -1, -1, -1, 728, - 944, -1, -1, -1, 799, 986, 950, 951, -1, 990, - -1, -1, -1, -1, -1, -1, -1, 998, -1, -1, - -1, -1, -1, -1, 753, 894, -1, -1, -1, 898, - -1, -1, -1, -1, 903, 904, -1, -1, -1, -1, - 9, -1, 986, 772, -1, 774, 990, -1, -1, -1, - -1, -1, -1, 655, 998, -1, 785, 852, -1, 854, - -1, -1, -1, -1, 933, 34, 35, 36, 937, -1, - 799, -1, -1, -1, -1, 944, -1, -1, -1, -1, - -1, 950, 951, -1, -1, 54, 55, 56, 57, 470, - 59, 60, -1, -1, -1, -1, -1, -1, -1, 894, - -1, 482, -1, 898, -1, -1, -1, -1, 903, 904, - -1, -1, -1, -1, -1, -1, 655, 986, -1, -1, - -1, 990, -1, 852, -1, 854, 728, -1, -1, 998, - -1, -1, -1, -1, -1, -1, -1, -1, 933, -1, - -1, 110, 937, -1, -1, -1, -1, -1, -1, 944, - -1, 753, -1, -1, -1, 950, 951, 126, -1, -1, - -1, 130, -1, 132, -1, 894, -1, -1, -1, 898, - 772, -1, 774, -1, 903, 904, -1, -1, -1, -1, - -1, -1, -1, 785, -1, -1, -1, -1, -1, 728, - -1, 986, -1, -1, -1, 990, -1, 799, -1, -1, - -1, -1, -1, 998, 933, -1, -1, -1, 937, -1, - -1, -1, -1, -1, 753, 944, -1, -1, -1, -1, - -1, 950, 951, -1, -1, -1, -1, -1, -1, -1, - 9, -1, -1, 772, -1, 774, -1, -1, -1, 9, - -1, -1, -1, -1, -1, -1, 785, -1, -1, -1, - 852, -1, 854, -1, -1, 34, 35, 986, -1, -1, - 799, 990, -1, -1, 34, 35, 36, -1, -1, 998, - -1, -1, -1, -1, 655, 54, 55, 56, 57, -1, - 59, 60, -1, -1, 54, 55, 56, 57, -1, 59, - 60, -1, 894, -1, -1, -1, 898, -1, -1, -1, - -1, 903, 904, -1, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 852, -1, 854, -1, 87, 88, 89, - 90, 91, 92, 93, 94, -1, -1, -1, -1, -1, - -1, 933, 9, -1, -1, 937, -1, -1, -1, 0, - 1, -1, 944, -1, -1, -1, -1, 728, 950, 951, - -1, 130, -1, 132, -1, 894, -1, 34, 35, 898, - 130, -1, 132, -1, 903, 904, -1, -1, -1, -1, - -1, -1, 753, -1, -1, -1, 9, 54, 55, 56, - 57, -1, 59, 60, 986, -1, -1, -1, 990, -1, - -1, 772, -1, 774, 933, -1, 998, -1, 937, -1, - 61, 34, 35, 36, 785, 944, -1, 14, 15, 16, - -1, 950, 951, -1, -1, -1, -1, -1, 799, 26, - -1, 54, 55, 56, 57, -1, 59, 60, -1, -1, - -1, -1, -1, 40, -1, 42, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, 986, -1, -1, - -1, 990, 59, 130, -1, 132, -1, 118, -1, 998, - -1, -1, -1, 70, -1, 72, -1, 74, 75, -1, - 77, 852, 79, 854, 81, -1, 83, -1, 85, -1, - 87, -1, 89, -1, 91, 92, 93, 148, -1, -1, - 97, -1, -1, 100, -1, -1, 103, 130, 105, 132, - -1, -1, -1, 27, 28, -1, -1, 31, 32, 33, - -1, -1, -1, 894, 121, -1, 123, 898, -1, -1, - -1, -1, 903, 904, -1, 49, 50, -1, -1, -1, - -1, -1, -1, -1, 58, 27, 28, -1, -1, 31, - 32, 33, -1, -1, 151, 152, -1, 208, -1, 210, - -1, -1, 933, -1, -1, 216, 937, 49, 50, -1, - -1, -1, -1, 944, 171, -1, 58, -1, -1, 950, - 951, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 256, -1, -1, 259, 123, - 124, -1, -1, -1, -1, 986, 213, -1, -1, 990, - 217, -1, -1, -1, 275, 107, -1, 998, 110, 111, - 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, - -1, -1, -1, -1, -1, 296, -1, -1, 245, 246, - 247, -1, -1, -1, -1, -1, -1, -1, -1, 256, - -1, -1, -1, -1, -1, 262, 263, -1, -1, -1, + 0, 171, 58, 213, 435, 10, 251, 251, 152, 251, + 573, 422, 423, 548, 632, 585, 447, 178, 444, 445, + 678, 182, 36, 535, 682, 235, 26, 188, 9, 190, + 191, 17, 17, 9, 327, 35, 627, 36, 896, 381, + 333, 36, 17, 17, 205, 132, 17, 47, 36, 123, + 124, 126, 139, 456, 36, 397, 41, 36, 132, 59, + 36, 61, 3, 4, 36, 39, 40, 658, 926, 36, + 70, 46, 72, 36, 74, 75, 36, 77, 36, 79, + 938, 81, 36, 83, 0, 85, 379, 87, 125, 89, + 10, 91, 92, 93, 131, 265, 67, 97, 602, 269, + 100, 9, 36, 103, 36, 105, 3, 4, 19, 36, + 26, 514, 126, 36, 36, 36, 519, 103, 132, 35, + 69, 121, 525, 123, 123, 124, 34, 35, 36, 110, + 135, 47, 132, 132, 110, 123, 124, 132, 126, 139, + 710, 36, 545, 59, 132, 61, 54, 55, 56, 57, + 126, 59, 60, 132, 70, 690, 72, 36, 74, 75, + 132, 77, 36, 79, 822, 81, 678, 83, 672, 85, + 130, 87, 132, 89, 132, 91, 92, 93, 132, 52, + 36, 97, 123, 124, 100, 36, 0, 103, 806, 105, + 616, 123, 124, 697, 126, 36, 607, 36, 132, 126, + 132, 36, 110, 126, 126, 121, 36, 123, 130, 132, + 132, 132, 26, 213, 718, 778, 132, 36, 126, 0, + 9, 17, 130, 139, 132, 729, 123, 124, 123, 124, + 36, 48, 36, 47, 12, 235, 9, 132, 125, 743, + 54, 126, 36, 52, 131, 34, 35, 61, 0, 123, + 124, 130, 125, 132, 0, 125, 70, 132, 132, 129, + 36, 34, 35, 36, 36, 54, 55, 56, 57, 269, + 59, 60, 36, 87, 26, 89, 132, 91, 92, 130, + 61, 54, 55, 56, 57, 716, 59, 60, 123, 124, + 0, 132, 796, 132, 798, 47, 126, 132, 861, 36, + 130, 0, 132, 548, 548, 101, 548, 121, 125, 61, + 130, 0, 132, 132, 17, 52, 125, 125, 132, 127, + 126, 110, 126, 125, 130, 139, 132, 129, 132, 123, + 124, 125, 126, 896, 838, 38, 39, 26, 842, 0, + 92, 130, 130, 847, 848, 748, 72, 73, 751, 58, + 126, 61, 69, 269, 130, 758, 132, 130, 47, 762, + 782, 924, 61, 926, 58, 26, 125, 125, 771, 791, + 129, 793, 61, 877, 125, 938, 127, 881, 123, 124, + 132, 381, 123, 124, 888, 126, 47, 139, 125, 126, + 894, 895, 125, 554, 127, 121, 130, 397, 101, 51, + 61, 123, 124, 92, 17, 114, 115, 116, 117, 118, + 3, 4, 815, 816, 125, 818, 127, 561, 17, 629, + 126, 824, 116, 117, 118, 38, 39, 40, 17, 18, + 934, 92, 125, 836, 127, 435, 126, 251, 19, 38, + 39, 40, 9, 132, 114, 690, 690, 447, 690, 659, + 139, 0, 3, 4, 0, 269, 859, 15, 16, 17, + 18, 127, 865, 123, 124, 381, 126, 34, 35, 36, + 129, 132, 15, 16, 17, 18, 36, 26, 139, 36, + 26, 397, 123, 124, 125, 38, 39, 54, 55, 56, + 57, 36, 59, 60, 123, 124, 125, 36, 47, 902, + 36, 47, 905, 123, 124, 125, 909, 123, 124, 125, + 64, 65, 61, 0, 125, 61, 127, 269, 574, 435, + 36, 691, 123, 124, 125, 928, 122, 123, 124, 36, + 3, 447, 123, 124, 125, 123, 124, 125, 125, 26, + 127, 36, 125, 92, 127, 125, 92, 127, 126, 127, + 9, 36, 25, 74, 36, 36, 126, 125, 558, 126, + 47, 34, 19, 130, 133, 132, 87, 88, 89, 90, + 91, 92, 93, 94, 61, 34, 35, 36, 125, 9, + 269, 125, 132, 132, 126, 126, 132, 125, 58, 9, + 139, 19, 125, 139, 126, 54, 55, 56, 57, 604, + 59, 60, 602, 126, 129, 92, 9, 612, 269, 129, + 132, 125, 47, 125, 127, 88, 125, 90, 84, 127, + 99, 435, 95, 127, 125, 127, 99, 127, 127, 127, + 66, 104, 61, 447, 107, 108, 109, 110, 658, 92, + 92, 92, 558, 92, 117, 132, 92, 120, 92, 122, + 92, 707, 139, 92, 92, 128, 3, 4, 92, 659, + 92, 92, 9, 235, 514, 92, 232, 126, 92, 142, + 659, 130, 672, 132, 683, 234, 924, 819, 444, 423, + 942, 558, 774, 435, 622, 622, 602, 34, 35, 36, + -1, -1, -1, 241, -1, 447, -1, 697, -1, -1, + -1, -1, -1, -1, -1, 0, -1, 54, 55, 56, + 57, -1, 59, 60, -1, 720, 716, -1, 718, -1, + 269, 726, 9, 269, -1, -1, -1, -1, 0, 729, + -1, 26, -1, -1, 548, -1, -1, -1, -1, -1, + -1, -1, -1, 743, 558, -1, 435, 34, 35, 36, + -1, -1, 47, -1, 26, -1, 672, -1, 447, -1, + -1, -1, -1, 110, -1, -1, 61, 54, 55, 56, + 57, -1, 59, 60, 435, 47, -1, -1, -1, 126, + -1, 697, 269, 130, 9, 132, 447, -1, 602, 61, + -1, -1, -1, -1, -1, -1, 796, 92, 798, -1, + 716, -1, 718, -1, -1, 810, 558, -1, -1, 34, + 35, 36, -1, 729, -1, -1, -1, -1, -1, -1, + 92, -1, -1, 110, -1, -1, -1, 743, -1, 54, + 55, 56, 57, -1, 59, 60, -1, 132, 838, 126, + -1, -1, 842, 130, 139, 132, -1, 847, 848, -1, + 602, -1, -1, -1, -1, -1, -1, -1, 672, -1, + 132, -1, -1, -1, -1, -1, -1, 139, -1, 558, + -1, -1, -1, -1, -1, -1, 690, 877, -1, -1, + 796, 881, 798, 697, -1, 890, 435, -1, 888, 435, + -1, -1, -1, -1, 894, 895, -1, 558, 447, -1, + -1, 447, 716, -1, 718, 130, -1, 132, -1, -1, + -1, -1, -1, 602, -1, 729, -1, -1, -1, -1, + 672, -1, 838, -1, -1, -1, 842, -1, -1, 743, + 930, 847, 848, -1, 934, -1, -1, -1, -1, -1, + -1, 602, 942, -1, -1, 697, -1, -1, 435, -1, + -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, + 447, 877, -1, -1, 716, 881, 718, -1, -1, 0, + -1, -1, 888, -1, 269, -1, -1, 729, 894, 895, + 34, 35, 796, 672, 798, -1, -1, -1, -1, -1, + -1, 743, -1, -1, -1, 26, -1, 269, -1, -1, + 54, 55, 56, 57, -1, 59, 60, -1, 697, 558, + -1, 672, 558, -1, 930, -1, 47, -1, 934, -1, + -1, -1, -1, -1, 838, -1, 942, 716, 842, 718, + 61, -1, -1, 847, 848, -1, 697, -1, -1, -1, + 729, -1, -1, -1, 796, -1, 798, -1, -1, -1, + -1, -1, -1, 602, 743, 716, 602, 718, -1, -1, + -1, 92, -1, 877, -1, -1, -1, 881, 729, -1, + -1, 558, 0, -1, 888, -1, 130, -1, 132, -1, + 894, 895, 743, -1, -1, -1, 838, -1, -1, -1, + 842, -1, -1, -1, -1, 847, 848, -1, 26, -1, + -1, 132, -1, -1, -1, -1, -1, 796, 139, 798, + -1, -1, -1, -1, -1, 602, 930, -1, -1, 47, + 934, -1, -1, 672, -1, 877, 672, -1, 942, 881, + -1, -1, -1, 61, -1, 796, 888, 798, -1, -1, + 435, -1, 894, 895, -1, -1, -1, -1, 697, 838, + -1, 697, 447, 842, -1, -1, -1, -1, 847, 848, + -1, -1, -1, 435, -1, -1, -1, 716, -1, 718, + 716, -1, 718, -1, -1, 447, -1, 838, 930, -1, + 729, 842, 934, 729, -1, 672, 847, 848, 877, -1, + 942, -1, 881, -1, 743, -1, -1, 743, -1, 888, + -1, -1, -1, -1, 132, 894, 895, -1, -1, -1, + 697, 139, -1, -1, -1, -1, 877, -1, -1, -1, + 881, -1, -1, -1, -1, -1, -1, 888, -1, 716, + -1, 718, -1, 894, 895, -1, 0, -1, 269, -1, + -1, 930, 729, -1, -1, 934, -1, 796, -1, 798, + 796, -1, 798, 942, -1, -1, 743, 49, 50, -1, + -1, -1, 26, 558, -1, -1, 58, -1, -1, 930, + -1, -1, -1, 934, -1, -1, -1, -1, -1, -1, + -1, 942, -1, 47, -1, -1, 558, -1, -1, 838, + -1, -1, 838, 842, -1, -1, 842, 61, 847, 848, + -1, 847, 848, -1, -1, -1, -1, 602, -1, 796, + -1, 798, -1, -1, -1, -1, -1, -1, -1, 111, + 112, 113, 114, 115, 116, 117, 118, -1, 877, -1, + 602, 877, 881, -1, -1, 881, -1, -1, -1, 888, + -1, 269, 888, -1, 0, 894, 895, -1, 894, 895, + -1, 838, -1, -1, -1, 842, -1, -1, -1, -1, + 847, 848, -1, -1, -1, -1, -1, -1, 132, -1, + 26, -1, -1, -1, -1, 139, -1, 672, -1, -1, + -1, 930, -1, -1, 930, 934, -1, -1, 934, -1, + 877, 47, -1, 942, 881, -1, 942, -1, -1, -1, + 672, 888, 697, -1, 435, 61, -1, 894, 895, 27, + 28, -1, -1, 31, 32, 33, 447, -1, -1, 0, + -1, 716, -1, 718, -1, 697, -1, -1, -1, -1, + -1, 49, 50, -1, 729, -1, -1, -1, -1, -1, + 58, -1, -1, 930, 716, 26, 718, 934, 743, -1, + -1, -1, -1, -1, -1, 942, -1, 729, 3, 4, + -1, -1, -1, -1, 9, -1, 47, -1, -1, -1, + -1, 743, -1, -1, -1, -1, 132, -1, -1, -1, + 61, -1, -1, 139, -1, -1, -1, 0, -1, 34, + 35, 36, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 796, -1, 798, -1, 269, -1, 435, -1, 54, + 55, 56, 57, 26, 59, 60, -1, -1, -1, 447, + -1, -1, -1, -1, 796, -1, 798, 558, -1, -1, + -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, 838, -1, -1, -1, 842, 61, -1, + -1, 132, 847, 848, -1, -1, -1, -1, 139, -1, + -1, -1, -1, -1, -1, 110, 838, -1, -1, -1, + 842, 602, -1, -1, -1, 847, 848, -1, -1, -1, + -1, 126, 877, -1, -1, 130, 881, 132, -1, -1, + -1, -1, -1, 888, -1, -1, -1, -1, -1, 894, + 895, -1, -1, -1, -1, 877, 9, -1, -1, 881, + -1, -1, -1, 269, -1, -1, 888, -1, -1, 132, + -1, -1, 894, 895, -1, -1, 139, -1, -1, 0, + 558, 34, 35, 36, -1, 930, -1, -1, -1, 934, + -1, 672, -1, -1, -1, -1, -1, 942, -1, -1, + -1, 54, 55, 56, 57, 26, 59, 60, 930, -1, + 0, -1, 934, -1, -1, -1, 697, -1, -1, -1, + 942, 435, -1, -1, 602, -1, 47, -1, -1, -1, + -1, -1, -1, 447, -1, 716, 26, 718, 269, -1, + 61, -1, -1, -1, -1, -1, -1, -1, 729, 5, + -1, -1, -1, -1, -1, 11, 12, 47, -1, -1, + -1, -1, 743, -1, -1, -1, 22, 23, 24, -1, + 26, 61, -1, -1, 30, -1, 9, 130, -1, 132, + -1, -1, -1, -1, -1, -1, 42, -1, 44, -1, + -1, 47, 48, -1, 672, -1, 52, 53, -1, -1, + -1, 34, 35, 36, -1, 61, 269, -1, 9, -1, + -1, 132, -1, -1, -1, 796, -1, 798, 139, 697, + -1, 54, 55, 56, 57, -1, 59, 60, 84, 435, + -1, -1, -1, 34, 35, 36, -1, -1, 716, 95, + 718, 447, 132, 99, 558, -1, -1, -1, -1, 139, + -1, 729, 108, 54, 55, 56, 57, 838, 59, 60, + -1, 842, -1, -1, -1, 743, 847, 848, -1, -1, + -1, -1, 128, -1, -1, -1, -1, 110, -1, 0, + -1, -1, -1, -1, -1, -1, -1, -1, 602, -1, + -1, -1, -1, 126, -1, -1, 877, 130, -1, 132, + 881, -1, -1, -1, 435, 26, -1, 888, -1, 110, + -1, -1, -1, 894, 895, -1, 447, -1, 796, -1, + 798, -1, -1, -1, -1, 126, 47, -1, -1, 130, + 9, 132, -1, -1, -1, -1, -1, -1, -1, -1, + 61, -1, 9, -1, -1, -1, -1, -1, 269, 930, + -1, -1, 558, 934, -1, 34, 35, 36, 672, -1, + 838, 942, -1, -1, 842, -1, -1, 34, 35, 847, + 848, -1, 435, -1, -1, 54, 55, 56, 57, 269, + 59, 60, -1, 697, 447, -1, -1, 54, 55, 56, + 57, -1, 59, 60, -1, -1, 602, -1, 9, 877, + -1, -1, 716, 881, 718, -1, -1, -1, -1, -1, + 888, 132, -1, -1, 0, 729, 894, 895, 139, -1, + -1, -1, -1, 34, 35, 36, -1, 558, -1, 743, + -1, 110, -1, -1, -1, -1, -1, 0, -1, -1, + 26, -1, -1, 54, 55, 56, 57, 126, 59, 60, + -1, 130, 930, 132, 9, -1, 934, -1, -1, -1, + -1, 47, -1, 130, 942, 132, 672, -1, -1, -1, + -1, 602, -1, -1, -1, 61, -1, -1, -1, 34, + 35, 36, 796, -1, 798, -1, -1, -1, -1, -1, + -1, 697, -1, -1, -1, 558, -1, -1, 61, 54, + 55, 56, 57, -1, 59, 60, -1, -1, -1, -1, + 716, -1, 718, -1, 435, -1, -1, -1, -1, 130, + -1, 132, -1, 729, 838, -1, 447, -1, 842, -1, + -1, -1, -1, 847, 848, -1, -1, 743, -1, 602, + -1, 672, -1, -1, -1, 435, 132, 0, 269, -1, + -1, -1, -1, 139, -1, -1, -1, 447, -1, -1, + -1, -1, -1, 877, -1, -1, 697, 881, -1, 132, + -1, -1, -1, 26, 888, 130, 139, 132, -1, 9, + 894, 895, -1, -1, -1, 716, -1, 718, -1, -1, + 796, -1, 798, -1, 47, -1, -1, -1, 729, -1, + -1, -1, -1, -1, 34, 35, 36, -1, 61, 672, + -1, -1, 743, -1, -1, -1, 930, -1, -1, -1, + 934, -1, -1, -1, 54, 55, 56, 57, 942, 59, + 60, -1, 838, -1, 697, -1, 842, 558, -1, -1, + -1, 847, 848, -1, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 716, -1, 718, -1, 87, 88, 89, + 90, 91, 92, 93, 94, 796, 729, 798, 558, -1, + -1, 877, -1, -1, -1, 881, -1, -1, -1, 132, + 743, 602, 888, 269, -1, -1, 139, -1, 894, 895, + -1, -1, -1, 123, 124, 125, -1, -1, -1, -1, + 130, 0, 132, -1, 0, -1, -1, 838, -1, -1, + -1, 842, 602, -1, 435, -1, 847, 848, -1, -1, + -1, -1, -1, -1, 930, -1, 447, 26, 934, -1, + -1, -1, -1, 796, -1, 798, 942, -1, -1, -1, + -1, 9, -1, -1, -1, -1, 877, -1, 47, -1, + 881, 672, -1, -1, -1, -1, -1, 888, -1, -1, + -1, -1, 61, 894, 895, 61, 34, 35, 36, -1, + -1, -1, -1, -1, -1, 838, 697, -1, -1, 842, + -1, -1, 672, -1, 847, 848, 54, 55, 56, 57, + -1, 59, 60, -1, -1, 716, -1, 718, -1, 930, + -1, -1, -1, 934, -1, -1, -1, 697, 729, -1, + -1, 942, -1, -1, 877, -1, 269, -1, 881, -1, + -1, -1, 743, -1, -1, 888, 716, -1, 718, -1, + -1, 894, 895, 132, -1, -1, 132, 558, -1, 729, + 139, -1, -1, 139, -1, -1, -1, -1, -1, 435, + -1, -1, -1, 743, -1, -1, -1, 0, -1, -1, + -1, 447, 130, -1, 132, 9, -1, 930, -1, -1, + -1, 934, 435, -1, -1, 796, -1, 798, -1, 942, + -1, 602, -1, -1, 447, -1, -1, -1, -1, -1, + 34, 35, 36, -1, 0, -1, -1, -1, -1, 9, + -1, -1, -1, -1, -1, -1, 796, -1, 798, -1, + 54, 55, 56, 57, -1, 59, 60, 838, 61, -1, + -1, 842, -1, -1, 34, 35, 847, 848, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 279, -1, -1, -1, 283, -1, -1, 0, - 1, -1, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, 302, 303, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, - -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, - 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, - 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 83, 84, 85, 86, -1, 31, 32, 33, - -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, - -1, 102, -1, 104, 105, 49, 50, 108, -1, -1, - 9, -1, 453, -1, 58, -1, -1, -1, -1, -1, - 121, -1, 123, 124, -1, 126, 413, 128, -1, 130, - -1, -1, -1, -1, -1, 34, 35, 36, -1, -1, - 481, -1, 429, -1, -1, -1, -1, -1, 489, -1, - -1, 492, -1, 494, -1, 54, 55, 56, 57, -1, - 59, 60, -1, -1, -1, -1, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 74, 75, 76, 77, 78, + -1, -1, -1, -1, 54, 55, 56, 57, 838, 59, + 60, 672, 842, -1, -1, 61, 877, 847, 848, -1, + 881, -1, -1, -1, -1, -1, -1, 888, -1, -1, + 269, -1, 558, 894, 895, -1, 697, -1, -1, -1, + -1, -1, 435, -1, -1, -1, 130, 877, 132, 132, + -1, 881, -1, -1, 447, 716, 139, 718, 888, -1, + -1, -1, -1, 9, 894, 895, -1, -1, 729, 930, + 9, -1, -1, 934, -1, -1, 602, 9, -1, -1, + 130, 942, 743, -1, -1, -1, 132, -1, 34, 35, + 36, -1, -1, 139, -1, 34, 35, 36, -1, 602, + 930, -1, 34, 35, 934, -1, -1, 9, 54, 55, + 56, 57, 942, 59, 60, 54, 55, 56, 57, -1, + 59, 60, 54, 55, 56, 57, -1, 59, 60, -1, + -1, -1, 34, 35, -1, 796, -1, 798, -1, -1, + -1, -1, -1, -1, -1, -1, 672, -1, -1, -1, + -1, -1, 54, 55, 56, 57, -1, 59, 60, -1, + -1, -1, -1, -1, -1, 558, -1, -1, -1, 672, + -1, 697, -1, -1, -1, -1, -1, 838, -1, -1, + -1, 842, -1, -1, 130, -1, 847, 848, -1, -1, + 716, 130, 718, 132, 697, -1, 435, 9, 130, 435, + 132, -1, -1, 729, -1, -1, -1, -1, 447, 602, + -1, 447, -1, 716, -1, 718, 877, 743, -1, -1, + 881, -1, 34, 35, -1, -1, 729, 888, 130, -1, + 132, -1, -1, 894, 895, -1, -1, -1, -1, -1, + 743, -1, 54, 55, 56, 57, -1, 59, 60, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 930, + 796, -1, 798, 934, -1, -1, -1, -1, -1, 672, + -1, 942, -1, 74, 75, 76, 77, 78, 79, 80, + 81, 82, -1, 796, -1, 798, 87, 88, 89, 90, + 91, 92, 93, 94, 697, -1, -1, -1, -1, -1, + -1, -1, 838, -1, -1, -1, 842, -1, 130, 558, + 132, 847, 848, 716, -1, 718, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 838, 729, -1, -1, 842, + 5, 132, -1, -1, 847, 848, 11, 12, -1, -1, + 743, 877, 435, -1, -1, 881, -1, 22, 23, 24, + -1, 26, 888, 602, 447, 30, 602, -1, 894, 895, + -1, -1, -1, -1, 877, -1, -1, 42, 881, 44, + -1, -1, 47, 48, -1, 888, -1, 52, 53, 435, + -1, 894, 895, -1, -1, -1, 61, -1, -1, -1, + -1, 447, -1, 796, 930, 798, -1, -1, 934, -1, + -1, -1, -1, -1, -1, -1, 942, -1, -1, 84, + -1, -1, -1, -1, -1, -1, -1, 930, -1, -1, + 95, 934, -1, 672, 99, -1, 672, -1, -1, 942, + -1, -1, -1, 108, -1, 838, -1, -1, -1, 842, + -1, -1, -1, -1, 847, 848, -1, 122, 697, -1, + -1, 697, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 716, -1, 718, + 716, -1, 718, -1, 877, -1, -1, -1, 881, -1, + 729, -1, -1, 729, -1, 888, -1, -1, -1, -1, + 9, 894, 895, -1, 743, -1, -1, 743, -1, -1, + -1, 31, 32, 33, -1, -1, -1, -1, -1, 602, + -1, -1, -1, -1, -1, 34, 35, 36, -1, 49, + 50, -1, -1, -1, -1, -1, -1, 930, 58, -1, + -1, 934, -1, -1, -1, 54, 55, 56, 57, 942, + 59, 60, -1, -1, -1, -1, 602, 796, -1, 798, + 796, -1, 798, -1, -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, -1, -1, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, - -1, 542, -1, 544, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 555, -1, -1, 504, -1, -1, - -1, 562, -1, -1, 565, 566, 513, 568, -1, -1, - 571, 130, -1, 132, -1, -1, -1, 578, -1, -1, + 89, 90, 91, 92, 93, 94, -1, -1, -1, 672, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 838, + -1, -1, 838, 842, -1, -1, 842, -1, 847, 848, + -1, 847, 848, -1, 697, -1, -1, 126, -1, -1, + -1, 130, -1, 132, -1, -1, 672, -1, -1, -1, + -1, -1, -1, 716, -1, 718, -1, -1, 877, -1, + -1, 877, 881, -1, -1, 881, 729, -1, -1, 888, + -1, 697, 888, -1, 9, 894, 895, -1, 894, 895, + 743, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 716, -1, 718, -1, -1, -1, -1, -1, -1, 34, + 35, 36, -1, 729, -1, -1, -1, -1, -1, -1, + -1, 930, -1, -1, 930, 934, -1, 743, 934, 54, + 55, 56, 57, 942, 59, 60, 942, -1, -1, -1, + -1, -1, -1, 796, -1, 798, -1, -1, -1, 74, + 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, + -1, -1, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 594, -1, -1, -1, -1, 545, -1, - 547, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5, -1, 7, 8, -1, 10, 11, - 12, 13, -1, 570, -1, -1, -1, 19, 20, 21, - 22, 23, 24, -1, 26, -1, 583, -1, 30, -1, - -1, -1, -1, -1, -1, -1, 593, -1, -1, 596, - 42, -1, 44, -1, -1, 47, 48, -1, 5, -1, - 52, 53, -1, -1, 11, 12, -1, -1, 669, 61, - -1, -1, -1, -1, -1, 22, 23, 24, 70, 26, - 72, 73, -1, 30, -1, -1, -1, -1, -1, -1, - -1, -1, 84, -1, -1, 42, -1, 44, -1, 10, - 47, 48, -1, 95, 96, 52, 53, 99, -1, 20, - 21, -1, -1, -1, 61, 716, 108, -1, 665, 666, - -1, -1, -1, 724, -1, 726, -1, -1, -1, 121, - -1, -1, -1, 734, 126, -1, 128, 84, 685, 50, - -1, -1, -1, -1, -1, -1, 57, 58, 95, -1, - -1, -1, 99, 754, -1, -1, -1, -1, 759, 106, - 761, 108, -1, -1, -1, -1, -1, -1, 715, -1, - -1, 718, -1, -1, 775, 722, 723, 778, 779, 780, - -1, -1, -1, 784, -1, 732, 787, 734, -1, -1, - -1, 738, 739, -1, -1, -1, -1, 744, -1, 746, - 747, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 811, -1, -1, -1, 74, 75, 76, 77, 78, 79, - 80, 81, 82, -1, 135, -1, -1, 87, 88, 89, - 90, 91, 92, 93, 94, 146, -1, -1, -1, -1, - -1, -1, 153, -1, -1, 846, -1, -1, -1, 160, - -1, -1, 853, -1, -1, 856, -1, 27, 169, 170, - -1, 31, 32, 33, -1, 812, 813, -1, -1, -1, - 27, 28, 132, -1, 31, 32, 33, -1, 879, 49, - 50, -1, -1, -1, -1, -1, -1, -1, 58, 836, - -1, 838, 49, 50, -1, -1, -1, -1, -1, -1, - 847, 58, 849, -1, 905, -1, -1, -1, -1, -1, - -1, -1, 913, 914, -1, -1, -1, -1, 919, -1, - -1, -1, -1, 870, -1, -1, 927, 928, 875, -1, - 931, 878, -1, 934, 935, -1, -1, -1, 249, -1, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 107, -1, 263, 110, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 274, 911, -1, 277, -1, -1, -1, - -1, -1, 973, 920, -1, 976, 923, -1, -1, -1, - -1, -1, 929, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 306, 307, -1, 9, 310, - -1, 312, -1, -1, -1, -1, -1, -1, 319, -1, - -1, -1, 323, 960, -1, -1, -1, 328, -1, -1, - -1, 332, -1, 34, 35, 336, -1, -1, -1, 340, - -1, -1, 343, -1, -1, -1, 347, -1, -1, -1, - 351, -1, -1, 54, 55, 56, 57, 358, 59, 60, - -1, -1, -1, -1, -1, -1, -1, -1, 1005, 1006, - -1, -1, -1, 74, 75, 76, 77, 78, 79, 80, - 81, 82, -1, -1, -1, -1, 87, 88, 89, 90, - 91, 92, 93, 94, -1, 396, -1, 398, -1, -1, - 401, -1, -1, 404, -1, -1, -1, -1, 409, -1, - -1, -1, -1, -1, 415, -1, -1, -1, -1, -1, - -1, 422, 423, 424, 425, 426, 427, 428, -1, 130, - -1, 132, -1, -1, -1, 436, -1, 438, -1, -1, - 441, 67, 68, 69, -1, 71, 447, 73, -1, -1, - 76, -1, 78, -1, 80, -1, -1, -1, 84, -1, - 86, -1, -1, -1, 90, -1, -1, -1, 94, 95, - -1, -1, -1, 99, -1, 101, -1, -1, 104, -1, - -1, -1, -1, 27, 28, -1, -1, 31, 32, 33, - -1, -1, -1, 119, 120, -1, 122, -1, -1, -1, - -1, -1, -1, -1, -1, 49, 50, -1, -1, -1, - -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, - -1, -1, -1, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, -1, -1, -1, -1, -1, 172, 173, 174, 175, - 176, 177, 178, 179, -1, 181, 182, 558, 184, 185, - 186, -1, 188, 564, 190, 191, 110, 111, 112, 113, - 114, 115, 116, 117, 118, -1, -1, 203, -1, 205, - 206, -1, 583, -1, -1, -1, -1, -1, -1, -1, - -1, 592, -1, -1, 220, 221, 222, 223, 224, 225, - 226, 227, -1, 229, 230, 606, 232, 233, 234, -1, - 236, 237, 238, -1, -1, 241, 242, 243, -1, -1, - 621, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 796, -1, 798, -1, -1, 838, -1, -1, -1, 842, + -1, -1, -1, -1, 847, 848, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 130, -1, 132, -1, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + -1, -1, 838, -1, 877, -1, 842, -1, 881, -1, + -1, 847, 848, -1, -1, 888, -1, -1, 14, 15, + 16, 894, 895, -1, -1, -1, -1, -1, 126, -1, + 26, -1, -1, 27, 28, -1, -1, 31, 32, 33, + -1, 877, -1, -1, 40, 881, 42, 43, -1, -1, + -1, 47, 888, -1, -1, 49, 50, 930, 894, 895, + -1, 934, -1, 59, 58, -1, -1, -1, -1, 942, + -1, -1, -1, -1, 70, -1, 72, -1, 74, 75, + -1, 77, -1, 79, -1, 81, -1, 83, -1, 85, + -1, 87, -1, 89, 930, 91, 92, 93, 934, -1, + -1, 97, -1, -1, 100, -1, 942, 103, -1, 105, + 0, 1, -1, -1, -1, -1, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 121, -1, 123, -1, -1, + -1, 125, 74, 75, 76, 77, 78, 79, 80, 81, + 82, -1, -1, -1, -1, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, 151, 152, -1, -1, -1, + -1, -1, 5, -1, 7, 8, -1, 10, 11, 12, + 13, 61, -1, -1, -1, 171, 19, 20, 21, 22, + 23, 24, -1, 26, 126, -1, 29, 30, -1, -1, + -1, 34, 35, -1, -1, -1, -1, -1, -1, 42, + -1, 44, -1, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, 213, 61, -1, + -1, 217, -1, -1, -1, -1, -1, 70, 118, 72, + 73, -1, -1, -1, -1, -1, -1, 233, 234, 235, + -1, 84, -1, -1, -1, -1, -1, -1, 244, -1, + -1, -1, 95, 96, 250, 251, 99, -1, 148, -1, + -1, 104, 105, 106, 107, 108, -1, -1, -1, 265, + -1, 114, 115, 269, -1, -1, -1, -1, 121, 122, + -1, -1, -1, 126, -1, 128, -1, 130, -1, -1, + -1, 27, 288, 289, -1, 31, 32, 33, -1, -1, + -1, -1, -1, -1, -1, -1, 67, 68, 69, -1, + 71, -1, 73, 49, 50, 76, -1, 78, 208, 80, + 210, -1, 58, 84, -1, 86, 216, -1, -1, 90, + -1, -1, -1, 94, 95, -1, -1, -1, 99, -1, + 101, -1, -1, 104, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 244, -1, -1, 247, 119, 120, + -1, 122, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 118, -1, -1, 381, -1, -1, -1, -1, + -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, + -1, 397, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 172, 173, 174, 175, 176, 177, 178, 179, -1, + 181, 182, -1, 184, 185, 186, -1, 188, -1, 190, + 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 203, -1, 205, 206, -1, -1, -1, -1, + -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, + 221, 222, 223, -1, 225, 226, 227, -1, -1, 230, + 231, -1, -1, 469, -1, -1, -1, 34, 35, 36, + -1, -1, 478, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 255, 256, 257, 54, 55, 56, + 57, -1, 59, 60, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 510, -1, 512, 74, 75, 76, + 77, 78, 79, 80, 81, 82, -1, -1, 418, -1, + 87, 88, 89, 90, 91, 92, 93, 94, -1, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 267, 268, -1, 270, 271, -1, 5, -1, 7, - 8, -1, 10, 11, 12, 13, -1, -1, -1, 660, - -1, 19, 20, 21, 22, 23, 24, 668, 26, -1, - -1, 29, 30, -1, -1, 676, 34, 35, -1, -1, - 681, -1, -1, -1, 42, -1, 44, -1, -1, 47, - 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, + -1, -1, 548, -1, -1, -1, 446, -1, -1, -1, + -1, -1, 558, -1, 454, 561, -1, 457, -1, 459, + -1, -1, -1, 130, -1, 132, -1, -1, -1, 74, + 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, + 351, -1, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 609, 610, -1, -1, 507, -1, 509, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 520, 126, -1, 629, -1, -1, -1, 527, -1, -1, + 530, 531, -1, 533, -1, -1, 536, -1, -1, -1, + -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, + -1, -1, 10, 659, -1, -1, 662, -1, -1, 559, + 666, 667, 20, 21, -1, -1, -1, -1, -1, -1, + 676, -1, 678, -1, -1, -1, 682, 683, -1, -1, + -1, -1, 688, -1, 690, 691, -1, -1, -1, -1, + 5, -1, 50, -1, -1, -1, 11, 12, -1, 57, + 58, -1, -1, -1, -1, -1, -1, 22, 23, 24, + -1, 26, -1, 613, -1, 30, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 42, -1, 44, + -1, -1, 47, 48, -1, -1, -1, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + 756, 757, -1, -1, -1, -1, -1, -1, -1, -1, + 660, -1, -1, -1, -1, -1, -1, -1, 668, 84, + 670, -1, -1, -1, 780, -1, 782, 135, 678, -1, + 95, -1, -1, 554, 99, 791, -1, 793, 146, -1, + -1, -1, -1, 108, -1, 153, 567, -1, 698, 570, + -1, -1, 160, 703, -1, 705, -1, 122, 814, -1, + -1, 169, 170, 819, -1, -1, 822, -1, -1, 719, + -1, -1, 722, 723, 724, -1, -1, 5, 728, -1, + -1, 731, -1, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 22, 23, 24, -1, 26, 855, + -1, -1, 30, -1, -1, 755, -1, -1, 864, -1, + -1, 867, -1, -1, 42, -1, 44, 873, -1, 47, + 48, -1, -1, -1, 52, 53, -1, -1, -1, 237, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, 70, -1, 72, 73, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 95, 96, -1, - -1, 99, -1, -1, -1, 746, 104, 105, 106, 107, - 108, -1, 378, -1, -1, -1, 114, 115, -1, -1, - -1, -1, -1, 121, 122, 766, -1, -1, 126, 770, - 128, -1, 130, -1, -1, 776, -1, -1, -1, -1, - -1, 782, -1, -1, -1, -1, -1, 788, -1, -1, - -1, -1, -1, -1, 795, -1, -1, -1, -1, 800, - 0, 1, -1, 3, 4, 5, 6, 7, 8, -1, - 10, 11, 12, 13, 14, -1, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, 830, - 30, -1, -1, -1, 34, 35, -1, 37, -1, -1, - -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, - -1, 51, 52, 53, -1, -1, -1, -1, 859, -1, - 861, 61, 62, 63, -1, 866, -1, -1, 68, -1, - 70, 71, 72, 73, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 83, 84, 85, 86, 9, -1, -1, - -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, - 100, -1, 102, -1, 104, 105, -1, -1, 108, -1, - -1, -1, 34, 35, 36, -1, -1, -1, -1, -1, - -1, 121, -1, 123, 124, -1, 126, -1, 128, -1, - 130, -1, 54, 55, 56, 57, -1, 59, 60, -1, - -1, -1, -1, -1, -1, 946, -1, -1, -1, -1, + 790, -1, -1, 251, -1, -1, -1, 797, 904, -1, + 800, -1, 260, -1, -1, 263, 84, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, + -1, 99, -1, 823, -1, -1, -1, -1, -1, -1, + 108, -1, -1, -1, 292, -1, -1, -1, -1, -1, + -1, -1, -1, 949, 950, 123, 124, -1, -1, 849, + -1, -1, -1, -1, -1, -1, -1, 857, 858, -1, + -1, -1, -1, 863, -1, -1, -1, -1, -1, -1, + -1, 871, 872, -1, -1, 875, -1, -1, 878, 879, + -1, -1, -1, -1, -1, 74, 75, 76, 77, 78, + 79, 80, 81, 82, -1, -1, -1, 9, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, 27, 28, + -1, -1, 31, 32, 33, -1, -1, 917, -1, -1, + 920, -1, 34, 35, 36, -1, -1, -1, -1, 387, + 49, 50, 390, 391, 392, 393, 394, 395, 396, 58, + -1, -1, 54, 55, 56, 57, 404, 59, 60, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, 75, 76, 77, 78, 79, 80, 81, - 82, -1, -1, 589, -1, 87, 88, 89, 90, 91, - 92, 93, 94, -1, -1, -1, 602, -1, 1, 605, + 82, -1, -1, -1, -1, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, -1, -1, -1, -1, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, -1, -1, -1, 123, 124, -1, -1, 74, 75, + 76, 77, 78, 79, 80, 81, 82, -1, 130, -1, + 132, 87, 88, 89, 90, 91, 92, 93, 94, -1, + -1, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 126, 72, -1, 74, 75, 523, 77, -1, 79, -1, + 81, 529, 83, -1, 85, -1, 87, -1, 89, -1, + 91, 92, 93, -1, -1, -1, 97, -1, -1, 100, + 548, -1, 103, -1, 105, -1, -1, -1, -1, 557, + -1, 5, -1, 7, 8, -1, 10, 11, 12, 13, + 121, -1, 123, 571, -1, 19, 20, 21, 22, 23, + 24, -1, 26, -1, -1, 29, 30, 585, -1, -1, + 34, 35, -1, -1, -1, -1, -1, -1, 42, -1, + 44, -1, -1, 47, 48, -1, 604, 51, 52, 53, + -1, -1, -1, -1, 612, 27, 28, 61, -1, 31, + 32, 33, 620, -1, -1, -1, 70, 625, 72, 73, + -1, -1, -1, -1, -1, -1, -1, 49, 50, -1, + 84, -1, -1, -1, -1, -1, 58, -1, -1, -1, + -1, 95, 96, -1, -1, 99, -1, -1, -1, -1, + 104, 105, -1, -1, 108, -1, -1, -1, -1, -1, + 114, 115, -1, -1, -1, -1, -1, 121, 122, -1, + -1, 125, 126, -1, 128, -1, 130, -1, -1, -1, + -1, -1, 690, -1, -1, 107, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, + -1, -1, 710, -1, -1, -1, 714, -1, -1, -1, + -1, -1, 720, -1, -1, -1, -1, -1, 726, -1, + -1, -1, -1, -1, 732, -1, -1, -1, -1, -1, + -1, 739, -1, -1, -1, -1, 744, 0, 1, -1, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, -1, -1, -1, 30, 130, -1, - 132, 34, 35, -1, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, -1, -1, 51, 52, - 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, - 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, - -1, -1, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, -1, -1, 108, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, - 123, 124, -1, 126, -1, 128, 129, 130, 1, -1, - 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, - 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, + 13, 14, -1, -1, -1, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, 774, 30, -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, - 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 53, -1, -1, -1, -1, 803, -1, 805, 61, 62, + 63, -1, 810, -1, -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, - 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, - 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, - -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, - 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, - 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, - -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, - 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, - 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, - -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, - 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, - 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, + 123, 124, -1, 126, -1, 128, -1, 130, -1, -1, + -1, -1, -1, 0, 1, -1, 3, 4, 5, 6, + 7, 8, 890, 10, 11, 12, 13, 14, -1, -1, + -1, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, - 37, 38, 39, -1, -1, 42, 43, 44, 45, -1, - 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, - -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, - -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, - -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, - 97, 98, 99, 100, 101, 102, -1, 104, 105, -1, - -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, - -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, - -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, -1, -1, -1, 34, 35, -1, 37, 38, - 39, 40, -1, 42, 43, 44, 45, -1, 47, 48, - -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, - -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, - -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, - -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, - 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, - 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - -1, -1, -1, 34, 35, -1, 37, 38, 39, -1, - -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, - 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, - 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, - 101, 102, -1, 104, 105, -1, -1, 108, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, - 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, - -1, 34, 35, -1, 37, -1, -1, -1, -1, 42, - 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, - 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, - 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, - -1, -1, 95, 96, 97, 98, 99, 100, -1, 102, - -1, 104, 105, -1, -1, 108, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, - 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, - 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, - -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, - 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, - 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, - -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, - 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, - 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, - -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, - 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, - 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, - 37, 38, 39, -1, -1, 42, 43, 44, 45, -1, - 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, - -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, - -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, - -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, - 97, 98, 99, 100, 101, 102, -1, 104, 105, -1, - -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, - -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, - -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, - 39, 40, -1, 42, 43, 44, 45, -1, 47, 48, - -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, - -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, - -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, - -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, - 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, - 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, - 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, - -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, - 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 63, -1, -1, 66, 67, 68, -1, 70, - 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, - -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, - -1, 102, -1, 104, 105, -1, -1, 108, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, - 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, - 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, - -1, 34, 35, -1, 37, -1, -1, -1, -1, 42, - 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, - 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, - 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, - -1, -1, 95, 96, 97, 98, 99, 100, -1, 102, - 103, 104, 105, -1, -1, 108, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, - 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, - 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, - -1, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, - 35, -1, 37, -1, -1, -1, -1, 42, 43, 44, - 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, - -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, - 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, - 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, - 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, - -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, - 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, - 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, - -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, - 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, + 37, -1, -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, @@ -3156,10 +2958,87 @@ static const yytype_int16 yycheck[] = -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, -1, -1, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, + 129, 130, 1, -1, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, - -1, -1, -1, 42, 43, 44, 45, 46, 47, 48, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, + 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, + 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + -1, -1, -1, 34, 35, -1, 37, 38, 39, 40, + -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, + 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, + 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, + 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, + -1, 102, -1, 104, 105, -1, -1, 108, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, + 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, + -1, 34, 35, -1, 37, 38, 39, -1, -1, 42, + 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, + 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, + 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, + -1, -1, 95, 96, 97, 98, 99, 100, 101, 102, + -1, 104, 105, -1, -1, 108, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, + 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, + 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, + 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, + -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, + 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, + -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, + 37, 38, 39, -1, -1, 42, 43, 44, 45, -1, + 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, + -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, + -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, + 97, 98, 99, 100, 101, 102, -1, 104, 105, -1, + -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, + -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, @@ -3171,10 +3050,10 @@ static const yytype_int16 yycheck[] = 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, + -1, -1, -1, 34, 35, -1, 37, 38, 39, 40, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 63, -1, -1, -1, 67, 68, -1, 70, + 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, @@ -3182,9 +3061,73 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, - 13, 14, -1, -1, -1, -1, 19, 20, 21, 22, + 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, - -1, 34, 35, -1, 37, -1, -1, -1, -1, 42, + -1, 34, 35, -1, 37, 38, 39, -1, -1, 42, + 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, + 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, + 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, + 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, + -1, -1, 95, 96, 97, 98, 99, 100, 101, 102, + -1, 104, 105, -1, -1, 108, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, + 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, + 35, -1, 37, -1, 39, 40, -1, 42, 43, 44, + 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, + -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, + 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, + -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, + 37, -1, -1, -1, -1, 42, 43, 44, 45, -1, + 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, + -1, -1, -1, -1, 61, 62, 63, -1, -1, 66, + 67, 68, -1, 70, 71, 72, 73, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, + -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, + 97, 98, 99, 100, -1, 102, -1, 104, 105, -1, + -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, + -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, 17, -1, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, + -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, + 99, 100, -1, 102, 103, 104, 105, -1, -1, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, + 1, 130, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, 13, 14, -1, -1, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, + -1, -1, -1, 34, 35, -1, 37, -1, -1, -1, + -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, + 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, + 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, + 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, + -1, -1, -1, -1, 95, 96, 97, 98, 99, 100, + -1, 102, -1, 104, 105, -1, -1, 108, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 121, -1, 123, 124, -1, 126, -1, 128, 1, 130, + 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 13, 14, -1, -1, 17, -1, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, -1, 30, -1, -1, + -1, 34, 35, -1, 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, @@ -3193,20 +3136,46 @@ static const yytype_int16 yycheck[] = -1, -1, 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, - 123, 124, -1, 126, -1, 128, 129, 130, 5, -1, - 7, 8, -1, 10, 11, 12, 13, -1, -1, -1, - -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, - -1, -1, 29, 30, -1, -1, -1, 34, 35, -1, - -1, -1, -1, -1, -1, 42, -1, 44, -1, -1, + 123, 124, -1, 126, -1, 128, 1, 130, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, 17, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, -1, -1, -1, 34, + 35, -1, 37, -1, -1, -1, -1, 42, 43, 44, + 45, 46, 47, 48, -1, -1, 51, 52, 53, -1, + -1, -1, -1, -1, -1, -1, 61, 62, 63, -1, + -1, -1, -1, 68, -1, 70, 71, 72, 73, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 83, 84, + 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, + 95, 96, 97, 98, 99, 100, -1, 102, -1, 104, + 105, -1, -1, 108, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 121, -1, 123, 124, + -1, 126, -1, 128, 1, 130, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, 30, -1, -1, -1, 34, 35, -1, + 37, -1, -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, -1, -1, 51, 52, 53, -1, -1, -1, - -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, - -1, -1, -1, 70, -1, 72, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, -1, 61, 62, 63, -1, -1, -1, + 67, 68, -1, 70, 71, 72, 73, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, - -1, -1, 99, -1, -1, -1, -1, 104, 105, -1, - -1, 108, -1, -1, -1, -1, -1, 114, 115, -1, - -1, -1, -1, -1, 121, 122, -1, -1, 125, 126, - -1, 128, 5, 130, 7, 8, -1, 10, 11, 12, + 97, 98, 99, 100, -1, 102, -1, 104, 105, -1, + -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, + -1, 128, 1, 130, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, + -1, 30, -1, -1, -1, 34, 35, -1, 37, -1, + -1, -1, -1, 42, 43, 44, 45, -1, 47, 48, + -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 63, -1, -1, -1, -1, 68, + -1, 70, 71, 72, 73, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, + 99, 100, -1, 102, -1, 104, 105, -1, -1, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, 123, 124, -1, 126, -1, 128, + 129, 130, 5, -1, 7, 8, -1, 10, 11, 12, 13, -1, -1, -1, -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, -1, -1, 29, 30, -1, -1, -1, 34, 35, -1, -1, -1, -1, -1, -1, 42, @@ -3285,20 +3254,31 @@ static const yytype_int16 yycheck[] = 19, 20, 21, 22, 23, 24, -1, 26, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, 44, -1, -1, 47, 48, - -1, -1, 51, 52, 53, -1, -1, -1, -1, -1, - -1, -1, 61, -1, -1, -1, -1, 9, -1, -1, - -1, 70, -1, 72, 73, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, - -1, -1, 34, 35, 36, -1, 95, 96, -1, -1, - 99, -1, -1, -1, -1, 104, 105, -1, -1, 108, - -1, -1, 54, 55, 56, 57, -1, 59, 60, -1, - -1, -1, 121, -1, -1, -1, -1, 126, 9, 128, - -1, 130, 74, 75, 76, 77, 78, 79, 80, 81, + -1, 5, 51, 52, 53, -1, -1, 11, 12, -1, + -1, -1, 61, -1, -1, -1, -1, -1, 22, 23, + 24, 70, 26, 72, 73, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, 84, -1, -1, 42, -1, + 44, -1, -1, 47, 48, -1, 95, 96, 52, 53, + 99, -1, -1, -1, -1, 104, 105, 61, -1, 108, + -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, + 7, 8, 121, 10, 11, 12, 13, 126, -1, 128, + 84, 130, 19, 20, 21, 22, 23, 24, -1, 26, + -1, 95, -1, 30, -1, 99, -1, -1, -1, -1, + -1, -1, -1, -1, 108, 42, -1, 44, -1, -1, + 47, 48, -1, -1, -1, 52, 53, -1, 122, -1, + -1, -1, -1, -1, 61, -1, -1, 9, -1, -1, + -1, -1, -1, 70, -1, 72, 73, -1, 27, 28, + -1, -1, 31, 32, 33, -1, -1, 84, -1, -1, + -1, -1, 34, 35, 36, -1, -1, -1, 95, 96, + 49, 50, 99, -1, -1, -1, -1, -1, -1, 58, + -1, 108, 54, 55, 56, 57, -1, 59, 60, -1, + -1, -1, -1, -1, 121, -1, -1, -1, 9, 126, + -1, 128, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, -1, -1, 87, 88, 89, 90, 91, - 92, 93, 94, 34, 35, 36, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 92, 93, 94, 34, 35, -1, -1, -1, 107, -1, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, 54, 55, 56, 57, -1, 59, 60, - -1, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, 132, -1, -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, -1, -1, 87, 88, 89, 90, 91, 92, 93, 94, -1, 5, -1, -1, -1, -1, @@ -3317,65 +3297,41 @@ static const yytype_int16 yycheck[] = -1, 42, -1, 44, -1, -1, 47, 48, 5, 95, -1, 52, 53, 99, 11, 12, -1, -1, -1, -1, 61, -1, 108, -1, -1, 22, 23, 24, -1, 26, - -1, -1, -1, 30, -1, -1, -1, 123, 124, -1, + -1, 72, 73, 30, -1, -1, 122, -1, -1, -1, -1, -1, -1, 84, -1, 42, -1, 44, -1, -1, 47, 48, -1, 5, 95, 52, 53, -1, 99, 11, 12, -1, -1, -1, 61, -1, -1, 108, -1, -1, - 22, 23, 24, -1, 26, -1, -1, -1, 30, -1, - -1, 122, -1, -1, -1, -1, -1, 84, -1, -1, + 22, 23, 24, -1, 26, 72, 73, -1, 30, -1, + 121, -1, -1, -1, -1, -1, -1, 84, -1, -1, 42, -1, 44, -1, -1, 47, 48, 5, 95, -1, 52, 53, 99, 11, 12, -1, -1, -1, -1, 61, -1, 108, -1, -1, 22, 23, 24, -1, 26, -1, - -1, -1, 30, -1, -1, 122, -1, -1, -1, -1, + -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, 42, -1, 44, -1, -1, 47, - 48, -1, 5, 95, 52, 53, -1, 99, 11, 12, - -1, -1, -1, 61, -1, -1, 108, -1, -1, 22, - 23, 24, -1, 26, -1, -1, -1, 30, -1, -1, - 122, -1, -1, -1, -1, -1, 84, -1, -1, 42, - -1, 44, -1, -1, 47, 48, 5, 95, -1, 52, - 53, 99, 11, 12, -1, -1, -1, -1, 61, -1, - 108, -1, -1, 22, 23, 24, -1, 26, -1, 72, - 73, 30, -1, -1, 122, -1, -1, -1, -1, -1, - -1, 84, -1, 42, -1, 44, -1, -1, 47, 48, - -1, 5, 95, 52, 53, -1, 99, 11, 12, -1, - -1, -1, 61, -1, -1, 108, -1, -1, 22, 23, - 24, -1, 26, 72, 73, -1, 30, -1, 121, -1, - -1, -1, -1, -1, -1, 84, -1, -1, 42, -1, - 44, -1, -1, 47, 48, 5, 95, -1, 52, 53, - 99, 11, 12, -1, -1, -1, -1, 61, -1, 108, - -1, -1, 22, 23, 24, -1, 26, -1, -1, -1, - 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, -1, 42, -1, 44, -1, -1, 47, 48, -1, - -1, 95, 52, 53, -1, 99, -1, -1, -1, -1, - -1, 61, 106, -1, 108, -1, -1, -1, 5, -1, - -1, -1, -1, -1, 11, 12, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 22, 23, 24, -1, 26, - -1, -1, -1, 30, -1, 95, -1, -1, -1, 99, - -1, -1, -1, -1, -1, 42, 106, 44, 108, -1, - 47, 48, 5, -1, -1, 52, 53, -1, 11, 12, - -1, -1, -1, -1, 61, -1, -1, -1, -1, 22, - 23, 24, -1, 26, -1, -1, -1, 30, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, -1, 42, - -1, 44, -1, -1, 47, 48, -1, -1, 95, 52, - 53, -1, 99, -1, -1, -1, -1, -1, 61, 106, - -1, 108, -1, -1, -1, -1, -1, -1, -1, 74, - 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, - -1, 84, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, 95, -1, -1, -1, 99, -1, -1, -1, - -1, -1, -1, -1, -1, 108, -1, -1, -1, 74, - 75, 76, 77, 78, 79, 80, 81, 82, -1, -1, - -1, 126, 87, 88, 89, 90, 91, 92, 93, 94, - 74, 75, 76, 77, 78, 79, 80, 81, 82, -1, - -1, -1, -1, 87, 88, 89, 90, 91, 92, 93, - 94, 74, 75, 76, 77, 78, 79, 80, 81, 82, - -1, 126, -1, -1, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, 72, -1, 74, 75, -1, 77, - -1, 79, 126, 81, -1, 83, -1, 85, -1, 87, - -1, 89, -1, 91, 92, 93, -1, -1, -1, 97, - -1, -1, 100, 126, -1, 103, -1, 105, -1, -1, - -1, -1, -1, 74, 75, 76, 77, 78, 79, 80, - 81, 82, -1, 121, -1, 123, 87, 88, 89, 90, - 91, 92, 93, 94 + 48, -1, -1, 95, 52, 53, -1, 99, -1, -1, + -1, -1, -1, 61, 106, -1, 108, -1, -1, -1, + 5, -1, -1, -1, -1, -1, 11, 12, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 22, 23, 24, + -1, 26, -1, -1, -1, 30, -1, 95, -1, -1, + -1, 99, -1, -1, -1, -1, -1, 42, 106, 44, + 108, -1, 47, 48, 5, -1, -1, 52, 53, -1, + 11, 12, -1, -1, -1, -1, 61, -1, -1, -1, + -1, 22, 23, 24, -1, 26, -1, -1, -1, 30, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + -1, 42, -1, 44, -1, -1, 47, 48, -1, -1, + 95, 52, 53, -1, 99, -1, -1, -1, -1, -1, + 61, 106, -1, 108, -1, -1, -1, 5, -1, -1, + -1, -1, -1, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 22, 23, 24, -1, 26, -1, + -1, -1, 30, -1, 95, -1, -1, -1, 99, -1, + -1, -1, -1, -1, 42, 106, 44, 108, -1, 47, + 48, -1, -1, -1, 52, 53, -1, -1, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, + -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, + 108 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3401,89 +3357,83 @@ static const yytype_uint16 yystos[] = 29, 30, 42, 44, 51, 53, 61, 95, 108, 114, 115, 122, 169, 170, 171, 173, 175, 178, 180, 182, 184, 186, 189, 191, 193, 198, 199, 200, 203, 204, - 210, 214, 216, 217, 221, 223, 224, 225, 226, 234, + 210, 214, 216, 217, 221, 223, 224, 225, 227, 234, 235, 236, 237, 246, 250, 251, 253, 168, 166, 168, 167, 168, 159, 153, 217, 217, 307, 272, 159, 168, - 169, 170, 171, 173, 175, 178, 180, 182, 184, 186, - 189, 191, 193, 198, 199, 200, 203, 210, 214, 220, - 221, 246, 251, 253, 36, 268, 259, 155, 355, 151, - 159, 191, 193, 366, 10, 168, 168, 128, 168, 280, - 19, 158, 242, 69, 368, 168, 191, 193, 198, 200, - 210, 251, 332, 333, 346, 217, 12, 126, 251, 122, - 250, 106, 107, 122, 188, 207, 208, 209, 217, 219, - 240, 168, 191, 193, 211, 0, 1, 137, 138, 150, - 274, 374, 3, 4, 36, 126, 9, 132, 238, 239, - 9, 238, 9, 238, 168, 191, 193, 197, 251, 9, - 36, 238, 197, 9, 36, 238, 197, 197, 9, 36, - 238, 197, 9, 36, 238, 197, 9, 36, 238, 197, - 9, 36, 197, 9, 36, 238, 197, 9, 238, 197, - 251, 9, 36, 126, 159, 238, 197, 251, 9, 36, - 126, 159, 238, 197, 251, 8, 10, 168, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 190, 191, 192, 193, 194, 197, - 246, 251, 252, 253, 254, 197, 9, 238, 9, 159, - 238, 9, 36, 197, 9, 36, 159, 238, 197, 9, - 36, 126, 238, 130, 197, 9, 36, 159, 238, 197, - 34, 35, 54, 55, 56, 57, 59, 60, 110, 130, - 222, 159, 159, 159, 159, 159, 247, 374, 9, 36, - 238, 9, 36, 159, 238, 197, 251, 9, 36, 159, - 238, 197, 159, 15, 16, 17, 18, 294, 296, 301, - 302, 1, 12, 25, 26, 137, 150, 161, 162, 163, - 164, 274, 374, 17, 38, 39, 40, 304, 305, 309, - 314, 250, 164, 17, 101, 342, 343, 344, 159, 217, - 374, 168, 260, 263, 260, 217, 217, 217, 217, 168, - 202, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 87, 88, 89, 90, 91, 92, 93, 94, 147, 148, - 147, 147, 147, 147, 27, 28, 31, 32, 33, 49, - 50, 58, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 125, 292, 147, 157, 125, 374, 125, 374, 191, - 261, 262, 263, 374, 168, 273, 9, 110, 328, 195, - 168, 269, 273, 261, 69, 360, 217, 368, 19, 126, - 276, 168, 374, 145, 147, 126, 374, 114, 127, 106, - 168, 243, 244, 125, 168, 204, 208, 216, 217, 251, - 369, 370, 52, 125, 217, 374, 258, 168, 127, 129, - 168, 191, 198, 200, 202, 210, 125, 129, 107, 125, - 129, 374, 168, 168, 206, 209, 217, 217, 106, 217, - 218, 125, 131, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 206, 217, 206, 217, 217, 217, - 217, 217, 206, 211, 217, 217, 217, 217, 217, 217, - 217, 217, 211, 217, 245, 249, 217, 217, 217, 374, - 297, 301, 16, 294, 301, 3, 4, 161, 310, 315, - 38, 304, 314, 39, 304, 374, 38, 39, 348, 351, - 374, 132, 145, 265, 266, 125, 374, 374, 125, 168, - 168, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 374, - 374, 168, 168, 145, 265, 125, 154, 145, 125, 374, - 217, 145, 52, 125, 270, 374, 156, 217, 374, 374, - 122, 374, 275, 168, 279, 280, 282, 374, 277, 281, - 19, 374, 145, 133, 125, 370, 125, 122, 217, 334, - 335, 332, 374, 372, 260, 127, 217, 219, 209, 139, - 141, 140, 142, 125, 127, 218, 132, 127, 127, 127, - 125, 248, 164, 165, 295, 250, 299, 301, 168, 168, - 250, 374, 312, 304, 317, 319, 217, 352, 38, 343, - 351, 217, 264, 146, 148, 125, 131, 263, 207, 293, - 9, 146, 262, 374, 168, 325, 168, 168, 374, 374, - 165, 19, 84, 122, 168, 284, 287, 288, 283, 280, - 282, 374, 168, 278, 282, 284, 106, 168, 370, 168, - 125, 337, 165, 374, 107, 374, 126, 374, 126, 209, - 218, 217, 129, 129, 165, 374, 250, 126, 374, 126, - 374, 374, 316, 250, 374, 165, 349, 374, 217, 9, - 217, 132, 125, 165, 217, 145, 47, 145, 356, 374, - 122, 168, 168, 145, 127, 125, 125, 145, 125, 129, - 127, 145, 334, 99, 340, 17, 103, 373, 219, 106, - 144, 149, 168, 144, 298, 374, 144, 144, 311, 165, - 374, 165, 320, 374, 353, 350, 217, 217, 207, 250, - 64, 65, 363, 364, 365, 168, 145, 126, 145, 145, - 122, 168, 288, 84, 282, 374, 145, 338, 127, 125, - 145, 127, 165, 300, 127, 127, 165, 313, 17, 41, - 322, 323, 165, 165, 374, 127, 48, 329, 168, 357, - 374, 374, 126, 145, 219, 285, 286, 374, 168, 145, - 122, 168, 374, 374, 106, 168, 374, 165, 374, 374, - 165, 165, 250, 326, 66, 361, 362, 165, 165, 285, - 125, 127, 126, 145, 168, 145, 339, 145, 374, 358, - 374, 127, 286, 285, 126, 145, 165, 330, 327, 17, - 67, 359, 165, 127, 285, 17, 46, 331, 330, 127, - 168, 168 + 191, 193, 198, 199, 200, 203, 210, 214, 220, 221, + 251, 253, 36, 268, 259, 155, 355, 151, 159, 191, + 193, 366, 10, 168, 168, 128, 168, 280, 19, 158, + 242, 69, 368, 168, 191, 193, 198, 251, 332, 333, + 346, 217, 12, 126, 251, 122, 250, 106, 107, 122, + 188, 207, 208, 209, 217, 219, 240, 168, 191, 193, + 211, 0, 1, 137, 138, 150, 274, 374, 3, 4, + 36, 126, 132, 238, 239, 238, 238, 168, 191, 193, + 197, 251, 36, 238, 197, 36, 238, 197, 197, 36, + 238, 197, 36, 238, 197, 36, 238, 197, 36, 197, + 36, 238, 197, 238, 197, 251, 36, 126, 159, 238, + 197, 251, 36, 126, 159, 238, 197, 251, 8, 10, + 168, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 190, 191, 192, + 193, 194, 197, 246, 251, 252, 253, 254, 197, 238, + 159, 238, 36, 197, 36, 159, 238, 197, 36, 126, + 238, 130, 197, 36, 159, 238, 197, 9, 34, 35, + 54, 55, 56, 57, 59, 60, 110, 130, 222, 159, + 159, 159, 159, 159, 247, 374, 36, 238, 36, 159, + 238, 197, 251, 36, 159, 238, 197, 159, 15, 16, + 17, 18, 294, 296, 301, 302, 1, 12, 25, 26, + 137, 150, 161, 162, 163, 164, 274, 374, 17, 38, + 39, 40, 304, 305, 309, 314, 250, 164, 17, 101, + 342, 343, 344, 159, 217, 374, 168, 260, 263, 260, + 217, 217, 217, 217, 168, 202, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 87, 88, 89, 90, 91, + 92, 93, 94, 147, 148, 147, 147, 147, 147, 27, + 28, 31, 32, 33, 49, 50, 58, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 125, 292, 147, 157, + 125, 374, 125, 374, 191, 261, 262, 263, 374, 168, + 273, 9, 110, 328, 195, 168, 269, 273, 261, 69, + 360, 217, 368, 19, 126, 276, 168, 374, 145, 147, + 126, 374, 114, 127, 106, 168, 243, 244, 125, 168, + 204, 208, 216, 217, 251, 369, 370, 52, 125, 217, + 374, 258, 168, 127, 129, 168, 191, 198, 200, 202, + 210, 125, 129, 107, 125, 129, 374, 168, 168, 206, + 209, 217, 106, 217, 218, 125, 131, 206, 206, 206, + 211, 217, 217, 217, 217, 217, 217, 217, 217, 211, + 217, 245, 249, 374, 297, 301, 16, 294, 301, 3, + 4, 161, 310, 315, 38, 304, 314, 39, 304, 374, + 38, 39, 348, 351, 374, 132, 145, 265, 266, 125, + 374, 374, 125, 168, 168, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 374, 374, 168, 168, 145, 265, 125, + 154, 145, 125, 374, 217, 145, 52, 125, 270, 374, + 156, 217, 374, 374, 122, 374, 275, 168, 279, 280, + 282, 374, 277, 281, 19, 374, 145, 133, 125, 370, + 125, 122, 217, 334, 335, 332, 374, 372, 260, 127, + 217, 219, 209, 139, 141, 140, 142, 125, 127, 218, + 132, 127, 127, 127, 125, 248, 164, 165, 295, 250, + 299, 301, 168, 168, 250, 374, 312, 304, 317, 319, + 217, 352, 38, 343, 351, 217, 264, 146, 148, 125, + 131, 263, 207, 293, 9, 146, 262, 374, 168, 325, + 168, 168, 374, 374, 165, 19, 84, 122, 168, 284, + 287, 288, 283, 280, 282, 374, 168, 278, 282, 284, + 106, 168, 370, 168, 125, 337, 165, 374, 107, 374, + 126, 374, 126, 209, 218, 217, 129, 129, 165, 374, + 250, 126, 374, 126, 374, 374, 316, 250, 374, 165, + 349, 374, 217, 9, 217, 132, 125, 165, 217, 145, + 47, 145, 356, 374, 122, 168, 168, 145, 127, 125, + 125, 145, 125, 129, 127, 145, 334, 99, 340, 17, + 103, 373, 219, 106, 144, 149, 168, 144, 298, 374, + 144, 144, 311, 165, 374, 165, 320, 374, 353, 350, + 217, 217, 207, 250, 64, 65, 363, 364, 365, 168, + 145, 126, 145, 145, 122, 168, 288, 84, 282, 374, + 145, 338, 127, 125, 145, 127, 165, 300, 127, 127, + 165, 313, 17, 41, 322, 323, 165, 165, 374, 127, + 48, 329, 168, 357, 374, 374, 126, 145, 219, 285, + 286, 374, 168, 145, 122, 168, 374, 374, 106, 168, + 374, 165, 374, 374, 165, 165, 250, 326, 66, 361, + 362, 165, 165, 285, 125, 127, 126, 145, 168, 145, + 339, 145, 374, 358, 374, 127, 286, 285, 126, 145, + 165, 330, 327, 17, 67, 359, 165, 127, 285, 17, + 46, 331, 330, 127, 168, 168 }; #define yyerrok (yyerrstatus = 0) @@ -4001,12 +3951,12 @@ yydestruct (yymsg, yytype, yyvaluep, pComp) case 19: /* "LITERAL" */ #line 281 "harbour.y" { if( (yyvaluep->valChar).dealloc ) hb_xfree( (yyvaluep->valChar).string ); }; -#line 4005 "harboury.c" +#line 3955 "harboury.c" break; case 96: /* "CBSTART" */ #line 280 "harbour.y" { if( (yyvaluep->asCodeblock).string ) hb_xfree( (yyvaluep->asCodeblock).string ); }; -#line 4010 "harboury.c" +#line 3960 "harboury.c" break; default: @@ -5519,318 +5469,213 @@ yyreduce: break; case 343: -#line 955 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 344: -#line 956 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 345: #line 957 "harbour.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 346: -#line 958 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 347: -#line 959 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 348: + case 344: #line 960 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 349: -#line 961 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 350: -#line 962 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 351: -#line 963 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 352: -#line 964 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 353: -#line 965 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 354: -#line 966 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 355: -#line 967 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 356: -#line 968 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 357: -#line 969 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 358: -#line 970 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 359: -#line 971 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 360: -#line 972 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 361: -#line 973 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 362: -#line 974 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 363: -#line 975 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 364: -#line 978 "harbour.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 365: -#line 981 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 366: -#line 984 "harbour.y" + case 345: +#line 963 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 367: -#line 987 "harbour.y" + case 346: +#line 966 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 368: -#line 990 "harbour.y" + case 347: +#line 969 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 369: -#line 993 "harbour.y" + case 348: +#line 972 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 370: -#line 996 "harbour.y" + case 349: +#line 975 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 377: -#line 1007 "harbour.y" + case 356: +#line 986 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 378: -#line 1008 "harbour.y" + case 357: +#line 987 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 379: -#line 1009 "harbour.y" + case 358: +#line 988 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 380: -#line 1010 "harbour.y" + case 359: +#line 989 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 381: -#line 1011 "harbour.y" + case 360: +#line 990 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 382: -#line 1012 "harbour.y" + case 361: +#line 991 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 383: -#line 1015 "harbour.y" + case 362: +#line 994 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 384: -#line 1016 "harbour.y" + case 363: +#line 995 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 385: -#line 1019 "harbour.y" + case 364: +#line 998 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 386: -#line 1020 "harbour.y" + case 365: +#line 999 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 387: -#line 1021 "harbour.y" + case 366: +#line 1000 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 388: -#line 1022 "harbour.y" + case 367: +#line 1001 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 389: -#line 1023 "harbour.y" + case 368: +#line 1002 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 390: -#line 1024 "harbour.y" + case 369: +#line 1003 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 391: -#line 1025 "harbour.y" + case 370: +#line 1004 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 392: -#line 1026 "harbour.y" + case 371: +#line 1005 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 393: -#line 1027 "harbour.y" + case 372: +#line 1006 "harbour.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 395: -#line 1036 "harbour.y" + case 374: +#line 1015 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 396: -#line 1037 "harbour.y" + case 375: +#line 1016 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 397: -#line 1038 "harbour.y" + case 376: +#line 1017 "harbour.y" { (yyval.asExpr) = hb_compExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 398: -#line 1041 "harbour.y" + case 377: +#line 1020 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 399: -#line 1042 "harbour.y" + case 378: +#line 1021 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 400: -#line 1045 "harbour.y" + case 379: +#line 1024 "harbour.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( (yyvsp[(1) - (1)].asCodeblock).string, (yyvsp[(1) - (1)].asCodeblock).length, (yyvsp[(1) - (1)].asCodeblock).flags, HB_COMP_PARAM ); (yyvsp[(1) - (1)].asCodeblock).string = NULL; ;} break; - case 401: -#line 1046 "harbour.y" + case 380: +#line 1025 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (4)].asExpr); ;} break; - case 402: -#line 1051 "harbour.y" + case 381: +#line 1030 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 403: -#line 1052 "harbour.y" + case 382: +#line 1031 "harbour.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 404: -#line 1053 "harbour.y" + case 383: +#line 1032 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; - case 405: -#line 1054 "harbour.y" + case 384: +#line 1033 "harbour.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 406: -#line 1057 "harbour.y" + case 385: +#line 1036 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (2)].asExpr), (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType)->cVarType, HB_COMP_PARAM ); ;} break; - case 407: -#line 1058 "harbour.y" + case 386: +#line 1037 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (4)].asExpr), (yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].asVarType)->cVarType, HB_COMP_PARAM ); ;} break; - case 408: -#line 1061 "harbour.y" + case 387: +#line 1040 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-1) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; - case 409: -#line 1062 "harbour.y" + case 388: +#line 1041 "harbour.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 410: -#line 1066 "harbour.y" + case 389: +#line 1045 "harbour.y" { (yyval.bTrue) = HB_COMP_PARAM->functions.pLast->bBlock; HB_COMP_PARAM->functions.pLast->bBlock = TRUE; ;} break; - case 411: -#line 1069 "harbour.y" + case 390: +#line 1048 "harbour.y" { HB_COMP_PARAM->functions.pLast->bBlock = (yyvsp[(2) - (3)].bTrue); ;} break; - case 413: -#line 1072 "harbour.y" + case 392: +#line 1051 "harbour.y" { /* 3 */ HB_CBVAR_PTR pVar; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -5857,8 +5702,8 @@ yyreduce: ;} break; - case 414: -#line 1097 "harbour.y" + case 393: +#line 1076 "harbour.y" { /* 6 */ hb_compCodeBlockEnd( HB_COMP_PARAM ); (yyval.asExpr) = hb_compExprSetCodeblockBody( (yyvsp[(1) - (5)].asExpr), @@ -5869,43 +5714,43 @@ yyreduce: ;} break; - case 415: -#line 1107 "harbour.y" + case 394: +#line 1086 "harbour.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 416: -#line 1108 "harbour.y" + case 395: +#line 1087 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 417: -#line 1110 "harbour.y" + case 396: +#line 1089 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (3)].asExpr) ;} break; - case 419: -#line 1123 "harbour.y" + case 398: +#line 1102 "harbour.y" { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; - case 421: -#line 1129 "harbour.y" + case 400: +#line 1108 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_LOCAL; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 423: -#line 1131 "harbour.y" + case 402: +#line 1110 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 425: -#line 1133 "harbour.y" + case 404: +#line 1112 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_TH_STATIC; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 427: -#line 1135 "harbour.y" + case 406: +#line 1114 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->funFlags & FUN_USES_LOCAL_PARAMS ) hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_PARAMETERS_NOT_ALLOWED, NULL, NULL ); else @@ -5916,53 +5761,53 @@ yyreduce: ;} break; - case 428: -#line 1142 "harbour.y" + case 407: +#line 1121 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 429: -#line 1145 "harbour.y" + case 408: +#line 1124 "harbour.y" { (yyval.iNumber) = 1; ;} break; - case 430: -#line 1146 "harbour.y" + case 409: +#line 1125 "harbour.y" { (yyval.iNumber)++; ;} break; - case 431: -#line 1149 "harbour.y" + case 410: +#line 1128 "harbour.y" { (yyval.iNumber) = 1; ;} break; - case 432: -#line 1150 "harbour.y" + case 411: +#line 1129 "harbour.y" { (yyval.iNumber)++; ;} break; - case 434: -#line 1160 "harbour.y" + case 413: +#line 1139 "harbour.y" { hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (2)].asExpr), HB_COMP_PARAM ), FALSE ); ;} break; - case 435: -#line 1162 "harbour.y" + case 414: +#line 1141 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), TRUE ); ;} break; - case 436: -#line 1166 "harbour.y" + case 415: +#line 1145 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compArrayDimPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); hb_compRTVariableAdd( HB_COMP_PARAM, hb_compExprNewRTVar( NULL, (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), TRUE ); ;} break; - case 437: -#line 1173 "harbour.y" + case 416: +#line 1152 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType) ); if( HB_COMP_PARAM->iVarScope & VS_STATIC ) @@ -5982,15 +5827,15 @@ yyreduce: ;} break; - case 438: -#line 1190 "harbour.y" + case 417: +#line 1169 "harbour.y" { (yyval.iNumber) = HB_COMP_PARAM->iVarScope; hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType) ); ;} break; - case 439: -#line 1194 "harbour.y" + case 418: +#line 1173 "harbour.y" { HB_COMP_PARAM->iVarScope = (yyvsp[(3) - (5)].iNumber); if( HB_COMP_PARAM->iVarScope & VS_STATIC ) @@ -6017,80 +5862,80 @@ yyreduce: ;} break; - case 440: -#line 1219 "harbour.y" + case 419: +#line 1198 "harbour.y" { hb_compVariableDim( (yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 442: -#line 1228 "harbour.y" + case 421: +#line 1207 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 443: -#line 1229 "harbour.y" + case 422: +#line 1208 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 444: -#line 1230 "harbour.y" + case 423: +#line 1209 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr) ); ;} break; - case 445: -#line 1233 "harbour.y" + case 424: +#line 1212 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_FIELD; ;} break; - case 446: -#line 1235 "harbour.y" + case 425: +#line 1214 "harbour.y" { if( (yyvsp[(4) - (5)].string) ) hb_compFieldSetAlias( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), (yyvsp[(3) - (5)].iNumber) ); ;} break; - case 447: -#line 1240 "harbour.y" + case 426: +#line 1219 "harbour.y" { (yyval.iNumber) = hb_compFieldsCount( HB_COMP_PARAM ); hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType) ); ;} break; - case 448: -#line 1241 "harbour.y" + case 427: +#line 1220 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].asVarType) ); ;} break; - case 449: -#line 1244 "harbour.y" + case 428: +#line 1223 "harbour.y" { (yyval.string) = NULL; ;} break; - case 450: -#line 1245 "harbour.y" + case 429: +#line 1224 "harbour.y" { (yyval.string) = (yyvsp[(2) - (2)].string); ;} break; - case 451: -#line 1248 "harbour.y" + case 430: +#line 1227 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_MEMVAR; ;} break; - case 453: -#line 1251 "harbour.y" + case 432: +#line 1230 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType) ); ;} break; - case 454: -#line 1252 "harbour.y" + case 433: +#line 1231 "harbour.y" { hb_compVariableAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].asVarType) ); ;} break; - case 455: -#line 1255 "harbour.y" + case 434: +#line 1234 "harbour.y" { hb_compDeclaredAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string) ); HB_COMP_PARAM->szDeclaredFun = (yyvsp[(2) - (3)].string); ;} break; - case 456: -#line 1256 "harbour.y" + case 435: +#line 1235 "harbour.y" { if( HB_COMP_PARAM->pLastDeclared ) { @@ -6111,48 +5956,48 @@ yyreduce: ;} break; - case 457: -#line 1274 "harbour.y" + case 436: +#line 1253 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].string), NULL ); ;} break; - case 458: -#line 1274 "harbour.y" + case 437: +#line 1253 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 459: -#line 1275 "harbour.y" + case 438: +#line 1254 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), NULL ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 460: -#line 1276 "harbour.y" + case 439: +#line 1255 "harbour.y" { HB_COMP_PARAM->pLastClass = hb_compClassAdd( HB_COMP_PARAM, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].string) ); HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 461: -#line 1277 "harbour.y" + case 440: +#line 1256 "harbour.y" { HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 462: -#line 1278 "harbour.y" + case 441: +#line 1257 "harbour.y" { HB_COMP_PARAM->cDataListType = (yyvsp[(3) - (3)].asVarType)->cVarType; ;} break; - case 463: -#line 1278 "harbour.y" + case 442: +#line 1257 "harbour.y" { HB_COMP_PARAM->cDataListType = 0; HB_COMP_PARAM->iVarScope = VS_NONE; ;} break; - case 470: -#line 1291 "harbour.y" + case 449: +#line 1270 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (2)].string) ); ;} break; - case 471: -#line 1292 "harbour.y" + case 450: +#line 1271 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6171,13 +6016,13 @@ yyreduce: ;} break; - case 472: -#line 1310 "harbour.y" + case 451: +#line 1289 "harbour.y" { HB_COMP_PARAM->pLastMethod = hb_compMethodAdd( HB_COMP_PARAM, HB_COMP_PARAM->pLastClass, (yyvsp[(1) - (1)].string) ); ;} break; - case 473: -#line 1311 "harbour.y" + case 452: +#line 1290 "harbour.y" { if( HB_COMP_PARAM->pLastMethod ) { @@ -6232,151 +6077,151 @@ yyreduce: ;} break; - case 480: -#line 1375 "harbour.y" + case 459: +#line 1354 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (1)].asExpr) ); ;} break; - case 481: -#line 1378 "harbour.y" + case 460: +#line 1357 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].asVarType) ); ;} break; - case 482: -#line 1379 "harbour.y" + case 461: +#line 1358 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(3) - (3)].asVarType)->cVarType + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 483: -#line 1380 "harbour.y" + case 462: +#line 1359 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (5)].string), hb_compVarTypeNew( HB_COMP_PARAM, 'F', NULL ) ); ;} break; - case 484: -#line 1381 "harbour.y" + case 463: +#line 1360 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].asVarType) ); ;} break; - case 485: -#line 1382 "harbour.y" + case 464: +#line 1361 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(5) - (5)].asVarType)->cVarType + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 486: -#line 1383 "harbour.y" + case 465: +#line 1362 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (7)].string), hb_compVarTypeNew( HB_COMP_PARAM, 'F', NULL ) ); ;} break; - case 487: -#line 1386 "harbour.y" + case 466: +#line 1365 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(2) - (3)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(3) - (3)].asVarType)->cVarType + VT_OFFSET_OPTIONAL, NULL ) ); ;} break; - case 488: -#line 1387 "harbour.y" + case 467: +#line 1366 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (4)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(4) - (4)].asVarType)->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 489: -#line 1388 "harbour.y" + case 468: +#line 1367 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(3) - (6)].string), hb_compVarTypeNew( HB_COMP_PARAM, 'F' + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 490: -#line 1389 "harbour.y" + case 469: +#line 1368 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(4) - (5)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(5) - (5)].asVarType)->cVarType + VT_OFFSET_OPTIONAL, NULL ) ); ;} break; - case 491: -#line 1390 "harbour.y" + case 470: +#line 1369 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (6)].string), hb_compVarTypeNew( HB_COMP_PARAM, (yyvsp[(6) - (6)].asVarType)->cVarType + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 492: -#line 1391 "harbour.y" + case 471: +#line 1370 "harbour.y" { hb_compDeclaredParameterAdd( HB_COMP_PARAM, (yyvsp[(5) - (8)].string), hb_compVarTypeNew( HB_COMP_PARAM, 'F' + VT_OFFSET_OPTIONAL + VT_OFFSET_BYREF, NULL ) ); ;} break; - case 501: -#line 1404 "harbour.y" + case 480: +#line 1383 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (2)].iNumber), HB_COMP_PARAM ); ;} break; - case 502: -#line 1405 "harbour.y" + case 481: +#line 1384 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); ;} break; - case 503: -#line 1406 "harbour.y" + case 482: +#line 1385 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (3)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; - case 504: -#line 1407 "harbour.y" + case 483: +#line 1386 "harbour.y" { hb_compGenJumpHere( (yyvsp[(1) - (4)].iNumber), HB_COMP_PARAM ); hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; - case 505: -#line 1411 "harbour.y" + case 484: +#line 1390 "harbour.y" { ++HB_COMP_PARAM->functions.pLast->wIfCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 506: -#line 1413 "harbour.y" + case 485: +#line 1392 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 507: -#line 1415 "harbour.y" + case 486: +#line 1394 "harbour.y" { (yyval.iNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 508: -#line 1418 "harbour.y" + case 487: +#line 1397 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; ;} break; - case 510: -#line 1422 "harbour.y" + case 489: +#line 1401 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 511: -#line 1424 "harbour.y" + case 490: +#line 1403 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 512: -#line 1428 "harbour.y" + case 491: +#line 1407 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(5) - (6)].iNumber), HB_COMP_PARAM ); ;} break; - case 513: -#line 1432 "harbour.y" + case 492: +#line 1411 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 514: -#line 1434 "harbour.y" + case 493: +#line 1413 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 515: -#line 1438 "harbour.y" + case 494: +#line 1417 "harbour.y" { (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); hb_compGenJumpHere( (yyvsp[(6) - (7)].iNumber), HB_COMP_PARAM ); ;} break; - case 516: -#line 1444 "harbour.y" + case 495: +#line 1423 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->wIfCounter ) --HB_COMP_PARAM->functions.pLast->wIfCounter; @@ -6384,31 +6229,31 @@ yyreduce: ;} break; - case 519: -#line 1457 "harbour.y" + case 498: +#line 1436 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (3)].pVoid) ); ;} break; - case 522: -#line 1469 "harbour.y" + case 501: +#line 1448 "harbour.y" { hb_compElseIfFix( HB_COMP_PARAM, (yyvsp[(2) - (4)].pVoid) ); ;} break; - case 523: -#line 1473 "harbour.y" + case 502: +#line 1452 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->wCaseCounter ) --HB_COMP_PARAM->functions.pLast->wCaseCounter; HB_COMP_PARAM->functions.pLast->funFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); ;} break; - case 526: -#line 1483 "harbour.y" + case 505: +#line 1462 "harbour.y" { ++HB_COMP_PARAM->functions.pLast->wCaseCounter; hb_compLinePushIfDebugger( HB_COMP_PARAM );;} break; - case 529: -#line 1487 "harbour.y" + case 508: +#line 1466 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6417,21 +6262,21 @@ yyreduce: ;} break; - case 530: -#line 1495 "harbour.y" + case 509: +#line 1474 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 531: -#line 1496 "harbour.y" + case 510: +#line 1475 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 532: -#line 1501 "harbour.y" + case 511: +#line 1480 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, NULL, hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6439,21 +6284,21 @@ yyreduce: ;} break; - case 533: -#line 1507 "harbour.y" + case 512: +#line 1486 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 534: -#line 1508 "harbour.y" + case 513: +#line 1487 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(4) - (5)].asExpr), HB_COMP_PARAM ) ); (yyval.iNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 535: -#line 1513 "harbour.y" + case 514: +#line 1492 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; (yyval.pVoid) = hb_compElseIfGen( HB_COMP_PARAM, (yyvsp[(1) - (7)].pVoid), hb_compGenJump( 0, HB_COMP_PARAM ) ); @@ -6461,39 +6306,39 @@ yyreduce: ;} break; - case 536: -#line 1520 "harbour.y" + case 515: +#line 1499 "harbour.y" {hb_compLinePushIfDebugger( HB_COMP_PARAM ); ;} break; - case 537: -#line 1520 "harbour.y" + case 516: +#line 1499 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; ;} break; - case 539: -#line 1522 "harbour.y" + case 518: +#line 1501 "harbour.y" { hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_MAYHEM_IN_CASE, NULL, NULL ); ;} break; - case 541: -#line 1527 "harbour.y" + case 520: +#line 1506 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); (yyval.lNumber) = hb_compGenJumpFalse( 0, HB_COMP_PARAM ); ;} break; - case 542: -#line 1532 "harbour.y" + case 521: +#line 1511 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compGenJump( ( ULONG ) (yyvsp[(1) - (5)].lNumber) - HB_COMP_PARAM->functions.pLast->lPCodePos, HB_COMP_PARAM ); ;} break; - case 543: -#line 1537 "harbour.y" + case 522: +#line 1516 "harbour.y" { hb_compGenJumpHere( ( ULONG ) (yyvsp[(4) - (7)].lNumber), HB_COMP_PARAM ); if( HB_COMP_PARAM->functions.pLast->wWhileCounter ) @@ -6503,8 +6348,8 @@ yyreduce: ;} break; - case 544: -#line 1547 "harbour.y" + case 523: +#line 1526 "harbour.y" { (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6513,13 +6358,13 @@ yyreduce: ;} break; - case 545: -#line 1556 "harbour.y" + case 524: +#line 1535 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; ;} break; - case 548: -#line 1564 "harbour.y" + case 527: +#line 1543 "harbour.y" { /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); (yyvsp[(1) - (4)].lNumber) = HB_COMP_PARAM->currLine; @@ -6534,23 +6379,23 @@ yyreduce: ;} break; - case 549: -#line 1577 "harbour.y" + case 528: +#line 1556 "harbour.y" { /* 9 */ hb_compLoopStart( HB_COMP_PARAM, TRUE ); (yyval.lNumber) = hb_compGenJump( 0, HB_COMP_PARAM ); ;} break; - case 550: -#line 1582 "harbour.y" + case 529: +#line 1561 "harbour.y" { /* 11 */ (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; ;} break; - case 551: -#line 1586 "harbour.y" + case 530: +#line 1565 "harbour.y" { int iSign, iLine; @@ -6595,18 +6440,18 @@ yyreduce: ;} break; - case 554: -#line 1634 "harbour.y" + case 533: +#line 1613 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 555: -#line 1635 "harbour.y" + case 534: +#line 1614 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 556: -#line 1639 "harbour.y" + case 535: +#line 1618 "harbour.y" { hb_compLinePush( HB_COMP_PARAM ); if( HB_COMP_PARAM->functions.pLast->wForCounter ) @@ -6614,43 +6459,43 @@ yyreduce: ;} break; - case 561: -#line 1652 "harbour.y" + case 540: +#line 1631 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 562: -#line 1653 "harbour.y" + case 541: +#line 1632 "harbour.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 563: -#line 1656 "harbour.y" + case 542: +#line 1635 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 564: -#line 1657 "harbour.y" + case 543: +#line 1636 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 565: -#line 1660 "harbour.y" + case 544: +#line 1639 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; - case 567: -#line 1664 "harbour.y" + case 546: +#line 1643 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 568: -#line 1665 "harbour.y" + case 547: +#line 1644 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 569: -#line 1670 "harbour.y" + case 548: +#line 1649 "harbour.y" { ++HB_COMP_PARAM->functions.pLast->wForCounter; /* 5 */ hb_compLinePushIfInside( HB_COMP_PARAM ); @@ -6658,8 +6503,8 @@ yyreduce: ;} break; - case 570: -#line 1676 "harbour.y" + case 549: +#line 1655 "harbour.y" { /* 7 */ @@ -6672,8 +6517,8 @@ yyreduce: ;} break; - case 571: -#line 1687 "harbour.y" + case 550: +#line 1666 "harbour.y" { /* 9 */ @@ -6681,8 +6526,8 @@ yyreduce: ;} break; - case 572: -#line 1693 "harbour.y" + case 551: +#line 1672 "harbour.y" { hb_compLoopHere( HB_COMP_PARAM ); hb_compEnumNext( HB_COMP_PARAM, (yyvsp[(2) - (10)].asExpr), (yyvsp[(6) - (10)].iNumber) ); @@ -6697,18 +6542,18 @@ yyreduce: ;} break; - case 573: -#line 1707 "harbour.y" + case 552: +#line 1686 "harbour.y" { (yyval.iNumber) = 1; ;} break; - case 574: -#line 1708 "harbour.y" + case 553: +#line 1687 "harbour.y" { (yyval.iNumber) = -1; ;} break; - case 575: -#line 1712 "harbour.y" + case 554: +#line 1691 "harbour.y" { hb_compLoopStart( HB_COMP_PARAM, FALSE ); hb_compSwitchStart( HB_COMP_PARAM, (yyvsp[(1) - (1)].asExpr) ); @@ -6716,24 +6561,24 @@ yyreduce: ;} break; - case 576: -#line 1719 "harbour.y" + case 555: +#line 1698 "harbour.y" { hb_compSwitchEnd( HB_COMP_PARAM ); hb_compLoopEnd( HB_COMP_PARAM ); ;} break; - case 577: -#line 1726 "harbour.y" + case 556: +#line 1705 "harbour.y" { HB_COMP_EXPR_DELETE( (yyvsp[(1) - (2)].asExpr) ); hb_compGenPCode1( HB_P_POP, HB_COMP_PARAM ); ;} break; - case 578: -#line 1733 "harbour.y" + case 557: +#line 1712 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->wSwitchCounter ) --HB_COMP_PARAM->functions.pLast->wSwitchCounter; @@ -6741,23 +6586,23 @@ yyreduce: ;} break; - case 581: -#line 1745 "harbour.y" + case 560: +#line 1724 "harbour.y" { ++HB_COMP_PARAM->functions.pLast->wSwitchCounter; hb_compLinePushIfInside( HB_COMP_PARAM ); ;} break; - case 582: -#line 1750 "harbour.y" + case 561: +#line 1729 "harbour.y" { (yyval.asExpr) = hb_compExprReduce( (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 584: -#line 1757 "harbour.y" + case 563: +#line 1736 "harbour.y" { if( (yyvsp[(2) - (2)].lNumber) > 0 ) { @@ -6766,28 +6611,28 @@ yyreduce: ;} break; - case 585: -#line 1765 "harbour.y" + case 564: +#line 1744 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(2) - (2)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 587: -#line 1768 "harbour.y" + case 566: +#line 1747 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, (yyvsp[(3) - (3)].asExpr) ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 591: -#line 1776 "harbour.y" + case 570: +#line 1755 "harbour.y" { hb_compSwitchAdd( HB_COMP_PARAM, NULL ); hb_compLinePush( HB_COMP_PARAM ); ;} break; - case 592: -#line 1776 "harbour.y" + case 571: +#line 1755 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; ;} break; - case 594: -#line 1781 "harbour.y" + case 573: +#line 1760 "harbour.y" { /* 2 */ hb_compLinePushIfInside( HB_COMP_PARAM ); ++HB_COMP_PARAM->functions.pLast->wSeqCounter; @@ -6795,8 +6640,8 @@ yyreduce: ;} break; - case 595: -#line 1789 "harbour.y" + case 574: +#line 1768 "harbour.y" { /* 6 */ /* Set jump address for HB_P_SEQBEGIN opcode - this address * will be used in BREAK code if there is no RECOVER clause @@ -6809,8 +6654,8 @@ yyreduce: ;} break; - case 596: -#line 1800 "harbour.y" + case 575: +#line 1779 "harbour.y" { /* 8 */ /* Replace END address with RECOVER address in * HB_P_SEQBEGIN opcode if there is RECOVER clause @@ -6822,8 +6667,8 @@ yyreduce: ;} break; - case 597: -#line 1810 "harbour.y" + case 576: +#line 1789 "harbour.y" { /* 10 */ long lLoopCount = hb_compLoopCount( HB_COMP_PARAM ); HB_COMP_PARAM->functions.pLast->funFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); @@ -6854,13 +6699,13 @@ yyreduce: ;} break; - case 601: -#line 1845 "harbour.y" + case 580: +#line 1824 "harbour.y" { (yyval.lNumber) = 0; ;} break; - case 602: -#line 1847 "harbour.y" + case 581: +#line 1826 "harbour.y" { HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ) ); hb_compGenPCode1( HB_P_SEQBLOCK, HB_COMP_PARAM ); @@ -6868,13 +6713,13 @@ yyreduce: ;} break; - case 603: -#line 1854 "harbour.y" + case 582: +#line 1833 "harbour.y" { (yyval.lNumber) = 0; ;} break; - case 605: -#line 1859 "harbour.y" + case 584: +#line 1838 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ ( FUN_WITH_RETURN | FUN_BREAK_CODE ); (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6883,13 +6728,13 @@ yyreduce: ;} break; - case 606: -#line 1867 "harbour.y" + case 585: +#line 1846 "harbour.y" { (yyval.lNumber) = 0; HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; ;} break; - case 609: -#line 1873 "harbour.y" + case 588: +#line 1852 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6900,8 +6745,8 @@ yyreduce: ;} break; - case 610: -#line 1884 "harbour.y" + case 589: +#line 1863 "harbour.y" { HB_COMP_PARAM->functions.pLast->funFlags &= ~ FUN_BREAK_CODE; (yyval.lNumber) = HB_COMP_PARAM->functions.pLast->lPCodePos; @@ -6913,15 +6758,15 @@ yyreduce: ;} break; - case 613: -#line 1906 "harbour.y" + case 592: +#line 1885 "harbour.y" { (yyval.asExpr) = hb_compExprNewFunCall( (yyvsp[(2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 614: -#line 1910 "harbour.y" + case 593: +#line 1889 "harbour.y" { hb_compAutoOpenAdd( HB_COMP_PARAM, (yyvsp[(1) - (2)].string) ); /* DOIDENT is the only one identifier which can be returned in lower letters */ @@ -6929,48 +6774,48 @@ yyreduce: ;} break; - case 615: -#line 1917 "harbour.y" + case 594: +#line 1896 "harbour.y" { (yyval.asExpr) = NULL; ;} break; - case 616: -#line 1918 "harbour.y" + case 595: +#line 1897 "harbour.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 617: -#line 1921 "harbour.y" + case 596: +#line 1900 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 618: -#line 1922 "harbour.y" + case 597: +#line 1901 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewArgList( hb_compExprNewNil( HB_COMP_PARAM ), HB_COMP_PARAM ), (yyvsp[(2) - (2)].asExpr) ); ;} break; - case 619: -#line 1923 "harbour.y" + case 598: +#line 1902 "harbour.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 620: -#line 1924 "harbour.y" + case 599: +#line 1903 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (2)].asExpr), hb_compExprNewNil( HB_COMP_PARAM ) ); ;} break; - case 621: -#line 1925 "harbour.y" + case 600: +#line 1904 "harbour.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 622: -#line 1928 "harbour.y" + case 601: +#line 1907 "harbour.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; - case 627: -#line 1936 "harbour.y" + case 606: +#line 1915 "harbour.y" { hb_compLinePushIfInside( HB_COMP_PARAM ); HB_COMP_EXPR_DELETE( hb_compExprGenPush( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ) ); @@ -6980,8 +6825,8 @@ yyreduce: ;} break; - case 628: -#line 1945 "harbour.y" + case 607: +#line 1924 "harbour.y" { if( HB_COMP_PARAM->functions.pLast->wWithObjectCnt ) --HB_COMP_PARAM->functions.pLast->wWithObjectCnt; if( (yyvsp[(5) - (6)].lNumber) ) @@ -6995,14 +6840,14 @@ yyreduce: ;} break; - case 631: -#line 1962 "harbour.y" + case 610: +#line 1941 "harbour.y" { HB_COMP_PARAM->fError = FALSE; ;} break; /* Line 1268 of yacc.c. */ -#line 7006 "harboury.c" +#line 6851 "harboury.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -7221,7 +7066,7 @@ yyreturn: } -#line 1966 "harbour.y" +#line 1945 "harbour.y" /* @@ -8123,3 +7968,4 @@ void yyerror( HB_COMP_DECL, const char * s ) else hb_compGenError( HB_COMP_PARAM, hb_comp_szErrors, 'E', HB_COMP_ERR_YACC, s, HB_COMP_PARAM->pLex->lasttok ); } + diff --git a/harbour/source/compiler/hbopt.c b/harbour/source/compiler/hbopt.c index 2502168032..cbdc9ce427 100644 --- a/harbour/source/compiler/hbopt.c +++ b/harbour/source/compiler/hbopt.c @@ -273,7 +273,7 @@ static HB_OPT_FUNC( hb_p_true ) if( ! hb_compHasJump( pFunc, lPCodePos + 1 ) ) { int iCount = 1; - + switch( pFunc->pCode[ lPCodePos + 1 ] ) { case HB_P_JUMPTRUENEAR: @@ -321,7 +321,7 @@ static HB_OPT_FUNC( hb_p_duplicate ) BYTE * pAddr = &pFunc->pCode[ lPCodePos + 2 ]; LONG lOffset = HB_PCODE_MKINT24( pAddr ), lLastOffset = 0; ULONG ulNewPos = lPCodePos + 1 + lOffset; - BOOL fNot = FALSE, fRepeat = TRUE; + BOOL fNot = FALSE, fOK = TRUE, fRepeat = TRUE; do { @@ -341,6 +341,7 @@ static HB_OPT_FUNC( hb_p_duplicate ) ulNewPos++; lOffset++; fNot = !fNot; + fOK = !fOK; } else if( pFunc->pCode[ ulNewPos ] == HB_P_DUPLICATE && ( pFunc->pCode[ ulNewPos + 1 ] == HB_P_JUMPTRUEFAR || @@ -355,9 +356,13 @@ static HB_OPT_FUNC( hb_p_duplicate ) fRepeat = lJump > 0; } else + { fRepeat = FALSE; + if( pFunc->pCode[ ulNewPos ] == HB_P_POP ) + fOK = TRUE; + } - if( !fNot ) + if( fOK ) lLastOffset = lOffset; } while( fRepeat ); diff --git a/harbour/source/macro/macro.y b/harbour/source/macro/macro.y index 0500c5c87a..489eaf818a 100644 --- a/harbour/source/macro/macro.y +++ b/harbour/source/macro/macro.y @@ -252,7 +252,9 @@ static void hb_macroIdentNew( HB_COMP_DECL, char * ); Main : Expression { HB_MACRO_DATA->exprType = hb_compExprType( $1 ); - if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) + if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_REFER ) + hb_macroExprGenPush( hb_compExprNewRef( $1, HB_COMP_PARAM ), HB_COMP_PARAM ); + else if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) hb_macroExprGenPush( $1, HB_COMP_PARAM ); else hb_macroExprGenPop( $1, HB_COMP_PARAM ); @@ -574,7 +576,7 @@ LeftExpression : NumValue | PareExpList | FunCall | IfInline - | ObjectData + | ObjectData { HB_MACRO_IFENABLED( $$, $1, HB_SM_HARBOUR ); } | ObjectMethod ; @@ -600,46 +602,25 @@ ExprUnary : NOT Expression { $$ = hb_compExprNewNot( $2, HB_CO | '+' Expression %prec UNARY { $$ = $2; } ; -ExprAssign : NumValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | NilValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | DateValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | TimeStampValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | LiteralValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | CodeBlock INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Logical INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | SelfValue INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Array INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | ArrayAt INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Hash INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | AliasVar INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | AliasExpr INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | MacroVar INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | MacroExpr INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | Variable INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | VariableAt INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | PareExpList INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | FunCall INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | IfInline INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } - | ObjectData INASSIGN Expression { HB_MACRO_IFENABLED( $$, hb_compExprAssign( $1, $3, HB_COMP_PARAM ), HB_SM_HARBOUR ); } - | ObjectMethod INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } +ExprAssign : LeftExpression INASSIGN Expression { $$ = hb_compExprAssign( $1, $3, HB_COMP_PARAM ); } ; -ExprPlusEq : LeftExpression PLUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewPlusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprPlusEq : LeftExpression PLUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewPlusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprMinusEq : LeftExpression MINUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMinusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprMinusEq : LeftExpression MINUSEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMinusEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprMultEq : LeftExpression MULTEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMultEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprMultEq : LeftExpression MULTEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewMultEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprDivEq : LeftExpression DIVEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewDivEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprDivEq : LeftExpression DIVEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewDivEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprModEq : LeftExpression MODEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewModEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprModEq : LeftExpression MODEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewModEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; -ExprExpEq : LeftExpression EXPEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewExpEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } +ExprExpEq : LeftExpression EXPEQ Expression { $$ = hb_compExprSetOperand( hb_compExprNewExpEq( $1, HB_COMP_PARAM ), $3, HB_COMP_PARAM ); } ; ExprOperEq : ExprPlusEq diff --git a/harbour/source/macro/macro.yyc b/harbour/source/macro/macro.yyc index b45bf5a73e..419305e83b 100644 --- a/harbour/source/macro/macro.yyc +++ b/harbour/source/macro/macro.yyc @@ -580,16 +580,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 102 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1276 +#define YYLAST 1243 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 61 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 69 /* YYNRULES -- Number of rules. */ -#define YYNRULES 227 +#define YYNRULES 206 /* YYNRULES -- Number of states. */ -#define YYNSTATES 338 +#define YYNSTATES 296 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -654,13 +654,11 @@ static const yytype_uint16 yyprhs[] = 345, 347, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, 381, 383, 385, 388, 391, 394, 397, 400, 403, 407, 411, 415, - 419, 423, 427, 431, 435, 439, 443, 447, 451, 455, - 459, 463, 467, 471, 475, 479, 483, 487, 491, 495, - 499, 503, 507, 511, 515, 517, 519, 521, 523, 525, - 527, 531, 535, 539, 543, 547, 551, 555, 559, 563, - 567, 571, 575, 579, 583, 587, 591, 595, 598, 601, - 605, 610, 612, 616, 617, 625, 627, 631, 632, 634, - 636, 640, 642, 646, 649, 653, 656, 659 + 419, 423, 427, 431, 433, 435, 437, 439, 441, 443, + 447, 451, 455, 459, 463, 467, 471, 475, 479, 483, + 487, 491, 495, 499, 503, 507, 511, 514, 517, 521, + 526, 528, 532, 533, 541, 543, 547, 548, 550, 552, + 556, 558, 562, 565, 569, 572, 575 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -706,61 +704,51 @@ static const yytype_int16 yyrhs[] = -1, 127, -1, 87, -1, 129, -1, 93, -1, 94, -1, 20, -1, 21, -1, 102, 103, -1, 20, 96, -1, 21, 96, -1, 16, 96, -1, 44, 96, -1, - 43, 96, -1, 63, 6, 96, -1, 67, 6, 96, - -1, 64, 6, 96, -1, 65, 6, 96, -1, 68, - 6, 96, -1, 121, 6, 96, -1, 69, 6, 96, - -1, 70, 6, 96, -1, 71, 6, 96, -1, 72, - 6, 96, -1, 73, 6, 96, -1, 84, 6, 96, - -1, 85, 6, 96, -1, 77, 6, 96, -1, 79, - 6, 96, -1, 75, 6, 96, -1, 86, 6, 96, - -1, 127, 6, 96, -1, 87, 6, 96, -1, 129, - 6, 96, -1, 93, 6, 96, -1, 94, 6, 96, - -1, 102, 30, 96, -1, 102, 31, 96, -1, 102, - 32, 96, -1, 102, 33, 96, -1, 102, 36, 96, - -1, 102, 35, 96, -1, 108, -1, 109, -1, 110, - -1, 111, -1, 112, -1, 113, -1, 96, 43, 96, - -1, 96, 44, 96, -1, 96, 45, 96, -1, 96, - 46, 96, -1, 96, 47, 96, -1, 96, 34, 96, - -1, 96, 14, 96, -1, 96, 15, 96, -1, 96, - 17, 96, -1, 96, 40, 96, -1, 96, 41, 96, - -1, 96, 25, 96, -1, 96, 26, 96, -1, 96, - 18, 96, -1, 96, 19, 96, -1, 96, 42, 96, - -1, 96, 39, 96, -1, 119, 58, -1, 59, 97, - -1, 119, 52, 97, -1, 119, 58, 59, 97, -1, - 92, -1, 120, 52, 92, -1, -1, 53, 60, 122, - 124, 60, 123, 54, -1, 96, -1, 123, 52, 96, - -1, -1, 37, -1, 125, -1, 125, 52, 37, -1, - 3, -1, 125, 52, 3, -1, 55, 101, -1, 126, - 52, 101, -1, 126, 56, -1, 127, 22, -1, 10, - 55, 96, 52, 90, 52, 90, 56, -1 + 43, 96, -1, 102, 6, 96, -1, 102, 30, 96, + -1, 102, 31, 96, -1, 102, 32, 96, -1, 102, + 33, 96, -1, 102, 36, 96, -1, 102, 35, 96, + -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, + -1, 113, -1, 96, 43, 96, -1, 96, 44, 96, + -1, 96, 45, 96, -1, 96, 46, 96, -1, 96, + 47, 96, -1, 96, 34, 96, -1, 96, 14, 96, + -1, 96, 15, 96, -1, 96, 17, 96, -1, 96, + 40, 96, -1, 96, 41, 96, -1, 96, 25, 96, + -1, 96, 26, 96, -1, 96, 18, 96, -1, 96, + 19, 96, -1, 96, 42, 96, -1, 96, 39, 96, + -1, 119, 58, -1, 59, 97, -1, 119, 52, 97, + -1, 119, 58, 59, 97, -1, 92, -1, 120, 52, + 92, -1, -1, 53, 60, 122, 124, 60, 123, 54, + -1, 96, -1, 123, 52, 96, -1, -1, 37, -1, + 125, -1, 125, 52, 37, -1, 3, -1, 125, 52, + 3, -1, 55, 101, -1, 126, 52, 101, -1, 126, + 56, -1, 127, 22, -1, 10, 55, 96, 52, 90, + 52, 90, 56, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 253, 253, 261, 269, 278, 279, 282, 285, 288, - 293, 298, 303, 304, 309, 314, 319, 324, 325, 328, - 329, 335, 338, 343, 346, 365, 370, 373, 380, 381, - 386, 387, 388, 389, 390, 393, 394, 397, 398, 399, - 400, 401, 402, 403, 412, 413, 414, 415, 416, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 444, 447, - 452, 462, 463, 466, 467, 470, 471, 472, 473, 474, - 477, 478, 483, 484, 485, 490, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 526, 527, 530, 531, - 534, 534, 548, 549, 553, 554, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 584, 585, - 591, 594, 595, 598, 599, 600, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 627, 630, - 633, 636, 639, 642, 645, 646, 647, 648, 649, 650, - 653, 654, 655, 656, 657, 658, 661, 662, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 676, 682, 683, - 684, 687, 688, 692, 691, 699, 700, 705, 706, 707, - 708, 711, 712, 715, 716, 719, 722, 726 + 0, 253, 253, 263, 271, 280, 281, 284, 287, 290, + 295, 300, 305, 306, 311, 316, 321, 326, 327, 330, + 331, 337, 340, 345, 348, 367, 372, 375, 382, 383, + 388, 389, 390, 391, 392, 395, 396, 399, 400, 401, + 402, 403, 404, 405, 414, 415, 416, 417, 418, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 446, 449, + 454, 464, 465, 468, 469, 472, 473, 474, 475, 476, + 479, 480, 485, 486, 487, 492, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 528, 529, 532, 533, + 536, 536, 550, 551, 555, 556, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 586, 587, + 593, 596, 597, 600, 601, 602, 605, 608, 611, 614, + 617, 620, 623, 626, 627, 628, 629, 630, 631, 634, + 635, 636, 637, 638, 639, 642, 643, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 657, 663, 664, 665, + 668, 669, 673, 672, 680, 681, 686, 687, 688, 689, + 692, 693, 696, 697, 700, 703, 707 }; #endif @@ -826,14 +814,12 @@ static const yytype_uint8 yyr1[] = 99, 98, 100, 100, 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, - 104, 105, 105, 106, 106, 106, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 108, 109, - 110, 111, 112, 113, 114, 114, 114, 114, 114, 114, - 115, 115, 115, 115, 115, 115, 116, 116, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 118, 119, 119, - 119, 120, 120, 122, 121, 123, 123, 124, 124, 124, - 124, 125, 125, 126, 126, 127, 128, 129 + 104, 105, 105, 106, 106, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 114, 114, 114, 114, 114, 115, + 115, 115, 115, 115, 115, 116, 116, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 118, 119, 119, 119, + 120, 120, 122, 121, 123, 123, 124, 124, 124, 124, + 125, 125, 126, 126, 127, 128, 129 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -855,13 +841,11 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, - 4, 1, 3, 0, 7, 1, 3, 0, 1, 1, - 3, 1, 3, 2, 3, 2, 2, 8 + 3, 3, 3, 3, 3, 3, 2, 2, 3, 4, + 1, 3, 0, 7, 1, 3, 0, 1, 1, 3, + 1, 3, 2, 3, 2, 2, 8 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -875,34 +859,30 @@ static const yytype_uint8 yydefact[] = 87, 90, 92, 93, 94, 95, 96, 101, 0, 99, 0, 100, 0, 0, 0, 97, 98, 102, 103, 115, 105, 106, 116, 2, 122, 3, 0, 0, 109, 110, - 111, 107, 184, 185, 186, 187, 188, 189, 108, 112, + 111, 107, 163, 164, 165, 166, 167, 168, 108, 112, 113, 114, 91, 0, 117, 0, 104, 22, 124, 9, 0, 153, 151, 152, 28, 155, 154, 26, 0, 0, - 80, 0, 213, 0, 81, 74, 211, 125, 73, 0, - 125, 223, 1, 0, 0, 49, 0, 0, 51, 0, - 52, 35, 36, 37, 44, 0, 50, 0, 53, 0, - 55, 0, 57, 0, 16, 0, 0, 56, 0, 58, - 41, 45, 0, 25, 124, 61, 38, 46, 0, 27, - 62, 39, 47, 35, 0, 31, 30, 36, 33, 0, - 34, 42, 0, 32, 43, 0, 59, 0, 60, 0, - 0, 65, 0, 124, 63, 0, 64, 0, 0, 0, + 80, 0, 192, 0, 81, 74, 190, 125, 73, 0, + 125, 202, 1, 0, 49, 0, 51, 52, 35, 36, + 37, 44, 50, 53, 55, 57, 16, 56, 58, 41, + 45, 25, 124, 61, 38, 46, 27, 62, 39, 47, + 35, 0, 31, 30, 36, 33, 0, 34, 42, 0, + 32, 43, 59, 60, 65, 124, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 120, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 150, 0, 54, 124, 225, - 0, 226, 67, 40, 48, 0, 66, 0, 71, 0, - 29, 124, 17, 75, 126, 128, 129, 127, 130, 132, - 133, 134, 135, 136, 141, 76, 140, 77, 138, 79, - 144, 78, 147, 0, 131, 143, 145, 217, 0, 18, - 124, 124, 15, 156, 118, 119, 208, 0, 207, 158, - 159, 157, 160, 162, 163, 164, 165, 166, 171, 169, - 0, 170, 167, 168, 172, 174, 176, 0, 177, 196, - 197, 198, 203, 204, 201, 202, 195, 206, 199, 200, - 205, 190, 191, 192, 193, 194, 123, 124, 178, 179, - 180, 181, 183, 182, 82, 83, 84, 161, 224, 173, - 175, 124, 68, 124, 0, 124, 221, 218, 0, 219, - 0, 19, 212, 209, 0, 69, 85, 121, 72, 0, - 70, 0, 0, 0, 124, 210, 124, 70, 215, 0, - 222, 220, 20, 0, 0, 214, 227, 216 + 0, 0, 0, 0, 0, 124, 120, 0, 148, 149, + 0, 0, 0, 0, 0, 0, 0, 150, 54, 124, + 204, 205, 67, 40, 48, 66, 0, 71, 0, 29, + 124, 17, 75, 126, 128, 129, 127, 130, 132, 133, + 134, 135, 136, 141, 76, 140, 77, 138, 79, 144, + 78, 147, 0, 131, 143, 145, 196, 0, 18, 124, + 124, 15, 118, 119, 187, 0, 186, 0, 0, 175, + 176, 177, 182, 183, 180, 181, 174, 185, 178, 179, + 184, 169, 170, 171, 172, 173, 123, 124, 156, 157, + 158, 159, 160, 162, 161, 82, 83, 84, 203, 124, + 68, 124, 0, 124, 200, 197, 0, 198, 0, 19, + 191, 188, 0, 69, 85, 121, 72, 0, 70, 0, + 0, 0, 124, 189, 124, 70, 194, 0, 201, 199, + 20, 0, 0, 193, 206, 195 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -910,64 +890,60 @@ static const yytype_int16 yydefgoto[] = { -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 93, 37, 38, 39, 40, 41, 42, - 43, 44, 113, 45, 46, 47, 48, 49, 207, 94, - 95, 208, 50, 51, 52, 100, 246, 54, 287, 55, - 98, 57, 195, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 105, 106, 99, - 72, 237, 329, 308, 309, 73, 74, 75, 76 + 43, 44, 110, 45, 46, 47, 48, 49, 186, 94, + 95, 187, 50, 51, 52, 100, 224, 54, 247, 55, + 98, 57, 177, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 104, 105, 99, + 72, 216, 287, 266, 267, 73, 74, 75, 76 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -244 +#define YYPACT_NINF -246 static const yytype_int16 yypact[] = { - 347, -244, -6, -244, -244, -16, -244, -244, -38, -244, - -244, -244, 875, 875, 875, -244, 13, -244, -244, 875, - 875, -28, 19, 289, 875, 38, 469, 486, 503, 5, - 521, 538, 555, 573, 590, 192, 607, 625, 5, 373, - 5, 390, 5, 33, 108, 642, 659, 991, 677, -244, - 421, 694, -244, 1024, -244, 7, 44, 109, -244, -244, - -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, - -244, -244, 711, 64, 438, 5, 729, -244, 769, -244, - 875, 1229, -244, -244, 30, -244, -244, -244, 50, 52, - -244, 981, -244, 45, -244, -244, -244, 1096, -244, 104, - 1164, -244, -244, 875, 822, -244, -34, 875, -244, 875, - -244, -244, -244, -244, -244, 875, -244, 875, -244, 875, - -244, 875, -244, 875, -244, 875, 875, -244, 875, -244, - -244, -244, 875, -244, 769, -244, -244, -244, 875, -244, - -244, -244, -244, 92, -16, -244, -244, 129, -244, 139, - -244, -244, 141, -244, -244, 875, -244, 875, -244, 875, - 875, -244, 875, 769, -244, 875, -244, 875, 875, 875, - 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, - 875, 875, 875, 875, 875, -244, -244, -244, 875, 875, - 875, 875, 875, 875, 26, -244, 875, -244, 875, -244, - 875, -244, -244, -244, -244, 875, -244, 75, -244, 1060, - -244, 769, -244, 34, 105, 105, 105, 105, 105, 105, - 105, 105, -244, 105, 105, 43, -1, 144, 105, 127, - 105, -29, 105, 130, 105, 15, 105, 76, 875, -244, - 875, 769, -244, 1164, -244, 1164, -244, 822, 135, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 91, 1164, 1164, 1164, 1164, 1164, 1164, 94, 1164, 1198, - 1164, 1229, 1229, 1229, 867, 867, 161, 1229, 867, 867, - 867, 172, 172, 88, 88, 88, -244, 875, 1164, 1164, - 1164, 1164, 1164, 1164, -244, -244, -244, 1164, -244, 1164, - 1164, 769, -244, 928, 96, 769, -244, -244, 148, 158, - 1130, -244, -244, -244, 822, -244, -244, -244, -244, 159, - -244, 97, 875, 87, 875, -244, 928, 145, 1164, 155, - -244, -244, -244, 165, 875, -244, -244, 1164 + 286, -246, 5, -246, -246, -1, -246, -246, -33, -246, + -246, -246, 814, 814, 814, -246, 15, -246, -246, 814, + 814, -27, 55, 184, 814, 62, 408, 425, 442, 2, + 460, 477, 494, 512, 529, 930, 546, 564, 2, 312, + 2, 329, 2, 26, 37, 581, 598, 947, 616, -246, + 360, 633, -246, 991, -246, 39, 47, 965, -246, -246, + -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, 650, 77, 377, 2, 668, -246, 708, -246, + 814, 1196, -246, -246, 73, -246, -246, -246, 53, 59, + -246, 920, -246, -44, -246, -246, -246, 1063, -246, -16, + 1131, -246, -246, 761, -246, -34, -246, -246, -246, -246, + -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, 708, -246, -246, -246, -246, -246, -246, -246, + 94, -1, -246, -246, 99, -246, 120, -246, -246, 124, + -246, -246, -246, -246, -246, 708, -246, -246, 814, 814, + 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 814, 814, -246, 814, -246, -246, + 814, 814, 814, 814, 814, 814, 6, -246, -246, 814, + -246, -246, -246, -246, -246, -246, 79, -246, 1027, -246, + 708, -246, 60, 88, 88, 88, 88, 88, 88, 88, + 88, -246, 88, 88, 63, -15, 10, 88, 108, 88, + 20, 88, 111, 88, -11, 88, 12, 814, -246, 814, + 708, -246, -246, 1131, -246, 761, 110, 82, 84, 1165, + 1131, 1196, 1196, 1196, 806, 806, 143, 1196, 806, 806, + 806, 80, 80, 64, 64, 64, -246, 814, 1131, 1131, + 1131, 1131, 1131, 1131, 1131, -246, -246, -246, -246, 708, + -246, 867, 87, 708, -246, -246, 122, 132, 1097, -246, + -246, -246, 761, -246, -246, -246, -246, 133, -246, 89, + 814, 14, 814, -246, 867, 119, 1131, 129, -246, -246, + -246, 130, 814, -246, -246, 1131 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -244, -244, 123, 138, 140, 183, 142, 143, 146, 149, - 151, 152, 153, -244, 154, 187, 3, 189, -40, 193, - 162, -244, -33, 157, 167, 174, 178, -244, -119, -208, - -244, -21, 182, 184, -244, 0, -243, -244, -244, -244, - 1, 185, -244, -244, -244, -244, -244, -244, -244, -244, - -244, -244, -244, -244, -244, -244, -244, 36, -244, -244, - 186, -244, -244, -244, -244, -244, 10, 196, 188 + -246, -246, 107, 112, 115, 147, 118, 123, 125, 127, + 128, 131, 135, -246, 138, 158, 3, 159, -39, 167, + 139, -246, 30, 140, 141, 142, 145, -246, -119, -245, + -246, -21, 149, 150, -246, 0, -219, -246, -246, -246, + 1, 151, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, -246, -246, -246, -246, -246, 56, -246, -246, + 152, -246, -246, -246, -246, -246, 21, 172, 154 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -977,266 +953,260 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -148 static const yytype_int16 yytable[] = { - 53, 56, 96, 149, 313, 130, 79, 136, 111, 141, - 151, 154, 81, 82, 83, 260, 77, 80, 247, 85, - 86, 139, 88, 97, 248, 101, 163, 24, -146, 294, - 104, 87, 112, 17, 18, 84, 143, 201, 102, 114, - 144, 112, 203, 112, 267, 112, 147, 112, 131, 78, - 137, 226, 142, 152, 17, 18, 77, 16, 104, 184, - 24, 17, 18, 108, 110, 133, 116, 118, 120, 122, - 124, 325, 127, 129, 104, 135, 21, 140, 112, 306, - 209, 156, 158, 21, 161, 204, 164, 166, 24, 305, - 330, -21, 304, -21, 225, 319, 185, 238, 134, 239, - -139, 235, 104, 243, 245, 211, 212, 249, 197, 250, - 202, 111, 206, 307, 77, 251, 198, 252, 333, 253, - 199, 254, 174, 255, 331, 256, 257, 301, 258, 186, - 187, 302, 259, 181, 182, 183, 17, 18, 261, 188, - 189, 190, 191, 301, 192, 193, 301, 315, 301, 301, - 316, 133, 320, 327, 296, 262, 241, 263, 242, 264, - 265, 139, 266, 201, 104, 268, 194, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, -142, 286, 321, 194, 288, 289, - 290, 291, 292, 293, 314, 174, 297, 295, 125, 298, - 299, -137, -68, 104, -68, 300, 174, 334, 322, 335, - 323, 326, -135, -135, 214, 179, 180, 181, 182, 183, - 312, 336, -135, -135, -135, -135, 145, -135, -135, 215, - 146, 216, 148, 217, 218, 0, 150, 219, 310, 153, - 220, 311, 221, 222, 223, 224, 210, 245, 227, -135, - 0, 108, 110, 116, 118, 120, 122, 124, 228, 127, - 129, 135, 140, 156, 158, 229, 161, 164, 166, 230, - 197, 202, 206, 231, 0, 232, 233, 234, 0, 236, - 318, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, - 9, 10, 11, 0, 0, 12, 0, 0, 0, 13, - 14, 0, 89, 15, 245, 0, 16, 17, 18, 0, - 0, 0, 328, 0, 0, 332, 90, 0, 0, 0, - 0, 0, 19, 20, 337, 0, 0, 0, 0, 21, - 91, 0, 23, 0, 24, 0, 0, 0, 1, 92, + 53, 56, 96, 227, 136, 108, 271, 126, 217, 255, + 218, 181, 81, 82, 83, 264, 277, 288, 225, 85, + 86, 79, 80, 97, 226, 101, 228, 77, 24, 130, + 17, 18, 109, 131, 17, 18, 220, 84, 221, 291, + 108, 109, 87, 109, 103, 109, 134, 109, 103, 265, + 111, 289, 205, 283, 17, 18, 21, 24, 88, 120, + 78, 125, 102, 129, 139, 17, 18, -137, 119, 103, + 124, 262, 128, 138, 141, 145, 21, -146, 109, 103, + 188, 24, 77, 106, 107, 121, 112, 113, 114, 115, + 116, 165, 117, 118, 204, 123, 184, 127, 155, 166, + 16, 142, 143, 223, 144, 183, 146, 147, 190, 162, + 163, 164, 214, 191, 155, 263, 77, -21, 122, -21, + -139, 121, 103, 160, 161, 162, 163, 164, 178, 179, + 182, 259, 185, 180, 259, 260, 259, 257, 273, 259, + 274, 259, 126, 278, 279, 285, 181, 103, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, -142, 246, 248, 176, 272, + 249, 250, 251, 252, 253, 254, -68, 155, -68, 256, + 258, 292, 280, 293, 281, 284, 294, 2, 3, 4, + 132, 5, 6, 7, 8, 9, 10, 11, 193, 270, + 12, 133, 135, 194, 13, 14, 195, 89, 15, 196, + 137, 16, 17, 18, 197, 140, 198, 268, 199, 200, + 269, 90, 201, 189, 0, 223, 202, 19, 20, 203, + 0, 206, 207, 208, 21, 91, 209, 23, 276, 24, + 210, 211, 212, 213, 92, 215, 0, 0, 275, 0, + 106, 107, 112, 113, 114, 115, 116, 0, 117, 118, + 123, 127, 142, 143, 0, 144, 146, 147, 0, 178, + 182, 185, 223, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 290, 0, 0, 0, 1, 0, 2, + 3, 4, 295, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 12, 0, 0, 0, 13, 14, 0, 0, + 15, 0, 0, 16, 17, 18, 0, 0, -139, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 20, 0, -139, -139, 121, -140, 21, 22, -124, 23, + 0, 24, -139, -139, -139, -139, 0, -139, -139, -140, + -140, 126, 0, 0, 0, 0, 0, 0, 0, -140, + -140, -140, -140, 0, -140, -140, -146, 122, 0, -139, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + -146, -146, 0, -143, 0, 0, -140, 0, 103, 0, + -146, -146, -146, -146, 0, -146, -146, -143, -143, 181, + 0, 0, 0, 0, 0, 0, 0, -143, -143, -143, + -143, 0, -143, -143, -126, 145, 0, -146, 0, 103, + 0, 0, 0, 0, 0, 0, 0, 0, -126, -126, + 0, -128, 0, 0, -143, 0, 103, 0, -126, -126, + -126, -126, 0, -126, -126, -128, -128, 0, -129, 0, + 0, 0, 0, 0, 0, -128, -128, -128, -128, 0, + -128, -128, -129, -129, 0, -126, -127, 103, 0, 0, + 0, 0, -129, -129, -129, -129, 0, -129, -129, 0, + -127, -127, -128, -130, 103, 0, 0, 0, 0, 0, + -127, -127, -127, -127, 0, -127, -127, -130, -130, -129, + -132, 103, 0, 0, 0, 0, 0, -130, -130, -130, + -130, 0, -130, -130, -132, -132, 0, -127, -133, 103, + 0, 0, 0, 0, -132, -132, -132, -132, 0, -132, + -132, 0, -133, -133, -130, -134, 103, 0, 0, 0, + 0, 0, -133, -133, -133, -133, 0, -133, -133, -134, + -134, -132, -136, 103, 0, 0, 0, 0, 0, -134, + -134, -134, -134, 0, -134, -134, -136, -136, 0, -133, + -141, 103, 0, 0, 0, 0, -136, -136, -136, -136, + 0, -136, -136, 0, -141, -141, -134, -137, 103, 0, + 0, 0, 0, 0, -141, -141, -141, -141, 0, -141, + -141, -137, -137, -136, -138, 103, 0, 0, 0, 0, + 0, -137, -137, -137, -137, 0, -137, -137, -138, -138, + 0, -141, -144, 103, 0, 0, 0, 0, -138, -138, + -138, -138, 0, -138, -138, 0, -144, -144, -137, -147, + 103, 0, 0, 0, 0, 0, -144, -144, -144, -144, + 0, -144, -144, -147, -147, -138, -131, 103, 0, 0, + 0, 0, 0, -147, -147, -147, -147, 0, -147, -147, + -131, -131, 0, -144, -145, 103, 0, 0, 0, 0, + -131, -131, -131, -131, 0, -131, -131, 0, -145, -145, + -147, 0, 103, 0, 0, 0, 0, 0, -145, -145, + -145, -145, 0, -145, -145, 0, 0, -131, 0, 103, + 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 12, -145, 0, 103, 13, 14, + 0, 0, 15, 0, 0, 16, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, + 0, 19, 20, 0, 0, 0, 0, 0, 21, 91, + 0, 23, 0, 24, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 12, 0, 0, + 0, 13, 14, 0, 0, 15, 0, 0, 16, 17, + 18, 0, 0, 0, 0, 0, 0, 0, 222, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 0, 21, 22, 0, 23, 0, 24, 2, 3, 4, + 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 12, 153, 154, 0, 13, 14, 0, 0, 15, 0, + 155, 16, 17, 18, 0, 0, 157, 158, 159, 160, + 161, 162, 163, 164, 0, 0, 0, 19, 20, 0, + 0, 0, 0, 0, 21, 22, 0, 23, 0, 24, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, 12, 0, 0, 0, 13, 14, 0, - 0, 15, 0, 0, 16, 17, 18, 0, 0, 132, + 0, 15, 0, 0, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 20, 0, -139, -139, 133, 138, 21, 22, -124, - 23, 0, 24, -139, -139, -139, -139, 0, -139, -139, - -140, -140, 139, 0, 0, 0, 0, 0, 0, 0, - -140, -140, -140, -140, 0, -140, -140, 162, 134, 0, - -139, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 0, -146, -146, 0, 200, 0, 0, -140, 0, 104, - 0, -146, -146, -146, -146, 0, -146, -146, -143, -143, - 201, 0, 0, 0, 0, 0, 0, 0, -143, -143, - -143, -143, 0, -143, -143, 103, 163, 0, -146, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, -126, - -126, 0, 107, 0, 0, -143, 0, 104, 0, -126, - -126, -126, -126, 0, -126, -126, -128, -128, 0, 109, - 0, 0, 0, 0, 0, 0, -128, -128, -128, -128, - 0, -128, -128, -129, -129, 0, -126, 115, 104, 0, - 0, 0, 0, -129, -129, -129, -129, 0, -129, -129, - 0, -127, -127, -128, 117, 104, 0, 0, 0, 0, - 0, -127, -127, -127, -127, 0, -127, -127, -130, -130, - -129, 119, 104, 0, 0, 0, 0, 0, -130, -130, - -130, -130, 0, -130, -130, -132, -132, 0, -127, 121, - 104, 0, 0, 0, 0, -132, -132, -132, -132, 0, - -132, -132, 0, -133, -133, -130, 123, 104, 0, 0, - 0, 0, 0, -133, -133, -133, -133, 0, -133, -133, - -134, -134, -132, 126, 104, 0, 0, 0, 0, 0, - -134, -134, -134, -134, 0, -134, -134, -136, -136, 0, - -133, 128, 104, 0, 0, 0, 0, -136, -136, -136, - -136, 0, -136, -136, 0, -141, -141, -134, 155, 104, - 0, 0, 0, 0, 0, -141, -141, -141, -141, 0, - -141, -141, -137, -137, -136, 157, 104, 0, 0, 0, - 0, 0, -137, -137, -137, -137, 0, -137, -137, -138, - -138, 0, -141, 160, 104, 0, 0, 0, 0, -138, - -138, -138, -138, 0, -138, -138, 0, -144, -144, -137, - 165, 104, 0, 0, 0, 0, 0, -144, -144, -144, - -144, 0, -144, -144, -147, -147, -138, 196, 104, 0, - 0, 0, 0, 0, -147, -147, -147, -147, 0, -147, - -147, -131, -131, 0, -144, 205, 104, 0, 0, 0, - 0, -131, -131, -131, -131, 0, -131, -131, 0, -145, - -145, -147, 0, 104, 0, 0, 0, 0, 0, -145, - -145, -145, -145, 0, -145, -145, 0, 0, -131, 0, - 104, 0, 2, 3, 4, 0, 5, 6, 7, 8, - 9, 10, 11, 0, 0, 12, -145, 0, 104, 13, - 14, 0, 0, 15, 0, 0, 16, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 19, 20, 0, 0, 0, 0, 0, 21, - 91, 0, 23, 0, 24, 2, 3, 4, 0, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 12, 0, - 0, 0, 13, 14, 0, 0, 15, 0, 0, 16, - 17, 18, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 0, 0, 0, 0, 19, 20, 0, 0, 0, - 0, 0, 21, 22, 0, 23, 0, 24, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, - 0, 12, 172, 173, 0, 13, 14, 0, 0, 15, - 0, 174, 16, 17, 18, 0, 0, 176, 177, 178, - 179, 180, 181, 182, 183, 0, 0, 0, 19, 20, - 0, 0, 0, 0, 0, 21, 22, 0, 23, 0, - 24, 2, 3, 4, 0, 5, 6, 7, 8, 9, - 10, 11, 0, 0, 12, 0, 0, 0, 13, 14, - 0, 0, 15, 0, 0, 16, 17, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 20, 0, 0, 0, 0, 0, 21, 91, - 0, 23, 0, 24, 213, 3, 4, 0, 5, 6, - 7, 8, 9, 10, 11, 0, 0, 159, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 16, 17, - 18, -142, -142, 0, 0, 0, 0, 0, 0, 0, - 0, -142, -142, -142, -142, 0, -142, -142, 0, 0, - 0, 21, 0, 0, 23, 0, 24, 0, 167, 168, - 0, 169, 170, 171, 0, 0, 0, 0, -142, 172, - 173, 0, 0, 0, 0, 0, 0, 0, 174, 0, - 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 0, 0, 167, 168, -125, 169, 170, 171, - 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, - 0, 0, 0, 0, 174, 0, 0, 0, 0, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 0, 0, - 167, 168, 303, 169, 170, 171, 0, 0, 0, 240, - 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, - 174, 0, 0, 0, 0, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 167, 168, 0, 169, 170, 171, - 0, 0, 0, 324, 0, 172, 173, 0, 0, 0, - 0, 0, 0, 0, 174, 0, 0, 0, 0, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 167, 168, - 0, 169, 170, 171, 0, 0, 0, 0, 0, 172, - 173, 0, 0, 0, 0, 0, 0, 0, 174, 0, - 0, 0, 0, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 167, 0, 0, 169, 170, 171, 0, 0, - 0, 0, 0, 172, 173, 0, 0, 0, 0, 0, - 0, 0, 174, 0, 0, 0, 0, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 169, 170, 171, 0, - 0, 0, 0, 0, 172, 173, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 0, 0, 0, 175, 176, - 177, 178, 179, 180, 181, 182, 183 + 19, 20, 0, 0, 0, 0, 0, 21, 91, 0, + 23, 0, 24, 192, 3, 4, 0, 5, 6, 7, + 8, 9, 10, 11, 0, 0, -135, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 16, 17, 18, + -135, -135, 0, -142, 0, 0, 0, 0, 0, 0, + -135, -135, -135, -135, 0, -135, -135, -142, -142, 0, + 21, 167, 0, 23, 0, 24, 0, -142, -142, -142, + -142, 0, -142, -142, 0, 168, 169, -135, 0, 0, + 0, 0, 0, 0, 0, 170, 171, 172, 173, 0, + 174, 175, 0, 0, -142, 148, 149, 0, 150, 151, + 152, 0, 0, 0, 0, 0, 153, 154, 0, 0, + 0, 0, 176, 0, 0, 155, 0, 0, 0, 0, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 0, + 0, 148, 149, -125, 150, 151, 152, 0, 0, 0, + 0, 0, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 0, 0, 148, 149, 261, + 150, 151, 152, 0, 0, 0, 219, 0, 153, 154, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 148, 149, 0, 150, 151, 152, 0, 0, 0, + 282, 0, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 148, 149, 0, 150, 151, + 152, 0, 0, 0, 0, 0, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 148, + 0, 0, 150, 151, 152, 0, 0, 0, 0, 0, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 150, 151, 152, 0, 0, 0, 0, + 0, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164 }; static const yytype_int16 yycheck[] = { - 0, 0, 23, 43, 247, 38, 22, 40, 3, 42, - 43, 44, 12, 13, 14, 134, 22, 55, 52, 19, - 20, 22, 3, 23, 58, 24, 55, 55, 57, 3, - 59, 21, 29, 28, 29, 22, 3, 22, 0, 29, - 7, 38, 75, 40, 163, 42, 43, 44, 38, 55, - 40, 91, 42, 43, 28, 29, 22, 27, 59, 52, - 55, 28, 29, 27, 28, 22, 30, 31, 32, 33, - 34, 314, 36, 37, 59, 39, 50, 41, 75, 3, - 80, 45, 46, 50, 48, 75, 50, 51, 55, 55, - 3, 57, 211, 59, 91, 303, 52, 52, 55, 54, - 57, 91, 59, 103, 104, 55, 54, 107, 72, 109, - 74, 3, 76, 37, 22, 115, 52, 117, 326, 119, - 56, 121, 34, 123, 37, 125, 126, 52, 128, 20, - 21, 56, 132, 45, 46, 47, 28, 29, 138, 30, - 31, 32, 33, 52, 35, 36, 52, 56, 52, 52, - 56, 22, 56, 56, 194, 155, 52, 157, 54, 159, - 160, 22, 162, 22, 59, 165, 57, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 57, 184, 305, 57, 188, 189, - 190, 191, 192, 193, 59, 34, 196, 194, 6, 198, - 200, 57, 57, 59, 59, 205, 34, 52, 60, 54, - 52, 52, 20, 21, 91, 43, 44, 45, 46, 47, - 241, 56, 30, 31, 32, 33, 43, 35, 36, 91, - 43, 91, 43, 91, 91, -1, 43, 91, 238, 43, - 91, 240, 91, 91, 91, 91, 84, 247, 91, 57, - -1, 215, 216, 217, 218, 219, 220, 221, 91, 223, - 224, 225, 226, 227, 228, 91, 230, 231, 232, 91, - 234, 235, 236, 91, -1, 91, 91, 91, -1, 91, - 301, -1, -1, -1, -1, -1, -1, -1, 287, -1, - -1, -1, 3, 4, 5, -1, 7, 8, 9, 10, - 11, 12, 13, -1, -1, 16, -1, -1, -1, 20, - 21, -1, 23, 24, 314, -1, 27, 28, 29, -1, - -1, -1, 322, -1, -1, 324, 37, -1, -1, -1, - -1, -1, 43, 44, 334, -1, -1, -1, -1, 50, - 51, -1, 53, -1, 55, -1, -1, -1, 1, 60, - 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, - 13, -1, -1, 16, -1, -1, -1, 20, 21, -1, - -1, 24, -1, -1, 27, 28, 29, -1, -1, 6, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, 44, -1, 20, 21, 22, 6, 50, 51, 52, - 53, -1, 55, 30, 31, 32, 33, -1, 35, 36, - 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, - 30, 31, 32, 33, -1, 35, 36, 6, 55, -1, - 57, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, 20, 21, -1, 6, -1, -1, 57, -1, 59, - -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, 30, 31, - 32, 33, -1, 35, 36, 6, 55, -1, 57, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 21, -1, 6, -1, -1, 57, -1, 59, -1, 30, - 31, 32, 33, -1, 35, 36, 20, 21, -1, 6, - -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, - -1, 35, 36, 20, 21, -1, 57, 6, 59, -1, - -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, - -1, 20, 21, 57, 6, 59, -1, -1, -1, -1, - -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, - 57, 6, 59, -1, -1, -1, -1, -1, 30, 31, - 32, 33, -1, 35, 36, 20, 21, -1, 57, 6, - 59, -1, -1, -1, -1, 30, 31, 32, 33, -1, - 35, 36, -1, 20, 21, 57, 6, 59, -1, -1, - -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, - 20, 21, 57, 6, 59, -1, -1, -1, -1, -1, - 30, 31, 32, 33, -1, 35, 36, 20, 21, -1, - 57, 6, 59, -1, -1, -1, -1, 30, 31, 32, - 33, -1, 35, 36, -1, 20, 21, 57, 6, 59, + 0, 0, 23, 122, 43, 3, 225, 22, 52, 3, + 54, 22, 12, 13, 14, 3, 261, 3, 52, 19, + 20, 22, 55, 23, 58, 24, 145, 22, 55, 3, + 28, 29, 29, 7, 28, 29, 52, 22, 54, 284, + 3, 38, 21, 40, 59, 42, 43, 44, 59, 37, + 29, 37, 91, 272, 28, 29, 50, 55, 3, 38, + 55, 40, 0, 42, 43, 28, 29, 57, 38, 59, + 40, 190, 42, 43, 44, 55, 50, 57, 75, 59, + 80, 55, 22, 27, 28, 22, 30, 31, 32, 33, + 34, 52, 36, 37, 91, 39, 75, 41, 34, 52, + 27, 45, 46, 103, 48, 75, 50, 51, 55, 45, + 46, 47, 91, 54, 34, 55, 22, 57, 55, 59, + 57, 22, 59, 43, 44, 45, 46, 47, 72, 52, + 74, 52, 76, 56, 52, 56, 52, 176, 56, 52, + 56, 52, 22, 56, 263, 56, 22, 59, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 57, 165, 167, 57, 59, + 170, 171, 172, 173, 174, 175, 57, 34, 59, 176, + 179, 52, 60, 54, 52, 52, 56, 3, 4, 5, + 43, 7, 8, 9, 10, 11, 12, 13, 91, 220, + 16, 43, 43, 91, 20, 21, 91, 23, 24, 91, + 43, 27, 28, 29, 91, 43, 91, 217, 91, 91, + 219, 37, 91, 84, -1, 225, 91, 43, 44, 91, + -1, 91, 91, 91, 50, 51, 91, 53, 259, 55, + 91, 91, 91, 91, 60, 91, -1, -1, 247, -1, + 194, 195, 196, 197, 198, 199, 200, -1, 202, 203, + 204, 205, 206, 207, -1, 209, 210, 211, -1, 213, + 214, 215, 272, -1, -1, -1, -1, -1, -1, -1, + 280, -1, -1, 282, -1, -1, -1, 1, -1, 3, + 4, 5, 292, 7, 8, 9, 10, 11, 12, 13, + -1, -1, 16, -1, -1, -1, 20, 21, -1, -1, + 24, -1, -1, 27, 28, 29, -1, -1, 6, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, + 44, -1, 20, 21, 22, 6, 50, 51, 52, 53, + -1, 55, 30, 31, 32, 33, -1, 35, 36, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, 30, + 31, 32, 33, -1, 35, 36, 6, 55, -1, 57, + -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + 20, 21, -1, 6, -1, -1, 57, -1, 59, -1, + 30, 31, 32, 33, -1, 35, 36, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, 30, 31, 32, + 33, -1, 35, 36, 6, 55, -1, 57, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, + -1, 6, -1, -1, 57, -1, 59, -1, 30, 31, + 32, 33, -1, 35, 36, 20, 21, -1, 6, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, - 35, 36, 20, 21, 57, 6, 59, -1, -1, -1, - -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, - 21, -1, 57, 6, 59, -1, -1, -1, -1, 30, - 31, 32, 33, -1, 35, 36, -1, 20, 21, 57, + 35, 36, 20, 21, -1, 57, 6, 59, -1, -1, + -1, -1, 30, 31, 32, 33, -1, 35, 36, -1, + 20, 21, 57, 6, 59, -1, -1, -1, -1, -1, + 30, 31, 32, 33, -1, 35, 36, 20, 21, 57, 6, 59, -1, -1, -1, -1, -1, 30, 31, 32, - 33, -1, 35, 36, 20, 21, 57, 6, 59, -1, + 33, -1, 35, 36, 20, 21, -1, 57, 6, 59, -1, -1, -1, -1, 30, 31, 32, 33, -1, 35, - 36, 20, 21, -1, 57, 6, 59, -1, -1, -1, - -1, 30, 31, 32, 33, -1, 35, 36, -1, 20, - 21, 57, -1, 59, -1, -1, -1, -1, -1, 30, - 31, 32, 33, -1, 35, 36, -1, -1, 57, -1, - 59, -1, 3, 4, 5, -1, 7, 8, 9, 10, - 11, 12, 13, -1, -1, 16, 57, -1, 59, 20, - 21, -1, -1, 24, -1, -1, 27, 28, 29, -1, - -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, - -1, -1, 43, 44, -1, -1, -1, -1, -1, 50, - 51, -1, 53, -1, 55, 3, 4, 5, -1, 7, - 8, 9, 10, 11, 12, 13, -1, -1, 16, -1, - -1, -1, 20, 21, -1, -1, 24, -1, -1, 27, - 28, 29, -1, -1, -1, -1, -1, -1, -1, 37, - -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, - -1, -1, 50, 51, -1, 53, -1, 55, 3, 4, - 5, -1, 7, 8, 9, 10, 11, 12, 13, -1, - -1, 16, 25, 26, -1, 20, 21, -1, -1, 24, - -1, 34, 27, 28, 29, -1, -1, 40, 41, 42, - 43, 44, 45, 46, 47, -1, -1, -1, 43, 44, - -1, -1, -1, -1, -1, 50, 51, -1, 53, -1, - 55, 3, 4, 5, -1, 7, 8, 9, 10, 11, - 12, 13, -1, -1, 16, -1, -1, -1, 20, 21, + 36, -1, 20, 21, 57, 6, 59, -1, -1, -1, + -1, -1, 30, 31, 32, 33, -1, 35, 36, 20, + 21, 57, 6, 59, -1, -1, -1, -1, -1, 30, + 31, 32, 33, -1, 35, 36, 20, 21, -1, 57, + 6, 59, -1, -1, -1, -1, 30, 31, 32, 33, + -1, 35, 36, -1, 20, 21, 57, 6, 59, -1, + -1, -1, -1, -1, 30, 31, 32, 33, -1, 35, + 36, 20, 21, 57, 6, 59, -1, -1, -1, -1, + -1, 30, 31, 32, 33, -1, 35, 36, 20, 21, + -1, 57, 6, 59, -1, -1, -1, -1, 30, 31, + 32, 33, -1, 35, 36, -1, 20, 21, 57, 6, + 59, -1, -1, -1, -1, -1, 30, 31, 32, 33, + -1, 35, 36, 20, 21, 57, 6, 59, -1, -1, + -1, -1, -1, 30, 31, 32, 33, -1, 35, 36, + 20, 21, -1, 57, 6, 59, -1, -1, -1, -1, + 30, 31, 32, 33, -1, 35, 36, -1, 20, 21, + 57, -1, 59, -1, -1, -1, -1, -1, 30, 31, + 32, 33, -1, 35, 36, -1, -1, 57, -1, 59, + -1, 3, 4, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 16, 57, -1, 59, 20, 21, -1, -1, 24, -1, -1, 27, 28, 29, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, 50, 51, -1, 53, -1, 55, 3, 4, 5, -1, 7, 8, - 9, 10, 11, 12, 13, -1, -1, 6, -1, -1, - -1, -1, -1, -1, -1, 24, -1, -1, 27, 28, - 29, 20, 21, -1, -1, -1, -1, -1, -1, -1, - -1, 30, 31, 32, 33, -1, 35, 36, -1, -1, - -1, 50, -1, -1, 53, -1, 55, -1, 14, 15, - -1, 17, 18, 19, -1, -1, -1, -1, 57, 25, - 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, - -1, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, -1, -1, 14, 15, 52, 17, 18, 19, - -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, - -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, - 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, - 14, 15, 52, 17, 18, 19, -1, -1, -1, 23, + 9, 10, 11, 12, 13, -1, -1, 16, -1, -1, + -1, 20, 21, -1, -1, 24, -1, -1, 27, 28, + 29, -1, -1, -1, -1, -1, -1, -1, 37, -1, + -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, + -1, 50, 51, -1, 53, -1, 55, 3, 4, 5, + -1, 7, 8, 9, 10, 11, 12, 13, -1, -1, + 16, 25, 26, -1, 20, 21, -1, -1, 24, -1, + 34, 27, 28, 29, -1, -1, 40, 41, 42, 43, + 44, 45, 46, 47, -1, -1, -1, 43, 44, -1, + -1, -1, -1, -1, 50, 51, -1, 53, -1, 55, + 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, + 13, -1, -1, 16, -1, -1, -1, 20, 21, -1, + -1, 24, -1, -1, 27, 28, 29, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, 50, 51, -1, + 53, -1, 55, 3, 4, 5, -1, 7, 8, 9, + 10, 11, 12, 13, -1, -1, 6, -1, -1, -1, + -1, -1, -1, -1, 24, -1, -1, 27, 28, 29, + 20, 21, -1, 6, -1, -1, -1, -1, -1, -1, + 30, 31, 32, 33, -1, 35, 36, 20, 21, -1, + 50, 6, -1, 53, -1, 55, -1, 30, 31, 32, + 33, -1, 35, 36, -1, 20, 21, 57, -1, -1, + -1, -1, -1, -1, -1, 30, 31, 32, 33, -1, + 35, 36, -1, -1, 57, 14, 15, -1, 17, 18, + 19, -1, -1, -1, -1, -1, 25, 26, -1, -1, + -1, -1, 57, -1, -1, 34, -1, -1, -1, -1, + 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, + -1, 14, 15, 52, 17, 18, 19, -1, -1, -1, + -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, + -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, + 43, 44, 45, 46, 47, -1, -1, 14, 15, 52, + 17, 18, 19, -1, -1, -1, 23, -1, 25, 26, + -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, + -1, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 14, 15, -1, 17, 18, 19, -1, -1, -1, + 23, -1, 25, 26, -1, -1, -1, -1, -1, -1, + -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 14, 15, -1, 17, 18, + 19, -1, -1, -1, -1, -1, 25, 26, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 14, + -1, -1, 17, 18, 19, -1, -1, -1, -1, -1, + 25, 26, -1, -1, -1, -1, -1, -1, -1, 34, + -1, -1, -1, -1, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 17, 18, 19, -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 14, 15, -1, 17, 18, 19, - -1, -1, -1, 23, -1, 25, 26, -1, -1, -1, - -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 14, 15, - -1, 17, 18, 19, -1, -1, -1, -1, -1, 25, - 26, -1, -1, -1, -1, -1, -1, -1, 34, -1, - -1, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 14, -1, -1, 17, 18, 19, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - -1, -1, 34, -1, -1, -1, -1, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 17, 18, 19, -1, - -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, - -1, -1, -1, 34, -1, -1, -1, -1, 39, 40, - 41, 42, 43, 44, 45, 46, 47 + 44, 45, 46, 47 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1253,30 +1223,26 @@ static const yytype_uint8 yystos[] = 116, 117, 121, 126, 127, 128, 129, 22, 55, 22, 55, 96, 96, 96, 22, 96, 96, 127, 3, 23, 37, 51, 60, 74, 90, 91, 92, 96, 101, 120, - 96, 101, 0, 6, 59, 118, 119, 6, 118, 6, - 118, 3, 77, 83, 127, 6, 118, 6, 118, 6, - 118, 6, 118, 6, 118, 6, 6, 118, 6, 118, - 83, 127, 6, 22, 55, 118, 83, 127, 6, 22, - 118, 83, 127, 3, 7, 66, 76, 77, 78, 79, - 80, 83, 127, 128, 83, 6, 118, 6, 118, 6, - 6, 118, 6, 55, 118, 6, 118, 14, 15, 17, - 18, 19, 25, 26, 34, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 52, 52, 20, 21, 30, 31, - 32, 33, 35, 36, 57, 103, 6, 118, 52, 56, - 6, 22, 118, 83, 127, 6, 118, 89, 92, 96, - 81, 55, 54, 3, 63, 64, 65, 67, 68, 69, - 70, 71, 72, 73, 75, 77, 79, 84, 85, 86, - 87, 93, 94, 102, 121, 127, 129, 122, 52, 54, - 23, 52, 54, 96, 37, 96, 97, 52, 58, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 89, 96, 96, 96, 96, 96, 96, 89, 96, 96, + 96, 101, 0, 59, 118, 119, 118, 118, 3, 77, + 83, 127, 118, 118, 118, 118, 118, 118, 118, 83, + 127, 22, 55, 118, 83, 127, 22, 118, 83, 127, + 3, 7, 66, 76, 77, 78, 79, 80, 83, 127, + 128, 83, 118, 118, 118, 55, 118, 118, 14, 15, + 17, 18, 19, 25, 26, 34, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 52, 52, 6, 20, 21, + 30, 31, 32, 33, 35, 36, 57, 103, 118, 52, + 56, 22, 118, 83, 127, 118, 89, 92, 96, 81, + 55, 54, 3, 63, 64, 65, 67, 68, 69, 70, + 71, 72, 73, 75, 77, 79, 84, 85, 86, 87, + 93, 94, 102, 121, 127, 129, 122, 52, 54, 23, + 52, 54, 37, 96, 97, 52, 58, 89, 89, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 101, 99, 96, 96, - 96, 96, 96, 96, 3, 77, 79, 96, 101, 96, - 96, 52, 56, 52, 89, 55, 3, 37, 124, 125, - 96, 101, 92, 97, 59, 56, 56, 101, 92, 90, - 56, 89, 60, 52, 23, 97, 52, 56, 96, 123, - 3, 37, 101, 90, 52, 54, 56, 96 + 96, 96, 96, 96, 96, 3, 77, 79, 101, 52, + 56, 52, 89, 55, 3, 37, 124, 125, 96, 101, + 92, 97, 59, 56, 56, 101, 92, 90, 56, 89, + 60, 52, 23, 97, 52, 56, 96, 123, 3, 37, + 101, 90, 52, 54, 56, 96 }; #define yyerrok (yyerrstatus = 0) @@ -2102,7 +2068,9 @@ yyreduce: #line 253 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); - if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) + if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_REFER ) + hb_macroExprGenPush( hb_compExprNewRef( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ), HB_COMP_PARAM ); + else if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) hb_macroExprGenPush( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); else hb_macroExprGenPop( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); @@ -2111,7 +2079,7 @@ yyreduce: break; case 3: -#line 261 "macro.y" +#line 263 "macro.y" { HB_MACRO_DATA->exprType = hb_compExprType( (yyvsp[(1) - (1)].asExpr) ); if( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PUSH ) @@ -2123,7 +2091,7 @@ yyreduce: break; case 4: -#line 269 "macro.y" +#line 271 "macro.y" { HB_TRACE(HB_TR_DEBUG, ("macro -> invalid syntax: %s", HB_MACRO_DATA->string)); hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2132,104 +2100,104 @@ yyreduce: break; case 5: -#line 278 "macro.y" +#line 280 "macro.y" { (yyval.asExpr) = hb_compExprNewDouble( (yyvsp[(1) - (1)].valDouble).dNumber, (yyvsp[(1) - (1)].valDouble).bWidth, (yyvsp[(1) - (1)].valDouble).bDec, HB_COMP_PARAM ); ;} break; case 6: -#line 279 "macro.y" +#line 281 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 7: -#line 282 "macro.y" +#line 284 "macro.y" { (yyval.asExpr) = hb_compExprNewDate( (yyvsp[(1) - (1)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 8: -#line 285 "macro.y" +#line 287 "macro.y" { (yyval.asExpr) = hb_compExprNewTimeStamp( (yyvsp[(1) - (1)].valTimeStamp).date, (yyvsp[(1) - (1)].valTimeStamp).time, HB_COMP_PARAM ); ;} break; case 9: -#line 288 "macro.y" +#line 290 "macro.y" { (yyval.asExpr) = hb_compExprNewLong( (yyvsp[(1) - (2)].valLong).lNumber, HB_COMP_PARAM ); ;} break; case 10: -#line 293 "macro.y" +#line 295 "macro.y" { (yyval.asExpr) = hb_compExprNewNil( HB_COMP_PARAM ); ;} break; case 11: -#line 298 "macro.y" +#line 300 "macro.y" { (yyval.asExpr) = hb_compExprNewString( (yyvsp[(1) - (1)].valChar).string, (yyvsp[(1) - (1)].valChar).length, FALSE, HB_COMP_PARAM ); ;} break; case 12: -#line 303 "macro.y" +#line 305 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( TRUE, HB_COMP_PARAM ); ;} break; case 13: -#line 304 "macro.y" +#line 306 "macro.y" { (yyval.asExpr) = hb_compExprNewLogical( FALSE, HB_COMP_PARAM ); ;} break; case 14: -#line 309 "macro.y" +#line 311 "macro.y" { (yyval.asExpr) = hb_compExprNewSelf( HB_COMP_PARAM ); ;} break; case 15: -#line 314 "macro.y" +#line 316 "macro.y" { (yyval.asExpr) = hb_compExprNewArray( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 16: -#line 319 "macro.y" +#line 321 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 17: -#line 324 "macro.y" +#line 326 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( NULL, HB_COMP_PARAM ); ;} break; case 18: -#line 325 "macro.y" +#line 327 "macro.y" { (yyval.asExpr) = hb_compExprNewHash( (yyvsp[(2) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 19: -#line 328 "macro.y" +#line 330 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 20: -#line 329 "macro.y" +#line 331 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( hb_compExprAddListExpr( (yyvsp[(1) - (5)].asExpr), (yyvsp[(3) - (5)].asExpr) ), (yyvsp[(5) - (5)].asExpr) ); ;} break; case 21: -#line 335 "macro.y" +#line 337 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 22: -#line 338 "macro.y" +#line 340 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( (yyvsp[(1) - (2)].string), HB_COMP_PARAM ); ;} break; case 23: -#line 343 "macro.y" +#line 345 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( NULL, '&', (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 24: -#line 346 "macro.y" +#line 348 "macro.y" { BOOL fNewString; char * szVarName = hb_macroTextSymbol( (yyvsp[(1) - (1)].string), strlen( (yyvsp[(1) - (1)].string) ), &fNewString ); if( szVarName ) @@ -2250,226 +2218,226 @@ yyreduce: break; case 25: -#line 365 "macro.y" +#line 367 "macro.y" { hb_compExprMacroAsAlias( (yyvsp[(1) - (2)].asExpr) ); ;} break; case 26: -#line 370 "macro.y" +#line 372 "macro.y" { (yyval.asExpr) = hb_compExprNewMacro( (yyvsp[(2) - (2)].asExpr), 0, NULL, HB_COMP_PARAM ); ;} break; case 28: -#line 380 "macro.y" +#line 382 "macro.y" { (yyval.asExpr) = hb_compExprNewAlias( "FIELD", HB_COMP_PARAM ); ;} break; case 29: -#line 381 "macro.y" +#line 383 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (3)].asExpr); ;} break; case 30: -#line 386 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 31: -#line 387 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 32: #line 388 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 33: + case 31: #line 389 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 34: + case 32: #line 390 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 33: +#line 391 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 34: +#line 392 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 35: -#line 393 "macro.y" +#line 395 "macro.y" { (yyval.asExpr) = hb_compExprNewVar( (yyvsp[(1) - (1)].string), HB_COMP_PARAM ); ;} break; case 37: -#line 397 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 38: -#line 398 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 39: #line 399 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 40: + case 38: #line 400 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 41: + case 39: #line 401 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 42: + case 40: #line 402 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 43: + case 41: #line 403 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; + case 42: +#line 404 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 43: +#line 405 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasVar( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + case 44: -#line 412 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 45: -#line 413 "macro.y" - { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 46: #line 414 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 47: + case 45: #line 415 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 48: + case 46: #line 416 "macro.y" { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; + case 47: +#line 417 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 48: +#line 418 "macro.y" + { (yyval.asExpr) = hb_compExprNewAliasExpr( (yyvsp[(1) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + case 49: -#line 421 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 50: -#line 422 "macro.y" - { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} - break; - - case 51: #line 423 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 52: + case 50: #line 424 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 53: + case 51: #line 425 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 54: + case 52: #line 426 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 55: + case 53: #line 427 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 56: + case 54: #line 428 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 57: + case 55: #line 429 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 58: + case 56: #line 430 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 59: + case 57: #line 431 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 60: + case 58: #line 432 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 61: + case 59: #line 433 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 62: + case 60: #line 434 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 63: + case 61: #line 435 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 64: + case 62: #line 436 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 65: + case 63: #line 437 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 66: + case 64: #line 438 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; - case 67: + case 65: #line 439 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; + case 66: +#line 440 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + + case 67: +#line 441 "macro.y" + { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} + break; + case 68: -#line 444 "macro.y" +#line 446 "macro.y" { (yyval.asExpr) = hb_macroExprNewFunCall( hb_compExprNewFunName( (yyvsp[(1) - (4)].string), HB_COMP_PARAM ), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 69: -#line 447 "macro.y" +#line 449 "macro.y" { (yyval.asExpr) = hb_macroExprNewFunCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr), HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 70: -#line 452 "macro.y" +#line 454 "macro.y" { if( hb_compExprParamListLen( (yyvsp[(4) - (5)].asExpr) ) != 0 ) { hb_macroError( EG_SYNTAX, HB_COMP_PARAM ); @@ -2481,97 +2449,97 @@ yyreduce: break; case 71: -#line 462 "macro.y" +#line 464 "macro.y" { (yyval.asExpr) = hb_compExprNewArgList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 72: -#line 463 "macro.y" +#line 465 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 75: -#line 470 "macro.y" +#line 472 "macro.y" { (yyval.asExpr) = hb_compExprNewVarRef( (yyvsp[(2) - (2)].string), HB_COMP_PARAM ); ;} break; case 76: -#line 471 "macro.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 77: -#line 472 "macro.y" - { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 78: #line 473 "macro.y" { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 79: + case 77: #line 474 "macro.y" + { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 78: +#line 475 "macro.y" + { (yyval.asExpr) = hb_compExprNewRef( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} + break; + + case 79: +#line 476 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); (yyval.asExpr)->value.asList.reference = TRUE; ;} break; case 80: -#line 477 "macro.y" +#line 479 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 82: -#line 483 "macro.y" +#line 485 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].string), NULL, HB_COMP_PARAM ); ;} break; case 83: -#line 484 "macro.y" +#line 486 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 84: -#line 485 "macro.y" +#line 487 "macro.y" { (yyval.asExpr) = hb_macroExprNewSend( (yyvsp[(1) - (3)].asExpr), NULL, (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; case 85: -#line 490 "macro.y" +#line 492 "macro.y" { (yyval.asExpr) = hb_compExprNewMethodCall( (yyvsp[(1) - (4)].asExpr), (yyvsp[(3) - (4)].asExpr) ); ;} break; case 108: -#line 516 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} - break; - - case 109: -#line 517 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} - break; - - case 110: #line 518 "macro.y" { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} break; + case 109: +#line 519 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + break; + + case 110: +#line 520 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + break; + case 116: -#line 526 "macro.y" +#line 528 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 117: -#line 527 "macro.y" +#line 529 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; case 118: -#line 530 "macro.y" +#line 532 "macro.y" { (yyval.asExpr) = hb_compExprNewArgRef( HB_COMP_PARAM ); ;} break; case 120: -#line 534 "macro.y" +#line 536 "macro.y" { if( !(HB_MACRO_DATA->Flags & HB_MACRO_GEN_LIST) ) { @@ -2583,7 +2551,7 @@ yyreduce: break; case 121: -#line 542 "macro.y" +#line 544 "macro.y" { HB_MACRO_DATA->uiListElements = 1; (yyval.asExpr) = hb_compExprAddListExpr( ( HB_MACRO_DATA->Flags & HB_MACRO_GEN_PARE ) ? hb_compExprNewList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ) : hb_compExprNewArgList( (yyvsp[(1) - (4)].asExpr), HB_COMP_PARAM ), (yyvsp[(4) - (4)].asExpr) ); @@ -2591,374 +2559,274 @@ yyreduce: break; case 123: -#line 549 "macro.y" +#line 551 "macro.y" { HB_MACRO_DATA->uiListElements++; (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; case 124: -#line 553 "macro.y" +#line 555 "macro.y" { (yyval.asExpr) = hb_compExprNewEmpty( HB_COMP_PARAM ); ;} break; + case 146: +#line 579 "macro.y" + { HB_MACRO_IFENABLED( (yyval.asExpr), (yyvsp[(1) - (1)].asExpr), HB_SM_HARBOUR ); ;} + break; + case 148: -#line 584 "macro.y" +#line 586 "macro.y" { (yyval.asExpr) = hb_compExprNewPostInc( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 149: -#line 585 "macro.y" +#line 587 "macro.y" { (yyval.asExpr) = hb_compExprNewPostDec( (yyvsp[(0) - (1)].asExpr), HB_COMP_PARAM ); ;} break; case 150: -#line 591 "macro.y" +#line 593 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 151: -#line 594 "macro.y" +#line 596 "macro.y" { (yyval.asExpr) = hb_compExprNewPreInc( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 152: -#line 595 "macro.y" +#line 597 "macro.y" { (yyval.asExpr) = hb_compExprNewPreDec( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 153: -#line 598 "macro.y" +#line 600 "macro.y" { (yyval.asExpr) = hb_compExprNewNot( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 154: -#line 599 "macro.y" +#line 601 "macro.y" { (yyval.asExpr) = hb_compExprNewNegate( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; case 155: -#line 600 "macro.y" +#line 602 "macro.y" { (yyval.asExpr) = (yyvsp[(2) - (2)].asExpr); ;} break; case 156: -#line 603 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 157: -#line 604 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 158: #line 605 "macro.y" { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 159: -#line 606 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 160: -#line 607 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 161: + case 157: #line 608 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 162: -#line 609 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 163: -#line 610 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 164: -#line 611 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 165: -#line 612 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 166: -#line 613 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 167: -#line 614 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 168: -#line 615 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 169: -#line 616 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 170: -#line 617 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 171: -#line 618 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 172: -#line 619 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 173: -#line 620 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 174: -#line 621 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 175: -#line 622 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 176: -#line 623 "macro.y" - { HB_MACRO_IFENABLED( (yyval.asExpr), hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ), HB_SM_HARBOUR ); ;} - break; - - case 177: -#line 624 "macro.y" - { (yyval.asExpr) = hb_compExprAssign( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} - break; - - case 178: -#line 627 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 179: -#line 630 "macro.y" + case 158: +#line 611 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinusEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 180: -#line 633 "macro.y" + case 159: +#line 614 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMultEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 181: -#line 636 "macro.y" + case 160: +#line 617 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDivEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 182: -#line 639 "macro.y" + case 161: +#line 620 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewModEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 183: -#line 642 "macro.y" + case 162: +#line 623 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewExpEq( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 190: -#line 653 "macro.y" + case 169: +#line 634 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPlus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 191: -#line 654 "macro.y" + case 170: +#line 635 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMinus( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 192: -#line 655 "macro.y" + case 171: +#line 636 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMult( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 193: -#line 656 "macro.y" + case 172: +#line 637 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewDiv( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 194: -#line 657 "macro.y" + case 173: +#line 638 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewMod( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 195: -#line 658 "macro.y" + case 174: +#line 639 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewPower( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 196: -#line 661 "macro.y" + case 175: +#line 642 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewAnd( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 197: -#line 662 "macro.y" + case 176: +#line 643 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewOr( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 198: -#line 665 "macro.y" + case 177: +#line 646 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEQ( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 199: -#line 666 "macro.y" + case 178: +#line 647 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 200: -#line 667 "macro.y" + case 179: +#line 648 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGT( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 201: -#line 668 "macro.y" + case 180: +#line 649 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewLE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 202: -#line 669 "macro.y" + case 181: +#line 650 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewGE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 203: -#line 670 "macro.y" + case 182: +#line 651 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 204: -#line 671 "macro.y" + case 183: +#line 652 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewNE( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 205: -#line 672 "macro.y" + case 184: +#line 653 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewIN( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 206: -#line 673 "macro.y" + case 185: +#line 654 "macro.y" { (yyval.asExpr) = hb_compExprSetOperand( hb_compExprNewEqual( (yyvsp[(1) - (3)].asExpr), HB_COMP_PARAM ), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 208: -#line 682 "macro.y" + case 187: +#line 663 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(0) - (2)].asExpr), (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 209: -#line 683 "macro.y" + case 188: +#line 664 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr), HB_COMP_PARAM ); ;} break; - case 210: -#line 684 "macro.y" + case 189: +#line 665 "macro.y" { (yyval.asExpr) = hb_macroExprNewArrayAt( (yyvsp[(1) - (4)].asExpr), (yyvsp[(4) - (4)].asExpr), HB_COMP_PARAM ); ;} break; - case 211: -#line 687 "macro.y" + case 190: +#line 668 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(1) - (1)].asExpr), HB_COMP_PARAM ); ;} break; - case 212: -#line 688 "macro.y" + case 191: +#line 669 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 213: -#line 692 "macro.y" + case 192: +#line 673 "macro.y" { (yyval.asExpr) = hb_compExprNewCodeBlock( NULL, 0, 0, HB_COMP_PARAM ); ;} break; - case 214: -#line 694 "macro.y" + case 193: +#line 675 "macro.y" { (yyval.asExpr) = (yyvsp[(3) - (7)].asExpr); ;} break; - case 215: -#line 699 "macro.y" + case 194: +#line 680 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (1)].asExpr), (yyvsp[(1) - (1)].asExpr) ); ;} break; - case 216: -#line 700 "macro.y" + case 195: +#line 681 "macro.y" { (yyval.asExpr) = hb_compExprAddCodeblockExpr( (yyvsp[(-2) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 217: -#line 705 "macro.y" + case 196: +#line 686 "macro.y" { (yyval.asExpr) = NULL; ;} break; - case 218: -#line 706 "macro.y" + case 197: +#line 687 "macro.y" { (yyval.asExpr) = NULL; (yyvsp[(0) - (1)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 219: -#line 707 "macro.y" + case 198: +#line 688 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (1)].asExpr); ;} break; - case 220: -#line 708 "macro.y" + case 199: +#line 689 "macro.y" { (yyval.asExpr) = (yyvsp[(1) - (3)].asExpr); (yyvsp[(0) - (3)].asExpr)->value.asCodeblock.flags |= HB_BLOCK_VPARAMS; ;} break; - case 221: -#line 711 "macro.y" + case 200: +#line 692 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (1)].asExpr), (yyvsp[(1) - (1)].string), ' ', HB_COMP_PARAM ); ;} break; - case 222: -#line 712 "macro.y" + case 201: +#line 693 "macro.y" { (yyval.asExpr) = hb_compExprCBVarAdd( (yyvsp[(0) - (3)].asExpr), (yyvsp[(3) - (3)].string), ' ', HB_COMP_PARAM ); HB_MACRO_CHECK( (yyval.asExpr) ); ;} break; - case 223: -#line 715 "macro.y" + case 202: +#line 696 "macro.y" { (yyval.asExpr) = hb_compExprNewList( (yyvsp[(2) - (2)].asExpr), HB_COMP_PARAM ); ;} break; - case 224: -#line 716 "macro.y" + case 203: +#line 697 "macro.y" { (yyval.asExpr) = hb_compExprAddListExpr( (yyvsp[(1) - (3)].asExpr), (yyvsp[(3) - (3)].asExpr) ); ;} break; - case 227: -#line 727 "macro.y" + case 206: +#line 708 "macro.y" { (yyval.asExpr) = hb_compExprNewIIF( hb_compExprAddListExpr( hb_compExprAddListExpr( hb_compExprNewList( (yyvsp[(3) - (8)].asExpr), HB_COMP_PARAM ), (yyvsp[(5) - (8)].asExpr) ), (yyvsp[(7) - (8)].asExpr) ) ); ;} break; /* Line 1268 of yacc.c. */ -#line 2962 "macroy.c" +#line 2830 "macroy.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3177,7 +3045,7 @@ yyreturn: } -#line 730 "macro.y" +#line 711 "macro.y" diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index f5af1e9954..fcccf81665 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -2498,20 +2498,7 @@ void hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols ) case HB_P_MACROPUSHREF: { PHB_ITEM pMacro = hb_stackItemFromTop( -1 ); - PHB_SYMB pSym; - /* compile into a symbol name (used in function calls) */ - hb_macroPushSymbol( pMacro ); - /* NOTE: pMacro string is replaced with a symbol. - * Symbol is created if it doesn't exist. - */ - if( hb_stackGetActionRequest() == 0 ) - { - pSym = pMacro->item.asSymbol.value; - /* NOTE: pMacro item of symbol type is replaced with - * the reference - */ - hb_memvarGetRefer( pMacro, pSym ); - } + hb_macroPushReference( pMacro ); pCode++; } break; @@ -10924,9 +10911,7 @@ BOOL hb_xvmMacroPushRef( void ) HB_TRACE(HB_TR_DEBUG, ("hb_xvmMacroPushRef()")); pMacro = hb_stackItemFromTop( -1 ); - hb_macroPushSymbol( pMacro ); - if( hb_stackGetActionRequest() == 0 ) - hb_memvarGetRefer( pMacro, pMacro->item.asSymbol.value ); + hb_macroPushReference( pMacro ); HB_XVM_RETURN } diff --git a/harbour/source/vm/macro.c b/harbour/source/vm/macro.c index 47d873403b..91bf7969ad 100644 --- a/harbour/source/vm/macro.c +++ b/harbour/source/vm/macro.c @@ -535,6 +535,44 @@ void hb_macroSetValue( HB_ITEM_PTR pItem, BYTE flags ) } } +/* NOTE: + * This will be called when macro variable or macro expression is + * passed by reference or used in optimized left side of the = + * expression or as argument of ++ or -- operation + */ +void hb_macroPushReference( HB_ITEM_PTR pItem ) +{ + HB_STACK_TLS_PRELOAD + + HB_TRACE(HB_TR_DEBUG, ("hb_macroPushReference(%p)", pItem)); + + if( hb_macroCheckParam( pItem ) ) + { + HB_MACRO struMacro; + int iStatus; + + struMacro.mode = HB_MODE_MACRO; + struMacro.supported = HB_SM_SHORTCUTS | HB_SM_HARBOUR | HB_SM_ARRSTR; + struMacro.Flags = HB_MACRO_GEN_PUSH | HB_MACRO_GEN_REFER; + struMacro.uiNameLen = HB_SYMBOL_NAME_LEN; + struMacro.status = HB_MACRO_CONT; + struMacro.string = pItem->item.asString.value; + struMacro.length = pItem->item.asString.length; + + iStatus = hb_macroParse( &struMacro ); + + if( iStatus == HB_MACRO_OK && ( struMacro.status & HB_MACRO_CONT ) ) + { + hb_stackPop(); /* remove compiled string */ + hb_macroRun( &struMacro ); + } + else + hb_macroSyntaxError( &struMacro ); + + hb_macroDelete( &struMacro ); + } +} + /* * Compile and run: * &alias->var or diff --git a/harbour/utils/hbtest/Makefile b/harbour/utils/hbtest/Makefile index 2324de2a9a..2e052a7d1e 100644 --- a/harbour/utils/hbtest/Makefile +++ b/harbour/utils/hbtest/Makefile @@ -41,3 +41,5 @@ LIBS=\ hbcommon \ include $(TOP)$(ROOT)config/bin.cf + +HB_USER_PRGFLAGS += -l-