From: Dan Theisen Date: Tue, 27 Sep 2022 03:15:26 +0000 (-0700) Subject: [#2543] Regenerate parsers X-Git-Tag: Kea-2.3.2~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b63755835eebf0692fb0e6149a260bc736bf6009;p=thirdparty%2Fkea.git [#2543] Regenerate parsers --- diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 4190ba2a66..8594709ea3 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (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 214 -#define YY_END_OF_BUFFER 215 +#define YY_NUM_RULES 215 +#define YY_END_OF_BUFFER 216 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,234 +700,237 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2061] = +static const flex_int16_t yy_accept[2086] = { 0, - 207, 207, 0, 0, 0, 0, 0, 0, 0, 0, - 215, 213, 10, 11, 213, 1, 207, 204, 207, 207, - 213, 206, 205, 213, 213, 213, 213, 213, 200, 201, - 213, 213, 213, 202, 203, 5, 5, 5, 213, 213, - 213, 10, 11, 0, 0, 195, 0, 0, 0, 0, + 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, + 216, 214, 10, 11, 214, 1, 208, 205, 208, 208, + 214, 207, 206, 214, 214, 214, 214, 214, 201, 202, + 214, 214, 214, 203, 204, 5, 5, 5, 214, 214, + 214, 10, 11, 0, 0, 196, 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, 1, 207, 207, - 0, 206, 207, 3, 2, 6, 0, 207, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 196, + 0, 0, 0, 0, 0, 0, 0, 1, 208, 208, + 0, 207, 208, 3, 2, 6, 0, 208, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 199, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 199, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 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, 88, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 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, 0, 0, 0, 0, 0, 0, 212, 210, - 0, 209, 208, 0, 0, 0, 0, 0, 0, 0, - 173, 0, 172, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 213, 211, 0, 210, 209, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 172, 0, 0, 94, 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, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 211, 208, 0, - 0, 0, 0, 0, 0, 174, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 98, 0, 0, 0, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 212, 209, 0, 0, 0, 0, 0, 0, 174, 0, + 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 80, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 83, 0, - 41, 0, 0, 0, 0, 0, 0, 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, 83, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 0, 0, 34, 0, 0, 38, 0, 0, 0, - 0, 0, 0, 12, 178, 177, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 0, 0, 34, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 12, 178, 177, + 0, 0, 0, 130, 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, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 109, 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, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 179, 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, 93, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 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, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 136, 105, 0, 0, 0, 0, 0, - 0, 110, 35, 0, 0, 0, 0, 0, 46, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, - 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 136, 105, 0, 0, 0, 0, 0, 0, 110, 35, + + 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - - 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 122, 0, 0, 0, 0, + 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 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, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 159, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 161, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, + 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 22, 0, 132, 0, 0, 0, + 0, 0, 121, 0, 22, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 135, 0, 37, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 101, 102, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 78, 92, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 0, 0, 0, 0, 0, 0, 162, 0, - 0, 160, 0, 0, 151, 150, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 175, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 78, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 162, + 0, 0, 160, 0, 0, 151, 150, 0, 0, 0, - 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 175, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 144, 0, 0, 0, 153, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 133, 0, 15, 0, - 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 0, 0, 128, 0, 0, 0, 119, 0, 0, + 0, 0, 144, 0, 0, 0, 153, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 15, 0, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 0, 0, 128, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 0, 84, 0, 181, 0, 0, 186, 0, 104, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 84, 0, 181, 0, 0, 186, + 0, 104, 0, 0, 0, 193, 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, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 189, 0, 0, 114, - 30, 0, 0, 0, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 157, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, - - 0, 0, 27, 0, 0, 163, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 0, 0, 114, 30, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 184, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 0, 27, 0, 0, 163, + 0, 0, 0, 51, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 103, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, - 29, 0, 0, 0, 185, 0, 0, 0, 0, 0, - 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, - - 188, 0, 76, 0, 47, 0, 0, 0, 182, 180, - 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 0, 0, 0, 0, 0, 48, 0, - 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 0, 158, 0, 0, + 0, 0, 0, 0, 0, 56, 0, 0, 103, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 134, 0, 0, 0, 29, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 188, 0, 76, 0, 47, + 0, 0, 0, 182, 180, 0, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 0, 0, 0, 118, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 148, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 58, 57, 19, 0, 166, 0, + 141, 0, 58, 57, 19, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, - 0, 0, 0, 0, 50, 0, 63, 0, 45, 168, - 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 72, 0, + 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, + 0, 0, 0, 50, 0, 63, 0, 45, 168, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 70, 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, 32, 0, - 0, 71, 0, 0, 0, 0, 146, 0, 0, 0, - 0, 191, 194, 167, 0, 115, 96, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 0, 143, 0, 69, 0, 61, 0, 0, 0, 0, - - 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, - 137, 0, 0, 171, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 0, 0, 71, 0, 0, 0, 0, 146, 0, 0, + 0, 0, 0, 191, 194, 167, 0, 115, 96, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 0, 143, 0, 69, 0, 61, 0, + 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 137, 0, 0, 171, 195, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 0, 0, 0, 0, 26, 24, 0, 0, 0, - 73, 0, 0, 99, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 0, 139, 25, 190, 0 + 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 26, 24, 0, 0, 0, 73, 0, 0, 99, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 0, 139, 25, 190, 0 } ; static const YY_CHAR yy_ec[256] = @@ -974,486 +977,494 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[2069] = +static const flex_int16_t yy_base[2094] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2447, 2448, 34, 2443, 145, 0, 207, 2448, 214, 221, - 13, 228, 2448, 2423, 118, 25, 2, 6, 2448, 2448, - 73, 11, 17, 2448, 2448, 2448, 104, 2431, 2384, 0, - 2421, 108, 2438, 24, 262, 2448, 2380, 67, 2386, 84, - 75, 88, 224, 91, 89, 290, 220, 2378, 206, 285, - 236, 204, 197, 60, 232, 2387, 247, 294, 315, 307, - 286, 2370, 212, 325, 354, 328, 2389, 0, 366, 382, - 397, 411, 404, 2448, 0, 2448, 419, 425, 249, 319, - 238, 331, 399, 329, 2448, 2386, 2427, 2448, 404, 2448, - - 438, 2414, 405, 2383, 415, 10, 409, 311, 411, 418, - 428, 2424, 0, 499, 418, 2366, 2363, 2367, 402, 2363, - 80, 2371, 216, 2357, 2358, 2363, 78, 2373, 2356, 2365, - 2355, 2364, 221, 2355, 223, 2356, 2354, 400, 2402, 2406, - 2346, 2399, 2339, 174, 2360, 2360, 2354, 278, 2347, 2345, - 2346, 2338, 2343, 2337, 423, 2348, 346, 2333, 2332, 2346, - 405, 2332, 420, 355, 2326, 495, 407, 428, 2347, 2344, - 2345, 428, 2343, 2378, 2377, 2323, 2323, 433, 2324, 433, - 2316, 2333, 2325, 0, 446, 462, 471, 464, 476, 481, - 2324, 2448, 2369, 486, 2318, 466, 479, 485, 2372, 510, - - 2371, 502, 2370, 2448, 2448, 548, 2369, 521, 2328, 2320, - 2307, 2318, 2322, 2323, 2303, 2314, 2318, 2315, 2314, 478, - 518, 2352, 2316, 2297, 2294, 2302, 2297, 2311, 2307, 2298, - 2294, 2306, 2306, 2297, 2281, 2285, 2298, 2300, 2297, 2289, - 2279, 2297, 2448, 2292, 505, 2330, 2276, 2285, 2327, 2274, - 2284, 2287, 518, 2283, 2322, 2267, 2269, 2280, 2318, 2263, - 2321, 2275, 2255, 2270, 542, 2260, 2266, 524, 2257, 2255, - 2255, 2261, 2252, 2251, 2258, 2248, 2307, 2263, 2262, 2256, - 498, 2263, 2258, 2250, 2240, 2255, 2254, 2249, 2253, 2234, - 2250, 2236, 2242, 2249, 2231, 457, 2236, 2233, 2232, 2227, - - 2241, 551, 2240, 2283, 2242, 529, 2233, 552, 2448, 2448, - 554, 2448, 2448, 2220, 536, 543, 2268, 559, 2278, 553, - 2448, 2277, 2448, 2271, 603, 2448, 552, 2211, 2220, 2268, - 2228, 2211, 2228, 2264, 2224, 2207, 2213, 2265, 2220, 2223, - 2214, 2217, 2203, 2214, 2258, 2252, 2210, 2207, 594, 2213, - 2253, 2188, 2246, 2199, 2194, 2191, 2242, 2199, 2188, 2204, - 2238, 2184, 601, 2198, 2183, 2196, 2194, 2192, 2192, 2191, - 2186, 2193, 2188, 2184, 570, 2182, 2185, 2180, 2166, 2178, - 2174, 2224, 563, 2218, 2448, 2182, 2216, 2166, 2165, 2164, - 2157, 2159, 2171, 2162, 2169, 2150, 2167, 2162, 581, 2209, - - 2162, 2159, 2162, 2448, 2161, 2150, 2150, 2162, 547, 2137, - 2138, 2159, 2150, 2140, 2191, 2136, 2150, 584, 2136, 2148, - 2147, 2146, 2141, 2183, 2143, 2142, 2141, 2140, 2183, 2142, - 2122, 2180, 2448, 2122, 2121, 629, 2134, 2448, 2448, 2133, - 2122, 2114, 572, 2173, 2172, 2448, 2171, 2448, 607, 655, - 610, 2170, 2112, 2123, 2162, 2115, 2117, 2119, 2106, 2114, - 2102, 2448, 2107, 2100, 2112, 2115, 2102, 2101, 2448, 595, - 2103, 2100, 613, 2098, 2100, 2448, 2145, 2107, 2104, 2089, - 2102, 2097, 637, 2104, 2092, 2085, 2136, 2448, 2083, 2099, - 2133, 2094, 2091, 2092, 2076, 2085, 2127, 2078, 2077, 2072, - - 2071, 2122, 2066, 626, 2085, 2059, 2066, 2071, 2081, 2115, - 2119, 2448, 2064, 2060, 2058, 2067, 2066, 2060, 2067, 2051, - 2051, 2061, 2049, 2063, 2063, 2051, 2047, 2045, 2448, 2102, - 2448, 2044, 2055, 2094, 2039, 2044, 2053, 2047, 2041, 2050, - 2092, 2086, 2048, 2032, 2027, 2047, 2022, 2028, 631, 2042, - 2035, 2039, 2022, 2080, 2021, 2021, 2072, 2017, 2018, 2017, - 2448, 2030, 2067, 2448, 2018, 2016, 2448, 2027, 2063, 2023, - 2007, 2024, 2064, 2448, 2448, 2448, 630, 621, 681, 2448, - 2015, 2014, 294, 2021, 2001, 2011, 2053, 1998, 2051, 1996, - 2006, 2048, 1993, 2000, 1993, 2005, 1987, 1987, 2002, 2001, - - 603, 2000, 1999, 1999, 1981, 1986, 2027, 1994, 1991, 1985, - 2030, 1974, 1990, 1989, 2448, 1974, 1971, 2029, 1984, 1976, - 1982, 1973, 1981, 1966, 1982, 1964, 1976, 1968, 640, 1959, - 1958, 1952, 1957, 1972, 1969, 1970, 1949, 1959, 1965, 2008, - 1963, 1955, 1946, 2448, 1947, 1949, 1958, 1950, 1955, 1994, - 1993, 1944, 16, 1953, 1990, 1935, 1988, 1935, 1938, 1931, - 2448, 1945, 1924, 1928, 1942, 1934, 1979, 1931, 1938, 1976, - 2448, 1921, 1935, 1934, 1937, 1918, 1970, 1969, 1916, 1967, - 1927, 1911, 1964, 1963, 2448, 1908, 1922, 1921, 679, 1922, - 1921, 1957, 1921, 1916, 1899, 1904, 1906, 2448, 1912, 1902, - - 2448, 654, 666, 1896, 1894, 1901, 1911, 1903, 1890, 1884, - 1896, 1895, 1940, 659, 1944, 1898, 649, 20, 242, 210, - 437, 541, 577, 564, 585, 646, 649, 641, 698, 651, - 661, 664, 703, 666, 660, 664, 662, 664, 711, 717, - 675, 676, 2448, 679, 675, 666, 681, 686, 683, 686, - 685, 673, 687, 685, 693, 729, 691, 736, 737, 687, - 679, 689, 736, 694, 744, 2448, 745, 698, 700, 696, - 690, 693, 751, 747, 710, 699, 712, 2448, 702, 713, - 702, 715, 705, 718, 762, 763, 706, 717, 702, 725, - 704, 710, 765, 729, 713, 725, 769, 770, 717, 772, - - 736, 731, 736, 734, 778, 720, 732, 735, 739, 731, - 728, 2448, 792, 751, 752, 742, 745, 756, 741, 748, - 754, 746, 760, 800, 776, 763, 768, 765, 747, 754, - 768, 813, 770, 767, 768, 766, 775, 2448, 771, 766, - 781, 778, 764, 766, 785, 782, 770, 777, 778, 787, - 791, 827, 789, 780, 778, 777, 788, 784, 840, 787, - 798, 783, 784, 790, 806, 796, 2448, 806, 806, 799, - 810, 808, 853, 795, 797, 812, 799, 798, 860, 817, - 803, 809, 807, 2448, 2448, 817, 822, 827, 815, 825, - 827, 2448, 2448, 828, 815, 833, 820, 814, 2448, 819, - - 837, 824, 874, 825, 877, 823, 827, 845, 886, 2448, - 2448, 831, 835, 834, 831, 891, 844, 834, 835, 831, - 844, 855, 856, 851, 852, 854, 847, 849, 845, 851, - 851, 853, 868, 851, 910, 867, 872, 849, 872, 858, - 857, 2448, 864, 865, 865, 878, 916, 874, 864, 879, - 880, 867, 899, 907, 876, 871, 926, 927, 889, 929, - 2448, 935, 878, 894, 898, 939, 889, 888, 883, 884, - 896, 891, 887, 890, 891, 901, 910, 947, 894, 913, - 905, 900, 958, 915, 916, 907, 2448, 921, 910, 913, - 921, 923, 908, 924, 918, 965, 931, 915, 916, 2448, - - 932, 935, 918, 977, 920, 939, 2448, 938, 941, 927, - 922, 940, 980, 938, 934, 931, 984, 985, 947, 933, - 951, 950, 951, 937, 952, 944, 951, 941, 959, 958, - 945, 962, 2448, 954, 960, 963, 1008, 2448, 957, 962, - 1006, 958, 970, 964, 965, 963, 965, 975, 1020, 964, - 965, 965, 1024, 968, 980, 973, 2448, 969, 977, 975, - 1026, 968, 989, 975, 977, 983, 991, 982, 987, 997, - 998, 1003, 1044, 1016, 1021, 1003, 1000, 996, 1010, 993, - 993, 2448, 994, 1054, 997, 2448, 1008, 998, 1018, 1017, - 1008, 1019, 1062, 1023, 1016, 1020, 1024, 1007, 1024, 1015, - - 1070, 1017, 2448, 1067, 1016, 1019, 1037, 1019, 1020, 1020, - 1041, 1038, 1043, 1044, 1030, 1038, 1047, 1027, 1042, 1049, - 1091, 2448, 1092, 1093, 1035, 1045, 1055, 1039, 1059, 1047, - 1043, 1050, 1059, 1047, 1054, 1055, 1067, 1108, 1055, 1053, - 1055, 1072, 1113, 1063, 1062, 1068, 1066, 1064, 1059, 1120, - 1071, 1122, 1118, 1124, 2448, 1081, 1074, 1065, 1084, 1072, - 1082, 1083, 1079, 1092, 1092, 2448, 1076, 1072, 1079, 2448, - 1080, 1140, 1099, 1080, 1099, 1100, 1102, 1141, 1094, 1148, - 1149, 1099, 1097, 1108, 1107, 1091, 1096, 1114, 2448, 1136, - 1127, 1159, 1099, 1121, 1116, 1116, 1120, 1165, 2448, 1108, - - 1108, 1111, 1128, 1123, 1127, 1122, 2448, 1114, 1131, 1111, - 1132, 1122, 1173, 1126, 2448, 1140, 1140, 1178, 1125, 1134, - 1182, 1140, 1145, 1131, 1191, 1134, 1145, 1137, 1143, 1139, - 1157, 1158, 1159, 2448, 2448, 1158, 2448, 1143, 1154, 1145, - 1164, 1157, 1155, 1148, 1160, 1204, 1168, 1157, 1164, 1165, - 1171, 2448, 1164, 1216, 1157, 1218, 2448, 1219, 1161, 1167, - 1174, 1218, 1180, 2448, 1181, 2448, 1168, 2448, 1170, 1184, - 1189, 1172, 1231, 1188, 1189, 1229, 1181, 1186, 1237, 1233, - 1186, 1240, 2448, 1191, 1188, 1243, 1244, 1201, 1202, 1204, - 2448, 2448, 1243, 1192, 1208, 1251, 1193, 1205, 1210, 1225, - - 1256, 2448, 1213, 1206, 1215, 1206, 1217, 2448, 1262, 1199, - 1210, 1225, 1261, 1213, 1224, 1225, 1226, 1223, 1267, 1230, - 1220, 1230, 1236, 1223, 1219, 1279, 1275, 1233, 1277, 1284, - 1241, 2448, 1242, 1236, 1245, 1246, 1243, 1233, 1236, 1236, - 1241, 1296, 1243, 1298, 1241, 1246, 1301, 1297, 1238, 1253, - 1246, 1250, 1263, 1264, 1262, 1311, 2448, 1265, 2448, 2448, - 1270, 1262, 1272, 1257, 1313, 1260, 1260, 1321, 1265, 1275, - 1324, 2448, 1272, 1273, 1275, 1328, 1269, 1272, 2448, 1290, - 1291, 2448, 1291, 1279, 2448, 2448, 1292, 1275, 1295, 1282, - 1341, 1291, 2448, 1343, 1292, 1345, 1325, 2448, 1347, 1304, - - 1349, 1300, 1347, 2448, 1295, 1354, 1304, 1298, 1295, 1298, - 1300, 1317, 1356, 1309, 1321, 1324, 1312, 1315, 1308, 1315, - 1306, 2448, 1314, 1329, 1314, 2448, 1316, 1317, 1332, 1332, - 1335, 1335, 1332, 1376, 1338, 1330, 2448, 1331, 2448, 1341, - 1333, 2448, 1339, 1344, 1345, 1342, 1386, 1334, 1349, 1350, - 1342, 2448, 1339, 1340, 1340, 1346, 1345, 1343, 1397, 1358, - 2448, 1399, 1346, 2448, 1347, 1348, 1354, 2448, 1363, 1357, - 1412, 1359, 1352, 1364, 1359, 1369, 1380, 1373, 1379, 1375, - 2448, 1384, 2448, 1381, 2448, 1378, 1401, 2448, 1428, 2448, - 1386, 1371, 1431, 2448, 1432, 1389, 1394, 1376, 1436, 1432, - - 1396, 1393, 1389, 1382, 1437, 1395, 1396, 1386, 1391, 1403, - 1448, 1403, 1451, 1447, 1410, 1407, 1451, 1399, 1404, 1402, - 1461, 1417, 1405, 1464, 1460, 1423, 1467, 1428, 1417, 1411, - 1471, 1413, 1414, 1428, 1431, 1431, 1477, 1419, 1436, 1432, - 1430, 1437, 1421, 1479, 1480, 1481, 1444, 1437, 1436, 1436, - 1431, 1449, 2448, 1440, 1446, 1451, 1438, 1439, 1438, 1440, - 1495, 1436, 1454, 1503, 1461, 1474, 2448, 1506, 1459, 2448, - 2448, 1450, 1461, 1510, 2448, 1456, 1461, 1459, 1509, 1467, - 1472, 1460, 1476, 1466, 1464, 1478, 1465, 2448, 1467, 2448, - 1470, 1521, 1464, 1469, 1529, 1477, 1487, 1488, 2448, 1534, - - 1487, 1531, 2448, 1482, 1538, 2448, 1481, 1496, 1484, 2448, - 1494, 1495, 1544, 1502, 1506, 2448, 1542, 1508, 1484, 1502, - 1503, 1512, 1494, 1501, 1513, 1512, 1503, 1553, 1505, 1501, - 1561, 1503, 1504, 1564, 1560, 1566, 1516, 1568, 1521, 1526, - 1519, 2448, 1572, 1573, 2448, 1522, 1575, 1517, 2448, 1520, - 1530, 1574, 1522, 1537, 1524, 1539, 1525, 1532, 1532, 1587, - 1544, 1545, 1533, 1532, 1592, 1545, 2448, 1589, 1540, 1537, - 2448, 1551, 1538, 1559, 2448, 1556, 1601, 1554, 1551, 1552, - 2448, 1605, 1564, 1547, 1549, 1565, 1558, 1548, 1564, 1565, - 1574, 1564, 1616, 1576, 1560, 1569, 1615, 2448, 1573, 1622, - - 2448, 1571, 2448, 1565, 2448, 1572, 1626, 1622, 2448, 2448, - 1585, 2448, 1625, 1587, 1588, 1573, 1574, 1582, 1636, 1584, - 1633, 1634, 1589, 2448, 1584, 1602, 1589, 1596, 2448, 1593, - 1598, 1596, 1648, 1649, 1597, 1594, 1594, 2448, 1609, 1610, - 1611, 2448, 1612, 1602, 1614, 1659, 1612, 1661, 1603, 1611, - 1612, 1625, 2448, 1626, 1607, 1608, 1615, 1617, 2448, 1631, - 1628, 1668, 1629, 2448, 1633, 1618, 1618, 1633, 1626, 1625, - 1636, 1623, 2448, 1639, 1627, 1630, 1686, 1626, 1645, 1647, - 1638, 1647, 1649, 1653, 2448, 2448, 1646, 1637, 1696, 1639, - 1698, 1699, 1700, 1658, 1702, 2448, 1644, 2448, 1699, 1661, - - 1662, 1649, 1657, 1668, 1655, 1666, 1652, 1650, 1658, 1657, - 1662, 1654, 1719, 1672, 1673, 1663, 1680, 1679, 1720, 1664, - 1683, 1684, 2448, 1689, 1682, 1687, 1688, 1733, 1690, 1693, - 1680, 1689, 2448, 1738, 2448, 2448, 2448, 1699, 2448, 1740, - 1682, 1742, 1743, 1686, 1745, 1693, 1742, 1743, 1705, 1745, - 1691, 1695, 1713, 1754, 1713, 2448, 1704, 1694, 1753, 1719, - 1712, 1708, 1762, 1705, 1707, 1706, 1713, 1709, 1711, 2448, - 1716, 1726, 1711, 1719, 2448, 1714, 2448, 1726, 2448, 2448, - 1731, 2448, 1732, 1732, 1723, 1779, 1723, 1733, 1718, 1731, - 2448, 1733, 1741, 1786, 1727, 1729, 1726, 1750, 2448, 1737, - - 1744, 1745, 1748, 1737, 1791, 1738, 1746, 1755, 1754, 1757, - 1750, 1745, 1745, 1757, 1752, 2448, 1763, 1751, 1804, 1755, - 1767, 1812, 2448, 1758, 1770, 1815, 1764, 1766, 1764, 1765, - 1820, 1773, 1760, 1775, 1780, 1825, 1826, 1827, 1784, 1829, - 1830, 1774, 1778, 1774, 1790, 1773, 1785, 1779, 2448, 1795, - 1839, 2448, 1796, 1781, 1799, 1790, 2448, 1791, 1805, 1801, - 1794, 2448, 2448, 2448, 1848, 2448, 2448, 1791, 1799, 1794, - 1847, 1813, 1810, 1855, 1816, 2448, 1857, 1799, 1859, 1802, - 1815, 1814, 1815, 1805, 2448, 1806, 1866, 1819, 1828, 1821, - 1865, 2448, 1812, 2448, 1824, 2448, 1868, 1874, 1816, 1832, - - 1877, 1878, 2448, 1835, 1829, 1822, 1842, 1839, 1831, 1835, - 2448, 1882, 1831, 2448, 2448, 1831, 1839, 1886, 1846, 1839, - 1894, 1842, 1842, 1838, 1840, 1899, 1900, 1842, 1858, 1843, - 2448, 1904, 1851, 1858, 1907, 2448, 2448, 1860, 1909, 1857, - 2448, 1861, 1860, 2448, 1861, 2448, 1855, 1855, 1872, 1873, - 1918, 1864, 1920, 1921, 2448, 1922, 2448, 2448, 2448, 2448, - 1928, 1931, 1934, 1935, 1937, 1940, 1943, 1946 + 2473, 2474, 34, 2469, 145, 0, 207, 2474, 214, 221, + 13, 228, 2474, 2449, 118, 25, 2, 6, 2474, 2474, + 73, 11, 17, 2474, 2474, 2474, 104, 2457, 2410, 0, + 2447, 108, 2464, 24, 262, 2474, 2406, 67, 2412, 84, + 75, 88, 224, 91, 89, 290, 220, 2404, 206, 285, + 236, 204, 197, 60, 291, 2413, 247, 308, 315, 214, + 286, 2396, 212, 320, 344, 318, 2415, 0, 373, 394, + 387, 401, 415, 2474, 0, 2474, 420, 431, 236, 314, + 238, 326, 368, 309, 2474, 2412, 2453, 2474, 263, 2474, + + 437, 2440, 308, 2409, 395, 10, 388, 334, 401, 359, + 241, 2450, 0, 498, 400, 2392, 2389, 2393, 405, 2389, + 80, 2397, 405, 2383, 2384, 2389, 78, 2399, 2382, 2391, + 2381, 2390, 376, 2381, 406, 2382, 2380, 413, 2428, 2432, + 2378, 2371, 2424, 2364, 174, 2385, 2385, 2379, 406, 2372, + 2370, 2371, 2363, 2368, 2362, 420, 2373, 449, 2358, 2357, + 2371, 428, 2357, 418, 433, 2351, 494, 427, 431, 2372, + 2369, 2370, 449, 2368, 2403, 2402, 2348, 2348, 403, 2349, + 440, 2341, 2358, 2350, 0, 463, 476, 470, 472, 480, + 502, 2349, 2474, 2394, 508, 2343, 474, 498, 512, 2397, + + 516, 2396, 500, 2395, 2474, 2474, 553, 2394, 527, 2353, + 2345, 2332, 2343, 2347, 2348, 2328, 2339, 2343, 2340, 2339, + 400, 523, 2377, 2341, 2322, 2319, 2327, 2322, 2336, 2332, + 2323, 2319, 2331, 2331, 2322, 2306, 2310, 2323, 2325, 2322, + 2314, 2304, 2322, 2474, 2307, 2316, 471, 2354, 2300, 2309, + 2351, 2298, 2308, 2311, 508, 2307, 2346, 2291, 2293, 2304, + 2342, 2287, 2345, 2299, 2279, 2294, 549, 2284, 2290, 472, + 2281, 2279, 2279, 2285, 2276, 2275, 2282, 2272, 2331, 2287, + 2286, 2280, 504, 2287, 2282, 2274, 2264, 2279, 2278, 2273, + 2277, 2258, 2274, 2260, 2266, 2273, 2255, 502, 2260, 2257, + + 2256, 2251, 2265, 556, 2264, 2307, 2266, 524, 2257, 557, + 2474, 2474, 558, 2474, 2474, 2244, 541, 545, 2292, 562, + 2302, 555, 2474, 2301, 2474, 2295, 607, 2474, 556, 2235, + 2244, 2292, 2252, 2235, 2252, 2288, 2248, 2231, 2237, 2289, + 2244, 2247, 2238, 2241, 2227, 2238, 2282, 2276, 2234, 2231, + 581, 2237, 2277, 2212, 2270, 2223, 2218, 2215, 2266, 2223, + 2212, 2228, 2262, 2208, 603, 2222, 2207, 2206, 2219, 2217, + 2215, 2215, 2214, 2209, 2216, 2211, 2207, 574, 2205, 2208, + 2203, 2189, 2201, 2197, 2247, 566, 2241, 2474, 2205, 2239, + 2189, 2188, 2187, 2180, 2182, 2194, 2185, 2192, 2173, 2190, + + 2185, 585, 2232, 2185, 2182, 2185, 2474, 2184, 2173, 2173, + 2185, 579, 2160, 2161, 2182, 2173, 2163, 2214, 2159, 2173, + 589, 2159, 2171, 2170, 2169, 2164, 2206, 2166, 2165, 2164, + 2163, 2206, 2165, 2145, 2203, 2474, 2145, 2144, 605, 2157, + 2474, 2474, 2156, 2145, 2137, 583, 2196, 2195, 2474, 2194, + 2474, 612, 660, 604, 2193, 2135, 2146, 2185, 2138, 2140, + 2142, 2129, 2137, 2125, 2474, 2130, 2123, 2135, 2138, 2125, + 2124, 2474, 629, 2126, 2123, 599, 2121, 2123, 2474, 2168, + 2130, 2127, 2112, 2125, 2120, 639, 2127, 2115, 2108, 2159, + 2474, 2106, 2122, 2156, 2117, 2115, 2113, 2114, 2098, 2107, + + 2149, 2100, 2099, 2094, 2093, 2144, 2088, 609, 2107, 2081, + 2088, 2093, 2103, 2137, 2141, 2474, 2086, 2082, 2080, 2089, + 2088, 2082, 2089, 2073, 2073, 2083, 2071, 2085, 2085, 2073, + 2069, 2067, 2474, 2124, 2474, 2066, 2077, 2116, 2061, 2066, + 2075, 2069, 2063, 2072, 2114, 2108, 2070, 2054, 2049, 2069, + 2044, 2050, 602, 2064, 2057, 2061, 2044, 2102, 2043, 2043, + 2094, 2039, 2040, 2039, 2474, 2052, 2089, 2474, 2040, 2038, + 2474, 2049, 2085, 2045, 2029, 2046, 2086, 2474, 2474, 2474, + 619, 631, 690, 2474, 2037, 2036, 632, 2043, 2023, 2033, + 2075, 2020, 2073, 2018, 2028, 2070, 2015, 2022, 2015, 2027, + + 2009, 2009, 2024, 2023, 638, 2022, 2021, 2021, 2003, 2008, + 2049, 2016, 2013, 2007, 2052, 1996, 2012, 2011, 2474, 1996, + 1993, 2051, 2006, 1998, 2004, 1995, 2003, 1988, 2039, 2003, + 1985, 1997, 1989, 545, 1980, 1979, 1973, 1978, 1993, 1990, + 1991, 1970, 1980, 1986, 2029, 1984, 1976, 1967, 2474, 1968, + 1970, 1979, 1971, 1976, 2015, 2014, 1965, 16, 1974, 2011, + 1956, 2009, 1956, 1959, 1952, 2474, 1966, 1945, 1949, 1963, + 1955, 2000, 1952, 1959, 1997, 2474, 1942, 1956, 1955, 1958, + 1939, 1991, 1990, 1937, 1988, 1948, 1932, 1985, 1984, 2474, + 1929, 1943, 1942, 697, 1943, 1942, 1978, 1942, 1937, 1920, + + 1925, 1927, 2474, 1933, 1923, 2474, 633, 601, 1917, 1915, + 1922, 1932, 1924, 1911, 1901, 196, 217, 278, 664, 358, + 325, 668, 373, 618, 602, 605, 622, 634, 621, 641, + 655, 655, 646, 704, 661, 671, 674, 712, 675, 668, + 672, 669, 671, 718, 724, 682, 683, 2474, 686, 682, + 673, 688, 693, 690, 678, 694, 693, 681, 695, 693, + 701, 737, 699, 744, 745, 695, 687, 697, 744, 702, + 752, 2474, 753, 706, 708, 704, 698, 701, 759, 755, + 718, 707, 720, 2474, 710, 721, 710, 723, 713, 726, + 770, 771, 714, 725, 710, 733, 712, 718, 773, 737, + + 721, 733, 777, 778, 725, 780, 744, 739, 744, 742, + 786, 728, 740, 743, 747, 739, 736, 2474, 800, 759, + 760, 750, 753, 764, 749, 756, 762, 754, 768, 808, + 784, 771, 776, 773, 755, 762, 776, 821, 778, 775, + 776, 774, 783, 2474, 779, 774, 789, 786, 772, 774, + 793, 790, 778, 785, 786, 795, 799, 835, 797, 788, + 786, 785, 796, 792, 848, 795, 806, 791, 792, 798, + 814, 804, 2474, 814, 814, 807, 818, 816, 861, 803, + 805, 824, 821, 809, 807, 869, 826, 812, 818, 816, + 2474, 2474, 826, 831, 836, 824, 834, 836, 2474, 2474, + + 837, 824, 842, 829, 823, 2474, 828, 846, 833, 883, + 834, 886, 832, 836, 854, 895, 2474, 2474, 840, 844, + 843, 840, 900, 853, 843, 844, 840, 853, 864, 865, + 860, 861, 863, 856, 858, 854, 860, 860, 862, 877, + 860, 919, 876, 881, 858, 881, 867, 866, 2474, 873, + 874, 874, 887, 925, 883, 873, 888, 889, 876, 908, + 916, 885, 880, 935, 936, 898, 938, 2474, 944, 887, + 903, 907, 948, 898, 897, 892, 893, 905, 900, 896, + 899, 900, 910, 919, 956, 903, 922, 914, 909, 967, + 924, 925, 916, 2474, 930, 919, 922, 930, 932, 917, + + 933, 927, 974, 940, 924, 925, 2474, 941, 944, 927, + 938, 987, 930, 949, 2474, 948, 951, 937, 932, 950, + 990, 948, 944, 941, 994, 995, 957, 943, 961, 960, + 961, 947, 962, 954, 961, 951, 969, 968, 955, 972, + 2474, 964, 970, 973, 1018, 2474, 967, 972, 1016, 968, + 980, 974, 975, 973, 975, 985, 1030, 974, 975, 975, + 1034, 978, 990, 983, 2474, 979, 987, 985, 1036, 978, + 999, 985, 987, 993, 1001, 992, 997, 1007, 1008, 1013, + 1054, 1026, 1031, 1013, 1010, 1006, 1020, 1003, 1003, 2474, + 1004, 1064, 1007, 2474, 1018, 1008, 1028, 1027, 1018, 1029, + + 1072, 1033, 1026, 1030, 1034, 1017, 1034, 1025, 1080, 1027, + 2474, 1077, 1026, 1029, 1047, 1029, 1030, 1030, 1051, 1048, + 1053, 1054, 1040, 1048, 1057, 1037, 1052, 1059, 1101, 1097, + 2474, 1103, 1104, 1046, 1056, 1066, 1050, 1070, 1058, 1054, + 1061, 1070, 1058, 1065, 1066, 1078, 1119, 1066, 1064, 1066, + 1083, 1124, 1074, 1073, 1079, 1077, 1075, 1070, 1131, 1082, + 1133, 1129, 1135, 2474, 1092, 1085, 1076, 1095, 1083, 1093, + 1094, 1090, 1103, 1103, 2474, 1087, 1083, 1090, 2474, 1091, + 1151, 1110, 1091, 1110, 1111, 1113, 1152, 1105, 1159, 1160, + 1110, 1108, 1119, 1118, 1102, 1107, 1125, 2474, 1147, 1138, + + 1170, 1110, 1132, 1127, 1127, 1131, 1176, 2474, 1119, 1119, + 1122, 1139, 1134, 1138, 1133, 2474, 1125, 1142, 1122, 1143, + 1133, 1184, 1137, 2474, 1151, 1151, 1189, 1136, 1145, 1193, + 1151, 1156, 1142, 1202, 1145, 1156, 1148, 1154, 1150, 1168, + 1169, 1170, 2474, 1160, 2474, 1170, 2474, 1155, 1166, 1157, + 1176, 1169, 1167, 1160, 1172, 1216, 1180, 1169, 1176, 1177, + 1183, 2474, 1176, 1228, 1169, 1230, 2474, 1231, 1173, 1179, + 1186, 1230, 1192, 2474, 1193, 2474, 1180, 2474, 1182, 1196, + 1201, 1184, 1243, 1200, 1201, 1241, 1193, 1198, 1249, 1245, + 1198, 1252, 2474, 1203, 1200, 1255, 1256, 1213, 1214, 1216, + + 2474, 2474, 1255, 1204, 1220, 1263, 1205, 1217, 1222, 1237, + 1268, 2474, 1225, 1218, 1227, 1218, 1229, 2474, 1274, 1211, + 1222, 1237, 1273, 1225, 1236, 1237, 1238, 1235, 1279, 1242, + 1232, 1242, 1248, 1235, 1231, 1291, 1287, 1245, 1289, 1296, + 1253, 2474, 1254, 1248, 1257, 1258, 1255, 1245, 1248, 1248, + 1259, 1254, 1309, 1256, 1311, 1254, 1259, 1314, 1310, 1251, + 1266, 1260, 1263, 1276, 1277, 1275, 1324, 2474, 1278, 2474, + 2474, 1283, 1275, 1285, 1270, 1326, 1273, 1273, 1334, 1278, + 1288, 1337, 2474, 1285, 1286, 1288, 1341, 1282, 1285, 2474, + 1303, 1304, 2474, 1304, 1292, 2474, 2474, 1305, 1288, 1308, + + 1295, 1354, 1304, 2474, 1356, 1305, 1358, 1338, 2474, 1360, + 1317, 1362, 1313, 1360, 2474, 1308, 1367, 1317, 1311, 1308, + 1311, 1313, 1330, 1369, 1322, 1334, 1337, 1325, 1328, 1321, + 1328, 1319, 2474, 1327, 1342, 1327, 2474, 1329, 1330, 1345, + 1345, 1348, 1348, 1345, 1389, 1351, 1343, 1344, 2474, 1345, + 2474, 1355, 1347, 2474, 1353, 1358, 1359, 1356, 1400, 1348, + 1363, 1364, 1356, 2474, 1353, 1354, 1354, 1360, 1359, 1357, + 1411, 1372, 2474, 1413, 1360, 2474, 1361, 1362, 1368, 2474, + 1377, 1371, 1426, 1373, 1366, 1378, 1373, 1383, 1394, 1387, + 1393, 1389, 2474, 1398, 2474, 1395, 2474, 1392, 1415, 2474, + + 1442, 2474, 1400, 1385, 1445, 2474, 1446, 1403, 1408, 1390, + 1450, 1446, 1410, 1407, 1403, 1396, 1451, 1409, 1410, 1400, + 1405, 1417, 1462, 1417, 1465, 1461, 1424, 1421, 1465, 1413, + 1418, 1416, 1475, 1426, 1432, 1420, 1479, 1475, 1438, 1482, + 1443, 1432, 1426, 1486, 1428, 1429, 1443, 1446, 1446, 1492, + 1434, 1451, 1447, 1445, 1452, 1436, 1494, 1495, 1496, 1459, + 1452, 1451, 1451, 1446, 1464, 2474, 1455, 1461, 1466, 1453, + 1454, 1453, 1455, 1510, 1451, 1469, 1518, 1476, 1489, 2474, + 1521, 1474, 2474, 2474, 1465, 1476, 1525, 2474, 1471, 1476, + 1474, 1524, 1482, 1487, 1475, 1492, 1481, 1479, 1493, 1480, + + 2474, 1482, 2474, 1485, 1536, 1479, 1484, 1544, 1492, 1502, + 1503, 2474, 1549, 1545, 1503, 1547, 2474, 1498, 1554, 2474, + 1497, 1512, 1500, 2474, 1510, 1511, 1560, 1518, 1522, 2474, + 1558, 1524, 1500, 1518, 1519, 1528, 1510, 1517, 1529, 1528, + 1519, 1569, 1521, 1517, 1577, 1519, 1520, 1580, 1576, 1582, + 1532, 1584, 1537, 1542, 1535, 2474, 1588, 1589, 2474, 1538, + 1591, 1533, 2474, 1536, 1546, 1590, 1538, 1553, 1540, 1555, + 1541, 1548, 1548, 1603, 1560, 1561, 1549, 1548, 1608, 1561, + 2474, 1605, 1556, 1553, 2474, 1555, 1568, 1555, 1576, 2474, + 1573, 1618, 1571, 1568, 1569, 2474, 1622, 1581, 1564, 1566, + + 1582, 1575, 1565, 1581, 1582, 1591, 1581, 1633, 1593, 1577, + 1586, 1632, 2474, 1590, 1639, 2474, 1588, 2474, 1582, 2474, + 1589, 1643, 1639, 2474, 2474, 1602, 2474, 1642, 1604, 1605, + 1590, 1591, 1599, 1653, 1601, 1650, 1651, 1606, 2474, 1601, + 1619, 1606, 1613, 2474, 1610, 1615, 1613, 1665, 1622, 1667, + 1615, 1612, 1612, 2474, 1627, 1628, 1629, 2474, 1630, 1620, + 1632, 1677, 1630, 1679, 1621, 1629, 1630, 1643, 2474, 1644, + 1625, 1626, 1633, 1635, 2474, 1649, 1646, 1686, 1647, 2474, + 1651, 1636, 1636, 1651, 1644, 1643, 1654, 1641, 2474, 1657, + 1645, 1648, 1704, 1644, 1663, 1665, 1656, 1665, 1667, 1671, + + 2474, 1661, 2474, 1665, 1656, 1715, 1658, 1717, 1718, 1719, + 1677, 1721, 2474, 1663, 2474, 1718, 1680, 1681, 1668, 1676, + 1687, 1674, 1685, 1671, 1669, 1677, 1676, 1681, 1673, 1738, + 1691, 1692, 1682, 1699, 1698, 1739, 1683, 1702, 1703, 2474, + 1708, 1701, 1706, 1707, 1752, 1709, 1712, 1711, 1700, 1709, + 2474, 1758, 2474, 2474, 2474, 1719, 2474, 1760, 1702, 1762, + 1763, 1706, 1765, 1713, 1762, 1763, 1725, 1765, 1711, 1715, + 1733, 1774, 1733, 2474, 1724, 1714, 1773, 1739, 1732, 1728, + 1782, 1725, 1727, 1726, 1733, 1729, 1731, 2474, 1736, 1746, + 1749, 1732, 1740, 2474, 1735, 2474, 1747, 2474, 2474, 1752, + + 2474, 1753, 1753, 1744, 1800, 1744, 1754, 1739, 1752, 2474, + 1754, 1762, 1807, 1748, 1750, 1747, 1771, 2474, 1758, 1765, + 1766, 1769, 1758, 1812, 1759, 1767, 1761, 1777, 1776, 1779, + 1772, 1767, 1767, 1779, 1774, 2474, 1785, 1773, 1826, 1777, + 1789, 1834, 2474, 1780, 1792, 1837, 1786, 1788, 1786, 1787, + 1842, 1795, 1782, 1797, 1802, 1799, 1848, 1849, 1850, 1807, + 1852, 1853, 1797, 1801, 1797, 1813, 1796, 1808, 1802, 2474, + 1818, 1862, 2474, 1819, 1804, 1822, 1813, 2474, 1814, 1828, + 1824, 1817, 1817, 2474, 2474, 2474, 1872, 2474, 2474, 1815, + 1823, 1818, 1871, 1837, 1834, 1879, 1840, 2474, 1881, 1823, + + 1883, 1826, 1839, 1838, 1839, 1829, 1836, 2474, 1831, 1891, + 1844, 1853, 1846, 1890, 2474, 1837, 2474, 1849, 2474, 1893, + 1899, 1841, 1857, 1902, 1903, 1904, 2474, 1861, 1855, 1848, + 1868, 1865, 1857, 1861, 2474, 1908, 1857, 2474, 2474, 2474, + 1857, 1865, 1912, 1872, 1865, 1920, 1868, 1868, 1864, 1866, + 1925, 1926, 1868, 1884, 1869, 2474, 1930, 1877, 1884, 1933, + 2474, 2474, 1886, 1935, 1883, 2474, 1887, 1886, 2474, 1887, + 2474, 1881, 1881, 1898, 1899, 1944, 1890, 1946, 1947, 2474, + 1948, 2474, 2474, 2474, 2474, 1954, 1957, 1960, 1961, 1963, + 1966, 1969, 1972 + } ; -static const flex_int16_t yy_def[2069] = +static const flex_int16_t yy_def[2094] = { 0, - 2061, 2061, 2062, 2062, 2061, 2061, 2061, 2061, 2061, 2061, - 2060, 2060, 2060, 2060, 2060, 2063, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2064, - 2060, 2060, 2060, 2065, 15, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2066, 45, 45, 45, 45, + 2086, 2086, 2087, 2087, 2086, 2086, 2086, 2086, 2086, 2086, + 2085, 2085, 2085, 2085, 2085, 2088, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2089, + 2085, 2085, 2085, 2090, 15, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2091, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2063, 2060, 2060, - 2060, 2060, 2060, 2060, 2067, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2064, 2060, 2065, 2060, + 45, 45, 45, 45, 45, 45, 45, 2088, 2085, 2085, + 2085, 2085, 2085, 2085, 2092, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2089, 2085, 2090, 2085, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2068, 45, 2066, 45, 45, 45, 45, 45, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2093, 45, 2091, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2067, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2092, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2068, 2060, 2060, 114, 45, 45, 45, 45, + 45, 45, 45, 2093, 2085, 2085, 114, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 45, 45, 45, 45, 45, 45, - 2060, 45, 2060, 45, 114, 2060, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 45, 45, 45, 45, + 45, 45, 2085, 45, 2085, 45, 114, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 2060, 2060, 2060, - 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 114, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 2085, 2085, 2085, 45, 45, 45, 45, 45, 2085, 45, + 2085, 45, 114, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, + 45, 2085, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 2060, 45, 45, 2060, 45, 45, 2060, - 45, 45, 45, 2060, 2060, 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 2085, 45, 45, + 2085, 45, 45, 2085, 45, 45, 45, 2085, 2085, 2085, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, + 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2060, 2060, 45, 45, 45, 45, 45, - 45, 2060, 2060, 45, 45, 45, 45, 45, 2060, 45, + 2085, 2085, 45, 45, 45, 45, 45, 45, 2085, 2085, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2085, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060, - - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2085, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 2085, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2060, 2060, 45, 2060, 45, 45, 45, + 45, 45, 2085, 45, 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45, - 45, 45, 45, 2060, 45, 2060, 45, 2060, 45, 45, + 45, 2085, 45, 45, 45, 45, 2085, 45, 45, 45, + 45, 45, 45, 2085, 45, 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, - 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 2060, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2085, 2085, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2085, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 2060, + 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45, - 45, 2060, 45, 45, 2060, 2060, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 2085, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 45, 45, 45, 45, 2085, + 45, 45, 2085, 45, 45, 2085, 2085, 45, 45, 45, - 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 2085, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 2060, 45, 45, 45, 2060, 45, 45, + 45, 45, 2085, 45, 45, 45, 2085, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, + 2085, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 2085, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 2060, 45, 2060, 45, 45, 2060, 45, 2060, - 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 2085, 45, 2085, 45, 45, 2085, + 45, 2085, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 45, 45, 2085, 2085, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 2060, - 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 2060, - 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45, - - 45, 45, 2060, 45, 45, 2060, 45, 45, 45, 2060, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, + + 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, + 45, 2085, 45, 45, 45, 45, 2085, 45, 45, 2085, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2060, 45, 45, 2060, 45, 45, 45, 2060, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 2085, 45, + 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45, - 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, - - 2060, 45, 2060, 45, 2060, 45, 45, 45, 2060, 2060, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2060, 45, 45, 45, 45, 2060, 45, - 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 2060, 45, - 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 45, + 2085, 45, 45, 45, 2085, 45, 45, 45, 45, 2085, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 2085, 45, 2085, 45, 2085, + 45, 45, 45, 2085, 2085, 45, 2085, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, + 45, 45, 45, 45, 2085, 45, 45, 45, 45, 2085, + 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2085, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2060, 45, 2060, 2060, 2060, 45, 2060, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060, - 45, 45, 45, 45, 2060, 45, 2060, 45, 2060, 2060, - 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 45, 45, 45, 2060, 45, + 2085, 45, 2085, 2085, 2085, 45, 2085, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 2085, 45, 2085, 45, 2085, 2085, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 45, 45, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45, - 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45, - 45, 2060, 2060, 2060, 45, 2060, 2060, 45, 45, 45, - 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45, - 45, 2060, 45, 2060, 45, 2060, 45, 45, 45, 45, - - 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 2060, 2060, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 45, 45, 2085, 45, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 2085, 2085, 2085, 45, 2085, 2085, 45, + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2085, 45, 45, + 45, 45, 45, 45, 2085, 45, 2085, 45, 2085, 45, + 45, 45, 45, 45, 45, 45, 2085, 45, 45, 45, + 45, 45, 45, 45, 2085, 45, 45, 2085, 2085, 2085, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2060, 45, 45, 45, 45, 2060, 2060, 45, 45, 45, - 2060, 45, 45, 2060, 45, 2060, 45, 45, 45, 45, - 45, 45, 45, 45, 2060, 45, 2060, 2060, 2060, 0, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060 + 45, 45, 45, 45, 45, 2085, 45, 45, 45, 45, + 2085, 2085, 45, 45, 45, 2085, 45, 45, 2085, 45, + 2085, 45, 45, 45, 45, 45, 45, 45, 45, 2085, + 45, 2085, 2085, 2085, 0, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085 + } ; -static const flex_int16_t yy_nxt[2522] = +static const flex_int16_t yy_nxt[2548] = { 0, - 2060, 13, 14, 13, 2060, 15, 16, 2060, 17, 18, + 2085, 13, 14, 13, 2085, 15, 16, 2085, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 778, 37, 14, 37, 85, 25, 26, 38, 100, - 843, 27, 37, 14, 37, 42, 28, 42, 38, 90, - 91, 29, 197, 30, 13, 14, 13, 89, 90, 25, + 84, 784, 37, 14, 37, 85, 25, 26, 38, 100, + 2085, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 91, 29, 198, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 779, 13, 14, 13, 33, 40, 101, 90, 91, 197, + 785, 13, 14, 13, 33, 40, 101, 90, 91, 198, 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 89, 39, 103, 25, 26, 13, 14, 13, 27, 39, 42, 105, 42, 28, 42, 106, 42, 41, 29, 107, 30, 110, 111, 92, 138, - 41, 25, 31, 103, 225, 226, 87, 139, 87, 105, + 41, 25, 31, 103, 226, 227, 87, 139, 87, 105, 32, 88, 88, 88, 88, 88, 33, 107, 106, 110, - 216, 111, 217, 34, 35, 44, 44, 44, 45, 45, + 217, 111, 218, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 48, 45, 45, 49, 45, 50, 45, 51, 45, 52, 45, 45, 45, @@ -1461,272 +1472,274 @@ static const flex_int16_t yy_nxt[2522] = 57, 58, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 55, 45, 45, 45, 45, 45, 79, 247, + 76, 77, 55, 45, 45, 45, 45, 45, 79, 249, 80, 80, 80, 80, 80, 79, 105, 82, 82, 82, - 82, 82, 248, 81, 83, 83, 83, 83, 83, 79, + 82, 82, 250, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 136, 81, 108, 105, - 103, 119, 844, 137, 81, 120, 81, 165, 109, 121, - 135, 166, 122, 81, 219, 123, 232, 845, 233, 124, - 81, 108, 235, 220, 221, 187, 115, 81, 45, 185, - 140, 131, 116, 132, 45, 117, 109, 45, 236, 45, - 141, 45, 142, 45, 133, 113, 144, 145, 45, 45, + 103, 119, 839, 137, 81, 120, 81, 166, 109, 121, + 135, 167, 122, 81, 157, 123, 186, 203, 100, 124, + 81, 108, 158, 840, 159, 188, 115, 81, 45, 160, + 161, 131, 116, 132, 45, 117, 109, 45, 841, 45, + 203, 45, 186, 45, 133, 113, 145, 146, 45, 45, - 146, 45, 45, 187, 134, 185, 147, 45, 45, 45, + 147, 45, 45, 188, 134, 101, 148, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 125, 161, 45, 126, 127, 162, 45, 128, 129, 148, - 45, 107, 252, 149, 199, 163, 253, 150, 45, 186, - 130, 707, 45, 110, 45, 114, 262, 156, 708, 151, - 153, 185, 154, 152, 155, 157, 187, 158, 174, 175, - 167, 199, 159, 160, 168, 186, 180, 169, 108, 83, - 83, 83, 83, 83, 170, 171, 181, 188, 109, 172, - 173, 182, 81, 79, 190, 80, 80, 80, 80, 80, - - 275, 108, 263, 176, 276, 87, 177, 87, 81, 100, - 88, 88, 88, 88, 88, 81, 178, 83, 83, 83, - 83, 83, 79, 179, 82, 82, 82, 82, 82, 186, - 81, 81, 88, 88, 88, 88, 88, 81, 88, 88, - 88, 88, 88, 99, 194, 196, 101, 198, 200, 212, - 99, 201, 267, 81, 202, 189, 239, 194, 213, 240, - 81, 198, 214, 241, 287, 288, 201, 268, 269, 270, - 200, 196, 194, 295, 207, 198, 200, 202, 201, 272, - 99, 308, 273, 274, 99, 208, 289, 296, 99, 198, - 290, 260, 309, 304, 291, 846, 99, 310, 302, 308, - - 99, 318, 99, 99, 205, 278, 309, 310, 316, 308, - 319, 320, 206, 206, 206, 206, 206, 424, 309, 425, - 310, 206, 206, 206, 206, 206, 206, 311, 375, 318, - 313, 316, 312, 324, 320, 339, 322, 319, 340, 435, - 279, 280, 281, 316, 206, 206, 206, 206, 206, 206, - 366, 282, 389, 283, 408, 284, 285, 409, 286, 322, - 324, 325, 325, 325, 325, 325, 327, 367, 341, 394, - 325, 325, 325, 325, 325, 325, 342, 322, 438, 395, - 438, 376, 343, 443, 377, 445, 529, 447, 390, 441, - 847, 436, 443, 325, 325, 325, 325, 325, 325, 442, - - 322, 438, 391, 439, 473, 539, 488, 573, 445, 540, - 474, 489, 443, 513, 431, 447, 450, 450, 450, 450, - 450, 451, 848, 514, 849, 450, 450, 450, 450, 450, - 450, 503, 504, 549, 567, 573, 505, 550, 577, 568, - 578, 679, 615, 850, 530, 573, 596, 616, 450, 450, - 450, 450, 450, 450, 597, 703, 598, 599, 600, 490, - 601, 604, 702, 726, 491, 577, 727, 578, 45, 45, - 45, 45, 45, 579, 605, 636, 606, 45, 45, 45, - 45, 45, 45, 703, 812, 637, 701, 754, 755, 702, - 824, 704, 825, 680, 851, 813, 840, 841, 852, 842, - - 45, 45, 45, 45, 45, 45, 836, 853, 854, 855, - 856, 857, 837, 858, 859, 825, 860, 861, 824, 862, - 865, 866, 867, 863, 868, 869, 870, 864, 871, 872, - 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, - 883, 884, 885, 886, 887, 888, 890, 891, 889, 892, - 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, - 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, - 923, 924, 925, 926, 927, 929, 930, 931, 934, 935, - 936, 928, 939, 937, 932, 940, 941, 942, 933, 938, - - 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, - 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, - 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, - 973, 974, 975, 976, 977, 978, 979, 980, 981, 954, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1002, - 1003, 1004, 1005, 1001, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1026, 1027, 1028, 1025, 1029, 1030, 1031, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, - - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, - 1092, 1093, 1094, 1095, 1096, 1097, 1075, 1098, 1099, 1074, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1149, 1150, 1151, - 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1148, 1159, 1160, - 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, - 1123, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, - 1190, 1192, 1191, 1193, 1194, 1195, 1196, 1197, 1198, 1199, - 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1190, 1191, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1237, 1239, - - 1240, 1241, 1236, 1242, 1243, 1244, 1245, 1246, 1247, 1248, - 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, - 1279, 1280, 1238, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, - 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1300, 1323, 1324, 1325, 1326, - 1327, 1301, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, - 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, - 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1406, 1407, - 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, - 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1397, 1426, - 1427, 1428, 1376, 1429, 1430, 1431, 1432, 1433, 1434, 1435, - - 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1447, 1405, 1448, 1449, 1450, 1451, 1452, 1446, 1453, 1454, - 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, - 1465, 1466, 1467, 1468, 1470, 1471, 1474, 1472, 1469, 1473, - 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, - 1485, 1487, 1488, 1489, 1490, 1486, 1491, 1492, 1493, 1494, - 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, - 1505, 1506, 1507, 1508, 1487, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, - - 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1552, 1549, 1553, 1554, 1550, - 1555, 1556, 1551, 1557, 1558, 1559, 1560, 1561, 1562, 1563, - 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, - 1574, 1575, 1576, 1577, 1579, 1580, 1581, 1582, 1583, 1584, - 1585, 1586, 1587, 1588, 1578, 1589, 1590, 1591, 1592, 1566, - 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, 1602, 1603, - 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, - 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, - 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, - - 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, - 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, - 1654, 1655, 1656, 1657, 1600, 1658, 1659, 1660, 1661, 1662, - 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1644, 1671, + 125, 162, 45, 126, 127, 163, 45, 128, 129, 140, + 45, 107, 141, 110, 187, 164, 188, 195, 45, 142, + 130, 143, 45, 149, 45, 114, 186, 150, 175, 176, + 154, 151, 155, 844, 156, 168, 181, 200, 108, 169, + 187, 845, 170, 152, 191, 195, 182, 153, 109, 171, + 172, 183, 189, 849, 173, 174, 83, 83, 83, 83, + 83, 108, 202, 177, 200, 87, 178, 87, 187, 81, + + 88, 88, 88, 88, 88, 79, 179, 80, 80, 80, + 80, 80, 79, 180, 82, 82, 82, 82, 82, 202, + 81, 233, 81, 234, 190, 197, 199, 81, 83, 83, + 83, 83, 83, 88, 88, 88, 88, 88, 201, 195, + 201, 81, 99, 81, 88, 88, 88, 88, 88, 99, + 81, 197, 213, 220, 199, 236, 208, 341, 199, 264, + 342, 214, 221, 222, 81, 215, 201, 209, 304, 240, + 254, 237, 241, 202, 255, 269, 242, 274, 277, 99, + 275, 276, 278, 99, 289, 290, 199, 99, 262, 291, + 270, 271, 272, 292, 297, 99, 312, 293, 310, 99, + + 306, 99, 99, 206, 280, 265, 311, 310, 298, 320, + 311, 207, 207, 207, 207, 207, 369, 397, 378, 312, + 207, 207, 207, 207, 207, 207, 310, 398, 312, 321, + 318, 326, 311, 370, 438, 313, 314, 320, 322, 281, + 282, 283, 324, 207, 207, 207, 207, 207, 207, 318, + 284, 315, 285, 318, 286, 287, 321, 288, 326, 392, + 411, 322, 427, 412, 428, 324, 327, 327, 327, 327, + 327, 379, 329, 343, 380, 327, 327, 327, 327, 327, + 327, 344, 324, 441, 441, 446, 439, 345, 448, 450, + 533, 476, 760, 761, 444, 393, 446, 477, 327, 327, + + 327, 327, 327, 327, 445, 324, 441, 442, 491, 394, + 571, 448, 684, 492, 446, 572, 517, 450, 577, 434, + 453, 453, 453, 453, 453, 454, 518, 831, 850, 453, + 453, 453, 453, 453, 453, 507, 508, 543, 553, 577, + 509, 544, 554, 581, 619, 582, 577, 608, 534, 620, + 831, 707, 453, 453, 453, 453, 453, 453, 641, 851, + 609, 493, 610, 852, 685, 708, 494, 583, 642, 830, + 581, 853, 582, 45, 45, 45, 45, 45, 707, 854, + 600, 855, 45, 45, 45, 45, 45, 45, 601, 712, + 602, 603, 604, 708, 605, 706, 713, 830, 731, 856, + + 709, 732, 818, 857, 858, 45, 45, 45, 45, 45, + 45, 842, 859, 819, 860, 846, 847, 843, 848, 861, + 862, 863, 864, 865, 866, 867, 868, 871, 872, 873, + 869, 874, 875, 876, 870, 877, 878, 879, 880, 881, + 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, + 892, 893, 894, 895, 897, 898, 896, 899, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, + 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, + 932, 933, 934, 936, 937, 938, 941, 942, 943, 935, + + 946, 944, 939, 947, 948, 949, 940, 945, 950, 951, + 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, + 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, + 982, 983, 984, 985, 986, 987, 988, 961, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1009, 1010, 1011, + 1012, 1008, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1034, 1035, 1036, 1033, 1037, 1038, 1039, 1040, + + 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, + 1101, 1102, 1103, 1104, 1105, 1083, 1106, 1107, 1082, 1108, + 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, + 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, + 1129, 1130, 1131, 1133, 1134, 1135, 1136, 1137, 1138, 1139, + + 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, + 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1157, 1168, 1169, + 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1132, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, + 1199, 1201, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1199, 1200, + 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, + + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1247, + 1249, 1250, 1251, 1246, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1248, 1291, 1292, 1293, 1294, 1295, 1296, + 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, + 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, + 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1332, 1310, 1333, 1334, 1335, + + 1336, 1337, 1311, 1338, 1339, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, + 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, + 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, + + 1408, 1437, 1438, 1439, 1387, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, + 1455, 1456, 1457, 1416, 1459, 1460, 1461, 1462, 1463, 1464, + 1458, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, + 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1486, + 1484, 1481, 1485, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1499, 1500, 1501, 1502, 1498, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1499, 1521, 1522, + 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + + 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, + 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1565, + 1562, 1566, 1567, 1563, 1568, 1569, 1564, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, + 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1592, 1593, + 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1591, 1602, + 1603, 1604, 1605, 1579, 1606, 1607, 1608, 1609, 1610, 1611, + 1612, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, + 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, + + 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, + 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1613, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, - 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, - 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, - 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, - - 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, - 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, - 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762, - 1763, 1764, 1765, 1761, 1766, 1767, 1768, 1769, 1770, 1771, - 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, - 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, - 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, - 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, - 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, - 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, - - 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, - 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, - 1853, 1854, 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861, - 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, - 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, - 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, - 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, - 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, - 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, - 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, - - 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, - 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, - 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, - 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, - 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, - 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, - 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, - 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2020, - 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, - - 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, - 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, - 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 12, 12, - 12, 36, 36, 36, 78, 97, 78, 99, 99, 99, - 112, 112, 112, 184, 839, 184, 203, 203, 203, 838, - 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, - 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, - 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, - 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, - 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, - - 781, 780, 777, 776, 775, 774, 773, 772, 771, 770, - 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, - 759, 758, 757, 756, 753, 752, 751, 750, 749, 748, - 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, - 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, - 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, - 715, 714, 713, 712, 711, 710, 709, 706, 705, 701, - 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, - 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, - - 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, - 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, - 638, 635, 634, 633, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, - 614, 613, 612, 611, 610, 609, 608, 607, 603, 602, - 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, - 585, 584, 583, 582, 581, 580, 576, 575, 574, 572, - 571, 570, 569, 566, 565, 564, 563, 562, 561, 560, - 559, 558, 557, 556, 555, 554, 553, 552, 551, 548, - - 547, 546, 545, 544, 543, 542, 541, 538, 537, 536, - 535, 534, 533, 532, 531, 528, 527, 526, 525, 524, - 523, 522, 521, 520, 519, 518, 517, 516, 515, 512, - 511, 510, 509, 508, 507, 506, 502, 501, 500, 499, - 498, 497, 496, 495, 494, 493, 492, 487, 486, 485, - 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, - 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, - 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, - 452, 449, 448, 446, 444, 440, 437, 434, 433, 432, - 430, 429, 428, 427, 426, 423, 422, 421, 420, 419, - - 418, 417, 416, 415, 414, 413, 412, 411, 410, 407, - 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, - 396, 393, 392, 388, 387, 386, 385, 384, 383, 382, - 381, 380, 379, 378, 374, 373, 372, 371, 370, 369, - 368, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 338, 337, 336, 335, 334, 333, 332, - 331, 330, 329, 328, 326, 204, 323, 321, 317, 315, - 314, 307, 306, 305, 303, 301, 300, 299, 298, 297, - 294, 293, 292, 277, 271, 266, 265, 264, 261, 259, - - 258, 257, 256, 255, 254, 251, 250, 249, 246, 245, - 244, 243, 242, 238, 237, 234, 231, 230, 229, 228, - 227, 224, 223, 222, 218, 215, 211, 210, 209, 204, - 195, 193, 192, 191, 183, 164, 143, 118, 104, 102, - 43, 98, 96, 95, 86, 43, 2060, 11, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060 + 1682, 1683, 1684, 1658, 1685, 1686, 1687, 1688, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, + 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, + 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, + + 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, + 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, + 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, + 1771, 1772, 1773, 1774, 1775, 1776, 1778, 1779, 1780, 1781, + 1777, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, + 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, + 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, + 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, + 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, + + 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, + 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, + 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, + 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1871, + 1872, 1870, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, + 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, + 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, + 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, + 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, + 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, + + 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, + 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, + 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, + 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, + 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, + 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, + 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, + + 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, + 2041, 2042, 2043, 2044, 2046, 2045, 2047, 2048, 2049, 2050, + 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, + 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, + 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, + 2081, 2082, 2083, 2084, 12, 12, 12, 36, 36, 36, + 78, 97, 78, 99, 99, 99, 112, 112, 112, 185, + 838, 185, 204, 204, 204, 837, 836, 835, 834, 833, + 832, 829, 828, 827, 826, 825, 824, 823, 822, 821, + 820, 817, 816, 815, 814, 813, 812, 811, 810, 809, + + 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, + 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, + 788, 787, 786, 783, 782, 781, 780, 779, 778, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 765, 764, 763, 762, 759, 758, 757, 756, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, + 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, + 734, 733, 730, 729, 728, 727, 726, 725, 724, 723, + 722, 721, 720, 719, 718, 717, 716, 715, 714, 711, + 710, 706, 705, 704, 703, 702, 701, 700, 699, 698, + + 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, + 687, 686, 683, 682, 681, 680, 679, 678, 677, 676, + 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, + 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, + 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, + 645, 644, 643, 640, 639, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, + 623, 622, 621, 618, 617, 616, 615, 614, 613, 612, + 611, 607, 606, 599, 598, 597, 596, 595, 594, 593, + 592, 591, 590, 589, 588, 587, 586, 585, 584, 580, + + 579, 578, 576, 575, 574, 573, 570, 569, 568, 567, + 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, + 556, 555, 552, 551, 550, 549, 548, 547, 546, 545, + 542, 541, 540, 539, 538, 537, 536, 535, 532, 531, + 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, + 520, 519, 516, 515, 514, 513, 512, 511, 510, 506, + 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, + 495, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 481, 480, 479, 478, 475, 474, 473, 472, 471, 470, + 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, + + 459, 458, 457, 456, 455, 452, 451, 449, 447, 443, + 440, 437, 436, 435, 433, 432, 431, 430, 429, 426, + 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, + 415, 414, 413, 410, 409, 408, 407, 406, 405, 404, + 403, 402, 401, 400, 399, 396, 395, 391, 390, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 377, 376, + 375, 374, 373, 372, 371, 368, 367, 366, 365, 364, + 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, + 353, 352, 351, 350, 349, 348, 347, 346, 340, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 330, 328, + + 205, 325, 323, 319, 317, 316, 309, 308, 307, 305, + 303, 302, 301, 300, 299, 296, 295, 294, 279, 273, + 268, 267, 266, 263, 261, 260, 259, 258, 257, 256, + 253, 252, 251, 248, 247, 246, 245, 244, 243, 239, + 238, 235, 232, 231, 230, 229, 228, 225, 224, 223, + 219, 216, 212, 211, 210, 205, 196, 194, 193, 192, + 184, 165, 144, 118, 104, 102, 43, 98, 96, 95, + 86, 43, 2085, 11, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085 } ; -static const flex_int16_t yy_chk[2522] = +static const flex_int16_t yy_chk[2548] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 653, 3, 3, 3, 21, 1, 1, 3, 44, - 718, 1, 4, 4, 4, 13, 1, 13, 4, 27, + 21, 658, 3, 3, 3, 21, 1, 1, 3, 44, + 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 106, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 653, 8, 8, 8, 1, 8, 44, 27, 28, 106, + 658, 8, 8, 8, 1, 8, 44, 27, 28, 106, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 48, 2, 2, @@ -1743,261 +1756,263 @@ static const flex_int16_t yy_chk[2522] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 144, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 145, 17, 17, 17, 17, 17, 19, 62, 19, 19, 19, - 19, 19, 144, 17, 20, 20, 20, 20, 20, 22, + 19, 19, 145, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 63, 20, 53, 62, - 57, 59, 719, 63, 22, 59, 17, 73, 53, 59, - 62, 73, 59, 19, 123, 59, 133, 720, 133, 59, - 20, 53, 135, 123, 123, 91, 57, 22, 45, 89, - 65, 61, 57, 61, 45, 57, 53, 45, 135, 45, - 65, 45, 65, 45, 61, 56, 67, 67, 45, 45, + 57, 59, 716, 63, 22, 59, 17, 73, 53, 59, + 62, 73, 59, 19, 70, 59, 89, 111, 99, 59, + 20, 53, 70, 717, 70, 91, 57, 22, 45, 70, + 70, 61, 57, 61, 45, 57, 53, 45, 718, 45, + 111, 45, 89, 45, 61, 56, 67, 67, 45, 45, - 67, 45, 56, 91, 61, 89, 67, 45, 45, 45, + 67, 45, 56, 91, 61, 99, 67, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 60, 71, 56, 60, 60, 71, 56, 60, 60, 68, - 56, 69, 148, 68, 108, 71, 148, 68, 56, 90, - 60, 583, 56, 76, 56, 56, 157, 70, 583, 68, - 69, 92, 69, 68, 69, 70, 94, 70, 75, 75, - 74, 108, 70, 70, 74, 90, 76, 74, 75, 79, - 79, 79, 79, 79, 74, 74, 76, 92, 75, 74, - 74, 76, 79, 80, 94, 80, 80, 80, 80, 80, - - 164, 75, 157, 75, 164, 81, 75, 81, 80, 99, - 81, 81, 81, 81, 81, 79, 75, 83, 83, 83, - 83, 83, 82, 75, 82, 82, 82, 82, 82, 93, - 83, 80, 87, 87, 87, 87, 87, 82, 88, 88, - 88, 88, 88, 101, 103, 105, 99, 107, 109, 119, - 101, 110, 161, 83, 111, 93, 138, 115, 119, 138, - 82, 155, 119, 138, 167, 167, 180, 161, 161, 161, - 178, 105, 103, 172, 115, 107, 109, 111, 110, 163, - 101, 185, 163, 163, 101, 115, 168, 172, 101, 155, - 168, 155, 186, 180, 168, 721, 101, 187, 178, 188, - - 101, 196, 101, 101, 114, 166, 189, 190, 194, 185, - 197, 198, 114, 114, 114, 114, 114, 296, 186, 296, - 187, 114, 114, 114, 114, 114, 114, 188, 253, 196, - 190, 194, 189, 202, 198, 220, 200, 197, 220, 306, - 166, 166, 166, 208, 114, 114, 114, 114, 114, 114, - 245, 166, 265, 166, 281, 166, 166, 281, 166, 200, - 202, 206, 206, 206, 206, 206, 208, 245, 221, 268, - 206, 206, 206, 206, 206, 206, 221, 302, 308, 268, - 311, 253, 221, 316, 253, 318, 399, 320, 265, 315, - 722, 306, 327, 206, 206, 206, 206, 206, 206, 315, - - 302, 308, 265, 311, 349, 409, 363, 443, 318, 409, - 349, 363, 316, 383, 302, 320, 325, 325, 325, 325, - 325, 327, 723, 383, 724, 325, 325, 325, 325, 325, - 325, 375, 375, 418, 436, 443, 375, 418, 449, 436, - 449, 549, 483, 725, 399, 451, 470, 483, 325, 325, - 325, 325, 325, 325, 470, 578, 470, 470, 470, 363, - 470, 473, 577, 601, 363, 449, 601, 449, 450, 450, - 450, 450, 450, 451, 473, 504, 473, 450, 450, 450, - 450, 450, 450, 578, 689, 504, 579, 629, 629, 577, - 702, 579, 703, 549, 726, 689, 717, 717, 727, 717, - - 450, 450, 450, 450, 450, 450, 714, 728, 729, 730, - 731, 732, 714, 733, 734, 703, 735, 736, 702, 737, - 738, 739, 740, 737, 741, 742, 744, 737, 745, 746, - 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 763, 764, 762, 765, - 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, - 777, 779, 780, 781, 782, 783, 784, 785, 786, 787, - 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, - 798, 799, 800, 801, 802, 803, 804, 804, 805, 806, - 807, 802, 809, 808, 804, 810, 811, 813, 804, 808, - - 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, - 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 825, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 868, 869, 870, 871, 872, 873, 874, - 875, 876, 877, 873, 878, 879, 880, 881, 882, 883, - 886, 887, 888, 889, 890, 891, 894, 895, 896, 897, - 898, 900, 901, 902, 903, 904, 901, 905, 906, 907, - 908, 909, 912, 913, 914, 915, 916, 917, 918, 919, - - 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, - 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 940, 941, 943, 944, 945, 946, 947, 948, 949, 950, - 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, - 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 954, 978, 979, 953, - 980, 981, 982, 983, 984, 985, 986, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 999, 1001, - 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012, - 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - - 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1034, 1035, 1036, 1037, 1039, 1040, 1041, 1029, 1042, 1043, - 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 1004, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, - 1074, 1076, 1075, 1077, 1078, 1079, 1080, 1081, 1083, 1084, - 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, - 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1104, 1074, 1075, - 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, - 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1123, 1124, 1125, - - 1126, 1127, 1123, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, - 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, - 1167, 1168, 1124, 1169, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, - 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, - 1198, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1208, 1209, - 1210, 1211, 1212, 1213, 1214, 1190, 1216, 1217, 1218, 1219, - 1220, 1191, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, - - 1229, 1230, 1231, 1232, 1233, 1236, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, - 1253, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262, 1263, - 1265, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1293, 1294, 1295, 1296, 1297, 1298, 1299, - 1300, 1301, 1303, 1304, 1305, 1306, 1307, 1309, 1310, 1311, - 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, - 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1300, 1330, - 1331, 1333, 1276, 1334, 1335, 1336, 1337, 1338, 1339, 1340, - - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1309, 1352, 1353, 1354, 1355, 1356, 1350, 1358, 1361, - 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, - 1373, 1374, 1375, 1376, 1377, 1378, 1381, 1380, 1376, 1380, - 1383, 1384, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1395, - 1396, 1397, 1399, 1400, 1401, 1396, 1402, 1403, 1405, 1406, - 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1397, 1421, 1423, 1424, 1425, 1427, - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, - 1440, 1441, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, - - 1451, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1462, - 1463, 1465, 1466, 1467, 1469, 1470, 1469, 1471, 1472, 1469, - 1473, 1474, 1469, 1475, 1476, 1477, 1478, 1479, 1480, 1482, - 1484, 1486, 1487, 1489, 1491, 1492, 1493, 1495, 1496, 1497, - 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, - 1508, 1509, 1510, 1511, 1501, 1512, 1513, 1514, 1515, 1487, - 1516, 1517, 1518, 1519, 1520, 1520, 1521, 1522, 1523, 1524, - 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, - 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, 1555, - - 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, - 1566, 1568, 1569, 1572, 1573, 1574, 1576, 1577, 1578, 1579, - 1580, 1581, 1582, 1583, 1521, 1584, 1585, 1586, 1587, 1589, - 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1566, 1600, - 1601, 1602, 1604, 1605, 1607, 1608, 1609, 1611, 1612, 1613, - 1614, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, - 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1643, 1644, 1646, - 1647, 1648, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, - 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668, - - 1669, 1670, 1672, 1673, 1674, 1676, 1677, 1678, 1679, 1680, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1694, 1695, 1696, 1697, 1699, 1700, 1702, 1704, - 1706, 1707, 1708, 1702, 1711, 1713, 1714, 1715, 1716, 1717, - 1718, 1719, 1720, 1721, 1722, 1723, 1725, 1726, 1727, 1728, - 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, 1740, - 1741, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, - 1752, 1754, 1755, 1756, 1757, 1758, 1760, 1761, 1762, 1763, - 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1774, 1775, - 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1787, - - 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1797, 1799, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1809, 1812, 1813, 1814, 1815, 1816, 1817, 1818, - 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, 1828, 1829, - 1830, 1831, 1832, 1834, 1838, 1840, 1841, 1842, 1843, 1844, - 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, - 1855, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, - 1866, 1867, 1868, 1869, 1871, 1872, 1873, 1874, 1876, 1878, - 1881, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1892, - 1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903, - - 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, - 1914, 1915, 1917, 1918, 1919, 1920, 1921, 1922, 1924, 1925, - 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, - 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, - 1946, 1947, 1948, 1950, 1951, 1953, 1954, 1955, 1956, 1958, - 1959, 1960, 1961, 1965, 1968, 1969, 1970, 1971, 1972, 1973, - 1974, 1975, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, - 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1995, 1997, 1998, - 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2007, - 2009, 2010, 2012, 2013, 2016, 2017, 2018, 2019, 2020, 2021, - - 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2032, - 2033, 2034, 2035, 2038, 2039, 2040, 2042, 2043, 2045, 2047, - 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2056, 2061, 2061, - 2061, 2062, 2062, 2062, 2063, 2064, 2063, 2065, 2065, 2065, - 2066, 2066, 2066, 2067, 716, 2067, 2068, 2068, 2068, 715, - 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, - 700, 699, 697, 696, 695, 694, 693, 692, 691, 690, - 688, 687, 686, 684, 683, 682, 681, 680, 679, 678, - 677, 676, 675, 674, 673, 672, 670, 669, 668, 667, - 666, 665, 664, 663, 662, 660, 659, 658, 657, 656, - - 655, 654, 652, 651, 650, 649, 648, 647, 646, 645, - 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, - 633, 632, 631, 630, 628, 627, 626, 625, 624, 623, - 622, 621, 620, 619, 618, 617, 616, 614, 613, 612, - 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, - 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, - 590, 589, 588, 587, 586, 585, 584, 582, 581, 573, - 572, 571, 570, 569, 568, 566, 565, 563, 562, 560, - 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, - 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, - - 538, 537, 536, 535, 534, 533, 532, 530, 528, 527, - 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, - 516, 515, 514, 513, 511, 510, 509, 508, 507, 506, - 505, 503, 502, 501, 500, 499, 498, 497, 496, 495, - 494, 493, 492, 491, 490, 489, 487, 486, 485, 484, - 482, 481, 480, 479, 478, 477, 475, 474, 472, 471, - 468, 467, 466, 465, 464, 463, 461, 460, 459, 458, - 457, 456, 455, 454, 453, 452, 447, 445, 444, 442, - 441, 440, 437, 435, 434, 432, 431, 430, 429, 428, - 427, 426, 425, 424, 423, 422, 421, 420, 419, 417, - - 416, 415, 414, 413, 412, 411, 410, 408, 407, 406, - 405, 403, 402, 401, 400, 398, 397, 396, 395, 394, - 393, 392, 391, 390, 389, 388, 387, 386, 384, 382, - 381, 380, 379, 378, 377, 376, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 362, 361, 360, - 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, - 328, 324, 322, 319, 317, 314, 307, 305, 304, 303, - 301, 300, 299, 298, 297, 295, 294, 293, 292, 291, - - 290, 289, 288, 287, 286, 285, 284, 283, 282, 280, - 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, - 269, 267, 266, 264, 263, 262, 261, 260, 259, 258, - 257, 256, 255, 254, 252, 251, 250, 249, 248, 247, - 246, 244, 242, 241, 240, 239, 238, 237, 236, 235, - 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, - 224, 223, 222, 219, 218, 217, 216, 215, 214, 213, - 212, 211, 210, 209, 207, 203, 201, 199, 195, 193, - 191, 183, 182, 181, 179, 177, 176, 175, 174, 173, - 171, 170, 169, 165, 162, 160, 159, 158, 156, 154, - - 153, 152, 151, 150, 149, 147, 146, 145, 143, 142, - 141, 140, 139, 137, 136, 134, 132, 131, 130, 129, - 128, 126, 125, 124, 122, 120, 118, 117, 116, 112, - 104, 102, 97, 96, 77, 72, 66, 58, 49, 47, - 43, 41, 39, 38, 24, 14, 11, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, - 2060 + 60, 71, 56, 60, 60, 71, 56, 60, 60, 65, + 56, 69, 65, 76, 90, 71, 94, 103, 56, 65, + 60, 65, 56, 68, 56, 56, 92, 68, 75, 75, + 69, 68, 69, 720, 69, 74, 76, 108, 75, 74, + 90, 721, 74, 68, 94, 103, 76, 68, 75, 74, + 74, 76, 92, 723, 74, 74, 79, 79, 79, 79, + 79, 75, 110, 75, 108, 81, 75, 81, 93, 79, + + 81, 81, 81, 81, 81, 80, 75, 80, 80, 80, + 80, 80, 82, 75, 82, 82, 82, 82, 82, 110, + 80, 133, 79, 133, 93, 105, 107, 82, 83, 83, + 83, 83, 83, 87, 87, 87, 87, 87, 109, 115, + 179, 83, 101, 80, 88, 88, 88, 88, 88, 101, + 82, 105, 119, 123, 107, 135, 115, 221, 156, 158, + 221, 119, 123, 123, 83, 119, 109, 115, 179, 138, + 149, 135, 138, 181, 149, 162, 138, 164, 165, 101, + 164, 164, 165, 101, 168, 168, 156, 101, 156, 169, + 162, 162, 162, 169, 173, 101, 188, 169, 186, 101, + + 181, 101, 101, 114, 167, 158, 187, 189, 173, 197, + 190, 114, 114, 114, 114, 114, 247, 270, 255, 188, + 114, 114, 114, 114, 114, 114, 186, 270, 191, 198, + 195, 203, 187, 247, 308, 189, 190, 197, 199, 167, + 167, 167, 201, 114, 114, 114, 114, 114, 114, 209, + 167, 191, 167, 195, 167, 167, 198, 167, 203, 267, + 283, 199, 298, 283, 298, 201, 207, 207, 207, 207, + 207, 255, 209, 222, 255, 207, 207, 207, 207, 207, + 207, 222, 304, 310, 313, 318, 308, 222, 320, 322, + 402, 351, 634, 634, 317, 267, 329, 351, 207, 207, + + 207, 207, 207, 207, 317, 304, 310, 313, 365, 267, + 439, 320, 553, 365, 318, 439, 386, 322, 446, 304, + 327, 327, 327, 327, 327, 329, 386, 708, 724, 327, + 327, 327, 327, 327, 327, 378, 378, 412, 421, 454, + 378, 412, 421, 452, 486, 452, 446, 476, 402, 486, + 708, 581, 327, 327, 327, 327, 327, 327, 508, 725, + 476, 365, 476, 726, 553, 582, 365, 454, 508, 707, + 452, 727, 452, 453, 453, 453, 453, 453, 581, 728, + 473, 729, 453, 453, 453, 453, 453, 453, 473, 587, + 473, 473, 473, 582, 473, 583, 587, 707, 605, 730, + + 583, 605, 694, 731, 732, 453, 453, 453, 453, 453, + 453, 719, 733, 694, 734, 722, 722, 719, 722, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 742, 746, 747, 749, 742, 750, 751, 752, 753, 754, + 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 768, 771, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, 783, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, + 806, 807, 808, 809, 810, 810, 811, 812, 813, 808, + + 815, 814, 810, 816, 817, 819, 810, 814, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, + 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 831, 860, 861, + 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, + 872, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 879, 884, 885, 886, 887, 888, 889, 890, 893, + 894, 895, 896, 897, 898, 901, 902, 903, 904, 905, + 907, 908, 909, 910, 911, 908, 912, 913, 914, 915, + + 916, 919, 920, 921, 922, 923, 924, 925, 926, 927, + 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, + 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, + 948, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 969, + 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, + 980, 981, 982, 983, 984, 961, 985, 986, 960, 987, + 988, 989, 990, 991, 992, 993, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1009, + 1010, 1011, 1012, 1013, 1014, 1016, 1017, 1018, 1019, 1020, + + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1042, 1043, 1044, 1045, 1047, 1048, 1049, 1037, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1062, 1063, 1064, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1012, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1084, 1083, 1085, 1086, 1087, 1088, 1089, 1091, 1092, + 1093, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1112, 1082, 1083, + 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1132, 1133, + 1134, 1135, 1136, 1132, 1137, 1138, 1139, 1140, 1141, 1142, + 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, + 1163, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, + 1174, 1176, 1177, 1133, 1178, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, + 1195, 1196, 1197, 1199, 1200, 1201, 1202, 1203, 1204, 1205, + 1206, 1207, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1217, + 1218, 1219, 1220, 1221, 1222, 1223, 1199, 1225, 1226, 1227, + + 1228, 1229, 1200, 1230, 1231, 1232, 1233, 1234, 1235, 1236, + 1237, 1238, 1239, 1240, 1241, 1242, 1244, 1246, 1248, 1249, + 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, + 1260, 1261, 1263, 1264, 1265, 1266, 1268, 1269, 1270, 1271, + 1272, 1273, 1275, 1277, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1294, 1295, + 1296, 1297, 1298, 1299, 1300, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1313, 1314, 1315, 1316, 1317, 1319, + 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, + 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, + + 1310, 1340, 1341, 1343, 1286, 1344, 1345, 1346, 1347, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, + 1359, 1360, 1361, 1319, 1362, 1363, 1364, 1365, 1366, 1367, + 1361, 1369, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, + 1380, 1381, 1382, 1384, 1385, 1386, 1387, 1388, 1389, 1392, + 1391, 1387, 1391, 1394, 1395, 1398, 1399, 1400, 1401, 1402, + 1403, 1405, 1406, 1407, 1408, 1410, 1411, 1412, 1407, 1413, + 1414, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, + 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1408, 1432, 1434, + 1435, 1436, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + + 1446, 1447, 1448, 1450, 1452, 1453, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1462, 1463, 1465, 1466, 1467, 1468, 1469, + 1470, 1471, 1472, 1474, 1475, 1477, 1478, 1479, 1481, 1482, + 1481, 1483, 1484, 1481, 1485, 1486, 1481, 1487, 1488, 1489, + 1490, 1491, 1492, 1494, 1496, 1498, 1499, 1501, 1503, 1504, + 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1513, 1524, + 1525, 1526, 1527, 1499, 1528, 1529, 1530, 1531, 1532, 1532, + 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, + + 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1567, 1568, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1578, 1579, 1581, 1582, 1585, 1586, + 1587, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1533, 1596, + 1597, 1598, 1599, 1600, 1602, 1604, 1605, 1606, 1607, 1608, + 1609, 1610, 1611, 1579, 1613, 1614, 1615, 1616, 1618, 1619, + 1621, 1622, 1623, 1625, 1626, 1627, 1628, 1629, 1631, 1632, + 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1657, 1658, 1660, 1661, 1662, 1664, 1665, + + 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, + 1676, 1677, 1678, 1679, 1680, 1682, 1683, 1684, 1686, 1687, + 1688, 1689, 1691, 1692, 1693, 1694, 1695, 1697, 1698, 1699, + 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, + 1710, 1711, 1712, 1714, 1715, 1717, 1719, 1721, 1722, 1723, + 1717, 1726, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, + 1736, 1737, 1738, 1740, 1741, 1742, 1743, 1745, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 1753, 1755, 1756, 1757, 1759, + 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1770, + 1771, 1772, 1773, 1774, 1776, 1777, 1778, 1779, 1781, 1782, + + 1783, 1784, 1785, 1786, 1787, 1788, 1790, 1791, 1792, 1793, + 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1802, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1814, 1816, 1817, + 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, + 1828, 1826, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, + 1837, 1838, 1839, 1841, 1842, 1843, 1844, 1845, 1846, 1847, + 1848, 1849, 1850, 1852, 1856, 1858, 1859, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, + 1873, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, + 1884, 1885, 1886, 1887, 1889, 1890, 1891, 1892, 1893, 1895, + + 1897, 1900, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, + 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, + 1932, 1933, 1934, 1935, 1937, 1938, 1939, 1940, 1941, 1942, + 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, + 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, + 1964, 1965, 1966, 1967, 1968, 1969, 1971, 1972, 1974, 1975, + 1976, 1977, 1979, 1980, 1981, 1982, 1983, 1987, 1990, 1991, + 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, + + 2014, 2016, 2018, 2020, 2021, 2022, 2023, 2024, 2025, 2026, + 2028, 2029, 2030, 2031, 2032, 2031, 2033, 2034, 2036, 2037, + 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, + 2051, 2052, 2053, 2054, 2055, 2057, 2058, 2059, 2060, 2063, + 2064, 2065, 2067, 2068, 2070, 2072, 2073, 2074, 2075, 2076, + 2077, 2078, 2079, 2081, 2086, 2086, 2086, 2087, 2087, 2087, + 2088, 2089, 2088, 2090, 2090, 2090, 2091, 2091, 2091, 2092, + 715, 2092, 2093, 2093, 2093, 714, 713, 712, 711, 710, + 709, 705, 704, 702, 701, 700, 699, 698, 697, 696, + 695, 693, 692, 691, 689, 688, 687, 686, 685, 684, + + 683, 682, 681, 680, 679, 678, 677, 675, 674, 673, + 672, 671, 670, 669, 668, 667, 665, 664, 663, 662, + 661, 660, 659, 657, 656, 655, 654, 653, 652, 651, + 650, 648, 647, 646, 645, 644, 643, 642, 641, 640, + 639, 638, 637, 636, 635, 633, 632, 631, 630, 629, + 628, 627, 626, 625, 624, 623, 622, 621, 620, 618, + 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, + 607, 606, 604, 603, 602, 601, 600, 599, 598, 597, + 596, 595, 594, 593, 592, 591, 590, 589, 588, 586, + 585, 577, 576, 575, 574, 573, 572, 570, 569, 567, + + 566, 564, 563, 562, 561, 560, 559, 558, 557, 556, + 555, 554, 552, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 540, 539, 538, 537, 536, 534, + 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, + 522, 521, 520, 519, 518, 517, 515, 514, 513, 512, + 511, 510, 509, 507, 506, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 493, 492, 490, + 489, 488, 487, 485, 484, 483, 482, 481, 480, 478, + 477, 475, 474, 471, 470, 469, 468, 467, 466, 464, + 463, 462, 461, 460, 459, 458, 457, 456, 455, 450, + + 448, 447, 445, 444, 443, 440, 438, 437, 435, 434, + 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, + 423, 422, 420, 419, 418, 417, 416, 415, 414, 413, + 411, 410, 409, 408, 406, 405, 404, 403, 401, 400, + 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, + 389, 387, 385, 384, 383, 382, 381, 380, 379, 377, + 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, + 366, 364, 363, 362, 361, 360, 359, 358, 357, 356, + 355, 354, 353, 352, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, + + 334, 333, 332, 331, 330, 326, 324, 321, 319, 316, + 309, 307, 306, 305, 303, 302, 301, 300, 299, 297, + 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, + 286, 285, 284, 282, 281, 280, 279, 278, 277, 276, + 275, 274, 273, 272, 271, 269, 268, 266, 265, 264, + 263, 262, 261, 260, 259, 258, 257, 256, 254, 253, + 252, 251, 250, 249, 248, 246, 245, 243, 242, 241, + 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, + 230, 229, 228, 227, 226, 225, 224, 223, 220, 219, + 218, 217, 216, 215, 214, 213, 212, 211, 210, 208, + + 204, 202, 200, 196, 194, 192, 184, 183, 182, 180, + 178, 177, 176, 175, 174, 172, 171, 170, 166, 163, + 161, 160, 159, 157, 155, 154, 153, 152, 151, 150, + 148, 147, 146, 144, 143, 142, 141, 140, 139, 137, + 136, 134, 132, 131, 130, 129, 128, 126, 125, 124, + 122, 120, 118, 117, 116, 112, 104, 102, 97, 96, + 77, 72, 66, 58, 49, 47, 43, 41, 39, 38, + 24, 14, 11, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085 } ; static yy_state_type yy_last_accepting_state; @@ -2006,7 +2021,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[214] = +static const flex_int16_t yy_rule_linenum[215] = { 0, 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, 183, 190, 199, 208, 217, 226, 235, 244, 254, 263, @@ -2028,10 +2043,10 @@ static const flex_int16_t yy_rule_linenum[214] = 1671, 1680, 1689, 1698, 1707, 1716, 1725, 1734, 1743, 1752, 1764, 1776, 1786, 1796, 1806, 1816, 1826, 1836, 1846, 1856, 1866, 1875, 1884, 1893, 1902, 1913, 1924, 1937, 1950, 1963, - 1972, 1981, 1990, 1999, 2008, 2109, 2125, 2174, 2182, 2197, + 1972, 1981, 1990, 1999, 2008, 2018, 2119, 2135, 2184, 2192, - 2198, 2199, 2200, 2201, 2202, 2204, 2222, 2235, 2240, 2244, - 2246, 2248, 2250 + 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2232, 2245, 2250, + 2254, 2256, 2258, 2260 } ; /* The intent behind this definition is that it'll catch @@ -2085,7 +2100,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2088 "dhcp4_lexer.cc" +#line 2103 "dhcp4_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2111,8 +2126,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 2114 "dhcp4_lexer.cc" -#line 2115 "dhcp4_lexer.cc" +#line 2129 "dhcp4_lexer.cc" +#line 2130 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2440,7 +2455,7 @@ YY_DECL } -#line 2443 "dhcp4_lexer.cc" +#line 2458 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2469,13 +2484,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 >= 2061 ) + if ( yy_current_state >= 2086 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2060 ); + while ( yy_current_state != 2085 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2494,13 +2509,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 < 214 ) + else if ( yy_act < 215 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 214 ) + else if ( yy_act == 215 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 215 ) + else if ( yy_act == 216 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -4972,6 +4987,18 @@ YY_RULE_SETUP case 195: YY_RULE_SETUP #line 2008 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::COMPATIBILITY: + return isc::dhcp::Dhcp4Parser::make_IGNORE_RAI_LINK_SEL(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_); + } +} + YY_BREAK +case 196: +YY_RULE_SETUP +#line 2018 "dhcp4_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. @@ -5073,10 +5100,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 196: -/* rule 196 can match eol */ +case 197: +/* rule 197 can match eol */ YY_RULE_SETUP -#line 2109 "dhcp4_lexer.ll" +#line 2119 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5093,10 +5120,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 197: -/* rule 197 can match eol */ +case 198: +/* rule 198 can match eol */ YY_RULE_SETUP -#line 2125 "dhcp4_lexer.ll" +#line 2135 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5146,9 +5173,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2174 "dhcp4_lexer.ll" +#line 2184 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5157,9 +5184,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2182 "dhcp4_lexer.ll" +#line 2192 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5175,39 +5202,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2197 "dhcp4_lexer.ll" +#line 2207 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2198 "dhcp4_lexer.ll" +#line 2208 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2199 "dhcp4_lexer.ll" +#line 2209 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2200 "dhcp4_lexer.ll" +#line 2210 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2201 "dhcp4_lexer.ll" +#line 2211 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2202 "dhcp4_lexer.ll" +#line 2212 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2204 "dhcp4_lexer.ll" +#line 2214 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5226,9 +5253,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2222 "dhcp4_lexer.ll" +#line 2232 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5242,43 +5269,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2235 "dhcp4_lexer.ll" +#line 2245 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2240 "dhcp4_lexer.ll" +#line 2250 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2244 "dhcp4_lexer.ll" +#line 2254 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2246 "dhcp4_lexer.ll" +#line 2256 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2248 "dhcp4_lexer.ll" +#line 2258 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2250 "dhcp4_lexer.ll" +#line 2260 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2252 "dhcp4_lexer.ll" +#line 2262 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5302,12 +5329,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2275 "dhcp4_lexer.ll" +#line 2285 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5310 "dhcp4_lexer.cc" +#line 5337 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5626,7 +5653,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 >= 2061 ) + if ( yy_current_state >= 2086 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5659,11 +5686,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 >= 2061 ) + if ( yy_current_state >= 2086 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2060); + yy_is_jam = (yy_current_state == 2085); return yy_is_jam ? 0 : yy_current_state; } @@ -6412,7 +6439,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2275 "dhcp4_lexer.ll" +#line 2285 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 3255eb117f..d9c682e7fa 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -402,79 +402,79 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 408 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 414 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 420 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 426 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 432 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 438 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 444 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 450 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 456 "dhcp4_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 462 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 468 "dhcp4_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 474 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 286 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 480 "dhcp4_parser.cc" break; @@ -755,127 +755,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 295 "dhcp4_parser.yy" +#line 296 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 761 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 296 "dhcp4_parser.yy" +#line 297 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 767 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 773 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 298 "dhcp4_parser.yy" +#line 299 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 779 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 299 "dhcp4_parser.yy" +#line 300 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 785 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 300 "dhcp4_parser.yy" +#line 301 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 791 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 301 "dhcp4_parser.yy" +#line 302 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 797 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 302 "dhcp4_parser.yy" +#line 303 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 803 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 303 "dhcp4_parser.yy" +#line 304 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 809 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 304 "dhcp4_parser.yy" +#line 305 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 815 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 305 "dhcp4_parser.yy" +#line 306 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 821 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 306 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 827 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 307 "dhcp4_parser.yy" +#line 308 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 833 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 315 "dhcp4_parser.yy" +#line 316 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 839 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 316 "dhcp4_parser.yy" +#line 317 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 845 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 317 "dhcp4_parser.yy" +#line 318 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 851 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 318 "dhcp4_parser.yy" +#line 319 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 857 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 319 "dhcp4_parser.yy" +#line 320 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 863 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 869 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 321 "dhcp4_parser.yy" +#line 322 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 875 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 324 "dhcp4_parser.yy" +#line 325 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -884,7 +884,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 329 "dhcp4_parser.yy" +#line 330 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -895,7 +895,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 334 "dhcp4_parser.yy" +#line 335 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -905,13 +905,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 340 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 911 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 347 "dhcp4_parser.yy" +#line 348 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -921,7 +921,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 352 "dhcp4_parser.yy" +#line 353 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -932,7 +932,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 358 "dhcp4_parser.yy" +#line 359 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -940,7 +940,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 363 "dhcp4_parser.yy" +#line 364 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -949,7 +949,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 366 "dhcp4_parser.yy" +#line 367 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -957,7 +957,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 374 "dhcp4_parser.yy" +#line 375 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -966,7 +966,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 378 "dhcp4_parser.yy" +#line 379 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -975,7 +975,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 382 "dhcp4_parser.yy" +#line 383 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 388 "dhcp4_parser.yy" +#line 389 "dhcp4_parser.yy" { // List parsing about to start } @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 390 "dhcp4_parser.yy" +#line 391 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 399 "dhcp4_parser.yy" +#line 400 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1009,7 +1009,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 403 "dhcp4_parser.yy" +#line 404 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 407 "dhcp4_parser.yy" +#line 408 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 417 "dhcp4_parser.yy" +#line 418 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 426 "dhcp4_parser.yy" +#line 427 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 431 "dhcp4_parser.yy" +#line 432 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 441 "dhcp4_parser.yy" +#line 442 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 450 "dhcp4_parser.yy" +#line 451 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1086,7 +1086,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 458 "dhcp4_parser.yy" +#line 459 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 464 "dhcp4_parser.yy" +#line 465 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 468 "dhcp4_parser.yy" +#line 469 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1113,7 +1113,7 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 475 "dhcp4_parser.yy" +#line 476 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1121,7 +1121,7 @@ namespace isc { namespace dhcp { break; case 134: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 548 "dhcp4_parser.yy" +#line 549 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1131,7 +1131,7 @@ namespace isc { namespace dhcp { break; case 135: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 554 "dhcp4_parser.yy" +#line 555 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp { break; case 136: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 560 "dhcp4_parser.yy" +#line 561 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1151,7 +1151,7 @@ namespace isc { namespace dhcp { break; case 137: // renew_timer: "renew-timer" ":" "integer" -#line 566 "dhcp4_parser.yy" +#line 567 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp { break; case 138: // rebind_timer: "rebind-timer" ":" "integer" -#line 572 "dhcp4_parser.yy" +#line 573 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1171,7 +1171,7 @@ namespace isc { namespace dhcp { break; case 139: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 578 "dhcp4_parser.yy" +#line 579 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp { break; case 140: // t1_percent: "t1-percent" ":" "floating point" -#line 584 "dhcp4_parser.yy" +#line 585 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1191,7 +1191,7 @@ namespace isc { namespace dhcp { break; case 141: // t2_percent: "t2-percent" ":" "floating point" -#line 590 "dhcp4_parser.yy" +#line 591 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp { break; case 142: // cache_threshold: "cache-threshold" ":" "floating point" -#line 596 "dhcp4_parser.yy" +#line 597 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1211,7 +1211,7 @@ namespace isc { namespace dhcp { break; case 143: // cache_max_age: "cache-max-age" ":" "integer" -#line 602 "dhcp4_parser.yy" +#line 603 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1221,7 +1221,7 @@ namespace isc { namespace dhcp { break; case 144: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 608 "dhcp4_parser.yy" +#line 609 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1231,7 +1231,7 @@ namespace isc { namespace dhcp { break; case 145: // $@20: %empty -#line 614 "dhcp4_parser.yy" +#line 615 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1240,7 +1240,7 @@ namespace isc { namespace dhcp { break; case 146: // server_tag: "server-tag" $@20 ":" "constant string" -#line 617 "dhcp4_parser.yy" +#line 618 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1250,7 +1250,7 @@ namespace isc { namespace dhcp { break; case 147: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 623 "dhcp4_parser.yy" +#line 624 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1260,7 +1260,7 @@ namespace isc { namespace dhcp { break; case 148: // echo_client_id: "echo-client-id" ":" "boolean" -#line 629 "dhcp4_parser.yy" +#line 630 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1270,7 +1270,7 @@ namespace isc { namespace dhcp { break; case 149: // match_client_id: "match-client-id" ":" "boolean" -#line 635 "dhcp4_parser.yy" +#line 636 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1280,7 +1280,7 @@ namespace isc { namespace dhcp { break; case 150: // authoritative: "authoritative" ":" "boolean" -#line 641 "dhcp4_parser.yy" +#line 642 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1290,7 +1290,7 @@ namespace isc { namespace dhcp { break; case 151: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 647 "dhcp4_parser.yy" +#line 648 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1300,7 +1300,7 @@ namespace isc { namespace dhcp { break; case 152: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 653 "dhcp4_parser.yy" +#line 654 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1310,7 +1310,7 @@ namespace isc { namespace dhcp { break; case 153: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 659 "dhcp4_parser.yy" +#line 660 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1320,7 +1320,7 @@ namespace isc { namespace dhcp { break; case 154: // $@21: %empty -#line 665 "dhcp4_parser.yy" +#line 666 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1329,7 +1329,7 @@ namespace isc { namespace dhcp { break; case 155: // ddns_replace_client_name: "ddns-replace-client-name" $@21 ":" ddns_replace_client_name_value -#line 668 "dhcp4_parser.yy" +#line 669 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1338,7 +1338,7 @@ namespace isc { namespace dhcp { break; case 156: // ddns_replace_client_name_value: "when-present" -#line 674 "dhcp4_parser.yy" +#line 675 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1346,7 +1346,7 @@ namespace isc { namespace dhcp { break; case 157: // ddns_replace_client_name_value: "never" -#line 677 "dhcp4_parser.yy" +#line 678 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1354,7 +1354,7 @@ namespace isc { namespace dhcp { break; case 158: // ddns_replace_client_name_value: "always" -#line 680 "dhcp4_parser.yy" +#line 681 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1362,7 +1362,7 @@ namespace isc { namespace dhcp { break; case 159: // ddns_replace_client_name_value: "when-not-present" -#line 683 "dhcp4_parser.yy" +#line 684 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1370,7 +1370,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_replace_client_name_value: "boolean" -#line 686 "dhcp4_parser.yy" +#line 687 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1379,7 +1379,7 @@ namespace isc { namespace dhcp { break; case 161: // $@22: %empty -#line 692 "dhcp4_parser.yy" +#line 693 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1388,7 +1388,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_generated_prefix: "ddns-generated-prefix" $@22 ":" "constant string" -#line 695 "dhcp4_parser.yy" +#line 696 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1398,7 +1398,7 @@ namespace isc { namespace dhcp { break; case 163: // $@23: %empty -#line 701 "dhcp4_parser.yy" +#line 702 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1407,7 +1407,7 @@ namespace isc { namespace dhcp { break; case 164: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@23 ":" "constant string" -#line 704 "dhcp4_parser.yy" +#line 705 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1417,7 +1417,7 @@ namespace isc { namespace dhcp { break; case 165: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 710 "dhcp4_parser.yy" +#line 711 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1427,7 +1427,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 716 "dhcp4_parser.yy" +#line 717 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1437,7 +1437,7 @@ namespace isc { namespace dhcp { break; case 167: // $@24: %empty -#line 722 "dhcp4_parser.yy" +#line 723 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1446,7 +1446,7 @@ namespace isc { namespace dhcp { break; case 168: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string" -#line 725 "dhcp4_parser.yy" +#line 726 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1456,7 +1456,7 @@ namespace isc { namespace dhcp { break; case 169: // $@25: %empty -#line 731 "dhcp4_parser.yy" +#line 732 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1465,7 +1465,7 @@ namespace isc { namespace dhcp { break; case 170: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string" -#line 734 "dhcp4_parser.yy" +#line 735 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1475,7 +1475,7 @@ namespace isc { namespace dhcp { break; case 171: // store_extended_info: "store-extended-info" ":" "boolean" -#line 740 "dhcp4_parser.yy" +#line 741 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1485,7 +1485,7 @@ namespace isc { namespace dhcp { break; case 172: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 746 "dhcp4_parser.yy" +#line 747 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1495,7 +1495,7 @@ namespace isc { namespace dhcp { break; case 173: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 752 "dhcp4_parser.yy" +#line 753 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1505,7 +1505,7 @@ namespace isc { namespace dhcp { break; case 174: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 758 "dhcp4_parser.yy" +#line 759 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1515,7 +1515,7 @@ namespace isc { namespace dhcp { break; case 175: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 764 "dhcp4_parser.yy" +#line 765 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1525,7 +1525,7 @@ namespace isc { namespace dhcp { break; case 176: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 770 "dhcp4_parser.yy" +#line 771 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1535,7 +1535,7 @@ namespace isc { namespace dhcp { break; case 177: // $@26: %empty -#line 776 "dhcp4_parser.yy" +#line 777 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1547,7 +1547,7 @@ namespace isc { namespace dhcp { break; case 178: // interfaces_config: "interfaces-config" $@26 ":" "{" interfaces_config_params "}" -#line 782 "dhcp4_parser.yy" +#line 783 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1557,7 +1557,7 @@ namespace isc { namespace dhcp { break; case 181: // interfaces_config_params: interfaces_config_params "," -#line 790 "dhcp4_parser.yy" +#line 791 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1565,7 +1565,7 @@ namespace isc { namespace dhcp { break; case 192: // $@27: %empty -#line 807 "dhcp4_parser.yy" +#line 808 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1575,7 +1575,7 @@ namespace isc { namespace dhcp { break; case 193: // sub_interfaces4: "{" $@27 interfaces_config_params "}" -#line 811 "dhcp4_parser.yy" +#line 812 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed @@ -1584,7 +1584,7 @@ namespace isc { namespace dhcp { break; case 194: // $@28: %empty -#line 816 "dhcp4_parser.yy" +#line 817 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1596,7 +1596,7 @@ namespace isc { namespace dhcp { break; case 195: // interfaces_list: "interfaces" $@28 ":" list_strings -#line 822 "dhcp4_parser.yy" +#line 823 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1605,7 +1605,7 @@ namespace isc { namespace dhcp { break; case 196: // $@29: %empty -#line 827 "dhcp4_parser.yy" +#line 828 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1614,7 +1614,7 @@ namespace isc { namespace dhcp { break; case 197: // dhcp_socket_type: "dhcp-socket-type" $@29 ":" socket_type -#line 830 "dhcp4_parser.yy" +#line 831 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1623,19 +1623,19 @@ namespace isc { namespace dhcp { break; case 198: // socket_type: "raw" -#line 835 "dhcp4_parser.yy" +#line 836 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1629 "dhcp4_parser.cc" break; case 199: // socket_type: "udp" -#line 836 "dhcp4_parser.yy" +#line 837 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1635 "dhcp4_parser.cc" break; case 200: // $@30: %empty -#line 839 "dhcp4_parser.yy" +#line 840 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1644,7 +1644,7 @@ namespace isc { namespace dhcp { break; case 201: // outbound_interface: "outbound-interface" $@30 ":" outbound_interface_value -#line 842 "dhcp4_parser.yy" +#line 843 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1653,7 +1653,7 @@ namespace isc { namespace dhcp { break; case 202: // outbound_interface_value: "same-as-inbound" -#line 847 "dhcp4_parser.yy" +#line 848 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } @@ -1661,7 +1661,7 @@ namespace isc { namespace dhcp { break; case 203: // outbound_interface_value: "use-routing" -#line 849 "dhcp4_parser.yy" +#line 850 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } @@ -1669,7 +1669,7 @@ namespace isc { namespace dhcp { break; case 204: // re_detect: "re-detect" ":" "boolean" -#line 853 "dhcp4_parser.yy" +#line 854 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1679,7 +1679,7 @@ namespace isc { namespace dhcp { break; case 205: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 859 "dhcp4_parser.yy" +#line 860 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1689,7 +1689,7 @@ namespace isc { namespace dhcp { break; case 206: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 865 "dhcp4_parser.yy" +#line 866 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1699,7 +1699,7 @@ namespace isc { namespace dhcp { break; case 207: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 871 "dhcp4_parser.yy" +#line 872 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1709,7 +1709,7 @@ namespace isc { namespace dhcp { break; case 208: // $@31: %empty -#line 877 "dhcp4_parser.yy" +#line 878 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1721,7 +1721,7 @@ namespace isc { namespace dhcp { break; case 209: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 883 "dhcp4_parser.yy" +#line 884 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1732,7 +1732,7 @@ namespace isc { namespace dhcp { break; case 210: // $@32: %empty -#line 890 "dhcp4_parser.yy" +#line 891 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1744,7 +1744,7 @@ namespace isc { namespace dhcp { break; case 211: // sanity_checks: "sanity-checks" $@32 ":" "{" sanity_checks_params "}" -#line 896 "dhcp4_parser.yy" +#line 897 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1753,7 +1753,7 @@ namespace isc { namespace dhcp { break; case 214: // sanity_checks_params: sanity_checks_params "," -#line 903 "dhcp4_parser.yy" +#line 904 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1761,7 +1761,7 @@ namespace isc { namespace dhcp { break; case 216: // $@33: %empty -#line 910 "dhcp4_parser.yy" +#line 911 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1770,7 +1770,7 @@ namespace isc { namespace dhcp { break; case 217: // lease_checks: "lease-checks" $@33 ":" "constant string" -#line 913 "dhcp4_parser.yy" +#line 914 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1790,7 +1790,7 @@ namespace isc { namespace dhcp { break; case 218: // $@34: %empty -#line 929 "dhcp4_parser.yy" +#line 930 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1802,7 +1802,7 @@ namespace isc { namespace dhcp { break; case 219: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" -#line 935 "dhcp4_parser.yy" +#line 936 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1813,7 +1813,7 @@ namespace isc { namespace dhcp { break; case 220: // $@35: %empty -#line 942 "dhcp4_parser.yy" +#line 943 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1825,7 +1825,7 @@ namespace isc { namespace dhcp { break; case 221: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" -#line 948 "dhcp4_parser.yy" +#line 949 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1834,7 +1834,7 @@ namespace isc { namespace dhcp { break; case 226: // not_empty_database_list: not_empty_database_list "," -#line 959 "dhcp4_parser.yy" +#line 960 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1842,7 +1842,7 @@ namespace isc { namespace dhcp { break; case 227: // $@36: %empty -#line 964 "dhcp4_parser.yy" +#line 965 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1852,7 +1852,7 @@ namespace isc { namespace dhcp { break; case 228: // database: "{" $@36 database_map_params "}" -#line 968 "dhcp4_parser.yy" +#line 969 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1862,7 +1862,7 @@ namespace isc { namespace dhcp { break; case 231: // database_map_params: database_map_params "," -#line 976 "dhcp4_parser.yy" +#line 977 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1870,7 +1870,7 @@ namespace isc { namespace dhcp { break; case 251: // $@37: %empty -#line 1002 "dhcp4_parser.yy" +#line 1003 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -1879,7 +1879,7 @@ namespace isc { namespace dhcp { break; case 252: // database_type: "type" $@37 ":" db_type -#line 1005 "dhcp4_parser.yy" +#line 1006 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1888,25 +1888,25 @@ namespace isc { namespace dhcp { break; case 253: // db_type: "memfile" -#line 1010 "dhcp4_parser.yy" +#line 1011 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1894 "dhcp4_parser.cc" break; case 254: // db_type: "mysql" -#line 1011 "dhcp4_parser.yy" +#line 1012 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1900 "dhcp4_parser.cc" break; case 255: // db_type: "postgresql" -#line 1012 "dhcp4_parser.yy" +#line 1013 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1906 "dhcp4_parser.cc" break; case 256: // $@38: %empty -#line 1015 "dhcp4_parser.yy" +#line 1016 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1915,7 +1915,7 @@ namespace isc { namespace dhcp { break; case 257: // user: "user" $@38 ":" "constant string" -#line 1018 "dhcp4_parser.yy" +#line 1019 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1925,7 +1925,7 @@ namespace isc { namespace dhcp { break; case 258: // $@39: %empty -#line 1024 "dhcp4_parser.yy" +#line 1025 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1934,7 +1934,7 @@ namespace isc { namespace dhcp { break; case 259: // password: "password" $@39 ":" "constant string" -#line 1027 "dhcp4_parser.yy" +#line 1028 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1944,7 +1944,7 @@ namespace isc { namespace dhcp { break; case 260: // $@40: %empty -#line 1033 "dhcp4_parser.yy" +#line 1034 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1953,7 +1953,7 @@ namespace isc { namespace dhcp { break; case 261: // host: "host" $@40 ":" "constant string" -#line 1036 "dhcp4_parser.yy" +#line 1037 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1963,7 +1963,7 @@ namespace isc { namespace dhcp { break; case 262: // port: "port" ":" "integer" -#line 1042 "dhcp4_parser.yy" +#line 1043 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1973,7 +1973,7 @@ namespace isc { namespace dhcp { break; case 263: // $@41: %empty -#line 1048 "dhcp4_parser.yy" +#line 1049 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1982,7 +1982,7 @@ namespace isc { namespace dhcp { break; case 264: // name: "name" $@41 ":" "constant string" -#line 1051 "dhcp4_parser.yy" +#line 1052 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1992,7 +1992,7 @@ namespace isc { namespace dhcp { break; case 265: // persist: "persist" ":" "boolean" -#line 1057 "dhcp4_parser.yy" +#line 1058 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2002,7 +2002,7 @@ namespace isc { namespace dhcp { break; case 266: // lfc_interval: "lfc-interval" ":" "integer" -#line 1063 "dhcp4_parser.yy" +#line 1064 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2012,7 +2012,7 @@ namespace isc { namespace dhcp { break; case 267: // readonly: "readonly" ":" "boolean" -#line 1069 "dhcp4_parser.yy" +#line 1070 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2022,7 +2022,7 @@ namespace isc { namespace dhcp { break; case 268: // connect_timeout: "connect-timeout" ":" "integer" -#line 1075 "dhcp4_parser.yy" +#line 1076 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2032,7 +2032,7 @@ namespace isc { namespace dhcp { break; case 269: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1081 "dhcp4_parser.yy" +#line 1082 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2042,7 +2042,7 @@ namespace isc { namespace dhcp { break; case 270: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1087 "dhcp4_parser.yy" +#line 1088 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2052,7 +2052,7 @@ namespace isc { namespace dhcp { break; case 271: // $@42: %empty -#line 1093 "dhcp4_parser.yy" +#line 1094 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); @@ -2061,7 +2061,7 @@ namespace isc { namespace dhcp { break; case 272: // on_fail: "on-fail" $@42 ":" on_fail_mode -#line 1096 "dhcp4_parser.yy" +#line 1097 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2070,25 +2070,25 @@ namespace isc { namespace dhcp { break; case 273: // on_fail_mode: "stop-retry-exit" -#line 1101 "dhcp4_parser.yy" +#line 1102 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2076 "dhcp4_parser.cc" break; case 274: // on_fail_mode: "serve-retry-exit" -#line 1102 "dhcp4_parser.yy" +#line 1103 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2082 "dhcp4_parser.cc" break; case 275: // on_fail_mode: "serve-retry-continue" -#line 1103 "dhcp4_parser.yy" +#line 1104 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } #line 2088 "dhcp4_parser.cc" break; case 276: // max_row_errors: "max-row-errors" ":" "integer" -#line 1106 "dhcp4_parser.yy" +#line 1107 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2098,7 +2098,7 @@ namespace isc { namespace dhcp { break; case 277: // $@43: %empty -#line 1112 "dhcp4_parser.yy" +#line 1113 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2107,7 +2107,7 @@ namespace isc { namespace dhcp { break; case 278: // trust_anchor: "trust-anchor" $@43 ":" "constant string" -#line 1115 "dhcp4_parser.yy" +#line 1116 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); @@ -2117,7 +2117,7 @@ namespace isc { namespace dhcp { break; case 279: // $@44: %empty -#line 1121 "dhcp4_parser.yy" +#line 1122 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2126,7 +2126,7 @@ namespace isc { namespace dhcp { break; case 280: // cert_file: "cert-file" $@44 ":" "constant string" -#line 1124 "dhcp4_parser.yy" +#line 1125 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); @@ -2136,7 +2136,7 @@ namespace isc { namespace dhcp { break; case 281: // $@45: %empty -#line 1130 "dhcp4_parser.yy" +#line 1131 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2145,7 +2145,7 @@ namespace isc { namespace dhcp { break; case 282: // key_file: "key-file" $@45 ":" "constant string" -#line 1133 "dhcp4_parser.yy" +#line 1134 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); @@ -2155,7 +2155,7 @@ namespace isc { namespace dhcp { break; case 283: // $@46: %empty -#line 1139 "dhcp4_parser.yy" +#line 1140 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2164,7 +2164,7 @@ namespace isc { namespace dhcp { break; case 284: // cipher_list: "cipher-list" $@46 ":" "constant string" -#line 1142 "dhcp4_parser.yy" +#line 1143 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); @@ -2174,7 +2174,7 @@ namespace isc { namespace dhcp { break; case 285: // $@47: %empty -#line 1148 "dhcp4_parser.yy" +#line 1149 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2186,7 +2186,7 @@ namespace isc { namespace dhcp { break; case 286: // host_reservation_identifiers: "host-reservation-identifiers" $@47 ":" "[" host_reservation_identifiers_list "]" -#line 1154 "dhcp4_parser.yy" +#line 1155 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2195,7 +2195,7 @@ namespace isc { namespace dhcp { break; case 289: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1161 "dhcp4_parser.yy" +#line 1162 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2203,7 +2203,7 @@ namespace isc { namespace dhcp { break; case 295: // duid_id: "duid" -#line 1173 "dhcp4_parser.yy" +#line 1174 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@ -2212,7 +2212,7 @@ namespace isc { namespace dhcp { break; case 296: // hw_address_id: "hw-address" -#line 1178 "dhcp4_parser.yy" +#line 1179 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); @@ -2221,7 +2221,7 @@ namespace isc { namespace dhcp { break; case 297: // circuit_id: "circuit-id" -#line 1183 "dhcp4_parser.yy" +#line 1184 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); @@ -2230,7 +2230,7 @@ namespace isc { namespace dhcp { break; case 298: // client_id: "client-id" -#line 1188 "dhcp4_parser.yy" +#line 1189 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); @@ -2239,7 +2239,7 @@ namespace isc { namespace dhcp { break; case 299: // flex_id: "flex-id" -#line 1193 "dhcp4_parser.yy" +#line 1194 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); @@ -2248,7 +2248,7 @@ namespace isc { namespace dhcp { break; case 300: // $@48: %empty -#line 1200 "dhcp4_parser.yy" +#line 1201 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2260,7 +2260,7 @@ namespace isc { namespace dhcp { break; case 301: // dhcp_multi_threading: "multi-threading" $@48 ":" "{" multi_threading_params "}" -#line 1206 "dhcp4_parser.yy" +#line 1207 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -2271,7 +2271,7 @@ namespace isc { namespace dhcp { break; case 304: // multi_threading_params: multi_threading_params "," -#line 1215 "dhcp4_parser.yy" +#line 1216 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2279,7 +2279,7 @@ namespace isc { namespace dhcp { break; case 311: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1228 "dhcp4_parser.yy" +#line 1229 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2289,7 +2289,7 @@ namespace isc { namespace dhcp { break; case 312: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1234 "dhcp4_parser.yy" +#line 1235 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2299,7 +2299,7 @@ namespace isc { namespace dhcp { break; case 313: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1240 "dhcp4_parser.yy" +#line 1241 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2309,7 +2309,7 @@ namespace isc { namespace dhcp { break; case 314: // $@49: %empty -#line 1246 "dhcp4_parser.yy" +#line 1247 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2321,7 +2321,7 @@ namespace isc { namespace dhcp { break; case 315: // hooks_libraries: "hooks-libraries" $@49 ":" "[" hooks_libraries_list "]" -#line 1252 "dhcp4_parser.yy" +#line 1253 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2330,7 +2330,7 @@ namespace isc { namespace dhcp { break; case 320: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1263 "dhcp4_parser.yy" +#line 1264 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2338,7 +2338,7 @@ namespace isc { namespace dhcp { break; case 321: // $@50: %empty -#line 1268 "dhcp4_parser.yy" +#line 1269 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2348,7 +2348,7 @@ namespace isc { namespace dhcp { break; case 322: // hooks_library: "{" $@50 hooks_params "}" -#line 1272 "dhcp4_parser.yy" +#line 1273 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2358,7 +2358,7 @@ namespace isc { namespace dhcp { break; case 323: // $@51: %empty -#line 1278 "dhcp4_parser.yy" +#line 1279 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2368,7 +2368,7 @@ namespace isc { namespace dhcp { break; case 324: // sub_hooks_library: "{" $@51 hooks_params "}" -#line 1282 "dhcp4_parser.yy" +#line 1283 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2378,7 +2378,7 @@ namespace isc { namespace dhcp { break; case 327: // hooks_params: hooks_params "," -#line 1290 "dhcp4_parser.yy" +#line 1291 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2386,7 +2386,7 @@ namespace isc { namespace dhcp { break; case 331: // $@52: %empty -#line 1300 "dhcp4_parser.yy" +#line 1301 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2395,7 +2395,7 @@ namespace isc { namespace dhcp { break; case 332: // library: "library" $@52 ":" "constant string" -#line 1303 "dhcp4_parser.yy" +#line 1304 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); @@ -2405,7 +2405,7 @@ namespace isc { namespace dhcp { break; case 333: // $@53: %empty -#line 1309 "dhcp4_parser.yy" +#line 1310 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2414,7 +2414,7 @@ namespace isc { namespace dhcp { break; case 334: // parameters: "parameters" $@53 ":" map_value -#line 1312 "dhcp4_parser.yy" +#line 1313 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2423,7 +2423,7 @@ namespace isc { namespace dhcp { break; case 335: // $@54: %empty -#line 1318 "dhcp4_parser.yy" +#line 1319 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2435,7 +2435,7 @@ namespace isc { namespace dhcp { break; case 336: // expired_leases_processing: "expired-leases-processing" $@54 ":" "{" expired_leases_params "}" -#line 1324 "dhcp4_parser.yy" +#line 1325 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); @@ -2445,7 +2445,7 @@ namespace isc { namespace dhcp { break; case 339: // expired_leases_params: expired_leases_params "," -#line 1332 "dhcp4_parser.yy" +#line 1333 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2453,7 +2453,7 @@ namespace isc { namespace dhcp { break; case 346: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1345 "dhcp4_parser.yy" +#line 1346 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2463,7 +2463,7 @@ namespace isc { namespace dhcp { break; case 347: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1351 "dhcp4_parser.yy" +#line 1352 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2473,7 +2473,7 @@ namespace isc { namespace dhcp { break; case 348: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1357 "dhcp4_parser.yy" +#line 1358 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2483,7 +2483,7 @@ namespace isc { namespace dhcp { break; case 349: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1363 "dhcp4_parser.yy" +#line 1364 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2493,7 +2493,7 @@ namespace isc { namespace dhcp { break; case 350: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1369 "dhcp4_parser.yy" +#line 1370 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2503,7 +2503,7 @@ namespace isc { namespace dhcp { break; case 351: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1375 "dhcp4_parser.yy" +#line 1376 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2513,7 +2513,7 @@ namespace isc { namespace dhcp { break; case 352: // $@55: %empty -#line 1384 "dhcp4_parser.yy" +#line 1385 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2525,7 +2525,7 @@ namespace isc { namespace dhcp { break; case 353: // subnet4_list: "subnet4" $@55 ":" "[" subnet4_list_content "]" -#line 1390 "dhcp4_parser.yy" +#line 1391 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2534,7 +2534,7 @@ namespace isc { namespace dhcp { break; case 358: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1404 "dhcp4_parser.yy" +#line 1405 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2542,7 +2542,7 @@ namespace isc { namespace dhcp { break; case 359: // $@56: %empty -#line 1413 "dhcp4_parser.yy" +#line 1414 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2552,7 +2552,7 @@ namespace isc { namespace dhcp { break; case 360: // subnet4: "{" $@56 subnet4_params "}" -#line 1417 "dhcp4_parser.yy" +#line 1418 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2578,7 +2578,7 @@ namespace isc { namespace dhcp { break; case 361: // $@57: %empty -#line 1439 "dhcp4_parser.yy" +#line 1440 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2588,7 +2588,7 @@ namespace isc { namespace dhcp { break; case 362: // sub_subnet4: "{" $@57 subnet4_params "}" -#line 1443 "dhcp4_parser.yy" +#line 1444 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2598,7 +2598,7 @@ namespace isc { namespace dhcp { break; case 365: // subnet4_params: subnet4_params "," -#line 1452 "dhcp4_parser.yy" +#line 1453 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2606,7 +2606,7 @@ namespace isc { namespace dhcp { break; case 411: // $@58: %empty -#line 1505 "dhcp4_parser.yy" +#line 1506 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2615,7 +2615,7 @@ namespace isc { namespace dhcp { break; case 412: // subnet: "subnet" $@58 ":" "constant string" -#line 1508 "dhcp4_parser.yy" +#line 1509 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); @@ -2625,7 +2625,7 @@ namespace isc { namespace dhcp { break; case 413: // $@59: %empty -#line 1514 "dhcp4_parser.yy" +#line 1515 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2634,7 +2634,7 @@ namespace isc { namespace dhcp { break; case 414: // subnet_4o6_interface: "4o6-interface" $@59 ":" "constant string" -#line 1517 "dhcp4_parser.yy" +#line 1518 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); @@ -2644,7 +2644,7 @@ namespace isc { namespace dhcp { break; case 415: // $@60: %empty -#line 1523 "dhcp4_parser.yy" +#line 1524 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2653,7 +2653,7 @@ namespace isc { namespace dhcp { break; case 416: // subnet_4o6_interface_id: "4o6-interface-id" $@60 ":" "constant string" -#line 1526 "dhcp4_parser.yy" +#line 1527 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); @@ -2663,7 +2663,7 @@ namespace isc { namespace dhcp { break; case 417: // $@61: %empty -#line 1532 "dhcp4_parser.yy" +#line 1533 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2672,7 +2672,7 @@ namespace isc { namespace dhcp { break; case 418: // subnet_4o6_subnet: "4o6-subnet" $@61 ":" "constant string" -#line 1535 "dhcp4_parser.yy" +#line 1536 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); @@ -2682,7 +2682,7 @@ namespace isc { namespace dhcp { break; case 419: // $@62: %empty -#line 1541 "dhcp4_parser.yy" +#line 1542 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2691,7 +2691,7 @@ namespace isc { namespace dhcp { break; case 420: // interface: "interface" $@62 ":" "constant string" -#line 1544 "dhcp4_parser.yy" +#line 1545 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); @@ -2701,7 +2701,7 @@ namespace isc { namespace dhcp { break; case 421: // $@63: %empty -#line 1550 "dhcp4_parser.yy" +#line 1551 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2710,7 +2710,7 @@ namespace isc { namespace dhcp { break; case 422: // client_class: "client-class" $@63 ":" "constant string" -#line 1553 "dhcp4_parser.yy" +#line 1554 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); @@ -2720,7 +2720,7 @@ namespace isc { namespace dhcp { break; case 423: // $@64: %empty -#line 1559 "dhcp4_parser.yy" +#line 1560 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2732,7 +2732,7 @@ namespace isc { namespace dhcp { break; case 424: // require_client_classes: "require-client-classes" $@64 ":" list_strings -#line 1565 "dhcp4_parser.yy" +#line 1566 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2741,7 +2741,7 @@ namespace isc { namespace dhcp { break; case 425: // reservations_global: "reservations-global" ":" "boolean" -#line 1570 "dhcp4_parser.yy" +#line 1571 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2751,7 +2751,7 @@ namespace isc { namespace dhcp { break; case 426: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1576 "dhcp4_parser.yy" +#line 1577 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2761,7 +2761,7 @@ namespace isc { namespace dhcp { break; case 427: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1582 "dhcp4_parser.yy" +#line 1583 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2771,7 +2771,7 @@ namespace isc { namespace dhcp { break; case 428: // $@65: %empty -#line 1588 "dhcp4_parser.yy" +#line 1589 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); @@ -2780,7 +2780,7 @@ namespace isc { namespace dhcp { break; case 429: // reservation_mode: "reservation-mode" $@65 ":" hr_mode -#line 1591 "dhcp4_parser.yy" +#line 1592 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2789,31 +2789,31 @@ namespace isc { namespace dhcp { break; case 430: // hr_mode: "disabled" -#line 1596 "dhcp4_parser.yy" +#line 1597 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } #line 2795 "dhcp4_parser.cc" break; case 431: // hr_mode: "out-of-pool" -#line 1597 "dhcp4_parser.yy" +#line 1598 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } #line 2801 "dhcp4_parser.cc" break; case 432: // hr_mode: "global" -#line 1598 "dhcp4_parser.yy" +#line 1599 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } #line 2807 "dhcp4_parser.cc" break; case 433: // hr_mode: "all" -#line 1599 "dhcp4_parser.yy" +#line 1600 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } #line 2813 "dhcp4_parser.cc" break; case 434: // id: "id" ":" "integer" -#line 1602 "dhcp4_parser.yy" +#line 1603 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2823,7 +2823,7 @@ namespace isc { namespace dhcp { break; case 435: // $@66: %empty -#line 1610 "dhcp4_parser.yy" +#line 1611 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2835,7 +2835,7 @@ namespace isc { namespace dhcp { break; case 436: // shared_networks: "shared-networks" $@66 ":" "[" shared_networks_content "]" -#line 1616 "dhcp4_parser.yy" +#line 1617 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2844,7 +2844,7 @@ namespace isc { namespace dhcp { break; case 441: // shared_networks_list: shared_networks_list "," -#line 1629 "dhcp4_parser.yy" +#line 1630 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2852,7 +2852,7 @@ namespace isc { namespace dhcp { break; case 442: // $@67: %empty -#line 1634 "dhcp4_parser.yy" +#line 1635 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2862,7 +2862,7 @@ namespace isc { namespace dhcp { break; case 443: // shared_network: "{" $@67 shared_network_params "}" -#line 1638 "dhcp4_parser.yy" +#line 1639 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -2870,7 +2870,7 @@ namespace isc { namespace dhcp { break; case 446: // shared_network_params: shared_network_params "," -#line 1644 "dhcp4_parser.yy" +#line 1645 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2878,7 +2878,7 @@ namespace isc { namespace dhcp { break; case 487: // $@68: %empty -#line 1695 "dhcp4_parser.yy" +#line 1696 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2890,7 +2890,7 @@ namespace isc { namespace dhcp { break; case 488: // option_def_list: "option-def" $@68 ":" "[" option_def_list_content "]" -#line 1701 "dhcp4_parser.yy" +#line 1702 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2899,7 +2899,7 @@ namespace isc { namespace dhcp { break; case 489: // $@69: %empty -#line 1709 "dhcp4_parser.yy" +#line 1710 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -2908,7 +2908,7 @@ namespace isc { namespace dhcp { break; case 490: // sub_option_def_list: "{" $@69 option_def_list "}" -#line 1712 "dhcp4_parser.yy" +#line 1713 "dhcp4_parser.yy" { // parsing completed } @@ -2916,7 +2916,7 @@ namespace isc { namespace dhcp { break; case 495: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1724 "dhcp4_parser.yy" +#line 1725 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2924,7 +2924,7 @@ namespace isc { namespace dhcp { break; case 496: // $@70: %empty -#line 1731 "dhcp4_parser.yy" +#line 1732 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2934,7 +2934,7 @@ namespace isc { namespace dhcp { break; case 497: // option_def_entry: "{" $@70 option_def_params "}" -#line 1735 "dhcp4_parser.yy" +#line 1736 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2946,7 +2946,7 @@ namespace isc { namespace dhcp { break; case 498: // $@71: %empty -#line 1746 "dhcp4_parser.yy" +#line 1747 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2956,7 +2956,7 @@ namespace isc { namespace dhcp { break; case 499: // sub_option_def: "{" $@71 option_def_params "}" -#line 1750 "dhcp4_parser.yy" +#line 1751 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2968,7 +2968,7 @@ namespace isc { namespace dhcp { break; case 504: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1766 "dhcp4_parser.yy" +#line 1767 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2976,7 +2976,7 @@ namespace isc { namespace dhcp { break; case 516: // code: "code" ":" "integer" -#line 1785 "dhcp4_parser.yy" +#line 1786 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2986,7 +2986,7 @@ namespace isc { namespace dhcp { break; case 518: // $@72: %empty -#line 1793 "dhcp4_parser.yy" +#line 1794 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2995,7 +2995,7 @@ namespace isc { namespace dhcp { break; case 519: // option_def_type: "type" $@72 ":" "constant string" -#line 1796 "dhcp4_parser.yy" +#line 1797 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); @@ -3005,7 +3005,7 @@ namespace isc { namespace dhcp { break; case 520: // $@73: %empty -#line 1802 "dhcp4_parser.yy" +#line 1803 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3014,7 +3014,7 @@ namespace isc { namespace dhcp { break; case 521: // option_def_record_types: "record-types" $@73 ":" "constant string" -#line 1805 "dhcp4_parser.yy" +#line 1806 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); @@ -3024,7 +3024,7 @@ namespace isc { namespace dhcp { break; case 522: // $@74: %empty -#line 1811 "dhcp4_parser.yy" +#line 1812 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3033,7 +3033,7 @@ namespace isc { namespace dhcp { break; case 523: // space: "space" $@74 ":" "constant string" -#line 1814 "dhcp4_parser.yy" +#line 1815 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); @@ -3043,7 +3043,7 @@ namespace isc { namespace dhcp { break; case 525: // $@75: %empty -#line 1822 "dhcp4_parser.yy" +#line 1823 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3052,7 +3052,7 @@ namespace isc { namespace dhcp { break; case 526: // option_def_encapsulate: "encapsulate" $@75 ":" "constant string" -#line 1825 "dhcp4_parser.yy" +#line 1826 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); @@ -3062,7 +3062,7 @@ namespace isc { namespace dhcp { break; case 527: // option_def_array: "array" ":" "boolean" -#line 1831 "dhcp4_parser.yy" +#line 1832 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3072,7 +3072,7 @@ namespace isc { namespace dhcp { break; case 528: // $@76: %empty -#line 1841 "dhcp4_parser.yy" +#line 1842 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3084,7 +3084,7 @@ namespace isc { namespace dhcp { break; case 529: // option_data_list: "option-data" $@76 ":" "[" option_data_list_content "]" -#line 1847 "dhcp4_parser.yy" +#line 1848 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3093,7 +3093,7 @@ namespace isc { namespace dhcp { break; case 534: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1862 "dhcp4_parser.yy" +#line 1863 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3101,7 +3101,7 @@ namespace isc { namespace dhcp { break; case 535: // $@77: %empty -#line 1869 "dhcp4_parser.yy" +#line 1870 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3111,7 +3111,7 @@ namespace isc { namespace dhcp { break; case 536: // option_data_entry: "{" $@77 option_data_params "}" -#line 1873 "dhcp4_parser.yy" +#line 1874 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); @@ -3120,7 +3120,7 @@ namespace isc { namespace dhcp { break; case 537: // $@78: %empty -#line 1881 "dhcp4_parser.yy" +#line 1882 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3130,7 +3130,7 @@ namespace isc { namespace dhcp { break; case 538: // sub_option_data: "{" $@78 option_data_params "}" -#line 1885 "dhcp4_parser.yy" +#line 1886 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed @@ -3139,7 +3139,7 @@ namespace isc { namespace dhcp { break; case 543: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1901 "dhcp4_parser.yy" +#line 1902 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3147,7 +3147,7 @@ namespace isc { namespace dhcp { break; case 554: // $@79: %empty -#line 1921 "dhcp4_parser.yy" +#line 1922 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3156,7 +3156,7 @@ namespace isc { namespace dhcp { break; case 555: // option_data_data: "data" $@79 ":" "constant string" -#line 1924 "dhcp4_parser.yy" +#line 1925 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); @@ -3166,7 +3166,7 @@ namespace isc { namespace dhcp { break; case 558: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1934 "dhcp4_parser.yy" +#line 1935 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3176,7 +3176,7 @@ namespace isc { namespace dhcp { break; case 559: // option_data_always_send: "always-send" ":" "boolean" -#line 1940 "dhcp4_parser.yy" +#line 1941 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3186,7 +3186,7 @@ namespace isc { namespace dhcp { break; case 560: // $@80: %empty -#line 1949 "dhcp4_parser.yy" +#line 1950 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3198,7 +3198,7 @@ namespace isc { namespace dhcp { break; case 561: // pools_list: "pools" $@80 ":" "[" pools_list_content "]" -#line 1955 "dhcp4_parser.yy" +#line 1956 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3207,7 +3207,7 @@ namespace isc { namespace dhcp { break; case 566: // not_empty_pools_list: not_empty_pools_list "," -#line 1968 "dhcp4_parser.yy" +#line 1969 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3215,7 +3215,7 @@ namespace isc { namespace dhcp { break; case 567: // $@81: %empty -#line 1973 "dhcp4_parser.yy" +#line 1974 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3225,7 +3225,7 @@ namespace isc { namespace dhcp { break; case 568: // pool_list_entry: "{" $@81 pool_params "}" -#line 1977 "dhcp4_parser.yy" +#line 1978 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3235,7 +3235,7 @@ namespace isc { namespace dhcp { break; case 569: // $@82: %empty -#line 1983 "dhcp4_parser.yy" +#line 1984 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3245,7 +3245,7 @@ namespace isc { namespace dhcp { break; case 570: // sub_pool4: "{" $@82 pool_params "}" -#line 1987 "dhcp4_parser.yy" +#line 1988 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3255,7 +3255,7 @@ namespace isc { namespace dhcp { break; case 573: // pool_params: pool_params "," -#line 1995 "dhcp4_parser.yy" +#line 1996 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3263,7 +3263,7 @@ namespace isc { namespace dhcp { break; case 581: // $@83: %empty -#line 2009 "dhcp4_parser.yy" +#line 2010 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3272,7 +3272,7 @@ namespace isc { namespace dhcp { break; case 582: // pool_entry: "pool" $@83 ":" "constant string" -#line 2012 "dhcp4_parser.yy" +#line 2013 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); @@ -3282,7 +3282,7 @@ namespace isc { namespace dhcp { break; case 583: // $@84: %empty -#line 2018 "dhcp4_parser.yy" +#line 2019 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3290,7 +3290,7 @@ namespace isc { namespace dhcp { break; case 584: // user_context: "user-context" $@84 ":" map_value -#line 2020 "dhcp4_parser.yy" +#line 2021 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3317,7 +3317,7 @@ namespace isc { namespace dhcp { break; case 585: // $@85: %empty -#line 2043 "dhcp4_parser.yy" +#line 2044 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3325,7 +3325,7 @@ namespace isc { namespace dhcp { break; case 586: // comment: "comment" $@85 ":" "constant string" -#line 2045 "dhcp4_parser.yy" +#line 2046 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3354,7 +3354,7 @@ namespace isc { namespace dhcp { break; case 587: // $@86: %empty -#line 2073 "dhcp4_parser.yy" +#line 2074 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3366,7 +3366,7 @@ namespace isc { namespace dhcp { break; case 588: // reservations: "reservations" $@86 ":" "[" reservations_list "]" -#line 2079 "dhcp4_parser.yy" +#line 2080 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3375,7 +3375,7 @@ namespace isc { namespace dhcp { break; case 593: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2090 "dhcp4_parser.yy" +#line 2091 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3383,7 +3383,7 @@ namespace isc { namespace dhcp { break; case 594: // $@87: %empty -#line 2095 "dhcp4_parser.yy" +#line 2096 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3393,7 +3393,7 @@ namespace isc { namespace dhcp { break; case 595: // reservation: "{" $@87 reservation_params "}" -#line 2099 "dhcp4_parser.yy" +#line 2100 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); @@ -3402,7 +3402,7 @@ namespace isc { namespace dhcp { break; case 596: // $@88: %empty -#line 2104 "dhcp4_parser.yy" +#line 2105 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3412,7 +3412,7 @@ namespace isc { namespace dhcp { break; case 597: // sub_reservation: "{" $@88 reservation_params "}" -#line 2108 "dhcp4_parser.yy" +#line 2109 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed @@ -3421,7 +3421,7 @@ namespace isc { namespace dhcp { break; case 602: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2119 "dhcp4_parser.yy" +#line 2120 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3429,7 +3429,7 @@ namespace isc { namespace dhcp { break; case 618: // $@89: %empty -#line 2142 "dhcp4_parser.yy" +#line 2143 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3438,7 +3438,7 @@ namespace isc { namespace dhcp { break; case 619: // next_server: "next-server" $@89 ":" "constant string" -#line 2145 "dhcp4_parser.yy" +#line 2146 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); @@ -3448,7 +3448,7 @@ namespace isc { namespace dhcp { break; case 620: // $@90: %empty -#line 2151 "dhcp4_parser.yy" +#line 2152 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3457,7 +3457,7 @@ namespace isc { namespace dhcp { break; case 621: // server_hostname: "server-hostname" $@90 ":" "constant string" -#line 2154 "dhcp4_parser.yy" +#line 2155 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); @@ -3467,7 +3467,7 @@ namespace isc { namespace dhcp { break; case 622: // $@91: %empty -#line 2160 "dhcp4_parser.yy" +#line 2161 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3476,7 +3476,7 @@ namespace isc { namespace dhcp { break; case 623: // boot_file_name: "boot-file-name" $@91 ":" "constant string" -#line 2163 "dhcp4_parser.yy" +#line 2164 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); @@ -3486,7 +3486,7 @@ namespace isc { namespace dhcp { break; case 624: // $@92: %empty -#line 2169 "dhcp4_parser.yy" +#line 2170 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3495,7 +3495,7 @@ namespace isc { namespace dhcp { break; case 625: // ip_address: "ip-address" $@92 ":" "constant string" -#line 2172 "dhcp4_parser.yy" +#line 2173 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); @@ -3505,7 +3505,7 @@ namespace isc { namespace dhcp { break; case 626: // $@93: %empty -#line 2178 "dhcp4_parser.yy" +#line 2179 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3517,7 +3517,7 @@ namespace isc { namespace dhcp { break; case 627: // ip_addresses: "ip-addresses" $@93 ":" list_strings -#line 2184 "dhcp4_parser.yy" +#line 2185 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3526,7 +3526,7 @@ namespace isc { namespace dhcp { break; case 628: // $@94: %empty -#line 2189 "dhcp4_parser.yy" +#line 2190 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3535,7 +3535,7 @@ namespace isc { namespace dhcp { break; case 629: // duid: "duid" $@94 ":" "constant string" -#line 2192 "dhcp4_parser.yy" +#line 2193 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); @@ -3545,7 +3545,7 @@ namespace isc { namespace dhcp { break; case 630: // $@95: %empty -#line 2198 "dhcp4_parser.yy" +#line 2199 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3554,7 +3554,7 @@ namespace isc { namespace dhcp { break; case 631: // hw_address: "hw-address" $@95 ":" "constant string" -#line 2201 "dhcp4_parser.yy" +#line 2202 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); @@ -3564,7 +3564,7 @@ namespace isc { namespace dhcp { break; case 632: // $@96: %empty -#line 2207 "dhcp4_parser.yy" +#line 2208 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3573,7 +3573,7 @@ namespace isc { namespace dhcp { break; case 633: // client_id_value: "client-id" $@96 ":" "constant string" -#line 2210 "dhcp4_parser.yy" +#line 2211 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); @@ -3583,7 +3583,7 @@ namespace isc { namespace dhcp { break; case 634: // $@97: %empty -#line 2216 "dhcp4_parser.yy" +#line 2217 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3592,7 +3592,7 @@ namespace isc { namespace dhcp { break; case 635: // circuit_id_value: "circuit-id" $@97 ":" "constant string" -#line 2219 "dhcp4_parser.yy" +#line 2220 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); @@ -3602,7 +3602,7 @@ namespace isc { namespace dhcp { break; case 636: // $@98: %empty -#line 2225 "dhcp4_parser.yy" +#line 2226 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3611,7 +3611,7 @@ namespace isc { namespace dhcp { break; case 637: // flex_id_value: "flex-id" $@98 ":" "constant string" -#line 2228 "dhcp4_parser.yy" +#line 2229 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); @@ -3621,7 +3621,7 @@ namespace isc { namespace dhcp { break; case 638: // $@99: %empty -#line 2234 "dhcp4_parser.yy" +#line 2235 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3630,7 +3630,7 @@ namespace isc { namespace dhcp { break; case 639: // hostname: "hostname" $@99 ":" "constant string" -#line 2237 "dhcp4_parser.yy" +#line 2238 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); @@ -3640,7 +3640,7 @@ namespace isc { namespace dhcp { break; case 640: // $@100: %empty -#line 2243 "dhcp4_parser.yy" +#line 2244 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3652,7 +3652,7 @@ namespace isc { namespace dhcp { break; case 641: // reservation_client_classes: "client-classes" $@100 ":" list_strings -#line 2249 "dhcp4_parser.yy" +#line 2250 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3661,7 +3661,7 @@ namespace isc { namespace dhcp { break; case 642: // $@101: %empty -#line 2257 "dhcp4_parser.yy" +#line 2258 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3673,7 +3673,7 @@ namespace isc { namespace dhcp { break; case 643: // relay: "relay" $@101 ":" "{" relay_map "}" -#line 2263 "dhcp4_parser.yy" +#line 2264 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3682,7 +3682,7 @@ namespace isc { namespace dhcp { break; case 646: // $@102: %empty -#line 2275 "dhcp4_parser.yy" +#line 2276 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3694,7 +3694,7 @@ namespace isc { namespace dhcp { break; case 647: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]" -#line 2281 "dhcp4_parser.yy" +#line 2282 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3703,7 +3703,7 @@ namespace isc { namespace dhcp { break; case 650: // client_classes_list: client_classes_list "," -#line 2288 "dhcp4_parser.yy" +#line 2289 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3711,7 +3711,7 @@ namespace isc { namespace dhcp { break; case 651: // $@103: %empty -#line 2293 "dhcp4_parser.yy" +#line 2294 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3721,7 +3721,7 @@ namespace isc { namespace dhcp { break; case 652: // client_class_entry: "{" $@103 client_class_params "}" -#line 2297 "dhcp4_parser.yy" +#line 2298 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3731,7 +3731,7 @@ namespace isc { namespace dhcp { break; case 657: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2309 "dhcp4_parser.yy" +#line 2310 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3739,7 +3739,7 @@ namespace isc { namespace dhcp { break; case 673: // $@104: %empty -#line 2332 "dhcp4_parser.yy" +#line 2333 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3748,7 +3748,7 @@ namespace isc { namespace dhcp { break; case 674: // client_class_test: "test" $@104 ":" "constant string" -#line 2335 "dhcp4_parser.yy" +#line 2336 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); @@ -3758,7 +3758,7 @@ namespace isc { namespace dhcp { break; case 675: // only_if_required: "only-if-required" ":" "boolean" -#line 2341 "dhcp4_parser.yy" +#line 2342 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3768,7 +3768,7 @@ namespace isc { namespace dhcp { break; case 676: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2349 "dhcp4_parser.yy" +#line 2350 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3778,7 +3778,7 @@ namespace isc { namespace dhcp { break; case 677: // $@105: %empty -#line 2357 "dhcp4_parser.yy" +#line 2358 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3790,7 +3790,7 @@ namespace isc { namespace dhcp { break; case 678: // control_socket: "control-socket" $@105 ":" "{" control_socket_params "}" -#line 2363 "dhcp4_parser.yy" +#line 2364 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3799,7 +3799,7 @@ namespace isc { namespace dhcp { break; case 681: // control_socket_params: control_socket_params "," -#line 2370 "dhcp4_parser.yy" +#line 2371 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3807,7 +3807,7 @@ namespace isc { namespace dhcp { break; case 687: // $@106: %empty -#line 2382 "dhcp4_parser.yy" +#line 2383 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3816,7 +3816,7 @@ namespace isc { namespace dhcp { break; case 688: // control_socket_type: "socket-type" $@106 ":" "constant string" -#line 2385 "dhcp4_parser.yy" +#line 2386 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); @@ -3826,7 +3826,7 @@ namespace isc { namespace dhcp { break; case 689: // $@107: %empty -#line 2391 "dhcp4_parser.yy" +#line 2392 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3835,7 +3835,7 @@ namespace isc { namespace dhcp { break; case 690: // control_socket_name: "socket-name" $@107 ":" "constant string" -#line 2394 "dhcp4_parser.yy" +#line 2395 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); @@ -3845,7 +3845,7 @@ namespace isc { namespace dhcp { break; case 691: // $@108: %empty -#line 2403 "dhcp4_parser.yy" +#line 2404 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3857,7 +3857,7 @@ namespace isc { namespace dhcp { break; case 692: // dhcp_queue_control: "dhcp-queue-control" $@108 ":" "{" queue_control_params "}" -#line 2409 "dhcp4_parser.yy" +#line 2410 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -3868,7 +3868,7 @@ namespace isc { namespace dhcp { break; case 695: // queue_control_params: queue_control_params "," -#line 2418 "dhcp4_parser.yy" +#line 2419 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3876,7 +3876,7 @@ namespace isc { namespace dhcp { break; case 702: // enable_queue: "enable-queue" ":" "boolean" -#line 2431 "dhcp4_parser.yy" +#line 2432 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3886,7 +3886,7 @@ namespace isc { namespace dhcp { break; case 703: // $@109: %empty -#line 2437 "dhcp4_parser.yy" +#line 2438 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3895,7 +3895,7 @@ namespace isc { namespace dhcp { break; case 704: // queue_type: "queue-type" $@109 ":" "constant string" -#line 2440 "dhcp4_parser.yy" +#line 2441 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); @@ -3905,7 +3905,7 @@ namespace isc { namespace dhcp { break; case 705: // capacity: "capacity" ":" "integer" -#line 2446 "dhcp4_parser.yy" +#line 2447 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3915,7 +3915,7 @@ namespace isc { namespace dhcp { break; case 706: // $@110: %empty -#line 2452 "dhcp4_parser.yy" +#line 2453 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3924,7 +3924,7 @@ namespace isc { namespace dhcp { break; case 707: // arbitrary_map_entry: "constant string" $@110 ":" value -#line 2455 "dhcp4_parser.yy" +#line 2456 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -3933,7 +3933,7 @@ namespace isc { namespace dhcp { break; case 708: // $@111: %empty -#line 2462 "dhcp4_parser.yy" +#line 2463 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3945,7 +3945,7 @@ namespace isc { namespace dhcp { break; case 709: // dhcp_ddns: "dhcp-ddns" $@111 ":" "{" dhcp_ddns_params "}" -#line 2468 "dhcp4_parser.yy" +#line 2469 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -3956,7 +3956,7 @@ namespace isc { namespace dhcp { break; case 710: // $@112: %empty -#line 2475 "dhcp4_parser.yy" +#line 2476 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3966,7 +3966,7 @@ namespace isc { namespace dhcp { break; case 711: // sub_dhcp_ddns: "{" $@112 dhcp_ddns_params "}" -#line 2479 "dhcp4_parser.yy" +#line 2480 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3976,7 +3976,7 @@ namespace isc { namespace dhcp { break; case 714: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2487 "dhcp4_parser.yy" +#line 2488 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3984,7 +3984,7 @@ namespace isc { namespace dhcp { break; case 733: // enable_updates: "enable-updates" ":" "boolean" -#line 2512 "dhcp4_parser.yy" +#line 2513 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3994,7 +3994,7 @@ namespace isc { namespace dhcp { break; case 734: // $@113: %empty -#line 2518 "dhcp4_parser.yy" +#line 2519 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4003,7 +4003,7 @@ namespace isc { namespace dhcp { break; case 735: // server_ip: "server-ip" $@113 ":" "constant string" -#line 2521 "dhcp4_parser.yy" +#line 2522 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); @@ -4013,7 +4013,7 @@ namespace isc { namespace dhcp { break; case 736: // server_port: "server-port" ":" "integer" -#line 2527 "dhcp4_parser.yy" +#line 2528 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4023,7 +4023,7 @@ namespace isc { namespace dhcp { break; case 737: // $@114: %empty -#line 2533 "dhcp4_parser.yy" +#line 2534 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4032,7 +4032,7 @@ namespace isc { namespace dhcp { break; case 738: // sender_ip: "sender-ip" $@114 ":" "constant string" -#line 2536 "dhcp4_parser.yy" +#line 2537 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); @@ -4042,7 +4042,7 @@ namespace isc { namespace dhcp { break; case 739: // sender_port: "sender-port" ":" "integer" -#line 2542 "dhcp4_parser.yy" +#line 2543 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4052,7 +4052,7 @@ namespace isc { namespace dhcp { break; case 740: // max_queue_size: "max-queue-size" ":" "integer" -#line 2548 "dhcp4_parser.yy" +#line 2549 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4062,7 +4062,7 @@ namespace isc { namespace dhcp { break; case 741: // $@115: %empty -#line 2554 "dhcp4_parser.yy" +#line 2555 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); @@ -4071,7 +4071,7 @@ namespace isc { namespace dhcp { break; case 742: // ncr_protocol: "ncr-protocol" $@115 ":" ncr_protocol_value -#line 2557 "dhcp4_parser.yy" +#line 2558 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4080,19 +4080,19 @@ namespace isc { namespace dhcp { break; case 743: // ncr_protocol_value: "udp" -#line 2563 "dhcp4_parser.yy" +#line 2564 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 4086 "dhcp4_parser.cc" break; case 744: // ncr_protocol_value: "tcp" -#line 2564 "dhcp4_parser.yy" +#line 2565 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 4092 "dhcp4_parser.cc" break; case 745: // $@116: %empty -#line 2567 "dhcp4_parser.yy" +#line 2568 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); @@ -4101,7 +4101,7 @@ namespace isc { namespace dhcp { break; case 746: // ncr_format: "ncr-format" $@116 ":" "JSON" -#line 2570 "dhcp4_parser.yy" +#line 2571 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -4111,7 +4111,7 @@ namespace isc { namespace dhcp { break; case 747: // $@117: %empty -#line 2577 "dhcp4_parser.yy" +#line 2578 "dhcp4_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4120,7 +4120,7 @@ namespace isc { namespace dhcp { break; case 748: // dep_qualifying_suffix: "qualifying-suffix" $@117 ":" "constant string" -#line 2580 "dhcp4_parser.yy" +#line 2581 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); @@ -4130,7 +4130,7 @@ namespace isc { namespace dhcp { break; case 749: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2587 "dhcp4_parser.yy" +#line 2588 "dhcp4_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4140,7 +4140,7 @@ namespace isc { namespace dhcp { break; case 750: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2594 "dhcp4_parser.yy" +#line 2595 "dhcp4_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4150,7 +4150,7 @@ namespace isc { namespace dhcp { break; case 751: // $@118: %empty -#line 2601 "dhcp4_parser.yy" +#line 2602 "dhcp4_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -4159,7 +4159,7 @@ namespace isc { namespace dhcp { break; case 752: // dep_replace_client_name: "replace-client-name" $@118 ":" ddns_replace_client_name_value -#line 2604 "dhcp4_parser.yy" +#line 2605 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4168,7 +4168,7 @@ namespace isc { namespace dhcp { break; case 753: // $@119: %empty -#line 2610 "dhcp4_parser.yy" +#line 2611 "dhcp4_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4177,7 +4177,7 @@ namespace isc { namespace dhcp { break; case 754: // dep_generated_prefix: "generated-prefix" $@119 ":" "constant string" -#line 2613 "dhcp4_parser.yy" +#line 2614 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); @@ -4187,7 +4187,7 @@ namespace isc { namespace dhcp { break; case 755: // $@120: %empty -#line 2620 "dhcp4_parser.yy" +#line 2621 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4196,7 +4196,7 @@ namespace isc { namespace dhcp { break; case 756: // dep_hostname_char_set: "hostname-char-set" $@120 ":" "constant string" -#line 2623 "dhcp4_parser.yy" +#line 2624 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -4206,7 +4206,7 @@ namespace isc { namespace dhcp { break; case 757: // $@121: %empty -#line 2630 "dhcp4_parser.yy" +#line 2631 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4215,7 +4215,7 @@ namespace isc { namespace dhcp { break; case 758: // dep_hostname_char_replacement: "hostname-char-replacement" $@121 ":" "constant string" -#line 2633 "dhcp4_parser.yy" +#line 2634 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -4225,7 +4225,7 @@ namespace isc { namespace dhcp { break; case 759: // $@122: %empty -#line 2642 "dhcp4_parser.yy" +#line 2643 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4237,7 +4237,7 @@ namespace isc { namespace dhcp { break; case 760: // config_control: "config-control" $@122 ":" "{" config_control_params "}" -#line 2648 "dhcp4_parser.yy" +#line 2649 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); @@ -4247,7 +4247,7 @@ namespace isc { namespace dhcp { break; case 761: // $@123: %empty -#line 2654 "dhcp4_parser.yy" +#line 2655 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4257,7 +4257,7 @@ namespace isc { namespace dhcp { break; case 762: // sub_config_control: "{" $@123 config_control_params "}" -#line 2658 "dhcp4_parser.yy" +#line 2659 "dhcp4_parser.yy" { // No config_control params are required // parsing completed @@ -4266,7 +4266,7 @@ namespace isc { namespace dhcp { break; case 765: // config_control_params: config_control_params "," -#line 2666 "dhcp4_parser.yy" +#line 2667 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4274,7 +4274,7 @@ namespace isc { namespace dhcp { break; case 768: // $@124: %empty -#line 2676 "dhcp4_parser.yy" +#line 2677 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4286,7 +4286,7 @@ namespace isc { namespace dhcp { break; case 769: // config_databases: "config-databases" $@124 ":" "[" database_list "]" -#line 2682 "dhcp4_parser.yy" +#line 2683 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4295,7 +4295,7 @@ namespace isc { namespace dhcp { break; case 770: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2687 "dhcp4_parser.yy" +#line 2688 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4305,7 +4305,7 @@ namespace isc { namespace dhcp { break; case 771: // $@125: %empty -#line 2695 "dhcp4_parser.yy" +#line 2696 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4317,7 +4317,7 @@ namespace isc { namespace dhcp { break; case 772: // loggers: "loggers" $@125 ":" "[" loggers_entries "]" -#line 2701 "dhcp4_parser.yy" +#line 2702 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4326,7 +4326,7 @@ namespace isc { namespace dhcp { break; case 775: // loggers_entries: loggers_entries "," -#line 2710 "dhcp4_parser.yy" +#line 2711 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4334,7 +4334,7 @@ namespace isc { namespace dhcp { break; case 776: // $@126: %empty -#line 2716 "dhcp4_parser.yy" +#line 2717 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); @@ -4344,7 +4344,7 @@ namespace isc { namespace dhcp { break; case 777: // logger_entry: "{" $@126 logger_params "}" -#line 2720 "dhcp4_parser.yy" +#line 2721 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -4352,7 +4352,7 @@ namespace isc { namespace dhcp { break; case 780: // logger_params: logger_params "," -#line 2726 "dhcp4_parser.yy" +#line 2727 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4360,7 +4360,7 @@ namespace isc { namespace dhcp { break; case 788: // debuglevel: "debuglevel" ":" "integer" -#line 2740 "dhcp4_parser.yy" +#line 2741 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4370,7 +4370,7 @@ namespace isc { namespace dhcp { break; case 789: // $@127: %empty -#line 2746 "dhcp4_parser.yy" +#line 2747 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4379,7 +4379,7 @@ namespace isc { namespace dhcp { break; case 790: // severity: "severity" $@127 ":" "constant string" -#line 2749 "dhcp4_parser.yy" +#line 2750 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); @@ -4389,7 +4389,7 @@ namespace isc { namespace dhcp { break; case 791: // $@128: %empty -#line 2755 "dhcp4_parser.yy" +#line 2756 "dhcp4_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4401,7 +4401,7 @@ namespace isc { namespace dhcp { break; case 792: // output_options_list: "output_options" $@128 ":" "[" output_options_list_content "]" -#line 2761 "dhcp4_parser.yy" +#line 2762 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4410,7 +4410,7 @@ namespace isc { namespace dhcp { break; case 795: // output_options_list_content: output_options_list_content "," -#line 2768 "dhcp4_parser.yy" +#line 2769 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4418,7 +4418,7 @@ namespace isc { namespace dhcp { break; case 796: // $@129: %empty -#line 2773 "dhcp4_parser.yy" +#line 2774 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -4428,7 +4428,7 @@ namespace isc { namespace dhcp { break; case 797: // output_entry: "{" $@129 output_params_list "}" -#line 2777 "dhcp4_parser.yy" +#line 2778 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -4436,7 +4436,7 @@ namespace isc { namespace dhcp { break; case 800: // output_params_list: output_params_list "," -#line 2783 "dhcp4_parser.yy" +#line 2784 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4444,7 +4444,7 @@ namespace isc { namespace dhcp { break; case 806: // $@130: %empty -#line 2795 "dhcp4_parser.yy" +#line 2796 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4453,7 +4453,7 @@ namespace isc { namespace dhcp { break; case 807: // output: "output" $@130 ":" "constant string" -#line 2798 "dhcp4_parser.yy" +#line 2799 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); @@ -4463,7 +4463,7 @@ namespace isc { namespace dhcp { break; case 808: // flush: "flush" ":" "boolean" -#line 2804 "dhcp4_parser.yy" +#line 2805 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4473,7 +4473,7 @@ namespace isc { namespace dhcp { break; case 809: // maxsize: "maxsize" ":" "integer" -#line 2810 "dhcp4_parser.yy" +#line 2811 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4483,7 +4483,7 @@ namespace isc { namespace dhcp { break; case 810: // maxver: "maxver" ":" "integer" -#line 2816 "dhcp4_parser.yy" +#line 2817 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4493,7 +4493,7 @@ namespace isc { namespace dhcp { break; case 811: // $@131: %empty -#line 2822 "dhcp4_parser.yy" +#line 2823 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4502,7 +4502,7 @@ namespace isc { namespace dhcp { break; case 812: // pattern: "pattern" $@131 ":" "constant string" -#line 2825 "dhcp4_parser.yy" +#line 2826 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); @@ -4512,7 +4512,7 @@ namespace isc { namespace dhcp { break; case 813: // $@132: %empty -#line 2831 "dhcp4_parser.yy" +#line 2832 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4524,7 +4524,7 @@ namespace isc { namespace dhcp { break; case 814: // compatibility: "compatibility" $@132 ":" "{" compatibility_params "}" -#line 2837 "dhcp4_parser.yy" +#line 2838 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4533,15 +4533,15 @@ namespace isc { namespace dhcp { break; case 817: // compatibility_params: compatibility_params "," -#line 2844 "dhcp4_parser.yy" +#line 2845 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 4541 "dhcp4_parser.cc" break; - case 820: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 2853 "dhcp4_parser.yy" + case 821: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 2855 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4550,8 +4550,18 @@ namespace isc { namespace dhcp { #line 4551 "dhcp4_parser.cc" break; + case 822: // ignore-rai-link-selection: "ignore-rai-link-selection" ":" "boolean" +#line 2861 "dhcp4_parser.yy" + { + ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); + ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("lenient-option-parsing", b); +} +#line 4561 "dhcp4_parser.cc" + break; + -#line 4555 "dhcp4_parser.cc" +#line 4565 "dhcp4_parser.cc" default: break; @@ -4910,132 +4920,133 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yypact_[] = { - 429, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 39, 38, 26, 48, 62, 74, - 92, 96, 106, 114, 118, 140, 148, 163, -971, -971, + 570, -971, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 48, 40, 37, 53, 60, 68, + 92, 123, 158, 166, 207, 224, 231, 243, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 38, -152, 125, 132, 126, 294, - -50, 315, -16, 80, 200, -84, 617, 77, -971, 181, - 154, 228, 209, 258, -971, 34, -971, -971, -971, -971, - 264, 266, 275, -971, -971, -971, -971, -971, -971, 276, - 300, 325, 332, 348, 360, 361, 373, 377, 383, 384, - -971, 385, 386, 387, 388, 389, -971, -971, -971, 391, - 400, 401, -971, -971, -971, 405, -971, -971, -971, -971, - 406, 408, 409, -971, -971, -971, -971, -971, 412, -971, - -971, -971, -971, -971, -971, 415, 416, 417, -971, -971, - 419, -971, 56, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 40, -165, 95, 121, 145, 253, + -25, 273, 118, 169, 198, -79, 452, 99, -971, 223, + 250, 255, 249, 266, -971, 32, -971, -971, -971, -971, + 289, 319, 332, -971, -971, -971, -971, -971, -971, 340, + 342, 350, 367, 373, 390, 412, 418, 421, 424, 425, + -971, 426, 427, 428, 430, 431, -971, -971, -971, 434, + 435, 436, -971, -971, -971, 437, -971, -971, -971, -971, + 438, 440, 442, -971, -971, -971, -971, -971, 443, -971, + -971, -971, -971, -971, -971, 447, 448, 449, -971, -971, + 450, -971, 43, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - 421, 422, 423, 424, -971, 79, -971, -971, -971, -971, + 451, 454, 456, 458, -971, 47, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, 425, -971, -971, -971, -971, -971, -971, -971, + -971, -971, 459, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - 85, -971, -971, -971, -971, -971, -971, -971, -971, -971, + 78, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, 93, -971, + -971, -971, -971, -971, -971, -971, -971, -971, 86, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, 343, 427, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, -971, 426, - -971, -971, 428, -971, -971, -971, 431, -971, -971, 435, - 433, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 442, 443, -971, -971, -971, -971, - 444, 448, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 120, -971, -971, -971, 449, -971, - -971, 450, -971, 451, 452, -971, -971, 454, 456, -971, - -971, -971, -971, -971, -971, -971, 121, -971, -971, -971, + -971, -971, -971, -971, -971, 295, 462, -971, -971, -971, + -971, -971, -971, -971, -971, -971, -971, -971, -971, 407, + -971, -971, 463, -971, -971, -971, 464, -971, -971, 471, + 467, -971, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 476, 479, -971, -971, -971, -971, + 481, 489, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 88, -971, -971, -971, 491, -971, + -971, 492, -971, 493, 497, -971, -971, 498, 500, -971, + -971, -971, -971, -971, -971, -971, 90, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 458, 128, -971, -971, -971, -971, - 38, 38, -971, 263, 459, -971, -971, 462, 466, 472, - 274, 277, 278, 477, 480, 482, 483, 484, 489, 295, - 298, 299, 302, 303, 290, 308, 309, 316, 306, 311, - 515, 318, 320, 319, 321, 322, 521, 526, 527, 333, - 334, 335, 528, 538, 539, 341, 542, 544, 545, 546, - 346, 349, 351, 556, 557, 560, 562, 563, 365, 567, - 568, 570, 574, 575, 578, 378, 379, 399, 586, 587, - -971, 132, -971, 588, 601, 602, 407, 432, 410, 411, - 126, -971, 627, 628, 630, 632, 634, 636, 436, 642, - 643, 644, 294, -971, 645, -50, -971, 646, 648, 649, - 650, 651, 652, 655, 656, -971, 315, -971, 657, 658, - 460, 667, 671, 673, 473, -971, 80, 675, 475, 476, - -971, 200, 678, 679, 179, -971, 479, 685, 686, 488, - 688, 490, 502, 702, 703, 503, 516, 718, 721, 722, - 723, 617, -971, 728, 530, 77, -971, -971, -971, 730, - 729, 732, 734, 736, -971, -971, -971, 533, 543, 548, - 737, 739, 746, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 551, -971, -971, -971, -971, -971, - -94, 554, 558, -971, -971, -971, 753, 754, 756, -971, - 757, 758, 564, 231, -971, -971, -971, 759, 762, 763, - 764, 777, -971, 778, 779, 780, 781, 590, 591, -971, - -971, -971, 765, 782, -971, 789, 172, 301, -971, -971, - -971, -971, -971, 593, 594, 595, 793, 597, 598, -971, - 789, 599, 795, -971, 603, -971, 789, 604, 605, 608, - 609, 610, 611, 612, -971, 613, 614, -971, 615, 616, - 618, -971, -971, 619, -971, -971, -971, 620, 758, -971, - -971, 621, 622, -971, 623, -971, -971, 13, 659, -971, - -971, -94, 624, 626, 629, -971, 798, -971, -971, 38, - 132, 77, 126, 802, -971, -971, -971, 552, 552, 797, - -971, -971, -971, -971, -971, -971, -971, -971, -971, 823, - 825, 826, 827, -971, -971, -971, -971, -971, -971, -971, - -971, -17, 828, 829, 831, 119, 82, 184, 147, 617, - -971, -971, 832, -144, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, 833, -971, -971, -971, -971, - 122, -971, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 501, 98, -971, -971, -971, -971, + 40, 40, -971, 263, 502, -971, -971, 503, 504, 505, + 287, 307, 309, 512, 513, 514, 515, 516, 522, 323, + 324, 327, 328, 330, 329, 331, 333, 334, 338, 343, + 533, 353, 355, 335, 354, 356, 540, 544, 561, 361, + 364, 366, 569, 571, 573, 374, 579, 591, 592, 593, + 397, 398, 399, 615, 616, 617, 618, 619, 420, 623, + 624, 625, 626, 627, 630, 432, 433, 439, 632, 633, + -971, 121, -971, 636, 637, 638, 444, 446, 445, 453, + 145, -971, 639, 640, 642, 644, 649, 650, 455, 652, + 654, 661, 253, -971, 662, -25, -971, 663, 664, 667, + 669, 670, 671, 673, 674, -971, 273, -971, 675, 676, + 477, 678, 679, 680, 483, -971, 169, 697, 496, 509, + -971, 198, 699, 700, 108, -971, 510, 713, 714, 517, + 718, 519, 524, 725, 726, 525, 526, 731, 733, 735, + 736, 452, -971, 737, 538, 99, -971, -971, -971, 743, + 742, 745, 746, 747, -971, -971, -971, 547, 552, 553, + 750, 751, 768, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, 572, -971, -971, -971, -971, -971, + -87, 574, 575, -971, -971, -971, 769, 771, 774, -971, + 775, 776, 578, 201, -971, -971, -971, 777, 779, 780, + 781, 782, -971, 783, 784, 785, 786, 584, 585, -971, + -971, -971, 789, 788, -971, 791, 259, 305, -971, -971, + -971, -971, -971, 594, 595, 596, 795, 598, 599, -971, + 791, 600, 799, -971, 604, -971, 791, 605, 606, 607, + 608, 609, 610, 611, -971, 612, 613, -971, 614, 620, + 621, -971, -971, 622, -971, -971, -971, 628, 776, -971, + -971, 629, 634, -971, 635, -971, -971, 12, 651, -971, + -971, -87, 641, 643, 645, -971, 813, -971, -971, 40, + 121, 99, 145, 793, -971, -971, -971, 543, 543, 814, + -971, -971, -971, -971, -971, -971, -971, -971, -971, 815, + 819, 820, 821, -971, -971, -971, -971, -971, -971, -971, + -971, 286, 822, 823, 826, 247, 72, -31, 240, 452, + -971, -971, 828, -115, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, 829, -971, -971, -971, -971, + 274, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, -971, 797, - -971, 136, 151, 170, -971, 171, -971, -971, -971, -971, - -971, -971, 837, 838, 839, 840, 841, 842, 843, -971, - 844, -971, -971, -971, -971, -971, 178, -971, -971, -971, + -971, -971, -971, -971, -971, -971, -971, -971, -971, 814, + -971, 106, 119, 126, -971, 138, -971, -971, -971, -971, + -971, -971, 835, 836, 837, 838, 839, 841, 843, -971, + 845, -971, -971, -971, -971, -971, 140, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, 213, -971, 845, 846, - -971, -971, 847, 849, -971, -971, 848, 852, -971, -971, - 850, 854, -971, -971, 853, 855, -971, -971, -971, -971, - -971, -971, 94, -971, -971, -971, -971, -971, -971, -971, - 150, -971, -971, 856, 857, -971, -971, 858, 860, -971, - 861, 862, 863, 864, 865, 866, 215, -971, -971, -971, - -971, -971, -971, -971, 867, 868, 869, -971, 257, -971, + -971, -971, -971, -971, -971, -971, 155, -971, 844, 848, + -971, -971, 846, 850, -971, -971, 849, 851, -971, -971, + 852, 853, -971, -971, 854, 856, -971, -971, -971, -971, + -971, -971, 134, -971, -971, -971, -971, -971, -971, -971, + 156, -971, -971, 855, 859, -971, -971, 857, 861, -971, + 862, 863, 864, 865, 866, 867, 168, -971, -971, -971, + -971, -971, -971, -971, 868, 869, 870, -971, 219, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - 259, -971, -971, -971, 870, -971, 871, -971, -971, -971, - 261, -971, -971, -971, -971, -971, 268, -971, 185, -971, - 872, -971, 269, -971, -971, 676, -971, 873, 874, -971, - -971, -971, -971, 875, 876, -971, -971, -971, 877, 802, - -971, 880, 881, 882, 883, 647, 683, 677, 684, 687, - 689, 690, 887, 691, 891, 892, 893, 894, 552, -971, - -971, 552, -971, 797, 294, -971, 823, 80, -971, 825, - 200, -971, 826, 635, -971, 827, -17, -971, 555, 828, - -971, 315, -971, 829, -84, -971, 831, 696, 697, 698, - 699, 700, 701, 119, -971, 704, 705, 708, 82, -971, - 901, 902, 184, -971, 707, 910, 712, 916, 147, -971, - -971, 135, 832, -971, 717, -144, -971, -971, 919, 927, - -50, -971, 833, 942, -971, -971, 747, -971, 305, 750, - 772, 783, -971, -971, -971, -971, -971, -971, -971, 331, - -971, 787, 788, 799, 800, -971, 280, -971, 292, -971, - 923, -971, 956, -971, -971, -971, -971, -971, -971, -971, + 222, -971, -971, -971, 871, -971, 872, -971, -971, -971, + 246, -971, -971, -971, -971, -971, 248, -971, 174, -971, + 873, 874, -971, 265, -971, -971, -971, 677, -971, 875, + 876, -971, -971, -971, -971, 877, 878, -971, -971, -971, + 879, 793, -971, 882, 883, 884, 885, 653, 659, 686, + 685, 688, 689, 690, 891, 692, 893, 894, 895, 896, + 543, -971, -971, 543, -971, 814, 253, -971, 815, 169, + -971, 819, 198, -971, 820, 631, -971, 821, 286, -971, + 318, 822, -971, 273, -971, 823, -79, -971, 826, 698, + 701, 702, 703, 704, 706, 247, -971, 695, 707, 709, + 72, -971, 899, 900, -31, -971, 708, 913, 720, 929, + 240, -971, -971, -37, 828, -971, 748, 752, -115, -971, + -971, 931, 946, -25, -971, 829, 948, -971, -971, 790, + -971, 241, 809, 847, 858, -971, -971, -971, -971, -971, + -971, -971, 310, -971, 860, 880, 881, 886, -971, 299, + -971, 337, -971, 963, -971, 966, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, 293, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, -971, 977, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, 974, 1012, -971, -971, -971, -971, -971, 1037, - -971, 310, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, 859, 878, -971, -971, 879, -971, - 38, -971, -971, 1045, -971, -971, -971, -971, -971, 312, - -971, -971, -971, -971, -971, -971, -971, -971, 884, 327, - -971, 789, -971, -971, -971, -971, -971, -971, -971, -971, + 344, -971, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, 973, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, 971, 977, -971, -971, -971, + -971, -971, 975, -971, 385, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, -971, -971, 887, 888, -971, + -971, 889, -971, 40, -971, -971, 984, -971, -971, -971, + -971, -971, 409, -971, -971, -971, -971, -971, -971, -971, + -971, -971, 890, 411, -971, 791, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, 635, -971, 1046, 851, -971, 555, -971, -971, - -971, -971, -971, -971, 1050, 885, 1051, 135, -971, -971, - -971, -971, -971, 888, -971, -971, 1052, -971, 889, -971, - -971, 1053, -971, -971, 347, -971, -100, 1053, -971, -971, - 1054, 1055, 1058, -971, 330, -971, -971, -971, -971, -971, - -971, -971, 1059, 890, 886, 895, 1060, -100, -971, 897, - -971, -971, -971, 899, -971, -971, -971 + -971, -971, -971, -971, -971, -971, 631, -971, 987, 842, + -971, 318, -971, -971, -971, -971, -971, -971, 1047, 892, + 1049, -37, -971, -971, -971, -971, -971, 897, -971, -971, + 1051, -971, 901, -971, -971, 1050, -971, -971, 215, -971, + 27, 1050, -971, -971, 1054, 1055, 1056, -971, 415, -971, + -971, -971, -971, -971, -971, -971, 1058, 902, 898, 903, + 1060, 27, -971, 906, -971, -971, -971, 907, -971, -971, + -971 }; const short @@ -5134,87 +5145,88 @@ namespace isc { namespace dhcp { 305, 306, 307, 308, 309, 687, 689, 686, 684, 685, 0, 679, 682, 683, 0, 703, 0, 706, 699, 700, 0, 693, 696, 697, 698, 701, 0, 776, 0, 773, - 0, 819, 0, 815, 818, 53, 567, 0, 563, 564, - 626, 644, 645, 0, 0, 62, 760, 178, 0, 214, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 231, 209, - 219, 0, 221, 226, 0, 353, 358, 500, 488, 495, - 539, 529, 534, 0, 436, 441, 289, 286, 653, 650, - 647, 598, 588, 593, 0, 315, 320, 0, 0, 0, - 0, 0, 0, 339, 336, 0, 0, 0, 304, 301, - 0, 0, 681, 678, 0, 0, 0, 0, 695, 692, - 709, 0, 775, 772, 0, 817, 814, 55, 0, 54, - 0, 561, 566, 0, 643, 769, 0, 213, 0, 0, - 0, 0, 262, 265, 266, 267, 268, 269, 270, 0, - 276, 0, 0, 0, 0, 230, 0, 225, 0, 357, - 0, 494, 0, 533, 486, 465, 466, 467, 450, 451, - 470, 471, 472, 473, 474, 453, 454, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 447, 448, - 449, 463, 464, 460, 461, 462, 459, 0, 444, 452, - 468, 469, 455, 456, 457, 458, 440, 288, 673, 0, - 668, 669, 670, 671, 672, 661, 662, 666, 667, 663, - 664, 665, 0, 654, 655, 658, 659, 660, 649, 0, - 592, 0, 319, 346, 347, 348, 349, 350, 351, 338, - 311, 312, 313, 303, 0, 0, 680, 702, 0, 705, - 0, 694, 791, 0, 789, 787, 781, 785, 786, 0, - 778, 783, 784, 782, 774, 820, 816, 52, 57, 0, - 565, 0, 217, 253, 254, 255, 252, 257, 259, 261, - 273, 274, 275, 272, 278, 280, 282, 284, 228, 360, - 497, 536, 446, 443, 0, 0, 652, 657, 595, 322, - 688, 690, 704, 707, 0, 0, 0, 780, 777, 56, - 568, 627, 445, 0, 675, 656, 0, 788, 0, 779, - 674, 0, 790, 796, 0, 793, 0, 795, 792, 806, - 0, 0, 0, 811, 0, 798, 801, 802, 803, 804, - 805, 794, 0, 0, 0, 0, 0, 800, 797, 0, - 808, 809, 810, 0, 799, 807, 812 + 0, 0, 820, 0, 815, 818, 819, 53, 567, 0, + 563, 564, 626, 644, 645, 0, 0, 62, 760, 178, + 0, 214, 211, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 231, 209, 219, 0, 221, 226, 0, 353, 358, 500, + 488, 495, 539, 529, 534, 0, 436, 441, 289, 286, + 653, 650, 647, 598, 588, 593, 0, 315, 320, 0, + 0, 0, 0, 0, 0, 339, 336, 0, 0, 0, + 304, 301, 0, 0, 681, 678, 0, 0, 0, 0, + 695, 692, 709, 0, 775, 772, 0, 0, 817, 814, + 55, 0, 54, 0, 561, 566, 0, 643, 769, 0, + 213, 0, 0, 0, 0, 262, 265, 266, 267, 268, + 269, 270, 0, 276, 0, 0, 0, 0, 230, 0, + 225, 0, 357, 0, 494, 0, 533, 486, 465, 466, + 467, 450, 451, 470, 471, 472, 473, 474, 453, 454, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 447, 448, 449, 463, 464, 460, 461, 462, 459, + 0, 444, 452, 468, 469, 455, 456, 457, 458, 440, + 288, 673, 0, 668, 669, 670, 671, 672, 661, 662, + 666, 667, 663, 664, 665, 0, 654, 655, 658, 659, + 660, 649, 0, 592, 0, 319, 346, 347, 348, 349, + 350, 351, 338, 311, 312, 313, 303, 0, 0, 680, + 702, 0, 705, 0, 694, 791, 0, 789, 787, 781, + 785, 786, 0, 778, 783, 784, 782, 774, 821, 822, + 816, 52, 57, 0, 565, 0, 217, 253, 254, 255, + 252, 257, 259, 261, 273, 274, 275, 272, 278, 280, + 282, 284, 228, 360, 497, 536, 446, 443, 0, 0, + 652, 657, 595, 322, 688, 690, 704, 707, 0, 0, + 0, 780, 777, 56, 568, 627, 445, 0, 675, 656, + 0, 788, 0, 779, 674, 0, 790, 796, 0, 793, + 0, 795, 792, 806, 0, 0, 0, 811, 0, 798, + 801, 802, 803, 804, 805, 794, 0, 0, 0, 0, + 0, 800, 797, 0, 808, 809, 810, 0, 799, 807, + 812 }; const short Dhcp4Parser::yypgoto_[] = { -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -54, -971, -583, -971, 183, - -971, -971, -971, -971, -971, -971, -635, -971, -971, -971, - -67, -971, -971, -971, -971, -971, -971, -971, 366, 576, - 4, 10, 23, -40, -23, -12, 22, 25, 29, 33, - -971, -971, -971, -971, -971, 35, 40, 43, 45, 46, - 47, -971, 374, 50, -971, 51, -971, 53, 57, 58, - -971, 61, -971, 63, -971, -971, -971, -971, -971, -971, - -971, 367, 571, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, -52, -971, -574, -971, 204, + -971, -971, -971, -971, -971, -971, -623, -971, -971, -971, + -67, -971, -971, -971, -971, -971, -971, -971, 365, 576, + 0, 10, 11, -30, 18, 21, 28, 31, 33, 34, + -971, -971, -971, -971, -971, 38, 39, 41, 44, 46, + 49, -971, 375, 51, -971, 52, -971, 54, 56, 57, + -971, 59, -971, 62, -971, -971, -971, -971, -971, -971, + -971, 368, 568, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, 123, -971, -971, -971, -971, -971, -971, 279, - -971, 97, -971, -696, 105, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -33, -971, -971, -971, -971, + -971, -971, 120, -971, -971, -971, -971, -971, -971, 280, + -971, 97, -971, -695, 103, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, -63, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, 88, -971, - -971, -971, -971, -971, -971, -971, -971, 67, -971, -971, - -971, -971, -971, -971, -971, 81, -971, -971, -971, 84, - 532, -971, -971, -971, -971, -971, -971, -971, 76, -971, - -971, -971, -971, -971, -971, -970, -971, -971, -971, 107, - -971, -971, -971, 108, 572, -971, -971, -971, -971, -971, - -971, -971, -971, -959, -971, -65, -971, 70, -971, 64, - 65, 68, 69, -971, -971, -971, -971, -971, -971, -971, - 100, -971, -971, -105, -46, -971, -971, -971, -971, -971, - 113, -971, -971, -971, 116, -971, 561, -971, -63, -971, + -971, -971, -971, -971, -971, -971, -971, -971, 87, -971, + -971, -971, -971, -971, -971, -971, -971, 66, -971, -971, + -971, -971, -971, -971, -971, 76, -971, -971, -971, 81, + 534, -971, -971, -971, -971, -971, -971, -971, 74, -971, + -971, -971, -971, -971, -971, -970, -971, -971, -971, 102, + -971, -971, -971, 105, 582, -971, -971, -971, -971, -971, + -971, -971, -971, -964, -971, -65, -971, -34, -971, 64, + 67, 69, 70, -971, -971, -971, -971, -971, -971, -971, + 100, -971, -971, -114, -46, -971, -971, -971, -971, -971, + 104, -971, -971, -971, 107, -971, 559, -971, -50, -971, -971, -971, -971, -971, -42, -971, -971, -971, -971, -971, - -35, -971, -971, -971, 112, -971, -971, -971, 124, -971, - 565, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, 71, -971, -971, -971, 72, 592, -971, -971, - -51, -971, -8, -971, -39, -971, -971, -971, 115, -971, - -971, -971, 127, -971, 579, -55, -971, -15, -971, 3, - -971, 350, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, -971, -956, - -971, -971, -971, -971, -971, 130, -971, -971, -971, -88, - -971, -971, -971, -971, -971, -971, -971, -971, 99, -971, - -971, -971, -971, -971, -971, -971, 95, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, 375, 559, -971, + -28, -971, -971, -971, 113, -971, -971, -971, 116, -971, + 558, -971, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, 71, -971, -971, -971, 55, 588, -971, -971, + -51, -971, -12, -971, -35, -971, -971, -971, 110, -971, + -971, -971, 122, -971, 586, -55, -971, -40, -971, -1, + -971, 351, -971, -971, -971, -971, -971, -971, -971, -971, + -971, -971, -971, -971, -971, -971, -971, -971, -971, -957, + -971, -971, -971, -971, -971, 125, -971, -971, -971, -88, + -971, -971, -971, -971, -971, -971, -971, -971, 109, -971, + -971, -971, -971, -971, -971, -971, 94, -971, -971, -971, + -971, -971, -971, -971, -971, -971, -971, 378, 557, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - -971, -971, -971, -971, -971, -971, -971, -971, 414, 547, - -971, -971, -971, -971, -971, -971, 101, -971, -971, -91, - -971, -971, -971, -971, -971, -971, -110, -971, -971, -126, + -971, -971, -971, -971, -971, -971, -971, -971, 419, 554, + -971, -971, -971, -971, -971, -971, 101, -971, -971, -90, + -971, -971, -971, -971, -971, -971, -109, -971, -971, -127, -971, -971, -971, -971, -971, -971, -971, -971, -971, -971, - 103, -971 + 111, -971, -971 }; const short @@ -5222,7 +5234,7 @@ namespace isc { namespace dhcp { { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 724, - 82, 83, 39, 64, 79, 80, 745, 935, 1028, 1029, + 82, 83, 39, 64, 79, 80, 745, 937, 1031, 1032, 815, 41, 66, 85, 424, 86, 43, 67, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 450, 166, 167, 168, 169, 170, 171, 172, @@ -5230,522 +5242,523 @@ namespace isc { namespace dhcp { 483, 179, 484, 180, 181, 182, 183, 184, 185, 186, 428, 225, 226, 45, 68, 227, 493, 228, 494, 748, 229, 495, 751, 230, 231, 232, 233, 187, 436, 188, - 429, 795, 796, 797, 948, 189, 437, 190, 438, 838, - 839, 840, 971, 816, 817, 818, 951, 1176, 819, 952, - 820, 953, 821, 954, 822, 823, 529, 824, 825, 826, - 827, 828, 829, 830, 962, 1183, 831, 832, 964, 833, - 965, 834, 966, 835, 967, 191, 473, 862, 863, 864, + 429, 795, 796, 797, 950, 189, 437, 190, 438, 838, + 839, 840, 973, 816, 817, 818, 953, 1180, 819, 954, + 820, 955, 821, 956, 822, 823, 529, 824, 825, 826, + 827, 828, 829, 830, 964, 1187, 831, 832, 966, 833, + 967, 834, 968, 835, 969, 191, 473, 862, 863, 864, 865, 866, 867, 868, 192, 479, 898, 899, 900, 901, - 902, 193, 476, 877, 878, 879, 994, 59, 75, 374, + 902, 193, 476, 877, 878, 879, 996, 59, 75, 374, 375, 376, 542, 377, 543, 194, 477, 886, 887, 888, 889, 890, 891, 892, 893, 195, 462, 842, 843, 844, - 974, 47, 69, 270, 271, 272, 506, 273, 502, 274, + 976, 47, 69, 270, 271, 272, 506, 273, 502, 274, 503, 275, 504, 276, 507, 277, 510, 278, 509, 196, 197, 198, 199, 469, 730, 283, 200, 466, 854, 855, - 856, 983, 1097, 1098, 201, 463, 53, 72, 846, 847, - 848, 977, 55, 73, 339, 340, 341, 342, 343, 344, + 856, 985, 1100, 1101, 201, 463, 53, 72, 846, 847, + 848, 979, 55, 73, 339, 340, 341, 342, 343, 344, 345, 528, 346, 532, 347, 531, 348, 349, 533, 350, - 202, 464, 850, 851, 852, 980, 57, 74, 360, 361, + 202, 464, 850, 851, 852, 982, 57, 74, 360, 361, 362, 363, 364, 537, 365, 366, 367, 368, 285, 505, - 937, 938, 939, 1030, 49, 70, 298, 299, 300, 514, - 203, 467, 204, 468, 205, 475, 873, 874, 875, 991, + 939, 940, 941, 1033, 49, 70, 298, 299, 300, 514, + 203, 467, 204, 468, 205, 475, 873, 874, 875, 993, 51, 71, 315, 316, 317, 206, 433, 207, 434, 208, - 435, 321, 524, 942, 1033, 322, 518, 323, 519, 324, + 435, 321, 524, 944, 1036, 322, 518, 323, 519, 324, 521, 325, 520, 326, 523, 327, 522, 328, 517, 292, - 511, 943, 209, 474, 870, 871, 988, 1122, 1123, 1124, - 1125, 1126, 1194, 1127, 210, 211, 480, 910, 911, 912, - 1010, 913, 1011, 212, 481, 920, 921, 922, 923, 1015, - 924, 925, 1017, 213, 482, 61, 76, 396, 397, 398, + 511, 945, 209, 474, 870, 871, 990, 1125, 1126, 1127, + 1128, 1129, 1198, 1130, 210, 211, 480, 910, 911, 912, + 1012, 913, 1013, 212, 481, 920, 921, 922, 923, 1017, + 924, 925, 1019, 213, 482, 61, 76, 396, 397, 398, 399, 548, 400, 401, 550, 402, 403, 404, 553, 783, 405, 554, 406, 547, 407, 408, 409, 557, 410, 558, 411, 559, 412, 560, 214, 427, 63, 77, 415, 416, - 417, 563, 418, 215, 488, 928, 929, 1021, 1159, 1160, - 1161, 1162, 1206, 1163, 1204, 1224, 1225, 1226, 1234, 1235, - 1236, 1242, 1237, 1238, 1239, 1240, 1246, 216, 489, 932, - 933, 934 + 417, 563, 418, 215, 488, 928, 929, 1023, 1162, 1163, + 1164, 1165, 1210, 1166, 1208, 1228, 1229, 1230, 1238, 1239, + 1240, 1246, 1241, 1242, 1243, 1244, 1250, 216, 489, 933, + 934, 935, 936 }; const short Dhcp4Parser::yytable_[] = { 151, 224, 246, 294, 311, 295, 337, 356, 373, 393, - 78, 358, 836, 1089, 289, 758, 318, 234, 286, 301, - 313, 762, 351, 369, 1090, 394, 329, 1105, 723, 250, - 288, 781, 359, 40, 284, 297, 312, 425, 124, 28, - 338, 357, 426, 29, 930, 30, 251, 31, 371, 372, - 81, 293, 127, 128, 290, 42, 319, 252, 150, 491, - 235, 287, 302, 314, 492, 352, 370, 243, 395, 44, - 244, 123, 291, 247, 320, 711, 712, 713, 714, 248, - 1229, 46, 500, 1230, 1231, 1232, 1233, 501, 512, 413, - 414, 253, 249, 513, 254, 723, 515, 986, 255, 48, - 987, 516, 256, 50, 257, 857, 858, 859, 860, 258, - 861, 715, 259, 52, 260, 261, 262, 330, 150, 263, - 264, 54, 265, 544, 561, 56, 266, 267, 545, 562, - 268, 565, 269, 279, 280, 84, 566, 281, 282, 491, - 296, 217, 218, 87, 945, 219, 88, 58, 220, 221, - 222, 223, 150, 989, 565, 60, 990, 420, 89, 946, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 331, - 62, 332, 333, 500, 949, 334, 335, 336, 947, 950, - 782, 968, 127, 128, 127, 128, 969, 419, 1022, 746, - 747, 1023, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 968, 422, 1003, 123, - 124, 970, 1089, 1004, 331, 894, 895, 896, 127, 128, - 125, 126, 421, 1090, 127, 128, 1105, 127, 128, 129, - 32, 33, 34, 35, 130, 131, 132, 133, 134, 127, - 128, 310, 940, 135, 880, 881, 882, 883, 884, 885, - 1008, 423, 1012, 136, 1018, 1009, 137, 1013, 430, 1019, - 431, 561, 1025, 138, 139, 1056, 1020, 1026, 140, 432, - 439, 141, 150, 968, 150, 142, 127, 128, 1188, 331, - 353, 332, 333, 354, 355, 512, 1192, 914, 915, 916, - 1189, 1193, 127, 128, 440, 143, 144, 145, 146, 147, - 148, 371, 372, 544, 1152, 1207, 1153, 1154, 1199, 149, - 1208, 749, 750, 91, 92, 93, 94, 95, 150, 441, - 515, 905, 906, 1247, 150, 1210, 442, 150, 1248, 726, - 727, 728, 729, 1173, 1174, 1175, 93, 94, 95, 917, - 1227, 525, 443, 1228, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 444, 445, 567, 568, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 446, 236, 237, - 238, 447, 124, 1180, 1181, 1182, 150, 448, 449, 451, - 452, 453, 454, 455, 239, 459, 127, 128, 240, 241, - 242, 129, 150, 124, 460, 461, 130, 131, 132, 465, - 470, 243, 471, 472, 244, 135, 478, 127, 128, 485, - 486, 487, 245, 490, 151, 496, 497, 498, 499, 508, - 526, 303, 530, 224, 527, 534, 536, 304, 305, 306, - 307, 308, 309, 535, 310, 246, 538, 539, 294, 234, - 295, 541, 540, 546, 549, 551, 552, 289, 555, 311, - 556, 286, 564, 570, 301, 569, 571, 143, 144, 337, - 572, 318, 250, 288, 356, 313, 573, 284, 358, 574, - 297, 577, 575, 576, 578, 351, 579, 580, 581, 251, - 369, 312, 235, 582, 393, 588, 150, 290, 583, 359, - 252, 584, 585, 338, 287, 586, 587, 302, 357, 592, - 394, 319, 589, 590, 593, 291, 247, 150, 314, 594, - 591, 595, 248, 596, 597, 600, 598, 599, 352, 320, - 601, 602, 606, 370, 253, 249, 1211, 254, 603, 604, - 605, 255, 607, 608, 609, 256, 610, 257, 611, 612, - 613, 614, 258, 395, 615, 259, 616, 260, 261, 262, - 617, 618, 263, 264, 619, 265, 620, 621, 622, 266, - 267, 623, 624, 268, 625, 269, 279, 280, 626, 627, - 281, 282, 628, 629, 630, 296, 93, 94, 95, 798, - 632, 633, 635, 799, 800, 801, 802, 803, 804, 805, - 806, 807, 808, 809, 631, 636, 637, 810, 811, 812, - 813, 814, 638, 640, 641, 99, 100, 101, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 643, 644, 151, 645, 224, 646, 639, 647, 649, - 648, 331, 123, 124, 331, 790, 650, 651, 652, 654, - 656, 234, 657, 658, 659, 660, 661, 127, 128, 662, - 663, 665, 666, 667, 91, 92, 93, 94, 95, 897, - 907, 668, 393, 1108, 1109, 669, 931, 670, 671, 673, - 674, 675, 677, 678, 680, 903, 908, 918, 394, 681, - 682, 683, 684, 685, 235, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 686, 687, 688, 689, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 127, - 128, 690, 691, 124, 331, 692, 693, 694, 904, 909, - 919, 395, 696, 697, 699, 704, 700, 127, 128, 701, - 241, 702, 129, 703, 707, 705, 708, 130, 131, 132, - 706, 709, 243, 710, 150, 244, 717, 150, 719, 720, - 718, 721, 722, 245, 731, 30, 725, 732, 733, 734, - 742, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 735, 736, 737, 738, 739, 743, - 391, 392, 740, 741, 744, 752, 753, 754, 755, 756, - 757, 759, 760, 789, 837, 761, 763, 764, 143, 144, - 765, 766, 767, 768, 769, 770, 771, 772, 773, 150, - 774, 775, 776, 778, 779, 780, 786, 784, 787, 794, - 841, 788, 845, 849, 853, 869, 872, 150, 876, 927, - 936, 955, 956, 957, 958, 959, 960, 961, 963, 973, - 1042, 972, 976, 975, 978, 979, 981, 982, 985, 984, - 993, 777, 992, 996, 995, 997, 998, 999, 1000, 1001, - 1002, 1005, 1006, 1007, 1014, 1016, 1024, 1032, 1027, 1031, - 1044, 1036, 1035, 1034, 1038, 1039, 1040, 1041, 1043, 1045, - 1046, 1049, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1133, - 1134, 1135, 1136, 1137, 1138, 1144, 1145, 246, 1141, 1140, - 337, 1142, 1147, 356, 1148, 1149, 1064, 358, 1091, 289, - 1150, 1110, 1165, 286, 311, 1167, 351, 373, 1102, 369, - 1168, 1190, 1100, 1119, 250, 288, 318, 1117, 359, 284, - 313, 897, 1115, 1068, 338, 907, 1171, 357, 1099, 1172, - 1088, 251, 1177, 1116, 1155, 1114, 312, 903, 931, 290, - 1069, 908, 252, 294, 1191, 295, 287, 918, 1103, 352, - 1157, 1070, 370, 1120, 1178, 1101, 319, 291, 247, 301, - 1118, 1195, 1196, 314, 248, 1179, 1104, 1065, 1156, 1184, - 1185, 1121, 1111, 1066, 320, 297, 253, 249, 1112, 254, - 904, 1186, 1187, 255, 909, 1071, 1067, 256, 1072, 257, - 919, 1113, 1073, 1158, 258, 1197, 1074, 259, 1075, 260, - 261, 262, 302, 1076, 263, 264, 1077, 265, 1078, 1079, - 1080, 266, 267, 1081, 1082, 268, 1083, 269, 279, 280, - 1084, 1085, 281, 282, 1086, 1198, 1087, 1093, 1094, 1205, - 1213, 1095, 1096, 1092, 1216, 1218, 1214, 1221, 1243, 1244, - 1223, 1200, 1245, 1249, 1253, 785, 791, 634, 944, 793, - 1057, 642, 1037, 1055, 1107, 1143, 679, 1132, 1131, 1139, - 1201, 1202, 1058, 1059, 653, 1106, 1209, 1212, 1217, 1251, - 1220, 1222, 1061, 1060, 1063, 1250, 1203, 672, 1252, 1255, - 296, 1256, 1169, 1170, 1062, 664, 676, 655, 1130, 1215, - 941, 1146, 698, 1151, 926, 792, 1219, 1241, 1129, 1128, - 695, 1254, 0, 1164, 0, 1064, 0, 1091, 1166, 0, - 1110, 0, 0, 0, 0, 0, 0, 1102, 0, 0, - 1155, 1100, 1119, 0, 0, 0, 1117, 0, 0, 0, - 0, 1115, 1068, 0, 0, 0, 1157, 1099, 0, 1088, - 0, 0, 1116, 0, 1114, 0, 0, 0, 0, 1069, - 0, 0, 0, 0, 1156, 0, 0, 1103, 0, 0, - 1070, 0, 1120, 0, 1101, 0, 0, 0, 0, 1118, - 0, 0, 0, 0, 0, 1104, 1065, 0, 0, 1158, - 1121, 1111, 1066, 0, 0, 0, 0, 1112, 0, 0, - 0, 0, 0, 0, 1071, 1067, 0, 1072, 0, 0, - 1113, 1073, 0, 0, 0, 1074, 0, 1075, 0, 0, - 0, 0, 1076, 0, 0, 1077, 0, 1078, 1079, 1080, - 0, 0, 1081, 1082, 0, 1083, 0, 0, 0, 1084, - 1085, 0, 0, 1086, 0, 1087, 1093, 1094, 0, 0, - 1095, 1096, 1092 + 338, 357, 78, 836, 289, 1092, 318, 234, 286, 301, + 313, 1093, 351, 369, 358, 394, 329, 758, 1108, 290, + 781, 319, 359, 762, 288, 425, 296, 723, 81, 250, + 426, 284, 297, 312, 40, 29, 491, 30, 28, 31, + 500, 492, 331, 371, 372, 501, 235, 287, 302, 314, + 42, 352, 370, 124, 395, 127, 128, 44, 291, 247, + 320, 127, 128, 930, 931, 46, 293, 127, 128, 248, + 249, 512, 711, 712, 713, 714, 513, 251, 150, 515, + 252, 544, 243, 561, 516, 244, 545, 253, 562, 48, + 254, 565, 255, 256, 723, 84, 566, 257, 258, 491, + 259, 413, 414, 260, 947, 261, 905, 906, 262, 715, + 263, 264, 565, 265, 150, 266, 267, 948, 268, 500, + 50, 269, 87, 279, 949, 88, 280, 988, 281, 282, + 989, 951, 1155, 970, 1156, 1157, 952, 89, 971, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 970, 991, + 217, 218, 992, 972, 219, 52, 150, 220, 221, 222, + 223, 1005, 150, 54, 127, 128, 1006, 1024, 150, 782, + 1025, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 330, 1233, 123, 124, + 1234, 1235, 1236, 1237, 56, 894, 895, 896, 1231, 125, + 126, 1232, 1010, 127, 128, 1014, 1092, 1011, 129, 419, + 1015, 58, 1093, 130, 131, 132, 133, 134, 60, 1108, + 371, 372, 135, 32, 33, 34, 35, 127, 128, 1020, + 62, 561, 136, 420, 1021, 137, 1022, 422, 331, 421, + 332, 333, 138, 139, 334, 335, 336, 140, 1028, 423, + 141, 127, 128, 1029, 142, 150, 746, 747, 1059, 1177, + 1178, 1179, 91, 92, 93, 94, 95, 331, 353, 332, + 333, 354, 355, 430, 143, 144, 145, 146, 147, 148, + 127, 128, 970, 525, 93, 94, 95, 1192, 149, 726, + 727, 728, 729, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 431, 150, 749, 750, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 432, 236, 237, 238, + 512, 124, 127, 128, 439, 1193, 440, 1196, 150, 93, + 94, 95, 1197, 239, 441, 127, 128, 240, 241, 242, + 129, 124, 1184, 1185, 1186, 130, 131, 132, 567, 568, + 243, 442, 150, 244, 135, 127, 128, 443, 99, 100, + 101, 245, 880, 881, 882, 883, 884, 885, 544, 303, + 914, 915, 916, 1203, 444, 304, 305, 306, 307, 308, + 309, 150, 310, 310, 942, 123, 124, 331, 857, 858, + 859, 860, 1211, 861, 515, 527, 445, 1212, 1251, 1214, + 127, 128, 446, 1252, 151, 447, 143, 144, 448, 449, + 451, 452, 453, 224, 454, 455, 1111, 1112, 459, 460, + 461, 465, 470, 917, 471, 246, 472, 478, 294, 234, + 295, 485, 486, 487, 490, 496, 150, 289, 497, 311, + 498, 286, 499, 508, 301, 526, 569, 530, 534, 337, + 536, 318, 290, 338, 356, 313, 150, 288, 357, 535, + 538, 296, 250, 539, 284, 351, 319, 297, 235, 540, + 369, 358, 541, 574, 393, 546, 549, 551, 312, 359, + 287, 552, 555, 302, 556, 564, 570, 571, 572, 573, + 394, 291, 247, 575, 314, 576, 577, 578, 579, 580, + 581, 150, 248, 249, 352, 320, 582, 583, 584, 370, + 251, 585, 586, 252, 587, 588, 589, 594, 590, 591, + 253, 597, 592, 254, 600, 255, 256, 593, 601, 395, + 257, 258, 1215, 259, 127, 128, 260, 595, 261, 596, + 598, 262, 599, 263, 264, 602, 265, 603, 266, 267, + 604, 268, 605, 606, 269, 607, 279, 608, 609, 280, + 798, 281, 282, 610, 799, 800, 801, 802, 803, 804, + 805, 806, 807, 808, 809, 611, 612, 613, 810, 811, + 812, 813, 814, 614, 615, 616, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 617, + 618, 619, 620, 621, 622, 391, 392, 623, 624, 625, + 626, 627, 331, 151, 628, 224, 632, 633, 629, 630, + 635, 636, 637, 643, 644, 631, 645, 790, 646, 640, + 638, 234, 639, 647, 648, 150, 650, 641, 651, 649, + 91, 92, 93, 94, 95, 652, 654, 656, 657, 897, + 907, 658, 393, 659, 660, 661, 932, 662, 663, 665, + 666, 667, 668, 669, 670, 903, 908, 918, 394, 671, + 235, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 673, 674, 677, 678, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 675, 680, 681, 682, 124, + 331, 683, 684, 685, 904, 909, 919, 395, 686, 687, + 688, 689, 690, 127, 128, 691, 241, 692, 129, 693, + 694, 696, 697, 130, 131, 132, 150, 699, 243, 700, + 704, 244, 701, 702, 703, 705, 706, 707, 708, 245, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 709, 719, 710, 720, 717, 718, 721, + 722, 725, 731, 30, 732, 733, 734, 740, 741, 735, + 736, 737, 738, 739, 742, 743, 744, 752, 753, 754, + 755, 756, 757, 759, 143, 144, 760, 761, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 789, 784, + 794, 837, 841, 773, 774, 775, 845, 849, 853, 869, + 872, 776, 778, 876, 150, 927, 938, 779, 780, 957, + 958, 959, 960, 961, 786, 962, 787, 963, 788, 965, + 974, 975, 977, 978, 981, 980, 984, 1045, 983, 987, + 986, 994, 995, 997, 998, 1046, 999, 1000, 1001, 1002, + 1003, 1004, 1007, 1008, 1009, 1016, 1018, 1026, 1027, 1035, + 1030, 1034, 777, 1039, 1038, 1037, 1041, 1042, 1043, 1044, + 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1057, 1143, 1136, 1147, 1148, 1137, 1138, 1139, 1140, 246, + 1141, 1144, 337, 1145, 1150, 356, 338, 1151, 1067, 357, + 1094, 289, 1091, 1113, 1152, 286, 311, 1117, 351, 373, + 1105, 369, 358, 1153, 1103, 1122, 290, 1171, 318, 1120, + 359, 288, 313, 897, 1118, 1106, 250, 907, 284, 1172, + 1123, 1095, 1175, 319, 1168, 1071, 1158, 1102, 1169, 903, + 1159, 932, 1119, 908, 287, 312, 294, 352, 295, 918, + 370, 1194, 1160, 1104, 1195, 291, 247, 1199, 1121, 1200, + 1201, 314, 301, 1202, 1107, 1068, 248, 249, 1209, 1124, + 1114, 1217, 320, 1176, 251, 1069, 1070, 252, 904, 296, + 1115, 1116, 909, 1072, 253, 297, 1073, 254, 919, 255, + 256, 1161, 1181, 1074, 257, 258, 1075, 259, 1076, 1077, + 260, 302, 261, 1078, 1079, 262, 1080, 263, 264, 1081, + 265, 1082, 266, 267, 1083, 268, 1084, 1085, 269, 1086, + 279, 1087, 1088, 280, 1089, 281, 282, 1090, 1218, 1096, + 1182, 1220, 1097, 1222, 1098, 1099, 1225, 1227, 1247, 1248, + 1249, 1183, 1253, 1188, 1257, 791, 785, 634, 642, 946, + 793, 1040, 1060, 1058, 1135, 1110, 1146, 1134, 679, 1142, + 1062, 1061, 1216, 1189, 1190, 1064, 1063, 1109, 1173, 1191, + 1204, 1205, 1206, 1213, 653, 672, 1221, 1066, 1065, 676, + 1224, 1207, 1255, 655, 1226, 1133, 1174, 1256, 1254, 1259, + 1260, 943, 664, 1219, 1154, 1132, 1131, 926, 695, 698, + 792, 1223, 1245, 1149, 1258, 1167, 0, 0, 0, 1067, + 0, 1094, 0, 1091, 1113, 0, 0, 0, 1117, 1170, + 0, 1105, 0, 0, 1158, 1103, 1122, 0, 1159, 0, + 1120, 0, 0, 0, 0, 1118, 1106, 0, 0, 0, + 1160, 1123, 1095, 0, 0, 0, 1071, 0, 1102, 0, + 0, 0, 0, 1119, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1104, 0, 0, 0, 0, 1121, + 0, 0, 0, 0, 0, 1107, 1068, 0, 0, 1161, + 1124, 1114, 0, 0, 0, 0, 1069, 1070, 0, 0, + 0, 1115, 1116, 0, 1072, 0, 0, 1073, 0, 0, + 0, 0, 0, 0, 1074, 0, 0, 1075, 0, 1076, + 1077, 0, 0, 0, 1078, 1079, 0, 1080, 0, 0, + 1081, 0, 1082, 0, 0, 1083, 0, 1084, 1085, 0, + 1086, 0, 1087, 1088, 0, 1089, 0, 0, 1090, 0, + 1096, 0, 0, 1097, 0, 1098, 1099 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 64, 74, 708, 983, 69, 650, 71, 68, 69, 70, - 71, 656, 73, 74, 983, 76, 72, 983, 611, 69, - 69, 18, 74, 7, 69, 70, 71, 3, 88, 0, - 73, 74, 8, 5, 188, 7, 69, 9, 132, 133, - 202, 101, 102, 103, 69, 7, 71, 69, 202, 3, - 68, 69, 70, 71, 8, 73, 74, 117, 76, 7, - 120, 87, 69, 69, 71, 169, 170, 171, 172, 69, - 180, 7, 3, 183, 184, 185, 186, 8, 3, 12, - 13, 69, 69, 8, 69, 678, 3, 3, 69, 7, - 6, 8, 69, 7, 69, 122, 123, 124, 125, 69, - 127, 205, 69, 7, 69, 69, 69, 37, 202, 69, - 69, 7, 69, 3, 3, 7, 69, 69, 8, 8, - 69, 3, 69, 69, 69, 10, 8, 69, 69, 3, - 70, 15, 16, 11, 8, 19, 14, 7, 22, 23, - 24, 25, 202, 3, 3, 7, 6, 3, 26, 8, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 89, - 7, 91, 92, 3, 3, 95, 96, 97, 8, 8, - 167, 3, 102, 103, 102, 103, 8, 6, 3, 17, - 18, 6, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 3, 8, 3, 87, - 88, 8, 1192, 8, 89, 143, 144, 145, 102, 103, - 98, 99, 4, 1192, 102, 103, 1192, 102, 103, 107, - 202, 203, 204, 205, 112, 113, 114, 115, 116, 102, - 103, 129, 130, 121, 135, 136, 137, 138, 139, 140, - 3, 3, 3, 131, 3, 8, 134, 8, 4, 8, - 4, 3, 3, 141, 142, 971, 8, 8, 146, 4, - 4, 149, 202, 3, 202, 153, 102, 103, 8, 89, - 90, 91, 92, 93, 94, 3, 3, 150, 151, 152, - 8, 8, 102, 103, 4, 173, 174, 175, 176, 177, - 178, 132, 133, 3, 179, 3, 181, 182, 8, 187, - 8, 20, 21, 29, 30, 31, 32, 33, 202, 4, - 3, 147, 148, 3, 202, 8, 4, 202, 8, 108, - 109, 110, 111, 38, 39, 40, 31, 32, 33, 202, - 3, 8, 4, 6, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 4, 4, 420, 421, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 4, 84, 85, - 86, 4, 88, 52, 53, 54, 202, 4, 4, 4, - 4, 4, 4, 4, 100, 4, 102, 103, 104, 105, - 106, 107, 202, 88, 4, 4, 112, 113, 114, 4, - 4, 117, 4, 4, 120, 121, 4, 102, 103, 4, - 4, 4, 128, 4, 491, 4, 4, 4, 4, 4, - 3, 116, 4, 500, 8, 4, 3, 122, 123, 124, - 125, 126, 127, 8, 129, 512, 4, 4, 515, 500, - 515, 3, 8, 4, 4, 4, 4, 512, 4, 526, - 4, 512, 4, 4, 515, 202, 4, 173, 174, 536, - 4, 526, 512, 512, 541, 526, 4, 512, 541, 205, - 515, 4, 205, 205, 4, 536, 4, 4, 4, 512, - 541, 526, 500, 4, 561, 205, 202, 512, 203, 541, - 512, 203, 203, 536, 512, 203, 203, 515, 541, 203, - 561, 526, 204, 204, 203, 512, 512, 202, 526, 4, - 204, 203, 512, 203, 205, 4, 205, 205, 536, 526, - 4, 4, 4, 541, 512, 512, 1171, 512, 205, 205, - 205, 512, 4, 4, 203, 512, 4, 512, 4, 4, - 4, 205, 512, 561, 205, 512, 205, 512, 512, 512, - 4, 4, 512, 512, 4, 512, 4, 4, 203, 512, - 512, 4, 4, 512, 4, 512, 512, 512, 4, 4, - 512, 512, 4, 205, 205, 515, 31, 32, 33, 37, - 4, 4, 4, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 205, 4, 4, 55, 56, 57, - 58, 59, 205, 203, 203, 60, 61, 62, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 4, 4, 700, 4, 702, 4, 205, 4, 203, - 4, 89, 87, 88, 89, 699, 4, 4, 4, 4, - 4, 702, 4, 4, 4, 4, 4, 102, 103, 4, - 4, 4, 4, 203, 29, 30, 31, 32, 33, 736, - 737, 4, 739, 118, 119, 4, 743, 4, 205, 4, - 205, 205, 4, 4, 205, 736, 737, 738, 739, 4, - 4, 203, 4, 203, 702, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 203, 4, 4, 205, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 102, - 103, 205, 4, 88, 89, 4, 4, 4, 736, 737, - 738, 739, 4, 203, 4, 202, 7, 102, 103, 7, - 105, 7, 107, 7, 7, 202, 7, 112, 113, 114, - 202, 5, 117, 202, 202, 120, 202, 202, 5, 5, - 202, 5, 5, 128, 5, 7, 202, 5, 5, 5, - 5, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 7, 7, 7, 7, 7, 7, - 173, 174, 202, 202, 5, 202, 202, 202, 5, 202, - 202, 202, 7, 5, 7, 202, 202, 202, 173, 174, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 168, 202, 27, - 7, 202, 7, 7, 7, 7, 7, 202, 7, 7, - 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 203, 6, 3, 6, 6, 3, 6, 3, 3, 6, - 3, 678, 6, 3, 6, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 202, 6, - 203, 4, 6, 8, 4, 4, 4, 4, 205, 205, - 203, 4, 203, 203, 203, 4, 4, 4, 4, 203, - 203, 203, 203, 203, 203, 4, 4, 974, 203, 205, - 977, 203, 205, 980, 4, 203, 983, 980, 983, 974, - 4, 988, 205, 974, 991, 6, 977, 994, 983, 980, - 3, 8, 983, 988, 974, 974, 991, 988, 980, 974, - 991, 1008, 988, 983, 977, 1012, 4, 980, 983, 202, - 983, 974, 202, 988, 1021, 988, 991, 1008, 1025, 974, - 983, 1012, 974, 1030, 8, 1030, 974, 1018, 983, 977, - 1021, 983, 980, 988, 202, 983, 991, 974, 974, 1030, - 988, 4, 8, 991, 974, 202, 983, 983, 1021, 202, - 202, 988, 988, 983, 991, 1030, 974, 974, 988, 974, - 1008, 202, 202, 974, 1012, 983, 983, 974, 983, 974, - 1018, 988, 983, 1021, 974, 3, 983, 974, 983, 974, - 974, 974, 1030, 983, 974, 974, 983, 974, 983, 983, - 983, 974, 974, 983, 983, 974, 983, 974, 974, 974, - 983, 983, 974, 974, 983, 8, 983, 983, 983, 4, - 4, 983, 983, 983, 4, 4, 205, 5, 4, 4, - 7, 202, 4, 4, 4, 691, 700, 491, 789, 702, - 973, 500, 949, 968, 986, 1008, 544, 996, 994, 1003, - 202, 202, 974, 976, 512, 985, 202, 1192, 203, 203, - 202, 202, 979, 977, 982, 205, 1150, 536, 203, 202, - 1030, 202, 1030, 1032, 980, 526, 541, 515, 993, 1197, - 760, 1012, 565, 1018, 739, 701, 1207, 1227, 991, 989, - 561, 1247, -1, 1022, -1, 1192, -1, 1192, 1025, -1, - 1197, -1, -1, -1, -1, -1, -1, 1192, -1, -1, - 1207, 1192, 1197, -1, -1, -1, 1197, -1, -1, -1, - -1, 1197, 1192, -1, -1, -1, 1207, 1192, -1, 1192, - -1, -1, 1197, -1, 1197, -1, -1, -1, -1, 1192, - -1, -1, -1, -1, 1207, -1, -1, 1192, -1, -1, - 1192, -1, 1197, -1, 1192, -1, -1, -1, -1, 1197, - -1, -1, -1, -1, -1, 1192, 1192, -1, -1, 1207, - 1197, 1197, 1192, -1, -1, -1, -1, 1197, -1, -1, - -1, -1, -1, -1, 1192, 1192, -1, 1192, -1, -1, - 1197, 1192, -1, -1, -1, 1192, -1, 1192, -1, -1, - -1, -1, 1192, -1, -1, 1192, -1, 1192, 1192, 1192, - -1, -1, 1192, 1192, -1, 1192, -1, -1, -1, 1192, - 1192, -1, -1, 1192, -1, 1192, 1192, 1192, -1, -1, - 1192, 1192, 1192 + 73, 74, 64, 708, 69, 985, 71, 68, 69, 70, + 71, 985, 73, 74, 74, 76, 72, 650, 985, 69, + 18, 71, 74, 656, 69, 3, 70, 611, 203, 69, + 8, 69, 70, 71, 7, 5, 3, 7, 0, 9, + 3, 8, 89, 132, 133, 8, 68, 69, 70, 71, + 7, 73, 74, 88, 76, 102, 103, 7, 69, 69, + 71, 102, 103, 188, 189, 7, 101, 102, 103, 69, + 69, 3, 169, 170, 171, 172, 8, 69, 203, 3, + 69, 3, 117, 3, 8, 120, 8, 69, 8, 7, + 69, 3, 69, 69, 678, 10, 8, 69, 69, 3, + 69, 12, 13, 69, 8, 69, 147, 148, 69, 206, + 69, 69, 3, 69, 203, 69, 69, 8, 69, 3, + 7, 69, 11, 69, 8, 14, 69, 3, 69, 69, + 6, 3, 179, 3, 181, 182, 8, 26, 8, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 3, 3, + 15, 16, 6, 8, 19, 7, 203, 22, 23, 24, + 25, 3, 203, 7, 102, 103, 8, 3, 203, 167, + 6, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 87, 37, 180, 87, 88, + 183, 184, 185, 186, 7, 143, 144, 145, 3, 98, + 99, 6, 3, 102, 103, 3, 1196, 8, 107, 6, + 8, 7, 1196, 112, 113, 114, 115, 116, 7, 1196, + 132, 133, 121, 203, 204, 205, 206, 102, 103, 3, + 7, 3, 131, 3, 8, 134, 8, 8, 89, 4, + 91, 92, 141, 142, 95, 96, 97, 146, 3, 3, + 149, 102, 103, 8, 153, 203, 17, 18, 973, 38, + 39, 40, 29, 30, 31, 32, 33, 89, 90, 91, + 92, 93, 94, 4, 173, 174, 175, 176, 177, 178, + 102, 103, 3, 8, 31, 32, 33, 8, 187, 108, + 109, 110, 111, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 4, 203, 20, 21, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 4, 84, 85, 86, + 3, 88, 102, 103, 4, 8, 4, 3, 203, 31, + 32, 33, 8, 100, 4, 102, 103, 104, 105, 106, + 107, 88, 52, 53, 54, 112, 113, 114, 420, 421, + 117, 4, 203, 120, 121, 102, 103, 4, 60, 61, + 62, 128, 135, 136, 137, 138, 139, 140, 3, 116, + 150, 151, 152, 8, 4, 122, 123, 124, 125, 126, + 127, 203, 129, 129, 130, 87, 88, 89, 122, 123, + 124, 125, 3, 127, 3, 8, 4, 8, 3, 8, + 102, 103, 4, 8, 491, 4, 173, 174, 4, 4, + 4, 4, 4, 500, 4, 4, 118, 119, 4, 4, + 4, 4, 4, 203, 4, 512, 4, 4, 515, 500, + 515, 4, 4, 4, 4, 4, 203, 512, 4, 526, + 4, 512, 4, 4, 515, 3, 203, 4, 4, 536, + 3, 526, 512, 536, 541, 526, 203, 512, 541, 8, + 4, 515, 512, 4, 512, 536, 526, 515, 500, 8, + 541, 541, 3, 206, 561, 4, 4, 4, 526, 541, + 512, 4, 4, 515, 4, 4, 4, 4, 4, 4, + 561, 512, 512, 206, 526, 206, 4, 4, 4, 4, + 4, 203, 512, 512, 536, 526, 4, 204, 204, 541, + 512, 204, 204, 512, 204, 206, 205, 4, 205, 205, + 512, 206, 204, 512, 4, 512, 512, 204, 4, 561, + 512, 512, 1175, 512, 102, 103, 512, 204, 512, 204, + 206, 512, 206, 512, 512, 4, 512, 206, 512, 512, + 206, 512, 206, 4, 512, 4, 512, 4, 204, 512, + 37, 512, 512, 4, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 4, 4, 4, 55, 56, + 57, 58, 59, 206, 206, 206, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 4, + 4, 4, 4, 4, 204, 173, 174, 4, 4, 4, + 4, 4, 89, 700, 4, 702, 4, 4, 206, 206, + 4, 4, 4, 4, 4, 206, 4, 699, 4, 204, + 206, 702, 206, 4, 4, 203, 4, 204, 4, 204, + 29, 30, 31, 32, 33, 4, 4, 4, 4, 736, + 737, 4, 739, 4, 4, 4, 743, 4, 4, 4, + 4, 204, 4, 4, 4, 736, 737, 738, 739, 206, + 702, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 4, 206, 4, 4, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 206, 206, 4, 4, 88, + 89, 204, 4, 204, 736, 737, 738, 739, 204, 4, + 4, 206, 206, 102, 103, 4, 105, 4, 107, 4, + 4, 4, 204, 112, 113, 114, 203, 4, 117, 7, + 203, 120, 7, 7, 7, 203, 203, 7, 7, 128, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 5, 5, 203, 5, 203, 203, 5, + 5, 203, 5, 7, 5, 5, 5, 203, 203, 7, + 7, 7, 7, 7, 5, 7, 5, 203, 203, 203, + 5, 203, 203, 203, 173, 174, 7, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 5, 168, + 27, 7, 7, 203, 203, 203, 7, 7, 7, 7, + 7, 203, 203, 7, 203, 7, 7, 203, 203, 4, + 4, 4, 4, 4, 203, 4, 203, 4, 203, 4, + 6, 3, 6, 3, 3, 6, 3, 204, 6, 3, + 6, 6, 3, 6, 3, 206, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 203, 6, 678, 4, 6, 8, 4, 4, 4, 4, + 204, 206, 204, 204, 204, 4, 204, 4, 4, 4, + 4, 206, 204, 4, 4, 204, 204, 204, 204, 976, + 204, 204, 979, 204, 206, 982, 979, 4, 985, 982, + 985, 976, 985, 990, 204, 976, 993, 990, 979, 996, + 985, 982, 982, 4, 985, 990, 976, 6, 993, 990, + 982, 976, 993, 1010, 990, 985, 976, 1014, 976, 3, + 990, 985, 4, 993, 206, 985, 1023, 985, 206, 1010, + 1023, 1028, 990, 1014, 976, 993, 1033, 979, 1033, 1020, + 982, 8, 1023, 985, 8, 976, 976, 4, 990, 8, + 3, 993, 1033, 8, 985, 985, 976, 976, 4, 990, + 990, 4, 993, 203, 976, 985, 985, 976, 1010, 1033, + 990, 990, 1014, 985, 976, 1033, 985, 976, 1020, 976, + 976, 1023, 203, 985, 976, 976, 985, 976, 985, 985, + 976, 1033, 976, 985, 985, 976, 985, 976, 976, 985, + 976, 985, 976, 976, 985, 976, 985, 985, 976, 985, + 976, 985, 985, 976, 985, 976, 976, 985, 206, 985, + 203, 4, 985, 4, 985, 985, 5, 7, 4, 4, + 4, 203, 4, 203, 4, 700, 691, 491, 500, 789, + 702, 951, 975, 970, 998, 988, 1010, 996, 544, 1005, + 978, 976, 1196, 203, 203, 981, 979, 987, 1033, 203, + 203, 203, 203, 203, 512, 536, 204, 984, 982, 541, + 203, 1153, 204, 515, 203, 995, 1035, 204, 206, 203, + 203, 760, 526, 1201, 1020, 993, 991, 739, 561, 565, + 701, 1211, 1231, 1014, 1251, 1024, -1, -1, -1, 1196, + -1, 1196, -1, 1196, 1201, -1, -1, -1, 1201, 1028, + -1, 1196, -1, -1, 1211, 1196, 1201, -1, 1211, -1, + 1201, -1, -1, -1, -1, 1201, 1196, -1, -1, -1, + 1211, 1201, 1196, -1, -1, -1, 1196, -1, 1196, -1, + -1, -1, -1, 1201, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1196, -1, -1, -1, -1, 1201, + -1, -1, -1, -1, -1, 1196, 1196, -1, -1, 1211, + 1201, 1201, -1, -1, -1, -1, 1196, 1196, -1, -1, + -1, 1201, 1201, -1, 1196, -1, -1, 1196, -1, -1, + -1, -1, -1, -1, 1196, -1, -1, 1196, -1, 1196, + 1196, -1, -1, -1, 1196, 1196, -1, 1196, -1, -1, + 1196, -1, 1196, -1, -1, 1196, -1, 1196, 1196, -1, + 1196, -1, 1196, 1196, -1, 1196, -1, -1, 1196, -1, + 1196, -1, -1, 1196, -1, 1196, 1196 }; const short Dhcp4Parser::yystos_[] = { - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 0, 5, - 7, 9, 202, 203, 204, 205, 221, 222, 223, 228, - 7, 237, 7, 242, 7, 289, 7, 397, 7, 480, - 7, 496, 7, 432, 7, 438, 7, 462, 7, 373, - 7, 561, 7, 592, 229, 224, 238, 243, 290, 398, - 481, 497, 433, 439, 463, 374, 562, 593, 221, 230, - 231, 202, 226, 227, 10, 239, 241, 11, 14, 26, + 0, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 0, 5, + 7, 9, 203, 204, 205, 206, 222, 223, 224, 229, + 7, 238, 7, 243, 7, 290, 7, 398, 7, 481, + 7, 497, 7, 433, 7, 439, 7, 463, 7, 374, + 7, 562, 7, 593, 230, 225, 239, 244, 291, 399, + 482, 498, 434, 440, 464, 375, 563, 594, 222, 231, + 232, 203, 227, 228, 10, 240, 242, 11, 14, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 88, 98, 99, 102, 103, 107, 112, 113, 114, 115, 116, 121, 131, 134, 141, 142, 146, 149, 153, 173, 174, 175, 176, 177, 178, 187, - 202, 236, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 259, 260, 261, 262, - 263, 264, 265, 266, 269, 271, 273, 274, 275, 277, - 279, 280, 281, 282, 283, 284, 285, 303, 305, 311, - 313, 351, 360, 367, 381, 391, 415, 416, 417, 418, - 422, 430, 456, 486, 488, 490, 501, 503, 505, 528, - 540, 541, 549, 559, 590, 599, 623, 15, 16, 19, - 22, 23, 24, 25, 236, 287, 288, 291, 293, 296, - 299, 300, 301, 302, 486, 488, 84, 85, 86, 100, - 104, 105, 106, 117, 120, 128, 236, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 261, 262, 263, - 264, 265, 266, 269, 271, 273, 274, 275, 277, 279, - 399, 400, 401, 403, 405, 407, 409, 411, 413, 415, - 416, 417, 418, 421, 456, 474, 486, 488, 490, 501, - 503, 505, 525, 101, 236, 411, 413, 456, 482, 483, - 484, 486, 488, 116, 122, 123, 124, 125, 126, 127, - 129, 236, 456, 486, 488, 498, 499, 500, 501, 503, - 505, 507, 511, 513, 515, 517, 519, 521, 523, 430, - 37, 89, 91, 92, 95, 96, 97, 236, 331, 440, - 441, 442, 443, 444, 445, 446, 448, 450, 452, 453, - 455, 486, 488, 90, 93, 94, 236, 331, 444, 450, - 464, 465, 466, 467, 468, 470, 471, 472, 473, 486, - 488, 132, 133, 236, 375, 376, 377, 379, 154, 155, + 203, 237, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, + 264, 265, 266, 267, 270, 272, 274, 275, 276, 278, + 280, 281, 282, 283, 284, 285, 286, 304, 306, 312, + 314, 352, 361, 368, 382, 392, 416, 417, 418, 419, + 423, 431, 457, 487, 489, 491, 502, 504, 506, 529, + 541, 542, 550, 560, 591, 600, 624, 15, 16, 19, + 22, 23, 24, 25, 237, 288, 289, 292, 294, 297, + 300, 301, 302, 303, 487, 489, 84, 85, 86, 100, + 104, 105, 106, 117, 120, 128, 237, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 262, 263, 264, + 265, 266, 267, 270, 272, 274, 275, 276, 278, 280, + 400, 401, 402, 404, 406, 408, 410, 412, 414, 416, + 417, 418, 419, 422, 457, 475, 487, 489, 491, 502, + 504, 506, 526, 101, 237, 412, 414, 457, 483, 484, + 485, 487, 489, 116, 122, 123, 124, 125, 126, 127, + 129, 237, 457, 487, 489, 499, 500, 501, 502, 504, + 506, 508, 512, 514, 516, 518, 520, 522, 524, 431, + 37, 89, 91, 92, 95, 96, 97, 237, 332, 441, + 442, 443, 444, 445, 446, 447, 449, 451, 453, 454, + 456, 487, 489, 90, 93, 94, 237, 332, 445, 451, + 465, 466, 467, 468, 469, 471, 472, 473, 474, 487, + 489, 132, 133, 237, 376, 377, 378, 380, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 173, 174, 236, 486, 488, 563, 564, 565, 566, - 568, 569, 571, 572, 573, 576, 578, 580, 581, 582, - 584, 586, 588, 12, 13, 594, 595, 596, 598, 6, - 3, 4, 8, 3, 240, 3, 8, 591, 286, 306, - 4, 4, 4, 502, 504, 506, 304, 312, 314, 4, + 166, 173, 174, 237, 487, 489, 564, 565, 566, 567, + 569, 570, 572, 573, 574, 577, 579, 581, 582, 583, + 585, 587, 589, 12, 13, 595, 596, 597, 599, 6, + 3, 4, 8, 3, 241, 3, 8, 592, 287, 307, + 4, 4, 4, 503, 505, 507, 305, 313, 315, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 258, 4, 4, 4, 4, 4, 267, 270, 272, 4, - 4, 4, 392, 431, 457, 4, 423, 487, 489, 419, - 4, 4, 4, 352, 529, 491, 368, 382, 4, 361, - 542, 550, 560, 276, 278, 4, 4, 4, 600, 624, - 4, 3, 8, 292, 294, 297, 4, 4, 4, 4, - 3, 8, 404, 406, 408, 475, 402, 410, 4, 414, - 412, 526, 3, 8, 485, 3, 8, 524, 512, 514, - 518, 516, 522, 520, 508, 8, 3, 8, 447, 332, - 4, 451, 449, 454, 4, 8, 3, 469, 4, 4, - 8, 3, 378, 380, 3, 8, 4, 579, 567, 4, - 570, 4, 4, 574, 577, 4, 4, 583, 585, 587, - 589, 3, 8, 597, 4, 3, 8, 221, 221, 202, - 4, 4, 4, 4, 205, 205, 205, 4, 4, 4, - 4, 4, 4, 203, 203, 203, 203, 203, 205, 204, - 204, 204, 203, 203, 4, 203, 203, 205, 205, 205, - 4, 4, 4, 205, 205, 205, 4, 4, 4, 203, - 4, 4, 4, 4, 205, 205, 205, 4, 4, 4, - 4, 4, 203, 4, 4, 4, 4, 4, 4, 205, - 205, 205, 4, 4, 245, 4, 4, 4, 205, 205, - 203, 203, 288, 4, 4, 4, 4, 4, 4, 203, - 4, 4, 4, 400, 4, 483, 4, 4, 4, 4, - 4, 4, 4, 4, 500, 4, 4, 203, 4, 4, - 4, 205, 442, 4, 205, 205, 466, 4, 4, 376, - 205, 4, 4, 203, 4, 203, 203, 4, 4, 205, - 205, 4, 4, 4, 4, 564, 4, 203, 595, 4, - 7, 7, 7, 7, 202, 202, 202, 7, 7, 5, - 202, 169, 170, 171, 172, 205, 268, 202, 202, 5, - 5, 5, 5, 223, 225, 202, 108, 109, 110, 111, - 420, 5, 5, 5, 5, 7, 7, 7, 7, 7, - 202, 202, 5, 7, 5, 232, 17, 18, 295, 20, - 21, 298, 202, 202, 202, 5, 202, 202, 232, 202, - 7, 202, 232, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 225, 202, 202, - 202, 18, 167, 575, 168, 268, 202, 202, 202, 5, - 221, 244, 594, 287, 27, 307, 308, 309, 37, 41, + 259, 4, 4, 4, 4, 4, 268, 271, 273, 4, + 4, 4, 393, 432, 458, 4, 424, 488, 490, 420, + 4, 4, 4, 353, 530, 492, 369, 383, 4, 362, + 543, 551, 561, 277, 279, 4, 4, 4, 601, 625, + 4, 3, 8, 293, 295, 298, 4, 4, 4, 4, + 3, 8, 405, 407, 409, 476, 403, 411, 4, 415, + 413, 527, 3, 8, 486, 3, 8, 525, 513, 515, + 519, 517, 523, 521, 509, 8, 3, 8, 448, 333, + 4, 452, 450, 455, 4, 8, 3, 470, 4, 4, + 8, 3, 379, 381, 3, 8, 4, 580, 568, 4, + 571, 4, 4, 575, 578, 4, 4, 584, 586, 588, + 590, 3, 8, 598, 4, 3, 8, 222, 222, 203, + 4, 4, 4, 4, 206, 206, 206, 4, 4, 4, + 4, 4, 4, 204, 204, 204, 204, 204, 206, 205, + 205, 205, 204, 204, 4, 204, 204, 206, 206, 206, + 4, 4, 4, 206, 206, 206, 4, 4, 4, 204, + 4, 4, 4, 4, 206, 206, 206, 4, 4, 4, + 4, 4, 204, 4, 4, 4, 4, 4, 4, 206, + 206, 206, 4, 4, 246, 4, 4, 4, 206, 206, + 204, 204, 289, 4, 4, 4, 4, 4, 4, 204, + 4, 4, 4, 401, 4, 484, 4, 4, 4, 4, + 4, 4, 4, 4, 501, 4, 4, 204, 4, 4, + 4, 206, 443, 4, 206, 206, 467, 4, 4, 377, + 206, 4, 4, 204, 4, 204, 204, 4, 4, 206, + 206, 4, 4, 4, 4, 565, 4, 204, 596, 4, + 7, 7, 7, 7, 203, 203, 203, 7, 7, 5, + 203, 169, 170, 171, 172, 206, 269, 203, 203, 5, + 5, 5, 5, 224, 226, 203, 108, 109, 110, 111, + 421, 5, 5, 5, 5, 7, 7, 7, 7, 7, + 203, 203, 5, 7, 5, 233, 17, 18, 296, 20, + 21, 299, 203, 203, 203, 5, 203, 203, 233, 203, + 7, 203, 233, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 226, 203, 203, + 203, 18, 167, 576, 168, 269, 203, 203, 203, 5, + 222, 245, 595, 288, 27, 308, 309, 310, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 55, 56, 57, 58, 59, 236, 319, 320, 321, 324, - 326, 328, 330, 331, 333, 334, 335, 336, 337, 338, - 339, 342, 343, 345, 347, 349, 319, 7, 315, 316, - 317, 7, 393, 394, 395, 7, 434, 435, 436, 7, - 458, 459, 460, 7, 424, 425, 426, 122, 123, 124, - 125, 127, 353, 354, 355, 356, 357, 358, 359, 7, - 530, 531, 7, 492, 493, 494, 7, 369, 370, 371, - 135, 136, 137, 138, 139, 140, 383, 384, 385, 386, - 387, 388, 389, 390, 143, 144, 145, 236, 362, 363, - 364, 365, 366, 486, 488, 147, 148, 236, 486, 488, - 543, 544, 545, 547, 150, 151, 152, 202, 486, 488, - 551, 552, 553, 554, 556, 557, 563, 7, 601, 602, - 188, 236, 625, 626, 627, 233, 7, 476, 477, 478, - 130, 507, 509, 527, 315, 8, 8, 8, 310, 3, - 8, 322, 325, 327, 329, 4, 4, 4, 4, 4, - 4, 4, 340, 4, 344, 346, 348, 350, 3, 8, - 8, 318, 6, 3, 396, 6, 3, 437, 6, 3, - 461, 6, 3, 427, 6, 3, 3, 6, 532, 3, - 6, 495, 6, 3, 372, 6, 3, 4, 4, 4, - 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, - 546, 548, 3, 8, 4, 555, 4, 558, 3, 8, - 8, 603, 3, 6, 4, 3, 8, 202, 234, 235, - 479, 6, 3, 510, 8, 6, 4, 308, 4, 4, - 4, 4, 203, 205, 203, 205, 203, 203, 203, 4, - 203, 4, 4, 4, 4, 320, 319, 317, 399, 395, - 440, 436, 464, 460, 236, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 261, 262, 263, 264, 265, - 266, 269, 271, 273, 274, 275, 277, 279, 331, 391, - 409, 411, 413, 415, 416, 417, 418, 428, 429, 456, - 486, 488, 501, 503, 505, 525, 426, 354, 118, 119, - 236, 246, 247, 248, 331, 430, 456, 486, 488, 501, - 503, 505, 533, 534, 535, 536, 537, 539, 531, 498, - 494, 375, 371, 203, 203, 203, 203, 203, 203, 384, - 205, 203, 203, 363, 4, 4, 544, 205, 4, 203, - 4, 552, 179, 181, 182, 236, 331, 486, 488, 604, - 605, 606, 607, 609, 602, 205, 626, 6, 3, 482, - 478, 4, 202, 38, 39, 40, 323, 202, 202, 202, - 52, 53, 54, 341, 202, 202, 202, 202, 8, 8, - 8, 8, 3, 8, 538, 4, 8, 3, 8, 8, - 202, 202, 202, 221, 610, 4, 608, 3, 8, 202, - 8, 232, 429, 4, 205, 535, 4, 203, 4, 605, - 202, 5, 202, 7, 611, 612, 613, 3, 6, 180, - 183, 184, 185, 186, 614, 615, 616, 618, 619, 620, - 621, 612, 617, 4, 4, 4, 622, 3, 8, 4, - 205, 203, 203, 4, 615, 202, 202 + 55, 56, 57, 58, 59, 237, 320, 321, 322, 325, + 327, 329, 331, 332, 334, 335, 336, 337, 338, 339, + 340, 343, 344, 346, 348, 350, 320, 7, 316, 317, + 318, 7, 394, 395, 396, 7, 435, 436, 437, 7, + 459, 460, 461, 7, 425, 426, 427, 122, 123, 124, + 125, 127, 354, 355, 356, 357, 358, 359, 360, 7, + 531, 532, 7, 493, 494, 495, 7, 370, 371, 372, + 135, 136, 137, 138, 139, 140, 384, 385, 386, 387, + 388, 389, 390, 391, 143, 144, 145, 237, 363, 364, + 365, 366, 367, 487, 489, 147, 148, 237, 487, 489, + 544, 545, 546, 548, 150, 151, 152, 203, 487, 489, + 552, 553, 554, 555, 557, 558, 564, 7, 602, 603, + 188, 189, 237, 626, 627, 628, 629, 234, 7, 477, + 478, 479, 130, 508, 510, 528, 316, 8, 8, 8, + 311, 3, 8, 323, 326, 328, 330, 4, 4, 4, + 4, 4, 4, 4, 341, 4, 345, 347, 349, 351, + 3, 8, 8, 319, 6, 3, 397, 6, 3, 438, + 6, 3, 462, 6, 3, 428, 6, 3, 3, 6, + 533, 3, 6, 496, 6, 3, 373, 6, 3, 4, + 4, 4, 4, 4, 4, 3, 8, 4, 4, 4, + 3, 8, 547, 549, 3, 8, 4, 556, 4, 559, + 3, 8, 8, 604, 3, 6, 4, 4, 3, 8, + 203, 235, 236, 480, 6, 3, 511, 8, 6, 4, + 309, 4, 4, 4, 4, 204, 206, 204, 206, 204, + 204, 204, 4, 204, 4, 4, 4, 4, 321, 320, + 318, 400, 396, 441, 437, 465, 461, 237, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 262, 263, + 264, 265, 266, 267, 270, 272, 274, 275, 276, 278, + 280, 332, 392, 410, 412, 414, 416, 417, 418, 419, + 429, 430, 457, 487, 489, 502, 504, 506, 526, 427, + 355, 118, 119, 237, 247, 248, 249, 332, 431, 457, + 487, 489, 502, 504, 506, 534, 535, 536, 537, 538, + 540, 532, 499, 495, 376, 372, 204, 204, 204, 204, + 204, 204, 385, 206, 204, 204, 364, 4, 4, 545, + 206, 4, 204, 4, 553, 179, 181, 182, 237, 332, + 487, 489, 605, 606, 607, 608, 610, 603, 206, 206, + 627, 6, 3, 483, 479, 4, 203, 38, 39, 40, + 324, 203, 203, 203, 52, 53, 54, 342, 203, 203, + 203, 203, 8, 8, 8, 8, 3, 8, 539, 4, + 8, 3, 8, 8, 203, 203, 203, 222, 611, 4, + 609, 3, 8, 203, 8, 233, 430, 4, 206, 536, + 4, 204, 4, 606, 203, 5, 203, 7, 612, 613, + 614, 3, 6, 180, 183, 184, 185, 186, 615, 616, + 617, 619, 620, 621, 622, 613, 618, 4, 4, 4, + 623, 3, 8, 4, 206, 204, 204, 4, 616, 203, + 203 }; const short Dhcp4Parser::yyr1_[] = { - 0, 206, 208, 207, 209, 207, 210, 207, 211, 207, - 212, 207, 213, 207, 214, 207, 215, 207, 216, 207, - 217, 207, 218, 207, 219, 207, 220, 207, 221, 221, - 221, 221, 221, 221, 221, 222, 224, 223, 225, 226, - 226, 227, 227, 227, 229, 228, 230, 230, 231, 231, - 231, 233, 232, 234, 234, 235, 235, 235, 236, 238, - 237, 240, 239, 239, 241, 243, 242, 244, 244, 244, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 258, 257, 259, 260, 261, - 262, 263, 264, 265, 267, 266, 268, 268, 268, 268, - 268, 270, 269, 272, 271, 273, 274, 276, 275, 278, - 277, 279, 280, 281, 282, 283, 284, 286, 285, 287, - 287, 287, 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 290, 289, 292, 291, 294, 293, 295, 295, - 297, 296, 298, 298, 299, 300, 301, 302, 304, 303, - 306, 305, 307, 307, 307, 308, 310, 309, 312, 311, - 314, 313, 315, 315, 316, 316, 316, 318, 317, 319, - 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 322, 321, 323, 323, 323, 325, 324, 327, 326, - 329, 328, 330, 332, 331, 333, 334, 335, 336, 337, - 338, 340, 339, 341, 341, 341, 342, 344, 343, 346, - 345, 348, 347, 350, 349, 352, 351, 353, 353, 353, - 354, 354, 354, 354, 354, 355, 356, 357, 358, 359, - 361, 360, 362, 362, 362, 363, 363, 363, 363, 363, - 363, 364, 365, 366, 368, 367, 369, 369, 370, 370, - 370, 372, 371, 374, 373, 375, 375, 375, 375, 376, - 376, 378, 377, 380, 379, 382, 381, 383, 383, 383, - 384, 384, 384, 384, 384, 384, 385, 386, 387, 388, - 389, 390, 392, 391, 393, 393, 394, 394, 394, 396, - 395, 398, 397, 399, 399, 399, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 402, 401, 404, 403, 406, 405, 408, 407, 410, - 409, 412, 411, 414, 413, 415, 416, 417, 419, 418, - 420, 420, 420, 420, 421, 423, 422, 424, 424, 425, - 425, 425, 427, 426, 428, 428, 428, 429, 429, 429, - 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, - 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, - 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, - 429, 429, 429, 429, 429, 429, 429, 431, 430, 433, - 432, 434, 434, 435, 435, 435, 437, 436, 439, 438, - 440, 440, 441, 441, 441, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 443, 444, 445, 447, 446, - 449, 448, 451, 450, 452, 454, 453, 455, 457, 456, - 458, 458, 459, 459, 459, 461, 460, 463, 462, 464, - 464, 465, 465, 465, 466, 466, 466, 466, 466, 466, - 466, 466, 466, 467, 469, 468, 470, 471, 472, 473, - 475, 474, 476, 476, 477, 477, 477, 479, 478, 481, - 480, 482, 482, 482, 483, 483, 483, 483, 483, 483, - 483, 485, 484, 487, 486, 489, 488, 491, 490, 492, - 492, 493, 493, 493, 495, 494, 497, 496, 498, 498, - 499, 499, 499, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 502, 501, - 504, 503, 506, 505, 508, 507, 510, 509, 512, 511, - 514, 513, 516, 515, 518, 517, 520, 519, 522, 521, - 524, 523, 526, 525, 527, 527, 529, 528, 530, 530, - 530, 532, 531, 533, 533, 534, 534, 534, 535, 535, - 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, - 535, 535, 536, 538, 537, 539, 540, 542, 541, 543, - 543, 543, 544, 544, 544, 544, 544, 546, 545, 548, - 547, 550, 549, 551, 551, 551, 552, 552, 552, 552, - 552, 552, 553, 555, 554, 556, 558, 557, 560, 559, - 562, 561, 563, 563, 563, 564, 564, 564, 564, 564, - 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, - 564, 564, 564, 565, 567, 566, 568, 570, 569, 571, - 572, 574, 573, 575, 575, 577, 576, 579, 578, 580, - 581, 583, 582, 585, 584, 587, 586, 589, 588, 591, - 590, 593, 592, 594, 594, 594, 595, 595, 597, 596, - 598, 600, 599, 601, 601, 601, 603, 602, 604, 604, - 604, 605, 605, 605, 605, 605, 605, 605, 606, 608, - 607, 610, 609, 611, 611, 611, 613, 612, 614, 614, - 614, 615, 615, 615, 615, 615, 617, 616, 618, 619, - 620, 622, 621, 624, 623, 625, 625, 625, 626, 626, - 627 + 0, 207, 209, 208, 210, 208, 211, 208, 212, 208, + 213, 208, 214, 208, 215, 208, 216, 208, 217, 208, + 218, 208, 219, 208, 220, 208, 221, 208, 222, 222, + 222, 222, 222, 222, 222, 223, 225, 224, 226, 227, + 227, 228, 228, 228, 230, 229, 231, 231, 232, 232, + 232, 234, 233, 235, 235, 236, 236, 236, 237, 239, + 238, 241, 240, 240, 242, 244, 243, 245, 245, 245, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 259, 258, 260, 261, 262, + 263, 264, 265, 266, 268, 267, 269, 269, 269, 269, + 269, 271, 270, 273, 272, 274, 275, 277, 276, 279, + 278, 280, 281, 282, 283, 284, 285, 287, 286, 288, + 288, 288, 289, 289, 289, 289, 289, 289, 289, 289, + 289, 289, 291, 290, 293, 292, 295, 294, 296, 296, + 298, 297, 299, 299, 300, 301, 302, 303, 305, 304, + 307, 306, 308, 308, 308, 309, 311, 310, 313, 312, + 315, 314, 316, 316, 317, 317, 317, 319, 318, 320, + 320, 320, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 323, 322, 324, 324, 324, 326, 325, 328, 327, + 330, 329, 331, 333, 332, 334, 335, 336, 337, 338, + 339, 341, 340, 342, 342, 342, 343, 345, 344, 347, + 346, 349, 348, 351, 350, 353, 352, 354, 354, 354, + 355, 355, 355, 355, 355, 356, 357, 358, 359, 360, + 362, 361, 363, 363, 363, 364, 364, 364, 364, 364, + 364, 365, 366, 367, 369, 368, 370, 370, 371, 371, + 371, 373, 372, 375, 374, 376, 376, 376, 376, 377, + 377, 379, 378, 381, 380, 383, 382, 384, 384, 384, + 385, 385, 385, 385, 385, 385, 386, 387, 388, 389, + 390, 391, 393, 392, 394, 394, 395, 395, 395, 397, + 396, 399, 398, 400, 400, 400, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 403, 402, 405, 404, 407, 406, 409, 408, 411, + 410, 413, 412, 415, 414, 416, 417, 418, 420, 419, + 421, 421, 421, 421, 422, 424, 423, 425, 425, 426, + 426, 426, 428, 427, 429, 429, 429, 430, 430, 430, + 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, + 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, + 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, + 430, 430, 430, 430, 430, 430, 430, 432, 431, 434, + 433, 435, 435, 436, 436, 436, 438, 437, 440, 439, + 441, 441, 442, 442, 442, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 444, 445, 446, 448, 447, + 450, 449, 452, 451, 453, 455, 454, 456, 458, 457, + 459, 459, 460, 460, 460, 462, 461, 464, 463, 465, + 465, 466, 466, 466, 467, 467, 467, 467, 467, 467, + 467, 467, 467, 468, 470, 469, 471, 472, 473, 474, + 476, 475, 477, 477, 478, 478, 478, 480, 479, 482, + 481, 483, 483, 483, 484, 484, 484, 484, 484, 484, + 484, 486, 485, 488, 487, 490, 489, 492, 491, 493, + 493, 494, 494, 494, 496, 495, 498, 497, 499, 499, + 500, 500, 500, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 503, 502, + 505, 504, 507, 506, 509, 508, 511, 510, 513, 512, + 515, 514, 517, 516, 519, 518, 521, 520, 523, 522, + 525, 524, 527, 526, 528, 528, 530, 529, 531, 531, + 531, 533, 532, 534, 534, 535, 535, 535, 536, 536, + 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, + 536, 536, 537, 539, 538, 540, 541, 543, 542, 544, + 544, 544, 545, 545, 545, 545, 545, 547, 546, 549, + 548, 551, 550, 552, 552, 552, 553, 553, 553, 553, + 553, 553, 554, 556, 555, 557, 559, 558, 561, 560, + 563, 562, 564, 564, 564, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 566, 568, 567, 569, 571, 570, 572, + 573, 575, 574, 576, 576, 578, 577, 580, 579, 581, + 582, 584, 583, 586, 585, 588, 587, 590, 589, 592, + 591, 594, 593, 595, 595, 595, 596, 596, 598, 597, + 599, 601, 600, 602, 602, 602, 604, 603, 605, 605, + 605, 606, 606, 606, 606, 606, 606, 606, 607, 609, + 608, 611, 610, 612, 612, 612, 614, 613, 615, 615, + 615, 616, 616, 616, 616, 616, 618, 617, 619, 620, + 621, 623, 622, 625, 624, 626, 626, 626, 627, 627, + 627, 628, 629 }; const signed char @@ -5833,7 +5846,7 @@ namespace isc { namespace dhcp { 4, 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, 4, 0, 6, 1, 3, 2, 1, 1, - 3 + 1, 3, 3 }; @@ -5904,15 +5917,15 @@ namespace isc { namespace dhcp { "\"reservations-lookup-first\"", "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "\"compatibility\"", - "\"lenient-option-parsing\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", - "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4", "SUB_POOL4", - "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF", - "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", - "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"", - "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", - "$@13", "value", "sub_json", "map2", "$@14", "map_value", "map_content", - "not_empty_map", "list_generic", "$@15", "list_content", + "\"lenient-option-parsing\"", "\"ignore-rai-link-selection\"", + "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", + "SUB_SUBNET4", "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEFS", + "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", + "SUB_DHCP_DDNS", "SUB_CONFIG_CONTROL", "\"constant string\"", + "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", + "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", + "$@11", "$@12", "$@13", "value", "sub_json", "map2", "$@14", "map_value", + "map_content", "not_empty_map", "list_generic", "$@15", "list_content", "not_empty_list", "list_strings", "$@16", "list_strings_content", "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@17", "global_object", "$@18", "global_object_comma", "sub_dhcp4", "$@19", @@ -6014,7 +6027,8 @@ namespace isc { namespace dhcp { "output_options_list_content", "output_entry", "$@129", "output_params_list", "output_params", "output", "$@130", "flush", "maxsize", "maxver", "pattern", "$@131", "compatibility", "$@132", - "compatibility_params", "compatibility_param", "lenient_option_parsing", YY_NULLPTR + "compatibility_params", "compatibility_param", "lenient_option_parsing", + "ignore-rai-link-selection", YY_NULLPTR }; #endif @@ -6023,89 +6037,89 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 295, 295, 295, 296, 296, 297, 297, 298, 298, - 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, - 304, 304, 305, 305, 306, 306, 307, 307, 315, 316, - 317, 318, 319, 320, 321, 324, 329, 329, 340, 343, - 344, 347, 352, 358, 363, 363, 370, 371, 374, 378, - 382, 388, 388, 395, 396, 399, 403, 407, 417, 426, - 426, 441, 441, 455, 458, 464, 464, 473, 474, 475, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 548, 554, 560, 566, 572, 578, - 584, 590, 596, 602, 608, 614, 614, 623, 629, 635, - 641, 647, 653, 659, 665, 665, 674, 677, 680, 683, - 686, 692, 692, 701, 701, 710, 716, 722, 722, 731, - 731, 740, 746, 752, 758, 764, 770, 776, 776, 788, - 789, 790, 795, 796, 797, 798, 799, 800, 801, 802, - 803, 804, 807, 807, 816, 816, 827, 827, 835, 836, - 839, 839, 847, 849, 853, 859, 865, 871, 877, 877, - 890, 890, 901, 902, 903, 908, 910, 910, 929, 929, - 942, 942, 953, 954, 957, 958, 959, 964, 964, 974, - 975, 976, 981, 982, 983, 984, 985, 986, 987, 988, - 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, - 999, 1002, 1002, 1010, 1011, 1012, 1015, 1015, 1024, 1024, - 1033, 1033, 1042, 1048, 1048, 1057, 1063, 1069, 1075, 1081, - 1087, 1093, 1093, 1101, 1102, 1103, 1106, 1112, 1112, 1121, - 1121, 1130, 1130, 1139, 1139, 1148, 1148, 1159, 1160, 1161, - 1166, 1167, 1168, 1169, 1170, 1173, 1178, 1183, 1188, 1193, - 1200, 1200, 1213, 1214, 1215, 1220, 1221, 1222, 1223, 1224, - 1225, 1228, 1234, 1240, 1246, 1246, 1257, 1258, 1261, 1262, - 1263, 1268, 1268, 1278, 1278, 1288, 1289, 1290, 1293, 1296, - 1297, 1300, 1300, 1309, 1309, 1318, 1318, 1330, 1331, 1332, - 1337, 1338, 1339, 1340, 1341, 1342, 1345, 1351, 1357, 1363, - 1369, 1375, 1384, 1384, 1398, 1399, 1402, 1403, 1404, 1413, - 1413, 1439, 1439, 1450, 1451, 1452, 1458, 1459, 1460, 1461, - 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, - 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, - 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, - 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, - 1502, 1505, 1505, 1514, 1514, 1523, 1523, 1532, 1532, 1541, - 1541, 1550, 1550, 1559, 1559, 1570, 1576, 1582, 1588, 1588, - 1596, 1597, 1598, 1599, 1602, 1610, 1610, 1622, 1623, 1627, - 1628, 1629, 1634, 1634, 1642, 1643, 1644, 1649, 1650, 1651, - 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, - 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1695, 1695, 1709, - 1709, 1718, 1719, 1722, 1723, 1724, 1731, 1731, 1746, 1746, - 1760, 1761, 1764, 1765, 1766, 1771, 1772, 1773, 1774, 1775, - 1776, 1777, 1778, 1779, 1780, 1783, 1785, 1791, 1793, 1793, - 1802, 1802, 1811, 1811, 1820, 1822, 1822, 1831, 1841, 1841, - 1854, 1855, 1860, 1861, 1862, 1869, 1869, 1881, 1881, 1893, - 1894, 1899, 1900, 1901, 1908, 1909, 1910, 1911, 1912, 1913, - 1914, 1915, 1916, 1919, 1921, 1921, 1930, 1932, 1934, 1940, - 1949, 1949, 1962, 1963, 1966, 1967, 1968, 1973, 1973, 1983, - 1983, 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2009, 2009, 2018, 2018, 2043, 2043, 2073, 2073, 2084, - 2085, 2088, 2089, 2090, 2095, 2095, 2104, 2104, 2113, 2114, - 2117, 2118, 2119, 2125, 2126, 2127, 2128, 2129, 2130, 2131, - 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2142, 2142, - 2151, 2151, 2160, 2160, 2169, 2169, 2178, 2178, 2189, 2189, - 2198, 2198, 2207, 2207, 2216, 2216, 2225, 2225, 2234, 2234, - 2243, 2243, 2257, 2257, 2268, 2269, 2275, 2275, 2286, 2287, - 2288, 2293, 2293, 2303, 2304, 2307, 2308, 2309, 2314, 2315, - 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, - 2326, 2327, 2330, 2332, 2332, 2341, 2349, 2357, 2357, 2368, - 2369, 2370, 2375, 2376, 2377, 2378, 2379, 2382, 2382, 2391, - 2391, 2403, 2403, 2416, 2417, 2418, 2423, 2424, 2425, 2426, - 2427, 2428, 2431, 2437, 2437, 2446, 2452, 2452, 2462, 2462, - 2475, 2475, 2485, 2486, 2487, 2492, 2493, 2494, 2495, 2496, - 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, - 2507, 2508, 2509, 2512, 2518, 2518, 2527, 2533, 2533, 2542, - 2548, 2554, 2554, 2563, 2564, 2567, 2567, 2577, 2577, 2587, - 2594, 2601, 2601, 2610, 2610, 2620, 2620, 2630, 2630, 2642, - 2642, 2654, 2654, 2664, 2665, 2666, 2672, 2673, 2676, 2676, - 2687, 2695, 2695, 2708, 2709, 2710, 2716, 2716, 2724, 2725, - 2726, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2740, 2746, - 2746, 2755, 2755, 2766, 2767, 2768, 2773, 2773, 2781, 2782, - 2783, 2788, 2789, 2790, 2791, 2792, 2795, 2795, 2804, 2810, - 2816, 2822, 2822, 2831, 2831, 2842, 2843, 2844, 2849, 2850, - 2853 + 0, 296, 296, 296, 297, 297, 298, 298, 299, 299, + 300, 300, 301, 301, 302, 302, 303, 303, 304, 304, + 305, 305, 306, 306, 307, 307, 308, 308, 316, 317, + 318, 319, 320, 321, 322, 325, 330, 330, 341, 344, + 345, 348, 353, 359, 364, 364, 371, 372, 375, 379, + 383, 389, 389, 396, 397, 400, 404, 408, 418, 427, + 427, 442, 442, 456, 459, 465, 465, 474, 475, 476, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 549, 555, 561, 567, 573, 579, + 585, 591, 597, 603, 609, 615, 615, 624, 630, 636, + 642, 648, 654, 660, 666, 666, 675, 678, 681, 684, + 687, 693, 693, 702, 702, 711, 717, 723, 723, 732, + 732, 741, 747, 753, 759, 765, 771, 777, 777, 789, + 790, 791, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 808, 808, 817, 817, 828, 828, 836, 837, + 840, 840, 848, 850, 854, 860, 866, 872, 878, 878, + 891, 891, 902, 903, 904, 909, 911, 911, 930, 930, + 943, 943, 954, 955, 958, 959, 960, 965, 965, 975, + 976, 977, 982, 983, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, + 1000, 1003, 1003, 1011, 1012, 1013, 1016, 1016, 1025, 1025, + 1034, 1034, 1043, 1049, 1049, 1058, 1064, 1070, 1076, 1082, + 1088, 1094, 1094, 1102, 1103, 1104, 1107, 1113, 1113, 1122, + 1122, 1131, 1131, 1140, 1140, 1149, 1149, 1160, 1161, 1162, + 1167, 1168, 1169, 1170, 1171, 1174, 1179, 1184, 1189, 1194, + 1201, 1201, 1214, 1215, 1216, 1221, 1222, 1223, 1224, 1225, + 1226, 1229, 1235, 1241, 1247, 1247, 1258, 1259, 1262, 1263, + 1264, 1269, 1269, 1279, 1279, 1289, 1290, 1291, 1294, 1297, + 1298, 1301, 1301, 1310, 1310, 1319, 1319, 1331, 1332, 1333, + 1338, 1339, 1340, 1341, 1342, 1343, 1346, 1352, 1358, 1364, + 1370, 1376, 1385, 1385, 1399, 1400, 1403, 1404, 1405, 1414, + 1414, 1440, 1440, 1451, 1452, 1453, 1459, 1460, 1461, 1462, + 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, + 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, + 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, + 1503, 1506, 1506, 1515, 1515, 1524, 1524, 1533, 1533, 1542, + 1542, 1551, 1551, 1560, 1560, 1571, 1577, 1583, 1589, 1589, + 1597, 1598, 1599, 1600, 1603, 1611, 1611, 1623, 1624, 1628, + 1629, 1630, 1635, 1635, 1643, 1644, 1645, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, + 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, + 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, + 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1696, 1696, 1710, + 1710, 1719, 1720, 1723, 1724, 1725, 1732, 1732, 1747, 1747, + 1761, 1762, 1765, 1766, 1767, 1772, 1773, 1774, 1775, 1776, + 1777, 1778, 1779, 1780, 1781, 1784, 1786, 1792, 1794, 1794, + 1803, 1803, 1812, 1812, 1821, 1823, 1823, 1832, 1842, 1842, + 1855, 1856, 1861, 1862, 1863, 1870, 1870, 1882, 1882, 1894, + 1895, 1900, 1901, 1902, 1909, 1910, 1911, 1912, 1913, 1914, + 1915, 1916, 1917, 1920, 1922, 1922, 1931, 1933, 1935, 1941, + 1950, 1950, 1963, 1964, 1967, 1968, 1969, 1974, 1974, 1984, + 1984, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2010, 2010, 2019, 2019, 2044, 2044, 2074, 2074, 2085, + 2086, 2089, 2090, 2091, 2096, 2096, 2105, 2105, 2114, 2115, + 2118, 2119, 2120, 2126, 2127, 2128, 2129, 2130, 2131, 2132, + 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2143, 2143, + 2152, 2152, 2161, 2161, 2170, 2170, 2179, 2179, 2190, 2190, + 2199, 2199, 2208, 2208, 2217, 2217, 2226, 2226, 2235, 2235, + 2244, 2244, 2258, 2258, 2269, 2270, 2276, 2276, 2287, 2288, + 2289, 2294, 2294, 2304, 2305, 2308, 2309, 2310, 2315, 2316, + 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, + 2327, 2328, 2331, 2333, 2333, 2342, 2350, 2358, 2358, 2369, + 2370, 2371, 2376, 2377, 2378, 2379, 2380, 2383, 2383, 2392, + 2392, 2404, 2404, 2417, 2418, 2419, 2424, 2425, 2426, 2427, + 2428, 2429, 2432, 2438, 2438, 2447, 2453, 2453, 2463, 2463, + 2476, 2476, 2486, 2487, 2488, 2493, 2494, 2495, 2496, 2497, + 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, + 2508, 2509, 2510, 2513, 2519, 2519, 2528, 2534, 2534, 2543, + 2549, 2555, 2555, 2564, 2565, 2568, 2568, 2578, 2578, 2588, + 2595, 2602, 2602, 2611, 2611, 2621, 2621, 2631, 2631, 2643, + 2643, 2655, 2655, 2665, 2666, 2667, 2673, 2674, 2677, 2677, + 2688, 2696, 2696, 2709, 2710, 2711, 2717, 2717, 2725, 2726, + 2727, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2741, 2747, + 2747, 2756, 2756, 2767, 2768, 2769, 2774, 2774, 2782, 2783, + 2784, 2789, 2790, 2791, 2792, 2793, 2796, 2796, 2805, 2811, + 2817, 2823, 2823, 2832, 2832, 2843, 2844, 2845, 2850, 2851, + 2852, 2855, 2861 }; void @@ -6138,9 +6152,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6142 "dhcp4_parser.cc" +#line 6156 "dhcp4_parser.cc" -#line 2859 "dhcp4_parser.yy" +#line 2867 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 86587e3a32..e1c328b6ec 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -685,23 +685,24 @@ namespace isc { namespace dhcp { TOKEN_PATTERN = 441, // "pattern" TOKEN_COMPATIBILITY = 442, // "compatibility" TOKEN_LENIENT_OPTION_PARSING = 443, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 444, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 445, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 446, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 447, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 448, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 449, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 450, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 451, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 452, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 453, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 454, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 455, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 456, // SUB_CONFIG_CONTROL - TOKEN_STRING = 457, // "constant string" - TOKEN_INTEGER = 458, // "integer" - TOKEN_FLOAT = 459, // "floating point" - TOKEN_BOOLEAN = 460 // "boolean" + TOKEN_IGNORE_RAI_LINK_SEL = 444, // "ignore-rai-link-selection" + TOKEN_TOPLEVEL_JSON = 445, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 446, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 447, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 448, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 449, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 450, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 451, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 452, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 453, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 454, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 455, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 456, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 457, // SUB_CONFIG_CONTROL + TOKEN_STRING = 458, // "constant string" + TOKEN_INTEGER = 459, // "integer" + TOKEN_FLOAT = 460, // "floating point" + TOKEN_BOOLEAN = 461 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -718,7 +719,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 206, ///< Number of tokens. + YYNTOKENS = 207, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -909,445 +910,447 @@ namespace isc { namespace dhcp { S_PATTERN = 186, // "pattern" S_COMPATIBILITY = 187, // "compatibility" S_LENIENT_OPTION_PARSING = 188, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 189, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 190, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 191, // SUB_DHCP4 - S_SUB_INTERFACES4 = 192, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 193, // SUB_SUBNET4 - S_SUB_POOL4 = 194, // SUB_POOL4 - S_SUB_RESERVATION = 195, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 196, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 197, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 198, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 199, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 200, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 201, // SUB_CONFIG_CONTROL - S_STRING = 202, // "constant string" - S_INTEGER = 203, // "integer" - S_FLOAT = 204, // "floating point" - S_BOOLEAN = 205, // "boolean" - S_YYACCEPT = 206, // $accept - S_start = 207, // start - S_208_1 = 208, // $@1 - S_209_2 = 209, // $@2 - S_210_3 = 210, // $@3 - S_211_4 = 211, // $@4 - S_212_5 = 212, // $@5 - S_213_6 = 213, // $@6 - S_214_7 = 214, // $@7 - S_215_8 = 215, // $@8 - S_216_9 = 216, // $@9 - S_217_10 = 217, // $@10 - S_218_11 = 218, // $@11 - S_219_12 = 219, // $@12 - S_220_13 = 220, // $@13 - S_value = 221, // value - S_sub_json = 222, // sub_json - S_map2 = 223, // map2 - S_224_14 = 224, // $@14 - S_map_value = 225, // map_value - S_map_content = 226, // map_content - S_not_empty_map = 227, // not_empty_map - S_list_generic = 228, // list_generic - S_229_15 = 229, // $@15 - S_list_content = 230, // list_content - S_not_empty_list = 231, // not_empty_list - S_list_strings = 232, // list_strings - S_233_16 = 233, // $@16 - S_list_strings_content = 234, // list_strings_content - S_not_empty_list_strings = 235, // not_empty_list_strings - S_unknown_map_entry = 236, // unknown_map_entry - S_syntax_map = 237, // syntax_map - S_238_17 = 238, // $@17 - S_global_object = 239, // global_object - S_240_18 = 240, // $@18 - S_global_object_comma = 241, // global_object_comma - S_sub_dhcp4 = 242, // sub_dhcp4 - S_243_19 = 243, // $@19 - S_global_params = 244, // global_params - S_global_param = 245, // global_param - S_valid_lifetime = 246, // valid_lifetime - S_min_valid_lifetime = 247, // min_valid_lifetime - S_max_valid_lifetime = 248, // max_valid_lifetime - S_renew_timer = 249, // renew_timer - S_rebind_timer = 250, // rebind_timer - S_calculate_tee_times = 251, // calculate_tee_times - S_t1_percent = 252, // t1_percent - S_t2_percent = 253, // t2_percent - S_cache_threshold = 254, // cache_threshold - S_cache_max_age = 255, // cache_max_age - S_decline_probation_period = 256, // decline_probation_period - S_server_tag = 257, // server_tag - S_258_20 = 258, // $@20 - S_parked_packet_limit = 259, // parked_packet_limit - S_echo_client_id = 260, // echo_client_id - S_match_client_id = 261, // match_client_id - S_authoritative = 262, // authoritative - S_ddns_send_updates = 263, // ddns_send_updates - S_ddns_override_no_update = 264, // ddns_override_no_update - S_ddns_override_client_update = 265, // ddns_override_client_update - S_ddns_replace_client_name = 266, // ddns_replace_client_name - S_267_21 = 267, // $@21 - S_ddns_replace_client_name_value = 268, // ddns_replace_client_name_value - S_ddns_generated_prefix = 269, // ddns_generated_prefix - S_270_22 = 270, // $@22 - S_ddns_qualifying_suffix = 271, // ddns_qualifying_suffix - S_272_23 = 272, // $@23 - S_ddns_update_on_renew = 273, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 274, // ddns_use_conflict_resolution - S_hostname_char_set = 275, // hostname_char_set - S_276_24 = 276, // $@24 - S_hostname_char_replacement = 277, // hostname_char_replacement - S_278_25 = 278, // $@25 - S_store_extended_info = 279, // store_extended_info - S_statistic_default_sample_count = 280, // statistic_default_sample_count - S_statistic_default_sample_age = 281, // statistic_default_sample_age - S_early_global_reservations_lookup = 282, // early_global_reservations_lookup - S_ip_reservations_unique = 283, // ip_reservations_unique - S_reservations_lookup_first = 284, // reservations_lookup_first - S_interfaces_config = 285, // interfaces_config - S_286_26 = 286, // $@26 - S_interfaces_config_params = 287, // interfaces_config_params - S_interfaces_config_param = 288, // interfaces_config_param - S_sub_interfaces4 = 289, // sub_interfaces4 - S_290_27 = 290, // $@27 - S_interfaces_list = 291, // interfaces_list - S_292_28 = 292, // $@28 - S_dhcp_socket_type = 293, // dhcp_socket_type - S_294_29 = 294, // $@29 - S_socket_type = 295, // socket_type - S_outbound_interface = 296, // outbound_interface - S_297_30 = 297, // $@30 - S_outbound_interface_value = 298, // outbound_interface_value - S_re_detect = 299, // re_detect - S_service_sockets_require_all = 300, // service_sockets_require_all - S_service_sockets_retry_wait_time = 301, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 302, // service_sockets_max_retries - S_lease_database = 303, // lease_database - S_304_31 = 304, // $@31 - S_sanity_checks = 305, // sanity_checks - S_306_32 = 306, // $@32 - S_sanity_checks_params = 307, // sanity_checks_params - S_sanity_checks_param = 308, // sanity_checks_param - S_lease_checks = 309, // lease_checks - S_310_33 = 310, // $@33 - S_hosts_database = 311, // hosts_database - S_312_34 = 312, // $@34 - S_hosts_databases = 313, // hosts_databases - S_314_35 = 314, // $@35 - S_database_list = 315, // database_list - S_not_empty_database_list = 316, // not_empty_database_list - S_database = 317, // database - S_318_36 = 318, // $@36 - S_database_map_params = 319, // database_map_params - S_database_map_param = 320, // database_map_param - S_database_type = 321, // database_type - S_322_37 = 322, // $@37 - S_db_type = 323, // db_type - S_user = 324, // user - S_325_38 = 325, // $@38 - S_password = 326, // password - S_327_39 = 327, // $@39 - S_host = 328, // host - S_329_40 = 329, // $@40 - S_port = 330, // port - S_name = 331, // name - S_332_41 = 332, // $@41 - S_persist = 333, // persist - S_lfc_interval = 334, // lfc_interval - S_readonly = 335, // readonly - S_connect_timeout = 336, // connect_timeout - S_max_reconnect_tries = 337, // max_reconnect_tries - S_reconnect_wait_time = 338, // reconnect_wait_time - S_on_fail = 339, // on_fail - S_340_42 = 340, // $@42 - S_on_fail_mode = 341, // on_fail_mode - S_max_row_errors = 342, // max_row_errors - S_trust_anchor = 343, // trust_anchor - S_344_43 = 344, // $@43 - S_cert_file = 345, // cert_file - S_346_44 = 346, // $@44 - S_key_file = 347, // key_file - S_348_45 = 348, // $@45 - S_cipher_list = 349, // cipher_list - S_350_46 = 350, // $@46 - S_host_reservation_identifiers = 351, // host_reservation_identifiers - S_352_47 = 352, // $@47 - S_host_reservation_identifiers_list = 353, // host_reservation_identifiers_list - S_host_reservation_identifier = 354, // host_reservation_identifier - S_duid_id = 355, // duid_id - S_hw_address_id = 356, // hw_address_id - S_circuit_id = 357, // circuit_id - S_client_id = 358, // client_id - S_flex_id = 359, // flex_id - S_dhcp_multi_threading = 360, // dhcp_multi_threading - S_361_48 = 361, // $@48 - S_multi_threading_params = 362, // multi_threading_params - S_multi_threading_param = 363, // multi_threading_param - S_enable_multi_threading = 364, // enable_multi_threading - S_thread_pool_size = 365, // thread_pool_size - S_packet_queue_size = 366, // packet_queue_size - S_hooks_libraries = 367, // hooks_libraries - S_368_49 = 368, // $@49 - S_hooks_libraries_list = 369, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 370, // not_empty_hooks_libraries_list - S_hooks_library = 371, // hooks_library - S_372_50 = 372, // $@50 - S_sub_hooks_library = 373, // sub_hooks_library - S_374_51 = 374, // $@51 - S_hooks_params = 375, // hooks_params - S_hooks_param = 376, // hooks_param - S_library = 377, // library - S_378_52 = 378, // $@52 - S_parameters = 379, // parameters - S_380_53 = 380, // $@53 - S_expired_leases_processing = 381, // expired_leases_processing - S_382_54 = 382, // $@54 - S_expired_leases_params = 383, // expired_leases_params - S_expired_leases_param = 384, // expired_leases_param - S_reclaim_timer_wait_time = 385, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 386, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 387, // hold_reclaimed_time - S_max_reclaim_leases = 388, // max_reclaim_leases - S_max_reclaim_time = 389, // max_reclaim_time - S_unwarned_reclaim_cycles = 390, // unwarned_reclaim_cycles - S_subnet4_list = 391, // subnet4_list - S_392_55 = 392, // $@55 - S_subnet4_list_content = 393, // subnet4_list_content - S_not_empty_subnet4_list = 394, // not_empty_subnet4_list - S_subnet4 = 395, // subnet4 - S_396_56 = 396, // $@56 - S_sub_subnet4 = 397, // sub_subnet4 - S_398_57 = 398, // $@57 - S_subnet4_params = 399, // subnet4_params - S_subnet4_param = 400, // subnet4_param - S_subnet = 401, // subnet - S_402_58 = 402, // $@58 - S_subnet_4o6_interface = 403, // subnet_4o6_interface - S_404_59 = 404, // $@59 - S_subnet_4o6_interface_id = 405, // subnet_4o6_interface_id - S_406_60 = 406, // $@60 - S_subnet_4o6_subnet = 407, // subnet_4o6_subnet - S_408_61 = 408, // $@61 - S_interface = 409, // interface - S_410_62 = 410, // $@62 - S_client_class = 411, // client_class - S_412_63 = 412, // $@63 - S_require_client_classes = 413, // require_client_classes - S_414_64 = 414, // $@64 - S_reservations_global = 415, // reservations_global - S_reservations_in_subnet = 416, // reservations_in_subnet - S_reservations_out_of_pool = 417, // reservations_out_of_pool - S_reservation_mode = 418, // reservation_mode - S_419_65 = 419, // $@65 - S_hr_mode = 420, // hr_mode - S_id = 421, // id - S_shared_networks = 422, // shared_networks - S_423_66 = 423, // $@66 - S_shared_networks_content = 424, // shared_networks_content - S_shared_networks_list = 425, // shared_networks_list - S_shared_network = 426, // shared_network - S_427_67 = 427, // $@67 - S_shared_network_params = 428, // shared_network_params - S_shared_network_param = 429, // shared_network_param - S_option_def_list = 430, // option_def_list - S_431_68 = 431, // $@68 - S_sub_option_def_list = 432, // sub_option_def_list - S_433_69 = 433, // $@69 - S_option_def_list_content = 434, // option_def_list_content - S_not_empty_option_def_list = 435, // not_empty_option_def_list - S_option_def_entry = 436, // option_def_entry - S_437_70 = 437, // $@70 - S_sub_option_def = 438, // sub_option_def - S_439_71 = 439, // $@71 - S_option_def_params = 440, // option_def_params - S_not_empty_option_def_params = 441, // not_empty_option_def_params - S_option_def_param = 442, // option_def_param - S_option_def_name = 443, // option_def_name - S_code = 444, // code - S_option_def_code = 445, // option_def_code - S_option_def_type = 446, // option_def_type - S_447_72 = 447, // $@72 - S_option_def_record_types = 448, // option_def_record_types - S_449_73 = 449, // $@73 - S_space = 450, // space - S_451_74 = 451, // $@74 - S_option_def_space = 452, // option_def_space - S_option_def_encapsulate = 453, // option_def_encapsulate - S_454_75 = 454, // $@75 - S_option_def_array = 455, // option_def_array - S_option_data_list = 456, // option_data_list - S_457_76 = 457, // $@76 - S_option_data_list_content = 458, // option_data_list_content - S_not_empty_option_data_list = 459, // not_empty_option_data_list - S_option_data_entry = 460, // option_data_entry - S_461_77 = 461, // $@77 - S_sub_option_data = 462, // sub_option_data - S_463_78 = 463, // $@78 - S_option_data_params = 464, // option_data_params - S_not_empty_option_data_params = 465, // not_empty_option_data_params - S_option_data_param = 466, // option_data_param - S_option_data_name = 467, // option_data_name - S_option_data_data = 468, // option_data_data - S_469_79 = 469, // $@79 - S_option_data_code = 470, // option_data_code - S_option_data_space = 471, // option_data_space - S_option_data_csv_format = 472, // option_data_csv_format - S_option_data_always_send = 473, // option_data_always_send - S_pools_list = 474, // pools_list - S_475_80 = 475, // $@80 - S_pools_list_content = 476, // pools_list_content - S_not_empty_pools_list = 477, // not_empty_pools_list - S_pool_list_entry = 478, // pool_list_entry - S_479_81 = 479, // $@81 - S_sub_pool4 = 480, // sub_pool4 - S_481_82 = 481, // $@82 - S_pool_params = 482, // pool_params - S_pool_param = 483, // pool_param - S_pool_entry = 484, // pool_entry - S_485_83 = 485, // $@83 - S_user_context = 486, // user_context - S_487_84 = 487, // $@84 - S_comment = 488, // comment - S_489_85 = 489, // $@85 - S_reservations = 490, // reservations - S_491_86 = 491, // $@86 - S_reservations_list = 492, // reservations_list - S_not_empty_reservations_list = 493, // not_empty_reservations_list - S_reservation = 494, // reservation - S_495_87 = 495, // $@87 - S_sub_reservation = 496, // sub_reservation - S_497_88 = 497, // $@88 - S_reservation_params = 498, // reservation_params - S_not_empty_reservation_params = 499, // not_empty_reservation_params - S_reservation_param = 500, // reservation_param - S_next_server = 501, // next_server - S_502_89 = 502, // $@89 - S_server_hostname = 503, // server_hostname - S_504_90 = 504, // $@90 - S_boot_file_name = 505, // boot_file_name - S_506_91 = 506, // $@91 - S_ip_address = 507, // ip_address - S_508_92 = 508, // $@92 - S_ip_addresses = 509, // ip_addresses - S_510_93 = 510, // $@93 - S_duid = 511, // duid - S_512_94 = 512, // $@94 - S_hw_address = 513, // hw_address - S_514_95 = 514, // $@95 - S_client_id_value = 515, // client_id_value - S_516_96 = 516, // $@96 - S_circuit_id_value = 517, // circuit_id_value - S_518_97 = 518, // $@97 - S_flex_id_value = 519, // flex_id_value - S_520_98 = 520, // $@98 - S_hostname = 521, // hostname - S_522_99 = 522, // $@99 - S_reservation_client_classes = 523, // reservation_client_classes - S_524_100 = 524, // $@100 - S_relay = 525, // relay - S_526_101 = 526, // $@101 - S_relay_map = 527, // relay_map - S_client_classes = 528, // client_classes - S_529_102 = 529, // $@102 - S_client_classes_list = 530, // client_classes_list - S_client_class_entry = 531, // client_class_entry - S_532_103 = 532, // $@103 - S_client_class_params = 533, // client_class_params - S_not_empty_client_class_params = 534, // not_empty_client_class_params - S_client_class_param = 535, // client_class_param - S_client_class_name = 536, // client_class_name - S_client_class_test = 537, // client_class_test - S_538_104 = 538, // $@104 - S_only_if_required = 539, // only_if_required - S_dhcp4o6_port = 540, // dhcp4o6_port - S_control_socket = 541, // control_socket - S_542_105 = 542, // $@105 - S_control_socket_params = 543, // control_socket_params - S_control_socket_param = 544, // control_socket_param - S_control_socket_type = 545, // control_socket_type - S_546_106 = 546, // $@106 - S_control_socket_name = 547, // control_socket_name - S_548_107 = 548, // $@107 - S_dhcp_queue_control = 549, // dhcp_queue_control - S_550_108 = 550, // $@108 - S_queue_control_params = 551, // queue_control_params - S_queue_control_param = 552, // queue_control_param - S_enable_queue = 553, // enable_queue - S_queue_type = 554, // queue_type - S_555_109 = 555, // $@109 - S_capacity = 556, // capacity - S_arbitrary_map_entry = 557, // arbitrary_map_entry - S_558_110 = 558, // $@110 - S_dhcp_ddns = 559, // dhcp_ddns - S_560_111 = 560, // $@111 - S_sub_dhcp_ddns = 561, // sub_dhcp_ddns - S_562_112 = 562, // $@112 - S_dhcp_ddns_params = 563, // dhcp_ddns_params - S_dhcp_ddns_param = 564, // dhcp_ddns_param - S_enable_updates = 565, // enable_updates - S_server_ip = 566, // server_ip - S_567_113 = 567, // $@113 - S_server_port = 568, // server_port - S_sender_ip = 569, // sender_ip - S_570_114 = 570, // $@114 - S_sender_port = 571, // sender_port - S_max_queue_size = 572, // max_queue_size - S_ncr_protocol = 573, // ncr_protocol - S_574_115 = 574, // $@115 - S_ncr_protocol_value = 575, // ncr_protocol_value - S_ncr_format = 576, // ncr_format - S_577_116 = 577, // $@116 - S_dep_qualifying_suffix = 578, // dep_qualifying_suffix - S_579_117 = 579, // $@117 - S_dep_override_no_update = 580, // dep_override_no_update - S_dep_override_client_update = 581, // dep_override_client_update - S_dep_replace_client_name = 582, // dep_replace_client_name - S_583_118 = 583, // $@118 - S_dep_generated_prefix = 584, // dep_generated_prefix - S_585_119 = 585, // $@119 - S_dep_hostname_char_set = 586, // dep_hostname_char_set - S_587_120 = 587, // $@120 - S_dep_hostname_char_replacement = 588, // dep_hostname_char_replacement - S_589_121 = 589, // $@121 - S_config_control = 590, // config_control - S_591_122 = 591, // $@122 - S_sub_config_control = 592, // sub_config_control - S_593_123 = 593, // $@123 - S_config_control_params = 594, // config_control_params - S_config_control_param = 595, // config_control_param - S_config_databases = 596, // config_databases - S_597_124 = 597, // $@124 - S_config_fetch_wait_time = 598, // config_fetch_wait_time - S_loggers = 599, // loggers - S_600_125 = 600, // $@125 - S_loggers_entries = 601, // loggers_entries - S_logger_entry = 602, // logger_entry - S_603_126 = 603, // $@126 - S_logger_params = 604, // logger_params - S_logger_param = 605, // logger_param - S_debuglevel = 606, // debuglevel - S_severity = 607, // severity - S_608_127 = 608, // $@127 - S_output_options_list = 609, // output_options_list - S_610_128 = 610, // $@128 - S_output_options_list_content = 611, // output_options_list_content - S_output_entry = 612, // output_entry - S_613_129 = 613, // $@129 - S_output_params_list = 614, // output_params_list - S_output_params = 615, // output_params - S_output = 616, // output - S_617_130 = 617, // $@130 - S_flush = 618, // flush - S_maxsize = 619, // maxsize - S_maxver = 620, // maxver - S_pattern = 621, // pattern - S_622_131 = 622, // $@131 - S_compatibility = 623, // compatibility - S_624_132 = 624, // $@132 - S_compatibility_params = 625, // compatibility_params - S_compatibility_param = 626, // compatibility_param - S_lenient_option_parsing = 627 // lenient_option_parsing + S_IGNORE_RAI_LINK_SEL = 189, // "ignore-rai-link-selection" + S_TOPLEVEL_JSON = 190, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 191, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 192, // SUB_DHCP4 + S_SUB_INTERFACES4 = 193, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 194, // SUB_SUBNET4 + S_SUB_POOL4 = 195, // SUB_POOL4 + S_SUB_RESERVATION = 196, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 197, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 198, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 199, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 200, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 201, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 202, // SUB_CONFIG_CONTROL + S_STRING = 203, // "constant string" + S_INTEGER = 204, // "integer" + S_FLOAT = 205, // "floating point" + S_BOOLEAN = 206, // "boolean" + S_YYACCEPT = 207, // $accept + S_start = 208, // start + S_209_1 = 209, // $@1 + S_210_2 = 210, // $@2 + S_211_3 = 211, // $@3 + S_212_4 = 212, // $@4 + S_213_5 = 213, // $@5 + S_214_6 = 214, // $@6 + S_215_7 = 215, // $@7 + S_216_8 = 216, // $@8 + S_217_9 = 217, // $@9 + S_218_10 = 218, // $@10 + S_219_11 = 219, // $@11 + S_220_12 = 220, // $@12 + S_221_13 = 221, // $@13 + S_value = 222, // value + S_sub_json = 223, // sub_json + S_map2 = 224, // map2 + S_225_14 = 225, // $@14 + S_map_value = 226, // map_value + S_map_content = 227, // map_content + S_not_empty_map = 228, // not_empty_map + S_list_generic = 229, // list_generic + S_230_15 = 230, // $@15 + S_list_content = 231, // list_content + S_not_empty_list = 232, // not_empty_list + S_list_strings = 233, // list_strings + S_234_16 = 234, // $@16 + S_list_strings_content = 235, // list_strings_content + S_not_empty_list_strings = 236, // not_empty_list_strings + S_unknown_map_entry = 237, // unknown_map_entry + S_syntax_map = 238, // syntax_map + S_239_17 = 239, // $@17 + S_global_object = 240, // global_object + S_241_18 = 241, // $@18 + S_global_object_comma = 242, // global_object_comma + S_sub_dhcp4 = 243, // sub_dhcp4 + S_244_19 = 244, // $@19 + S_global_params = 245, // global_params + S_global_param = 246, // global_param + S_valid_lifetime = 247, // valid_lifetime + S_min_valid_lifetime = 248, // min_valid_lifetime + S_max_valid_lifetime = 249, // max_valid_lifetime + S_renew_timer = 250, // renew_timer + S_rebind_timer = 251, // rebind_timer + S_calculate_tee_times = 252, // calculate_tee_times + S_t1_percent = 253, // t1_percent + S_t2_percent = 254, // t2_percent + S_cache_threshold = 255, // cache_threshold + S_cache_max_age = 256, // cache_max_age + S_decline_probation_period = 257, // decline_probation_period + S_server_tag = 258, // server_tag + S_259_20 = 259, // $@20 + S_parked_packet_limit = 260, // parked_packet_limit + S_echo_client_id = 261, // echo_client_id + S_match_client_id = 262, // match_client_id + S_authoritative = 263, // authoritative + S_ddns_send_updates = 264, // ddns_send_updates + S_ddns_override_no_update = 265, // ddns_override_no_update + S_ddns_override_client_update = 266, // ddns_override_client_update + S_ddns_replace_client_name = 267, // ddns_replace_client_name + S_268_21 = 268, // $@21 + S_ddns_replace_client_name_value = 269, // ddns_replace_client_name_value + S_ddns_generated_prefix = 270, // ddns_generated_prefix + S_271_22 = 271, // $@22 + S_ddns_qualifying_suffix = 272, // ddns_qualifying_suffix + S_273_23 = 273, // $@23 + S_ddns_update_on_renew = 274, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 275, // ddns_use_conflict_resolution + S_hostname_char_set = 276, // hostname_char_set + S_277_24 = 277, // $@24 + S_hostname_char_replacement = 278, // hostname_char_replacement + S_279_25 = 279, // $@25 + S_store_extended_info = 280, // store_extended_info + S_statistic_default_sample_count = 281, // statistic_default_sample_count + S_statistic_default_sample_age = 282, // statistic_default_sample_age + S_early_global_reservations_lookup = 283, // early_global_reservations_lookup + S_ip_reservations_unique = 284, // ip_reservations_unique + S_reservations_lookup_first = 285, // reservations_lookup_first + S_interfaces_config = 286, // interfaces_config + S_287_26 = 287, // $@26 + S_interfaces_config_params = 288, // interfaces_config_params + S_interfaces_config_param = 289, // interfaces_config_param + S_sub_interfaces4 = 290, // sub_interfaces4 + S_291_27 = 291, // $@27 + S_interfaces_list = 292, // interfaces_list + S_293_28 = 293, // $@28 + S_dhcp_socket_type = 294, // dhcp_socket_type + S_295_29 = 295, // $@29 + S_socket_type = 296, // socket_type + S_outbound_interface = 297, // outbound_interface + S_298_30 = 298, // $@30 + S_outbound_interface_value = 299, // outbound_interface_value + S_re_detect = 300, // re_detect + S_service_sockets_require_all = 301, // service_sockets_require_all + S_service_sockets_retry_wait_time = 302, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 303, // service_sockets_max_retries + S_lease_database = 304, // lease_database + S_305_31 = 305, // $@31 + S_sanity_checks = 306, // sanity_checks + S_307_32 = 307, // $@32 + S_sanity_checks_params = 308, // sanity_checks_params + S_sanity_checks_param = 309, // sanity_checks_param + S_lease_checks = 310, // lease_checks + S_311_33 = 311, // $@33 + S_hosts_database = 312, // hosts_database + S_313_34 = 313, // $@34 + S_hosts_databases = 314, // hosts_databases + S_315_35 = 315, // $@35 + S_database_list = 316, // database_list + S_not_empty_database_list = 317, // not_empty_database_list + S_database = 318, // database + S_319_36 = 319, // $@36 + S_database_map_params = 320, // database_map_params + S_database_map_param = 321, // database_map_param + S_database_type = 322, // database_type + S_323_37 = 323, // $@37 + S_db_type = 324, // db_type + S_user = 325, // user + S_326_38 = 326, // $@38 + S_password = 327, // password + S_328_39 = 328, // $@39 + S_host = 329, // host + S_330_40 = 330, // $@40 + S_port = 331, // port + S_name = 332, // name + S_333_41 = 333, // $@41 + S_persist = 334, // persist + S_lfc_interval = 335, // lfc_interval + S_readonly = 336, // readonly + S_connect_timeout = 337, // connect_timeout + S_max_reconnect_tries = 338, // max_reconnect_tries + S_reconnect_wait_time = 339, // reconnect_wait_time + S_on_fail = 340, // on_fail + S_341_42 = 341, // $@42 + S_on_fail_mode = 342, // on_fail_mode + S_max_row_errors = 343, // max_row_errors + S_trust_anchor = 344, // trust_anchor + S_345_43 = 345, // $@43 + S_cert_file = 346, // cert_file + S_347_44 = 347, // $@44 + S_key_file = 348, // key_file + S_349_45 = 349, // $@45 + S_cipher_list = 350, // cipher_list + S_351_46 = 351, // $@46 + S_host_reservation_identifiers = 352, // host_reservation_identifiers + S_353_47 = 353, // $@47 + S_host_reservation_identifiers_list = 354, // host_reservation_identifiers_list + S_host_reservation_identifier = 355, // host_reservation_identifier + S_duid_id = 356, // duid_id + S_hw_address_id = 357, // hw_address_id + S_circuit_id = 358, // circuit_id + S_client_id = 359, // client_id + S_flex_id = 360, // flex_id + S_dhcp_multi_threading = 361, // dhcp_multi_threading + S_362_48 = 362, // $@48 + S_multi_threading_params = 363, // multi_threading_params + S_multi_threading_param = 364, // multi_threading_param + S_enable_multi_threading = 365, // enable_multi_threading + S_thread_pool_size = 366, // thread_pool_size + S_packet_queue_size = 367, // packet_queue_size + S_hooks_libraries = 368, // hooks_libraries + S_369_49 = 369, // $@49 + S_hooks_libraries_list = 370, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 371, // not_empty_hooks_libraries_list + S_hooks_library = 372, // hooks_library + S_373_50 = 373, // $@50 + S_sub_hooks_library = 374, // sub_hooks_library + S_375_51 = 375, // $@51 + S_hooks_params = 376, // hooks_params + S_hooks_param = 377, // hooks_param + S_library = 378, // library + S_379_52 = 379, // $@52 + S_parameters = 380, // parameters + S_381_53 = 381, // $@53 + S_expired_leases_processing = 382, // expired_leases_processing + S_383_54 = 383, // $@54 + S_expired_leases_params = 384, // expired_leases_params + S_expired_leases_param = 385, // expired_leases_param + S_reclaim_timer_wait_time = 386, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 387, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 388, // hold_reclaimed_time + S_max_reclaim_leases = 389, // max_reclaim_leases + S_max_reclaim_time = 390, // max_reclaim_time + S_unwarned_reclaim_cycles = 391, // unwarned_reclaim_cycles + S_subnet4_list = 392, // subnet4_list + S_393_55 = 393, // $@55 + S_subnet4_list_content = 394, // subnet4_list_content + S_not_empty_subnet4_list = 395, // not_empty_subnet4_list + S_subnet4 = 396, // subnet4 + S_397_56 = 397, // $@56 + S_sub_subnet4 = 398, // sub_subnet4 + S_399_57 = 399, // $@57 + S_subnet4_params = 400, // subnet4_params + S_subnet4_param = 401, // subnet4_param + S_subnet = 402, // subnet + S_403_58 = 403, // $@58 + S_subnet_4o6_interface = 404, // subnet_4o6_interface + S_405_59 = 405, // $@59 + S_subnet_4o6_interface_id = 406, // subnet_4o6_interface_id + S_407_60 = 407, // $@60 + S_subnet_4o6_subnet = 408, // subnet_4o6_subnet + S_409_61 = 409, // $@61 + S_interface = 410, // interface + S_411_62 = 411, // $@62 + S_client_class = 412, // client_class + S_413_63 = 413, // $@63 + S_require_client_classes = 414, // require_client_classes + S_415_64 = 415, // $@64 + S_reservations_global = 416, // reservations_global + S_reservations_in_subnet = 417, // reservations_in_subnet + S_reservations_out_of_pool = 418, // reservations_out_of_pool + S_reservation_mode = 419, // reservation_mode + S_420_65 = 420, // $@65 + S_hr_mode = 421, // hr_mode + S_id = 422, // id + S_shared_networks = 423, // shared_networks + S_424_66 = 424, // $@66 + S_shared_networks_content = 425, // shared_networks_content + S_shared_networks_list = 426, // shared_networks_list + S_shared_network = 427, // shared_network + S_428_67 = 428, // $@67 + S_shared_network_params = 429, // shared_network_params + S_shared_network_param = 430, // shared_network_param + S_option_def_list = 431, // option_def_list + S_432_68 = 432, // $@68 + S_sub_option_def_list = 433, // sub_option_def_list + S_434_69 = 434, // $@69 + S_option_def_list_content = 435, // option_def_list_content + S_not_empty_option_def_list = 436, // not_empty_option_def_list + S_option_def_entry = 437, // option_def_entry + S_438_70 = 438, // $@70 + S_sub_option_def = 439, // sub_option_def + S_440_71 = 440, // $@71 + S_option_def_params = 441, // option_def_params + S_not_empty_option_def_params = 442, // not_empty_option_def_params + S_option_def_param = 443, // option_def_param + S_option_def_name = 444, // option_def_name + S_code = 445, // code + S_option_def_code = 446, // option_def_code + S_option_def_type = 447, // option_def_type + S_448_72 = 448, // $@72 + S_option_def_record_types = 449, // option_def_record_types + S_450_73 = 450, // $@73 + S_space = 451, // space + S_452_74 = 452, // $@74 + S_option_def_space = 453, // option_def_space + S_option_def_encapsulate = 454, // option_def_encapsulate + S_455_75 = 455, // $@75 + S_option_def_array = 456, // option_def_array + S_option_data_list = 457, // option_data_list + S_458_76 = 458, // $@76 + S_option_data_list_content = 459, // option_data_list_content + S_not_empty_option_data_list = 460, // not_empty_option_data_list + S_option_data_entry = 461, // option_data_entry + S_462_77 = 462, // $@77 + S_sub_option_data = 463, // sub_option_data + S_464_78 = 464, // $@78 + S_option_data_params = 465, // option_data_params + S_not_empty_option_data_params = 466, // not_empty_option_data_params + S_option_data_param = 467, // option_data_param + S_option_data_name = 468, // option_data_name + S_option_data_data = 469, // option_data_data + S_470_79 = 470, // $@79 + S_option_data_code = 471, // option_data_code + S_option_data_space = 472, // option_data_space + S_option_data_csv_format = 473, // option_data_csv_format + S_option_data_always_send = 474, // option_data_always_send + S_pools_list = 475, // pools_list + S_476_80 = 476, // $@80 + S_pools_list_content = 477, // pools_list_content + S_not_empty_pools_list = 478, // not_empty_pools_list + S_pool_list_entry = 479, // pool_list_entry + S_480_81 = 480, // $@81 + S_sub_pool4 = 481, // sub_pool4 + S_482_82 = 482, // $@82 + S_pool_params = 483, // pool_params + S_pool_param = 484, // pool_param + S_pool_entry = 485, // pool_entry + S_486_83 = 486, // $@83 + S_user_context = 487, // user_context + S_488_84 = 488, // $@84 + S_comment = 489, // comment + S_490_85 = 490, // $@85 + S_reservations = 491, // reservations + S_492_86 = 492, // $@86 + S_reservations_list = 493, // reservations_list + S_not_empty_reservations_list = 494, // not_empty_reservations_list + S_reservation = 495, // reservation + S_496_87 = 496, // $@87 + S_sub_reservation = 497, // sub_reservation + S_498_88 = 498, // $@88 + S_reservation_params = 499, // reservation_params + S_not_empty_reservation_params = 500, // not_empty_reservation_params + S_reservation_param = 501, // reservation_param + S_next_server = 502, // next_server + S_503_89 = 503, // $@89 + S_server_hostname = 504, // server_hostname + S_505_90 = 505, // $@90 + S_boot_file_name = 506, // boot_file_name + S_507_91 = 507, // $@91 + S_ip_address = 508, // ip_address + S_509_92 = 509, // $@92 + S_ip_addresses = 510, // ip_addresses + S_511_93 = 511, // $@93 + S_duid = 512, // duid + S_513_94 = 513, // $@94 + S_hw_address = 514, // hw_address + S_515_95 = 515, // $@95 + S_client_id_value = 516, // client_id_value + S_517_96 = 517, // $@96 + S_circuit_id_value = 518, // circuit_id_value + S_519_97 = 519, // $@97 + S_flex_id_value = 520, // flex_id_value + S_521_98 = 521, // $@98 + S_hostname = 522, // hostname + S_523_99 = 523, // $@99 + S_reservation_client_classes = 524, // reservation_client_classes + S_525_100 = 525, // $@100 + S_relay = 526, // relay + S_527_101 = 527, // $@101 + S_relay_map = 528, // relay_map + S_client_classes = 529, // client_classes + S_530_102 = 530, // $@102 + S_client_classes_list = 531, // client_classes_list + S_client_class_entry = 532, // client_class_entry + S_533_103 = 533, // $@103 + S_client_class_params = 534, // client_class_params + S_not_empty_client_class_params = 535, // not_empty_client_class_params + S_client_class_param = 536, // client_class_param + S_client_class_name = 537, // client_class_name + S_client_class_test = 538, // client_class_test + S_539_104 = 539, // $@104 + S_only_if_required = 540, // only_if_required + S_dhcp4o6_port = 541, // dhcp4o6_port + S_control_socket = 542, // control_socket + S_543_105 = 543, // $@105 + S_control_socket_params = 544, // control_socket_params + S_control_socket_param = 545, // control_socket_param + S_control_socket_type = 546, // control_socket_type + S_547_106 = 547, // $@106 + S_control_socket_name = 548, // control_socket_name + S_549_107 = 549, // $@107 + S_dhcp_queue_control = 550, // dhcp_queue_control + S_551_108 = 551, // $@108 + S_queue_control_params = 552, // queue_control_params + S_queue_control_param = 553, // queue_control_param + S_enable_queue = 554, // enable_queue + S_queue_type = 555, // queue_type + S_556_109 = 556, // $@109 + S_capacity = 557, // capacity + S_arbitrary_map_entry = 558, // arbitrary_map_entry + S_559_110 = 559, // $@110 + S_dhcp_ddns = 560, // dhcp_ddns + S_561_111 = 561, // $@111 + S_sub_dhcp_ddns = 562, // sub_dhcp_ddns + S_563_112 = 563, // $@112 + S_dhcp_ddns_params = 564, // dhcp_ddns_params + S_dhcp_ddns_param = 565, // dhcp_ddns_param + S_enable_updates = 566, // enable_updates + S_server_ip = 567, // server_ip + S_568_113 = 568, // $@113 + S_server_port = 569, // server_port + S_sender_ip = 570, // sender_ip + S_571_114 = 571, // $@114 + S_sender_port = 572, // sender_port + S_max_queue_size = 573, // max_queue_size + S_ncr_protocol = 574, // ncr_protocol + S_575_115 = 575, // $@115 + S_ncr_protocol_value = 576, // ncr_protocol_value + S_ncr_format = 577, // ncr_format + S_578_116 = 578, // $@116 + S_dep_qualifying_suffix = 579, // dep_qualifying_suffix + S_580_117 = 580, // $@117 + S_dep_override_no_update = 581, // dep_override_no_update + S_dep_override_client_update = 582, // dep_override_client_update + S_dep_replace_client_name = 583, // dep_replace_client_name + S_584_118 = 584, // $@118 + S_dep_generated_prefix = 585, // dep_generated_prefix + S_586_119 = 586, // $@119 + S_dep_hostname_char_set = 587, // dep_hostname_char_set + S_588_120 = 588, // $@120 + S_dep_hostname_char_replacement = 589, // dep_hostname_char_replacement + S_590_121 = 590, // $@121 + S_config_control = 591, // config_control + S_592_122 = 592, // $@122 + S_sub_config_control = 593, // sub_config_control + S_594_123 = 594, // $@123 + S_config_control_params = 595, // config_control_params + S_config_control_param = 596, // config_control_param + S_config_databases = 597, // config_databases + S_598_124 = 598, // $@124 + S_config_fetch_wait_time = 599, // config_fetch_wait_time + S_loggers = 600, // loggers + S_601_125 = 601, // $@125 + S_loggers_entries = 602, // loggers_entries + S_logger_entry = 603, // logger_entry + S_604_126 = 604, // $@126 + S_logger_params = 605, // logger_params + S_logger_param = 606, // logger_param + S_debuglevel = 607, // debuglevel + S_severity = 608, // severity + S_609_127 = 609, // $@127 + S_output_options_list = 610, // output_options_list + S_611_128 = 611, // $@128 + S_output_options_list_content = 612, // output_options_list_content + S_output_entry = 613, // output_entry + S_614_129 = 614, // $@129 + S_output_params_list = 615, // output_params_list + S_output_params = 616, // output_params + S_output = 617, // output + S_618_130 = 618, // $@130 + S_flush = 619, // flush + S_maxsize = 620, // maxsize + S_maxver = 621, // maxver + S_pattern = 622, // pattern + S_623_131 = 623, // $@131 + S_compatibility = 624, // compatibility + S_625_132 = 625, // $@132 + S_compatibility_params = 626, // compatibility_params + S_compatibility_param = 627, // compatibility_param + S_lenient_option_parsing = 628, // lenient_option_parsing + S_629_ignore_rai_link_selection = 629 // ignore-rai-link-selection }; }; @@ -4589,6 +4592,21 @@ switch (yykind) return symbol_type (token::TOKEN_LENIENT_OPTION_PARSING, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_IGNORE_RAI_LINK_SEL (location_type l) + { + return symbol_type (token::TOKEN_IGNORE_RAI_LINK_SEL, std::move (l)); + } +#else + static + symbol_type + make_IGNORE_RAI_LINK_SEL (const location_type& l) + { + return symbol_type (token::TOKEN_IGNORE_RAI_LINK_SEL, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5174,8 +5192,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1262, ///< Last index in yytable_. - yynnts_ = 422, ///< Number of nonterminal symbols. + yylast_ = 1266, ///< Last index in yytable_. + yynnts_ = 423, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5241,10 +5259,10 @@ switch (yykind) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205 + 205, 206 }; // Last valid token kind. - const int code_max = 460; + const int code_max = 461; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5417,7 +5435,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5421 "dhcp4_parser.h" +#line 5439 "dhcp4_parser.h"