summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmanuele Torre <torreemanuele6@gmail.com>2023-07-10 18:45:32 +0200
committerNico Williams <nico@cryptonector.com>2023-07-10 12:04:54 -0500
commit6ca7973d4913b0ca7e692ac3ebbcf8e366b41860 (patch)
treebad82a17cacbdd2f7e0f90ce55d4ef0a082dad64
parent841445eea7ce016e2d07cd466836dba631081a23 (diff)
Allow using { $__loc__ } as shorthand for { __loc__: $__loc__ }
n.b.: { $__loc__: "foo" } is still not allowed. $__loc__ cannot be overwritten, and it is always an object. Using { $x: "foo" } where $x is not a string is an error, so there is not much of a point in supporting that.
-rw-r--r--src/parser.c1734
-rw-r--r--src/parser.y12
-rw-r--r--tests/jq.test6
3 files changed, 891 insertions, 861 deletions
diff --git a/src/parser.c b/src/parser.c
index dba7023d..45e03b06 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -568,8 +568,13 @@ static block gen_update(block object, block val, int optype) {
optype)))));
}
+static block gen_loc_object(location *loc, struct locfile *locations) {
+ return gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
+ jv_string("line"), jv_number(locfile_get_line(locations, loc->start) + 1)));
+}
+
-#line 573 "src/parser.c"
+#line 578 "src/parser.c"
#ifdef short
@@ -896,16 +901,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 29
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2034
+#define YYLAST 2039
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 70
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 30
/* YYNRULES -- Number of rules. */
-#define YYNRULES 169
+#define YYNRULES 170
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 317
+#define YYNSTATES 318
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 303
@@ -959,23 +964,24 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 307, 307, 310, 315, 318, 333, 336, 341, 344,
- 349, 353, 356, 360, 364, 368, 371, 376, 380, 384,
- 389, 396, 400, 404, 408, 412, 416, 420, 424, 428,
- 432, 436, 440, 444, 448, 452, 456, 460, 466, 472,
- 476, 480, 484, 488, 492, 496, 500, 504, 509, 512,
- 529, 538, 545, 553, 564, 569, 575, 578, 583, 587,
- 594, 594, 598, 598, 605, 608, 611, 617, 620, 623,
- 628, 631, 634, 640, 643, 646, 654, 658, 661, 664,
- 667, 670, 673, 676, 679, 682, 686, 692, 695, 698,
- 701, 704, 707, 710, 713, 716, 719, 722, 725, 728,
- 731, 734, 737, 740, 743, 746, 749, 752, 774, 778,
- 782, 786, 798, 803, 804, 805, 806, 809, 812, 817,
- 822, 825, 830, 833, 838, 842, 845, 850, 853, 858,
- 861, 866, 869, 872, 875, 878, 881, 889, 895, 898,
- 901, 904, 907, 910, 913, 916, 919, 922, 925, 928,
- 931, 934, 937, 940, 943, 946, 951, 954, 955, 956,
- 959, 962, 965, 968, 972, 976, 980, 984, 988, 996
+ 0, 312, 312, 315, 320, 323, 338, 341, 346, 349,
+ 354, 358, 361, 365, 369, 373, 376, 381, 385, 389,
+ 394, 401, 405, 409, 413, 417, 421, 425, 429, 433,
+ 437, 441, 445, 449, 453, 457, 461, 465, 471, 477,
+ 481, 485, 489, 493, 497, 501, 505, 509, 514, 517,
+ 534, 543, 550, 558, 569, 574, 580, 583, 588, 592,
+ 599, 599, 603, 603, 610, 613, 616, 622, 625, 628,
+ 633, 636, 639, 645, 648, 651, 659, 663, 666, 669,
+ 672, 675, 678, 681, 684, 687, 691, 697, 700, 703,
+ 706, 709, 712, 715, 718, 721, 724, 727, 730, 733,
+ 736, 739, 742, 745, 748, 751, 754, 757, 779, 783,
+ 787, 790, 802, 807, 808, 809, 810, 813, 816, 821,
+ 826, 829, 834, 837, 842, 846, 849, 854, 857, 862,
+ 865, 870, 873, 876, 879, 882, 885, 893, 899, 902,
+ 905, 908, 911, 914, 917, 920, 923, 926, 929, 932,
+ 935, 938, 941, 944, 947, 950, 955, 958, 959, 960,
+ 963, 966, 969, 972, 976, 980, 984, 988, 992, 996,
+ 1004
};
#endif
@@ -1016,7 +1022,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-161)
+#define YYPACT_NINF (-159)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -1030,38 +1036,38 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -14, 863, 29, 34, 14, 20, -161, -161, 21, -161,
- 78, 863, 448, 448, 863, 103, 39, -161, -161, 863,
- 417, 284, 350, 581, 50, 1351, 863, -161, 2, -161,
- 7, 7, 863, 34, 665, 863, -161, -161, -22, 1707,
- 9, 51, 97, 82, -161, -161, -161, -2, 69, 1181,
- -161, 133, 21, 81, 77, -161, 992, -46, 83, 85,
- -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
- -161, -161, -161, -161, -161, -161, -161, -161, 863, 86,
- 87, 76, 96, 84, 863, 863, 863, 863, 863, 863,
- 863, 863, 863, 863, 863, 863, 863, 863, 863, 863,
- 863, 863, 863, 863, 863, 863, 863, 863, -161, -161,
- 1875, 92, -5, -4, 165, 140, -161, -161, -161, 1875,
- 863, -161, -161, 1402, 1875, 10, -161, -161, 74, 863,
- 468, -5, -5, 519, 863, 4, -161, -161, -161, -161,
- -161, -161, 637, 206, -161, 206, 206, 1215, 206, 206,
- -161, 637, 149, 1943, 580, 580, 1909, 779, 1975, 1943,
- 1943, 1943, 1943, 1943, 1943, 580, 580, 1875, 1909, 1943,
- 580, 580, -2, -2, 98, 98, 98, -161, -161, -5,
- 925, 117, 111, 119, 731, 102, 99, 863, 104, 958,
- 121, -161, -161, 863, -161, 25, -161, -161, 75, -161,
- 1453, -161, 1657, 101, 106, -161, -161, 1875, -161, 863,
- -161, -19, -161, 206, 116, 59, 116, 116, 105, 116,
- 116, -161, -161, -161, -24, 112, 113, 114, 863, 115,
- -25, -161, 118, -5, 863, 120, 1026, -161, -161, 1060,
- -161, 797, 123, -161, -161, -161, -161, 74, 124, -161,
- 863, 863, -161, -161, 863, 863, 1741, -161, 206, 206,
- -5, -161, -5, -5, -5, 1249, -5, 925, -161, -5,
- 150, 1875, -161, 131, 135, 139, 1094, -161, -161, 863,
- 1791, 1841, 1504, 1555, -161, 116, 116, -161, -161, -161,
- -161, 136, -161, -161, -161, -161, -161, -161, 141, 1606,
- -161, 863, 863, 863, -5, -161, -161, 1657, 1283, 1128,
- -161, -161, -161, 863, -161, 1317, -161
+ -13, 868, 7, 41, -44, -30, -159, -159, -2, -159,
+ 65, 868, 449, 449, 868, 66, 36, -159, -159, 868,
+ 418, 285, 351, 582, 4, 1356, 868, -159, 10, -159,
+ -4, -4, 868, 41, 670, 868, -159, -159, -18, 1712,
+ 47, 51, 54, 32, -159, -159, -159, -6, 46, 1186,
+ -159, 112, -2, 58, 52, -159, 997, -24, 64, 68,
+ -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+ -159, -159, -159, -159, -159, -159, -159, -159, -159, 868,
+ 69, 72, 60, 92, 75, 868, 868, 868, 868, 868,
+ 868, 868, 868, 868, 868, 868, 868, 868, 868, 868,
+ 868, 868, 868, 868, 868, 868, 868, 868, 868, -159,
+ -159, 1880, 86, -5, 6, 166, 132, -159, -159, -159,
+ 1880, 868, -159, -159, 1407, 1880, 63, -159, -159, 73,
+ 868, 469, -5, -5, 520, 868, 11, -159, -159, -159,
+ -159, -159, -159, 638, 207, -159, 207, 207, 1220, 207,
+ 207, -159, 638, 146, 1948, 581, 581, 1914, 784, 1980,
+ 1948, 1948, 1948, 1948, 1948, 1948, 581, 581, 1880, 1914,
+ 1948, 581, 581, -6, -6, 95, 95, 95, -159, -159,
+ -5, 930, 114, 110, 118, 736, 101, 96, 868, 102,
+ 963, 120, -159, -159, 868, -159, 24, -159, -159, 76,
+ -159, 1458, -159, 1662, 103, 104, -159, -159, 1880, -159,
+ 868, -159, -47, -159, 207, 115, 17, 115, 115, 105,
+ 115, 115, -159, -159, -159, -19, 106, 113, 116, 868,
+ 117, -22, -159, 119, -5, 868, 107, 1031, -159, -159,
+ 1065, -159, 802, 124, -159, -159, -159, -159, 73, 125,
+ -159, 868, 868, -159, -159, 868, 868, 1746, -159, 207,
+ 207, -5, -159, -5, -5, -5, 1254, -5, 930, -159,
+ -5, 136, 1880, -159, 133, 140, 141, 1099, -159, -159,
+ 868, 1796, 1846, 1509, 1560, -159, 115, 115, -159, -159,
+ -159, -159, 138, -159, -159, -159, -159, -159, -159, 143,
+ 1611, -159, 868, 868, 868, -5, -159, -159, 1662, 1288,
+ 1133, -159, -159, -159, 868, -159, 1322, -159
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1076,47 +1082,47 @@ static const yytype_uint8 yydefact[] =
0, 0, 18, 0, 76, 75, 64, 32, 0, 0,
85, 0, 0, 84, 0, 106, 0, 0, 166, 165,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 0, 163,
- 167, 0, 157, 0, 0, 0, 0, 0, 0, 0,
+ 148, 149, 150, 151, 152, 153, 154, 155, 167, 0,
+ 163, 168, 0, 157, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 5,
- 10, 81, 0, 0, 0, 0, 53, 52, 3, 2,
- 8, 7, 48, 0, 119, 0, 117, 64, 0, 0,
- 0, 0, 0, 0, 0, 0, 113, 104, 86, 80,
- 114, 105, 0, 0, 116, 0, 0, 0, 0, 0,
- 107, 0, 0, 40, 41, 42, 25, 24, 23, 27,
- 31, 34, 36, 39, 26, 45, 46, 28, 29, 22,
- 43, 44, 30, 33, 35, 37, 38, 77, 124, 0,
- 0, 0, 0, 123, 0, 83, 0, 0, 92, 0,
- 0, 9, 49, 0, 112, 0, 59, 58, 0, 56,
- 0, 16, 0, 0, 0, 19, 17, 20, 65, 0,
- 61, 0, 159, 0, 169, 72, 160, 164, 0, 162,
- 161, 158, 108, 127, 0, 0, 0, 131, 0, 0,
- 0, 129, 0, 0, 0, 94, 0, 79, 115, 0,
- 91, 0, 88, 51, 50, 118, 63, 0, 0, 54,
- 0, 0, 69, 15, 0, 0, 0, 71, 0, 0,
- 0, 125, 0, 0, 0, 0, 0, 0, 126, 0,
- 122, 11, 93, 90, 100, 99, 0, 87, 57, 0,
- 0, 0, 0, 0, 66, 70, 168, 128, 137, 133,
- 132, 0, 135, 130, 134, 89, 97, 96, 98, 0,
- 68, 0, 0, 0, 0, 95, 55, 0, 0, 0,
- 136, 67, 12, 0, 14, 0, 13
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
+ 5, 10, 81, 0, 0, 0, 0, 53, 52, 3,
+ 2, 8, 7, 48, 0, 119, 0, 117, 64, 0,
+ 0, 0, 0, 0, 0, 0, 0, 113, 104, 86,
+ 80, 114, 105, 0, 0, 116, 0, 0, 0, 0,
+ 0, 107, 0, 0, 40, 41, 42, 25, 24, 23,
+ 27, 31, 34, 36, 39, 26, 45, 46, 28, 29,
+ 22, 43, 44, 30, 33, 35, 37, 38, 77, 124,
+ 0, 0, 0, 0, 123, 0, 83, 0, 0, 92,
+ 0, 0, 9, 49, 0, 112, 0, 59, 58, 0,
+ 56, 0, 16, 0, 0, 0, 19, 17, 20, 65,
+ 0, 61, 0, 159, 0, 170, 72, 160, 164, 0,
+ 162, 161, 158, 108, 127, 0, 0, 0, 131, 0,
+ 0, 0, 129, 0, 0, 0, 94, 0, 79, 115,
+ 0, 91, 0, 88, 51, 50, 118, 63, 0, 0,
+ 54, 0, 0, 69, 15, 0, 0, 0, 71, 0,
+ 0, 0, 125, 0, 0, 0, 0, 0, 0, 126,
+ 0, 122, 11, 93, 90, 100, 99, 0, 87, 57,
+ 0, 0, 0, 0, 0, 66, 70, 169, 128, 137,
+ 133, 132, 0, 135, 130, 134, 89, 97, 96, 98,
+ 0, 68, 0, 0, 0, 0, 95, 55, 0, 0,
+ 0, 136, 67, 12, 0, 14, 0, 13
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -161, -161, -161, 168, 89, -1, -161, -161, 171, 0,
- -161, -44, 5, -161, -161, 90, -103, -137, -7, -161,
- 12, -161, -73, -152, -161, -161, -51, -160, -105, -161
+ -159, -159, -159, 145, 74, -1, -159, -159, 172, -12,
+ -159, -43, 5, -159, -159, 78, -104, -138, -7, -159,
+ 16, -159, -69, -114, -159, -159, -51, -158, -111, -159
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 2, 3, 32, 118, 110, 33, 34, 115, 26,
- 198, 199, 27, 46, 127, 135, 253, 214, 28, 125,
- 126, 181, 182, 183, 224, 230, 231, 80, 81, 82
+ 0, 2, 3, 32, 119, 111, 33, 34, 116, 26,
+ 199, 200, 27, 46, 128, 136, 254, 215, 28, 126,
+ 127, 182, 183, 184, 225, 231, 232, 81, 82, 83
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1124,418 +1130,418 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 25, 178, 1, 142, 52, 40, 41, 111, 216, 217,
- 39, 219, 220, 42, 111, 52, 112, 143, 47, 49,
- 232, 56, 144, 131, 267, 260, 53, 223, 79, 29,
- 142, 119, 120, 123, 124, 116, 116, 212, 18, 128,
- 44, 129, 261, 268, 143, 45, 221, 208, 209, 18,
- 210, 30, 31, 105, 106, 107, 111, 108, 203, 204,
- 179, 184, 180, 37, 111, 132, 113, 114, 208, 209,
- 193, 246, 194, 113, 114, 35, 257, 147, 196, 36,
- 197, 270, 38, 153, 154, 155, 156, 157, 158, 159,
+ 25, 179, 143, 1, 52, 40, 41, 29, 217, 218,
+ 39, 220, 221, 42, 52, 112, 144, 35, 47, 49,
+ 121, 56, 112, 233, 113, 143, 53, 268, 80, 36,
+ 261, 120, 213, 124, 125, 117, 117, 44, 18, 144,
+ 37, 222, 45, 129, 145, 130, 269, 262, 18, 106,
+ 107, 108, 112, 109, 209, 210, 112, 211, 30, 31,
+ 180, 132, 181, 204, 205, 133, 224, 209, 210, 38,
+ 247, 185, 43, 84, 114, 115, 258, 197, 148, 198,
+ 135, 114, 115, 134, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 232, 287, 43,
- 288, 289, 290, 189, 292, 113, 114, 294, 185, 83,
- 120, 285, 286, 113, 114, 243, 133, 244, 200, 202,
- 134, 136, 206, 207, 138, 247, 215, 248, 215, 215,
- 139, 215, 215, 140, 150, 151, 145, 79, 146, 148,
- 149, 177, 310, 152, 190, 222, 79, 108, 233, 234,
- -121, 237, 254, 240, 258, 238, 186, 255, 259, 4,
- 5, 6, 7, 8, 9, 262, 263, 264, 266, 272,
- 10, 269, 277, 236, 11, 229, 239, 279, 12, 13,
- 295, -120, 124, 14, 296, 15, 16, 17, 297, 304,
- 305, 121, 117, 278, 311, 245, 215, 18, 256, 191,
- 4, 5, 6, 7, 8, 9, 293, 195, 0, 19,
- 0, 0, 0, 0, 0, 0, 20, 265, 187, 21,
- 22, 188, 23, 271, 24, 0, 0, 16, 17, 0,
- 276, 0, 0, 0, 0, 0, 0, 0, 18, 280,
- 281, 215, 215, 282, 283, 0, 0, 0, 0, 0,
- 213, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 21, 22, 229, 23, 0, 24, 0, 0, 299, 0,
- 0, 0, 0, 0, -73, 50, 0, 0, 51, -73,
- 0, 0, 52, 0, -73, -73, -73, -73, -73, 0,
- 307, 308, 309, 0, -73, -73, -73, 0, 0, -73,
- -73, -73, 315, -73, 0, 0, 0, -73, -73, -73,
- -73, -73, -73, -73, -73, 0, 18, 0, 0, -73,
- 0, 0, -73, -73, -73, -73, -73, -73, -73, -73,
- -73, -73, 0, -73, -73, 0, -73, -73, -73, -73,
- -73, 54, -73, 0, 4, 5, 6, 7, 8, 9,
- 0, 0, 0, 0, 0, 10, 0, 0, 0, 11,
- 0, 0, 0, 12, 13, 0, 0, 0, 14, 0,
- 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
- 0, 20, 0, 0, 21, 22, 55, 23, 48, 24,
- 0, 4, 5, 6, 7, 8, 9, 0, 0, 0,
- 0, 0, 10, 0, 0, 0, 11, 0, 0, 0,
- 12, 13, 0, 0, 0, 14, 0, 15, 16, 17,
- 0, 0, 4, 5, 6, 7, 8, 9, 0, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 201,
- 0, 19, 4, 5, 6, 7, 8, 9, 20, 16,
- 17, 21, 22, 10, 23, 0, 24, 11, 0, 0,
- 18, 12, 13, 0, 0, 0, 14, 0, 15, 16,
- 17, 0, 0, 0, 0, 0, 0, 0, 0, 20,
- 18, 0, 21, 22, 0, 23, 0, 24, 0, 0,
- 205, 0, 19, 4, 5, 6, 7, 8, 9, 20,
- 0, 0, 21, 22, 10, 23, 0, 24, 11, 0,
- 0, 0, 12, 13, 0, 0, 0, 14, 0, 15,
- 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
- 20, 0, 57, 21, 22, 58, 23, 59, 24, 52,
- 0, -157, -157, 0, 0, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 0, 0, 0, 0, 0, 0, -157,
- -157, 0, 0, 18, 0, 0, 0, 0, 0, 0,
- 0, -157, -157, 103, 104, 105, 106, 107, 211, 108,
- 0, 58, 78, 59, 0, 52, 0, 0, 0, -156,
- 0, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 4,
- 5, 6, 7, 8, 9, 0, 0, 0, 0, 18,
- 10, 0, 0, 0, 11, 0, 0, 0, 12, 13,
- 0, 0, 0, 14, 0, 15, 16, 17, 78, 0,
- 0, 0, 0, 0, 0, -156, 0, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 0, 122, 20, 0, 0, 21,
- 22, 0, 23, 0, 24, 4, 5, 6, 7, 8,
+ 170, 171, 172, 173, 174, 175, 176, 177, 137, 121,
+ 233, 114, 115, 139, 190, 114, 115, 140, 141, 186,
+ 271, 286, 287, 194, 244, 195, 245, 146, 151, 201,
+ 203, 147, 149, 207, 208, 150, 248, 216, 249, 216,
+ 216, 152, 216, 216, 153, 178, 191, 288, 80, 289,
+ 290, 291, 223, 293, 109, 234, 295, 80, 235, -121,
+ 238, 241, 239, 259, 255, 256, 273, 187, 260, 263,
+ 4, 5, 6, 7, 8, 9, 264, -120, 122, 265,
+ 267, 10, 270, 278, 237, 11, 230, 240, 280, 12,
+ 13, 311, 296, 125, 14, 192, 15, 16, 17, 297,
+ 298, 305, 306, 118, 312, 279, 196, 216, 18, 257,
+ 246, 4, 5, 6, 7, 8, 9, 294, 0, 0,
+ 19, 0, 0, 0, 0, 0, 0, 20, 266, 188,
+ 21, 22, 189, 23, 272, 24, 0, 0, 16, 17,
+ 0, 277, 0, 0, 0, 0, 0, 0, 0, 18,
+ 281, 282, 216, 216, 283, 284, 0, 0, 0, 0,
+ 0, 214, 0, 0, 0, 0, 0, 0, 20, 0,
+ 0, 21, 22, 230, 23, 0, 24, 0, 0, 300,
+ 0, 0, 0, 0, 0, -73, 50, 0, 0, 51,
+ -73, 0, 0, 52, 0, -73, -73, -73, -73, -73,
+ 0, 308, 309, 310, 0, -73, -73, -73, 0, 0,
+ -73, -73, -73, 316, -73, 0, 0, 0, -73, -73,
+ -73, -73, -73, -73, -73, -73, 0, 18, 0, 0,
+ -73, 0, 0, -73, -73, -73, -73, -73, -73, -73,
+ -73, -73, -73, 0, -73, -73, 0, -73, -73, -73,
+ -73, -73, 54, -73, 0, 4, 5, 6, 7, 8,
9, 0, 0, 0, 0, 0, 10, 0, 0, 0,
11, 0, 0, 0, 12, 13, 0, 0, 0, 14,
0, 15, 16, 17, 0, 0, 0, 0, 0, 0,
0, 0, 0, 18, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
- 85, 86, 20, 0, 0, 21, 22, 235, 23, 0,
- 24, 4, 5, 6, 7, 8, 9, 0, 0, 0,
- 0, 0, 10, 0, 0, 0, 11, 0, 96, 97,
- 12, 13, 0, 0, 0, 14, 0, 15, 16, 17,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 19, 0, 0, 0, 0, 0, 0, 20, 0,
- 0, 21, 22, 275, 23, 0, 24, 4, 5, 6,
- 7, 8, 9, 0, 0, 0, 0, 0, 10, 0,
- 0, 0, 11, 0, 0, 0, 12, 13, 0, 0,
- 0, 14, 0, 15, 16, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
- 0, 0, 0, 0, 20, 0, 225, 21, 22, 226,
- 23, 227, 24, 52, 0, 0, 0, 0, 0, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 84, 85,
- 86, 87, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88, 89, 228, 0, 0, 0,
- 0, 90, 91, 92, 93, 94, 95, 96, 97, 0,
- 0, 0, 84, 85, 86, 87, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 0, 108, 88, 89,
- 0, 241, 0, 0, 242, 90, 91, 92, 93, 94,
- 95, 96, 97, 0, 0, 0, 84, 85, 86, 87,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 0, 108, 88, 89, 0, 0, 0, 0, 141, 90,
- 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
- 84, 85, 86, 87, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 0, 108, 88, 89, 0, 0,
- 0, 0, 273, 90, 91, 92, 93, 94, 95, 96,
- 97, 0, 0, 0, 84, 85, 86, 87, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
- 88, 89, 0, 0, 0, 0, 274, 90, 91, 92,
- 93, 94, 95, 96, 97, 0, 0, 0, 84, 85,
- 86, 87, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 0, 108, 88, 89, 0, 0, 0, 0,
- 298, 90, 91, 92, 93, 94, 95, 96, 97, 0,
- 0, 0, 0, 0, 0, 0, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 0, 108, 313, 0,
- 314, 84, 85, 86, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 88, 89, 0,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 0, 84, 85, 86, 87, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 88, 89, 137, 0, 0, 0, 0, 90, 91,
- 92, 93, 94, 95, 96, 97, 0, 0, 0, 84,
- 85, 86, 87, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 88, 89, 218, 0, 0,
- 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
- 0, 0, 0, 84, 85, 86, 87, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 88,
- 89, 291, 0, 0, 0, 0, 90, 91, 92, 93,
- 94, 95, 96, 97, 0, 0, 0, 84, 85, 86,
- 87, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 108, 88, 89, 312, 0, 0, 0, 0,
- 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
- 0, 84, 85, 86, 87, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 0, 108, 88, 89, 316,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 109, 84, 85, 86, 87, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 89,
- 0, 0, 0, 0, 0, 90, 91, 92, 93, 94,
- 95, 96, 97, 0, 0, 0, 0, 0, 0, 0,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 0, 108, 192, 84, 85, 86, 87, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,
- 89, 0, 0, 0, 0, 0, 90, 91, 92, 93,
- 94, 95, 96, 97, 0, 0, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 108, 249, 84, 85, 86, 87, 0, 0,
+ 0, 0, 20, 0, 0, 21, 22, 55, 23, 48,
+ 24, 0, 4, 5, 6, 7, 8, 9, 0, 0,
+ 0, 0, 0, 10, 0, 0, 0, 11, 0, 0,
+ 0, 12, 13, 0, 0, 0, 14, 0, 15, 16,
+ 17, 0, 0, 4, 5, 6, 7, 8, 9, 0,
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 202, 0, 19, 4, 5, 6, 7, 8, 9, 20,
+ 16, 17, 21, 22, 10, 23, 0, 24, 11, 0,
+ 0, 18, 12, 13, 0, 0, 0, 14, 0, 15,
+ 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 18, 0, 21, 22, 0, 23, 0, 24, 0,
+ 0, 206, 0, 19, 4, 5, 6, 7, 8, 9,
+ 20, 0, 0, 21, 22, 10, 23, 0, 24, 11,
+ 0, 0, 0, 12, 13, 0, 0, 0, 14, 0,
+ 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
+ 0, 20, 0, 57, 21, 22, 58, 23, 59, 24,
+ 52, 0, -157, -157, 0, 0, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 0, 0, 0, 0, 0,
+ -157, -157, 0, 0, 18, 0, 0, 0, 0, 0,
+ 0, 0, -157, -157, 104, 105, 106, 107, 108, 212,
+ 109, 0, 58, 79, 59, 0, 52, 0, 0, 0,
+ -156, 0, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 0, 0, 0, 4, 5, 6, 7, 8, 9,
+ 18, 0, 0, 0, 0, 10, 0, 0, 0, 11,
+ 0, 0, 0, 12, 13, 0, 0, 0, 14, 79,
+ 15, 16, 17, 0, 0, 0, -156, 0, 0, 0,
+ 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
+ 123, 20, 0, 0, 21, 22, 0, 23, 0, 24,
+ 4, 5, 6, 7, 8, 9, 0, 0, 0, 0,
+ 0, 10, 0, 0, 0, 11, 0, 0, 0, 12,
+ 13, 0, 0, 0, 14, 0, 15, 16, 17, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88, 89, 0, 0, 0, 0, 0, 90, 91, 92,
- 93, 94, 95, 96, 97, 0, 0, 0, 0, 0,
- 0, 0, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 0, 108, 302, 84, 85, 86, 87, 0,
+ 19, 0, 0, 0, 0, 86, 87, 20, 0, 0,
+ 21, 22, 236, 23, 0, 24, 4, 5, 6, 7,
+ 8, 9, 0, 0, 0, 0, 0, 10, 0, 0,
+ 0, 11, 0, 97, 98, 12, 13, 0, 0, 0,
+ 14, 0, 15, 16, 17, 102, 103, 104, 105, 106,
+ 107, 108, 0, 109, 18, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
+ 0, 0, 0, 20, 0, 0, 21, 22, 276, 23,
+ 0, 24, 4, 5, 6, 7, 8, 9, 0, 0,
+ 0, 0, 0, 10, 0, 0, 0, 11, 0, 0,
+ 0, 12, 13, 0, 0, 0, 14, 0, 15, 16,
+ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 19, 0, 0, 0, 0, 0, 0, 20,
+ 0, 226, 21, 22, 227, 23, 228, 24, 52, 0,
+ 0, 0, 0, 0, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 18, 85, 86, 87, 88, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
+ 90, 229, 0, 0, 0, 0, 91, 92, 93, 94,
+ 95, 96, 97, 98, 0, 0, 0, 85, 86, 87,
+ 88, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 0, 109, 89, 90, 0, 242, 0, 0, 243,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 85, 86, 87, 88, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 89, 90, 0,
+ 0, 0, 0, 142, 91, 92, 93, 94, 95, 96,
+ 97, 98, 0, 0, 0, 85, 86, 87, 88, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
+ 109, 89, 90, 0, 0, 0, 0, 274, 91, 92,
+ 93, 94, 95, 96, 97, 98, 0, 0, 0, 85,
+ 86, 87, 88, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 0, 109, 89, 90, 0, 0, 0,
+ 0, 275, 91, 92, 93, 94, 95, 96, 97, 98,
+ 0, 0, 0, 85, 86, 87, 88, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 0, 109, 89,
+ 90, 0, 0, 0, 0, 299, 91, 92, 93, 94,
+ 95, 96, 97, 98, 0, 0, 0, 0, 0, 0,
+ 0, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 0, 109, 314, 0, 315, 85, 86, 87, 88,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 88, 89, 0, 0, 0, 0, 0, 90, 91,
- 92, 93, 94, 95, 96, 97, 0, 0, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 303, 84, 85, 86, 87,
+ 0, 0, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 89, 90, 138, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 89, 90, 219, 0, 0, 0, 0, 91, 92, 93,
+ 94, 95, 96, 97, 98, 0, 0, 0, 85, 86,
+ 87, 88, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 0, 109, 89, 90, 292, 0, 0, 0,
+ 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
+ 0, 0, 85, 86, 87, 88, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 0, 109, 89, 90,
+ 313, 0, 0, 0, 0, 91, 92, 93, 94, 95,
+ 96, 97, 98, 0, 0, 0, 85, 86, 87, 88,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 0, 109, 89, 90, 317, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 0, 0, 0, 0, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 110, 85, 86, 87,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 193, 85, 86,
+ 87, 88, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 89, 90, 0, 0, 0, 0,
+ 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
+ 0, 0, 0, 0, 0, 0, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 0, 109, 250, 85,
+ 86, 87, 88, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 89, 90, 0, 0, 0,
+ 0, 0, 91, 92, 93, 94, 95, 96, 97, 98,
+ 0, 0, 0, 0, 0, 0, 0, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 0, 109, 303,
+ 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 0, 0, 0, 0, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 304, 85, 86, 87, 88, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 89, 90, 0,
+ 0, 0, 0, 0, 91, 92, 93, 94, 95, 96,
+ 97, 98, 0, 0, 0, 0, 0, 0, 0, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
+ 109, 307, 85, 86, 87, 88, 0, 0, 0, 0,
+ 0, 0, 0, 251, 252, 0, 0, 253, 89, 90,
+ 0, 0, 0, 0, 0, 91, 92, 93, 94, 95,
+ 96, 97, 98, 0, 0, 0, 0, 0, 0, 0,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 0, 109, 85, 86, 87, 88, 0, 0, 0, 0,
+ 0, 0, 131, 0, 0, 0, 0, 0, 89, 90,
+ 0, 0, 0, 0, 0, 91, 92, 93, 94, 95,
+ 96, 97, 98, 0, 0, 0, 85, 86, 87, 88,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 0, 109, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 0, 285, 0, 0, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 85, 86, 87, 88,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
- 91, 92, 93, 94, 95, 96, 97, 0, 0, 0,
- 0, 0, 0, 0, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 0, 108, 306, 84, 85, 86,
- 87, 0, 0, 0, 0, 0, 0, 0, 250, 251,
- 0, 0, 252, 88, 89, 0, 0, 0, 0, 0,
- 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 0, 108, 84, 85, 86,
- 87, 0, 0, 0, 0, 0, 0, 130, 0, 0,
- 0, 0, 0, 88, 89, 0, 0, 0, 0, 0,
- 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
- 0, 84, 85, 86, 87, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 0, 108, 88, 89, 0,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 0, 0, 284, 0, 0, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 84, 85, 86, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 300, 88, 89, 0,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 84, 85, 86, 87, 0, 0, 0, 0, 0,
- 0, 301, 0, 0, 0, 0, 0, 88, 89, 0,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 0, 84, 85, 86, 87, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 88, 89, 0, 0, 0, 0, 0, 90, 91,
- 92, 93, 94, 95, 96, 97, 0, 0, 0, 84,
- 85, 86, 87, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 88, 89, 0, 0, 0,
- 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
- 0, 0, 0, -157, 85, 86, 0, 0, 0, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 88,
- 89, 0, 0, 0, 0, 0, -157, -157, -157, -157,
- -157, -157, 96, 97, 0, 0, 85, 86, 0, 0,
- 0, 0, 0, -157, 101, 102, 103, 104, 105, 106,
- 107, 88, 108, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 96, 97, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 101, 102, 103, 104,
- 105, 106, 107, 0, 108
+ 0, 301, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 0, 0, 0, 0, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 85, 86, 87, 88,
+ 0, 0, 0, 0, 0, 0, 302, 0, 0, 0,
+ 0, 0, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 89, 90, 0, 0, 0, 0, 0, 91, 92, 93,
+ 94, 95, 96, 97, 98, 0, 0, 0, -157, 86,
+