diff options
author | Francis Dupont <fdupont@isc.org> | 2017-01-10 23:24:39 +0100 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2017-01-10 23:24:39 +0100 |
commit | 7be6514d9b75d812f6f99d3690978e119a787996 (patch) | |
tree | 6a6aaf6c3749421c889eb4ab853f0bd7a4edcdfc /src/bin/dhcp6 | |
parent | [master] ChangeLog updated. (diff) | |
parent | [5035] Moved to SimpleParser (diff) | |
download | kea-7be6514d9b75d812f6f99d3690978e119a787996.tar.xz kea-7be6514d9b75d812f6f99d3690978e119a787996.zip |
[master] Finished merge of trac5035 (migrate lease expiration config)
Diffstat (limited to 'src/bin/dhcp6')
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.cc | 3383 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.ll | 54 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.cc | 2097 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.h | 211 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.yy | 48 | ||||
-rw-r--r-- | src/bin/dhcp6/json_config_parser.cc | 9 | ||||
-rw-r--r-- | src/bin/dhcp6/location.hh | 9 | ||||
-rw-r--r-- | src/bin/dhcp6/parser_context.cc | 2 | ||||
-rw-r--r-- | src/bin/dhcp6/parser_context.h | 3 | ||||
-rw-r--r-- | src/bin/dhcp6/position.hh | 9 | ||||
-rw-r--r-- | src/bin/dhcp6/stack.hh | 9 |
11 files changed, 3184 insertions, 2650 deletions
diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 13d72a0709..d5770acbf6 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -467,8 +467,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 111 -#define YY_END_OF_BUFFER 112 +#define YY_NUM_RULES 114 +#define YY_END_OF_BUFFER 115 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -476,93 +476,105 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[773] = +static yyconst flex_int16_t yy_accept[882] = { 0, - 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 110, 10, 11, 110, 1, 104, 101, 104, 104, - 110, 103, 102, 110, 110, 110, 110, 110, 97, 98, - 110, 110, 110, 99, 100, 5, 5, 5, 110, 110, - 110, 10, 11, 0, 0, 93, 0, 0, 0, 0, + 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 115, 113, 10, 11, 113, 1, 107, 104, 107, 107, + 113, 106, 105, 113, 113, 113, 113, 113, 100, 101, + 113, 113, 113, 102, 103, 5, 5, 5, 113, 113, + 113, 10, 11, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 104, 104, 0, - 103, 104, 3, 2, 6, 0, 104, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 9, 0, 94, 0, - 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 107, 107, 0, + 106, 107, 3, 2, 6, 0, 107, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 9, 0, 97, 0, + 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 0, 79, 80, - 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 109, 107, 0, 106, 105, 0, 0, 0, 78, 0, + 0, 112, 110, 0, 109, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 105, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 0, 0, 33, 0, - 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, - - 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 83, 18, - 19, 0, 0, 0, 91, 12, 0, 0, 71, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 33, 0, 0, 0, 0, 0, 64, + + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 80, 18, 0, + 19, 0, 0, 0, 94, 12, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 72, 0, - 0, 0, 0, 0, 0, 67, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 72, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 53, 0, 0, 0, 0, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 29, 0, 92, + 0, 0, 0, 0, 0, 0, 76, 53, 0, 0, + 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 35, 0, - 0, 63, 0, 17, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 35, 0, 0, 63, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 68, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 81, + 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 73, 0, 0, 0, 0, 0, 30, - 0, 75, 0, 37, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, + 0, 68, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 78, 0, 14, 0, + 73, 0, 0, 0, 0, 0, 0, 30, 0, 75, + 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 31, 0, 0, 0, 0, 0, 0, 26, 0, - 0, 89, 88, 0, 59, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 0, 0, 44, 0, 62, 0, - 23, 0, 0, 46, 27, 69, 0, 0, 61, 0, - 0, 0, 0, 40, 84, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 58, 87, 0, - - 0, 0, 0, 0, 16, 0, 15, 54, 0, 0, - 0, 25, 0, 38, 0, 0, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, - 0, 24, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 28, 0, 0, 85, 0, 0, 0, - 51, 0 + 0, 0, 49, 0, 31, 0, 0, 0, 0, 0, + 0, 0, 26, 0, 0, 92, 91, 0, 0, 59, + + 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 0, 62, 0, 23, 0, 0, + 0, 0, 46, 27, 0, 69, 0, 0, 61, 0, + 0, 0, 0, 0, 40, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 90, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 15, 0, 0, 54, 0, + 0, 0, 0, 0, 25, 0, 38, 0, 0, 0, + 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 24, 0, 0, 0, 0, 39, + 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 83, 88, 28, 0, 0, 0, 82, 0, + 0, 0, 0, 0, 0, 0, 51, 0, 0, 84, + 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -607,187 +619,213 @@ static yyconst YY_CHAR yy_meta[61] = 5, 3, 5, 5, 3, 3, 3, 3, 3, 3 } ; -static yyconst flex_uint16_t yy_base[786] = +static yyconst flex_uint16_t yy_base[895] = { 0, 0, 0, 59, 62, 65, 0, 63, 67, 64, 66, - 269, 5549, 83, 263, 125, 0, 105, 5549, 120, 126, - 80, 169, 5549, 224, 87, 79, 37, 86, 5549, 5549, - 102, 85, 102, 5549, 5549, 5549, 150, 219, 174, 0, - 200, 153, 204, 137, 185, 5549, 193, 200, 209, 208, - 222, 237, 245, 262, 251, 273, 291, 312, 324, 335, - 389, 341, 353, 361, 381, 409, 0, 356, 420, 287, - 434, 384, 5549, 0, 5549, 215, 335, 121, 136, 102, - 171, 174, 159, 5549, 167, 198, 5549, 183, 5549, 144, - 450, 460, 466, 474, 153, 484, 504, 499, 532, 545, - - 552, 558, 566, 580, 586, 594, 619, 632, 638, 647, - 653, 661, 671, 686, 696, 704, 710, 722, 729, 744, - 755, 762, 768, 779, 788, 801, 814, 864, 821, 830, - 842, 849, 855, 878, 888, 902, 912, 0, 208, 241, - 168, 253, 245, 210, 100, 5549, 0, 921, 5549, 5549, - 927, 945, 116, 5549, 974, 967, 961, 1003, 974, 1015, - 1022, 1028, 1038, 1048, 1061, 1067, 1074, 1084, 1090, 1096, - 1102, 1112, 1119, 1125, 5549, 1131, 1140, 1148, 1154, 1165, - 1187, 1193, 1199, 1206, 1212, 1221, 1227, 1241, 1247, 1256, - 1263, 1280, 1289, 1297, 1304, 1313, 1322, 1337, 1348, 1358, - - 1365, 1373, 1381, 1391, 1398, 1409, 1419, 1427, 1435, 293, - 5549, 5549, 329, 5549, 5549, 58, 0, 1442, 5549, 1460, - 1491, 1468, 1485, 1518, 1533, 1539, 1546, 1552, 1558, 1567, - 1575, 1586, 1595, 1604, 1610, 1619, 1628, 1638, 1645, 1656, - 1666, 1673, 1681, 1690, 1699, 1706, 1715, 1725, 1732, 1743, - 1750, 1758, 1765, 1778, 1784, 1793, 1800, 1813, 1806, 1828, - 1835, 1847, 1856, 1863, 1869, 1882, 1889, 1897, 1905, 1915, - 1922, 1933, 1940, 1948, 5549, 5549, 65, 0, 1955, 1961, - 1968, 1976, 2011, 1983, 1989, 5549, 1996, 2011, 5549, 2037, - 2052, 2060, 2066, 2073, 5549, 2085, 2101, 2107, 2114, 2122, - - 5549, 2129, 2142, 2155, 2162, 2168, 2180, 2188, 2197, 2208, - 2214, 2225, 2231, 2237, 5549, 2247, 2254, 2265, 2271, 2282, - 2288, 5549, 2300, 2308, 2316, 2323, 2336, 2342, 2349, 2359, - 2365, 2377, 2384, 2393, 2400, 2406, 2412, 5549, 5549, 5549, - 5549, 2418, 54, 0, 5549, 5549, 2440, 2453, 5549, 2446, - 2460, 2466, 2474, 2488, 2499, 2507, 2517, 2523, 2533, 2541, - 2552, 2559, 2566, 2577, 2587, 5549, 2594, 2601, 2610, 2616, - 2627, 2635, 2649, 2656, 2668, 2684, 2677, 2690, 2696, 2703, - 2712, 5549, 2718, 2724, 2738, 2752, 2771, 2777, 5549, 2760, - 2788, 2794, 2800, 2812, 2823, 5549, 2834, 2841, 5549, 2851, - - 2857, 2867, 2874, 2880, 2890, 2908, 2896, 2914, 2931, 2937, - 2947, 2953, 2965, 2971, 2987, 2993, 2999, 3005, 3011, 3021, - 3028, 3040, 3046, 3061, 3068, 3079, 3086, 5549, 3094, 3101, - 3107, 3114, 3120, 3130, 5549, 3136, 3148, 3154, 3171, 3177, - 3183, 3189, 3195, 3205, 3211, 3217, 3231, 5549, 3239, 3245, - 3259, 5549, 3265, 3279, 3285, 3293, 3299, 3307, 3314, 3321, - 3336, 3342, 3349, 3355, 3362, 3375, 3383, 3390, 3401, 3408, - 3416, 3424, 3430, 3436, 5549, 5549, 3444, 3458, 3464, 3472, - 3478, 3487, 5549, 3498, 3506, 3515, 3523, 3532, 3539, 3548, - 3557, 3565, 3572, 3585, 3593, 3607, 3619, 5549, 3626, 5549, - - 3632, 3643, 3652, 3660, 3668, 3677, 3688, 3694, 3701, 3711, - 3722, 3729, 3735, 3744, 5549, 3755, 3764, 3772, 3778, 3798, - 3806, 3812, 3818, 3826, 3832, 3851, 3860, 5549, 5549, 3869, - 3875, 5549, 3884, 5549, 3893, 3904, 3912, 3918, 3926, 3932, - 5549, 3940, 3946, 3965, 3975, 3982, 3988, 3998, 4008, 4016, - 5549, 4022, 4031, 4037, 4044, 4050, 4057, 4066, 4073, 4079, - 4086, 5549, 4095, 4102, 4114, 4123, 4130, 4139, 4147, 4156, - 4167, 4173, 4184, 4191, 4201, 4207, 4213, 4219, 4225, 4235, - 5549, 4248, 4254, 4260, 4268, 4276, 5549, 5549, 4289, 4283, - 4296, 4302, 4309, 4330, 4338, 4344, 4353, 4363, 5549, 5549, - - 4372, 5549, 4379, 5549, 4391, 4400, 4407, 4413, 4419, 5549, - 4425, 5549, 4436, 5549, 4448, 4454, 4460, 4469, 4476, 4483, - 4489, 4497, 4505, 4517, 4523, 4531, 4538, 4545, 5549, 4552, - 4559, 4571, 4581, 4587, 4593, 4600, 4606, 4615, 4621, 4628, - 5549, 5549, 4635, 4641, 4656, 4663, 4669, 4675, 5549, 4684, - 4691, 5549, 5549, 4697, 5549, 4703, 4710, 4717, 4726, 5549, - 4732, 4739, 4745, 4751, 4765, 4773, 5549, 4779, 5549, 4786, - 5549, 4798, 4814, 5549, 5549, 5549, 4822, 4831, 5549, 4837, - 4843, 4850, 4856, 5549, 5549, 4865, 4884, 4872, 4890, 4900, - 4907, 4913, 4924, 4935, 4941, 4948, 4957, 5549, 5549, 4963, - - 4969, 4976, 4983, 4991, 5549, 4997, 5549, 5549, 5004, 5012, - 5019, 5549, 5030, 5549, 5041, 5048, 5549, 5064, 5070, 5082, - 5088, 5099, 5107, 5121, 5133, 5140, 5146, 5154, 5162, 5549, - 5168, 5174, 5187, 5196, 5549, 5203, 5210, 5225, 5231, 5238, - 5244, 5549, 5250, 5260, 5549, 5267, 5273, 5279, 5285, 5295, - 5301, 5307, 5329, 5335, 5342, 5349, 5355, 5363, 5371, 5549, - 5389, 5396, 5404, 5549, 5412, 5418, 5549, 5424, 5430, 5438, - 5549, 5549, 5482, 5489, 5496, 5503, 5510, 5517, 5524, 5528, - 5533, 5535, 5537, 5539, 5541 + 254, 6592, 83, 248, 125, 0, 105, 6592, 120, 167, + 80, 172, 6592, 203, 87, 79, 37, 86, 6592, 6592, + 102, 85, 102, 6592, 6592, 6592, 138, 207, 166, 0, + 191, 139, 198, 116, 191, 6592, 197, 203, 202, 215, + 225, 243, 258, 266, 286, 299, 315, 292, 307, 321, + 375, 359, 367, 385, 400, 429, 0, 369, 426, 141, + 439, 443, 6592, 0, 6592, 218, 266, 121, 144, 131, + 176, 211, 188, 6592, 157, 183, 6592, 205, 6592, 105, + 443, 467, 148, 483, 503, 496, 489, 529, 504, 547, + + 555, 564, 570, 580, 588, 603, 609, 621, 629, 642, + 650, 662, 668, 675, 683, 690, 696, 704, 716, 724, + 737, 753, 759, 765, 772, 778, 828, 793, 800, 814, + 821, 834, 840, 850, 869, 876, 887, 0, 218, 239, + 189, 244, 258, 201, 100, 6592, 0, 893, 902, 127, + 6592, 931, 926, 909, 972, 978, 984, 990, 996, 1007, + 1018, 1031, 1040, 1053, 1059, 1065, 1074, 1081, 1099, 1107, + 1114, 1120, 1128, 6592, 1140, 1153, 1173, 1179, 1188, 1194, + 1201, 1213, 1227, 1234, 1246, 1252, 1260, 1267, 1274, 1280, + 1302, 1308, 1314, 1320, 1327, 1336, 1360, 1371, 1377, 1385, + + 1396, 1406, 1419, 1413, 1425, 1431, 1441, 1447, 1453, 1464, + 238, 6592, 6592, 290, 6592, 6592, 58, 0, 1486, 1492, + 1523, 1509, 1520, 1548, 1568, 1574, 1581, 1587, 1593, 1602, + 1610, 1621, 1630, 1639, 1645, 1654, 1663, 1680, 1691, 1701, + 1708, 1717, 1724, 1730, 1736, 1758, 1764, 1770, 1777, 1783, + 1793, 1799, 1812, 1818, 1827, 1835, 1846, 1852, 1861, 1874, + 1886, 1896, 1902, 1920, 1909, 1930, 1937, 1945, 1965, 1956, + 1971, 1979, 1989, 2000, 2007, 2014, 2022, 2029, 2035, 6592, + 6592, 65, 0, 2042, 2048, 2055, 2063, 2098, 2076, 2096, + 6592, 2083, 2124, 6592, 2139, 2145, 2153, 2159, 2168, 6592, + + 2174, 2181, 2194, 2202, 2210, 2217, 2238, 6592, 2245, 2251, + 2258, 2264, 2271, 2279, 2287, 2297, 2305, 2312, 2323, 2331, + 2338, 2345, 6592, 2351, 2360, 2367, 2388, 2395, 2402, 6592, + 2408, 2414, 2423, 2437, 2430, 2449, 2456, 2465, 2473, 2484, + 2490, 2506, 2518, 2525, 2531, 2540, 6592, 6592, 6592, 2546, + 6592, 2564, 54, 0, 6592, 6592, 2553, 2579, 6592, 2589, + 2601, 2607, 2613, 2622, 2630, 2636, 2648, 2664, 2670, 2676, + 2684, 2692, 2698, 2704, 2726, 2738, 2745, 6592, 2754, 2761, + 2767, 2773, 2780, 2787, 2795, 2806, 2815, 2824, 2830, 2841, + 2848, 2858, 2864, 2881, 6592, 2887, 2893, 2910, 2916, 2926, + + 2938, 2944, 6592, 2950, 2962, 2972, 2978, 2985, 2995, 6592, + 3011, 3018, 3028, 6592, 3034, 3040, 3046, 3054, 3069, 3075, + 3087, 3093, 3103, 3111, 3122, 3136, 3144, 3151, 3157, 3169, + 3185, 3192, 3198, 3207, 3213, 3221, 3231, 3246, 3254, 3260, + 3269, 3275, 3282, 3293, 3303, 6592, 3310, 3316, 3322, 3329, + 3344, 3351, 6592, 3362, 3368, 3377, 3384, 3391, 3401, 3412, + 3426, 3434, 3446, 3452, 3460, 3467, 6592, 3480, 3486, 3500, + 3506, 6592, 3520, 3526, 3534, 3540, 3546, 3554, 3562, 3580, + 3588, 3596, 3604, 3616, 3625, 3632, 3638, 3644, 3650, 3658, + 3666, 3679, 3687, 3695, 3701, 3707, 6592, 6592, 3723, 3729, + + 3735, 3743, 3749, 3771, 3777, 6592, 3783, 3793, 3805, 3811, + 3817, 3826, 3833, 3839, 3845, 3851, 3859, 3873, 3887, 3898, + 3907, 6592, 3913, 3920, 6592, 3926, 3935, 3941, 3949, 3969, + 3975, 3986, 3995, 4003, 4009, 4015, 4021, 4029, 4037, 4044, + 4057, 6592, 4065, 4077, 4083, 4091, 4103, 4111, 4117, 4124, + 4136, 4150, 4157, 4164, 4172, 6592, 6592, 4183, 4190, 6592, + 4198, 6592, 4206, 4219, 4226, 4234, 4240, 4248, 4254, 6592, + 4263, 4269, 4276, 4288, 4297, 4305, 4311, 4323, 4330, 4339, + 6592, 4345, 4351, 4359, 4365, 4374, 4387, 4380, 4398, 4416, + 4424, 4434, 4440, 6592, 4449, 4457, 4463, 4473, 4482, 4496, + + 4506, 4518, 4524, 4530, 4539, 4558, 4564, 4574, 4580, 4586, + 4592, 4608, 4620, 4628, 6592, 4634, 4642, 4654, 4662, 4677, + 4683, 6592, 6592, 4690, 4697, 4703, 4711, 4718, 4732, 4740, + 4746, 4752, 4758, 4765, 4774, 6592, 6592, 4780, 6592, 4794, + 6592, 4802, 4814, 4820, 4827, 4835, 4842, 6592, 4855, 6592, + 4861, 6592, 4868, 4875, 4883, 4889, 4896, 4909, 4932, 4943, + 4949, 4955, 4961, 4967, 4977, 4989, 4995, 5012, 6592, 5018, + 5028, 5034, 5046, 5052, 5062, 5069, 5075, 5081, 5088, 5095, + 5109, 5117, 6592, 5123, 6592, 5129, 5137, 5146, 5152, 5162, + 5181, 5187, 6592, 5195, 5201, 6592, 6592, 5215, 5223, 6592, + + 5229, 5235, 5243, 5249, 6592, 5257, 5271, 5277, 5283, 5291, + 5299, 5305, 5311, 6592, 5319, 6592, 5325, 6592, 5339, 5353, + 5360, 5367, 6592, 6592, 5381, 6592, 5388, 5375, 6592, 5400, + 5414, 5428, 5436, 5442, 6592, 6592, 5449, 5456, 5462, 5470, + 5477, 5490, 5510, 5516, 5525, 5531, 5539, 5545, 5559, 5567, + 5573, 5587, 5595, 5601, 6592, 6592, 5607, 5613, 5629, 5641, + 5635, 5647, 5657, 6592, 5663, 6592, 5669, 5675, 6592, 5681, + 5691, 5697, 5710, 5716, 6592, 5731, 6592, 5738, 5750, 5756, + 5764, 6592, 5771, 5784, 5790, 5804, 5810, 5818, 5826, 5832, + 5838, 5844, 5866, 5872, 5878, 5884, 5890, 5906, 5912, 6592, + + 5923, 5934, 5940, 6592, 5946, 5952, 5959, 5968, 5975, 5988, + 5994, 6592, 6008, 6014, 6023, 6029, 6036, 6042, 6048, 6057, + 6065, 6077, 6083, 6592, 6592, 6098, 6105, 6111, 6119, 6592, + 6126, 6133, 6592, 6139, 6155, 6161, 6173, 6179, 6189, 6199, + 6212, 6223, 6233, 6241, 6247, 6256, 6266, 6276, 6285, 6291, + 6300, 6309, 6325, 6333, 6343, 6353, 6592, 6359, 6369, 6376, + 6387, 6393, 6592, 6592, 6592, 6402, 6409, 6421, 6592, 6427, + 6438, 6444, 6450, 6462, 6472, 6478, 6592, 6484, 6490, 6592, + 6592, 6525, 6532, 6539, 6546, 6553, 6560, 6567, 6571, 6576, + 6578, 6580, 6582, 6584 + } ; -static yyconst flex_int16_t yy_def[786] = +static yyconst flex_int16_t yy_def[895] = { 0, - 772, 1, 773, 773, 1, 5, 5, 5, 5, 5, - 772, 772, 772, 772, 774, 775, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 776, - 772, 772, 772, 777, 774, 772, 774, 774, 774, 778, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 775, 772, 772, 772, - 772, 772, 772, 779, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 776, 772, 777, 772, 780, - 774, 774, 774, 774, 781, 774, 778, 774, 774, 774, - - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 779, 772, 772, - 772, 772, 772, 772, 772, 772, 782, 774, 772, 772, - 774, 774, 781, 772, 778, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - - 774, 774, 774, 774, 774, 774, 774, 774, 774, 772, - 772, 772, 772, 772, 772, 772, 783, 774, 772, 774, - 778, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 772, 772, 772, 784, 774, 774, - 774, 774, 778, 774, 774, 772, 774, 774, 772, 774, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - - 772, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 772, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 772, 772, - 772, 774, 772, 785, 772, 772, 774, 774, 772, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 772, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 772, 774, 774, 774, 774, 774, 774, 772, 774, - 774, 774, 774, 774, 774, 772, 774, 774, 772, 774, - - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 774, 774, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 774, 774, - 774, 772, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 772, 772, 774, 774, 774, 774, - 774, 774, 772, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 774, 772, - - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 772, 774, - 774, 772, 774, 772, 774, 774, 774, 774, 774, 774, - 772, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 772, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 772, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 772, 774, 774, 774, 774, 774, 772, 772, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 772, 772, - - 774, 772, 774, 772, 774, 774, 774, 774, 774, 772, - 774, 772, 774, 772, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 772, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 772, 772, 774, 774, 774, 774, 774, 774, 772, 774, - 774, 772, 772, 774, 772, 774, 774, 774, 774, 772, - 774, 774, 774, 774, 774, 774, 772, 774, 772, 774, - 772, 774, 774, 772, 772, 772, 774, 774, 772, 774, - 774, 774, 774, 772, 772, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 772, 772, 774, - - 774, 774, 774, 774, 772, 774, 772, 772, 774, 774, - 774, 772, 774, 772, 774, 774, 772, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 772, - 774, 774, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 772, 774, 774, 772, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 772, - 774, 774, 774, 772, 774, 774, 772, 774, 774, 774, - 772, 0, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772 + 881, 1, 882, 882, 1, 5, 5, 5, 5, 5, + 881, 881, 881, 881, 883, 884, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 885, + 881, 881, 881, 886, 883, 881, 883, 883, 887, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 884, 881, 881, 881, + 881, 881, 881, 888, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 885, 881, 886, 881, 889, + 883, 883, 890, 883, 887, 883, 883, 883, 883, 883, + + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 888, 881, 881, + 881, 881, 881, 881, 881, 881, 891, 883, 883, 890, + 881, 887, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 881, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 881, 881, 881, 881, 881, 881, 881, 892, 883, 883, + 887, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 881, + 881, 881, 893, 883, 883, 883, 883, 887, 883, 883, + 881, 883, 883, 881, 883, 883, 883, 883, 883, 881, + + 883, 883, 883, 883, 883, 883, 883, 881, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 881, 883, 883, 883, 883, 883, 883, 881, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 881, 881, 881, 883, + 881, 883, 881, 894, 881, 881, 883, 883, 881, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 881, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 881, 883, 883, 883, 883, 883, + + 883, 883, 881, 883, 883, 883, 883, 883, 883, 881, + 883, 883, 883, 881, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 881, 883, 883, 883, 883, + 883, 883, 881, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 881, 883, 883, 883, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 881, 881, 883, 883, + + 883, 883, 883, 883, 883, 881, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 881, 883, 883, 881, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 881, 881, 883, 883, 881, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 881, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 881, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 881, 883, 883, 883, 883, 883, 883, + + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 881, 883, 883, 883, 883, 883, + 883, 881, 881, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 881, 881, 883, 881, 883, + 881, 883, 883, 883, 883, 883, 883, 881, 883, 881, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 881, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 881, 883, 881, 883, 883, 883, 883, 883, + 883, 883, 881, 883, 883, 881, 881, 883, 883, 881, + + 883, 883, 883, 883, 881, 883, 883, 883, 883, 883, + 883, 883, 883, 881, 883, 881, 883, 881, 883, 883, + 883, 883, 881, 881, 883, 881, 883, 883, 881, 883, + 883, 883, 883, 883, 881, 881, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 881, 881, 883, 883, 883, 883, + 883, 883, 883, 881, 883, 881, 883, 883, 881, 883, + 883, 883, 883, 883, 881, 883, 881, 883, 883, 883, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 881, + + 883, 883, 883, 881, 883, 883, 883, 883, 883, 883, + 883, 881, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 881, 881, 883, 883, 883, 883, 881, + 883, 883, 881, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 881, 883, 883, 883, + 883, 883, 881, 881, 881, 883, 883, 883, 881, 883, + 883, 883, 883, 883, 883, 883, 881, 883, 883, 881, + 0, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881 + } ; -static yyconst flex_uint16_t yy_nxt[5610] = +static yyconst flex_uint16_t yy_nxt[6653] = { 0, 12, 13, 14, 13, 12, 15, 16, 12, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 12, 12, @@ -798,617 +836,732 @@ static yyconst flex_uint16_t yy_nxt[5610] = 37, 14, 37, 37, 14, 37, 38, 79, 40, 38, 12, 12, 40, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 41, 42, 41, 42, 73, 12, 12, - 79, 12, 74, 399, 12, 76, 12, 76, 12, 78, - - 77, 77, 77, 343, 12, 12, 12, 12, 39, 12, - 12, 277, 12, 80, 78, 79, 68, 12, 69, 69, - 69, 154, 78, 12, 12, 44, 44, 44, 70, 80, - 46, 68, 141, 71, 71, 71, 80, 81, 82, 72, - 72, 72, 89, 70, 70, 216, 139, 47, 48, 70, - 49, 42, 83, 42, 42, 141, 42, 50, 154, 70, - 51, 140, 52, 53, 54, 70, 139, 55, 56, 90, + 79, 12, 74, 414, 12, 76, 12, 76, 12, 78, + + 77, 77, 77, 353, 12, 12, 12, 12, 39, 12, + 12, 282, 12, 80, 78, 79, 68, 12, 69, 69, + 69, 89, 78, 12, 12, 44, 44, 44, 70, 80, + 46, 68, 151, 71, 71, 71, 80, 81, 82, 42, + 42, 42, 42, 70, 70, 217, 139, 47, 90, 76, + 48, 76, 83, 151, 77, 77, 77, 49, 147, 70, + 50, 141, 51, 52, 53, 54, 139, 55, 56, 140, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 68, 140, 71, 71, 71, 44, 44, 44, 89, 141, - 46, 212, 70, 44, 44, 44, 139, 147, 46, 140, - - 44, 44, 44, 146, 145, 46, 43, 212, 70, 44, - 44, 44, 144, 96, 46, 90, 142, 50, 87, 143, - 45, 85, 44, 44, 44, 50, 92, 46, 77, 77, - 77, 84, 50, 212, 93, 91, 210, 44, 44, 44, - 45, 50, 46, 75, 45, 44, 44, 44, 45, 215, - 46, 44, 44, 44, 50, 45, 46, 94, 45, 210, - 45, 97, 44, 44, 44, 43, 211, 46, 772, 50, - 211, 772, 98, 44, 44, 44, 772, 50, 46, 772, - 102, 210, 99, 50, 103, 100, 211, 104, 101, 772, - 214, 44, 44, 44, 50, 76, 46, 76, 105, 108, - - 77, 77, 77, 109, 213, 50, 110, 772, 772, 106, - 772, 111, 44, 44, 44, 772, 275, 46, 107, 772, - 112, 772, 113, 50, 44, 44, 44, 772, 772, 46, - 114, 115, 275, 772, 116, 44, 44, 44, 772, 117, - 46, 44, 44, 44, 50, 772, 46, 118, 77, 77, - 77, 772, 275, 44, 44, 44, 50, 772, 46, 119, - 772, 44, 44, 44, 772, 772, 46, 50, 276, 72, - 72, 72, 772, 50, 772, 772, 127, 772, 772, 70, - 128, 44, 44, 44, 120, 50, 46, 772, 121, 44, - 44, 44, 129, 50, 46, 70, 772, 72, 72, 72, - - 133, 130, 131, 772, 134, 772, 132, 70, 772, 44, - 44, 44, 772, 50, 46, 772, 772, 772, 135, 772, - 772, 50, 772, 70, 122, 772, 772, 123, 124, 772, - 772, 68, 136, 69, 69, 69, 772, 125, 772, 126, - 772, 50, 772, 70, 137, 68, 772, 71, 71, 71, - 44, 44, 44, 772, 772, 46, 772, 70, 772, 70, - 44, 44, 44, 772, 772, 149, 44, 44, 44, 772, - 772, 150, 772, 70, 44, 44, 44, 772, 772, 46, - 772, 772, 50, 772, 44, 44, 44, 148, 772, 46, - 772, 772, 50, 772, 772, 151, 772, 772, 50, 44, - - 44, 44, 772, 772, 46, 772, 50, 772, 772, 772, - 772, 772, 772, 772, 772, 152, 50, 155, 155, 155, - 772, 772, 772, 772, 155, 155, 155, 155, 155, 772, - 772, 50, 44, 44, 44, 772, 772, 46, 772, 155, - 155, 155, 155, 155, 155, 44, 44, 44, 772, 156, - 46, 772, 44, 44, 44, 772, 772, 46, 44, 44, - 44, 772, 772, 46, 50, 772, 44, 44, 44, 772, - 772, 46, 772, 772, 772, 157, 772, 50, 772, 772, - 44, 44, 44, 158, 50, 46, 44, 44, 44, 772, - 50, 46, 159, 772, 44, 44, 44, 772, 50, 46, - - 772, 772, 162, 163, 772, 772, 160, 772, 772, 772, - 161, 164, 50, 772, 772, 772, 772, 165, 50, 44, - 44, 44, 772, 772, 46, 772, 50, 772, 772, 166, - 772, 167, 44, 44, 44, 772, 772, 46, 44, 44, - 44, 772, 772, 46, 772, 772, 168, 44, 44, 44, - 772, 50, 46, 44, 44, 44, 169, 174, 175, 772, - 772, 44, 44, 44, 50, 772, 46, 772, 170, 772, - 50, 44, 44, 44, 772, 772, 46, 772, 772, 50, - 171, 178, 772, 172, 772, 50, 44, 44, 44, 772, - 772, 46, 176, 50, 772, 173, 44, 44, 44, 772, - - 772, 46, 772, 50, 44, 44, 44, 772, 772, 46, - 44, 44, 44, 177, 772, 46, 772, 772, 50, 772, - 772, 179, 44, 44, 44, 772, 772, 46, 50, 44, - 44, 44, 772, 180, 46, 772, 50, 772, 772, 772, - 181, 772, 50, 772, 44, 44, 44, 772, 772, 46, - 772, 182, 772, 772, 50, 44, 44, 44, 772, 183, - 46, 50, 44, 44, 44, 772, 772, 46, 44, 44, - 44, 772, 772, 46, 772, 184, 50, 772, 189, 44, - 44, 44, 772, 772, 46, 772, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 772, 185, 772, 772, 772, - - 50, 44, 44, 44, 772, 772, 46, 186, 772, 772, - 772, 50, 187, 188, 44, 44, 44, 772, 772, 46, - 50, 44, 44, 44, 772, 772, 46, 772, 772, 190, - 44, 44, 44, 50, 772, 46, 191, 772, 772, 772, - 192, 772, 44, 44, 44, 772, 50, 46, 772, 44, - 44, 44, 772, 50, 46, 44, 44, 44, 772, 772, - 46, 772, 50, 193, 44, 44, 44, 202, 772, 46, - 772, 200, 772, 772, 50, 201, 772, 203, 44, 44, - 44, 50, 772, 46, 772, 204, 772, 50, 44, 44, - 44, 772, 772, 46, 772, 772, 50, 772, 772, 194, - - 195, 196, 44, 44, 44, 772, 205, 46, 772, 197, - 50, 198, 44, 44, 44, 199, 772, 46, 772, 772, - 50, 44, 44, 44, 206, 772, 46, 44, 44, 44, - 772, 772, 219, 772, 50, 772, 772, 207, 772, 772, - 772, 208, 772, 772, 50, 44, 44, 44, 772, 772, - 46, 772, 772, 50, 772, 772, 772, 209, 772, 50, - 772, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 218, 772, 46, 772, 44, 44, 44, 50, 772, 46, - 772, 772, 772, 772, 772, 772, 220, 221, 221, 221, - 772, 772, 772, 50, 221, 221, 221, 221, 221, 50, - - 223, 772, 222, 44, 44, 44, 50, 772, 46, 221, - 221, 221, 221, 221, 221, 44, 44, 44, 772, 772, - 46, 772, 44, 44, 44, 226, 225, 46, 44, 44, - 44, 772, 772, 46, 772, 50, 772, 772, 44, 44, - 44, 772, 224, 46, 772, 772, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 772, 772, 227, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 50, 772, 46, 772, 44, 44, 44, 772, 772, 46, - 50, 228, 772, 229, 44, 44, 44, 230, 772, 46, - 44, 44, 44, 50, 772, 46, 44, 44, 44, 50, - - 772, 46, 44, 44, 44, 232, 50, 46, 772, 233, - 231, 772, 44, 44, 44, 772, 50, 46, 772, 44, - 44, 44, 50, 234, 46, 44, 44, 44, 50, 772, - 46, 44, 44, 44, 50, 235, 46, 772, 772, 236, - 44, 44, 44, 772, 50, 46, 237, 772, 44, 44, - 44, 50, 772, 46, 44, 44, 44, 50, 772, 46, - 240, 772, 772, 50, 238, 44, 44, 44, 239, 772, - 46, 772, 50, 772, 772, 245, 772, 772, 241, 242, - 50, 772, 772, 243, 772, 772, 50, 44, 44, 44, - 772, 772, 46, 44, 44, 44, 772, 50, 46, 44, - - 44, 44, 772, 772, 46, 244, 44, 44, 44, 248, - 772, 46, 44, 44, 44, 772, 772, 46, 772, 50, - 772, 44, 44, 44, 772, 50, 46, 44, 44, 44, - 772, 50, 46, 772, 247, 772, 772, 246, 50, 772, - 772, 44, 44, 44, 50, 249, 46, 44, 44, 44, - 772, 772, 46, 50, 772, 250, 44, 44, 44, 50, - 772, 46, 252, 44, 44, 44, 772, 772, 46, 772, - 251, 772, 772, 50, 772, 772, 772, 772, 772, 50, - 44, 44, 44, 772, 772, 46, 772, 772, 50, 44, - 44, 44, 253, 772, 46, 50, 254, 44, 44, 44, - - 772, 772, 46, 772, 44, 44, 44, 255, 256, 46, - 772, 772, 50, 44, 44, 44, 772, 772, 46, 772, - 257, 50, 44, 44, 44, 772, 772, 46, 772, 50, - 772, 772, 258, 772, 772, 259, 50, 44, 44, 44, - 772, 772, 46, 772, 772, 50, 772, 260, 44, 44, - 44, 772, 772, 46, 50, 772, 772, 262, 44, 44, - 44, 261, 772, 46, 772, 44, 44, 44, 772, 50, - 46, 772, 772, 44, 44, 44, 263, 772, 46, 772, - 50, 44, 44, 44, 772, 772, 46, 264, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 50, 44, 44, - - 44, 772, 772, 46, 266, 50, 772, 772, 772, 44, - 44, 44, 265, 50, 46, 772, 772, 267, 268, 44, - 44, 44, 772, 50, 46, 772, 772, 44, 44, 44, - 50, 772, 46, 772, 772, 44, 44, 44, 269, 772, - 46, 50, 44, 44, 44, 772, 772, 46, 271, 772, - 270, 50, 772, 772, 772, 772, 279, 280, 272, 50, - 44, 44, 44, 772, 281, 46, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 772, 772, 273, 274, 772, - 772, 772, 772, 772, 772, 44, 44, 44, 772, 772, - 46, 772, 50, 772, 772, 772, 772, 772, 772, 772, - - 50, 772, 772, 282, 283, 283, 283, 772, 772, 772, - 772, 283, 283, 283, 283, 283, 772, 50, 44, 44, - 44, 772, 772, 286, 772, 284, 283, 283, 283, 283, - 283, 283, 285, 44, 44, 44, 772, 772, 46, 44, - 44, 44, 772, 772, 46, 772, 44, 44, 44, 772, - 50, 289, 44, 44, 44, 772, 772, 46, 44, 44, - 44, 772, 772, 46, 772, 50, 772, 44, 44, 44, - 772, 50, 46, 772, 772, 44, 44, 44, 50, 288, - 46, 772, 772, 287, 50, 293, 44, 44, 44, 294, - 50, 295, 772, 290, 772, 44, 44, 44, 772, 50, - - 46, 291, 772, 772, 44, 44, 44, 50, 292, 46, - 44, 44, 44, 772, 772, 46, 772, 772, 50, 44, - 44, 44, 772, 772, 46, 772, 772, 50, 44, 44, - 44, 772, 772, 46, 772, 772, 50, 772, 44, 44, - 44, 772, 50, 301, 296, 44, 44, 44, 302, 772, - 46, 50, 772, 772, 297, 772, 44, 44, 44, 772, - 50, 46, 772, 298, 772, 772, 44, 44, 44, 299, - 50, 46, 772, 44, 44, 44, 772, 50, 46, 300, - 772, 44, 44, 44, 305, 303, 46, 772, 50, 304, - 44, 44, 44, 772, 306, 46, 772, 772, 50, 44, - - 44, 44, 772, 772, 46, 50, 44, 44, 44, 772, - 772, 46, 772, 50, 772, 44, 44, 44, 307, 309, - 46, 772, 50, 308, 772, 44, 44, 44, 772, 310, - 46, 50, 44, 44, 44, 772, 772, 315, 50, 772, - 772, 312, 311, 44, 44, 44, 772, 50, 46, 772, - 44, 44, 44, 772, 313, 46, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 44, 44, 44, 772, 772, - 46, 772, 772, 772, 772, 50, 314, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 772, 46, - 50, 316, 772, 44, 44, 44, 772, 50, 322, 772, - - 44, 44, 44, 317, 318, 46, 44, 44, 44, 772, - 50, 46, 772, 44, 44, 44, 50, 772, 46, 772, - 319, 772, 772, 772, 772, 50, 320, 321, 44, 44, - 44, 772, 50, 46, 772, 44, 44, 44, 50, 324, - 46, 772, 772, 325, 323, 50, 772, 44, 44, 44, - 772, 326, 46, 772, 327, 772, 44, 44, 44, 772, - 50, 46, 772, 44, 44, 44, 772, 50, 46, 44, - 44, 44, 772, 772, 46, 328, 772, 772, 772, 50, - 772, 772, 44, 44, 44, 329, 772, 46, 50, 44, - 44, 44, 772, 772, 46, 50, 772, 44, 44, 44, - - 772, 50, 46, 772, 330, 44, 44, 44, 333, 772, - 46, 331, 772, 332, 50, 44, 44, 44, 772, 772, - 338, 50, 44, 44, 44, 772, 772, 339, 335, 50, - 772, 772, 334, 44, 44, 44, 336, 50, 340, 772, - 44, 44, 44, 772, 337, 341, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 44, 44, 44, 772, 772, - 345, 44, 44, 44, 772, 50, 346, 772, 44, 44, - 44, 772, 50, 46, 772, 772, 44, 44, 44, 772, - 50, 46, 772, 44, 44, 44, 342, 50, 349, 44, - 44, 44, 772, 50, 46, 772, 44, 44, 44, 772, - - 50, 46, 772, 772, 772, 772, 347, 772, 50, 772, - 772, 44, 44, 44, 772, 50, 46, 772, 772, 772, - 772, 50, 772, 348, 45, 45, 45, 772, 50, 772, - 772, 45, 45, 45, 45, 45, 772, 44, 44, 44, - 772, 350, 46, 50, 351, 772, 45, 45, 45, 45, - 45, 45, 44, 44, 44, 772, 772, 46, 772, 352, - 44, 44, 44, 772, 772, 46, 44, 44, 44, 50, - 772, 46, 772, 44, 44, 44, 772, 772, 46, 772, - 772, 772, 353, 772, 50, 44, 44, 44, 772, 772, - 46, 772, 50, 772, 772, 355, 772, 772, 50, 354, - - 772, 44, 44, 44, 356, 50, 46, 44, 44, 44, - 772, 772, 46, 772, 44, 44, 44, 50, 772, 46, - 772, 357, 44, 44, 44, 772, 772, 46, 772, 44, - 44, 44, 362, 50, 46, 772, 358, 772, 772, 50, - 772, 772, 44, 44, 44, 360, 50, 46, 772, 772, - 359, 772, 772, 361, 50, 44, 44, 44, 772, 772, - 46, 50, 44, 44, 44, 365, 772, 366, 44, 44, - 44, 772, 772, 46, 50, 772, 772, 364, 772, 363, - 44, 44, 44, 772, 772, 46, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 772, 772, 44, 44, 44, - - 50, 772, 46, 772, 772, 772, 367, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 371, 46, - 50, 772, 772, 368, 772, 44, 44, 44, 369, 50, - 46, 44, 44, 44, 772, 370, 46, 44, 44, 44, - 50, 772, 46, 772, 772, 772, 50, 44, 44, 44, - 772, 772, 46, 772, 44, 44, 44, 50, 772, 46, - 772, 372, 772, 50, 772, 44, 44, 44, 772, 50, - 46, 44, 44, 44, 772, 373, 46, 772, 772, 50, - 772, 374, 44, 44, 44, 375, 50, 46, 44, 44, - 44, 772, 772, 46, 376, 772, 772, 50, 772, 772, - - 44, 44, 44, 50, 378, 382, 377, 772, 44, 44, - 44, 772, 772, 46, 50, 772, 44, 44, 44, 379, - 50, 46, 772, 44, 44, 44, 772, 772, 46, 772, - 380, 772, 50, 385, 772, 772, 44, 44, 44, 381, - 50, 46, 44, 44, 44, 772, 772, 46, 50, 44, - 44, 44, 772, 772, 46, 50, 772, 772, 383, 44, - 44, 44, 772, 772, 389, 44, 44, 44, 50, 390, - 46, 772, 384, 772, 50, 391, 772, 44, 44, 44, - 387, 50, 46, 386, 44, 44, 44, 388, 772, 46, - 772, 50, 772, 44, 44, 44, 772, 50, 46, 772, - - 44, 44, 44, 772, 772, 46, 44, 44, 44, 50, - 772, 396, 44, 44, 44, 772, 50, 46, 44, 44, - 44, 772, 772, 46, 772, 50, 772, 772, 398, 772, - 772, 392, 50, 772, 393, 772, 394, 772, 50, 772, - 44, 44, 44, 772, 50, 46, 44, 44, 44, 772, - 50, 46, 395, 44, 44, 44, 402, 772, 46, 772, - 44, 44, 44, 772, 397, 46, 44, 44, 44, 772, - 772, 46, 50, 772, 44, 44, 44, 772, 50, 46, - 772, 772, 772, 772, 772, 50, 772, 400, 44, 44, - 44, 772, 50, 46, 401, 772, 772, 772, 50, 44, - - 44, 44, 772, 772, 46, 403, 50, 44, 44, 44, - 772, 772, 46, 405, 772, 772, 404, 44, 44, 44, - 50, 772, 46, 44, 44, 44, 772, 406, 46, 772, - 772, 50, 409, 44, 44, 44, 772, 772, 46, 50, - 772, 44, 44, 44, 772, 408, 46, 772, 772, 50, - 772, 407, 44, 44, 44, 50, 772, 46, 772, 44, - 44, 44, 772, 772, 46, 50, 44, 44, 44, 772, - 772, 46, 772, 50, 772, 772, 410, 44, 44, 44, - 412, 772, 46, 411, 50, 772, 772, 44, 44, 44, - 413, 50, 46, 772, 44, 44, 44, 772, 50, 46, - - 772, 44, 44, 44, 414, 415, 46, 772, 772, 50, - 44, 44, 44, 772, 772, 46, 44, 44, 44, 50, - 772, 46, 772, 416, 772, 417, 50, 44, 44, 44, - 772, 772, 46, 50, 772, 44, 44, 44, 772, 772, - 46, 419, 50, 772, 418, 420, 772, 772, 50, 44, - 44, 44, 772, 772, 46, 772, 44, 44, 44, 50, - 772, 46, 772, 772, 772, 422, 421, 50, 44, 44, - 44, 772, 772, 46, 772, 772, 772, 44, 44, 44, - 772, 50, 428, 772, 44, 44, 44, 423, 50, 46, - 44, 44, 44, 772, 427, 46, 44, 44, 44, 772, - - 50, 46, 772, 44, 44, 44, 424, 425, 46, 50, - 772, 429, 44, 44, 44, 772, 50, 46, 44, 44, - 44, 426, 50, 46, 44, 44, 44, 772, 50, 435, - 772, 772, 772, 772, 436, 50, 772, 772, 44, 44, - 44, 772, 430, 46, 50, 772, 431, 772, 432, 772, - 50, 772, 44, 44, 44, 772, 50, 46, 772, 772, - 44, 44, 44, 437, 433, 46, 772, 772, 434, 772, - 50, 44, 44, 44, 772, 438, 46, 44, 44, 44, - 772, 440, 46, 772, 50, 772, 772, 441, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 439, 772, 46, - - 44, 44, 44, 50, 772, 46, 772, 772, 772, 50, - 445, 442, 44, 44, 44, 772, 772, 46, 772, 772, - 50, 772, 772, 44, 44, 44, 50, 772, 46, 444, - 772, 772, 50, 447, 44, 44, 44, 772, 772, 448, - 443, 44, 44, 44, 50, 772, 46, 772, 772, 449, - 772, 44, 44, 44, 772, 50, 46, 44, 44, 44, - 772, 772, 452, 772, 446, 772, 50, 44, 44, 44, - 772, 772, 46, 50, 44, 44, 44, 772, 772, 46, - 44, 44, 44, 50, 454, 46, 450, 772, 772, 50, - 44, 44, 44, 772, 772, 46, 44, 44, 44, 50, - - 772, 46, 451, 772, 453, 772, 50, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 457, 46, - 772, 772, 50, 772, 772, 772, 455, 772, 50, 772, - 772, 44, 44, 44, 772, 458, 46, 44, 44, 44, - 50, 460, 46, 772, 456, 772, 50, 44, 44, 44, - 772, 772, 46, 44, 44, 44, 772, 772, 46, 772, - 772, 459, 772, 50, 772, 44, 44, 44, 772, 50, - 46, 44, 44, 44, 772, 464, 46, 772, 772, 50, - 772, 772, 461, 772, 772, 50, 772, 44, 44, 44, - 462, 463, 46, 44, 44, 44, 772, 50, 46, 44, - - 44, 44, 772, 50, 46, 44, 44, 44, 772, 772, - 46, 44, 44, 44, 465, 772, 46, 772, 772, 50, - 772, 44, 44, 44, 772, 50, 46, 772, 44, 44, - 44, 50, 467, 46, 468, 772, 772, 50, 466, 772, - 44, 44, 44, 50, 469, 46, 44, 44, 44, 772, - 772, 46, 772, 50, 470, 772, 772, 772, 471, 772, - 50, 44, 44, 44, 772, 772, 475, 472, 44, 44, - 44, 772, 50, 476, 772, 473, 772, 772, 50, 44, - 44, 44, 772, 772, 46, 474, 44, 44, 44, 772, - 772, 46, 772, 50, 44, 44, 44, 772, 772, 46, - - 50, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 772, 50, 46, 772, 44, 44, 44, 772, 50, 46, - 44, 44, 44, 772, 478, 483, 50, 772, 772, 477, - 44, 44, 44, 50, 772, 46, 44, 44, 44, 50, - 480, 46, 479, 772, 772, 481, 50, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 772, 46, - 772, 772, 50, 772, 772, 482, 772, 772, 50, 484, - 772, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 50, 485, 46, 44, 44, 44, 50, 772, 46, 44, - 44, 44, 772, 772, 46, 44, 44, 44, 772, 486, - - 46, 772, 487, 50, 772, 44, 44, 44, 772, 50, - 46, 44, 44, 44, 772, 50, 46, 44, 44, 44, - 772, 50, 46, 772, 772, 772, 772, 50, 488, 489, - 772, 44, 44, 44, 772, 490, 46, 50, 492, 44, - 44, 44, 491, 50, 498, 44, 44, 44, 772, 50, - 46, 772, 772, 772, 494, 772, 772, 493, 772, 44, - 44, 44, 772, 50, 500, 44, 44, 44, 772, 772, - 46, 50, 772, 772, 495, 772, 772, 50, 496, 44, - 44, 44, 772, 497, 46, 44, 44, 44, 499, 772, - 46, 50, 772, 44, 44, 44, 772, 50, 46, 44, - - 44, 44, 772, 772, 46, 772, 772, 44, 44, 44, - 501, 50, 46, 772, 44, 44, 44, 50, 772, 46, - 503, 44, 44, 44, 772, 50, 46, 772, 772, 772, - 502, 50, 504, 772, 772, 772, 44, 44, 44, 50, - 772, 46, 44, 44, 44, 506, 50, 46, 505, 44, - 44, 44, 772, 50, 46, 44, 44, 44, 772, 511, - 46, 772, 44, 44, 44, 507, 772, 46, 50, 772, - 508, 509, 772, 772, 50, 44, 44, 44, 772, 772, - 46, 50, 772, 44, 44, 44, 772, 50, 515, 772, - 44, 44, 44, 510, 50, 46, 772, 772, 513, 772, - - 512, 44, 44, 44, 772, 772, 46, 50, 44, 44, - 44, 772, 772, 46, 514, 50, 44, 44, 44, 772, - 772, 46, 50, 772, 44, 44, 44, 772, 772, 46, - 44, 44, 44, 50, 772, 46, 44, 44, 44, 772, - 50, 46, 516, 772, 44, 44, 44, 518, 50, 46, - 772, 772, 517, 772, 772, 519, 50, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 50, 46, - 772, 772, 44, 44, 44, 520, 50, 46, 44, 44, - 44, 523, 521, 528, 772, 772, 522, 44, 44, 44, - 50, 772, 529, 524, 772, 772, 50, 525, 44, 44, - - 44, 772, 772, 46, 50, 772, 44, 44, 44, 772, - 50, 46, 772, 526, 772, 44, 44, 44, 772, 50, - 532, 772, 527, 44, 44, 44, 772, 772, 46, 772, - 50, 772, 44, 44, 44, 772, 530, 534, 50, 44, - 44, 44, 772, 772, 46, 531, 772, 50, 44, 44, - 44, 772, 772, 46, 772, 50, 772, 44, 44, 44, - 772, 772, 46, 772, 50, 44, 44, 44, 772, 533, - 46, 50, 44, 44, 44, 772, 772, 46, 772, 772, - 50, 772, 535, 772, 772, 44, 44, 44, 772, 50, - 46, 772, 772, 44, 44, 44, 772, 50, 541, 772, - - 772, 772, 772, 772, 50, 536, 537, 44, 44, 44, - 772, 538, 46, 772, 772, 539, 772, 50, 772, 44, - 44, 44, 772, 540, 46, 50, 44, 44, 44, 772, - 772, 46, 44, 44, 44, 772, 772, 46, 772, 50, - 772, 772, 542, 44, 44, 44, 772, 772, 46, 772, - 772, 50, 44, 44, 44, 772, 772, 46, 50, 772, - 44, 44, 44, 772, 50, 46, 544, 545, 44, 44, - 44, 772, 772, 46, 772, 50, 543, 44, 44, 44, - 772, 772, 46, 772, 50, 772, 772, 550, 44, 44, - 44, 546, 50, 551, 44, 44, 44, 772, 772, 46, - - 50, 44, 44, 44, 547, 548, 46, 772, 772, 50, - 772, 44, 44, 44, 772, 772, 46, 772, 549, 772, - 50, 772, 44, 44, 44, 772, 50, 46, 772, 44, - 44, 44, 772, 50, 46, 44, 44, 44, 772, 772, - 46, 772, 552, 50, 44, 44, 44, 772, 772, 46, - 554, 772, 772, 553, 50, 44, 44, 44, 772, 772, - 46, 50, 772, 772, 44, 44, 44, 50, 556, 46, - 772, 555, 44, 44, 44, 772, 50, 46, 44, 44, - 44, 772, 772, 562, 772, 557, 772, 50, 563, 772, - 559, 772, 772, 772, 558, 772, 50, 772, 44, 44, - - 44, 772, 772, 46, 50, 772, 44, 44, 44, 772, - 50, 46, 44, 44, 44, 560, 772, 46, 44, 44, - 44, 772, 561, 46, 772, 772, 44, 44, 44, 564, - 50, 46, 44, 44, 44, 772, 772, 46, 50, 772, - 772, 566, 772, 772, 50, 772, 772, 772, 772, 565, - 50, 44, 44, 44, 772, 772, 46, 568, 50, 772, - 44, 44, 44, 772, 50, 46, 567, 772, 772, 44, - 44, 44, 570, 772, 46, 44, 44, 44, 569, 573, - 46, 772, 772, 50, 44, 44, 44, 772, 772, 46, - 772, 772, 50, 44, 44, 44, 772, 772, 46, 772, - - 772, 50, 772, 571, 44, 44, 44, 50, 772, 46, - 772, 572, 44, 44, 44, 772, 50, 46, 44, 44, - 44, 772, 574, 46, 772, 50, 44, 44, 44, 772, - 575, 46, 44, 44, 44, 772, 50, 581, 772, 576, - 44, 44, 44, 772, 50, 46, 44, 44, 44, 772, - 50, 46, 772, 577, 772, 772, 772, 579, 50, 772, - 772, 578, 772, 772, 50, 44, 44, 44, 772, 772, - 46, 772, 50, 772, 580, 44, 44, 44, 50, 772, - 46, 772, 44, 44, 44, 772, 582, 46, 44, 44, - 44, 772, 772, 587, 772, 583, 772, 50, 44, 44, - - 44, 772, 772, 588, 584, 772, 772, 50, 44, 44, - 44, 772, 772, 46, 50, 772, 44, 44, 44, 586, - 50, 46, 44, 44, 44, 772, 585, 46, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 50, 772, 46, 772, 44, 44, 44, 593, 50, 46, - 44, 44, 44, 772, 50, 46, 589, 44, 44, 44, - 772, 590, 46, 50, 772, 772, 44, 44, 44, 50, - 592, 46, 591, 44, 44, 44, 50, 772, 46, 44, - 44, 44, 50, 772, 599, 595, 44, 44, 44, 50, - 772, 600, 596, 772, 594, 44, 44, 44, 50, 772, - - 46, 772, 44, 44, 44, 50, 772, 602, 772, 598, - 772, 50, 603, 772, 44, 44, 44, 772, 50, 604, - 597, 772, 772, 44, 44, 44, 772, 50, 46, 772, - 44, 44, 44, 772, 50, 46, 772, 772, 601, 44, - 44, 44, 772, 772, 46, 772, 50, 44, 44, 44, - 772, 772, 46, 605, 772, 50, 44, 44, 44, 606, - 772, 610, 50, 772, 772, 607, 772, 44, 44, 44, - 772, 50, 46, 44, 44, 44, 772, 772, 612, 50, - 772, 772, 609, 772, 44, 44, 44, 772, 50, 46, - 608, 44, 44, 44, 772, 772, 614, 772, 772, 50, - - 772, 44, 44, 44, 772, 50, 46, 44, 44, 44, - 611, 772, 46, 44, 44, 44, 50, 772, 46, 44, - 44, 44, 772, 50, 46, 44, 44, 44, 772, 613, - 46, 772, 772, 50, 772, 44, 44, 44, 772, 50, - 46, 772, 772, 772, 615, 50, 616, 772, 44, 44, - 44, 50, 617, 46, 44, 44, 44, 50, 772, 46, - 44, 44, 44, 772, 618, 46, 772, 50, 44, 44, - 44, 772, 772, 46, 772, 619, 44, 44, 44, 772, - 50, 46, 620, 44, 44, 44, 50, 621, 46, 44, - 44, 44, 50, 622, 46, 772, 44, 44, 44, 772, - - 50, 46, 44, 44, 44, 772, 772, 629, 50, 44, - 44, 44, 623, 772, 46, 50, 772, 772, 772, 624, - 625, 50, 627, 772, 772, 626, 772, 772, 50, 772, - 44, 44, 44, 772, 50, 46, 772, 772, 44, 44, - 44, 50, 772, 46, 44, 44, 44, 772, 628, 46, - 772, 772, 630, 44, 44, 44, 772, 772, 46, 772, - 772, 772, 50, 44, 44, 44, 772, 772, 46, 631, - 50, 772, 44, 44, 44, 772, 50, 46, 772, 44, - 44, 44, 772, 772, 46, 50, 772, 772, 634, 632, - 772, 44, 44, 44, 633, 50, 46, 772, 635, 772, - - 44, 44, 44, 772, 50, 46, 772, 44, 44, 44, - 636, 50, 46, 44, 44, 44, 637, 772, 641, 44, - 44, 44, 772, 50, 642, 44, 44, 44, 772, 772, - 46, 772, 50, 772, 772, 639, 44, 44, 44, 50, - 772, 46, 638, 772, 772, 50, 772, 772, 44, 44, - 44, 50, 640, 46, 44, 44, 44, 50, 772, 46, - 44, 44, 44, 772, 772, 46, 772, 772, 50, 44, - 44, 44, 772, 643, 46, 772, 44, 44, 44, 644, - 50, 649, 772, 44, 44, 44, 50, 772, 46, 44, - 44, 44, 50, 650, 652, 772, 772, 44, 44, 44, - - 645, 50, 653, 772, 646, 44, 44, 44, 50, 772, - 46, 647, 648, 772, 772, 50, 772, 44, 44, 44, - 772, 50, 655, 44, 44, 44, 772, 772, 46, 50, - 772, 44, 44, 44, 651, 772, 46, 50, 44, 44, - 44, 772, 772, 46, 772, 44, 44, 44, 654, 50, - 660, 772, 44, 44, 44, 50, 656, 46, 772, 44, - 44, 44, 657, 50, 46, 772, 658, 772, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 50, 772, 772, - 772, 44, 44, 44, 50, 659, 46, 44, 44, 44, - 661, 50, 46, 44, 44, 44, 772, 772, 46, 662, - - 44, 44, 44, 50, 772, 667, 44, 44, 44, 772, - 663, 46, 772, 50, 772, 44, 44, 44, 772, 50, - 669, 44, 44, 44, 664, 50, 46, 772, 44, 44, - 44, 772, 50, 671, 772, 44, 44, 44, 50, 665, - 46, 44, 44, 44, 666, 772, 46, 50, 772, 772, - 772, 772, 772, 50, 668, 772, 44, 44, 44, 772, - 50, 674, 772, 44, 44, 44, 772, 50, 675, 44, - 44, 44, 670, 50, 676, 44, 44, 44, 772, 772, - 46, 673, 672, 772, 44, 44, 44, 772, 50, 46, - 772, 44, 44, 44, 772, 50, 679, 44, 44, 44, - - 772, 50, 46, 44, 44, 44, 772, 50, 46, 772, - 44, 44, 44, 772, 677, 46, 50, 44, 44, 44, - 772, 772, 46, 50, 772, 772, 44, 44, 44, 50, - 678, 684, 44, 44, 44, 50, 772, 685, 772, 44, - 44, 44, 50, 680, 46, 44, 44, 44, 772, 50, - 46, 44, 44, 44, 681, 772, 46, 772, 50, 772, - 772, 772, 682, 772, 50, 44, 44, 44, 772, 683, - 46, 50, 772, 44, 44, 44, 772, 50, 46, 44, - 44, 44, 686, 50, 46, 772, 44, 44, 44, 772, - 688, 46, 772, 772, 772, 772, 687, 50, 44, 44, - - 44, 772, 772, 46, 772, 50, 772, 772, 689, 772, - 772, 50, 690, 772, 44, 44, 44, 772, 50, 46, - 772, 772, 44, 44, 44, 692, 691, 46, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 44, 44, 44, - 772, 772, 46, 44, 44, 44, 50, 772, 698, 693, - 44, 44, 44, 694, 50, 699, 44, 44, 44, 772, - 695, 46, 772, 50, 772, 44, 44, 44, 772, 50, - 46, 772, 44, 44, 44, 50, 697, 46, 772, 696, - 772, 772, 50, 772, 44, 44, 44, 772, 50, 46, - 44, 44, 44, 772, 702, 46, 772, 50, 772, 700, - - 44, 44, 44, 772, 50, 705, 772, 44, 44, 44, - 772, 772, 46, 44, 44, 44, 50, 772, 707, 772, - 772, 701, 50, 703, 44, 44, 44, 772, 772, 708, - 772, 772, 50, 772, 772, 44, 44, 44, 704, 50, - 46, 44, 44, 44, 772, 50, 46, 706, 44, 44, - 44, 710, 772, 46, 772, 772, 50, 44, 44, 44, - 772, 772, 712, 44, 44, 44, 772, 50, 46, 44, - 44, 44, 772, 50, 714, 772, 44, 44, 44, 715, - 50, 46, 772, 44, 44, 44, 711, 709, 717, 50, - 772, 44, 44, 44, 772, 50, 46, 44, 44, 44, - - 772, 50, 46, 772, 44, 44, 44, 772, 50, 46, - 772, 713, 44, 44, 44, 50, 772, 46, 772, 44, - 44, 44, 772, 50, 46, 716, 772, 772, 772, 50, - 44, 44, 44, 772, 772, 46, 50, 772, 718, 772, - 719, 44, 44, 44, 50, 772, 46, 720, 44, 44, - 44, 50, 772, 46, 772, 772, 772, 772, 722, 772, - 721, 772, 50, 772, 44, 44, 44, 772, 772, 46, - 44, 44, 44, 50, 726, 46, 772, 723, 772, 772, - 50, 772, 44, 44, 44, 772, 724, 46, 44, 44, - 44, 772, 772, 46, 772, 772, 50, 772, 725, 44, - - 44, 44, 50, 772, 730, 772, 772, 44, 44, 44, - 772, 727, 46, 772, 50, 772, 772, 731, 772, 772, - 50, 44, 44, 44, 772, 772, 46, 772, 728, 772, - 772, 50, 772, 44, 44, 44, 772, 729, 46, 50, - 44, 44, 44, 772, 772, 46, 44, 44, 44, 772, - 772, 735, 772, 50, 44, 44, 44, 772, 772, 46, - 732, 772, 44, 44, 44, 50, 772, 46, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 50, 46, - 772, 733, 772, 734, 772, 772, 50, 44, 44, 44, - 772, 772, 46, 736, 50, 772, 44, 44, 44, 772, - - 50, 46, 772, 44, 44, 44, 50, 772, 742, 772, - 44, 44, 44, 772, 737, 46, 772, 738, 772, 50, - 772, 739, 772, 772, 740, 44, 44, 44, 50, 772, - 46, 44, 44, 44, 741, 50, 745, 772, 44, 44, - 44, 772, 50, 46, 44, 44, 44, 772, 772, 46, - 44, 44, 44, 743, 772, 46, 772, 50, 772, 772, - 44, 44, 44, 50, 744, 46, 772, 44, 44, 44, - 50, 772, 46, 44, 44, 44, 50, 746, 46, 44, - 44, 44, 50, 747, 46, 44, 44, 44, 772, 772, - 46, 772, 50, 772, 772, 44, 44, 44, 748, 50, - - 46, 44, 44, 44, 772, 50, 46, 44, 44, 44, - 749, 50, 46, 772, 772, 772, 772, 50, 750, 772, - 751, 772, 772, 772, 772, 772, 752, 50, 753, 44, - 44, 44, 772, 50, 46, 44, 44, 44, 772, 50, - 46, 772, 44, 44, 44, 772, 754, 46, 772, 44, - 44, 44, 772, 755, 760, 44, 44, 44, 756, 772, - 46, 50, 772, 44, 44, 44, 772, 50, 46, 772, - 772, 44, 44, 44, 50, 772, 46, 757, 758, 772, - 772, 50, 772, 772, 772, 759, 772, 50, 772, 44, - 44, 44, 772, 761, 764, 50, 44, 44, 44, 772, - - 772, 46, 772, 50, 44, 44, 44, 772, 772, 46, - 762, 763, 44, 44, 44, 772, 772, 767, 44, 44, - 44, 50, 772, 46, 44, 44, 44, 772, 50, 46, - 44, 44, 44, 772, 772, 46, 50, 765, 44, 44, - 44, 772, 772, 771, 50, 772, 772, 766, 772, 772, - 50, 772, 772, 772, 772, 772, 50, 768, 772, 772, - 772, 772, 50, 772, 772, 772, 772, 772, 772, 772, - 50, 772, 772, 772, 769, 772, 772, 772, 772, 772, - 772, 770, 36, 36, 36, 36, 36, 36, 36, 45, - 45, 45, 45, 45, 45, 45, 67, 772, 67, 67, - - 67, 67, 67, 86, 772, 86, 772, 86, 86, 86, - 88, 88, 88, 88, 88, 88, 88, 95, 95, 95, - 95, 95, 95, 95, 138, 772, 138, 138, 138, 138, - 138, 88, 88, 772, 88, 153, 153, 153, 153, 153, - 217, 217, 278, 278, 344, 344, 88, 88, 11, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - - 772, 772, 772, 772, 772, 772, 772, 772, 772 + 72, 72, 72, 68, 141, 71, 71, 71, 146, 140, + 70, 44, 44, 44, 145, 70, 46, 44, 44, 44, + + 43, 139, 46, 44, 44, 44, 70, 94, 46, 87, + 89, 70, 213, 85, 45, 44, 44, 44, 141, 84, + 46, 142, 75, 49, 213, 44, 44, 44, 213, 49, + 46, 77, 77, 77, 45, 49, 140, 90, 45, 91, + 216, 144, 45, 44, 44, 44, 211, 49, 46, 45, + 43, 92, 45, 881, 45, 95, 143, 49, 44, 44, + 44, 280, 881, 46, 212, 96, 44, 44, 44, 211, + 97, 46, 211, 98, 881, 49, 99, 280, 100, 77, + 77, 77, 101, 212, 212, 102, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 214, 103, 46, 49, 44, + + 44, 44, 881, 215, 46, 104, 881, 44, 44, 44, + 881, 106, 46, 280, 105, 44, 44, 44, 49, 881, + 46, 44, 44, 44, 49, 881, 46, 117, 881, 281, + 881, 49, 881, 881, 107, 881, 881, 110, 108, 49, + 881, 109, 118, 881, 881, 881, 111, 49, 112, 881, + 881, 881, 881, 49, 113, 114, 881, 881, 115, 44, + 44, 44, 881, 116, 46, 881, 881, 44, 44, 44, + 119, 881, 46, 881, 120, 44, 44, 44, 881, 881, + 46, 881, 72, 72, 72, 44, 44, 44, 881, 881, + 46, 49, 70, 881, 126, 881, 881, 881, 127, 49, + + 44, 44, 44, 881, 881, 46, 128, 49, 70, 881, + 121, 881, 881, 122, 123, 129, 130, 49, 881, 881, + 131, 881, 881, 124, 132, 125, 881, 881, 133, 44, + 44, 44, 49, 881, 46, 881, 881, 68, 881, 69, + 69, 69, 134, 44, 44, 44, 881, 135, 46, 70, + 68, 136, 71, 71, 71, 881, 72, 72, 72, 881, + 881, 49, 70, 881, 137, 70, 70, 44, 44, 44, + 881, 881, 46, 881, 881, 49, 881, 881, 70, 881, + 148, 881, 70, 44, 44, 44, 881, 881, 46, 44, + 44, 44, 881, 881, 46, 881, 44, 44, 44, 49, + + 881, 46, 881, 881, 44, 44, 44, 881, 149, 46, + 881, 881, 881, 881, 881, 49, 152, 152, 152, 881, + 881, 49, 881, 152, 152, 152, 152, 152, 49, 44, + 44, 44, 154, 881, 46, 881, 49, 881, 152, 152, + 152, 152, 152, 152, 881, 881, 153, 44, 44, 44, + 881, 881, 46, 881, 881, 44, 44, 44, 157, 881, + 46, 49, 881, 881, 44, 44, 44, 155, 881, 46, + 44, 44, 44, 881, 881, 46, 156, 881, 881, 49, + 44, 44, 44, 881, 881, 46, 881, 49, 44, 44, + 44, 159, 160, 46, 881, 881, 49, 881, 881, 158, + + 161, 162, 49, 44, 44, 44, 881, 881, 46, 44, + 44, 44, 49, 163, 46, 881, 881, 164, 881, 881, + 49, 44, 44, 44, 881, 166, 46, 881, 881, 44, + 44, 44, 165, 881, 46, 49, 881, 167, 881, 173, + 881, 49, 44, 44, 44, 881, 881, 174, 881, 881, + 44, 44, 44, 49, 169, 46, 168, 170, 881, 881, + 171, 49, 44, 44, 44, 881, 881, 46, 44, 44, + 44, 881, 177, 46, 49, 44, 44, 44, 172, 881, + 46, 175, 49, 44, 44, 44, 881, 881, 46, 881, + 44, 44, 44, 881, 49, 46, 44, 44, 44, 881, + + 49, 46, 176, 178, 44, 44, 44, 49, 881, 46, + 881, 881, 179, 881, 881, 49, 44, 44, 44, 180, + 881, 46, 49, 881, 44, 44, 44, 881, 49, 46, + 881, 181, 881, 182, 881, 881, 49, 44, 44, 44, + 881, 881, 46, 881, 881, 881, 881, 881, 49, 881, + 184, 881, 183, 44, 44, 44, 49, 881, 46, 44, + 44, 44, 881, 189, 46, 44, 44, 44, 185, 49, + 46, 881, 44, 44, 44, 881, 186, 46, 44, 44, + 44, 881, 881, 46, 881, 49, 881, 187, 188, 881, + 881, 49, 881, 44, 44, 44, 881, 49, 46, 881, + + 44, 44, 44, 881, 49, 46, 881, 881, 881, 190, + 49, 192, 881, 191, 44, 44, 44, 881, 881, 46, + 881, 44, 44, 44, 881, 49, 46, 193, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 202, 881, 46, + 44, 44, 44, 200, 881, 46, 49, 201, 881, 203, + 44, 44, 44, 49, 881, 46, 881, 204, 881, 881, + 49, 881, 881, 194, 195, 196, 49, 881, 881, 44, + 44, 44, 49, 197, 46, 198, 44, 44, 44, 199, + 881, 46, 49, 881, 881, 205, 206, 44, 44, 44, + 881, 881, 46, 44, 44, 44, 881, 881, 46, 207, + + 881, 49, 44, 44, 44, 881, 881, 46, 49, 44, + 44, 44, 881, 881, 46, 209, 881, 881, 881, 49, + 881, 881, 881, 881, 208, 49, 44, 44, 44, 881, + 881, 46, 210, 881, 49, 881, 881, 881, 881, 881, + 881, 49, 219, 220, 221, 221, 221, 881, 223, 881, + 881, 221, 221, 221, 221, 221, 881, 881, 49, 881, + 881, 222, 881, 881, 881, 881, 221, 221, 221, 221, + 221, 221, 44, 44, 44, 881, 881, 46, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 881, 226, 46, 44, 44, 44, 881, + + 881, 46, 881, 881, 49, 881, 881, 44, 44, 44, + 49, 224, 46, 881, 881, 881, 49, 881, 44, 44, + 44, 881, 49, 46, 881, 227, 881, 881, 49, 881, + 225, 44, 44, 44, 881, 881, 46, 881, 881, 49, + 44, 44, 44, 881, 881, 46, 881, 881, 881, 228, + 49, 881, 229, 44, 44, 44, 881, 230, 46, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 881, 881, + 46, 881, 49, 881, 44, 44, 44, 881, 232, 46, + 231, 44, 44, 44, 881, 49, 46, 881, 233, 881, + 881, 49, 881, 881, 881, 881, 881, 49, 234, 44, + + 44, 44, 881, 881, 46, 881, 49, 44, 44, 44, + 235, 881, 46, 49, 44, 44, 44, 236, 881, 46, + 44, 44, 44, 881, 881, 46, 881, 881, 44, 44, + 44, 49, 237, 46, 881, 881, 881, 238, 881, 49, + 44, 44, 44, 881, 881, 46, 49, 881, 881, 881, + 881, 239, 49, 44, 44, 44, 881, 881, 46, 881, + 49, 881, 881, 242, 881, 881, 240, 881, 881, 241, + 881, 881, 49, 44, 44, 44, 881, 881, 46, 44, + 44, 44, 881, 881, 46, 49, 881, 243, 44, 44, + 44, 881, 244, 46, 44, 44, 44, 881, 247, 46, + + 881, 44, 44, 44, 881, 49, 46, 881, 245, 881, + 881, 49, 881, 44, 44, 44, 881, 881, 46, 881, + 49, 881, 881, 250, 881, 881, 49, 44, 44, 44, + 246, 881, 46, 49, 44, 44, 44, 251, 881, 46, + 881, 881, 249, 881, 248, 49, 44, 44, 44, 881, + 881, 46, 44, 44, 44, 881, 881, 46, 881, 49, + 44, 44, 44, 881, 881, 46, 49, 44, 44, 44, + 881, 881, 46, 252, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 49, 46, 881, 881, 881, 253, + 881, 881, 49, 881, 881, 255, 881, 881, 881, 49, + + 881, 254, 44, 44, 44, 881, 49, 46, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 881, 256, 46, + 44, 44, 44, 257, 881, 46, 881, 44, 44, 44, + 881, 258, 46, 881, 49, 881, 44, 44, 44, 881, + 49, 46, 881, 881, 881, 881, 49, 259, 260, 881, + 881, 881, 49, 881, 881, 881, 881, 261, 262, 49, + 44, 44, 44, 881, 881, 46, 881, 881, 49, 881, + 263, 44, 44, 44, 881, 881, 46, 44, 44, 44, + 881, 264, 46, 881, 265, 44, 44, 44, 881, 881, + 46, 881, 49, 881, 881, 266, 44, 44, 44, 881, + + 881, 46, 881, 49, 881, 881, 44, 44, 44, 49, + 267, 46, 881, 44, 44, 44, 268, 49, 46, 44, + 44, 44, 881, 881, 46, 44, 44, 44, 49, 881, + 46, 44, 44, 44, 881, 270, 46, 881, 49, 269, + 881, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 271, 49, 46, 44, 44, 44, 272, 49, 46, 881, + 273, 881, 881, 49, 44, 44, 44, 881, 881, 46, + 275, 881, 881, 49, 881, 881, 881, 274, 881, 49, + 276, 881, 277, 881, 881, 49, 44, 44, 44, 881, + 881, 46, 44, 44, 44, 881, 49, 46, 881, 881, + + 284, 285, 881, 278, 881, 881, 881, 279, 286, 44, + 44, 44, 881, 881, 46, 881, 881, 881, 49, 881, + 44, 44, 44, 881, 49, 46, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 287, 288, 288, 288, 881, + 881, 49, 881, 288, 288, 288, 288, 288, 44, 44, + 44, 881, 49, 291, 881, 881, 881, 881, 288, 288, + 288, 288, 288, 288, 881, 881, 289, 290, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 881, 881, 46, + 49, 44, 44, 44, 881, 881, 294, 44, 44, 44, + 881, 881, 46, 44, 44, 44, 881, 881, 46, 881, + + 49, 881, 44, 44, 44, 881, 49, 46, 881, 881, + 44, 44, 44, 49, 293, 46, 881, 881, 292, 49, + 298, 44, 44, 44, 299, 49, 300, 881, 295, 881, + 44, 44, 44, 881, 49, 46, 296, 881, 881, 44, + 44, 44, 49, 297, 46, 44, 44, 44, 881, 881, + 46, 881, 881, 49, 44, 44, 44, 881, 881, 46, + 881, 881, 49, 44, 44, 44, 881, 881, 46, 881, + 881, 49, 881, 881, 881, 881, 881, 49, 881, 301, + 44, 44, 44, 881, 881, 46, 49, 881, 881, 302, + 306, 44, 44, 44, 881, 49, 46, 881, 303, 881, + + 881, 44, 44, 44, 304, 305, 308, 881, 44, 44, + 44, 309, 49, 46, 881, 881, 881, 44, 44, 44, + 881, 881, 46, 49, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 49, 881, 46, 44, 44, 44, 881, + 49, 46, 307, 881, 881, 881, 881, 312, 310, 49, + 881, 881, 311, 881, 881, 313, 49, 881, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 316, 46, 314, 44, 44, 44, + 315, 881, 46, 44, 44, 44, 881, 881, 46, 881, + 49, 881, 881, 44, 44, 44, 49, 317, 46, 44, + + 44, 44, 49, 881, 323, 319, 881, 318, 881, 49, + 881, 881, 44, 44, 44, 49, 320, 46, 44, 44, + 44, 881, 881, 46, 881, 49, 881, 44, 44, 44, + 881, 49, 46, 881, 321, 44, 44, 44, 881, 881, + 46, 881, 881, 322, 49, 881, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 881, 881, 46, 881, 49, + 324, 44, 44, 44, 881, 881, 330, 49, 881, 881, + 881, 325, 881, 326, 44, 44, 44, 881, 49, 46, + 881, 881, 881, 881, 49, 881, 44, 44, 44, 881, + 327, 46, 881, 49, 328, 329, 44, 44, 44, 881, + + 881, 46, 44, 44, 44, 881, 49, 46, 881, 44, + 44, 44, 331, 332, 46, 881, 881, 333, 49, 881, + 44, 44, 44, 881, 334, 46, 881, 881, 49, 881, + 44, 44, 44, 881, 49, 46, 881, 44, 44, 44, + 881, 49, 46, 881, 335, 44, 44, 44, 881, 336, + 46, 881, 49, 881, 881, 337, 44, 44, 44, 338, + 881, 46, 49, 881, 881, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 881, 881, 46, 49, 881, 44, + 44, 44, 881, 881, 46, 881, 881, 339, 49, 44, + 44, 44, 340, 881, 46, 341, 881, 49, 881, 881, + + 44, 44, 44, 49, 342, 347, 343, 44, 44, 44, + 344, 49, 348, 881, 44, 44, 44, 881, 345, 349, + 881, 49, 44, 44, 44, 881, 881, 46, 346, 44, + 44, 44, 49, 881, 351, 44, 44, 44, 881, 49, + 46, 881, 44, 44, 44, 881, 49, 355, 44, 44, + 44, 881, 881, 356, 49, 44, 44, 44, 881, 881, + 46, 49, 881, 44, 44, 44, 881, 49, 46, 881, + 881, 881, 350, 352, 49, 881, 44, 44, 44, 881, + 49, 359, 881, 44, 44, 44, 881, 49, 46, 881, + 881, 881, 881, 357, 881, 49, 44, 44, 44, 881, + + 881, 46, 881, 881, 881, 881, 881, 881, 49, 881, + 358, 45, 45, 45, 881, 49, 881, 881, 45, 45, + 45, 45, 45, 881, 44, 44, 44, 881, 49, 46, + 881, 361, 881, 45, 45, 45, 45, 45, 45, 44, + 44, 44, 881, 881, 46, 44, 44, 44, 360, 881, + 46, 881, 881, 44, 44, 44, 49, 881, 46, 44, + 44, 44, 881, 881, 46, 881, 881, 881, 44, 44, + 44, 49, 362, 46, 44, 44, 44, 49, 881, 46, + 881, 44, 44, 44, 363, 49, 46, 881, 365, 881, + 881, 49, 364, 881, 44, 44, 44, 366, 881, 46, + + 49, 881, 44, 44, 44, 881, 49, 46, 881, 881, + 44, 44, 44, 49, 881, 46, 367, 44, 44, 44, + 372, 881, 46, 881, 881, 368, 49, 881, 881, 881, + 369, 881, 370, 881, 49, 881, 881, 881, 44, 44, + 44, 371, 49, 46, 881, 44, 44, 44, 374, 49, + 46, 44, 44, 44, 881, 881, 46, 881, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 373, 377, 378, + 49, 44, 44, 44, 881, 881, 46, 49, 881, 44, + 44, 44, 881, 49, 46, 881, 376, 44, 44, 44, + 49, 881, 46, 881, 881, 375, 49, 44, 44, 44, + + 881, 881, 46, 49, 881, 44, 44, 44, 881, 379, + 46, 49, 44, 44, 44, 383, 881, 46, 881, 49, + 881, 881, 380, 44, 44, 44, 881, 381, 46, 49, + 881, 44, 44, 44, 881, 382, 46, 49, 44, 44, + 44, 881, 881, 46, 49, 44, 44, 44, 881, 881, + 46, 44, 44, 44, 881, 49, 46, 881, 881, 384, + 44, 44, 44, 49, 881, 46, 881, 44, 44, 44, + 49, 881, 46, 385, 881, 881, 881, 49, 881, 881, + 881, 386, 881, 49, 388, 881, 387, 881, 44, 44, + 44, 881, 49, 46, 881, 44, 44, 44, 389, 49, + + 46, 881, 44, 44, 44, 881, 391, 46, 44, 44, + 44, 881, 390, 395, 44, 44, 44, 881, 881, 46, + 49, 881, 881, 44, 44, 44, 881, 49, 46, 881, + 44, 44, 44, 881, 49, 46, 392, 44, 44, 44, + 49, 881, 46, 393, 881, 881, 49, 398, 881, 44, + 44, 44, 881, 394, 46, 49, 44, 44, 44, 881, + 881, 46, 49, 881, 396, 44, 44, 44, 881, 49, + 46, 881, 881, 44, 44, 44, 881, 399, 403, 397, + 881, 49, 881, 404, 44, 44, 44, 400, 49, 46, + 44, 44, 44, 881, 405, 46, 881, 49, 881, 401, + + 881, 881, 881, 402, 881, 49, 44, 44, 44, 881, + 881, 46, 881, 881, 881, 881, 49, 881, 44, 44, + 44, 881, 49, 46, 881, 44, 44, 44, 881, 881, + 46, 44, 44, 44, 881, 881, 410, 881, 49, 881, + 44, 44, 44, 881, 406, 46, 44, 44, 44, 881, + 49, 46, 881, 44, 44, 44, 407, 49, 46, 881, + 881, 408, 881, 49, 44, 44, 44, 881, 881, 46, + 881, 881, 49, 881, 413, 881, 881, 409, 49, 44, + 44, 44, 881, 881, 46, 49, 881, 881, 881, 44, + 44, 44, 411, 412, 46, 881, 49, 881, 881, 417, + + 415, 44, 44, 44, 881, 881, 46, 44, 44, 44, + 881, 49, 46, 44, 44, 44, 881, 881, 46, 881, + 416, 49, 44, 44, 44, 881, 881, 46, 881, 881, + 44, 44, 44, 49, 881, 46, 44, 44, 44, 49, + 881, 46, 881, 881, 881, 49, 418, 881, 44, 44, + 44, 881, 420, 46, 49, 881, 881, 419, 881, 881, + 881, 421, 49, 424, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 423, 46, 44, 44, 44, 881, + 49, 46, 422, 881, 44, 44, 44, 881, 881, 46, + 881, 881, 44, 44, 44, 881, 49, 46, 44, 44, + + 44, 881, 49, 46, 44, 44, 44, 881, 49, 46, + 881, 881, 881, 881, 881, 427, 49, 425, 881, 881, + 426, 881, 428, 881, 49, 881, 44, 44, 44, 881, + 49, 46, 881, 881, 881, 881, 49, 430, 44, 44, + 44, 881, 429, 46, 881, 44, 44, 44, 881, 431, + 46, 881, 881, 881, 44, 44, 44, 881, 49, 46, + 881, 44, 44, 44, 881, 432, 46, 44, 44, 44, + 49, 881, 46, 44, 44, 44, 881, 49, 46, 881, + 44, 44, 44, 434, 433, 46, 49, 44, 44, 44, + 881, 881, 46, 49, 881, 44, 44, 44, 881, 49, + + 46, 436, 437, 881, 435, 49, 44, 44, 44, 881, + 881, 46, 49, 881, 881, 44, 44, 44, 439, 49, + 46, 881, 881, 438, 44, 44, 44, 49, 881, 46, + 44, 44, 44, 881, 881, 46, 881, 881, 49, 440, + 445, 44, 44, 44, 881, 881, 446, 49, 44, 44, + 44, 881, 441, 46, 881, 881, 49, 442, 44, 44, + 44, 444, 49, 46, 44, 44, 44, 881, 443, 46, + 881, 881, 881, 49, 881, 447, 881, 881, 881, 881, + 49, 44, 44, 44, 881, 881, 46, 44, 44, 44, + 49, 881, 46, 44, 44, 44, 49, 881, 453, 881, + + 448, 881, 881, 454, 881, 881, 881, 881, 449, 450, + 44, 44, 44, 49, 881, 46, 44, 44, 44, 49, + 881, 46, 881, 881, 881, 49, 44, 44, 44, 881, + 881, 46, 455, 451, 881, 881, 458, 452, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 456, 49, 46, + 44, 44, 44, 881, 460, 46, 881, 881, 49, 881, + 881, 457, 44, 44, 44, 881, 881, 46, 881, 881, + 49, 881, 44, 44, 44, 881, 49, 46, 44, 44, + 44, 881, 49, 46, 459, 44, 44, 44, 464, 881, + 46, 881, 881, 881, 49, 44, 44, 44, 881, 881, + + 46, 461, 881, 881, 49, 466, 881, 463, 881, 881, + 49, 44, 44, 44, 462, 881, 467, 49, 44, 44, + 44, 881, 881, 46, 881, 881, 468, 49, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 465, 881, 46, + 44, 44, 44, 49, 881, 472, 44, 44, 44, 881, + 49, 46, 881, 881, 44, 44, 44, 469, 881, 46, + 49, 881, 881, 881, 474, 881, 49, 881, 881, 44, + 44, 44, 49, 470, 46, 44, 44, 44, 49, 881, + 46, 881, 881, 473, 881, 471, 49, 44, 44, 44, + 881, 881, 46, 44, 44, 44, 881, 477, 46, 881, + + 881, 49, 881, 44, 44, 44, 881, 49, 46, 881, + 881, 44, 44, 44, 881, 475, 46, 881, 881, 49, + 881, 480, 44, 44, 44, 49, 881, 46, 881, 476, + 881, 881, 478, 881, 881, 49, 44, 44, 44, 881, + 881, 46, 881, 49, 44, 44, 44, 881, 881, 46, + 479, 44, 44, 44, 49, 881, 46, 44, 44, 44, + 881, 484, 46, 881, 881, 881, 881, 481, 49, 44, + 44, 44, 881, 881, 46, 881, 49, 881, 881, 482, + 881, 881, 483, 49, 881, 44, 44, 44, 881, 49, + 46, 881, 44, 44, 44, 881, 485, 46, 44, 44, + + 44, 49, 881, 46, 881, 881, 486, 44, 44, 44, + 881, 881, 46, 44, 44, 44, 881, 49, 46, 881, + 881, 44, 44, 44, 49, 881, 46, 881, 487, 881, + 49, 44, 44, 44, 881, 881, 46, 489, 881, 49, + 881, 881, 490, 488, 881, 49, 44, 44, 44, 881, + 881, 46, 491, 49, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 49, 492, 46, 881, 881, 493, 44, + 44, 44, 881, 881, 497, 44, 44, 44, 49, 881, + 498, 881, 44, 44, 44, 494, 49, 46, 881, 495, + 881, 881, 49, 44, 44, 44, 881, 881, 46, 496, + + 881, 49, 881, 44, 44, 44, 881, 49, 46, 881, + 44, 44, 44, 881, 49, 46, 44, 44, 44, 881, + 881, 46, 44, 44, 44, 49, 881, 46, 881, 44, + 44, 44, 499, 881, 46, 49, 881, 881, 500, 881, + 881, 501, 49, 881, 44, 44, 44, 881, 49, 506, + 881, 44, 44, 44, 49, 503, 46, 881, 502, 881, + 504, 49, 44, 44, 44, 881, 881, 46, 44, 44, + 44, 881, 881, 46, 881, 881, 49, 44, 44, 44, + 505, 881, 46, 49, 44, 44, 44, 881, 881, 46, + 507, 44, 44, 44, 49, 881, 46, 881, 881, 881, + + 49, 44, 44, 44, 881, 881, 46, 508, 881, 49, + 881, 513, 44, 44, 44, 881, 49, 46, 881, 509, + 881, 881, 881, 49, 881, 510, 44, 44, 44, 881, + 881, 46, 881, 49, 44, 44, 44, 881, 881, 46, + 881, 511, 881, 512, 49, 881, 44, 44, 44, 881, + 881, 46, 44, 44, 44, 881, 881, 46, 49, 881, + 44, 44, 44, 881, 514, 46, 49, 44, 44, 44, + 881, 881, 46, 881, 881, 881, 881, 516, 49, 515, + 44, 44, 44, 881, 49, 522, 44, 44, 44, 881, + 881, 46, 49, 881, 881, 518, 881, 881, 517, 49, + + 44, 44, 44, 881, 881, 46, 44, 44, 44, 881, + 881, 525, 49, 881, 520, 881, 881, 519, 49, 521, + 44, 44, 44, 881, 523, 46, 44, 44, 44, 881, + 881, 46, 49, 881, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 524, 881, 46, 44, 44, 44, 881, + 881, 46, 49, 881, 44, 44, 44, 881, 49, 46, + 881, 881, 44, 44, 44, 526, 49, 46, 881, 528, + 881, 881, 49, 881, 881, 881, 881, 527, 49, 529, + 44, 44, 44, 881, 881, 46, 49, 881, 44, 44, + 44, 881, 531, 46, 49, 530, 44, 44, 44, 881, + + 881, 46, 881, 881, 44, 44, 44, 881, 881, 46, + 881, 881, 49, 532, 536, 881, 44, 44, 44, 881, + 49, 46, 881, 534, 881, 44, 44, 44, 49, 533, + 46, 881, 44, 44, 44, 881, 49, 46, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 535, 49, 46, + 44, 44, 44, 881, 881, 542, 881, 49, 44, 44, + 44, 537, 538, 46, 49, 881, 44, 44, 44, 881, + 49, 46, 881, 881, 540, 881, 49, 539, 881, 44, + 44, 44, 49, 541, 46, 881, 881, 44, 44, 44, + 49, 881, 46, 881, 881, 44, 44, 44, 49, 881, + + 46, 44, 44, 44, 881, 881, 46, 44, 44, 44, + 543, 49, 46, 881, 881, 881, 881, 544, 545, 49, + 881, 881, 881, 44, 44, 44, 546, 49, 46, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 881, 49, + 46, 881, 881, 44, 44, 44, 547, 881, 46, 44, + 44, 44, 881, 548, 46, 49, 881, 549, 881, 881, + 550, 49, 881, 881, 551, 881, 881, 49, 881, 881, + 552, 44, 44, 44, 553, 49, 556, 44, 44, 44, + 881, 49, 557, 44, 44, 44, 881, 881, 46, 881, + 881, 881, 554, 44, 44, 44, 881, 881, 46, 555, + + 881, 881, 881, 49, 881, 44, 44, 44, 881, 49, + 560, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 881, 558, 562, 881, 881, 49, 44, 44, 44, 881, + 881, 46, 559, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 881, 881, 46, 561, 49, 44, + 44, 44, 881, 881, 46, 49, 881, 881, 881, 563, + 881, 49, 881, 44, 44, 44, 881, 49, 46, 881, + 881, 881, 881, 49, 881, 564, 881, 44, 44, 44, + 881, 49, 570, 881, 566, 881, 565, 567, 44, 44, + + 44, 881, 568, 46, 881, 49, 881, 44, 44, 44, + 881, 569, 46, 44, 44, 44, 881, 881, 46, 49, + 44, 44, 44, 573, 881, 46, 44, 44, 44, 881, + 49, 46, 881, 571, 881, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 881, 49, 46, 881, 881, 44, + 44, 44, 49, 881, 46, 881, 881, 881, 49, 881, + 574, 575, 881, 881, 572, 881, 881, 49, 881, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 881, 881, + 46, 49, 881, 576, 881, 580, 44, 44, 44, 881, + 881, 581, 881, 577, 578, 44, 44, 44, 881, 881, + + 46, 49, 881, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 881, 46, 44, 44, 44, 49, 579, + 46, 44, 44, 44, 881, 881, 46, 49, 881, 44, + 44, 44, 881, 881, 46, 49, 881, 44, 44, 44, + 881, 49, 46, 582, 44, 44, 44, 49, 584, 46, + 881, 881, 881, 49, 881, 583, 881, 44, 44, 44, + 586, 49, 46, 881, 585, 44, 44, 44, 881, 49, + 46, 881, 588, 881, 587, 881, 49, 44, 44, 44, + 881, 881, 46, 44, 44, 44, 881, 881, 46, 49, + 881, 44, 44, 44, 589, 881, 594, 49, 881, 881, + + 591, 595, 881, 44, 44, 44, 881, 590, 46, 49, + 881, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 881, 881, 46, 49, 44, 44, 44, 881, 592, 46, + 881, 881, 881, 593, 881, 49, 44, 44, 44, 881, + 881, 46, 596, 49, 881, 881, 598, 881, 881, 49, + 44, 44, 44, 881, 597, 46, 49, 44, 44, 44, + 881, 881, 46, 600, 44, 44, 44, 881, 49, 46, + 881, 599, 44, 44, 44, 881, 881, 46, 881, 601, + 881, 881, 49, 44, 44, 44, 881, 881, 46, 49, + 44, 44, 44, 606, 881, 46, 49, 603, 44, 44, + + 44, 881, 602, 46, 49, 881, 44, 44, 44, 881, + 881, 46, 881, 881, 881, 49, 604, 881, 881, 44, + 44, 44, 49, 605, 46, 881, 44, 44, 44, 881, + 49, 46, 881, 881, 44, 44, 44, 607, 49, 46, + 44, 44, 44, 881, 608, 46, 881, 881, 44, 44, + 44, 49, 609, 46, 44, 44, 44, 881, 49, 615, + 881, 881, 610, 44, 44, 44, 49, 881, 46, 44, + 44, 44, 49, 881, 46, 611, 44, 44, 44, 613, + 49, 46, 881, 612, 881, 881, 49, 881, 44, 44, + 44, 881, 881, 46, 881, 49, 614, 44, 44, 44, + + 881, 49, 46, 881, 881, 44, 44, 44, 49, 616, + 46, 44, 44, 44, 881, 881, 622, 881, 617, 881, + 49, 881, 881, 44, 44, 44, 618, 619, 623, 49, + 44, 44, 44, 881, 881, 46, 881, 49, 881, 44, + 44, 44, 621, 49, 46, 44, 44, 44, 620, 881, + 46, 44, 44, 44, 881, 49, 46, 881, 881, 44, + 44, 44, 49, 881, 46, 44, 44, 44, 881, 628, + 46, 49, 881, 881, 44, 44, 44, 49, 624, 46, + 44, 44, 44, 49, 625, 46, 881, 44, 44, 44, + 627, 49, 46, 881, 881, 626, 881, 49, 44, 44, + + 44, 881, 881, 46, 881, 881, 49, 881, 881, 630, + 881, 881, 49, 881, 881, 629, 44, 44, 44, 49, + 881, 46, 631, 632, 44, 44, 44, 881, 881, 46, + 49, 881, 881, 633, 44, 44, 44, 881, 881, 636, + 44, 44, 44, 881, 881, 637, 881, 881, 49, 44, + 44, 44, 881, 881, 46, 881, 49, 44, 44, 44, + 635, 881, 639, 44, 44, 44, 49, 640, 641, 881, + 634, 881, 49, 44, 44, 44, 881, 881, 46, 881, + 881, 49, 44, 44, 44, 881, 881, 46, 881, 49, + 881, 881, 638, 881, 881, 49, 44, 44, 44, 881, + + 881, 46, 642, 881, 881, 49, 44, 44, 44, 643, + 881, 46, 881, 881, 49, 881, 881, 644, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 881, 49, 648, + 44, 44, 44, 881, 881, 46, 881, 881, 49, 44, + 44, 44, 881, 881, 650, 881, 881, 645, 881, 881, + 49, 881, 646, 647, 881, 881, 49, 881, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 881, 881, 652, + 881, 49, 881, 649, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 881, 881, 46, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 881, 49, 46, 881, 881, + + 881, 881, 881, 651, 881, 881, 49, 881, 44, 44, + 44, 881, 49, 46, 881, 881, 881, 653, 49, 654, + 44, 44, 44, 881, 49, 46, 881, 881, 44, 44, + 44, 656, 655, 46, 44, 44, 44, 881, 881, 46, + 49, 881, 44, 44, 44, 881, 881, 46, 881, 881, + 881, 881, 49, 657, 44, 44, 44, 881, 881, 46, + 49, 881, 44, 44, 44, 881, 49, 46, 881, 881, + 658, 881, 881, 660, 49, 659, 881, 44, 44, 44, + 881, 661, 46, 44, 44, 44, 49, 881, 46, 881, + 44, 44, 44, 662, 49, 46, 881, 44, 44, 44, + + 881, 881, 46, 44, 44, 44, 881, 881, 46, 49, + 881, 44, 44, 44, 663, 49, 669, 881, 44, 44, + 44, 881, 49, 46, 881, 881, 666, 665, 664, 49, + 881, 881, 44, 44, 44, 49, 667, 46, 881, 881, + 44, 44, 44, 49, 881, 46, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 668, 881, 46, 44, 44, + 44, 670, 881, 46, 49, 44, 44, 44, 881, 881, + 46, 671, 49, 881, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 49, 46, 881, 881, 881, 673, + 49, 672, 881, 881, 44, 44, 44, 49, 674, 46, + + 676, 881, 44, 44, 44, 881, 49, 46, 675, 677, + 881, 881, 49, 881, 44, 44, 44, 881, 678, 46, + 44, 44, 44, 881, 881, 46, 49, 44, 44, 44, + 881, 679, 683, 881, 49, 44, 44, 44, 881, 881, + 46, 881, 44, 44, 44, 684, 49, 685, 881, 681, + 881, 881, 49, 680, 881, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 881, 682, 46, 49, 44, 44, + 44, 881, 881, 46, 49, 44, 44, 44, 881, 881, + 46, 881, 881, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 49, 46, 881, 44, 44, 44, 881, + + 49, 46, 881, 686, 687, 881, 881, 49, 881, 44, + 44, 44, 881, 881, 693, 49, 881, 881, 881, 881, + 688, 49, 690, 881, 881, 689, 881, 881, 49, 881, + 881, 881, 44, 44, 44, 881, 881, 46, 881, 692, + 691, 49, 694, 44, 44, 44, 881, 881, 696, 44, + 44, 44, 881, 881, 697, 44, 44, 44, 881, 881, + 46, 44, 44, 44, 49, 881, 46, 44, 44, 44, + 881, 881, 700, 881, 881, 49, 881, 44, 44, 44, + 881, 49, 46, 695, 881, 881, 881, 49, 881, 44, + 44, 44, 698, 49, 46, 44, 44, 44, 881, 49, + + 46, 881, 881, 881, 699, 881, 701, 881, 881, 49, + 881, 881, 44, 44, 44, 881, 702, 705, 44, 44, + 44, 49, 881, 46, 703, 881, 881, 49, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 881, 881, 46, + 881, 881, 704, 881, 49, 881, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 881, 706, 46, 881, 881, + 49, 881, 44, 44, 44, 881, 49, 46, 707, 44, + 44, 44, 881, 708, 46, 44, 44, 44, 49, 881, + 46, 44, 44, 44, 49, 881, 714, 881, 44, 44, + 44, 710, 709, 46, 49, 44, 44, 44, 881, 881, + + 716, 49, 881, 881, 881, 711, 881, 49, 881, 44, + 44, 44, 881, 49, 46, 881, 881, 44, 44, 44, + 49, 712, 718, 44, 44, 44, 713, 49, 46, 44, + 44, 44, 881, 881, 46, 881, 715, 44, 44, 44, + 881, 49, 46, 881, 881, 881, 44, 44, 44, 49, + 881, 723, 44, 44, 44, 49, 881, 724, 881, 881, + 717, 49, 44, 44, 44, 881, 881, 46, 719, 49, + 881, 881, 881, 881, 881, 720, 721, 722, 49, 881, + 881, 44, 44, 44, 49, 881, 726, 44, 44, 44, + 881, 881, 46, 881, 49, 44, 44, 44, 881, 881, + + 46, 44, 44, 44, 881, 881, 729, 881, 881, 881, + 881, 881, 725, 49, 881, 44, 44, 44, 881, 49, + 46, 881, 881, 44, 44, 44, 727, 49, 46, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 881, 881, + 46, 728, 881, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 881, 735, 49, 881, 44, 44, 44, + 730, 49, 736, 881, 881, 881, 881, 49, 881, 731, + 881, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 732, 49, 46, 44, 44, 44, 881, 733, 46, 49, + 881, 44, 44, 44, 881, 734, 46, 881, 881, 44, + + 44, 44, 881, 49, 46, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 737, 49, 46, 881, 881, 44, + 44, 44, 739, 49, 46, 44, 44, 44, 738, 740, + 46, 49, 881, 881, 881, 881, 881, 49, 741, 44, + 44, 44, 881, 49, 46, 881, 881, 881, 742, 881, + 743, 49, 881, 44, 44, 44, 881, 49, 46, 881, + 44, 44, 44, 881, 745, 46, 744, 44, 44, 44, + 881, 49, 46, 881, 881, 44, 44, 44, 746, 881, + 46, 44, 44, 44, 881, 49, 46, 881, 44, 44, + 44, 750, 49, 46, 881, 881, 747, 881, 881, 49, + + 44, 44, 44, 881, 881, 46, 749, 49, 881, 881, + 881, 748, 881, 49, 44, 44, 44, 881, 881, 46, + 49, 881, 881, 752, 881, 881, 751, 881, 44, 44, + 44, 881, 49, 755, 881, 753, 44, 44, 44, 881, + 881, 756, 44, 44, 44, 881, 49, 46, 881, 44, + 44, 44, 881, 754, 46, 881, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 881, 759, 46, 49, 881, + 44, 44, 44, 881, 49, 46, 881, 44, 44, 44, + 761, 49, 46, 881, 881, 757, 881, 881, 49, 881, + 44, 44, 44, 881, 49, 46, 881, 881, 881, 881, + + 760, 881, 49, 881, 881, 758, 881, 881, 881, 49, + 44, 44, 44, 881, 881, 764, 44, 44, 44, 881, + 881, 46, 49, 881, 881, 44, 44, 44, 762, 881, + 766, 44, 44, 44, 881, 881, 46, 881, 763, 44, + 44, 44, 49, 881, 46, 44, 44, 44, 49, 881, + 769, 881, 881, 881, 881, 881, 765, 49, 881, 44, + 44, 44, 881, 49, 46, 881, 767, 44, 44, 44, + 881, 49, 46, 44, 44, 44, 881, 49, 46, 881, + 881, 881, 881, 772, 881, 768, 881, 44, 44, 44, + 881, 49, 46, 881, 881, 44, 44, 44, 881, 49, + + 46, 44, 44, 44, 881, 49, 775, 44, 44, 44, + 881, 770, 46, 44, 44, 44, 881, 881, 777, 49, + 881, 881, 771, 778, 881, 773, 881, 49, 881, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 774, 49, + 46, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 881, 780, 782, 881, 881, 776, 881, 44, 44, 44, + 881, 49, 46, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 49, 46, 44, 44, 44, 779, 49, + 46, 44, 44, 44, 881, 881, 46, 781, 881, 49, + 881, 44, 44, 44, 881, 49, 46, 44, 44, 44, + + 881, 49, 46, 881, 783, 881, 784, 49, 881, 881, + 44, 44, 44, 49, 786, 46, 44, 44, 44, 881, + 785, 46, 881, 49, 787, 881, 788, 881, 881, 49, + 881, 44, 44, 44, 881, 881, 46, 881, 44, 44, + 44, 881, 49, 46, 881, 789, 881, 881, 49, 790, + 44, 44, 44, 881, 881, 46, 44, 44, 44, 881, + 881, 46, 791, 49, 44, 44, 44, 881, 881, 46, + 49, 44, 44, 44, 881, 881, 46, 881, 792, 881, + 881, 797, 49, 793, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 881, 46, 49, 881, 881, 881, + + 794, 881, 881, 49, 44, 44, 44, 796, 795, 800, + 44, 44, 44, 881, 881, 46, 49, 881, 44, 44, + 44, 881, 49, 46, 881, 798, 44, 44, 44, 799, + 881, 46, 44, 44, 44, 881, 49, 804, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 881, 805, 46, + 49, 881, 881, 881, 806, 881, 801, 881, 49, 881, + 881, 802, 881, 881, 49, 881, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 803, 49, 46, 44, 44, + 44, 881, 881, 46, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 881, 881, 46, 881, 881, 49, 881, + + 881, 881, 881, 881, 49, 807, 44, 44, 44, 881, + 49, 812, 44, 44, 44, 881, 49, 46, 881, 881, + 808, 809, 49, 44, 44, 44, 881, 881, 46, 881, + 810, 881, 881, 811, 44, 44, 44, 881, 49, 46, + 44, 44, 44, 881, 49, 46, 44, 44, 44, 881, + 881, 46, 44, 44, 44, 49, 881, 46, 881, 44, + 44, 44, 814, 813, 46, 881, 49, 881, 44, 44, + 44, 881, 49, 46, 881, 44, 44, 44, 49, 881, + 46, 881, 881, 817, 49, 881, 815, 881, 44, 44, + 44, 49, 816, 46, 44, 44, 44, 881, 881, 46, + + 49, 818, 881, 881, 881, 820, 819, 49, 44, 44, + 44, 881, 881, 824, 44, 44, 44, 881, 881, 825, + 49, 821, 881, 44, 44, 44, 49, 822, 46, 44, + 44, 44, 823, 826, 46, 881, 44, 44, 44, 881, + 49, 46, 44, 44, 44, 881, 49, 46, 44, 44, + 44, 881, 881, 830, 881, 49, 881, 44, 44, 44, + 881, 49, 46, 881, 881, 44, 44, 44, 49, 881, + 46, 881, 827, 881, 49, 881, 881, 44, 44, 44, + 49, 829, 833, 44, 44, 44, 881, 881, 46, 49, + 881, 881, 881, 828, 881, 881, 831, 49, 44, 44, + + 44, 881, 881, 46, 832, 44, 44, 44, 881, 49, + 46, 44, 44, 44, 881, 49, 46, 881, 881, 44, + 44, 44, 834, 881, 46, 881, 44, 44, 44, 881, + 49, 46, 881, 44, 44, 44, 881, 49, 46, 44, + 44, 44, 881, 49, 46, 881, 881, 881, 837, 881, + 835, 49, 881, 836, 881, 44, 44, 44, 49, 881, + 46, 44, 44, 44, 881, 49, 46, 881, 881, 838, + 881, 49, 881, 44, 44, 44, 881, 839, 46, 44, + 44, 44, 881, 840, 46, 881, 841, 49, 881, 44, + 44, 44, 881, 49, 46, 881, 881, 881, 842, 44, + + 44, 44, 881, 881, 46, 49, 881, 881, 843, 847, + 881, 49, 44, 44, 44, 881, 881, 46, 844, 881, + 881, 49, 845, 44, 44, 44, 881, 881, 46, 881, + 881, 49, 881, 44, 44, 44, 881, 881, 46, 881, + 846, 44, 44, 44, 49, 881, 46, 44, 44, 44, + 881, 881, 46, 881, 881, 49, 44, 44, 44, 881, + 881, 46, 881, 881, 848, 49, 44, 44, 44, 849, + 881, 46, 881, 49, 881, 881, 44, 44, 44, 49, + 851, 46, 881, 881, 850, 44, 44, 44, 49, 881, + 46, 44, 44, 44, 881, 852, 857, 881, 49, 853, + + 44, 44, 44, 881, 881, 46, 881, 881, 49, 44, + 44, 44, 881, 881, 46, 881, 881, 49, 881, 855, + 881, 854, 881, 49, 856, 44, 44, 44, 881, 881, + 46, 881, 49, 44, 44, 44, 881, 881, 46, 881, + 881, 49, 881, 44, 44, 44, 881, 859, 46, 881, + 881, 858, 881, 44, 44, 44, 881, 49, 863, 44, + 44, 44, 881, 881, 864, 49, 881, 881, 861, 44, + 44, 44, 860, 881, 865, 49, 44, 44, 44, 881, + 881, 46, 881, 862, 881, 49, 881, 44, 44, 44, + 881, 49, 46, 44, 44, 44, 881, 881, 46, 881, + + 881, 49, 44, 44, 44, 881, 881, 869, 49, 44, + 44, 44, 881, 881, 46, 881, 881, 866, 881, 49, + 881, 44, 44, 44, 881, 49, 46, 44, 44, 44, + 867, 881, 46, 881, 49, 881, 868, 872, 44, 44, + 44, 49, 881, 46, 44, 44, 44, 881, 881, 46, + 44, 44, 44, 49, 881, 46, 881, 881, 881, 49, + 871, 870, 44, 44, 44, 881, 881, 46, 881, 881, + 49, 881, 44, 44, 44, 881, 49, 877, 44, 44, + 44, 881, 49, 46, 44, 44, 44, 881, 873, 46, + 44, 44, 44, 881, 49, 880, 874, 881, 881, 881, + + 881, 875, 881, 881, 49, 876, 881, 881, 881, 881, + 49, 881, 881, 881, 881, 881, 49, 881, 881, 881, + 881, 881, 49, 879, 878, 36, 36, 36, 36, 36, + 36, 36, 45, 45, 45, 45, 45, 45, 45, 67, + 881, 67, 67, 67, 67, 67, 86, 881, 86, 881, + 86, 86, 86, 88, 88, 88, 88, 88, 88, 88, + 93, 93, 93, 93, 93, 93, 93, 138, 881, 138, + 138, 138, 138, 138, 88, 88, 881, 88, 150, 150, + 150, 150, 150, 218, 218, 283, 283, 354, 354, 88, + 88, 11, 881, 881, 881, 881, 881, 881, 881, 881, + + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881 } ; -static yyconst flex_int16_t yy_chk[5610] = +static yyconst flex_int16_t yy_chk[6653] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1419,614 +1572,729 @@ static yyconst flex_int16_t yy_chk[5610] = 3, 3, 3, 4, 4, 4, 3, 27, 7, 4, 5, 5, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 13, 10, 13, 21, 5, 5, - 27, 5, 21, 343, 5, 25, 5, 25, 5, 26, - - 25, 25, 25, 277, 5, 5, 7, 9, 5, 10, - 8, 216, 5, 28, 26, 32, 17, 5, 17, 17, - 17, 153, 31, 5, 5, 15, 15, 15, 17, 33, - 15, 19, 80, 19, 19, 19, 28, 31, 32, 20, - 20, 20, 44, 19, 17, 145, 78, 15, 15, 20, - 15, 37, 33, 37, 42, 80, 42, 15, 95, 19, - 15, 79, 15, 15, 15, 20, 78, 15, 15, 44, + 27, 5, 21, 353, 5, 25, 5, 25, 5, 26, + + 25, 25, 25, 282, 5, 5, 7, 9, 5, 10, + 8, 217, 5, 28, 26, 32, 17, 5, 17, 17, + 17, 44, 31, 5, 5, 15, 15, 15, 17, 33, + 15, 19, 150, 19, 19, 19, 28, 31, 32, 37, + 42, 37, 42, 19, 17, 145, 78, 15, 44, 70, + 15, 70, 33, 93, 70, 70, 70, 15, 90, 19, + 15, 80, 15, 15, 15, 15, 78, 15, 15, 79, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 22, 79, 22, 22, 22, 45, 45, 45, 88, 83, - 45, 141, 22, 47, 47, 47, 81, 90, 47, 82, - - 48, 48, 48, 86, 85, 48, 43, 141, 22, 49, - 49, 49, 83, 50, 49, 88, 81, 45, 41, 82, - 50, 39, 51, 51, 51, 47, 48, 51, 76, 76, - 76, 38, 48, 144, 49, 47, 139, 52, 52, 52, - 50, 49, 52, 24, 50, 53, 53, 53, 50, 144, - 53, 55, 55, 55, 51, 50, 55, 49, 50, 139, - 50, 50, 54, 54, 54, 14, 140, 54, 11, 52, - 143, 0, 51, 56, 56, 56, 0, 53, 56, 0, - 53, 142, 52, 55, 53, 52, 140, 53, 52, 0, - 143, 57, 57, 57, 54, 70, 57, 70, 53, 55, - - 70, 70, 70, 55, 142, 56, 55, 0, 0, 54, - 0, 56, 58, 58, 58, 0, 210, 58, 54, 0, - 56, 0, 56, 57, 59, 59, 59, 0, 0, 59, - 57, 57, 210, 0, 57, 60, 60, 60, 0, 57, - 60, 62, 62, 62, 58, 0, 62, 58, 77, 77, - 77, 0, 213, 63, 63, 63, 59, 0, 63, 59, - 0, 64, 64, 64, 0, 0, 64, 60, 213, 68, - 68, 68, 0, 62, 0, 0, 62, 0, 0, 68, - 62, 65, 65, 65, 60, 63, 65, 0, 60, 61, - 61, 61, 63, 64, 61, 68, 0, 72, 72, 72, - - 64, 63, 63, 0, 64, 0, 63, 72, 0, 66, - 66, 66, 0, 65, 66, 0, 0, 0, 64, 0, - 0, 61, 0, 72, 61, 0, 0, 61, 61, 0, - 0, 69, 65, 69, 69, 69, 0, 61, 0, 61, - 0, 66, 0, 69, 66, 71, 0, 71, 71, 71, - 91, 91, 91, 0, 0, 91, 0, 71, 0, 69, - 92, 92, 92, 0, 0, 92, 93, 93, 93, 0, - 0, 93, 0, 71, 94, 94, 94, 0, 0, 94, - 0, 0, 91, 0, 96, 96, 96, 91, 0, 96, - 0, 0, 92, 0, 0, 93, 0, 0, 93, 98, - - 98, 98, 0, 0, 98, 0, 94, 0, 0, 0, - 0, 0, 0, 0, 0, 94, 96, 97, 97, 97, - 0, 0, 0, 0, 97, 97, 97, 97, 97, 0, - 0, 98, 99, 99, 99, 0, 0, 99, 0, 97, - 97, 97, 97, 97, 97, 100, 100, 100, 0, 98, - 100, 0, 101, 101, 101, 0, 0, 101, 102, 102, - 102, 0, 0, 102, 99, 0, 103, 103, 103, 0, - 0, 103, 0, 0, 0, 99, 0, 100, 0, 0, - 104, 104, 104, 100, 101, 104, 105, 105, 105, 0, - 102, 105, 100, 0, 106, 106, 106, 0, 103, 106, - - 0, 0, 103, 103, 0, 0, 101, 0, 0, 0, - 102, 103, 104, 0, 0, 0, 0, 104, 105, 107, - 107, 107, 0, 0, 107, 0, 106, 0, 0, 105, - 0, 106, 108, 108, 108, 0, 0, 108, 109, 109, - 109, 0, 0, 109, 0, 0, 106, 110, 110, 110, - 0, 107, 110, 111, 111, 111, 107, 110, 111, 0, - 0, 112, 112, 112, 108, 0, 112, 0, 107, 0, - 109, 113, 113, 113, 0, 0, 113, 0, 0, 110, - 108, 113, 0, 108, 0, 111, 114, 114, 114, 0, - 0, 114, 111, 112, 0, 109, 115, 115, 115, 0, - - 0, 115, 0, 113, 116, 116, 116, 0, 0, 116, - 117, 117, 117, 112, 0, 117, 0, 0, 114, 0, - 0, 114, 118, 118, 118, 0, 0, 118, 115, 119, - 119, 119, 0, 115, 119, 0, 116, 0, 0, 0, - 116, 0, 117, 0, 120, 120, 120, 0, 0, 120, - 0, 117, 0, 0, 118, 121, 121, 121, 0, 118, - 121, 119, 122, 122, 122, 0, 0, 122, 123, 123, - 123, 0, 0, 123, 0, 119, 120, 0, 123, 124, - 124, 124, 0, 0, 124, 0, 0, 121, 125, 125, - 125, 0, 0, 125, 122, 0, 120, 0, 0, 0, - - 123, 126, 126, 126, 0, 0, 126, 121, 0, 0, - 0, 124, 122, 122, 127, 127, 127, 0, 0, 127, - 125, 129, 129, 129, 0, 0, 129, 0, 0, 124, - 130, 130, 130, 126, 0, 130, 125, 0, 0, 0, - 126, 0, 131, 131, 131, 0, 127, 131, 0, 132, - 132, 132, 0, 129, 132, 133, 133, 133, 0, 0, - 133, 0, 130, 127, 128, 128, 128, 130, 0, 128, - 0, 129, 0, 0, 131, 129, 0, 131, 134, 134, - 134, 132, 0, 134, 0, 132, 0, 133, 135, 135, - 135, 0, 0, 135, 0, 0, 128, 0, 0, 128, - - 128, 128, 136, 136, 136, 0, 133, 136, 0, 128, - 134, 128, 137, 137, 137, 128, 0, 137, 0, 0, - 135, 148, 148, 148, 134, 0, 148, 151, 151, 151, - 0, 0, 151, 0, 136, 0, 0, 135, 0, 0, - 0, 136, 0, 0, 137, 152, 152, 152, 0, 0, - 152, 0, 0, 148, 0, 0, 0, 137, 0, 151, - 0, 157, 157, 157, 0, 0, 157, 156, 156, 156, - 148, 0, 156, 0, 159, 159, 159, 152, 0, 159, - 0, 0, 0, 0, 0, 0, 152, 155, 155, 155, - 0, 0, 0, 157, 155, 155, 155, 155, 155, 156, - - 157, 0, 156, 158, 158, 158, 159, 0, 158, 155, - 155, 155, 155, 155, 155, 160, 160, 160, 0, 0, - 160, 0, 161, 161, 161, 160, 159, 161, 162, 162, - 162, 0, 0, 162, 0, 158, 0, 0, 163, 163, - 163, 0, 158, 163, 0, 0, 0, 160, 164, 164, - 164, 0, 0, 164, 161, 0, 0, 161, 0, 0, - 162, 165, 165, 165, 0, 0, 165, 166, 166, 166, - 163, 0, 166, 0, 167, 167, 167, 0, 0, 167, - 164, 162, 0, 163, 168, 168, 168, 164, 0, 168, - 169, 169, 169, 165, 0, 169, 170, 170, 170, 166, - - 0, 170, 171, 171, 171, 166, 167, 171, 0, 167, - 165, 0, 172, 172, 172, 0, 168, 172, 0, 173, - 173, 173, 169, 168, 173, 174, 174, 174, 170, 0, - 174, 176, 176, 176, 171, 169, 176, 0, 0, 170, - 177, 177, 177, 0, 172, 177, 171, 0, 178, 178, - 178, 173, 0, 178, 179, 179, 179, 174, 0, 179, - 174, 0, 0, 176, 172, 180, 180, 180, 173, 0, - 180, 0, 177, 0, 0, 180, 0, 0, 176, 177, - 178, 0, 0, 178, 0, 0, 179, 181, 181, 181, - 0, 0, 181, 182, 182, 182, 0, 180, 182, 183, - - 183, 183, 0, 0, 183, 179, 184, 184, 184, 183, - 0, 184, 185, 185, 185, 0, 0, 185, 0, 181, - 0, 186, 186, 186, 0, 182, 186, 187, 187, 187, - 0, 183, 187, 0, 182, 0, 0, 181, 184, 0, - 0, 188, 188, 188, 185, 184, 188, 189, 189, 189, - 0, 0, 189, 186, 0, 185, 190, 190, 190, 187, - 0, 190, 187, 191, 191, 191, 0, 0, 191, 0, - 186, 0, 0, 188, 0, 0, 0, 0, 0, 189, - 192, 192, 192, 0, 0, 192, 0, 0, 190, 193, - 193, 193, 188, 0, 193, 191, 189, 194, 194, 194, - - 0, 0, 194, 0, 195, 195, 195, 190, 191, 195, - 0, 0, 192, 196, 196, 196, 0, 0, 196, 0, - 192, 193, 197, 197, 197, 0, 0, 197, 0, 194, - 0, 0, 193, 0, 0, 194, 195, 198, 198, 198, - 0, 0, 198, 0, 0, 196, 0, 195, 199, 199, - 199, 0, 0, 199, 197, 0, 0, 197, 200, 200, - 200, 196, 0, 200, 0, 201, 201, 201, 0, 198, - 201, 0, 0, 202, 202, 202, 198, 0, 202, 0, - 199, 203, 203, 203, 0, 0, 203, 199, 0, 0, - 200, 204, 204, 204, 0, 0, 204, 201, 205, 205, - - 205, 0, 0, 205, 201, 202, 0, 0, 0, 206, - 206, 206, 200, 203, 206, 0, 0, 202, 203, 207, - 207, 207, 0, 204, 207, 0, 0, 208, 208, 208, - 205, 0, 208, 0, 0, 209, 209, 209, 204, 0, - 209, 206, 218, 218, 218, 0, 0, 218, 206, 0, - 205, 207, 0, 0, 0, 0, 218, 218, 207, 208, - 220, 220, 220, 0, 218, 220, 0, 209, 222, 222, - 222, 0, 0, 222, 218, 0, 0, 208, 209, 0, - 0, 0, 0, 0, 0, 223, 223, 223, 0, 0, - 223, 0, 220, 0, 0, 0, 0, 0, 0, 0, - - 222, 0, 0, 220, 221, 221, 221, 0, 0, 0, - 0, 221, 221, 221, 221, 221, 0, 223, 224, 224, - 224, 0, 0, 224, 0, 222, 221, 221, 221, 221, - 221, 221, 223, 225, 225, 225, 0, 0, 225, 226, - 226, 226, 0, 0, 226, 0, 227, 227, 227, 0, - 224, 227, 228, 228, 228, 0, 0, 228, 229, 229, - 229, 0, 0, 229, 0, 225, 0, 230, 230, 230, - 0, 226, 230, 0, 0, 231, 231, 231, 227, 226, - 231, 0, 0, 225, 228, 231, 232, 232, 232, 231, - 229, 232, 0, 228, 0, 233, 233, 233, 0, 230, - - 233, 229, 0, 0, 234, 234, 234, 231, 230, 234, - 235, 235, 235, 0, 0, 235, 0, 0, 232, 236, - 236, 236, 0, 0, 236, 0, 0, 233, 237, 237, - 237, 0, 0, 237, 0, 0, 234, 0, 238, 238, - 238, 0, 235, 238, 233, 239, 239, 239, 238, 0, - 239, 236, 0, 0, 234, 0, 240, 240, 240, 0, - 237, 240, 0, 235, 0, 0, 241, 241, 241, 236, - 238, 241, 0, 242, 242, 242, 0, 239, 242, 237, - 0, 243, 243, 243, 239, 238, 243, 0, 240, 238, - 244, 244, 244, 0, 240, 244, 0, 0, 241, 245, - - 245, 245, 0, 0, 245, 242, 246, 246, 246, 0, - 0, 246, 0, 243, 0, 247, 247, 247, 241, 243, - 247, 0, 244, 242, 0, 248, 248, 248, 0, 244, - 248, 245, 249, 249, 249, 0, 0, 249, 246, 0, - 0, 246, 245, 250, 250, 250, 0, 247, 250, 0, - 251, 251, 251, 0, 247, 251, 0, 248, 252, 252, - 252, 0, 0, 252, 249, 253, 253, 253, 0, 0, - 253, 0, 0, 0, 0, 250, 248, 0, 254, 254, - 254, 0, 251, 254, 255, 255, 255, 0, 0, 255, - 252, 250, 0, 256, 256, 256, 0, 253, 256, 0, - - 257, 257, 257, 251, 252, 257, 259, 259, 259, 0, - 254, 259, 0, 258, 258, 258, 255, 0, 258, 0, - 253, 0, 0, 0, 0, 256, 254, 255, 260, 260, - 260, 0, 257, 260, 0, 261, 261, 261, 259, 257, - 261, 0, 0, 257, 256, 258, 0, 262, 262, 262, - 0, 258, 262, 0, 259, 0, 263, 263, 263, 0, - 260, 263, 0, 264, 264, 264, 0, 261, 264, 265, - 265, 265, 0, 0, 265, 260, 0, 0, 0, 262, - 0, 0, 266, 266, 266, 261, 0, 266, 263, 267, - 267, 267, 0, 0, 267, 264, 0, 268, 268, 268, - - 0, 265, 268, 0, 262, 269, 269, 269, 265, 0, - 269, 263, 0, 264, 266, 270, 270, 270, 0, 0, - 270, 267, 271, 271, 271, 0, 0, 271, 267, 268, - 0, 0, 266, 272, 272, 272, 268, 269, 272, 0, - 273, 273, 273, 0, 269, 273, 0, 270, 274, 274, - 274, 0, 0, 274, 271, 279, 279, 279, 0, 0, - 279, 280, 280, 280, 0, 272, 280, 0, 281, 281, - 281, 0, 273, 281, 0, 0, 282, 282, 282, 0, - 274, 282, 0, 284, 284, 284, 274, 279, 284, 285, - 285, 285, 0, 280, 285, 0, 287, 287, 287, 0, - - 281, 287, 0, 0, 0, 0, 281, 0, 282, 0, - 0, 288, 288, 288, 0, 284, 288, 0, 0, 0, - 0, 285, 0, 282, 283, 283, 283, 0, 287, 0, - 0, 283, 283, 283, 283, 283, 0, 290, 290, 290, - 0, 285, 290, 288, 287, 0, 283, 283, 283, 283, - 283, 283, 291, 291, 291, 0, 0, 291, 0, 288, - 292, 292, 292, 0, 0, 292, 293, 293, 293, 290, - 0, 293, 0, 294, 294, 294, 0, 0, 294, 0, - 0, 0, 290, 0, 291, 296, 296, 296, 0, 0, - 296, 0, 292, 0, 0, 292, 0, 0, 293, 291, - - 0, 297, 297, 297, 293, 294, 297, 298, 298, 298, - 0, 0, 298, 0, 299, 299, 299, 296, 0, 299, - 0, 294, 300, 300, 300, 0, 0, 300, 0, 302, - 302, 302, 300, 297, 302, 0, 296, 0, 0, 298, - 0, 0, 303, 303, 303, 298, 299, 303, 0, 0, - 297, 0, 0, 299, 300, 304, 304, 304, 0, 0, - 304, 302, 305, 305, 305, 304, 0, 305, 306, 306, - 306, 0, 0, 306, 303, 0, 0, 303, 0, 302, - 307, 307, 307, 0, 0, 307, 0, 304, 308, 308, - 308, 0, 0, 308, 305, 0, 0, 309, 309, 309, - - 306, 0, 309, 0, 0, 0, 306, 0, 310, 310, - 310, 0, 307, 310, 311, 311, 311, 0, 310, 311, - 308, 0, 0, 307, 0, 312, 312, 312, 308, 309, - 312, 313, 313, 313, 0, 309, 313, 314, 314, 314, - 310, 0, 314, 0, 0, 0, 311, 316, 316, 316, - 0, 0, 316, 0, 317, 317, 317, 312, 0, 317, - 0, 311, 0, 313, 0, 318, 318, 318, 0, 314, - 318, 319, 319, 319, 0, 312, 319, 0, 0, 316, - 0, 313, 320, 320, 320, 314, 317, 320, 321, 321, - 321, 0, 0, 321, 316, 0, 0, 318, 0, 0, - - 323, 323, 323, 319, 318, 323, 317, 0, 324, 324, - 324, 0, 0, 324, 320, 0, 325, 325, 325, 319, - 321, 325, 0, 326, 326, 326, 0, 0, 326, 0, - 320, 0, 323, 326, 0, 0, 327, 327, 327, 321, - 324, 327, 328, 328, 328, 0, 0, 328, 325, 329, - 329, 329, 0, 0, 329, 326, 0, 0, 324, 330, - 330, 330, 0, 0, 330, 331, 331, 331, 327, 330, - 331, 0, 325, 0, 328, 331, 0, 332, 332, 332, - 328, 329, 332, 327, 333, 333, 333, 329, 0, 333, - 0, 330, 0, 334, 334, 334, 0, 331, 334, 0, - - 335, 335, 335, 0, 0, 335, 336, 336, 336, 332, - 0, 336, 337, 337, 337, 0, 333, 337, 342, 342, - 342, 0, 0, 342, 0, 334, 0, 0, 342, 0, - 0, 332, 335, 0, 333, 0, 334, 0, 336, 0, - 347, 347, 347, 0, 337, 347, 350, 350, 350, 0, - 342, 350, 335, 348, 348, 348, 350, 0, 348, 0, - 351, 351, 351, 0, 337, 351, 352, 352, 352, 0, - 0, 352, 347, 0, 353, 353, 353, 0, 350, 353, - 0, 0, 0, 0, 0, 348, 0, 347, 354, 354, - 354, 0, 351, 354, 348, 0, 0, 0, 352, 355, - - 355, 355, 0, 0, 355, 351, 353, 356, 356, 356, - 0, 0, 356, 353, 0, 0, 352, 357, 357, 357, - 354, 0, 357, 358, 358, 358, 0, 354, 358, 0, - 0, 355, 357, 359, 359, 359, 0, 0, 359, 356, - 0, 360, 360, 360, 0, 356, 360, 0, 0, 357, - 0, 355, 361, 361, 361, 358, 0, 361, 0, 362, - 362, 362, 0, 0, 362, 359, 363, 363, 363, 0, - 0, 363, 0, 360, 0, 0, 358, 364, 364, 364, - 360, 0, 364, 359, 361, 0, 0, 365, 365, 365, - 361, 362, 365, 0, 367, 367, 367, 0, 363, 367, - - 0, 368, 368, 368, 362, 363, 368, 0, 0, 364, - 369, 369, 369, 0, 0, 369, 370, 370, 370, 365, - 0, 370, 0, 364, 0, 365, 367, 371, 371, 371, - 0, 0, 371, 368, 0, 372, 372, 372, 0, 0, - 372, 368, 369, 0, 367, 369, 0, 0, 370, 373, - 373, 373, 0, 0, 373, 0, 374, 374, 374, 371, - 0, 374, 0, 0, 0, 371, 370, 372, 375, 375, - 375, 0, 0, 375, 0, 0, 0, 377, 377, 377, - 0, 373, 377, 0, 376, 376, 376, 372, 374, 376, - 378, 378, 378, 0, 376, 378, 379, 379, 379, 0, - - 375, 379, 0, 380, 380, 380, 373, 374, 380, 377, - 0, 377, 381, 381, 381, 0, 376, 381, 383, 383, - 383, 375, 378, 383, 384, 384, 384, 0, 379, 384, - 0, 0, 0, 0, 384, 380, 0, 0, 385, 385, - 385, 0, 378, 385, 381, 0, 379, 0, 380, 0, - 383, 0, 386, 386, 386, 0, 384, 386, 0, 0, - 390, 390, 390, 384, 381, 390, 0, 0, 383, 0, - 385, 387, 387, 387, 0, 385, 387, 388, 388, 388, - 0, 387, 388, 0, 386, 0, 0, 388, 391, 391, - 391, 0, 390, 391, 392, 392, 392, 386, 0, 392, - - 393, 393, 393, 387, 0, 393, 0, 0, 0, 388, - 393, 390, 394, 394, 394, 0, 0, 394, 0, 0, - 391, 0, 0, 395, 395, 395, 392, 0, 395, 392, - 0, 0, 393, 395, 397, 397, 397, 0, 0, 397, - 391, 398, 398, 398, 394, 0, 398, 0, 0, 397, - 0, 400, 400, 400, 0, 395, 400, 401, 401, 401, - 0, 0, 401, 0, 394, 0, 397, 402, 402, 402, - 0, 0, 402, 398, 403, 403, 403, 0, 0, 403, - 404, 404, 404, 400, 403, 404, 398, 0, 0, 401, - 405, 405, 405, 0, 0, 405, 407, 407, 407, 402, - - 0, 407, 400, 0, 402, 0, 403, 0, 406, 406, - 406, 0, 404, 406, 408, 408, 408, 0, 406, 408, - 0, 0, 405, 0, 0, 0, 404, 0, 407, 0, - 0, 409, 409, 409, 0, 407, 409, 410, 410, 410, - 406, 409, 410, 0, 405, 0, 408, 411, 411, 411, - 0, 0, 411, 412, 412, 412, 0, 0, 412, 0, - 0, 408, 0, 409, 0, 413, 413, 413, 0, 410, - 413, 414, 414, 414, 0, 413, 414, 0, 0, 411, - 0, 0, 410, 0, 0, 412, 0, 415, 415, 415, - 411, 412, 415, 416, 416, 416, 0, 413, 416, 417, - - 417, 417, 0, 414, 417, 418, 418, 418, 0, 0, - 418, 419, 419, 419, 414, 0, 419, 0, 0, 415, - 0, 420, 420, 420, 0, 416, 420, 0, 421, 421, - 421, 417, 416, 421, 417, 0, 0, 418, 415, 0, - 422, 422, 422, 419, 418, 422, 423, 423, 423, 0, - 0, 423, 0, 420, 419, 0, 0, 0, 420, 0, - 421, 424, 424, 424, 0, 0, 424, 421, 425, 425, - 425, 0, 422, 425, 0, 422, 0, 0, 423, 426, - 426, 426, 0, 0, 426, 423, 427, 427, 427, 0, - 0, 427, 0, 424, 429, 429, 429, 0, 0, 429, - - 425, 430, 430, 430, 0, 0, 430, 431, 431, 431, - 0, 426, 431, 0, 432, 432, 432, 0, 427, 432, - 433, 433, 433, 0, 427, 433, 429, 0, 0, 426, - 434, 434, 434, 430, 0, 434, 436, 436, 436, 431, - 430, 436, 429, 0, 0, 431, 432, 0, 437, 437, - 437, 0, 433, 437, 438, 438, 438, 0, 0, 438, - 0, 0, 434, 0, 0, 432, 0, 0, 436, 434, - 0, 439, 439, 439, 0, 0, 439, 440, 440, 440, - 437, 436, 440, 441, 441, 441, 438, 0, 441, 442, - 442, 442, 0, 0, 442, 443, 443, 443, 0, 437, - - 443, 0, 438, 439, 0, 444, 444, 444, 0, 440, - 444, 445, 445, 445, 0, 441, 445, 446, 446, 446, - 0, 442, 446, 0, 0, 0, 0, 443, 439, 440, - 0, 447, 447, 447, 0, 441, 447, 444, 443, 449, - 449, 449, 442, 445, 449, 450, 450, 450, 0, 446, - 450, 0, 0, 0, 445, 0, 0, 444, 0, 451, - 451, 451, 0, 447, 451, 453, 453, 453, 0, 0, - 453, 449, 0, 0, 446, 0, 0, 450, 447, 454, - 454, 454, 0, 447, 454, 455, 455, 455, 450, 0, - 455, 451, 0, 456, 456, 456, 0, 453, 456, 457, - - 457, 457, 0, 0, 457, 0, 0, 458, 458, 458, - 453, 454, 458, 0, 459, 459, 459, 455, 0, 459, - 455, 460, 460, 460, 0, 456, 460, 0, 0, 0, - 454, 457, 456, 0, 0, 0, 461, 461, 461, 458, - 0, 461, 462, 462, 462, 458, 459, 462, 457, 463, - 463, 463, 0, 460, 463, 464, 464, 464, 0, 463, - 464, 0, 465, 465, 465, 459, 0, 465, 461, 0, - 460, 461, 0, 0, 462, 466, 466, 466, 0, 0, - 466, 463, 0, 467, 467, 467, 0, 464, 467, 0, - 468, 468, 468, 462, 465, 468, 0, 0, 465, 0, - - 464, 469, 469, 469, 0, 0, 469, 466, 470, 470, - 470, 0, 0, 470, 466, 467, 471, 471, 471, 0, - 0, 471, 468, 0, 472, 472, 472, 0, 0, 472, - 473, 473, 473, 469, 0, 473, 474, 474, 474, 0, - 470, 474, 468, 0, 477, 477, 477, 470, 471, 477, - 0, 0, 469, 0, 0, 471, 472, 0, 478, 478, - 478, 0, 473, 478, 479, 479, 479, 0, 474, 479, - 0, 0, 480, 480, 480, 472, 477, 480, 481, 481, - 481, 477, 473, 481, 0, 0, 474, 482, 482, 482, - 478, 0, 482, 478, 0, 0, 479, 478, 484, 484, - - 484, 0, 0, 484, 480, 0, 485, 485, 485, 0, - 481, 485, 0, 479, 0, 486, 486, 486, 0, 482, - 486, 0, 480, 487, 487, 487, 0, 0, 487, 0, - 484, 0, 488, 488, 488, 0, 484, 488, 485, 489, - 489, 489, 0, 0, 489, 485, 0, 486, 490, 490, - 490, 0, 0, 490, 0, 487, 0, 491, 491, 491, - 0, 0, 491, 0, 488, 492, 492, 492, 0, 487, - 492, 489, 493, 493, 493, 0, 0, 493, 0, 0, - 490, 0, 489, 0, 0, 494, 494, 494, 0, 491, - 494, 0, 0, 495, 495, 495, 0, 492, 495, 0, - - 0, 0, 0, 0, 493, 490, 491, 496, 496, 496, - 0, 492, 496, 0, 0, 493, 0, 494, 0, 497, - 497, 497, 0, 494, 497, 495, 499, 499, 499, 0, - 0, 499, 501, 501, 501, 0, 0, 501, 0, 496, - 0, 0, 496, 502, 502, 502, 0, 0, 502, 0, - 0, 497, 503, 503, 503, 0, 0, 503, 499, 0, - 504, 504, 504, 0, 501, 504, 499, 501, 505, 505, - 505, 0, 0, 505, 0, 502, 497, 506, 506, 506, - 0, 0, 506, 0, 503, 0, 0, 506, 507, 507, - 507, 502, 504, 507, 508, 508, 508, 0, 0, 508, - - 505, 509, 509, 509, 503, 504, 509, 0, 0, 506, - 0, 510, 510, 510, 0, 0, 510, 0, 505, 0, - 507, 0, 511, 511, 511, 0, 508, 511, 0, 512, - 512, 512, 0, 509, 512, 513, 513, 513, 0, 0, - 513, 0, 508, 510, 514, 514, 514, 0, 0, 514, - 510, 0, 0, 509, 511, 516, 516, 516, 0, 0, - 516, 512, 0, 0, 517, 517, 517, 513, 512, 517, - 0, 511, 518, 518, 518, 0, 514, 518, 519, 519, - 519, 0, 0, 519, 0, 513, 0, 516, 519, 0, - 516, 0, 0, 0, 514, 0, 517, 0, 520, 520, - - 520, 0, 0, 520, 518, 0, 521, 521, 521, 0, - 519, 521, 522, 522, 522, 517, 0, 522, 523, 523, - 523, 0, 518, 523, 0, 0, 524, 524, 524, 519, - 520, 524, 525, 525, 525, 0, 0, 525, 521, 0, - 0, 521, 0, 0, 522, 0, 0, 0, 0, 520, - 523, 526, 526, 526, 0, 0, 526, 523, 524, 0, - 527, 527, 527, 0, 525, 527, 522, 0, 0, 530, - 530, 530, 525, 0, 530, 531, 531, 531, 524, 530, - 531, 0, 0, 526, 533, 533, 533, 0, 0, 533, - 0, 0, 527, 535, 535, 535, 0, 0, 535, 0, - - 0, 530, 0, 526, 536, 536, 536, 531, 0, 536, - 0, 527, 537, 537, 537, 0, 533, 537, 538, 538, - 538, 0, 531, 538, 0, 535, 539, 539, 539, 0, - 533, 539, 540, 540, 540, 0, 536, 540, 0, 535, - 542, 542, 542, 0, 537, 542, 543, 543, 543, 0, - 538, 543, 0, 536, 0, 0, 0, 538, 539, 0, - 0, 537, 0, 0, 540, 544, 544, 544, 0, 0, - 544, 0, 542, 0, 539, 545, 545, 545, 543, 0, - 545, 0, 546, 546, 546, 0, 542, 546, 547, 547, - 547, 0, 0, 547, 0, 543, 0, 544, 548, 548, - - 548, 0, 0, 548, 544, 0, 0, 545, 549, 549, - 549, 0, 0, 549, 546, 0, 550, 550, 550, 546, - 547, 550, 552, 552, 552, 0, 545, 552, 0, 0, - 548, 553, 553, 553, 0, 0, 553, 554, 554, 554, - 549, 0, 554, 0, 555, 555, 555, 554, 550, 555, - 556, 556, 556, 0, 552, 556, 549, 557, 557, 557, - 0, 550, 557, 553, 0, 0, 558, 558, 558, 554, - 553, 558, 552, 559, 559, 559, 555, 0, 559, 560, - 560, 560, 556, 0, 560, 556, 561, 561, 561, 557, - 0, 561, 557, 0, 555, 563, 563, 563, 558, 0, - - 563, 0, 564, 564, 564, 559, 0, 564, 0, 559, - 0, 560, 564, 0, 565, 565, 565, 0, 561, 565, - 558, 0, 0, 566, 566, 566, 0, 563, 566, 0, - 567, 567, 567, 0, 564, 567, 0, 0, 563, 568, - 568, 568, 0, 0, 568, 0, 565, 569, 569, 569, - 0, 0, 569, 565, 0, 566, 570, 570, 570, 566, - 0, 570, 567, 0, 0, 567, 0, 571, 571, 571, - 0, 568, 571, 572, 572, 572, 0, 0, 572, 569, - 0, 0, 569, 0, 573, 573, 573, 0, 570, 573, - 568, 574, 574, 574, 0, 0, 574, 0, 0, 571, - - 0, 575, 575, 575, 0, 572, 575, 576, 576, 576, - 571, 0, 576, 577, 577, 577, 573, 0, 577, 578, - 578, 578, 0, 574, 578, 579, 579, 579, 0, 573, - 579, 0, 0, 575, 0, 580, 580, 580, 0, 576, - 580, 0, 0, 0, 575, 577, 576, 0, 582, 582, - 582, 578, 577, 582, 583, 583, 583, 579, 0, 583, - 584, 584, 584, 0, 578, 584, 0, 580, 585, 585, - 585, 0, 0, 585, 0, 579, 586, 586, 586, 0, - 582, 586, 580, 590, 590, 590, 583, 582, 590, 589, - 589, 589, 584, 583, 589, 0, 591, 591, 591, 0, - - 585, 591, 592, 592, 592, 0, 0, 592, 586, 593, - 593, 593, 584, 0, 593, 590, 0, 0, 0, 585, - 586, 589, 590, 0, 0, 589, 0, 0, 591, 0, - 594, 594, 594, 0, 592, 594, 0, 0, 595, 595, - 595, 593, 0, 595, 596, 596, 596, 0, 591, 596, - 0, 0, 593, 597, 597, 597, 0, 0, 597, 0, - 0, 0, 594, 598, 598, 598, 0, 0, 598, 594, - 595, 0, 601, 601, 601, 0, 596, 601, 0, 603, - 603, 603, 0, 0, 603, 597, 0, 0, 597, 595, - 0, 605, 605, 605, 596, 598, 605, 0, 598, 0, - - 606, 606, 606, 0, 601, 606, 0, 607, 607, 607, - 601, 603, 607, 608, 608, 608, 603, 0, 608, 609, - 609, 609, 0, 605, 609, 611, 611, 611, 0, 0, - 611, 0, 606, 0, 0, 606, 613, 613, 613, 607, - 0, 613, 605, 0, 0, 608, 0, 0, 615, 615, - 615, 609, 607, 615, 616, 616, 616, 611, 0, 616, - 617, 617, 617, 0, 0, 617, 0, 0, 613, 618, - 618, 618, 0, 611, 618, 0, 619, 619, 619, 613, - 615, 619, 0, 620, 620, 620, 616, 0, 620, 621, - 621, 621, 617, 620, 621, 0, 0, 622, 622, 622, - - 615, 618, 622, 0, 616, 623, 623, 623, 619, 0, - 623, 617, 618, 0, 0, 620, 0, 624, 624, 624, - 0, 621, 624, 625, 625, 625, 0, 0, 625, 622, - 0, 626, 626, 626, 620, 0, 626, 623, 627, 627, - 627, 0, 0, 627, 0, 628, 628, 628, 623, 624, - 628, 0, 630, 630, 630, 625, 624, 630, 0, 631, - 631, 631, 625, 626, 631, 0, 626, 0, 0, 0, - 627, 632, 632, 632, 0, 0, 632, 628, 0, 0, - 0, 633, 633, 633, 630, 627, 633, 634, 634, 634, - 630, 631, 634, 635, 635, 635, 0, 0, 635, 631, - - 636, 636, 636, 632, 0, 636, 637, 637, 637, 0, - 632, 637, 0, 633, 0, 638, 638, 638, 0, 634, - 638, 639, 639, 639, 633, 635, 639, 0, 640, 640, - 640, 0, 636, 640, 0, 643, 643, 643, 637, 634, - 643, 644, 644, 644, 635, 0, 644, 638, 0, 0, - 0, 0, 0, 639, 637, 0, 645, 645, 645, 0, - 640, 645, 0, 646, 646, 646, 0, 643, 646, 647, - 647, 647, 639, 644, 647, 648, 648, 648, 0, 0, - 648, 644, 643, 0, 650, 650, 650, 0, 645, 650, - 0, 651, 651, 651, 0, 646, 651, 654, 654, 654, - - 0, 647, 654, 656, 656, 656, 0, 648, 656, 0, - 657, 657, 657, 0, 648, 657, 650, 658, 658, 658, - 0, 0, 658, 651, 0, 0, 659, 659, 659, 654, - 650, 659, 661, 661, 661, 656, 0, 661, 0, 662, - 662, 662, 657, 654, 662, 663, 663, 663, 0, 658, - 663, 664, 664, 664, 656, 0, 664, 0, 659, 0, - 0, 0, 657, 0, 661, 665, 665, 665, 0, 658, - 665, 662, 0, 666, 666, 666, 0, 663, 666, 668, - 668, 668, 662, 664, 668, 0, 670, 670, 670, 0, - 664, 670, 0, 0, 0, 0, 663, 665, 672, 672, - - 672, 0, 0, 672, 0, 666, 0, 0, 665, 0, - 0, 668, 666, 0, 673, 673, 673, 0, 670, 673, - 0, 0, 677, 677, 677, 670, 668, 677, 0, 0, - 672, 678, 678, 678, 0, 0, 678, 680, 680, 680, - 0, 0, 680, 681, 681, 681, 673, 0, 681, 672, - 682, 682, 682, 673, 677, 682, 683, 683, 683, 0, - 677, 683, 0, 678, 0, 686, 686, 686, 0, 680, - 686, 0, 688, 688, 688, 681, 680, 688, 0, 678, - 0, 0, 682, 0, 687, 687, 687, 0, 683, 687, - 689, 689, 689, 0, 687, 689, 0, 686, 0, 683, - - 690, 690, 690, 0, 688, 690, 0, 691, 691, 691, - 0, 0, 691, 692, 692, 692, 687, 0, 692, 0, - 0, 686, 689, 688, 693, 693, 693, 0, 0, 693, - 0, 0, 690, 0, 0, 694, 694, 694, 689, 691, - 694, 695, 695, 695, 0, 692, 695, 691, 696, 696, - 696, 695, 0, 696, 0, 0, 693, 697, 697, 697, - 0, 0, 697, 700, 700, 700, 0, 694, 700, 701, - 701, 701, 0, 695, 701, 0, 702, 702, 702, 701, - 696, 702, 0, 703, 703, 703, 696, 694, 703, 697, - 0, 704, 704, 704, 0, 700, 704, 706, 706, 706, - - 0, 701, 706, 0, 709, 709, 709, 0, 702, 709, - 0, 700, 710, 710, 710, 703, 0, 710, 0, 711, - 711, 711, 0, 704, 711, 702, 0, 0, 0, 706, - 713, 713, 713, 0, 0, 713, 709, 0, 704, 0, - 706, 715, 715, 715, 710, 0, 715, 709, 716, 716, - 716, 711, 0, 716, 0, 0, 0, 0, 711, 0, - 710, 0, 713, 0, 718, 718, 718, 0, 0, 718, - 719, 719, 719, 715, 718, 719, 0, 713, 0, 0, - 716, 0, 720, 720, 720, 0, 715, 720, 721, 721, - 721, 0, 0, 721, 0, 0, 718, 0, 716, 722, - - 722, 722, 719, 0, 722, 0, 0, 723, 723, 723, - 0, 719, 723, 0, 720, 0, 0, 723, 0, 0, - 721, 724, 724, 724, 0, 0, 724, 0, 720, 0, - 0, 722, 0, 725, 725, 725, 0, 721, 725, 723, - 726, 726, 726, 0, 0, 726, 727, 727, 727, 0, - 0, 727, 0, 724, 728, 728, 728, 0, 0, 728, - 724, 0, 729, 729, 729, 725, 0, 729, 731, 731, - 731, 0, 726, 731, 732, 732, 732, 0, 727, 732, - 0, 725, 0, 726, 0, 0, 728, 733, 733, 733, - 0, 0, 733, 728, 729, 0, 734, 734, 734, 0, - - 731, 734, 0, 736, 736, 736, 732, 0, 736, 0, - 737, 737, 737, 0, 729, 737, 0, 731, 0, 733, - 0, 732, 0, 0, 733, 738, 738, 738, 734, 0, - 738, 739, 739, 739, 734, 736, 739, 0, 740, 740, - 740, 0, 737, 740, 741, 741, 741, 0, 0, 741, - 743, 743, 743, 737, 0, 743, 0, 738, 0, 0, - 744, 744, 744, 739, 738, 744, 0, 746, 746, 746, - 740, 0, 746, 747, 747, 747, 741, 740, 747, 748, - 748, 748, 743, 741, 748, 749, 749, 749, 0, 0, - 749, 0, 744, 0, 0, 750, 750, 750, 743, 746, - - 750, 751, 751, 751, 0, 747, 751, 752, 752, 752, - 744, 748, 752, 0, 0, 0, 0, 749, 746, 0, - 747, 0, 0, 0, 0, 0, 748, 750, 749, 753, - 753, 753, 0, 751, 753, 754, 754, 754, 0, 752, - 754, 0, 755, 755, 755, 0, 750, 755, 0, 756, - 756, 756, 0, 751, 756, 757, 757, 757, 752, 0, - 757, 753, 0, 758, 758, 758, 0, 754, 758, 0, - 0, 759, 759, 759, 755, 0, 759, 753, 754, 0, - 0, 756, 0, 0, 0, 755, 0, 757, 0, 761, - 761, 761, 0, 757, 761, 758, 762, 762, 762, 0, - - 0, 762, 0, 759, 763, 763, 763, 0, 0, 763, - 758, 759, 765, 765, 765, 0, 0, 765, 766, 766, - 766, 761, 0, 766, 768, 768, 768, 0, 762, 768, - 769, 769, 769, 0, 0, 769, 763, 762, 770, 770, - 770, 0, 0, 770, 765, 0, 0, 763, 0, 0, - 766, 0, 0, 0, 0, 0, 768, 766, 0, 0, - 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, - 770, 0, 0, 0, 768, 0, 0, 0, 0, 0, - 0, 769, 773, 773, 773, 773, 773, 773, 773, 774, - 774, 774, 774, 774, 774, 774, 775, 0, 775, 775, - - 775, 775, 775, 776, 0, 776, 0, 776, 776, 776, - 777, 777, 777, 777, 777, 777, 777, 778, 778, 778, - 778, 778, 778, 778, 779, 0, 779, 779, 779, 779, - 779, 780, 780, 0, 780, 781, 781, 781, 781, 781, - 782, 782, 783, 783, 784, 784, 785, 785, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, - - 772, 772, 772, 772, 772, 772, 772, 772, 772 + 20, 20, 20, 22, 80, 22, 22, 22, 86, 79, + 20, 45, 45, 45, 85, 22, 45, 47, 47, 47, + + 43, 81, 47, 48, 48, 48, 20, 49, 48, 41, + 88, 22, 141, 39, 49, 50, 50, 50, 83, 38, + 50, 81, 24, 45, 144, 51, 51, 51, 141, 47, + 51, 76, 76, 76, 49, 48, 82, 88, 49, 47, + 144, 83, 49, 52, 52, 52, 139, 50, 52, 49, + 14, 48, 49, 11, 49, 49, 82, 51, 53, 53, + 53, 211, 0, 53, 140, 50, 54, 54, 54, 139, + 51, 54, 142, 51, 0, 52, 51, 211, 52, 77, + 77, 77, 52, 143, 140, 52, 55, 55, 55, 0, + 53, 55, 58, 58, 58, 142, 52, 58, 54, 56, + + 56, 56, 0, 143, 56, 53, 0, 59, 59, 59, + 0, 54, 59, 214, 53, 57, 57, 57, 55, 0, + 57, 60, 60, 60, 58, 0, 60, 58, 0, 214, + 0, 56, 0, 0, 55, 0, 0, 56, 55, 59, + 0, 55, 59, 0, 0, 0, 56, 57, 56, 0, + 0, 0, 0, 60, 57, 57, 0, 0, 57, 62, + 62, 62, 0, 57, 62, 0, 0, 63, 63, 63, + 60, 0, 63, 0, 60, 61, 61, 61, 0, 0, + 61, 0, 68, 68, 68, 64, 64, 64, 0, 0, + 64, 62, 68, 0, 62, 0, 0, 0, 62, 63, + + 65, 65, 65, 0, 0, 65, 63, 61, 68, 0, + 61, 0, 0, 61, 61, 63, 63, 64, 0, 0, + 63, 0, 0, 61, 64, 61, 0, 0, 64, 66, + 66, 66, 65, 0, 66, 0, 0, 69, 0, 69, + 69, 69, 64, 91, 91, 91, 0, 65, 91, 69, + 71, 65, 71, 71, 71, 0, 72, 72, 72, 0, + 0, 66, 71, 0, 66, 69, 72, 92, 92, 92, + 0, 0, 92, 0, 0, 91, 0, 0, 71, 0, + 91, 0, 72, 94, 94, 94, 0, 0, 94, 97, + 97, 97, 0, 0, 97, 0, 96, 96, 96, 92, + + 0, 96, 0, 0, 99, 99, 99, 0, 92, 99, + 0, 0, 0, 0, 0, 94, 95, 95, 95, 0, + 0, 97, 0, 95, 95, 95, 95, 95, 96, 98, + 98, 98, 97, 0, 98, 0, 99, 0, 95, 95, + 95, 95, 95, 95, 0, 0, 96, 100, 100, 100, + 0, 0, 100, 0, 0, 101, 101, 101, 99, 0, + 101, 98, 0, 0, 102, 102, 102, 98, 0, 102, + 103, 103, 103, 0, 0, 103, 98, 0, 0, 100, + 104, 104, 104, 0, 0, 104, 0, 101, 105, 105, + 105, 101, 101, 105, 0, 0, 102, 0, 0, 100, + + 101, 102, 103, 106, 106, 106, 0, 0, 106, 107, + 107, 107, 104, 103, 107, 0, 0, 104, 0, 0, + 105, 108, 108, 108, 0, 105, 108, 0, 0, 109, + 109, 109, 104, 0, 109, 106, 0, 105, 0, 109, + 0, 107, 110, 110, 110, 0, 0, 110, 0, 0, + 111, 111, 111, 108, 107, 111, 106, 107, 0, 0, + 107, 109, 112, 112, 112, 0, 0, 112, 113, 113, + 113, 0, 112, 113, 110, 114, 114, 114, 108, 0, + 114, 110, 111, 115, 115, 115, 0, 0, 115, 0, + 116, 116, 116, 0, 112, 116, 117, 117, 117, 0, + + 113, 117, 111, 113, 118, 118, 118, 114, 0, 118, + 0, 0, 114, 0, 0, 115, 119, 119, 119, 115, + 0, 119, 116, 0, 120, 120, 120, 0, 117, 120, + 0, 116, 0, 117, 0, 0, 118, 121, 121, 121, + 0, 0, 121, 0, 0, 0, 0, 0, 119, 0, + 118, 0, 117, 122, 122, 122, 120, 0, 122, 123, + 123, 123, 0, 122, 123, 124, 124, 124, 119, 121, + 124, 0, 125, 125, 125, 0, 120, 125, 126, 126, + 126, 0, 0, 126, 0, 122, 0, 121, 121, 0, + 0, 123, 0, 128, 128, 128, 0, 124, 128, 0, + + 129, 129, 129, 0, 125, 129, 0, 0, 0, 123, + 126, 125, 0, 124, 130, 130, 130, 0, 0, 130, + 0, 131, 131, 131, 0, 128, 131, 126, 127, 127, + 127, 0, 129, 127, 132, 132, 132, 129, 0, 132, + 133, 133, 133, 128, 0, 133, 130, 128, 0, 130, + 134, 134, 134, 131, 0, 134, 0, 131, 0, 0, + 127, 0, 0, 127, 127, 127, 132, 0, 0, 135, + 135, 135, 133, 127, 135, 127, 136, 136, 136, 127, + 0, 136, 134, 0, 0, 132, 133, 137, 137, 137, + 0, 0, 137, 148, 148, 148, 0, 0, 148, 134, + + 0, 135, 149, 149, 149, 0, 0, 149, 136, 154, + 154, 154, 0, 0, 154, 136, 0, 0, 0, 137, + 0, 0, 0, 0, 135, 148, 153, 153, 153, 0, + 0, 153, 137, 0, 149, 0, 0, 0, 0, 0, + 0, 154, 148, 149, 152, 152, 152, 0, 154, 0, + 0, 152, 152, 152, 152, 152, 0, 0, 153, 0, + 0, 153, 0, 0, 0, 0, 152, 152, 152, 152, + 152, 152, 155, 155, 155, 0, 0, 155, 156, 156, + 156, 0, 0, 156, 157, 157, 157, 0, 0, 157, + 158, 158, 158, 0, 157, 158, 159, 159, 159, 0, + + 0, 159, 0, 0, 155, 0, 0, 160, 160, 160, + 156, 155, 160, 0, 0, 0, 157, 0, 161, 161, + 161, 0, 158, 161, 0, 158, 0, 0, 159, 0, + 156, 162, 162, 162, 0, 0, 162, 0, 0, 160, + 163, 163, 163, 0, 0, 163, 0, 0, 0, 159, + 161, 0, 160, 164, 164, 164, 0, 161, 164, 165, + 165, 165, 0, 162, 165, 166, 166, 166, 0, 0, + 166, 0, 163, 0, 167, 167, 167, 0, 163, 167, + 162, 168, 168, 168, 0, 164, 168, 0, 164, 0, + 0, 165, 0, 0, 0, 0, 0, 166, 165, 169, + + 169, 169, 0, 0, 169, 0, 167, 170, 170, 170, + 166, 0, 170, 168, 171, 171, 171, 167, 0, 171, + 172, 172, 172, 0, 0, 172, 0, 0, 173, 173, + 173, 169, 168, 173, 0, 0, 0, 169, 0, 170, + 175, 175, 175, 0, 0, 175, 171, 0, 0, 0, + 0, 170, 172, 176, 176, 176, 0, 0, 176, 0, + 173, 0, 0, 173, 0, 0, 171, 0, 0, 172, + 0, 0, 175, 177, 177, 177, 0, 0, 177, 178, + 178, 178, 0, 0, 178, 176, 0, 175, 179, 179, + 179, 0, 176, 179, 180, 180, 180, 0, 179, 180, + + 0, 181, 181, 181, 0, 177, 181, 0, 177, 0, + 0, 178, 0, 182, 182, 182, 0, 0, 182, 0, + 179, 0, 0, 182, 0, 0, 180, 183, 183, 183, + 178, 0, 183, 181, 184, 184, 184, 183, 0, 184, + 0, 0, 181, 0, 180, 182, 185, 185, 185, 0, + 0, 185, 186, 186, 186, 0, 0, 186, 0, 183, + 187, 187, 187, 0, 0, 187, 184, 188, 188, 188, + 0, 0, 188, 184, 189, 189, 189, 0, 185, 189, + 190, 190, 190, 0, 186, 190, 0, 0, 0, 185, + 0, 0, 187, 0, 0, 187, 0, 0, 0, 188, + + 0, 186, 191, 191, 191, 0, 189, 191, 192, 192, + 192, 0, 190, 192, 193, 193, 193, 0, 188, 193, + 194, 194, 194, 189, 0, 194, 0, 195, 195, 195, + 0, 190, 195, 0, 191, 0, 196, 196, 196, 0, + 192, 196, 0, 0, 0, 0, 193, 191, 192, 0, + 0, 0, 194, 0, 0, 0, 0, 193, 194, 195, + 197, 197, 197, 0, 0, 197, 0, 0, 196, 0, + 195, 198, 198, 198, 0, 0, 198, 199, 199, 199, + 0, 196, 199, 0, 196, 200, 200, 200, 0, 0, + 200, 0, 197, 0, 0, 197, 201, 201, 201, 0, + + 0, 201, 0, 198, 0, 0, 202, 202, 202, 199, + 198, 202, 0, 204, 204, 204, 199, 200, 204, 203, + 203, 203, 0, 0, 203, 205, 205, 205, 201, 0, + 205, 206, 206, 206, 0, 201, 206, 0, 202, 200, + 0, 207, 207, 207, 0, 204, 207, 208, 208, 208, + 202, 203, 208, 209, 209, 209, 203, 205, 209, 0, + 204, 0, 0, 206, 210, 210, 210, 0, 0, 210, + 206, 0, 0, 207, 0, 0, 0, 205, 0, 208, + 207, 0, 208, 0, 0, 209, 219, 219, 219, 0, + 0, 219, 220, 220, 220, 0, 210, 220, 0, 0, + + 219, 219, 0, 209, 0, 0, 0, 210, 219, 222, + 222, 222, 0, 0, 222, 0, 0, 0, 219, 0, + 223, 223, 223, 0, 220, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 220, 221, 221, 221, 0, + 0, 222, 0, 221, 221, 221, 221, 221, 224, 224, + 224, 0, 223, 224, 0, 0, 0, 0, 221, 221, + 221, 221, 221, 221, 0, 0, 222, 223, 225, 225, + 225, 0, 0, 225, 226, 226, 226, 0, 0, 226, + 224, 227, 227, 227, 0, 0, 227, 228, 228, 228, + 0, 0, 228, 229, 229, 229, 0, 0, 229, 0, + + 225, 0, 230, 230, 230, 0, 226, 230, 0, 0, + 231, 231, 231, 227, 226, 231, 0, 0, 225, 228, + 231, 232, 232, 232, 231, 229, 232, 0, 228, 0, + 233, 233, 233, 0, 230, 233, 229, 0, 0, 234, + 234, 234, 231, 230, 234, 235, 235, 235, 0, 0, + 235, 0, 0, 232, 236, 236, 236, 0, 0, 236, + 0, 0, 233, 237, 237, 237, 0, 0, 237, 0, + 0, 234, 0, 0, 0, 0, 0, 235, 0, 233, + 238, 238, 238, 0, 0, 238, 236, 0, 0, 234, + 238, 239, 239, 239, 0, 237, 239, 0, 235, 0, + + 0, 240, 240, 240, 236, 237, 240, 0, 241, 241, + 241, 240, 238, 241, 0, 0, 0, 242, 242, 242, + 0, 0, 242, 239, 243, 243, 243, 0, 0, 243, + 244, 244, 244, 240, 0, 244, 245, 245, 245, 0, + 241, 245, 239, 0, 0, 0, 0, 241, 240, 242, + 0, 0, 240, 0, 0, 242, 243, 0, 246, 246, + 246, 0, 244, 246, 247, 247, 247, 0, 245, 247, + 248, 248, 248, 0, 245, 248, 243, 249, 249, 249, + 244, 0, 249, 250, 250, 250, 0, 0, 250, 0, + 246, 0, 0, 251, 251, 251, 247, 246, 251, 252, + + 252, 252, 248, 0, 252, 248, 0, 247, 0, 249, + 0, 0, 253, 253, 253, 250, 249, 253, 254, 254, + 254, 0, 0, 254, 0, 251, 0, 255, 255, 255, + 0, 252, 255, 0, 250, 256, 256, 256, 0, 0, + 256, 0, 0, 251, 253, 0, 257, 257, 257, 0, + 254, 257, 258, 258, 258, 0, 0, 258, 0, 255, + 253, 259, 259, 259, 0, 0, 259, 256, 0, 0, + 0, 254, 0, 255, 260, 260, 260, 0, 257, 260, + 0, 0, 0, 0, 258, 0, 261, 261, 261, 0, + 256, 261, 0, 259, 257, 258, 262, 262, 262, 0, + + 0, 262, 263, 263, 263, 0, 260, 263, 0, 265, + 265, 265, 259, 260, 265, 0, 0, 260, 261, 0, + 264, 264, 264, 0, 261, 264, 0, 0, 262, 0, + 266, 266, 266, 0, 263, 266, 0, 267, 267, 267, + 0, 265, 267, 0, 262, 268, 268, 268, 0, 263, + 268, 0, 264, 0, 0, 264, 270, 270, 270, 265, + 0, 270, 266, 0, 0, 269, 269, 269, 0, 267, + 269, 271, 271, 271, 0, 0, 271, 268, 0, 272, + 272, 272, 0, 0, 272, 0, 0, 266, 270, 273, + 273, 273, 267, 0, 273, 268, 0, 269, 0, 0, + + 274, 274, 274, 271, 269, 274, 270, 275, 275, 275, + 271, 272, 275, 0, 276, 276, 276, 0, 272, 276, + 0, 273, 277, 277, 277, 0, 0, 277, 273, 278, + 278, 278, 274, 0, 278, 279, 279, 279, 0, 275, + 279, 0, 284, 284, 284, 0, 276, 284, 285, 285, + 285, 0, 0, 285, 277, 286, 286, 286, 0, 0, + 286, 278, 0, 287, 287, 287, 0, 279, 287, 0, + 0, 0, 277, 279, 284, 0, 289, 289, 289, 0, + 285, 289, 0, 292, 292, 292, 0, 286, 292, 0, + 0, 0, 0, 286, 0, 287, 290, 290, 290, 0, + + 0, 290, 0, 0, 0, 0, 0, 0, 289, 0, + 287, 288, 288, 288, 0, 292, 0, 0, 288, 288, + 288, 288, 288, 0, 293, 293, 293, 0, 290, 293, + 0, 292, 0, 288, 288, 288, 288, 288, 288, 295, + 295, 295, 0, 0, 295, 296, 296, 296, 290, 0, + 296, 0, 0, 297, 297, 297, 293, 0, 297, 298, + 298, 298, 0, 0, 298, 0, 0, 0, 299, 299, + 299, 295, 293, 299, 301, 301, 301, 296, 0, 301, + 0, 302, 302, 302, 295, 297, 302, 0, 297, 0, + 0, 298, 296, 0, 303, 303, 303, 298, 0, 303, + + 299, 0, 304, 304, 304, 0, 301, 304, 0, 0, + 305, 305, 305, 302, 0, 305, 299, 306, 306, 306, + 305, 0, 306, 0, 0, 301, 303, 0, 0, 0, + 302, 0, 303, 0, 304, 0, 0, 0, 307, 307, + 307, 304, 305, 307, 0, 309, 309, 309, 307, 306, + 309, 310, 310, 310, 0, 0, 310, 0, 311, 311, + 311, 0, 0, 311, 312, 312, 312, 306, 311, 312, + 307, 313, 313, 313, 0, 0, 313, 309, 0, 314, + 314, 314, 0, 310, 314, 0, 310, 315, 315, 315, + 311, 0, 315, 0, 0, 309, 312, 316, 316, 316, + + 0, 0, 316, 313, 0, 317, 317, 317, 0, 313, + 317, 314, 318, 318, 318, 317, 0, 318, 0, 315, + 0, 0, 314, 319, 319, 319, 0, 315, 319, 316, + 0, 320, 320, 320, 0, 316, 320, 317, 321, 321, + 321, 0, 0, 321, 318, 322, 322, 322, 0, 0, + 322, 324, 324, 324, 0, 319, 324, 0, 0, 318, + 325, 325, 325, 320, 0, 325, 0, 326, 326, 326, + 321, 0, 326, 319, 0, 0, 0, 322, 0, 0, + 0, 320, 0, 324, 322, 0, 321, 0, 327, 327, + 327, 0, 325, 327, 0, 328, 328, 328, 324, 326, + + 328, 0, 329, 329, 329, 0, 326, 329, 331, 331, + 331, 0, 325, 331, 332, 332, 332, 0, 0, 332, + 327, 0, 0, 333, 333, 333, 0, 328, 333, 0, + 335, 335, 335, 0, 329, 335, 327, 334, 334, 334, + 331, 0, 334, 328, 0, 0, 332, 334, 0, 336, + 336, 336, 0, 329, 336, 333, 337, 337, 337, 0, + 0, 337, 335, 0, 332, 338, 338, 338, 0, 334, + 338, 0, 0, 339, 339, 339, 0, 335, 339, 333, + 0, 336, 0, 339, 340, 340, 340, 336, 337, 340, + 341, 341, 341, 0, 340, 341, 0, 338, 0, 337, + + 0, 0, 0, 338, 0, 339, 342, 342, 342, 0, + 0, 342, 0, 0, 0, 0, 340, 0, 343, 343, + 343, 0, 341, 343, 0, 344, 344, 344, 0, 0, + 344, 345, 345, 345, 0, 0, 345, 0, 342, 0, + 346, 346, 346, 0, 341, 346, 350, 350, 350, 0, + 343, 350, 0, 357, 357, 357, 342, 344, 357, 0, + 0, 343, 0, 345, 352, 352, 352, 0, 0, 352, + 0, 0, 346, 0, 352, 0, 0, 344, 350, 358, + 358, 358, 0, 0, 358, 357, 0, 0, 0, 360, + 360, 360, 346, 350, 360, 0, 352, 0, 0, 360, + + 357, 361, 361, 361, 0, 0, 361, 362, 362, 362, + 0, 358, 362, 363, 363, 363, 0, 0, 363, 0, + 358, 360, 364, 364, 364, 0, 0, 364, 0, 0, + 365, 365, 365, 361, 0, 365, 366, 366, 366, 362, + 0, 366, 0, 0, 0, 363, 361, 0, 367, 367, + 367, 0, 363, 367, 364, 0, 0, 362, 0, 0, + 0, 364, 365, 367, 368, 368, 368, 0, 366, 368, + 369, 369, 369, 0, 366, 369, 370, 370, 370, 0, + 367, 370, 365, 0, 371, 371, 371, 0, 0, 371, + 0, 0, 372, 372, 372, 0, 368, 372, 373, 373, + + 373, 0, 369, 373, 374, 374, 374, 0, 370, 374, + 0, 0, 0, 0, 0, 370, 371, 368, 0, 0, + 369, 0, 371, 0, 372, 0, 375, 375, 375, 0, + 373, 375, 0, 0, 0, 0, 374, 373, 376, 376, + 376, 0, 372, 376, 0, 377, 377, 377, 0, 374, + 377, 0, 0, 0, 379, 379, 379, 0, 375, 379, + 0, 380, 380, 380, 0, 375, 380, 381, 381, 381, + 376, 0, 381, 382, 382, 382, 0, 377, 382, 0, + 383, 383, 383, 377, 376, 383, 379, 384, 384, 384, + 0, 0, 384, 380, 0, 385, 385, 385, 0, 381, + + 385, 380, 381, 0, 379, 382, 386, 386, 386, 0, + 0, 386, 383, 0, 0, 387, 387, 387, 383, 384, + 387, 0, 0, 382, 388, 388, 388, 385, 0, 388, + 389, 389, 389, 0, 0, 389, 0, 0, 386, 384, + 389, 390, 390, 390, 0, 0, 390, 387, 391, 391, + 391, 0, 385, 391, 0, 0, 388, 386, 392, 392, + 392, 388, 389, 392, 393, 393, 393, 0, 387, 393, + 0, 0, 0, 390, 0, 390, 0, 0, 0, 0, + 391, 394, 394, 394, 0, 0, 394, 396, 396, 396, + 392, 0, 396, 397, 397, 397, 393, 0, 397, 0, + + 391, 0, 0, 397, 0, 0, 0, 0, 392, 393, + 398, 398, 398, 394, 0, 398, 399, 399, 399, 396, + 0, 399, 0, 0, 0, 397, 400, 400, 400, 0, + 0, 400, 397, 394, 0, 0, 400, 396, 401, 401, + 401, 0, 398, 401, 402, 402, 402, 398, 399, 402, + 404, 404, 404, 0, 402, 404, 0, 0, 400, 0, + 0, 399, 405, 405, 405, 0, 0, 405, 0, 0, + 401, 0, 406, 406, 406, 0, 402, 406, 407, 407, + 407, 0, 404, 407, 401, 408, 408, 408, 407, 0, + 408, 0, 0, 0, 405, 409, 409, 409, 0, 0, + + 409, 404, 0, 0, 406, 409, 0, 406, 0, 0, + 407, 411, 411, 411, 405, 0, 411, 408, 412, 412, + 412, 0, 0, 412, 0, 0, 411, 409, 413, 413, + 413, 0, 0, 413, 415, 415, 415, 408, 0, 415, + 416, 416, 416, 411, 0, 416, 417, 417, 417, 0, + 412, 417, 0, 0, 418, 418, 418, 412, 0, 418, + 413, 0, 0, 0, 418, 0, 415, 0, 0, 419, + 419, 419, 416, 413, 419, 420, 420, 420, 417, 0, + 420, 0, 0, 417, 0, 415, 418, 421, 421, 421, + 0, 0, 421, 422, 422, 422, 0, 421, 422, 0, + + 0, 419, 0, 423, 423, 423, 0, 420, 423, 0, + 0, 424, 424, 424, 0, 419, 424, 0, 0, 421, + 0, 424, 425, 425, 425, 422, 0, 425, 0, 420, + 0, 0, 422, 0, 0, 423, 426, 426, 426, 0, + 0, 426, 0, 424, 427, 427, 427, 0, 0, 427, + 423, 428, 428, 428, 425, 0, 428, 429, 429, 429, + 0, 428, 429, 0, 0, 0, 0, 425, 426, 430, + 430, 430, 0, 0, 430, 0, 427, 0, 0, 426, + 0, 0, 427, 428, 0, 431, 431, 431, 0, 429, + 431, 0, 432, 432, 432, 0, 429, 432, 433, 433, + + 433, 430, 0, 433, 0, 0, 430, 434, 434, 434, + 0, 0, 434, 435, 435, 435, 0, 431, 435, 0, + 0, 436, 436, 436, 432, 0, 436, 0, 431, 0, + 433, 437, 437, 437, 0, 0, 437, 433, 0, 434, + 0, 0, 434, 432, 0, 435, 438, 438, 438, 0, + 0, 438, 435, 436, 439, 439, 439, 0, 0, 439, + 440, 440, 440, 437, 436, 440, 0, 0, 437, 441, + 441, 441, 0, 0, 441, 442, 442, 442, 438, 0, + 442, 0, 443, 443, 443, 438, 439, 443, 0, 439, + 0, 0, 440, 444, 444, 444, 0, 0, 444, 440, + + 0, 441, 0, 445, 445, 445, 0, 442, 445, 0, + 447, 447, 447, 0, 443, 447, 448, 448, 448, 0, + 0, 448, 449, 449, 449, 444, 0, 449, 0, 450, + 450, 450, 443, 0, 450, 445, 0, 0, 444, 0, + 0, 445, 447, 0, 451, 451, 451, 0, 448, 451, + 0, 452, 452, 452, 449, 448, 452, 0, 447, 0, + 449, 450, 454, 454, 454, 0, 0, 454, 455, 455, + 455, 0, 0, 455, 0, 0, 451, 456, 456, 456, + 450, 0, 456, 452, 457, 457, 457, 0, 0, 457, + 452, 458, 458, 458, 454, 0, 458, 0, 0, 0, + + 455, 459, 459, 459, 0, 0, 459, 454, 0, 456, + 0, 459, 460, 460, 460, 0, 457, 460, 0, 455, + 0, 0, 0, 458, 0, 456, 461, 461, 461, 0, + 0, 461, 0, 459, 462, 462, 462, 0, 0, 462, + 0, 457, 0, 458, 460, 0, 463, 463, 463, 0, + 0, 463, 464, 464, 464, 0, 0, 464, 461, 0, + 465, 465, 465, 0, 460, 465, 462, 466, 466, 466, + 0, 0, 466, 0, 0, 0, 0, 462, 463, 461, + 468, 468, 468, 0, 464, 468, 469, 469, 469, 0, + 0, 469, 465, 0, 0, 464, 0, 0, 463, 466, + + 470, 470, 470, 0, 0, 470, 471, 471, 471, 0, + 0, 471, 468, 0, 466, 0, 0, 465, 469, 466, + 473, 473, 473, 0, 469, 473, 474, 474, 474, 0, + 0, 474, 470, 0, 475, 475, 475, 0, 471, 475, + 476, 476, 476, 470, 0, 476, 477, 477, 477, 0, + 0, 477, 473, 0, 478, 478, 478, 0, 474, 478, + 0, 0, 479, 479, 479, 473, 475, 479, 0, 475, + 0, 0, 476, 0, 0, 0, 0, 474, 477, 476, + 480, 480, 480, 0, 0, 480, 478, 0, 481, 481, + 481, 0, 478, 481, 479, 477, 482, 482, 482, 0, + + 0, 482, 0, 0, 483, 483, 483, 0, 0, 483, + 0, 0, 480, 479, 483, 0, 484, 484, 484, 0, + 481, 484, 0, 481, 0, 485, 485, 485, 482, 480, + 485, 0, 486, 486, 486, 0, 483, 486, 487, 487, + 487, 0, 0, 487, 488, 488, 488, 482, 484, 488, + 489, 489, 489, 0, 0, 489, 0, 485, 490, 490, + 490, 484, 485, 490, 486, 0, 491, 491, 491, 0, + 487, 491, 0, 0, 487, 0, 488, 486, 0, 492, + 492, 492, 489, 488, 492, 0, 0, 493, 493, 493, + 490, 0, 493, 0, 0, 494, 494, 494, 491, 0, + + 494, 495, 495, 495, 0, 0, 495, 496, 496, 496, + 490, 492, 496, 0, 0, 0, 0, 491, 492, 493, + 0, 0, 0, 499, 499, 499, 493, 494, 499, 500, + 500, 500, 0, 495, 500, 501, 501, 501, 0, 496, + 501, 0, 0, 502, 502, 502, 494, 0, 502, 503, + 503, 503, 0, 495, 503, 499, 0, 496, 0, 0, + 499, 500, 0, 0, 500, 0, 0, 501, 0, 0, + 501, 504, 504, 504, 501, 502, 504, 505, 505, 505, + 0, 503, 505, 507, 507, 507, 0, 0, 507, 0, + 0, 0, 502, 508, 508, 508, 0, 0, 508, 503, + + 0, 0, 0, 504, 0, 509, 509, 509, 0, 505, + 509, 510, 510, 510, 0, 507, 510, 511, 511, 511, + 0, 507, 511, 0, 0, 508, 512, 512, 512, 0, + 0, 512, 508, 513, 513, 513, 0, 509, 513, 514, + 514, 514, 0, 510, 514, 515, 515, 515, 0, 511, + 515, 516, 516, 516, 0, 0, 516, 510, 512, 517, + 517, 517, 0, 0, 517, 513, 0, 0, 0, 512, + 0, 514, 0, 518, 518, 518, 0, 515, 518, 0, + 0, 0, 0, 516, 0, 513, 0, 519, 519, 519, + 0, 517, 519, 0, 515, 0, 514, 516, 520, 520, + + 520, 0, 517, 520, 0, 518, 0, 521, 521, 521, + 0, 518, 521, 523, 523, 523, 0, 0, 523, 519, + 524, 524, 524, 523, 0, 524, 526, 526, 526, 0, + 520, 526, 0, 520, 0, 527, 527, 527, 0, 521, + 527, 528, 528, 528, 0, 523, 528, 0, 0, 529, + 529, 529, 524, 0, 529, 0, 0, 0, 526, 0, + 524, 526, 0, 0, 521, 0, 0, 527, 0, 530, + 530, 530, 0, 528, 530, 531, 531, 531, 0, 0, + 531, 529, 0, 527, 0, 531, 532, 532, 532, 0, + 0, 532, 0, 528, 529, 533, 533, 533, 0, 0, + + 533, 530, 0, 534, 534, 534, 0, 531, 534, 535, + 535, 535, 0, 0, 535, 536, 536, 536, 532, 530, + 536, 537, 537, 537, 0, 0, 537, 533, 0, 538, + 538, 538, 0, 0, 538, 534, 0, 539, 539, 539, + 0, 535, 539, 533, 540, 540, 540, 536, 535, 540, + 0, 0, 0, 537, 0, 534, 0, 541, 541, 541, + 537, 538, 541, 0, 536, 543, 543, 543, 0, 539, + 543, 0, 539, 0, 538, 0, 540, 544, 544, 544, + 0, 0, 544, 545, 545, 545, 0, 0, 545, 541, + 0, 546, 546, 546, 540, 0, 546, 543, 0, 0, + + 543, 546, 0, 547, 547, 547, 0, 541, 547, 544, + 0, 548, 548, 548, 0, 545, 548, 549, 549, 549, + 0, 0, 549, 546, 550, 550, 550, 0, 544, 550, + 0, 0, 0, 545, 0, 547, 551, 551, 551, 0, + 0, 551, 546, 548, 0, 0, 548, 0, 0, 549, + 552, 552, 552, 0, 547, 552, 550, 553, 553, 553, + 0, 0, 553, 550, 554, 554, 554, 0, 551, 554, + 0, 549, 555, 555, 555, 0, 0, 555, 0, 551, + 0, 0, 552, 558, 558, 558, 0, 0, 558, 553, + 559, 559, 559, 558, 0, 559, 554, 553, 561, 561, + + 561, 0, 552, 561, 555, 0, 563, 563, 563, 0, + 0, 563, 0, 0, 0, 558, 554, 0, 0, 564, + 564, 564, 559, 555, 564, 0, 565, 565, 565, 0, + 561, 565, 0, 0, 566, 566, 566, 559, 563, 566, + 567, 567, 567, 0, 561, 567, 0, 0, 568, 568, + 568, 564, 563, 568, 569, 569, 569, 0, 565, 569, + 0, 0, 564, 571, 571, 571, 566, 0, 571, 572, + 572, 572, 567, 0, 572, 565, 573, 573, 573, 567, + 568, 573, 0, 566, 0, 0, 569, 0, 574, 574, + 574, 0, 0, 574, 0, 571, 568, 575, 575, 575, + + 0, 572, 575, 0, 0, 576, 576, 576, 573, 571, + 576, 577, 577, 577, 0, 0, 577, 0, 572, 0, + 574, 0, 0, 578, 578, 578, 573, 574, 578, 575, + 579, 579, 579, 0, 0, 579, 0, 576, 0, 580, + 580, 580, 576, 577, 580, 582, 582, 582, 575, 0, + 582, 583, 583, 583, 0, 578, 583, 0, 0, 584, + 584, 584, 579, 0, 584, 585, 585, 585, 0, 584, + 585, 580, 0, 0, 586, 586, 586, 582, 579, 586, + 588, 588, 588, 583, 580, 588, 0, 587, 587, 587, + 583, 584, 587, 0, 0, 582, 0, 585, 589, 589, + + 589, 0, 0, 589, 0, 0, 586, 0, 0, 586, + 0, 0, 588, 0, 0, 585, 590, 590, 590, 587, + 0, 590, 587, 588, 591, 591, 591, 0, 0, 591, + 589, 0, 0, 589, 592, 592, 592, 0, 0, 592, + 593, 593, 593, 0, 0, 593, 0, 0, 590, 595, + 595, 595, 0, 0, 595, 0, 591, 596, 596, 596, + 591, 0, 596, 597, 597, 597, 592, 596, 597, 0, + 590, 0, 593, 598, 598, 598, 0, 0, 598, 0, + 0, 595, 599, 599, 599, 0, 0, 599, 0, 596, + 0, 0, 595, 0, 0, 597, 600, 600, 600, 0, + + 0, 600, 597, 0, 0, 598, 601, 601, 601, 598, + 0, 601, 0, 0, 599, 0, 0, 599, 602, 602, + 602, 0, 0, 602, 603, 603, 603, 0, 600, 603, + 604, 604, 604, 0, 0, 604, 0, 0, 601, 605, + 605, 605, 0, 0, 605, 0, 0, 600, 0, 0, + 602, 0, 601, 602, 0, 0, 603, 0, 606, 606, + 606, 0, 604, 606, 607, 607, 607, 0, 0, 607, + 0, 605, 0, 604, 608, 608, 608, 0, 0, 608, + 609, 609, 609, 0, 0, 609, 610, 610, 610, 0, + 606, 610, 611, 611, 611, 0, 607, 611, 0, 0, + + 0, 0, 0, 606, 0, 0, 608, 0, 612, 612, + 612, 0, 609, 612, 0, 0, 0, 608, 610, 609, + 613, 613, 613, 0, 611, 613, 0, 0, 614, 614, + 614, 611, 610, 614, 616, 616, 616, 0, 0, 616, + 612, 0, 617, 617, 617, 0, 0, 617, 0, 0, + 0, 0, 613, 612, 618, 618, 618, 0, 0, 618, + 614, 0, 619, 619, 619, 0, 616, 619, 0, 0, + 613, 0, 0, 616, 617, 614, 0, 620, 620, 620, + 0, 617, 620, 621, 621, 621, 618, 0, 621, 0, + 624, 624, 624, 618, 619, 624, 0, 625, 625, 625, + + 0, 0, 625, 626, 626, 626, 0, 0, 626, 620, + 0, 627, 627, 627, 619, 621, 627, 0, 628, 628, + 628, 0, 624, 628, 0, 0, 624, 621, 620, 625, + 0, 0, 629, 629, 629, 626, 625, 629, 0, 0, + 630, 630, 630, 627, 0, 630, 631, 631, 631, 0, + 628, 631, 632, 632, 632, 626, 0, 632, 633, 633, + 633, 628, 0, 633, 629, 634, 634, 634, 0, 0, + 634, 629, 630, 0, 635, 635, 635, 0, 631, 635, + 638, 638, 638, 0, 632, 638, 0, 0, 0, 631, + 633, 630, 0, 0, 640, 640, 640, 634, 632, 640, + + 634, 0, 642, 642, 642, 0, 635, 642, 633, 635, + 0, 0, 638, 0, 643, 643, 643, 0, 638, 643, + 644, 644, 644, 0, 0, 644, 640, 645, 645, 645, + 0, 640, 645, 0, 642, 646, 646, 646, 0, 0, + 646, 0, 647, 647, 647, 646, 643, 647, 0, 643, + 0, 0, 644, 642, 0, 649, 649, 649, 0, 645, + 649, 651, 651, 651, 0, 644, 651, 646, 653, 653, + 653, 0, 0, 653, 647, 654, 654, 654, 0, 0, + 654, 0, 0, 655, 655, 655, 0, 649, 655, 656, + 656, 656, 0, 651, 656, 0, 657, 657, 657, 0, + + 653, 657, 0, 649, 651, 0, 0, 654, 0, 658, + 658, 658, 0, 0, 658, 655, 0, 0, 0, 0, + 653, 656, 655, 0, 0, 654, 0, 0, 657, 0, + 0, 0, 659, 659, 659, 0, 0, 659, 0, 657, + 656, 658, 659, 660, 660, 660, 0, 0, 660, 661, + 661, 661, 0, 0, 661, 662, 662, 662, 0, 0, + 662, 663, 663, 663, 659, 0, 663, 664, 664, 664, + 0, 0, 664, 0, 0, 660, 0, 665, 665, 665, + 0, 661, 665, 659, 0, 0, 0, 662, 0, 666, + 666, 666, 662, 663, 666, 667, 667, 667, 0, 664, + + 667, 0, 0, 0, 663, 0, 664, 0, 0, 665, + 0, 0, 668, 668, 668, 0, 665, 668, 670, 670, + 670, 666, 0, 670, 666, 0, 0, 667, 671, 671, + 671, 0, 0, 671, 672, 672, 672, 0, 0, 672, + 0, 0, 667, 0, 668, 0, 673, 673, 673, 0, + 670, 673, 674, 674, 674, 0, 670, 674, 0, 0, + 671, 0, 675, 675, 675, 0, 672, 675, 671, 676, + 676, 676, 0, 672, 676, 677, 677, 677, 673, 0, + 677, 678, 678, 678, 674, 0, 678, 0, 679, 679, + 679, 674, 673, 679, 675, 680, 680, 680, 0, 0, + + 680, 676, 0, 0, 0, 675, 0, 677, 0, 681, + 681, 681, 0, 678, 681, 0, 0, 682, 682, 682, + 679, 676, 682, 684, 684, 684, 677, 680, 684, 686, + 686, 686, 0, 0, 686, 0, 679, 687, 687, 687, + 0, 681, 687, 0, 0, 0, 688, 688, 688, 682, + 0, 688, 689, 689, 689, 684, 0, 689, 0, 0, + 681, 686, 690, 690, 690, 0, 0, 690, 684, 687, + 0, 0, 0, 0, 0, 684, 686, 687, 688, 0, + 0, 691, 691, 691, 689, 0, 691, 692, 692, 692, + 0, 0, 692, 0, 690, 694, 694, 694, 0, 0, + + 694, 695, 695, 695, 0, 0, 695, 0, 0, 0, + 0, 0, 690, 691, 0, 698, 698, 698, 0, 692, + 698, 0, 0, 699, 699, 699, 692, 694, 699, 701, + 701, 701, 0, 695, 701, 702, 702, 702, 0, 0, + 702, 694, 0, 703, 703, 703, 0, 698, 703, 704, + 704, 704, 0, 0, 704, 699, 0, 706, 706, 706, + 698, 701, 706, 0, 0, 0, 0, 702, 0, 699, + 0, 707, 707, 707, 0, 703, 707, 708, 708, 708, + 701, 704, 708, 709, 709, 709, 0, 702, 709, 706, + 0, 710, 710, 710, 0, 703, 710, 0, 0, 711, + + 711, 711, 0, 707, 711, 712, 712, 712, 0, 708, + 712, 713, 713, 713, 707, 709, 713, 0, 0, 715, + 715, 715, 709, 710, 715, 717, 717, 717, 708, 710, + 717, 711, 0, 0, 0, 0, 0, 712, 711, 719, + 719, 719, 0, 713, 719, 0, 0, 0, 712, 0, + 713, 715, 0, 720, 720, 720, 0, 717, 720, 0, + 721, 721, 721, 0, 717, 721, 715, 722, 722, 722, + 0, 719, 722, 0, 0, 728, 728, 728, 719, 0, + 728, 725, 725, 725, 0, 720, 725, 0, 727, 727, + 727, 725, 721, 727, 0, 0, 720, 0, 0, 722, + + 730, 730, 730, 0, 0, 730, 722, 728, 0, 0, + 0, 721, 0, 725, 731, 731, 731, 0, 0, 731, + 727, 0, 0, 728, 0, 0, 727, 0, 732, 732, + 732, 0, 730, 732, 0, 730, 733, 733, 733, 0, + 0, 733, 734, 734, 734, 0, 731, 734, 0, 737, + 737, 737, 0, 731, 737, 0, 738, 738, 738, 0, + 732, 738, 739, 739, 739, 0, 738, 739, 733, 0, + 740, 740, 740, 0, 734, 740, 0, 741, 741, 741, + 740, 737, 741, 0, 0, 734, 0, 0, 738, 0, + 742, 742, 742, 0, 739, 742, 0, 0, 0, 0, + + 739, 0, 740, 0, 0, 737, 0, 0, 0, 741, + 743, 743, 743, 0, 0, 743, 744, 744, 744, 0, + 0, 744, 742, 0, 0, 745, 745, 745, 741, 0, + 745, 746, 746, 746, 0, 0, 746, 0, 742, 747, + 747, 747, 743, 0, 747, 748, 748, 748, 744, 0, + 748, 0, 0, 0, 0, 0, 744, 745, 0, 749, + 749, 749, 0, 746, 749, 0, 746, 750, 750, 750, + 0, 747, 750, 751, 751, 751, 0, 748, 751, 0, + 0, 0, 0, 751, 0, 747, 0, 752, 752, 752, + 0, 749, 752, 0, 0, 753, 753, 753, 0, 750, + + 753, 754, 754, 754, 0, 751, 754, 757, 757, 757, + 0, 749, 757, 758, 758, 758, 0, 0, 758, 752, + 0, 0, 750, 758, 0, 752, 0, 753, 0, 759, + 759, 759, 0, 754, 759, 761, 761, 761, 753, 757, + 761, 760, 760, 760, 0, 758, 760, 762, 762, 762, + 0, 760, 762, 0, 0, 757, 0, 763, 763, 763, + 0, 759, 763, 765, 765, 765, 0, 761, 765, 767, + 767, 767, 0, 760, 767, 768, 768, 768, 759, 762, + 768, 770, 770, 770, 0, 0, 770, 761, 0, 763, + 0, 771, 771, 771, 0, 765, 771, 772, 772, 772, + + 0, 767, 772, 0, 763, 0, 765, 768, 0, 0, + 773, 773, 773, 770, 768, 773, 774, 774, 774, 0, + 767, 774, 0, 771, 770, 0, 771, 0, 0, 772, + 0, 776, 776, 776, 0, 0, 776, 0, 778, 778, + 778, 0, 773, 778, 0, 772, 0, 0, 774, 773, + 779, 779, 779, 0, 0, 779, 780, 780, 780, 0, + 0, 780, 774, 776, 781, 781, 781, 0, 0, 781, + 778, 783, 783, 783, 0, 0, 783, 0, 776, 0, + 0, 783, 779, 778, 784, 784, 784, 0, 780, 784, + 785, 785, 785, 0, 0, 785, 781, 0, 0, 0, + + 779, 0, 0, 783, 786, 786, 786, 781, 780, 786, + 787, 787, 787, 0, 0, 787, 784, 0, 788, 788, + 788, 0, 785, 788, 0, 784, 789, 789, 789, 785, + 0, 789, 790, 790, 790, 0, 786, 790, 791, 791, + 791, 0, 787, 791, 792, 792, 792, 0, 791, 792, + 788, 0, 0, 0, 792, 0, 787, 0, 789, 0, + 0, 788, 0, 0, 790, 0, 793, 793, 793, 0, + 791, 793, 794, 794, 794, 789, 792, 794, 795, 795, + 795, 0, 0, 795, 796, 796, 796, 0, 0, 796, + 797, 797, 797, 0, 0, 797, 0, 0, 793, 0, + + 0, 0, 0, 0, 794, 793, 798, 798, 798, 0, + 795, 798, 799, 799, 799, 0, 796, 799, 0, 0, + 794, 795, 797, 801, 801, 801, 0, 0, 801, 0, + 796, 0, 0, 797, 802, 802, 802, 0, 798, 802, + 803, 803, 803, 0, 799, 803, 805, 805, 805, 0, + 0, 805, 806, 806, 806, 801, 0, 806, 0, 807, + 807, 807, 801, 799, 807, 0, 802, 0, 808, 808, + 808, 0, 803, 808, 0, 809, 809, 809, 805, 0, + 809, 0, 0, 805, 806, 0, 802, 0, 810, 810, + 810, 807, 803, 810, 811, 811, 811, 0, 0, 811, + + 808, 806, 0, 0, 0, 808, 807, 809, 813, 813, + 813, 0, 0, 813, 814, 814, 814, 0, 0, 814, + 810, 809, 0, 815, 815, 815, 811, 810, 815, 816, + 816, 816, 811, 815, 816, 0, 817, 817, 817, 0, + 813, 817, 818, 818, 818, 0, 814, 818, 819, 819, + 819, 0, 0, 819, 0, 815, 0, 820, 820, 820, + 0, 816, 820, 0, 0, 821, 821, 821, 817, 0, + 821, 0, 816, 0, 818, 0, 0, 822, 822, 822, + 819, 818, 822, 823, 823, 823, 0, 0, 823, 820, + 0, 0, 0, 817, 0, 0, 820, 821, 826, 826, + + 826, 0, 0, 826, 821, 827, 827, 827, 0, 822, + 827, 828, 828, 828, 0, 823, 828, 0, 0, 829, + 829, 829, 823, 0, 829, 0, 831, 831, 831, 0, + 826, 831, 0, 832, 832, 832, 0, 827, 832, 834, + 834, 834, 0, 828, 834, 0, 0, 0, 828, 0, + 826, 829, 0, 827, 0, 835, 835, 835, 831, 0, + 835, 836, 836, 836, 0, 832, 836, 0, 0, 829, + 0, 834, 0, 837, 837, 837, 0, 831, 837, 838, + 838, 838, 0, 832, 838, 0, 834, 835, 0, 839, + 839, 839, 0, 836, 839, 0, 0, 0, 835, 840, + + 840, 840, 0, 0, 840, 837, 0, 0, 836, 840, + 0, 838, 841, 841, 841, 0, 0, 841, 837, 0, + 0, 839, 838, 842, 842, 842, 0, 0, 842, 0, + 0, 840, 0, 843, 843, 843, 0, 0, 843, 0, + 839, 844, 844, 844, 841, 0, 844, 845, 845, 845, + 0, 0, 845, 0, 0, 842, 846, 846, 846, 0, + 0, 846, 0, 0, 841, 843, 847, 847, 847, 842, + 0, 847, 0, 844, 0, 0, 848, 848, 848, 845, + 844, 848, 0, 0, 843, 849, 849, 849, 846, 0, + 849, 850, 850, 850, 0, 845, 850, 0, 847, 846, + + 851, 851, 851, 0, 0, 851, 0, 0, 848, 852, + 852, 852, 0, 0, 852, 0, 0, 849, 0, 848, + 0, 847, 0, 850, 849, 853, 853, 853, 0, 0, + 853, 0, 851, 854, 854, 854, 0, 0, 854, 0, + 0, 852, 0, 855, 855, 855, 0, 852, 855, 0, + 0, 851, 0, 856, 856, 856, 0, 853, 856, 858, + 858, 858, 0, 0, 858, 854, 0, 0, 854, 859, + 859, 859, 853, 0, 859, 855, 860, 860, 860, 0, + 0, 860, 0, 855, 0, 856, 0, 861, 861, 861, + 0, 858, 861, 862, 862, 862, 0, 0, 862, 0, + + 0, 859, 866, 866, 866, 0, 0, 866, 860, 867, + 867, 867, 0, 0, 867, 0, 0, 860, 0, 861, + 0, 868, 868, 868, 0, 862, 868, 870, 870, 870, + 861, 0, 870, 0, 866, 0, 862, 870, 871, 871, + 871, 867, 0, 871, 872, 872, 872, 0, 0, 872, + 873, 873, 873, 868, 0, 873, 0, 0, 0, 870, + 868, 867, 874, 874, 874, 0, 0, 874, 0, 0, + 871, 0, 875, 875, 875, 0, 872, 875, 876, 876, + 876, 0, 873, 876, 878, 878, 878, 0, 871, 878, + 879, 879, 879, 0, 874, 879, 872, 0, 0, 0, + + 0, 873, 0, 0, 875, 874, 0, 0, 0, 0, + 876, 0, 0, 0, 0, 0, 878, 0, 0, 0, + 0, 0, 879, 878, 876, 882, 882, 882, 882, 882, + 882, 882, 883, 883, 883, 883, 883, 883, 883, 884, + 0, 884, 884, 884, 884, 884, 885, 0, 885, 0, + 885, 885, 885, 886, 886, 886, 886, 886, 886, 886, + 887, 887, 887, 887, 887, 887, 887, 888, 0, 888, + 888, 888, 888, 888, 889, 889, 0, 889, 890, 890, + 890, 890, 890, 891, 891, 892, 892, 893, 893, 894, + 894, 881, 881, 881, 881, 881, 881, 881, 881, 881, + + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, + 881, 881 } ; static yy_state_type yy_last_accepting_state; @@ -2035,7 +2303,7 @@ static char *yy_last_accepting_cpos; extern int parser6__flex_debug; int parser6__flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[111] = +static yyconst flex_int16_t yy_rule_linenum[114] = { 0, 130, 132, 134, 139, 140, 145, 146, 147, 159, 162, 167, 174, 183, 192, 201, 210, 219, 228, 240, 250, @@ -2046,9 +2314,10 @@ static yyconst flex_int16_t yy_rule_linenum[111] = 644, 653, 662, 671, 682, 692, 701, 711, 720, 729, 738, 747, 756, 765, 775, 784, 793, 802, 811, 820, 829, 838, 847, 856, 865, 874, 883, 892, 901, 910, - 919, 928, 937, 1035, 1040, 1045, 1050, 1051, 1052, 1053, + 919, 928, 937, 946, 955, 964, 1062, 1067, 1072, 1077, - 1054, 1055, 1057, 1075, 1088, 1093, 1097, 1099, 1101, 1103 + 1078, 1079, 1080, 1081, 1082, 1084, 1102, 1115, 1120, 1124, + 1126, 1128, 1130 } ; /* The intent behind this definition is that it'll catch @@ -2119,7 +2388,7 @@ unsigned int comment_start_line = 0; // by moving it ahead by parser6_leng bytes. parser6_leng specifies the length of the // currently matched token. #define YY_USER_ACTION driver.loc_.columns(parser6_leng); -#line 2123 "dhcp6_lexer.cc" +#line 2392 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2445,7 +2714,7 @@ YY_DECL } -#line 2449 "dhcp6_lexer.cc" +#line 2718 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2474,13 +2743,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 773 ) + if ( yy_current_state >= 882 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_current_state != 772 ); + while ( yy_current_state != 881 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2499,13 +2768,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 111 ) + else if ( yy_act < 114 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], parser6_text ); - else if ( yy_act == 111 ) + else if ( yy_act == 114 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", parser6_text ); - else if ( yy_act == 112 ) + else if ( yy_act == 115 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3439,10 +3708,10 @@ YY_RULE_SETUP #line 802 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DUID_TYPE: - return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_); + case isc::dhcp::Parser6Context::SERVER_ID: + return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_); } } YY_BREAK @@ -3451,10 +3720,10 @@ YY_RULE_SETUP #line 811 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DUID_TYPE: - return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_); + case isc::dhcp::Parser6Context::SERVER_ID: + return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_); } } YY_BREAK @@ -3463,10 +3732,10 @@ YY_RULE_SETUP #line 820 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DUID_TYPE: - return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_); + case isc::dhcp::Parser6Context::SERVER_ID: + return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_); } } YY_BREAK @@ -3476,9 +3745,9 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: - return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_); } } YY_BREAK @@ -3487,10 +3756,10 @@ YY_RULE_SETUP #line 838 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::SERVER_ID: - return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_); + case isc::dhcp::Parser6Context::DHCP6: + return isc::dhcp::Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_); } } YY_BREAK @@ -3499,10 +3768,10 @@ YY_RULE_SETUP #line 847 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::SERVER_ID: - return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_); + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_); } } YY_BREAK @@ -3511,10 +3780,10 @@ YY_RULE_SETUP #line 856 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::SERVER_ID: - return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_); + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_); } } YY_BREAK @@ -3523,10 +3792,10 @@ YY_RULE_SETUP #line 865 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - return isc::dhcp::Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING(driver.loc_); + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_HOLD_RECLAIMED_TIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_); } } YY_BREAK @@ -3535,6 +3804,42 @@ YY_RULE_SETUP #line 874 "dhcp6_lexer.ll" { switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_LEASES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_); + } +} + YY_BREAK +case 87: +YY_RULE_SETUP +#line 883 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_); + } +} + YY_BREAK +case 88: +YY_RULE_SETUP +#line 892 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_); + } +} + YY_BREAK +case 89: +YY_RULE_SETUP +#line 901 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_); default: @@ -3542,9 +3847,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 883 "dhcp6_lexer.ll" +#line 910 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3554,9 +3859,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 892 "dhcp6_lexer.ll" +#line 919 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3566,9 +3871,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 92: YY_RULE_SETUP -#line 901 "dhcp6_lexer.ll" +#line 928 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3578,9 +3883,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 910 "dhcp6_lexer.ll" +#line 937 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3590,9 +3895,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 919 "dhcp6_lexer.ll" +#line 946 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3602,9 +3907,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 95: YY_RULE_SETUP -#line 928 "dhcp6_lexer.ll" +#line 955 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3614,9 +3919,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 96: YY_RULE_SETUP -#line 937 "dhcp6_lexer.ll" +#line 964 "dhcp6_lexer.ll" { // A string has been matched. It contains the actual string and single quotes. // We need to get those quotes out of the way and just use its content, e.g. @@ -3715,65 +4020,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 94: -/* rule 94 can match eol */ +case 97: +/* rule 97 can match eol */ YY_RULE_SETUP -#line 1035 "dhcp6_lexer.ll" +#line 1062 "dhcp6_lexer.ll" { // Bad string with a forbidden control character inside driver.error(driver.loc_, "Invalid control in " + std::string(parser6_text)); } YY_BREAK -case 95: -/* rule 95 can match eol */ +case 98: +/* rule 98 can match eol */ YY_RULE_SETUP -#line 1040 "dhcp6_lexer.ll" +#line 1067 "dhcp6_lexer.ll" { // Bad string with a bad escape inside driver.error(driver.loc_, "Bad escape in " + std::string(parser6_text)); } YY_BREAK -case 96: +case 99: YY_RULE_SETUP -#line 1045 "dhcp6_lexer.ll" +#line 1072 "dhcp6_lexer.ll" { // Bad string with an open escape at the end driver.error(driver.loc_, "Overflow escape in " + std::string(parser6_text)); } YY_BREAK -case 97: +case 100: YY_RULE_SETUP -#line 1050 "dhcp6_lexer.ll" +#line 1077 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 98: +case 101: YY_RULE_SETUP -#line 1051 "dhcp6_lexer.ll" +#line 1078 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 99: +case 102: YY_RULE_SETUP -#line 1052 "dhcp6_lexer.ll" +#line 1079 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 100: +case 103: YY_RULE_SETUP -#line 1053 "dhcp6_lexer.ll" +#line 1080 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 101: +case 104: YY_RULE_SETUP -#line 1054 "dhcp6_lexer.ll" +#line 1081 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 102: +case 105: YY_RULE_SETUP -#line 1055 "dhcp6_lexer.ll" +#line 1082 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 103: +case 106: YY_RULE_SETUP -#line 1057 "dhcp6_lexer.ll" +#line 1084 "dhcp6_lexer.ll" { // An integer was found. std::string tmp(parser6_text); @@ -3792,9 +4097,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 104: +case 107: YY_RULE_SETUP -#line 1075 "dhcp6_lexer.ll" +#line 1102 "dhcp6_lexer.ll" { // A floating point was found. std::string tmp(parser6_text); @@ -3808,43 +4113,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 105: +case 108: YY_RULE_SETUP -#line 1088 "dhcp6_lexer.ll" +#line 1115 "dhcp6_lexer.ll" { string tmp(parser6_text); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 106: +case 109: YY_RULE_SETUP -#line 1093 "dhcp6_lexer.ll" +#line 1120 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 107: +case 110: YY_RULE_SETUP -#line 1097 "dhcp6_lexer.ll" +#line 1124 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 108: +case 111: YY_RULE_SETUP -#line 1099 "dhcp6_lexer.ll" +#line 1126 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 109: +case 112: YY_RULE_SETUP -#line 1101 "dhcp6_lexer.ll" +#line 1128 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 110: +case 113: YY_RULE_SETUP -#line 1103 "dhcp6_lexer.ll" +#line 1130 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(parser6_text)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1105 "dhcp6_lexer.ll" +#line 1132 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -3868,12 +4173,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 111: +case 114: YY_RULE_SETUP -#line 1128 "dhcp6_lexer.ll" +#line 1155 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 3877 "dhcp6_lexer.cc" +#line 4182 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -4190,7 +4495,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 773 ) + if ( yy_current_state >= 882 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4223,11 +4528,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 773 ) + if ( yy_current_state >= 882 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 772); + yy_is_jam = (yy_current_state == 881); return yy_is_jam ? 0 : yy_current_state; } @@ -4976,7 +5281,7 @@ void parser6_free (void * ptr ) /* %ok-for-header */ -#line 1128 "dhcp6_lexer.ll" +#line 1155 "dhcp6_lexer.ll" diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 340cc20cae..26a4588e5f 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -871,6 +871,60 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } +\"reclaim-timer-wait-time\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_); + } +} + +\"flush-reclaimed-timer-wait-time\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_); + } +} + +\"hold-reclaimed-time\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_HOLD_RECLAIMED_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_); + } +} + +\"max-reclaim-leases\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_LEASES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_); + } +} + +\"max-reclaim-time\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_); + } +} + +\"unwarned-reclaim-cycles\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: + return isc::dhcp::Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_); + } +} + \"dhcp4o6-port\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 59b6629395..15a89469f5 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -253,24 +253,24 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.move< ElementPtr > (that.value); break; - case 105: // "boolean" + case 111: // "boolean" value.move< bool > (that.value); break; - case 104: // "floating point" + case 110: // "floating point" value.move< double > (that.value); break; - case 103: // "integer" + case 109: // "integer" value.move< int64_t > (that.value); break; - case 102: // "constant string" + case 108: // "constant string" value.move< std::string > (that.value); break; @@ -289,24 +289,24 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.copy< ElementPtr > (that.value); break; - case 105: // "boolean" + case 111: // "boolean" value.copy< bool > (that.value); break; - case 104: // "floating point" + case 110: // "floating point" value.copy< double > (that.value); break; - case 103: // "integer" + case 109: // "integer" value.copy< int64_t > (that.value); break; - case 102: // "constant string" + case 108: // "constant string" value.copy< std::string > (that.value); break; @@ -346,44 +346,44 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 102: // "constant string" + case 108: // "constant string" -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< std::string > (); } #line 354 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 103: // "integer" + case 109: // "integer" -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< int64_t > (); } #line 361 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 104: // "floating point" + case 110: // "floating point" -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< double > (); } #line 368 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 105: // "boolean" + case 111: // "boolean" -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< bool > (); } #line 375 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 119: // value + case 125: // value -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 382 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 338: // duid_type + case 350: // duid_type -#line 193 "dhcp6_parser.yy" // lalr1.cc:636 +#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 389 "dhcp6_parser.cc" // lalr1.cc:636 break; @@ -585,24 +585,24 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type yylhs.value.build< ElementPtr > (); break; - case 105: // "boolean" + case 111: // "boolean" yylhs.value.build< bool > (); break; - case 104: // "floating point" + case 110: // "floating point" yylhs.value.build< double > (); break; - case 103: // "integer" + case 109: // "integer" yylhs.value.build< int64_t > (); break; - case 102: // "constant string" + case 108: // "constant string" yylhs.value.build< std::string > (); break; @@ -624,115 +624,115 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 202 "dhcp6_parser.yy" // lalr1.cc:859 +#line 208 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 630 "dhcp6_parser.cc" // lalr1.cc:859 break; case 4: -#line 203 "dhcp6_parser.yy" // lalr1.cc:859 +#line 209 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.CONFIG; } #line 636 "dhcp6_parser.cc" // lalr1.cc:859 break; case 6: -#line 204 "dhcp6_parser.yy" // lalr1.cc:859 +#line 210 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP6; } #line 642 "dhcp6_parser.cc" // lalr1.cc:859 break; case 8: -#line 205 "dhcp6_parser.yy" // lalr1.cc:859 +#line 211 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 648 "dhcp6_parser.cc" // lalr1.cc:859 break; case 10: -#line 206 "dhcp6_parser.yy" // lalr1.cc:859 +#line 212 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.SUBNET6; } #line 654 "dhcp6_parser.cc" // lalr1.cc:859 break; case 12: -#line 207 "dhcp6_parser.yy" // lalr1.cc:859 +#line 213 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.POOLS; } #line 660 "dhcp6_parser.cc" // lalr1.cc:859 break; case 14: -#line 208 "dhcp6_parser.yy" // lalr1.cc:859 +#line 214 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.PD_POOLS; } #line 666 "dhcp6_parser.cc" // lalr1.cc:859 break; case 16: -#line 209 "dhcp6_parser.yy" // lalr1.cc:859 +#line 215 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.RESERVATIONS; } #line 672 "dhcp6_parser.cc" // lalr1.cc:859 break; case 18: -#line 210 "dhcp6_parser.yy" // lalr1.cc:859 +#line 216 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DEF; } #line 678 "dhcp6_parser.cc" // lalr1.cc:859 break; case 20: -#line 211 "dhcp6_parser.yy" // lalr1.cc:859 +#line 217 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DATA; } #line 684 "dhcp6_parser.cc" // lalr1.cc:859 break; case 22: -#line 212 "dhcp6_parser.yy" // lalr1.cc:859 +#line 218 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 690 "dhcp6_parser.cc" // lalr1.cc:859 break; case 24: -#line 220 "dhcp6_parser.yy" // lalr1.cc:859 +#line 226 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 696 "dhcp6_parser.cc" // lalr1.cc:859 break; case 25: -#line 221 "dhcp6_parser.yy" // lalr1.cc:859 +#line 227 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 702 "dhcp6_parser.cc" // lalr1.cc:859 break; case 26: -#line 222 "dhcp6_parser.yy" // lalr1.cc:859 +#line 228 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 708 "dhcp6_parser.cc" // lalr1.cc:859 break; case 27: -#line 223 "dhcp6_parser.yy" // lalr1.cc:859 +#line 229 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 714 "dhcp6_parser.cc" // lalr1.cc:859 break; case 28: -#line 224 "dhcp6_parser.yy" // lalr1.cc:859 +#line 230 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 720 "dhcp6_parser.cc" // lalr1.cc:859 break; case 29: -#line 225 "dhcp6_parser.yy" // lalr1.cc:859 +#line 231 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 726 "dhcp6_parser.cc" // lalr1.cc:859 break; case 30: -#line 226 "dhcp6_parser.yy" // lalr1.cc:859 +#line 232 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 732 "dhcp6_parser.cc" // lalr1.cc:859 break; case 31: -#line 229 "dhcp6_parser.yy" // lalr1.cc:859 +#line 235 "dhcp6_parser.yy" // lalr1.cc:859 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -741,7 +741,7 @@ namespace isc { namespace dhcp { break; case 32: -#line 234 "dhcp6_parser.yy" // lalr1.cc:859 +#line 240 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -752,7 +752,7 @@ namespace isc { namespace dhcp { break; case 33: -#line 239 "dhcp6_parser.yy" // lalr1.cc:859 +#line 245 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -762,7 +762,7 @@ namespace isc { namespace dhcp { break; case 36: -#line 250 "dhcp6_parser.yy" // lalr1.cc:859 +#line 256 "dhcp6_parser.yy" // lalr1.cc:859 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -771,7 +771,7 @@ namespace isc { namespace dhcp { break; case 37: -#line 254 "dhcp6_parser.yy" // lalr1.cc:859 +#line 260 "dhcp6_parser.yy" // lalr1.cc:859 { // map consisting of a shorter map followed by // comma and string:value @@ -781,7 +781,7 @@ namespace isc { namespace dhcp { break; case 38: -#line 261 "dhcp6_parser.yy" // lalr1.cc:859 +#line 267 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -790,7 +790,7 @@ namespace isc { namespace dhcp { break; case 39: -#line 264 "dhcp6_parser.yy" // lalr1.cc:859 +#line 270 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here } @@ -798,7 +798,7 @@ namespace isc { namespace dhcp { break; case 40: -#line 269 "dhcp6_parser.yy" // lalr1.cc:859 +#line 275 "dhcp6_parser.yy" // lalr1.cc:859 { // List parsing about to start } @@ -806,7 +806,7 @@ namespace isc { namespace dhcp { break; case 41: -#line 271 "dhcp6_parser.yy" // lalr1.cc:859 +#line 277 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -815,7 +815,7 @@ namespace isc { namespace dhcp { break; case 44: -#line 280 "dhcp6_parser.yy" // lalr1.cc:859 +#line 286 "dhcp6_parser.yy" // lalr1.cc:859 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -824,7 +824,7 @@ namespace isc { namespace dhcp { break; case 45: -#line 284 "dhcp6_parser.yy" // lalr1.cc:859 +#line 290 "dhcp6_parser.yy" // lalr1.cc:859 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -833,7 +833,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 295 "dhcp6_parser.yy" // lalr1.cc:859 +#line 301 "dhcp6_parser.yy" // lalr1.cc:859 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -844,7 +844,7 @@ namespace isc { namespace dhcp { break; case 47: -#line 305 "dhcp6_parser.yy" // lalr1.cc:859 +#line 311 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -855,7 +855,7 @@ namespace isc { namespace dhcp { break; case 48: -#line 310 "dhcp6_parser.yy" // lalr1.cc:859 +#line 316 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -865,7 +865,7 @@ namespace isc { namespace dhcp { break; case 56: -#line 329 "dhcp6_parser.yy" // lalr1.cc:859 +#line 335 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -878,7 +878,7 @@ namespace isc { namespace dhcp { break; case 57: -#line 336 "dhcp6_parser.yy" // lalr1.cc:859 +#line 342 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -890,7 +890,7 @@ namespace isc { namespace dhcp { break; case 58: -#line 346 "dhcp6_parser.yy" // lalr1.cc:859 +#line 352 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -900,7 +900,7 @@ namespace isc { namespace dhcp { break; case 59: -#line 350 "dhcp6_parser.yy" // lalr1.cc:859 +#line 356 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -908,7 +908,7 @@ namespace isc { namespace dhcp { break; case 84: -#line 384 "dhcp6_parser.yy" // lalr1.cc:859 +#line 390 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); @@ -917,7 +917,7 @@ namespace isc { namespace dhcp { break; case 85: -#line 389 "dhcp6_parser.yy" // lalr1.cc:859 +#line 395 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@ -926,7 +926,7 @@ namespace isc { namespace dhcp { break; case 86: -#line 394 "dhcp6_parser.yy" // lalr1.cc:859 +#line 400 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@ -935,7 +935,7 @@ namespace isc { namespace dhcp { break; case 87: -#line 399 "dhcp6_parser.yy" // lalr1.cc:859 +#line 405 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@ -944,7 +944,7 @@ namespace isc { namespace dhcp { break; case 88: -#line 404 "dhcp6_parser.yy" // lalr1.cc:859 +#line 410 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); @@ -953,7 +953,7 @@ namespace isc { namespace dhcp { break; case 89: -#line 409 "dhcp6_parser.yy" // lalr1.cc:859 +#line 415 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); @@ -964,7 +964,7 @@ namespace isc { namespace dhcp { break; case 90: -#line 414 "dhcp6_parser.yy" // lalr1.cc:859 +#line 420 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -973,7 +973,7 @@ namespace isc { namespace dhcp { break; case 91: -#line 419 "dhcp6_parser.yy" // lalr1.cc:859 +#line 425 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { break; case 92: -#line 423 "dhcp6_parser.yy" // lalr1.cc:859 +#line 429 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 93: -#line 427 "dhcp6_parser.yy" // lalr1.cc:859 +#line 433 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); @@ -1002,7 +1002,7 @@ namespace isc { namespace dhcp { break; case 94: -#line 432 "dhcp6_parser.yy" // lalr1.cc:859 +#line 438 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1011,7 +1011,7 @@ namespace isc { namespace dhcp { break; case 95: -#line 437 "dhcp6_parser.yy" // lalr1.cc:859 +#line 443 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); @@ -1022,7 +1022,7 @@ namespace isc { namespace dhcp { break; case 96: -#line 442 "dhcp6_parser.yy" // lalr1.cc:859 +#line 448 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1031,7 +1031,7 @@ namespace isc { namespace dhcp { break; case 97: -#line 447 "dhcp6_parser.yy" // lalr1.cc:859 +#line 453 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); @@ -1042,7 +1042,7 @@ namespace isc { namespace dhcp { break; case 98: -#line 452 "dhcp6_parser.yy" // lalr1.cc:859 +#line 458 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1051,7 +1051,7 @@ namespace isc { namespace dhcp { break; case 110: -#line 472 "dhcp6_parser.yy" // lalr1.cc:859 +#line 478 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1059,7 +1059,7 @@ namespace isc { namespace dhcp { break; case 111: -#line 474 "dhcp6_parser.yy" // lalr1.cc:859 +#line 480 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); @@ -1069,7 +1069,7 @@ namespace isc { namespace dhcp { break; case 112: -#line 480 "dhcp6_parser.yy" // lalr1.cc:859 +#line 486 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1077,7 +1077,7 @@ namespace isc { namespace dhcp { break; case 113: -#line 482 "dhcp6_parser.yy" // lalr1.cc:859 +#line 488 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1087,7 +1087,7 @@ namespace isc { namespace dhcp { break; case 114: -#line 488 "dhcp6_parser.yy" // lalr1.cc:859 +#line 494 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1095,7 +1095,7 @@ namespace isc { namespace dhcp { break; case 115: -#line 490 "dhcp6_parser.yy" // lalr1.cc:859 +#line 496 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1105,7 +1105,7 @@ namespace isc { namespace dhcp { break; case 116: -#line 496 "dhcp6_parser.yy" // lalr1.cc:859 +#line 502 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1113,7 +1113,7 @@ namespace isc { namespace dhcp { break; case 117: -#line 498 "dhcp6_parser.yy" // lalr1.cc:859 +#line 504 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1123,7 +1123,7 @@ namespace isc { namespace dhcp { break; case 118: -#line 504 "dhcp6_parser.yy" // lalr1.cc:859 +#line 510 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1131,7 +1131,7 @@ namespace isc { namespace dhcp { break; case 119: -#line 506 "dhcp6_parser.yy" // lalr1.cc:859 +#line 512 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp { break; case 120: -#line 512 "dhcp6_parser.yy" // lalr1.cc:859 +#line 518 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); @@ -1150,7 +1150,7 @@ namespace isc { namespace dhcp { break; case 121: -#line 517 "dhcp6_parser.yy" // lalr1.cc:859 +#line 523 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); @@ -1159,7 +1159,7 @@ namespace isc { namespace dhcp { break; case 122: -#line 522 "dhcp6_parser.yy" // lalr1.cc:859 +#line 528 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); @@ -1168,7 +1168,7 @@ namespace isc { namespace dhcp { break; case 123: -#line 527 "dhcp6_parser.yy" // lalr1.cc:859 +#line 533 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); @@ -1179,7 +1179,7 @@ namespace isc { namespace dhcp { break; case 124: -#line 532 "dhcp6_parser.yy" // lalr1.cc:859 +#line 538 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1188,7 +1188,7 @@ namespace isc { namespace dhcp { break; case 129: -#line 545 "dhcp6_parser.yy" // lalr1.cc:859 +#line 551 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@ -1197,7 +1197,7 @@ namespace isc { namespace dhcp { break; case 130: -#line 550 "dhcp6_parser.yy" // lalr1.cc:859 +#line 556 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@ -1206,7 +1206,7 @@ namespace isc { namespace dhcp { break; case 131: -#line 555 "dhcp6_parser.yy" // lalr1.cc:859 +#line 561 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); @@ -1217,7 +1217,7 @@ namespace isc { namespace dhcp { break; case 132: -#line 560 "dhcp6_parser.yy" // lalr1.cc:859 +#line 566 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1226,7 +1226,7 @@ namespace isc { namespace dhcp { break; case 137: -#line 573 "dhcp6_parser.yy" // lalr1.cc:859 +#line 579 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); @@ -1235,7 +1235,7 @@ namespace isc { namespace dhcp { break; case 138: -#line 578 "dhcp6_parser.yy" // lalr1.cc:859 +#line 584 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); @@ -1246,7 +1246,7 @@ namespace isc { namespace dhcp { break; case 139: -#line 583 "dhcp6_parser.yy" // lalr1.cc:859 +#line 589 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1255,7 +1255,7 @@ namespace isc { namespace dhcp { break; case 140: -#line 588 "dhcp6_parser.yy" // lalr1.cc:859 +#line 594 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); @@ -1266,7 +1266,7 @@ namespace isc { namespace dhcp { break; case 141: -#line 593 "dhcp6_parser.yy" // lalr1.cc:859 +#line 599 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1275,7 +1275,7 @@ namespace isc { namespace dhcp { break; case 146: -#line 606 "dhcp6_parser.yy" // lalr1.cc:859 +#line 612 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1285,7 +1285,7 @@ namespace isc { namespace dhcp { break; case 147: -#line 610 "dhcp6_parser.yy" // lalr1.cc:859 +#line 616 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } @@ -1293,7 +1293,7 @@ namespace isc { namespace dhcp { break; case 148: -#line 614 "dhcp6_parser.yy" // lalr1.cc:859 +#line 620 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1303,7 +1303,7 @@ namespace isc { namespace dhcp { break; case 149: -#line 618 "dhcp6_parser.yy" // lalr1.cc:859 +#line 624 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -1311,7 +1311,7 @@ namespace isc { namespace dhcp { break; case 155: -#line 631 "dhcp6_parser.yy" // lalr1.cc:859 +#line 637 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1319,7 +1319,7 @@ namespace isc { namespace dhcp { break; case 156: -#line 633 "dhcp6_parser.yy" // lalr1.cc:859 +#line 639 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); @@ -1329,7 +1329,7 @@ namespace isc { namespace dhcp { break; case 157: -#line 639 "dhcp6_parser.yy" // lalr1.cc:859 +#line 645 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@ -1337,7 +1337,7 @@ namespace isc { namespace dhcp { break; case 158: -#line 641 "dhcp6_parser.yy" // lalr1.cc:859 +#line 647 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -1346,18 +1346,18 @@ namespace isc { namespace dhcp { break; case 159: -#line 647 "dhcp6_parser.yy" // lalr1.cc:859 +#line 653 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); - ctx.enter(ctx.NO_KEYWORD); + ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } #line 1357 "dhcp6_parser.cc" // lalr1.cc:859 break; case 160: -#line 652 "dhcp6_parser.yy" // lalr1.cc:859 +#line 658 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1365,47 +1365,92 @@ namespace isc { namespace dhcp { #line 1366 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 163: -#line 664 "dhcp6_parser.yy" // lalr1.cc:859 + case 169: +#line 675 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), value); + ctx.stack_.back()->set("reclaim-timer-wait-time", value); } #line 1375 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 164: -#line 672 "dhcp6_parser.yy" // lalr1.cc:859 + case 170: +#line 680 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); +} +#line 1384 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 171: +#line 685 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hold-reclaimed-time", value); +} +#line 1393 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 172: +#line 690 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-leases", value); +} +#line 1402 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 173: +#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-time", value); +} +#line 1411 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 174: +#line 700 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("unwarned-reclaim-cycles", value); +} +#line 1420 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 175: +#line 708 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 1386 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1431 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 165: -#line 677 "dhcp6_parser.yy" // lalr1.cc:859 + case 176: +#line 713 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1395 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1440 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 170: -#line 697 "dhcp6_parser.yy" // lalr1.cc:859 + case 181: +#line 733 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1405 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 171: -#line 701 "dhcp6_parser.yy" // lalr1.cc:859 + case 182: +#line 737 "dhcp6_parser.yy" // lalr1.cc:859 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1424,1183 +1469,1183 @@ namespace isc { namespace dhcp { // } ctx.stack_.pop_back(); } -#line 1428 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1473 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 172: -#line 720 "dhcp6_parser.yy" // lalr1.cc:859 + case 183: +#line 756 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1438 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1483 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 173: -#line 724 "dhcp6_parser.yy" // lalr1.cc:859 + case 184: +#line 760 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1446 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1491 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 193: -#line 753 "dhcp6_parser.yy" // lalr1.cc:859 + case 204: +#line 789 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1454 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1499 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 194: -#line 755 "dhcp6_parser.yy" // lalr1.cc:859 + case 205: +#line 791 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 1464 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1509 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 195: -#line 761 "dhcp6_parser.yy" // lalr1.cc:859 + case 206: +#line 797 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1472 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1517 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 196: -#line 763 "dhcp6_parser.yy" // lalr1.cc:859 + case 207: +#line 799 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 1482 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1527 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 197: -#line 769 "dhcp6_parser.yy" // lalr1.cc:859 + case 208: +#line 805 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1490 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1535 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 198: -#line 771 "dhcp6_parser.yy" // lalr1.cc:859 + case 209: +#line 807 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 1500 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1545 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 199: -#line 777 "dhcp6_parser.yy" // lalr1.cc:859 + case 210: +#line 813 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.CLIENT_CLASS); } -#line 1508 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1553 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 200: -#line 779 "dhcp6_parser.yy" // lalr1.cc:859 + case 211: +#line 815 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 1518 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1563 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 201: -#line 785 "dhcp6_parser.yy" // lalr1.cc:859 + case 212: +#line 821 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1526 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1571 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 202: -#line 787 "dhcp6_parser.yy" // lalr1.cc:859 + case 213: +#line 823 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservation-mode", rm); ctx.leave(); } -#line 1536 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1581 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 203: -#line 793 "dhcp6_parser.yy" // lalr1.cc:859 + case 214: +#line 829 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 1545 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1590 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 204: -#line 798 "dhcp6_parser.yy" // lalr1.cc:859 + case 215: +#line 834 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 1554 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1599 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 205: -#line 807 "dhcp6_parser.yy" // lalr1.cc:859 + case 216: +#line 843 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 1565 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 206: -#line 812 "dhcp6_parser.yy" // lalr1.cc:859 + case 217: +#line 848 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1574 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 211: -#line 829 "dhcp6_parser.yy" // lalr1.cc:859 + case 222: +#line 865 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1584 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1629 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 212: -#line 833 "dhcp6_parser.yy" // lalr1.cc:859 + case 223: +#line 869 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1592 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1637 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 213: -#line 840 "dhcp6_parser.yy" // lalr1.cc:859 + case 224: +#line 876 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1602 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1647 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 214: -#line 844 "dhcp6_parser.yy" // lalr1.cc:859 + case 225: +#line 880 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1655 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 228: -#line 870 "dhcp6_parser.yy" // lalr1.cc:859 + case 239: +#line 906 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1664 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 230: -#line 877 "dhcp6_parser.yy" // lalr1.cc:859 + case 241: +#line 913 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1627 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1672 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 231: -#line 879 "dhcp6_parser.yy" // lalr1.cc:859 + case 242: +#line 915 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 1637 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1682 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 232: -#line 885 "dhcp6_parser.yy" // lalr1.cc:859 + case 243: +#line 921 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1645 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1690 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 233: -#line 887 "dhcp6_parser.yy" // lalr1.cc:859 + case 244: +#line 923 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 1655 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1700 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 234: -#line 893 "dhcp6_parser.yy" // lalr1.cc:859 + case 245: +#line 929 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1663 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1708 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 235: -#line 895 "dhcp6_parser.yy" // lalr1.cc:859 + case 246: +#line 931 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 1673 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1718 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 237: -#line 903 "dhcp6_parser.yy" // lalr1.cc:859 + case 248: +#line 939 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1681 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1726 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 238: -#line 905 "dhcp6_parser.yy" // lalr1.cc:859 + case 249: +#line 941 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 1691 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 239: -#line 911 "dhcp6_parser.yy" // lalr1.cc:859 + case 250: +#line 947 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 1700 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1745 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 240: -#line 920 "dhcp6_parser.yy" // lalr1.cc:859 + case 251: +#line 956 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 1711 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 241: -#line 925 "dhcp6_parser.yy" // lalr1.cc:859 + case 252: +#line 961 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1720 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1765 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 246: -#line 944 "dhcp6_parser.yy" // lalr1.cc:859 + case 257: +#line 980 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1730 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 247: -#line 948 "dhcp6_parser.yy" // lalr1.cc:859 + case 258: +#line 984 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1738 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1783 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 248: -#line 955 "dhcp6_parser.yy" // lalr1.cc:859 + case 259: +#line 991 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1748 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1793 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 249: -#line 959 "dhcp6_parser.yy" // lalr1.cc:859 + case 260: +#line 995 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1756 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1801 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 261: -#line 988 "dhcp6_parser.yy" // lalr1.cc:859 + case 272: +#line 1024 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1764 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1809 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 262: -#line 990 "dhcp6_parser.yy" // lalr1.cc:859 + case 273: +#line 1026 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 1774 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1819 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 265: -#line 1000 "dhcp6_parser.yy" // lalr1.cc:859 + case 276: +#line 1036 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 1783 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1828 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 266: -#line 1008 "dhcp6_parser.yy" // lalr1.cc:859 + case 277: +#line 1044 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 1794 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1839 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 267: -#line 1013 "dhcp6_parser.yy" // lalr1.cc:859 + case 278: +#line 1049 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1803 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1848 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 272: -#line 1028 "dhcp6_parser.yy" // lalr1.cc:859 + case 283: +#line 1064 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1813 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1858 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 273: -#line 1032 "dhcp6_parser.yy" // lalr1.cc:859 + case 284: +#line 1068 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1821 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 274: -#line 1036 "dhcp6_parser.yy" // lalr1.cc:859 + case 285: +#line 1072 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1831 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1876 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 275: -#line 1040 "dhcp6_parser.yy" // lalr1.cc:859 + case 286: +#line 1076 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1839 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1884 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 281: -#line 1053 "dhcp6_parser.yy" // lalr1.cc:859 + case 292: +#line 1089 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1847 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1892 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 282: -#line 1055 "dhcp6_parser.yy" // lalr1.cc:859 + case 293: +#line 1091 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 1857 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1902 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 283: -#line 1064 "dhcp6_parser.yy" // lalr1.cc:859 + case 294: +#line 1100 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 1868 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1913 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 284: -#line 1069 "dhcp6_parser.yy" // lalr1.cc:859 + case 295: +#line 1105 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1877 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 289: -#line 1084 "dhcp6_parser.yy" // lalr1.cc:859 + case 300: +#line 1120 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1887 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1932 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 290: -#line 1088 "dhcp6_parser.yy" // lalr1.cc:859 + case 301: +#line 1124 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1895 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1940 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: -#line 1092 "dhcp6_parser.yy" // lalr1.cc:859 + case 302: +#line 1128 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1905 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1950 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: -#line 1096 "dhcp6_parser.yy" // lalr1.cc:859 + case 303: +#line 1132 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1913 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1958 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 302: -#line 1113 "dhcp6_parser.yy" // lalr1.cc:859 + case 313: +#line 1149 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1921 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1966 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 303: -#line 1115 "dhcp6_parser.yy" // lalr1.cc:859 + case 314: +#line 1151 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 1931 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1976 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 304: -#line 1121 "dhcp6_parser.yy" // lalr1.cc:859 + case 315: +#line 1157 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 1940 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1985 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 305: -#line 1126 "dhcp6_parser.yy" // lalr1.cc:859 + case 316: +#line 1162 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1948 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1993 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 306: -#line 1128 "dhcp6_parser.yy" // lalr1.cc:859 + case 317: +#line 1164 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 1958 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2003 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 307: -#line 1134 "dhcp6_parser.yy" // lalr1.cc:859 + case 318: +#line 1170 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 1967 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2012 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 308: -#line 1139 "dhcp6_parser.yy" // lalr1.cc:859 + case 319: +#line 1175 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 1976 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2021 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 309: -#line 1147 "dhcp6_parser.yy" // lalr1.cc:859 + case 320: +#line 1183 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 1987 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2032 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 310: -#line 1152 "dhcp6_parser.yy" // lalr1.cc:859 + case 321: +#line 1188 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1996 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2041 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 315: -#line 1165 "dhcp6_parser.yy" // lalr1.cc:859 + case 326: +#line 1201 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2006 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2051 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 316: -#line 1169 "dhcp6_parser.yy" // lalr1.cc:859 + case 327: +#line 1205 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2014 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2059 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 317: -#line 1173 "dhcp6_parser.yy" // lalr1.cc:859 + case 328: +#line 1209 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2024 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2069 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 318: -#line 1177 "dhcp6_parser.yy" // lalr1.cc:859 + case 329: +#line 1213 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2032 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2077 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 331: -#line 1200 "dhcp6_parser.yy" // lalr1.cc:859 + case 342: +#line 1236 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2043 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2088 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 332: -#line 1205 "dhcp6_parser.yy" // lalr1.cc:859 + case 343: +#line 1241 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2052 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2097 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 333: -#line 1210 "dhcp6_parser.yy" // lalr1.cc:859 + case 344: +#line 1246 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2063 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2108 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 334: -#line 1215 "dhcp6_parser.yy" // lalr1.cc:859 + case 345: +#line 1251 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2072 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2117 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 335: -#line 1220 "dhcp6_parser.yy" // lalr1.cc:859 + case 346: +#line 1256 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2080 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 336: -#line 1222 "dhcp6_parser.yy" // lalr1.cc:859 + case 347: +#line 1258 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2090 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 337: -#line 1228 "dhcp6_parser.yy" // lalr1.cc:859 + case 348: +#line 1264 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2098 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2143 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 338: -#line 1230 "dhcp6_parser.yy" // lalr1.cc:859 + case 349: +#line 1266 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 2108 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2153 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 339: -#line 1236 "dhcp6_parser.yy" // lalr1.cc:859 + case 350: +#line 1272 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2116 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2161 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 340: -#line 1238 "dhcp6_parser.yy" // lalr1.cc:859 + case 351: +#line 1274 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2126 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2171 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 341: -#line 1244 "dhcp6_parser.yy" // lalr1.cc:859 + case 352: +#line 1280 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2137 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2182 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 342: -#line 1249 "dhcp6_parser.yy" // lalr1.cc:859 + case 353: +#line 1285 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2146 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2191 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 343: -#line 1257 "dhcp6_parser.yy" // lalr1.cc:859 + case 354: +#line 1293 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2157 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2202 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 344: -#line 1262 "dhcp6_parser.yy" // lalr1.cc:859 + case 355: +#line 1298 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2166 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2211 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 345: -#line 1267 "dhcp6_parser.yy" // lalr1.cc:859 + case 356: +#line 1303 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2174 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2219 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 346: -#line 1269 "dhcp6_parser.yy" // lalr1.cc:859 + case 357: +#line 1305 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", ip); ctx.leave(); } -#line 2184 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 347: -#line 1278 "dhcp6_parser.yy" // lalr1.cc:859 + case 358: +#line 1314 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2195 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2240 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 348: -#line 1283 "dhcp6_parser.yy" // lalr1.cc:859 + case 359: +#line 1319 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2204 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2249 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 351: -#line 1292 "dhcp6_parser.yy" // lalr1.cc:859 + case 362: +#line 1328 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2214 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2259 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 352: -#line 1296 "dhcp6_parser.yy" // lalr1.cc:859 + case 363: +#line 1332 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2222 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2267 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 362: -#line 1316 "dhcp6_parser.yy" // lalr1.cc:859 + case 373: +#line 1352 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2230 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2275 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 363: -#line 1318 "dhcp6_parser.yy" // lalr1.cc:859 + case 374: +#line 1354 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 2240 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2285 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 364: -#line 1327 "dhcp6_parser.yy" // lalr1.cc:859 + case 375: +#line 1363 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 2251 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2296 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 365: -#line 1332 "dhcp6_parser.yy" // lalr1.cc:859 + case 376: +#line 1368 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2260 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2305 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 375: -#line 1350 "dhcp6_parser.yy" // lalr1.cc:859 + case 386: +#line 1386 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.DUID_TYPE); } -#line 2268 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2313 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 376: -#line 1352 "dhcp6_parser.yy" // lalr1.cc:859 + case 387: +#line 1388 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2277 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2322 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 377: -#line 1357 "dhcp6_parser.yy" // lalr1.cc:859 + case 388: +#line 1393 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 2283 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2328 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 378: -#line 1358 "dhcp6_parser.yy" // lalr1.cc:859 + case 389: +#line 1394 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 2289 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2334 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 379: -#line 1359 "dhcp6_parser.yy" // lalr1.cc:859 + case 390: +#line 1395 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 2295 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 380: -#line 1362 "dhcp6_parser.yy" // lalr1.cc:859 + case 391: +#line 1398 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 2304 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2349 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 381: -#line 1367 "dhcp6_parser.yy" // lalr1.cc:859 + case 392: +#line 1403 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2312 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2357 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 382: -#line 1369 "dhcp6_parser.yy" // lalr1.cc:859 + case 393: +#line 1405 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 2322 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2367 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 383: -#line 1375 "dhcp6_parser.yy" // lalr1.cc:859 + case 394: +#line 1411 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 2331 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2376 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 384: -#line 1380 "dhcp6_parser.yy" // lalr1.cc:859 + case 395: +#line 1416 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 2340 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2385 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 385: -#line 1387 "dhcp6_parser.yy" // lalr1.cc:859 + case 396: +#line 1423 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 2349 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2394 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 386: -#line 1394 "dhcp6_parser.yy" // lalr1.cc:859 + case 397: +#line 1430 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 2360 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2405 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 387: -#line 1399 "dhcp6_parser.yy" // lalr1.cc:859 + case 398: +#line 1435 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2369 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2414 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 392: -#line 1412 "dhcp6_parser.yy" // lalr1.cc:859 + case 403: +#line 1448 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2377 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2422 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 393: -#line 1414 "dhcp6_parser.yy" // lalr1.cc:859 + case 404: +#line 1450 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 2387 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2432 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 394: -#line 1420 "dhcp6_parser.yy" // lalr1.cc:859 + case 405: +#line 1456 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2395 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2440 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 395: -#line 1422 "dhcp6_parser.yy" // lalr1.cc:859 + case 406: +#line 1458 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 2405 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 396: -#line 1430 "dhcp6_parser.yy" // lalr1.cc:859 + case 407: +#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.NO_KEYWORD); } -#line 2416 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2461 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 397: -#line 1435 "dhcp6_parser.yy" // lalr1.cc:859 + case 408: +#line 1471 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2425 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 398: -#line 1442 "dhcp6_parser.yy" // lalr1.cc:859 + case 409: +#line 1478 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2433 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2478 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 399: -#line 1444 "dhcp6_parser.yy" // lalr1.cc:859 + case 410: +#line 1480 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2442 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2487 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 400: -#line 1449 "dhcp6_parser.yy" // lalr1.cc:859 + case 411: +#line 1485 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2450 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2495 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 401: -#line 1451 "dhcp6_parser.yy" // lalr1.cc:859 + case 412: +#line 1487 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2459 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2504 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 402: -#line 1461 "dhcp6_parser.yy" // lalr1.cc:859 + case 413: +#line 1497 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2515 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 403: -#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 + case 414: +#line 1502 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2479 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2524 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 407: -#line 1483 "dhcp6_parser.yy" // lalr1.cc:859 + case 418: +#line 1519 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 2490 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2535 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 408: -#line 1488 "dhcp6_parser.yy" // lalr1.cc:859 + case 419: +#line 1524 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2499 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2544 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 411: -#line 1500 "dhcp6_parser.yy" // lalr1.cc:859 + case 422: +#line 1536 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 2509 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2554 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 412: -#line 1504 "dhcp6_parser.yy" // lalr1.cc:859 + case 423: +#line 1540 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2517 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2562 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 420: -#line 1519 "dhcp6_parser.yy" // lalr1.cc:859 + case 431: +#line 1555 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 2526 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2571 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 421: -#line 1523 "dhcp6_parser.yy" // lalr1.cc:859 + case 432: +#line 1559 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2534 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2579 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 422: -#line 1525 "dhcp6_parser.yy" // lalr1.cc:859 + case 433: +#line 1561 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 2544 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2589 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 423: -#line 1531 "dhcp6_parser.yy" // lalr1.cc:859 + case 434: +#line 1567 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 2555 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2600 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 424: -#line 1536 "dhcp6_parser.yy" // lalr1.cc:859 + case 435: +#line 1572 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2564 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2609 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 427: -#line 1545 "dhcp6_parser.yy" // lalr1.cc:859 + case 438: +#line 1581 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2574 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 428: -#line 1549 "dhcp6_parser.yy" // lalr1.cc:859 + case 439: +#line 1585 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2582 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2627 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 431: -#line 1557 "dhcp6_parser.yy" // lalr1.cc:859 + case 442: +#line 1593 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2590 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2635 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 432: -#line 1559 "dhcp6_parser.yy" // lalr1.cc:859 + case 443: +#line 1595 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 2600 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2645 "dhcp6_parser.cc" // lalr1.cc:859 break; -#line 2604 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2649 "dhcp6_parser.cc" // lalr1.cc:859 default: break; } @@ -2862,79 +2907,81 @@ namespace isc { namespace dhcp { const short int Dhcp6Parser::yypact_[] = { - 89, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 31, 21, 22, 57, 66, 92, 121, 134, - 154, 203, 207, 216, -427, -427, -427, -427, -427, -427, + 107, -427, -427, -427, -427, -427, -427, -427, -427, -427, + -427, -427, 29, 21, 32, 56, 58, 60, 67, 71, + 73, 83, 103, 108, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, 21, 72, 11, 64, - 164, 12, -7, 38, 43, 117, 125, 29, -427, 223, - 221, 228, 227, 230, -427, -427, -427, -427, 232, -427, - 30, -427, -427, -427, -427, -427, -427, -427, -427, 234, - 239, 242, 245, 246, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, 253, -427, -427, -427, 48, -427, + -427, -427, -427, -427, -427, -427, 21, -56, 12, 59, + 42, 11, -8, 95, 93, 61, 72, 50, -427, 117, + 124, 129, 134, 148, -427, -427, -427, -427, 153, -427, + 45, -427, -427, -427, -427, -427, -427, -427, -427, 196, + 198, 237, 245, 246, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, 265, -427, -427, -427, 47, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 250, -427, -427, -427, -427, -427, -427, 256, - 259, -427, -427, -427, -427, -427, -427, -427, -427, -427, - 119, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -427, 136, -427, -427, - -427, 260, -427, 261, 263, -427, -427, 167, -427, -427, + -427, -427, 217, -427, -427, -427, -427, -427, -427, 266, + 267, -427, -427, -427, -427, -427, -427, -427, -427, -427, + 63, -427, -427, -427, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, 118, -427, -427, + -427, 268, -427, 270, 272, -427, -427, 138, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 262, 265, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 267, -427, -427, -427, 268, -427, -427, - 266, 273, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 274, -427, -427, -427, -427, 269, 276, - -427, -427, -427, -427, -427, -427, -427, -427, -427, 169, - -427, -427, -427, -427, 21, 21, -427, 178, 277, 278, - 279, 280, -427, 11, -427, 281, 282, 283, 166, 185, - 186, 187, 192, 287, 288, 289, 290, 292, 293, 294, - 295, 296, 297, 202, 298, 299, 64, -427, 300, -427, - 10, 302, 303, 304, 305, 306, 211, 206, 308, 309, - 311, 312, 12, -427, 313, -7, -427, 314, 219, 315, - 220, 222, 38, -427, 316, 317, 320, 322, 323, 324, - -427, 43, 325, 326, 229, 327, 329, 330, 231, -427, - 117, 331, 235, -427, 125, 335, 337, -13, -427, -427, - -427, 338, 336, 339, 21, 21, -427, 340, 341, 342, - -427, -427, -427, -427, -427, 345, 348, 349, 350, 351, - 352, 355, 356, 357, 358, -427, 359, 360, -427, 351, - -427, -427, -427, -427, 354, 365, -427, -427, -427, 366, - 367, 243, 271, 272, -427, -427, 275, 284, 370, 371, - -427, 285, -427, 286, -427, 291, -427, -427, -427, 351, - 351, 351, 301, 307, 310, -427, 318, 319, -427, 321, - 328, 332, -427, -427, 333, -427, -427, 334, 21, -427, - 21, 64, 343, -427, -427, 164, 27, 27, 372, 373, - 374, -34, -427, -427, 23, 58, 375, 344, 34, 40, - 72, -427, 379, -427, 10, 378, 382, -427, -427, -427, - -427, -427, 383, 353, -427, -427, -427, -427, -427, -427, + -427, -427, 250, 274, -427, -427, -427, -427, -427, -427, + -427, -427, -427, 275, -427, -427, -427, 276, -427, -427, + 273, 279, -427, -427, -427, -427, -427, -427, -427, -427, + -427, -427, -427, 280, -427, -427, -427, -427, 277, 283, + -427, -427, -427, -427, -427, -427, -427, -427, -427, 156, + -427, -427, -427, -427, 21, 21, -427, 170, 284, 285, + 286, 287, -427, 12, -427, 288, 289, 290, 174, 187, + 192, 193, 194, 291, 293, 294, 295, 296, 300, 301, + 302, 303, 304, 200, 306, 307, 59, -427, 308, -427, + 8, 309, 310, 311, 312, 313, 209, 176, 315, 316, + 317, 318, 11, -427, 319, -8, -427, 320, 216, 322, + 218, 219, 95, -427, 325, 326, 327, 328, 329, 330, + -427, 93, 331, 332, 231, 335, 337, 338, 234, -427, + 61, 339, 235, -427, 72, 340, 343, 82, -427, -427, + -427, 344, 342, 346, 21, 21, -427, 347, 348, 349, + -427, -427, -427, -427, -427, 345, 352, 355, 356, 357, + 358, 359, 360, 361, 364, -427, 365, 366, -427, 357, + -427, -427, -427, -427, 367, 363, -427, -427, -427, 362, + 369, 269, 271, 278, -427, -427, 281, 282, 373, 374, + -427, 292, -427, 297, -427, 298, -427, -427, -427, 357, + 357, 357, 299, 314, 321, -427, 323, 324, -427, 333, + 334, 336, -427, -427, 341, -427, -427, 350, 21, -427, + 21, 59, 305, -427, -427, 42, 26, 26, 375, 376, + 378, -29, -427, -427, 123, 20, 380, 146, 80, 181, + -56, -427, 384, -427, 8, 385, 386, -427, -427, -427, + -427, -427, 387, 351, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 188, -427, 189, -427, -427, 384, -427, -427, - -427, -427, 387, 390, 391, -427, 190, -427, -427, -427, - -427, -427, -427, -427, -427, -427, 191, -427, 392, 393, - -427, -427, 394, 396, -427, -427, 395, 399, -427, -427, - -427, 68, -427, -427, -427, 21, -427, -427, 132, -427, - -427, -427, 145, -427, 398, 402, -427, 403, 197, -427, - -427, -427, 404, 406, 410, -427, -427, 198, -427, -427, - -427, -427, -427, -427, -427, -427, 199, -427, -427, -427, - 200, 346, -427, -427, 400, 412, -427, -427, 411, 413, - -427, -427, 416, 421, -427, -427, 389, -427, 415, 343, - -427, -427, 422, 424, 425, 427, 258, 241, 347, 27, - -427, -427, 12, -427, 372, 117, -427, 373, 125, -427, - 374, -34, -427, 419, 23, -427, 58, -427, 29, -427, - 375, 361, 344, -427, 428, 429, 362, 363, 364, 34, - -427, 433, 434, 40, -427, -427, -427, -7, -427, 378, - 38, -427, 382, 43, -427, 383, 435, -427, 436, -427, - 368, 369, 376, 377, -427, -427, -427, -427, 201, -427, - 432, -427, 437, -427, -427, -427, -427, -427, 208, -427, - -427, -427, 168, 380, -427, -427, -427, -427, 381, 385, - -427, 209, -427, 210, -427, 439, -427, 386, 442, -427, + -427, -427, 163, -427, 171, -427, -427, 372, -427, -427, + -427, -427, 392, 393, 394, -427, 175, -427, -427, -427, + -427, -427, -427, -427, -427, -427, 178, -427, 395, 388, + -427, -427, 396, 400, -427, -427, 398, 405, -427, -427, + -427, 86, -427, -427, -427, 21, -427, -427, 162, -427, + -427, -427, 233, -427, 403, 407, -427, 408, 410, 411, + 413, 414, 415, 188, -427, -427, -427, -427, -427, -427, + -427, -427, -427, 416, 417, 419, -427, -427, 189, -427, + -427, -427, -427, -427, -427, -427, -427, 190, -427, -427, + -427, 191, 353, -427, -427, 418, 422, -427, -427, 420, + 424, -427, -427, 427, 425, -427, -427, 391, -427, 426, + 305, -427, -427, 430, 431, 432, 433, 354, 368, 370, + 26, -427, -427, 11, -427, 375, 61, -427, 376, 72, + -427, 378, -29, -427, 434, 123, -427, 20, -427, 50, + -427, 380, 371, 377, 379, 381, 382, 383, 146, -427, + 435, 439, 389, 390, 397, 80, -427, 441, 442, 181, + -427, -427, -427, -8, -427, 385, 95, -427, 386, 93, + -427, 387, 443, -427, 445, -427, 399, 401, 402, 404, + -427, -427, -427, -427, 220, -427, 440, -427, 444, -427, + -427, -427, -427, -427, 221, -427, -427, -427, -427, -427, + -427, -427, -427, 186, 406, -427, -427, -427, -427, 409, + 412, -427, 223, -427, 224, -427, 446, -427, 421, 448, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -427, -427, -427, 157, - -427, 77, 442, -427, -427, 438, -427, -427, -427, 217, - -427, -427, -427, -427, -427, 440, 388, 446, 77, -427, - 448, -427, 397, -427, 444, -427, -427, 225, -427, 407, - 444, -427, -427, 218, -427, -427, 450, 407, -427, 401, - -427, -427 + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, + 240, -427, 79, 448, -427, -427, 447, -427, -427, -427, + 230, -427, -427, -427, -427, -427, 449, 423, 452, 79, + -427, 454, -427, 428, -427, 450, -427, -427, 254, -427, + 429, 450, -427, -427, 232, -427, -427, 456, 429, -427, + 436, -427, -427 }; const unsigned short int @@ -2944,108 +2991,111 @@ namespace isc { namespace dhcp { 20, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 38, 32, 28, 27, 24, 25, 26, 31, 3, 29, 30, 47, 5, 58, 7, - 91, 9, 172, 11, 274, 13, 291, 15, 317, 17, - 213, 19, 248, 21, 148, 23, 42, 34, 0, 0, - 0, 0, 0, 0, 319, 215, 250, 0, 44, 0, - 43, 0, 0, 35, 56, 402, 398, 400, 0, 55, + 91, 9, 183, 11, 285, 13, 302, 15, 328, 17, + 224, 19, 259, 21, 148, 23, 42, 34, 0, 0, + 0, 0, 0, 0, 330, 226, 261, 0, 44, 0, + 43, 0, 0, 35, 56, 413, 409, 411, 0, 55, 0, 49, 51, 53, 54, 52, 89, 95, 97, 0, - 0, 0, 0, 0, 164, 205, 240, 123, 138, 131, - 347, 140, 159, 364, 0, 386, 396, 83, 0, 60, + 0, 0, 0, 0, 175, 216, 251, 123, 138, 131, + 358, 140, 159, 375, 0, 397, 407, 83, 0, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 73, 72, 77, 78, 67, 75, 76, 74, 79, 80, 81, - 82, 93, 0, 351, 266, 283, 193, 195, 197, 0, - 0, 201, 199, 309, 343, 192, 176, 177, 178, 179, - 0, 174, 183, 184, 185, 188, 190, 186, 187, 180, - 181, 182, 189, 191, 281, 280, 279, 0, 276, 278, - 302, 0, 305, 0, 0, 301, 298, 0, 293, 295, - 296, 299, 300, 297, 341, 331, 333, 335, 337, 339, - 330, 329, 0, 320, 321, 325, 326, 323, 327, 328, - 324, 230, 118, 0, 234, 232, 237, 0, 226, 227, - 0, 216, 217, 219, 229, 220, 221, 222, 236, 223, - 224, 225, 261, 0, 259, 260, 263, 264, 0, 251, - 252, 254, 255, 256, 257, 258, 155, 157, 152, 0, + 82, 93, 0, 362, 277, 294, 204, 206, 208, 0, + 0, 212, 210, 320, 354, 203, 187, 188, 189, 190, + 0, 185, 194, 195, 196, 199, 201, 197, 198, 191, + 192, 193, 200, 202, 292, 291, 290, 0, 287, 289, + 313, 0, 316, 0, 0, 312, 309, 0, 304, 306, + 307, 310, 311, 308, 352, 342, 344, 346, 348, 350, + 341, 340, 0, 331, 332, 336, 337, 334, 338, 339, + 335, 241, 118, 0, 245, 243, 248, 0, 237, 238, + 0, 227, 228, 230, 240, 231, 232, 233, 247, 234, + 235, 236, 272, 0, 270, 271, 274, 275, 0, 262, + 263, 265, 266, 267, 268, 269, 155, 157, 152, 0, 150, 153, 154, 39, 0, 0, 33, 0, 0, 0, 0, 0, 46, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 92, - 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 173, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 0, 0, 214, - 0, 0, 0, 249, 0, 0, 0, 0, 149, 45, + 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 286, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 0, 0, 260, 0, 0, 0, 0, 149, 45, 36, 0, 0, 0, 0, 0, 50, 0, 0, 0, 84, 85, 86, 87, 88, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 385, 0, 0, 61, 0, - 362, 360, 361, 359, 0, 354, 355, 357, 358, 0, - 0, 0, 0, 0, 203, 204, 0, 0, 0, 0, - 175, 0, 277, 0, 304, 0, 307, 308, 294, 0, - 0, 0, 0, 0, 0, 322, 0, 0, 228, 0, - 0, 0, 239, 218, 0, 265, 253, 0, 0, 151, - 0, 0, 0, 399, 401, 0, 0, 0, 166, 207, - 242, 0, 40, 139, 0, 0, 142, 0, 0, 0, - 0, 94, 0, 352, 0, 268, 285, 194, 196, 198, - 202, 200, 311, 0, 282, 303, 306, 342, 332, 334, - 336, 338, 340, 231, 119, 235, 233, 238, 262, 156, - 158, 37, 0, 407, 0, 404, 406, 0, 110, 112, + 0, 0, 0, 0, 0, 396, 0, 0, 61, 0, + 373, 371, 372, 370, 0, 365, 366, 368, 369, 0, + 0, 0, 0, 0, 214, 215, 0, 0, 0, 0, + 186, 0, 288, 0, 315, 0, 318, 319, 305, 0, + 0, 0, 0, 0, 0, 333, 0, 0, 239, 0, + 0, 0, 250, 229, 0, 276, 264, 0, 0, 151, + 0, 0, 0, 410, 412, 0, 0, 0, 177, 218, + 253, 0, 40, 139, 0, 0, 142, 0, 0, 0, + 0, 94, 0, 363, 0, 279, 296, 205, 207, 209, + 213, 211, 322, 0, 293, 314, 317, 353, 343, 345, + 347, 349, 351, 242, 119, 246, 244, 249, 273, 156, + 158, 37, 0, 418, 0, 415, 417, 0, 110, 112, 114, 116, 0, 0, 0, 109, 0, 99, 101, 102, - 103, 104, 105, 106, 107, 108, 0, 170, 0, 167, - 168, 211, 0, 208, 209, 246, 0, 243, 244, 129, + 103, 104, 105, 106, 107, 108, 0, 181, 0, 178, + 179, 222, 0, 219, 220, 257, 0, 254, 255, 129, 130, 0, 125, 127, 128, 42, 137, 135, 0, 133, - 136, 349, 0, 146, 0, 143, 144, 0, 0, 161, - 375, 381, 0, 0, 0, 374, 373, 0, 366, 368, - 371, 369, 370, 372, 392, 394, 0, 388, 390, 391, - 0, 0, 356, 272, 0, 269, 270, 289, 0, 286, - 287, 315, 0, 312, 313, 345, 0, 57, 0, 0, - 403, 90, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 98, 0, 165, 0, 215, 206, 0, 250, 241, - 0, 0, 124, 0, 0, 132, 0, 348, 0, 141, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, - 365, 0, 0, 0, 387, 397, 363, 0, 267, 0, - 0, 284, 0, 319, 310, 0, 0, 344, 0, 405, - 0, 0, 0, 0, 120, 121, 122, 100, 0, 169, - 0, 210, 0, 245, 126, 41, 134, 350, 0, 145, - 163, 162, 0, 0, 380, 383, 384, 367, 0, 0, - 389, 0, 271, 0, 288, 0, 314, 0, 0, 111, - 113, 115, 117, 171, 212, 247, 147, 377, 378, 379, - 376, 382, 393, 395, 273, 290, 316, 346, 411, 0, - 409, 0, 0, 408, 423, 0, 421, 419, 415, 0, - 413, 417, 418, 416, 410, 0, 0, 0, 0, 412, - 0, 420, 0, 414, 0, 422, 427, 0, 425, 0, - 0, 424, 431, 0, 429, 426, 0, 0, 428, 0, - 430, 432 + 136, 360, 0, 146, 0, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 161, 163, 164, 165, 166, 167, + 168, 386, 392, 0, 0, 0, 385, 384, 0, 377, + 379, 382, 380, 381, 383, 403, 405, 0, 399, 401, + 402, 0, 0, 367, 283, 0, 280, 281, 300, 0, + 297, 298, 326, 0, 323, 324, 356, 0, 57, 0, + 0, 414, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 96, 98, 0, 176, 0, 226, 217, 0, 261, + 252, 0, 0, 124, 0, 0, 132, 0, 359, 0, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, + 398, 408, 374, 0, 278, 0, 0, 295, 0, 330, + 321, 0, 0, 355, 0, 416, 0, 0, 0, 0, + 120, 121, 122, 100, 0, 180, 0, 221, 0, 256, + 126, 41, 134, 361, 0, 145, 169, 170, 171, 172, + 173, 174, 162, 0, 0, 391, 394, 395, 378, 0, + 0, 400, 0, 282, 0, 299, 0, 325, 0, 0, + 111, 113, 115, 117, 182, 223, 258, 147, 388, 389, + 390, 387, 393, 404, 406, 284, 301, 327, 357, 422, + 0, 420, 0, 0, 419, 434, 0, 432, 430, 426, + 0, 424, 428, 429, 427, 421, 0, 0, 0, 0, + 423, 0, 431, 0, 425, 0, 433, 438, 0, 436, + 0, 0, 435, 442, 0, 440, 437, 0, 0, 439, + 0, 441, 443 }; const short int Dhcp6Parser::yypgoto_[] = { -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 3, -427, -427, -427, -427, 13, -427, - -427, -222, -427, -48, -427, -58, -427, -427, -427, 205, - -427, -427, -427, -427, 44, 180, -41, -38, -37, -36, - -427, -427, -427, -427, -427, 45, -427, -427, -427, -427, - -427, 42, -108, -427, -427, -427, -427, -427, -427, -427, - -427, -65, -427, -426, -427, -427, -427, -427, -427, -119, - -406, -427, -427, -427, -427, -121, -427, -427, -427, -427, - -427, -427, -427, -122, -427, -427, -427, -116, 142, -427, - -427, -427, -427, -427, -427, -427, -118, -427, -427, -427, - -427, -101, -427, -427, -427, -97, 184, -427, -427, -427, - -427, -427, -427, -415, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -100, -427, -427, -427, -95, -427, 161, - -427, -51, -427, -427, -427, -427, -427, -49, -427, -427, - -427, -427, -427, -50, -427, -427, -427, -96, -427, -427, - -427, -93, -427, 162, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -120, -427, -427, -427, -117, 212, - -427, -427, -427, -427, -427, -427, -115, -427, -427, -427, - -114, 193, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -123, -427, -427, -427, -113, -427, 183, + -427, -427, -427, 3, -427, -427, -427, -427, 33, -427, + -427, -214, -427, -67, -427, -58, -427, -427, -427, 211, + -427, -427, -427, -427, 51, 195, -41, -38, -37, -36, + -427, -427, -427, -427, -427, 52, -427, -427, -427, -427, + -427, 49, -112, -427, -427, -427, -427, -427, -427, -427, + -427, -65, -427, -426, -427, -427, -427, -427, -427, -123, + -405, -427, -427, -427, -427, -125, -427, -427, -427, -427, + -427, -427, -427, -129, -427, -427, -427, -126, 147, -427, + -427, -427, -427, -427, -427, -427, -133, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -109, -427, -427, + -427, -105, 197, -427, -427, -427, -427, -427, -427, -415, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -106, + -427, -427, -427, -107, -427, 164, -427, -51, -427, -427, + -427, -427, -427, -49, -427, -427, -427, -427, -427, -50, + -427, -427, -427, -108, -427, -427, -427, -104, -427, 169, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, + -138, -427, -427, -427, -128, 199, -427, -427, -427, -427, + -427, -427, -132, -427, -427, -427, -124, 201, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -134, + -427, -427, -427, -121, -427, 202, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 67, -427, -427, -427, -427, -427, -427, -94, + -427, -427, -427, -427, -427, -427, -427, -427, 66, -427, + -427, -427, -427, -427, -427, -114, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -115, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -105, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -57, -427, -427, -427, - -176, -427, -427, -190, -427, -427, -427, -427, -427, -427, - -201, -427, -427, -207, -427 + -427, -427, -59, -427, -427, -427, -198, -427, -427, -203, + -427, -427, -427, -427, -427, -427, -213, -427, -427, -219, + -427 }; const short int @@ -3056,296 +3106,304 @@ namespace isc { namespace dhcp { 56, 423, 505, 69, 70, 107, 37, 58, 80, 81, 82, 248, 39, 59, 108, 109, 110, 111, 112, 113, 114, 115, 255, 41, 60, 132, 278, 116, 256, 117, - 257, 476, 477, 478, 562, 479, 563, 480, 564, 481, - 565, 209, 313, 483, 484, 485, 118, 266, 501, 502, + 257, 476, 477, 478, 573, 479, 574, 480, 575, 481, + 576, 209, 313, 483, 484, 485, 118, 266, 501, 502, 503, 504, 119, 268, 508, 509, 510, 120, 267, 121, - 270, 514, 515, 516, 588, 55, 67, 239, 240, 241, - 325, 242, 326, 122, 271, 518, 519, 123, 263, 488, - 489, 490, 572, 43, 61, 150, 151, 152, 283, 153, - 284, 154, 285, 155, 289, 156, 288, 157, 158, 124, - 264, 492, 493, 494, 575, 51, 65, 210, 211, 212, - 213, 214, 215, 216, 312, 217, 316, 218, 315, 219, - 220, 317, 221, 125, 265, 496, 497, 498, 578, 53, - 66, 228, 229, 230, 231, 232, 321, 233, 234, 235, - 160, 281, 544, 545, 546, 607, 45, 62, 167, 168, - 169, 294, 161, 282, 548, 549, 550, 610, 47, 63, - 177, 178, 179, 297, 180, 181, 299, 182, 183, 162, - 290, 552, 553, 554, 613, 49, 64, 192, 193, 194, - 195, 305, 196, 306, 197, 307, 198, 308, 199, 309, - 200, 304, 163, 291, 556, 616, 126, 269, 512, 280, - 364, 365, 366, 367, 368, 432, 127, 272, 527, 528, - 529, 594, 670, 530, 531, 595, 532, 533, 128, 129, - 274, 536, 537, 538, 601, 539, 602, 130, 275, 83, - 250, 84, 251, 85, 249, 464, 465, 466, 558, 679, - 680, 681, 689, 690, 691, 692, 697, 693, 695, 707, - 708, 709, 713, 714, 716 + 270, 514, 515, 516, 599, 55, 67, 239, 240, 241, + 325, 242, 326, 122, 271, 523, 524, 525, 526, 527, + 528, 529, 530, 123, 263, 488, 489, 490, 583, 43, + 61, 150, 151, 152, 283, 153, 284, 154, 285, 155, + 289, 156, 288, 157, 158, 124, 264, 492, 493, 494, + 586, 51, 65, 210, 211, 212, 213, 214, 215, 216, + 312, 217, 316, 218, 315, 219, 220, 317, 221, 125, + 265, 496, 497, 498, 589, 53, 66, 228, 229, 230, + 231, 232, 321, 233, 234, 235, 160, 281, 555, 556, + 557, 623, 45, 62, 167, 168, 169, 294, 161, 282, + 559, 560, 561, 626, 47, 63, 177, 178, 179, 297, + 180, 181, 299, 182, 183, 162, 290, 563, 564, 565, + 629, 49, 64, 192, 193, 194, 195, 305, 196, 306, + 197, 307, 198, 308, 199, 309, 200, 304, 163, 291, + 567, 632, 126, 269, 512, 280, 364, 365, 366, 367, + 368, 432, 127, 272, 538, 539, 540, 610, 691, 541, + 542, 611, 543, 544, 128, 129, 274, 547, 548, 549, + 617, 550, 618, 130, 275, 83, 250, 84, 251, 85, + 249, 464, 465, 466, 569, 700, 701, 702, 710, 711, + 712, 713, 718, 714, 716, 728, 729, 730, 734, 735, + 737 }; const unsigned short int Dhcp6Parser::yytable_[] = { - 79, 225, 526, 145, 165, 175, 190, 208, 224, 238, - 511, 159, 166, 176, 191, 226, 32, 227, 507, 133, - 146, 74, 96, 147, 148, 149, 25, 499, 26, 36, - 27, 24, 164, 253, 89, 90, 91, 92, 254, 96, - 202, 96, 468, 469, 470, 471, 472, 473, 474, 520, - 134, 276, 135, 472, 236, 237, 277, 202, 136, 137, - 138, 139, 140, 141, 38, 133, 360, 96, 500, 142, - 143, 581, 96, 40, 582, 86, 144, 87, 88, 170, - 171, 172, 173, 174, 499, 506, 89, 90, 91, 92, - 93, 94, 95, 96, 75, 78, 236, 237, 184, 42, - 76, 77, 185, 186, 187, 188, 189, 202, 521, 522, - 523, 524, 78, 78, 78, 142, 97, 98, 99, 100, - 534, 535, 292, 28, 29, 30, 31, 293, 44, 78, - 101, 78, 201, 102, 103, 584, 78, 431, 585, 295, - 78, 46, 104, 105, 296, 78, 106, 202, 586, 203, - 204, 587, 205, 206, 207, 202, 222, 203, 204, 223, - 682, 48, 684, 683, 685, 686, 78, 447, 448, 449, - 302, 637, 327, 526, 71, 303, 131, 328, 507, 78, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 276, 559, 569, 569, 79, 557, 560, 570, 571, - 592, 599, 603, 247, 292, 593, 600, 604, 605, 663, - 50, 327, 295, 302, 52, 362, 666, 674, 675, 78, - 698, 717, 361, 54, 244, 699, 718, 78, 710, 243, - 363, 711, 245, 247, 145, 246, 252, 165, 258, 667, - 668, 669, 159, 259, 175, 166, 260, 329, 330, 261, - 262, 146, 176, 190, 147, 148, 149, 273, 279, 225, - 286, 191, 208, 287, 298, 300, 224, 301, 311, 340, - 310, 314, 318, 226, 319, 227, 320, 323, 322, 324, - 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, - 343, 345, 346, 347, 348, 344, 349, 350, 351, 352, - 353, 354, 356, 357, 359, 355, 369, 370, 371, 372, - 373, 375, 376, 377, 374, 378, 379, 381, 383, 385, - 389, 390, 384, 386, 391, 387, 392, 393, 394, 396, - 397, 399, 398, 400, 401, 404, 402, 413, 414, 407, - 405, 408, 410, 411, 625, 437, 412, 415, 416, 417, - 418, 482, 482, 419, 420, 421, 422, 424, 475, 475, - 425, 426, 433, 624, 427, 428, 429, 430, 434, 362, - 525, 435, 436, 438, 439, 442, 361, 440, 443, 487, - 491, 495, 513, 541, 363, 543, 441, 444, 445, 547, - 551, 566, 561, 446, 567, 568, 574, 617, 573, 577, - 576, 579, 580, 450, 589, 590, 608, 591, 596, 451, - 597, 460, 452, 461, 598, 609, 612, 611, 555, 618, - 453, 454, 614, 455, 615, 635, 620, 463, 621, 622, - 456, 623, 642, 643, 457, 458, 459, 648, 649, 657, - 664, 658, 696, 540, 700, 665, 517, 676, 606, 678, - 702, 706, 626, 704, 719, 462, 358, 583, 336, 486, - 467, 627, 634, 636, 640, 644, 645, 646, 639, 409, - 659, 660, 638, 629, 641, 628, 380, 631, 661, 662, - 630, 403, 671, 672, 633, 632, 406, 673, 677, 652, - 651, 701, 656, 712, 395, 388, 653, 654, 650, 705, - 655, 542, 619, 721, 482, 647, 694, 382, 703, 715, - 720, 475, 0, 225, 145, 0, 0, 208, 0, 0, - 224, 0, 159, 0, 0, 0, 0, 226, 0, 227, - 238, 146, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 525, 0, 0, 0, 0, 0, 0, 0, 165, - 0, 0, 175, 0, 0, 190, 0, 166, 0, 0, - 176, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 79, 225, 537, 145, 165, 175, 190, 208, 224, 238, + 511, 159, 166, 176, 191, 226, 32, 227, 133, 507, + 146, 96, 74, 147, 148, 149, 25, 133, 26, 24, + 27, 164, 499, 89, 90, 91, 92, 96, 202, 36, + 96, 468, 469, 470, 471, 472, 473, 474, 253, 134, + 276, 135, 71, 254, 131, 277, 202, 136, 137, 138, + 139, 140, 141, 38, 360, 40, 292, 42, 142, 143, + 86, 293, 87, 88, 44, 144, 201, 142, 46, 500, + 48, 89, 90, 91, 92, 93, 94, 95, 96, 592, + 50, 202, 593, 203, 204, 531, 205, 206, 207, 472, + 78, 75, 202, 222, 203, 204, 223, 76, 77, 202, + 52, 97, 98, 99, 100, 54, 78, 236, 237, 78, + 78, 295, 96, 243, 96, 101, 296, 244, 102, 28, + 29, 30, 31, 245, 78, 103, 170, 171, 172, 173, + 174, 302, 246, 104, 105, 431, 303, 106, 184, 236, + 237, 247, 185, 186, 187, 188, 189, 252, 78, 327, + 532, 533, 534, 535, 328, 595, 276, 78, 596, 78, + 705, 568, 706, 707, 570, 447, 448, 449, 580, 571, + 78, 580, 653, 581, 499, 506, 582, 78, 78, 537, + 507, 608, 615, 619, 247, 79, 609, 616, 620, 621, + 258, 78, 259, 78, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 362, 517, 518, 519, 520, + 521, 522, 361, 292, 327, 279, 295, 302, 684, 687, + 363, 695, 696, 719, 145, 738, 597, 165, 720, 598, + 739, 260, 159, 703, 175, 166, 704, 329, 330, 261, + 262, 146, 176, 190, 147, 148, 149, 731, 310, 225, + 732, 191, 208, 688, 689, 690, 224, 545, 546, 273, + 286, 287, 298, 226, 300, 227, 301, 311, 331, 314, + 318, 319, 320, 340, 322, 323, 324, 375, 332, 333, + 334, 335, 337, 338, 339, 345, 341, 346, 347, 348, + 349, 342, 343, 344, 350, 351, 352, 353, 354, 355, + 356, 357, 359, 369, 370, 371, 372, 373, 374, 376, + 377, 378, 379, 381, 383, 384, 385, 386, 387, 389, + 390, 391, 392, 393, 394, 396, 397, 413, 414, 399, + 398, 400, 401, 404, 407, 402, 405, 408, 410, 411, + 418, 482, 482, 412, 415, 416, 417, 419, 475, 475, + 420, 421, 422, 424, 425, 426, 434, 435, 427, 362, + 536, 428, 429, 430, 436, 433, 361, 437, 442, 438, + 572, 443, 487, 491, 363, 495, 439, 513, 552, 440, + 441, 585, 554, 558, 562, 463, 577, 578, 579, 633, + 444, 584, 587, 588, 590, 445, 446, 450, 591, 600, + 601, 460, 602, 461, 603, 604, 566, 605, 606, 607, + 612, 613, 451, 614, 624, 625, 627, 628, 631, 452, + 634, 453, 454, 630, 636, 637, 638, 639, 594, 663, + 651, 455, 456, 664, 457, 669, 670, 678, 685, 458, + 679, 717, 686, 721, 697, 699, 723, 727, 459, 725, + 740, 622, 462, 551, 336, 640, 486, 467, 643, 650, + 652, 358, 655, 654, 409, 662, 645, 641, 644, 646, + 656, 642, 647, 649, 403, 648, 657, 673, 658, 380, + 659, 660, 661, 406, 382, 672, 675, 677, 665, 666, + 553, 668, 674, 388, 671, 715, 667, 680, 676, 681, + 682, 635, 683, 395, 692, 482, 724, 693, 736, 741, + 694, 733, 475, 0, 225, 145, 0, 0, 208, 698, + 0, 224, 722, 159, 0, 0, 726, 0, 226, 0, + 227, 238, 146, 0, 742, 147, 148, 149, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, + 0, 0, 0, 0, 0, 165, 0, 0, 175, 0, + 0, 190, 0, 166, 0, 0, 176, 0, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 688, 0, 0, 0, - 0, 0, 0, 687, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 688, 0, 0, 0, 0, 0, 0, - 687 + 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, + 0, 0, 0, 0, 708, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, + 0, 708 }; const short int Dhcp6Parser::yycheck_[] = { 58, 66, 428, 61, 62, 63, 64, 65, 66, 67, - 425, 61, 62, 63, 64, 66, 13, 66, 424, 7, - 61, 10, 29, 61, 61, 61, 5, 61, 7, 7, - 9, 0, 39, 3, 22, 23, 24, 25, 8, 29, - 30, 29, 15, 16, 17, 18, 19, 20, 21, 15, - 38, 3, 40, 19, 67, 68, 8, 30, 46, 47, - 48, 49, 50, 51, 7, 7, 56, 29, 102, 57, - 58, 3, 29, 7, 6, 11, 64, 13, 14, 41, - 42, 43, 44, 45, 61, 62, 22, 23, 24, 25, - 26, 27, 28, 29, 83, 102, 67, 68, 55, 7, - 89, 90, 59, 60, 61, 62, 63, 30, 74, 75, - 76, 77, 102, 102, 102, 57, 52, 53, 54, 55, - 80, 81, 3, 102, 103, 104, 105, 8, 7, 102, - 66, 102, 15, 69, 70, 3, 102, 359, 6, 3, - 102, 7, 78, 79, 8, 102, 82, 30, 3, 32, - 33, 6, 35, 36, 37, 30, 31, 32, 33, 34, - 3, 7, 85, 6, 87, 88, 102, 389, 390, 391, - 3, 586, 3, 599, 102, 8, 12, 8, 584, 102, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 3, 3, 3, 3, 253, 8, 8, 8, 8, - 3, 3, 3, 3, 3, 8, 8, 8, 8, 8, - 7, 3, 3, 3, 7, 280, 8, 8, 8, 102, - 3, 3, 280, 7, 3, 8, 8, 102, 3, 6, - 280, 6, 4, 3, 292, 8, 4, 295, 4, 71, - 72, 73, 292, 4, 302, 295, 4, 244, 245, 4, - 4, 292, 302, 311, 292, 292, 292, 4, 8, 324, - 4, 311, 320, 4, 4, 4, 324, 4, 3, 103, - 8, 4, 4, 324, 8, 324, 3, 8, 4, 3, - 102, 4, 4, 4, 4, 4, 4, 4, 103, 103, - 103, 4, 4, 4, 4, 103, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 103, 4, 4, 4, 4, - 4, 105, 4, 4, 103, 4, 4, 4, 4, 4, - 4, 4, 103, 103, 4, 103, 4, 4, 4, 4, - 4, 4, 103, 4, 4, 4, 105, 334, 335, 4, - 105, 4, 4, 7, 103, 102, 7, 7, 7, 7, - 5, 416, 417, 5, 5, 5, 5, 5, 416, 417, - 5, 5, 8, 105, 7, 7, 7, 7, 3, 434, - 428, 5, 5, 102, 102, 5, 434, 102, 7, 7, - 7, 7, 7, 4, 434, 7, 102, 102, 102, 7, - 7, 4, 8, 102, 4, 4, 3, 8, 6, 3, - 6, 6, 3, 102, 6, 3, 6, 4, 4, 102, - 4, 408, 102, 410, 4, 3, 3, 6, 65, 4, - 102, 102, 6, 102, 3, 6, 4, 84, 4, 4, - 102, 4, 4, 4, 102, 102, 102, 4, 4, 4, - 8, 5, 4, 430, 4, 8, 102, 8, 102, 7, - 4, 7, 105, 5, 4, 411, 276, 505, 253, 417, - 415, 569, 581, 584, 103, 103, 103, 103, 590, 327, - 102, 102, 588, 574, 592, 572, 292, 577, 102, 102, - 575, 320, 102, 102, 580, 578, 324, 102, 102, 609, - 607, 103, 615, 86, 311, 302, 610, 612, 603, 102, - 613, 434, 559, 102, 569, 599, 682, 295, 698, 710, - 717, 569, -1, 578, 572, -1, -1, 575, -1, -1, - 578, -1, 572, -1, -1, -1, -1, 578, -1, 578, - 588, 572, -1, -1, 572, 572, 572, -1, -1, -1, - -1, 599, -1, -1, -1, -1, -1, -1, -1, 607, - -1, -1, 610, -1, -1, 613, -1, 607, -1, -1, - 610, -1, -1, 613, -1, -1, -1, -1, -1, -1, + 425, 61, 62, 63, 64, 66, 13, 66, 7, 424, + 61, 29, 10, 61, 61, 61, 5, 7, 7, 0, + 9, 39, 61, 22, 23, 24, 25, 29, 30, 7, + 29, 15, 16, 17, 18, 19, 20, 21, 3, 38, + 3, 40, 108, 8, 12, 8, 30, 46, 47, 48, + 49, 50, 51, 7, 56, 7, 3, 7, 57, 58, + 11, 8, 13, 14, 7, 64, 15, 57, 7, 108, + 7, 22, 23, 24, 25, 26, 27, 28, 29, 3, + 7, 30, 6, 32, 33, 15, 35, 36, 37, 19, + 108, 89, 30, 31, 32, 33, 34, 95, 96, 30, + 7, 52, 53, 54, 55, 7, 108, 67, 68, 108, + 108, 3, 29, 6, 29, 66, 8, 3, 69, 108, + 109, 110, 111, 4, 108, 76, 41, 42, 43, 44, + 45, 3, 8, 84, 85, 359, 8, 88, 55, 67, + 68, 3, 59, 60, 61, 62, 63, 4, 108, 3, + 80, 81, 82, 83, 8, 3, 3, 108, 6, 108, + 91, 8, 93, 94, 3, 389, 390, 391, 3, 8, + 108, 3, 597, 8, 61, 62, 8, 108, 108, 615, + 595, 3, 3, 3, 3, 253, 8, 8, 8, 8, + 4, 108, 4, 108, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 280, 70, 71, 72, 73, + 74, 75, 280, 3, 3, 8, 3, 3, 8, 8, + 280, 8, 8, 3, 292, 3, 3, 295, 8, 6, + 8, 4, 292, 3, 302, 295, 6, 244, 245, 4, + 4, 292, 302, 311, 292, 292, 292, 3, 8, 324, + 6, 311, 320, 77, 78, 79, 324, 86, 87, 4, + 4, 4, 4, 324, 4, 324, 4, 3, 108, 4, + 4, 8, 3, 109, 4, 8, 3, 111, 4, 4, + 4, 4, 4, 4, 4, 4, 109, 4, 4, 4, + 4, 109, 109, 109, 4, 4, 4, 4, 4, 109, + 4, 4, 4, 4, 4, 4, 4, 4, 109, 4, + 4, 4, 4, 4, 4, 109, 4, 109, 109, 4, + 4, 4, 4, 4, 4, 4, 4, 334, 335, 4, + 109, 4, 4, 4, 4, 111, 111, 4, 4, 7, + 5, 416, 417, 7, 7, 7, 7, 5, 416, 417, + 5, 5, 5, 5, 5, 5, 3, 5, 7, 434, + 428, 7, 7, 7, 5, 8, 434, 108, 5, 108, + 8, 7, 7, 7, 434, 7, 108, 7, 4, 108, + 108, 3, 7, 7, 7, 90, 4, 4, 4, 8, + 108, 6, 6, 3, 6, 108, 108, 108, 3, 6, + 3, 408, 4, 410, 4, 4, 65, 4, 4, 4, + 4, 4, 108, 4, 6, 3, 6, 3, 3, 108, + 4, 108, 108, 6, 4, 4, 4, 4, 505, 4, + 6, 108, 108, 4, 108, 4, 4, 4, 8, 108, + 5, 4, 8, 4, 8, 7, 4, 7, 108, 5, + 4, 108, 411, 430, 253, 111, 417, 415, 580, 592, + 595, 276, 601, 599, 327, 608, 585, 109, 583, 586, + 109, 111, 588, 591, 320, 589, 109, 625, 109, 292, + 109, 109, 109, 324, 295, 623, 628, 631, 109, 109, + 434, 615, 626, 302, 619, 703, 109, 108, 629, 108, + 108, 570, 108, 311, 108, 580, 719, 108, 731, 738, + 108, 92, 580, -1, 589, 583, -1, -1, 586, 108, + -1, 589, 109, 583, -1, -1, 108, -1, 589, -1, + 589, 599, 583, -1, 108, 583, 583, 583, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 615, -1, -1, + -1, -1, -1, -1, -1, 623, -1, -1, 626, -1, + -1, 629, -1, 623, -1, -1, 626, -1, -1, 629, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 681, -1, -1, -1, - -1, -1, -1, 681, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 698, -1, -1, -1, -1, -1, -1, - 698 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 702, -1, -1, + -1, -1, -1, -1, 702, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 719, -1, -1, -1, -1, -1, + -1, 719 }; const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 0, 5, 7, 9, 102, 103, - 104, 105, 119, 120, 121, 125, 7, 132, 7, 138, - 7, 149, 7, 209, 7, 272, 7, 284, 7, 301, - 7, 231, 7, 255, 7, 191, 126, 122, 133, 139, - 150, 210, 273, 285, 302, 232, 256, 192, 119, 129, - 130, 102, 123, 124, 10, 83, 89, 90, 102, 131, - 134, 135, 136, 355, 357, 359, 11, 13, 14, 22, + 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 0, 5, 7, 9, 108, 109, + 110, 111, 125, 126, 127, 131, 7, 138, 7, 144, + 7, 155, 7, 221, 7, 284, 7, 296, 7, 313, + 7, 243, 7, 267, 7, 197, 132, 128, 139, 145, + 156, 222, 285, 297, 314, 244, 268, 198, 125, 135, + 136, 108, 129, 130, 10, 89, 95, 96, 108, 137, + 140, 141, 142, 367, 369, 371, 11, 13, 14, 22, 23, 24, 25, 26, 27, 28, 29, 52, 53, 54, - 55, 66, 69, 70, 78, 79, 82, 131, 140, 141, - 142, 143, 144, 145, 146, 147, 153, 155, 172, 178, - 183, 185, 199, 203, 225, 249, 322, 332, 344, 345, - 353, 12, 151, 7, 38, 40, 46, 47, 48, 49, - 50, 51, 57, 58, 64, 131, 142, 143, 144, 145, - 211, 212, 213, 215, 217, 219, 221, 223, 224, 249, - 266, 278, 295, 318, 39, 131, 249, 274, 275, 276, - 41, 42, 43, 44, 45, 131, 249, 286, 287, 288, - 290, 291, 293, 294, 55, 59, 60, 61, 62, 63, - 131, 249, 303, 304, 305, 306, 308, 310, 312, 314, - 316, 15, 30, 32, 33, 35, 36, 37, 131, 167, - 233, 234, 235, 236, 237, 238, 239, 241, 243, 245, - 246, 248, 31, 34, 131, 167, 237, 243, 257, 258, - 259, 260, 261, 263, 264, 265, 67, 68, 131, 193, - 194, 195, 197, 6, 3, 4, 8, 3, 137, 360, - 356, 358, 4, 3, 8, 148, 154, 156, 4, 4, - 4, 4, 4, 204, 226, 250, 173, 184, 179, 323, - 186, 200, 333, 4, 346, 354, 3, 8, 152, 8, - 325, 267, 279, 214, 216, 218, 4, 4, 222, 220, - 296, 319, 3, 8, 277, 3, 8, 289, 4, 292, - 4, 4, 3, 8, 317, 307, 309, 311, 313, 315, - 8, 3, 240, 168, 4, 244, 242, 247, 4, 8, - 3, 262, 4, 8, 3, 196, 198, 3, 8, 119, - 119, 102, 4, 4, 4, 4, 135, 4, 4, 4, - 103, 103, 103, 103, 103, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 103, 4, 4, 141, 4, - 56, 131, 167, 249, 326, 327, 328, 329, 330, 4, - 4, 4, 4, 4, 103, 105, 4, 4, 4, 4, - 212, 4, 275, 4, 103, 4, 103, 103, 287, 4, - 4, 4, 4, 4, 4, 305, 4, 4, 103, 4, - 4, 4, 105, 235, 4, 105, 259, 4, 4, 194, - 4, 7, 7, 119, 119, 7, 7, 7, 5, 5, - 5, 5, 5, 127, 5, 5, 5, 7, 7, 7, - 7, 127, 331, 8, 3, 5, 5, 102, 102, 102, - 102, 102, 5, 7, 102, 102, 102, 127, 127, 127, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 119, 119, 140, 84, 361, 362, 363, 151, 15, 16, - 17, 18, 19, 20, 21, 131, 157, 158, 159, 161, - 163, 165, 167, 169, 170, 171, 157, 7, 205, 206, - 207, 7, 227, 228, 229, 7, 251, 252, 253, 61, - 102, 174, 175, 176, 177, 128, 62, 176, 180, 181, - 182, 219, 324, 7, 187, 188, 189, 102, 201, 202, - 15, 74, 75, 76, 77, 131, 169, 334, 335, 336, - 339, 340, 342, 343, 80, 81, 347, 348, 349, 351, - 124, 4, 328, 7, 268, 269, 270, 7, 280, 281, - 282, 7, 297, 298, 299, 65, 320, 8, 364, 3, - 8, 8, 160, 162, 164, 166, 4, 4, 4, 3, - 8, 8, 208, 6, 3, 230, 6, 3, 254, 6, - 3, 3, 6, 129, 3, 6, 3, 6, 190, 6, - 3, 4, 3, 8, 337, 341, 4, 4, 4, 3, - 8, 350, 352, 3, 8, 8, 102, 271, 6, 3, - 283, 6, 3, 300, 6, 3, 321, 8, 4, 362, - 4, 4, 4, 4, 105, 103, 105, 158, 211, 207, - 233, 229, 257, 253, 175, 6, 181, 219, 193, 189, - 103, 202, 4, 4, 103, 103, 103, 335, 4, 4, - 348, 274, 270, 286, 282, 303, 299, 4, 5, 102, - 102, 102, 102, 8, 8, 8, 8, 71, 72, 73, - 338, 102, 102, 102, 8, 8, 8, 102, 7, 365, - 366, 367, 3, 6, 85, 87, 88, 131, 167, 368, - 369, 370, 371, 373, 366, 374, 4, 372, 3, 8, - 4, 103, 4, 369, 5, 102, 7, 375, 376, 377, - 3, 6, 86, 378, 379, 376, 380, 3, 8, 4, - 379, 102 + 55, 66, 69, 76, 84, 85, 88, 137, 146, 147, + 148, 149, 150, 151, 152, 153, 159, 161, 178, 184, + 189, 191, 205, 215, 237, 261, 334, 344, 356, 357, + 365, 12, 157, 7, 38, 40, 46, 47, 48, 49, + 50, 51, 57, 58, 64, 137, 148, 149, 150, 151, + 223, 224, 225, 227, 229, 231, 233, 235, 236, 261, + 278, 290, 307, 330, 39, 137, 261, 286, 287, 288, + 41, 42, 43, 44, 45, 137, 261, 298, 299, 300, + 302, 303, 305, 306, 55, 59, 60, 61, 62, 63, + 137, 261, 315, 316, 317, 318, 320, 322, 324, 326, + 328, 15, 30, 32, 33, 35, 36, 37, 137, 173, + 245, 246, 247, 248, 249, 250, 251, 253, 255, 257, + 258, 260, 31, 34, 137, 173, 249, 255, 269, 270, + 271, 272, 273, 275, 276, 277, 67, 68, 137, 199, + 200, 201, 203, 6, 3, 4, 8, 3, 143, 372, + 368, 370, 4, 3, 8, 154, 160, 162, 4, 4, + 4, 4, 4, 216, 238, 262, 179, 190, 185, 335, + 192, 206, 345, 4, 358, 366, 3, 8, 158, 8, + 337, 279, 291, 226, 228, 230, 4, 4, 234, 232, + 308, 331, 3, 8, 289, 3, 8, 301, 4, 304, + 4, 4, 3, 8, 329, 319, 321, 323, 325, 327, + 8, 3, 252, 174, 4, 256, 254, 259, 4, 8, + 3, 274, 4, 8, 3, 202, 204, 3, 8, 125, + 125, 108, 4, 4, 4, 4, 141, 4, 4, 4, + 109, 109, 109, 109, 109, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 109, 4, 4, 147, 4, + 56, 137, 173, 261, 338, 339, 340, 341, 342, 4, + 4, 4, 4, 4, 109, 111, 4, 4, 4, 4, + 224, 4, 287, 4, 109, 4, 109, 109, 299, 4, + 4, 4, 4, 4, 4, 317, 4, 4, 109, 4, + 4, 4, 111, 247, 4, 111, 271, 4, 4, 200, + 4, 7, 7, 125, 125, 7, 7, 7, 5, 5, + 5, 5, 5, 133, 5, 5, 5, 7, 7, 7, + 7, 133, 343, 8, 3, 5, 5, 108, 108, 108, + 108, 108, 5, 7, 108, 108, 108, 133, 133, 133, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 125, 125, 146, 90, 373, 374, 375, 157, 15, 16, + 17, 18, 19, 20, 21, 137, 163, 164, 165, 167, + 169, 171, 173, 175, 176, 177, 163, 7, 217, 218, + 219, 7, 239, 240, 241, 7, 263, 264, 265, 61, + 108, 180, 181, 182, 183, 134, 62, 182, 186, 187, + 188, 231, 336, 7, 193, 194, 195, 70, 71, 72, + 73, 74, 75, 207, 208, 209, 210, 211, 212, 213, + 214, 15, 80, 81, 82, 83, 137, 175, 346, 347, + 348, 351, 352, 354, 355, 86, 87, 359, 360, 361, + 363, 130, 4, 340, 7, 280, 281, 282, 7, 292, + 293, 294, 7, 309, 310, 311, 65, 332, 8, 376, + 3, 8, 8, 166, 168, 170, 172, 4, 4, 4, + 3, 8, 8, 220, 6, 3, 242, 6, 3, 266, + 6, 3, 3, 6, 135, 3, 6, 3, 6, 196, + 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, + 349, 353, 4, 4, 4, 3, 8, 362, 364, 3, + 8, 8, 108, 283, 6, 3, 295, 6, 3, 312, + 6, 3, 333, 8, 4, 374, 4, 4, 4, 4, + 111, 109, 111, 164, 223, 219, 245, 241, 269, 265, + 181, 6, 187, 231, 199, 195, 109, 109, 109, 109, + 109, 109, 208, 4, 4, 109, 109, 109, 347, 4, + 4, 360, 286, 282, 298, 294, 315, 311, 4, 5, + 108, 108, 108, 108, 8, 8, 8, 8, 77, 78, + 79, 350, 108, 108, 108, 8, 8, 8, 108, 7, + 377, 378, 379, 3, 6, 91, 93, 94, 137, 173, + 380, 381, 382, 383, 385, 378, 386, 4, 384, 3, + 8, 4, 109, 4, 381, 5, 108, 7, 387, 388, + 389, 3, 6, 92, 390, 391, 388, 392, 3, 8, + 4, 391, 108 }; const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 106, 108, 107, 109, 107, 110, 107, 111, 107, - 112, 107, 113, 107, 114, 107, 115, 107, 116, 107, - 117, 107, 118, 107, 119, 119, 119, 119, 119, 119, - 119, 120, 122, 121, 123, 123, 124, 124, 126, 125, - 128, 127, 129, 129, 130, 130, 131, 133, 132, 134, - 134, 135, 135, 135, 135, 135, 137, 136, 139, 138, - 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 142, 143, 144, 145, 146, 148, - 147, 150, 149, 152, 151, 154, 153, 156, 155, 157, - 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 160, 159, 162, 161, 164, 163, 166, 165, 168, 167, - 169, 170, 171, 173, 172, 174, 174, 175, 175, 176, - 177, 179, 178, 180, 180, 181, 181, 182, 184, 183, - 186, 185, 187, 187, 188, 188, 190, 189, 192, 191, - 193, 193, 193, 194, 194, 196, 195, 198, 197, 200, - 199, 201, 201, 202, 204, 203, 205, 205, 206, 206, - 208, 207, 210, 209, 211, 211, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 214, 213, 216, 215, 218, 217, 220, - 219, 222, 221, 223, 224, 226, 225, 227, 227, 228, - 228, 230, 229, 232, 231, 233, 233, 234, 234, 235, - 235, 235, 235, 235, 235, 235, 235, 236, 237, 238, - 240, 239, 242, 241, 244, 243, 245, 247, 246, 248, - 250, 249, 251, 251, 252, 252, 254, 253, 256, 255, - 257, 257, 258, 258, 259, 259, 259, 259, 259, 259, - 260, 262, 261, 263, 264, 265, 267, 266, 268, 268, - 269, 269, 271, 270, 273, 272, 274, 274, 275, 275, - 275, 277, 276, 279, 278, 280, 280, 281, 281, 283, - 282, 285, 284, 286, 286, 287, 287, 287, 287, 287, - 287, 287, 289, 288, 290, 292, 291, 293, 294, 296, - 295, 297, 297, 298, 298, 300, 299, 302, 301, 303, - 303, 304, 304, 305, 305, 305, 305, 305, 305, 305, - 305, 307, 306, 309, 308, 311, 310, 313, 312, 315, - 314, 317, 316, 319, 318, 321, 320, 323, 322, 324, - 324, 325, 219, 326, 326, 327, 327, 328, 328, 328, - 328, 329, 331, 330, 333, 332, 334, 334, 335, 335, - 335, 335, 335, 335, 335, 337, 336, 338, 338, 338, - 339, 341, 340, 342, 343, 344, 346, 345, 347, 347, - 348, 348, 350, 349, 352, 351, 354, 353, 356, 355, - 358, 357, 360, 359, 361, 361, 362, 364, 363, 365, - 365, 367, 366, 368, 368, 369, 369, 369, 369, 369, - 370, 372, 371, 374, 373, 375, 375, 377, 376, 378, - 378, 380, 379 + 0, 112, 114, 113, 115, 113, 116, 113, 117, 113, + 118, 113, 119, 113, 120, 113, 121, 113, 122, 113, + 123, 113, 124, 113, 125, 125, 125, 125, 125, 125, + 125, 126, 128, 127, 129, 129, 130, 130, 132, 131, + 134, 133, 135, 135, 136, 136, 137, 139, 138, 140, + 140, 141, 141, 141, 141, 141, 143, 142, 145, 144, + 146, 146, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 148, 149, 150, 151, 152, 154, + 153, 156, 155, 158, 157, 160, 159, 162, 161, 163, + 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 166, 165, 168, 167, 170, 169, 172, 171, 174, 173, + 175, 176, 177, 179, 178, 180, 180, 181, 181, 182, + 183, 185, 184, 186, 186, 187, 187, 188, 190, 189, + 192, 191, 193, 193, 194, 194, 196, 195, 198, 197, + 199, 199, 199, 200, 200, 202, 201, 204, 203, 206, + 205, 207, 207, 208, 208, 208, 208, 208, 208, 209, + 210, 211, 212, 213, 214, 216, 215, 217, 217, 218, + 218, 220, 219, 222, 221, 223, 223, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 226, 225, 228, 227, 230, 229, + 232, 231, 234, 233, 235, 236, 238, 237, 239, 239, + 240, 240, 242, 241, 244, 243, 245, 245, 246, 246, + 247, 247, 247, 247, 247, 247, 247, 247, 248, 249, + 250, 252, 251, 254, 253, 256, 255, 257, 259, 258, + 260, 262, 261, 263, 263, 264, 264, 266, 265, 268, + 267, 269, 269, 270, 270, 271, 271, 271, 271, 271, + 271, 272, 274, 273, 275, 276, 277, 279, 278, 280, + 280, 281, 281, 283, 282, 285, 284, 286, 286, 287, + 287, 287, 289, 288, 291, 290, 292, 292, 293, 293, + 295, 294, 297, 296, 298, 298, 299, 299, 299, 299, + 299, 299, 299, 301, 300, 302, 304, 303, 305, 306, + 308, 307, 309, 309, 310, 310, 312, 311, 314, 313, + 315, 315, 316, 316, 317, 317, 317, 317, 317, 317, + 317, 317, 319, 318, 321, 320, 323, 322, 325, 324, + 327, 326, 329, 328, 331, 330, 333, 332, 335, 334, + 336, 336, 337, 231, 338, 338, 339, 339, 340, 340, + 340, 340, 341, 343, 342, 345, 344, 346, 346, 347, + 347, 347, 347, 347, 347, 347, 349, 348, 350, 350, + 350, 351, 353, 352, 354, 355, 356, 358, 357, 359, + 359, 360, 360, 362, 361, 364, 363, 366, 365, 368, + 367, 370, 369, 372, 371, 373, 373, 374, 376, 375, + 377, 377, 379, 378, 380, 380, 381, 381, 381, 381, + 381, 382, 384, 383, 386, 385, 387, 387, 389, 388, + 390, 390, 392, 391 }; const unsigned char @@ -3367,34 +3425,35 @@ namespace isc { namespace dhcp { 1, 0, 6, 1, 3, 1, 1, 1, 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 3, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 3, 3, 0, 6, 0, 1, + 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 0, 4, 0, 4, 0, 4, 1, 0, 4, + 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, + 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 1, 1, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 1, 1, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, - 1, 0, 4, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 6, 0, 4, 0, 6, 1, - 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, - 1, 1, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 3, 0, 4, 3, 3, 3, 0, 6, 1, 3, - 1, 1, 0, 4, 0, 4, 0, 6, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 0, 6, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, - 3, 0, 4 + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 4, 0, 6, + 1, 3, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 0, 4, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, + 1, 3, 0, 4, 3, 3, 3, 0, 6, 1, + 3, 1, 1, 0, 4, 0, 4, 0, 6, 0, + 4, 0, 4, 0, 6, 1, 3, 1, 0, 6, + 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, + 1, 3, 0, 4 }; @@ -3422,19 +3481,21 @@ namespace isc { namespace dhcp { "\"ip-addresses\"", "\"prefixes\"", "\"duid\"", "\"hw-address\"", "\"hostname\"", "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", "\"expired-leases-processing\"", - "\"server-id\"", "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", - "\"htype\"", "\"time\"", "\"enterprise-id\"", "\"dhcp4o6-port\"", - "\"control-socket\"", "\"socket-type\"", "\"socket-name\"", - "\"dhcp-ddns\"", "\"Logging\"", "\"loggers\"", "\"output_options\"", - "\"output\"", "\"debuglevel\"", "\"severity\"", "\"Dhcp4\"", - "\"DhcpDdns\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6", - "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL", - "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA", - "SUB_HOOKS_LIBRARY", "\"constant string\"", "\"integer\"", - "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "value", - "sub_json", "map2", "$@12", "map_content", "not_empty_map", - "list_generic", "$@13", "list2", "$@14", "list_content", + "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"", + "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"", + "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"", + "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", "\"htype\"", "\"time\"", + "\"enterprise-id\"", "\"dhcp4o6-port\"", "\"control-socket\"", + "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"", "\"Logging\"", + "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", + "\"severity\"", "\"Dhcp4\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", + "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", + "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEF", + "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "\"constant string\"", + "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", + "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", + "$@11", "value", "sub_json", "map2", "$@12", "map_content", + "not_empty_map", "list_generic", "$@13", "list2", "$@14", "list_content", "not_empty_list", "unknown_map_entry", "syntax_map", "$@15", "global_objects", "global_object", "dhcp6_object", "$@16", "sub_dhcp6", "$@17", "global_params", "global_param", "preferred_lifetime", @@ -3453,15 +3514,18 @@ namespace isc { namespace dhcp { "hooks_library", "$@32", "sub_hooks_library", "$@33", "hooks_params", "hooks_param", "library", "$@34", "parameters", "$@35", "expired_leases_processing", "$@36", "expired_leases_params", - "expired_leases_param", "subnet6_list", "$@37", "subnet6_list_content", - "not_empty_subnet6_list", "subnet6", "$@38", "sub_subnet6", "$@39", - "subnet6_params", "subnet6_param", "subnet", "$@40", "interface", "$@41", - "interface_id", "$@42", "client_class", "$@43", "reservation_mode", - "$@44", "id", "rapid_commit", "option_def_list", "$@45", - "option_def_list_content", "not_empty_option_def_list", - "option_def_entry", "$@46", "sub_option_def", "$@47", - "option_def_params", "not_empty_option_def_params", "option_def_param", - "option_def_name", "code", "option_def_code", "option_def_type", "$@48", + "expired_leases_param", "reclaim_timer_wait_time", + "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", + "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles", + "subnet6_list", "$@37", "subnet6_list_content", "not_empty_subnet6_list", + "subnet6", "$@38", "sub_subnet6", "$@39", "subnet6_params", + "subnet6_param", "subnet", "$@40", "interface", "$@41", "interface_id", + "$@42", "client_class", "$@43", "reservation_mode", "$@44", "id", + "rapid_commit", "option_def_list", "$@45", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@46", + "sub_option_def", "$@47", "option_def_params", + "not_empty_option_def_params", "option_def_param", "option_def_name", + "code", "option_def_code", "option_def_type", "$@48", "option_def_record_types", "$@49", "space", "$@50", "option_def_space", "option_def_encapsulate", "$@51", "option_def_array", "option_data_list", "$@52", "option_data_list_content", "not_empty_option_data_list", @@ -3501,50 +3565,51 @@ namespace isc { namespace dhcp { const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 202, 202, 202, 203, 203, 204, 204, 205, 205, - 206, 206, 207, 207, 208, 208, 209, 209, 210, 210, - 211, 211, 212, 212, 220, 221, 222, 223, 224, 225, - 226, 229, 234, 234, 246, 247, 250, 254, 261, 261, - 269, 269, 276, 277, 280, 284, 295, 305, 305, 317, - 318, 322, 323, 324, 325, 326, 329, 329, 346, 346, - 354, 355, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 384, 389, 394, 399, 404, 409, - 409, 419, 419, 427, 427, 437, 437, 447, 447, 457, - 458, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 472, 472, 480, 480, 488, 488, 496, 496, 504, 504, - 512, 517, 522, 527, 527, 537, 538, 541, 542, 545, - 550, 555, 555, 565, 566, 569, 570, 573, 578, 578, - 588, 588, 598, 599, 602, 603, 606, 606, 614, 614, - 622, 623, 624, 627, 628, 631, 631, 639, 639, 647, - 647, 657, 658, 664, 672, 672, 685, 686, 689, 690, - 697, 697, 720, 720, 729, 730, 734, 735, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 753, 753, 761, 761, 769, 769, 777, - 777, 785, 785, 793, 798, 807, 807, 819, 820, 823, - 824, 829, 829, 840, 840, 850, 851, 854, 855, 858, - 859, 860, 861, 862, 863, 864, 865, 868, 870, 875, - 877, 877, 885, 885, 893, 893, 901, 903, 903, 911, - 920, 920, 932, 933, 938, 939, 944, 944, 955, 955, - 966, 967, 972, 973, 978, 979, 980, 981, 982, 983, - 986, 988, 988, 996, 998, 1000, 1008, 1008, 1020, 1021, - 1024, 1025, 1028, 1028, 1036, 1036, 1044, 1045, 1048, 1049, - 1050, 1053, 1053, 1064, 1064, 1076, 1077, 1080, 1081, 1084, - 1084, 1092, 1092, 1100, 1101, 1104, 1105, 1106, 1107, 1108, - 1109, 1110, 1113, 1113, 1121, 1126, 1126, 1134, 1139, 1147, - 1147, 1157, 1158, 1161, 1162, 1165, 1165, 1173, 1173, 1181, - 1182, 1185, 1186, 1190, 1191, 1192, 1193, 1194, 1195, 1196, - 1197, 1200, 1200, 1210, 1210, 1220, 1220, 1228, 1228, 1236, - 1236, 1244, 1244, 1257, 1257, 1267, 1267, 1278, 1278, 1288, - 1289, 1292, 1292, 1300, 1301, 1304, 1305, 1308, 1309, 1310, - 1311, 1314, 1316, 1316, 1327, 1327, 1337, 1338, 1341, 1342, - 1343, 1344, 1345, 1346, 1347, 1350, 1350, 1357, 1358, 1359, - 1362, 1367, 1367, 1375, 1380, 1387, 1394, 1394, 1404, 1405, - 1408, 1409, 1412, 1412, 1420, 1420, 1430, 1430, 1442, 1442, - 1449, 1449, 1461, 1461, 1474, 1475, 1479, 1483, 1483, 1495, - 1496, 1500, 1500, 1508, 1509, 1512, 1513, 1514, 1515, 1516, - 1519, 1523, 1523, 1531, 1531, 1541, 1542, 1545, 1545, 1553, - 1554, 1557, 1557 + 0, 208, 208, 208, 209, 209, 210, 210, 211, 211, + 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, + 217, 217, 218, 218, 226, 227, 228, 229, 230, 231, + 232, 235, 240, 240, 252, 253, 256, 260, 267, 267, + 275, 275, 282, 283, 286, 290, 301, 311, 311, 323, + 324, 328, 329, 330, 331, 332, 335, 335, 352, 352, + 360, 361, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 390, 395, 400, 405, 410, 415, + 415, 425, 425, 433, 433, 443, 443, 453, 453, 463, + 464, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 478, 478, 486, 486, 494, 494, 502, 502, 510, 510, + 518, 523, 528, 533, 533, 543, 544, 547, 548, 551, + 556, 561, 561, 571, 572, 575, 576, 579, 584, 584, + 594, 594, 604, 605, 608, 609, 612, 612, 620, 620, + 628, 629, 630, 633, 634, 637, 637, 645, 645, 653, + 653, 663, 664, 667, 668, 669, 670, 671, 672, 675, + 680, 685, 690, 695, 700, 708, 708, 721, 722, 725, + 726, 733, 733, 756, 756, 765, 766, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 789, 789, 797, 797, 805, 805, + 813, 813, 821, 821, 829, 834, 843, 843, 855, 856, + 859, 860, 865, 865, 876, 876, 886, 887, 890, 891, + 894, 895, 896, 897, 898, 899, 900, 901, 904, 906, + 911, 913, 913, 921, 921, 929, 929, 937, 939, 939, + 947, 956, 956, 968, 969, 974, 975, 980, 980, 991, + 991, 1002, 1003, 1008, 1009, 1014, 1015, 1016, 1017, 1018, + 1019, 1022, 1024, 1024, 1032, 1034, 1036, 1044, 1044, 1056, + 1057, 1060, 1061, 1064, 1064, 1072, 1072, 1080, 1081, 1084, + 1085, 1086, 1089, 1089, 1100, 1100, 1112, 1113, 1116, 1117, + 1120, 1120, 1128, 1128, 1136, 1137, 1140, 1141, 1142, 1143, + 1144, 1145, 1146, 1149, 1149, 1157, 1162, 1162, 1170, 1175, + 1183, 1183, 1193, 1194, 1197, 1198, 1201, 1201, 1209, 1209, + 1217, 1218, 1221, 1222, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1236, 1236, 1246, 1246, 1256, 1256, 1264, 1264, + 1272, 1272, 1280, 1280, 1293, 1293, 1303, 1303, 1314, 1314, + 1324, 1325, 1328, 1328, 1336, 1337, 1340, 1341, 1344, 1345, + 1346, 1347, 1350, 1352, 1352, 1363, 1363, 1373, 1374, 1377, + 1378, 1379, 1380, 1381, 1382, 1383, 1386, 1386, 1393, 1394, + 1395, 1398, 1403, 1403, 1411, 1416, 1423, 1430, 1430, 1440, + 1441, 1444, 1445, 1448, 1448, 1456, 1456, 1466, 1466, 1478, + 1478, 1485, 1485, 1497, 1497, 1510, 1511, 1515, 1519, 1519, + 1531, 1532, 1536, 1536, 1544, 1545, 1548, 1549, 1550, 1551, + 1552, 1555, 1559, 1559, 1567, 1567, 1577, 1578, 1581, 1581, + 1589, 1590, 1593, 1593 }; // Print the state stack on the debug stream. @@ -3579,8 +3644,8 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 3583 "dhcp6_parser.cc" // lalr1.cc:1167 -#line 1565 "dhcp6_parser.yy" // lalr1.cc:1168 +#line 3648 "dhcp6_parser.cc" // lalr1.cc:1167 +#line 1601 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index ed70fd647a..cc9ba3d57e 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -40,7 +40,7 @@ #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED // // "%code requires" blocks. -#line 17 "dhcp6_parser.yy" // lalr1.cc:377 +#line 17 "dhcp6_parser.yy" // lalr1.cc:392 #include <string> #include <cc/data.h> @@ -52,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 56 "dhcp6_parser.h" // lalr1.cc:377 +#line 56 "dhcp6_parser.h" // lalr1.cc:392 # include <cassert> # include <cstdlib> // std::abort @@ -135,9 +135,9 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" // lalr1.cc:377 +#line 14 "dhcp6_parser.yy" // lalr1.cc:392 namespace isc { namespace dhcp { -#line 141 "dhcp6_parser.h" // lalr1.cc:377 +#line 141 "dhcp6_parser.h" // lalr1.cc:392 @@ -409,42 +409,48 @@ namespace isc { namespace dhcp { TOKEN_LIBRARY = 322, TOKEN_PARAMETERS = 323, TOKEN_EXPIRED_LEASES_PROCESSING = 324, - TOKEN_SERVER_ID = 325, - TOKEN_LLT = 326, - TOKEN_EN = 327, - TOKEN_LL = 328, - TOKEN_IDENTIFIER = 329, - TOKEN_HTYPE = 330, - TOKEN_TIME = 331, - TOKEN_ENTERPRISE_ID = 332, - TOKEN_DHCP4O6_PORT = 333, - TOKEN_CONTROL_SOCKET = 334, - TOKEN_SOCKET_TYPE = 335, - TOKEN_SOCKET_NAME = 336, - TOKEN_DHCP_DDNS = 337, - TOKEN_LOGGING = 338, - TOKEN_LOGGERS = 339, - TOKEN_OUTPUT_OPTIONS = 340, - TOKEN_OUTPUT = 341, - TOKEN_DEBUGLEVEL = 342, - TOKEN_SEVERITY = 343, - TOKEN_DHCP4 = 344, - TOKEN_DHCPDDNS = 345, - TOKEN_TOPLEVEL_JSON = 346, - TOKEN_TOPLEVEL_DHCP6 = 347, - TOKEN_SUB_DHCP6 = 348, - TOKEN_SUB_INTERFACES6 = 349, - TOKEN_SUB_SUBNET6 = 350, - TOKEN_SUB_POOL6 = 351, - TOKEN_SUB_PD_POOL = 352, - TOKEN_SUB_RESERVATION = 353, - TOKEN_SUB_OPTION_DEF = 354, - TOKEN_SUB_OPTION_DATA = 355, - TOKEN_SUB_HOOKS_LIBRARY = 356, - TOKEN_STRING = 357, - TOKEN_INTEGER = 358, - TOKEN_FLOAT = 359, - TOKEN_BOOLEAN = 360 + TOKEN_RECLAIM_TIMER_WAIT_TIME = 325, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326, + TOKEN_HOLD_RECLAIMED_TIME = 327, + TOKEN_MAX_RECLAIM_LEASES = 328, + TOKEN_MAX_RECLAIM_TIME = 329, + TOKEN_UNWARNED_RECLAIM_CYCLES = 330, + TOKEN_SERVER_ID = 331, + TOKEN_LLT = 332, + TOKEN_EN = 333, + TOKEN_LL = 334, + TOKEN_IDENTIFIER = 335, + TOKEN_HTYPE = 336, + TOKEN_TIME = 337, + TOKEN_ENTERPRISE_ID = 338, + TOKEN_DHCP4O6_PORT = 339, + TOKEN_CONTROL_SOCKET = 340, + TOKEN_SOCKET_TYPE = 341, + TOKEN_SOCKET_NAME = 342, + TOKEN_DHCP_DDNS = 343, + TOKEN_LOGGING = 344, + TOKEN_LOGGERS = 345, + TOKEN_OUTPUT_OPTIONS = 346, + TOKEN_OUTPUT = 347, + TOKEN_DEBUGLEVEL = 348, + TOKEN_SEVERITY = 349, + TOKEN_DHCP4 = 350, + TOKEN_DHCPDDNS = 351, + TOKEN_TOPLEVEL_JSON = 352, + TOKEN_TOPLEVEL_DHCP6 = 353, + TOKEN_SUB_DHCP6 = 354, + TOKEN_SUB_INTERFACES6 = 355, + TOKEN_SUB_SUBNET6 = 356, + TOKEN_SUB_POOL6 = 357, + TOKEN_SUB_PD_POOL = 358, + TOKEN_SUB_RESERVATION = 359, + TOKEN_SUB_OPTION_DEF = 360, + TOKEN_SUB_OPTION_DATA = 361, + TOKEN_SUB_HOOKS_LIBRARY = 362, + TOKEN_STRING = 363, + TOKEN_INTEGER = 364, + TOKEN_FLOAT = 365, + TOKEN_BOOLEAN = 366 }; }; @@ -833,6 +839,30 @@ namespace isc { namespace dhcp { static inline symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type make_SERVER_ID (const location_type& l); static inline @@ -1180,12 +1210,12 @@ namespace isc { namespace dhcp { enum { yyeof_ = 0, - yylast_ = 640, ///< Last index in yytable_. - yynnts_ = 275, ///< Number of nonterminal symbols. + yylast_ = 661, ///< Last index in yytable_. + yynnts_ = 281, ///< Number of nonterminal symbols. yyfinal_ = 24, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 106 ///< Number of tokens. + yyntokens_ = 112 ///< Number of tokens. }; @@ -1238,9 +1268,9 @@ namespace isc { namespace dhcp { 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105 + 105, 106, 107, 108, 109, 110, 111 }; - const unsigned int user_token_number_max_ = 360; + const unsigned int user_token_number_max_ = 366; const token_number_type undef_token_ = 2; if (static_cast<int>(t) <= yyeof_) @@ -1273,24 +1303,24 @@ namespace isc { namespace dhcp { { switch (other.type_get ()) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.copy< ElementPtr > (other.value); break; - case 105: // "boolean" + case 111: // "boolean" value.copy< bool > (other.value); break; - case 104: // "floating point" + case 110: // "floating point" value.copy< double > (other.value); break; - case 103: // "integer" + case 109: // "integer" value.copy< int64_t > (other.value); break; - case 102: // "constant string" + case 108: // "constant string" value.copy< std::string > (other.value); break; @@ -1311,24 +1341,24 @@ namespace isc { namespace dhcp { (void) v; switch (this->type_get ()) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.copy< ElementPtr > (v); break; - case 105: // "boolean" + case 111: // "boolean" value.copy< bool > (v); break; - case 104: // "floating point" + case 110: // "floating point" value.copy< double > (v); break; - case 103: // "integer" + case 109: // "integer" value.copy< int64_t > (v); break; - case 102: // "constant string" + case 108: // "constant string" value.copy< std::string > (v); break; @@ -1408,24 +1438,24 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.template destroy< ElementPtr > (); break; - case 105: // "boolean" + case 111: // "boolean" value.template destroy< bool > (); break; - case 104: // "floating point" + case 110: // "floating point" value.template destroy< double > (); break; - case 103: // "integer" + case 109: // "integer" value.template destroy< int64_t > (); break; - case 102: // "constant string" + case 108: // "constant string" value.template destroy< std::string > (); break; @@ -1452,24 +1482,24 @@ namespace isc { namespace dhcp { super_type::move(s); switch (this->type_get ()) { - case 119: // value - case 338: // duid_type + case 125: // value + case 350: // duid_type value.move< ElementPtr > (s.value); break; - case 105: // "boolean" + case 111: // "boolean" value.move< bool > (s.value); break; - case 104: // "floating point" + case 110: // "floating point" value.move< double > (s.value); break; - case 103: // "integer" + case 109: // "integer" value.move< int64_t > (s.value); break; - case 102: // "constant string" + case 108: // "constant string" value.move< std::string > (s.value); break; @@ -1538,7 +1568,8 @@ namespace isc { namespace dhcp { 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360 + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366 }; return static_cast<token_type> (yytoken_number_[type]); } @@ -1952,6 +1983,42 @@ namespace isc { namespace dhcp { } Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp6Parser::symbol_type Dhcp6Parser::make_SERVER_ID (const location_type& l) { return symbol_type (token::TOKEN_SERVER_ID, l); @@ -2168,9 +2235,9 @@ namespace isc { namespace dhcp { } -#line 14 "dhcp6_parser.yy" // lalr1.cc:377 +#line 14 "dhcp6_parser.yy" // lalr1.cc:392 } } // isc::dhcp -#line 2174 "dhcp6_parser.h" // lalr1.cc:377 +#line 2241 "dhcp6_parser.h" // lalr1.cc:392 diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 32548f43ae..03d3b3893e 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -119,6 +119,12 @@ using namespace std; PARAMETERS "parameters" EXPIRED_LEASES_PROCESSING "expired-leases-processing" + RECLAIM_TIMER_WAIT_TIME "reclaim-timer-wait-time" + FLUSH_RECLAIMED_TIMER_WAIT_TIME "flush-reclaimed-timer-wait-time" + HOLD_RECLAIMED_TIME "hold-reclaimed-time" + MAX_RECLAIM_LEASES "max-reclaim-leases" + MAX_RECLAIM_TIME "max-reclaim-time" + UNWARNED_RECLAIM_CYCLES "unwarned-reclaim-cycles" SERVER_ID "server-id" LLT "LLT" @@ -648,7 +654,7 @@ expired_leases_processing: EXPIRED_LEASES_PROCESSING { ElementPtr m(new MapElement(ctx.loc2pos(@1))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); - ctx.enter(ctx.NO_KEYWORD); + ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } COLON LCURLY_BRACKET expired_leases_params RCURLY_BRACKET { ctx.stack_.pop_back(); ctx.leave(); @@ -658,12 +664,42 @@ expired_leases_params: expired_leases_param | expired_leases_params COMMA expired_leases_param ; -// This is a bit of a simplification. But it can also serve as an example. -// Instead of explicitly listing all allowed expired leases parameters, we -// simply say that all of them as integers. -expired_leases_param: STRING COLON INTEGER { +expired_leases_param: reclaim_timer_wait_time + | flush_reclaimed_timer_wait_time + | hold_reclaimed_time + | max_reclaim_leases + | max_reclaim_time + | unwarned_reclaim_cycles + ; + +reclaim_timer_wait_time: RECLAIM_TIMER_WAIT_TIME COLON INTEGER { + ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("reclaim-timer-wait-time", value); +}; + +flush_reclaimed_timer_wait_time: FLUSH_RECLAIMED_TIMER_WAIT_TIME COLON INTEGER { + ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); +}; + +hold_reclaimed_time: HOLD_RECLAIMED_TIME COLON INTEGER { + ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("hold-reclaimed-time", value); +}; + +max_reclaim_leases: MAX_RECLAIM_LEASES COLON INTEGER { + ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("max-reclaim-leases", value); +}; + +max_reclaim_time: MAX_RECLAIM_TIME COLON INTEGER { + ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("max-reclaim-time", value); +}; + +unwarned_reclaim_cycles: UNWARNED_RECLAIM_CYCLES COLON INTEGER { ElementPtr value(new IntElement($3, ctx.loc2pos(@3))); - ctx.stack_.back()->set($1, value); + ctx.stack_.back()->set("unwarned-reclaim-cycles", value); }; // --- subnet6 ------------------------------------------ diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc index 22f846cfc9..68af31fd37 100644 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@ -717,8 +717,7 @@ DhcpConfigParser* createGlobal6DhcpConfigParser(const std::string& config_id, } else if (config_id.compare("relay-supplied-options") == 0) { parser = new RSOOListConfigParser(config_id); // control-socket has been converted to SimpleParser. - } else if (config_id.compare("expired-leases-processing") == 0) { - parser = new ExpirationConfigParser(); + // expired-leases-processing has been converted to SimpleParser. } else if (config_id.compare("client-classes") == 0) { parser = new ClientClassDefListParser(config_id, globalContext()); // host-reservation-identifiers have been converted to SimpleParser already. @@ -939,6 +938,12 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set) { continue; } + if (config_pair.first == "expired-leases-processing") { + ExpirationConfigParser parser; + parser.parse(config_pair.second); + continue; + } + ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first, config_pair.second)); LOG_DEBUG(dhcp6_logger, DBG_DHCP6_DETAIL, DHCP6_PARSER_CREATED) diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 6a149b33cb..807e79140e 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,4 +1,3 @@ -// Generated 201701070039 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ @@ -41,9 +40,9 @@ # include "position.hh" -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:337 namespace isc { namespace dhcp { -#line 46 "location.hh" // location.cc:296 +#line 46 "location.hh" // location.cc:337 /// Abstract a location. class location { @@ -187,7 +186,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:337 } } // isc::dhcp -#line 192 "location.hh" // location.cc:296 +#line 192 "location.hh" // location.cc:337 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/parser_context.cc b/src/bin/dhcp6/parser_context.cc index 8b1687711f..96ac1203d6 100644 --- a/src/bin/dhcp6/parser_context.cc +++ b/src/bin/dhcp6/parser_context.cc @@ -145,6 +145,8 @@ Parser6Context::contextName() return ("option-data"); case CLIENT_CLASSES: return ("client-classes"); + case EXPIRED_LEASES_PROCESSING: + return ("expired-leases-processing"); case SERVER_ID: return ("server-id"); case DUID_TYPE: diff --git a/src/bin/dhcp6/parser_context.h b/src/bin/dhcp6/parser_context.h index 1e10fca2af..327ebffcf4 100644 --- a/src/bin/dhcp6/parser_context.h +++ b/src/bin/dhcp6/parser_context.h @@ -225,6 +225,9 @@ public: /// Used while parsing Dhcp6/client-classes structures. CLIENT_CLASSES, + /// Used while parsing Dhcp6/expired-leases-processing. + EXPIRED_LEASES_PROCESSING, + /// Used while parsing Dhcp6/server-id structures. SERVER_ID, diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index dded956d62..72cefa7be1 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,4 +1,3 @@ -// Generated 201701070039 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ @@ -51,9 +50,9 @@ # endif # endif -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:337 namespace isc { namespace dhcp { -#line 56 "position.hh" // location.cc:296 +#line 56 "position.hh" // location.cc:337 /// Abstract a position. class position { @@ -175,7 +174,7 @@ namespace isc { namespace dhcp { return ostr << pos.line << '.' << pos.column; } -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:337 } } // isc::dhcp -#line 180 "position.hh" // location.cc:296 +#line 180 "position.hh" // location.cc:337 #endif // !YY_PARSER6_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index 5ffb6ac3a4..7083440b97 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,4 +1,3 @@ -// Generated 201701070039 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++ @@ -41,9 +40,9 @@ # include <vector> -#line 14 "dhcp6_parser.yy" // stack.hh:132 +#line 14 "dhcp6_parser.yy" // stack.hh:151 namespace isc { namespace dhcp { -#line 46 "stack.hh" // stack.hh:132 +#line 46 "stack.hh" // stack.hh:151 template <class T, class S = std::vector<T> > class stack { @@ -151,8 +150,8 @@ namespace isc { namespace dhcp { unsigned int range_; }; -#line 14 "dhcp6_parser.yy" // stack.hh:132 +#line 14 "dhcp6_parser.yy" // stack.hh:151 } } // isc::dhcp -#line 156 "stack.hh" // stack.hh:132 +#line 156 "stack.hh" // stack.hh:151 #endif // !YY_PARSER6_STACK_HH_INCLUDED |