From: Razvan Becheriu Date: Tue, 8 Jul 2025 19:28:57 +0000 (+0300) Subject: [#3927] add ssl-mode parameter X-Git-Tag: Kea-3.1.0~48 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=ff73ae4d04050b855f0325cc31e7d53e8b0f9001;p=thirdparty%2Fkea.git [#3927] add ssl-mode parameter --- diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index 8acbb5823d..221fd26809 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -509,6 +509,9 @@ // Private key file name. "key-file": "my-key", + // SSL mode. + "ssl-mode": "verify-ca", + // Cipher list (see the OpenSSL ciphers command manual). "cipher-list": "AES", diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index 85e4145895..d9298931fc 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -451,6 +451,9 @@ // Private key file name. "key-file": "my-key", + // SSL mode. + "ssl-mode": "verify-ca", + // Cipher list (see the OpenSSL ciphers command manual). "cipher-list": "AES", diff --git a/doc/sphinx/arm/database-connectivity.rst b/doc/sphinx/arm/database-connectivity.rst index 15e008aa13..b0498111b3 100644 --- a/doc/sphinx/arm/database-connectivity.rst +++ b/doc/sphinx/arm/database-connectivity.rst @@ -81,6 +81,9 @@ Corresponding database configuration parameters for Kea servers are: - The ``key-password`` specifies the private key password. +- The ``ssl-mode`` specifies the SSL mode: ``disable``, ``prefer``, + ``require``, ``verify-ca`` or ``verify-full``. + - The ``cipher-list`` specifies the list of TLS ciphers (the syntax of the content of this parameter is described in the OpenSSL ciphers manual). @@ -97,6 +100,9 @@ Currently the support for each database is: version, mutual authentication, etc. When a TLS connection was required but the actual connection is in clear text an error log is emitted. + The ``ssl-mode`` values correspond to the MySQL values ``DISABLED``, + ``PREFERRED``, ``REQUIRED``, ``VERIFY_CA`` and ``VERIFY_IDENTITY`` + respectively. - PostgreSQL supports the whole set, additional configuration must be done in the client library (libpq). Anything else must be done in the diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 84225ffa46..0f51c06308 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 243 -#define YY_END_OF_BUFFER 244 +#define YY_NUM_RULES 249 +#define YY_END_OF_BUFFER 250 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,46 +700,46 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2386] = +static const flex_int16_t yy_accept[2421] = { 0, - 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 242, 10, 11, 242, 1, 236, 233, 236, 236, - 242, 235, 234, 242, 242, 242, 242, 242, 229, 230, - 242, 242, 242, 231, 232, 5, 5, 5, 242, 242, - 242, 10, 11, 0, 0, 224, 0, 0, 0, 0, + 242, 242, 0, 0, 0, 0, 0, 0, 0, 0, + 250, 248, 10, 11, 248, 1, 242, 239, 242, 242, + 248, 241, 240, 248, 248, 248, 248, 248, 235, 236, + 248, 248, 248, 237, 238, 5, 5, 5, 248, 248, + 248, 10, 11, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 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, 236, - 236, 0, 235, 236, 3, 2, 6, 0, 236, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 242, + 242, 0, 241, 242, 3, 2, 6, 0, 242, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, + 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, - 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 232, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 241, 239, - 0, 238, 237, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 197, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 245, 0, 244, 243, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -747,223 +747,227 @@ static const flex_int16_t yy_accept[2386] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, - 0, 0, 0, 0, 0, 240, 237, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 200, 0, 0, + 0, 0, 0, 0, 0, 0, 246, 243, 0, 0, + 0, 0, 0, 0, 0, 204, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, + 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 38, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 97, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 35, 165, 0, 0, 36, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 202, - 201, 0, 0, 0, 0, 0, 143, 0, 0, 172, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 134, 0, 0, 35, 171, + 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 208, 207, 0, 0, 0, 0, + 0, 149, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, - 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, - 0, 173, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 0, 7, - 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 102, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 0, 0, 7, 0, + 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 175, 100, 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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 181, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, - 114, 0, 0, 0, 0, 0, 0, 120, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 122, 40, 98, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 120, 0, 0, 0, 0, 0, + + 0, 126, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 40, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 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, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 0, 34, 0, + 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 135, + 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, + 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 189, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 191, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, - 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, - 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 0, 0, 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, 0, 0, 134, 0, 0, - 23, 0, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, - 95, 0, 0, 0, 0, 0, 90, 0, 0, 0, - 0, 148, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110, 111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, - 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 195, 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, 182, 0, 62, + 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, + 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, - 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 0, 0, 0, 91, + 140, 0, 0, 23, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 190, 0, 0, - 188, 0, 0, 0, 168, 170, 164, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 86, 85, 0, - 0, 0, 0, 0, 0, 157, 0, 0, 0, 182, + 0, 199, 0, 101, 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 154, 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 146, 0, 57, 15, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 63, 0, 0, 141, 0, 132, 0, 0, + 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 54, 0, 99, 0, 0, - 205, 0, 0, 0, 0, 0, 0, 0, 210, 0, - 113, 0, 0, 178, 0, 217, 0, 0, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, + 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 196, 0, 0, 194, 0, 0, 0, 174, 176, + + 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 63, 0, 0, 0, 0, 0, 0, + 205, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 91, 0, 0, 0, 0, 0, 0, + 163, 0, 0, 0, 188, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, + 152, 0, 57, 15, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43, 69, 0, 0, + + 147, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 129, 0, 0, 0, 44, 0, 0, 0, - 0, 0, 0, 171, 213, 0, 0, 124, 31, 0, - - 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 0, 0, 0, 0, 0, 28, 0, 0, - 191, 0, 0, 0, 53, 0, 0, 0, 222, 0, - 0, 0, 116, 115, 0, 0, 0, 0, 0, 0, + 54, 0, 105, 0, 0, 211, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 119, 0, 0, 184, 0, + 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 59, 0, - 0, 0, 0, 0, 0, 112, 0, 0, 0, 42, - 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 209, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 212, 0, 89, 0, 0, - 48, 0, 0, 0, 0, 206, 0, 79, 0, 0, - 204, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 83, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 130, 0, + 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, + 0, 44, 0, 0, 0, 0, 0, 0, 177, 219, + 0, 0, 130, 31, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 49, 0, 0, 0, 0, 0, 45, 160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 214, 0, 192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 28, 0, 0, 197, 0, 0, 0, 53, + 0, 0, 0, 228, 0, 0, 0, 122, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 118, 0, 0, 0, 42, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, + 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 215, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 218, 0, 95, 0, 0, 48, 0, 0, 0, 0, + 212, 0, 85, 0, 0, 210, 0, 32, 0, 0, + + 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 49, 0, 0, + 0, 0, 0, 45, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 154, 0, 61, 60, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, - 0, 0, 0, 0, 52, 0, 66, 0, 46, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 67, 66, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 33, 0, 0, 0, 75, - 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 215, 218, 0, 0, 125, 105, 0, 0, - 0, 0, 0, 0, 0, 81, 0, 0, 71, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 0, 52, + 0, 72, 0, 46, 0, 110, 0, 0, 0, 0, + + 0, 0, 0, 229, 0, 94, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 151, 0, 0, 0, 0, 0, 0, 156, 0, - - 0, 73, 0, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 0, 0, 195, 0, 220, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, + 33, 0, 0, 0, 81, 0, 0, 0, 0, 165, + 0, 0, 0, 0, 0, 0, 0, 221, 224, 0, + + 0, 131, 111, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 77, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 137, 157, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 79, 0, 70, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 201, 0, 226, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 0, 0, 126, 0, 0, 0, 27, 25, 0, 0, - 0, 0, 77, 0, 0, 108, 0, 0, 69, 0, - 78, 0, 0, 219, 0, 0, 0, 0, 0, 68, - 0, 152, 26, 214, 0 + 0, 0, 0, 0, 78, 0, 0, 132, 0, 0, + 0, 27, 25, 0, 0, 0, 0, 83, 0, 0, + + 114, 0, 0, 75, 0, 84, 0, 0, 225, 0, + 0, 0, 0, 0, 74, 0, 158, 26, 220, 0 } ; static const YY_CHAR yy_ec[256] = @@ -1010,314 +1014,317 @@ static const YY_CHAR yy_meta[77] = 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2394] = +static const flex_int16_t yy_base[2429] = { 0, 0, 75, 21, 28, 39, 47, 53, 61, 95, 103, - 2836, 2837, 31, 2832, 151, 0, 216, 2837, 223, 230, - 13, 237, 2837, 2812, 124, 17, 4, 34, 2837, 2837, - 23, 43, 64, 2837, 2837, 2837, 56, 2820, 2770, 0, - 2810, 106, 2827, 2, 274, 2837, 2766, 85, 90, 2772, + 2871, 2872, 31, 2867, 151, 0, 216, 2872, 223, 230, + 13, 237, 2872, 2847, 124, 17, 4, 34, 2872, 2872, + 23, 43, 64, 2872, 2872, 2872, 56, 2855, 2805, 0, + 2845, 106, 2862, 2, 274, 2872, 2801, 85, 90, 2807, 98, 77, 231, 235, 97, 200, 304, 229, 64, 300, - 218, 313, 219, 63, 257, 2774, 298, 67, 341, 242, - 210, 2757, 21, 333, 362, 343, 2776, 318, 0, 405, - 422, 436, 445, 450, 2837, 0, 2837, 464, 469, 228, - 232, 238, 260, 338, 319, 2837, 2773, 2817, 2837, 276, - - 2837, 442, 2804, 337, 250, 2770, 347, 17, 359, 2809, - 282, 372, 329, 364, 2813, 0, 506, 429, 2752, 2749, - 2749, 2752, 382, 2748, 345, 2756, 364, 2742, 2743, 2748, - 230, 2758, 2742, 2750, 2740, 2749, 425, 2755, 363, 79, - 430, 2735, 2791, 2795, 2738, 2731, 2787, 2724, 381, 2745, - 2745, 2739, 401, 2731, 2732, 2730, 2724, 429, 2735, 225, - 2720, 2719, 451, 2720, 340, 2732, 2713, 502, 433, 473, - 2734, 2731, 2732, 442, 2730, 2768, 2767, 473, 475, 2711, - 475, 2712, 490, 457, 2722, 2714, 2716, 0, 478, 505, - 513, 508, 508, 520, 2712, 2837, 2760, 525, 525, 2706, - - 511, 527, 544, 547, 2763, 550, 2762, 529, 2761, 2837, - 2837, 590, 2703, 560, 2716, 2708, 2706, 2694, 2705, 2709, - 2710, 2690, 2701, 2705, 2702, 2701, 518, 526, 2742, 2703, - 2684, 2681, 2689, 2684, 2694, 2694, 2685, 2681, 2693, 2693, - 2681, 2680, 2682, 2685, 2665, 2669, 2683, 2675, 2665, 2668, - 2682, 2837, 2667, 2676, 535, 2717, 2660, 2669, 2714, 2658, - 2668, 2671, 579, 2710, 2652, 2666, 2707, 558, 2649, 2663, - 2661, 2641, 2656, 531, 2653, 537, 2644, 2642, 2642, 2648, - 2639, 2637, 2699, 2652, 9, 2646, 539, 2653, 2648, 2631, - 2646, 2632, 2644, 2639, 2643, 2624, 2640, 2626, 2632, 2639, - - 439, 461, 2627, 2624, 2623, 581, 2622, 2617, 2631, 566, - 2630, 2676, 2609, 2631, 589, 387, 2611, 583, 2837, 2837, - 585, 2837, 2837, 2609, 563, 577, 592, 2660, 595, 2670, - 586, 597, 2837, 2669, 2837, 2663, 642, 2622, 581, 2599, - 574, 2620, 2659, 2616, 2599, 2616, 2655, 2612, 2595, 2601, - 2656, 2608, 2611, 2602, 2605, 2591, 2602, 2649, 2643, 2598, - 2595, 617, 2600, 2644, 2576, 2637, 2587, 2582, 2576, 2575, - 2577, 2580, 2630, 2584, 2628, 2571, 665, 666, 2585, 2570, - 2569, 2582, 2580, 581, 2579, 2578, 2573, 2580, 2575, 2571, - 608, 2569, 2572, 2554, 2566, 2616, 621, 595, 2610, 2554, - - 2570, 2607, 2554, 2553, 2546, 2561, 2552, 2559, 2540, 2557, - 2552, 673, 2602, 2554, 2837, 2553, 618, 2544, 2542, 2554, - 620, 2529, 2530, 2543, 2533, 2525, 2586, 2528, 2542, 630, - 2528, 2540, 2539, 2538, 2534, 2532, 2577, 2534, 2533, 2532, - 2531, 2514, 2522, 2575, 2531, 2511, 2572, 2837, 2571, 2510, - 2509, 691, 2522, 2520, 2519, 2837, 2837, 2519, 2508, 2500, - 642, 2557, 2561, 2560, 2837, 2559, 635, 2837, 664, 727, - 2515, 651, 2557, 2500, 2495, 2554, 2505, 2547, 2497, 2499, - 645, 2489, 2497, 2485, 2837, 2490, 2483, 2495, 2498, 2485, - 2484, 2837, 705, 2486, 2483, 638, 2481, 2475, 2837, 2531, - - 2490, 2487, 2472, 2489, 2485, 2483, 2483, 2477, 695, 2467, - 2521, 2837, 2465, 2481, 2518, 2837, 2472, 2521, 2474, 2472, - 2470, 2471, 2455, 2464, 2471, 2508, 2456, 2455, 2450, 2449, - 2503, 2444, 651, 2463, 2437, 2444, 2460, 2497, 2837, 2444, - 2440, 701, 2438, 2493, 2446, 2445, 2439, 2431, 2431, 2430, - 2444, 2444, 2432, 2428, 2426, 2837, 2435, 2485, 2837, 2479, - 2421, 2420, 2425, 2480, 2433, 2427, 2421, 2430, 2475, 2469, - 2413, 2408, 2466, 2427, 2402, 2408, 653, 2422, 2415, 2419, - 2402, 2463, 2457, 2400, 2400, 2454, 2396, 2397, 2396, 2394, - 2411, 2837, 2407, 2447, 2837, 2837, 2395, 2393, 2837, 659, - - 2444, 2448, 2442, 2399, 2383, 2400, 2443, 693, 2837, 2837, - 2837, 683, 686, 692, 2380, 711, 2837, 2379, 2389, 2837, - 2388, 655, 2395, 2375, 2385, 2388, 2429, 2371, 719, 2370, - 2380, 2425, 2367, 2374, 2367, 2369, 2378, 2360, 2360, 2375, - 2374, 2358, 672, 2372, 2371, 2371, 2353, 2358, 2402, 2356, - 2363, 2357, 2405, 2346, 2346, 2360, 2360, 2358, 2358, 2837, - 2343, 2355, 2347, 2353, 2344, 2352, 2350, 2837, 2336, 2390, - 2351, 2333, 2345, 2337, 2329, 673, 2327, 2326, 2320, 2325, - 2340, 2337, 2338, 2317, 2327, 2333, 2379, 2324, 2315, 2316, - 2318, 2313, 2326, 2318, 2317, 703, 2365, 2313, 755, 2363, - - 2305, 2361, 2305, 2308, 2301, 2316, 2837, 2299, 2313, 2308, - 2304, 2837, 2352, 2301, 2308, 2349, 2837, 2291, 2305, 2308, - 2293, 2288, 2343, 2342, 2286, 2340, 2297, 2281, 2337, 2336, - 2837, 2297, 2277, 2291, 2290, 731, 2291, 2290, 2287, 2271, - 2323, 62, 262, 279, 318, 367, 571, 2837, 579, 2837, - 610, 653, 2837, 695, 732, 731, 720, 742, 668, 680, - 718, 714, 723, 735, 729, 719, 718, 732, 728, 734, - 785, 747, 791, 793, 750, 754, 790, 791, 746, 747, - 748, 758, 763, 749, 752, 755, 764, 764, 748, 808, - 758, 768, 771, 812, 758, 765, 769, 766, 768, 776, - - 819, 821, 781, 828, 783, 786, 781, 772, 787, 792, - 793, 790, 792, 794, 793, 781, 795, 782, 794, 802, - 841, 800, 848, 849, 796, 788, 799, 849, 804, 857, - 2837, 807, 809, 805, 799, 815, 803, 813, 865, 861, - 862, 822, 823, 2837, 813, 814, 813, 826, 816, 829, - 876, 877, 878, 812, 835, 826, 815, 821, 879, 840, - 824, 836, 883, 827, 834, 886, 847, 842, 847, 845, - 892, 831, 843, 858, 853, 853, 843, 840, 2837, 908, - 862, 863, 851, 865, 855, 859, 871, 856, 863, 867, - 871, 872, 864, 878, 902, 894, 923, 924, 898, 871, - - 885, 888, 891, 888, 870, 877, 891, 939, 893, 878, - 891, 892, 890, 899, 2837, 2837, 895, 890, 905, 902, - 888, 890, 909, 906, 908, 897, 904, 906, 915, 962, - 920, 959, 918, 908, 907, 906, 917, 913, 905, 916, - 927, 912, 913, 919, 935, 974, 932, 927, 977, 2837, - 938, 930, 941, 939, 987, 926, 943, 929, 941, 950, - 947, 934, 932, 997, 933, 952, 938, 944, 942, 2837, - 2837, 952, 957, 962, 950, 960, 962, 2837, 963, 950, - 968, 955, 957, 950, 967, 2837, 956, 974, 975, 1014, - 962, 963, 960, 964, 982, 1026, 2837, 2837, 2837, 969, - - 966, 982, 1030, 981, 971, 972, 968, 981, 992, 987, - 1034, 989, 991, 984, 986, 982, 988, 988, 990, 1005, - 988, 1050, 1004, 1006, 1010, 997, 988, 1009, 1012, 998, - 997, 2837, 1004, 1005, 1057, 1058, 1007, 1020, 1061, 1016, - 1006, 1022, 1022, 1016, 1024, 1011, 1042, 1052, 1040, 1048, - 1060, 1077, 1023, 1037, 1020, 1078, 1079, 1038, 1081, 2837, - 1087, 1037, 1028, 1044, 1048, 1092, 1039, 1038, 1033, 1034, - 1046, 1041, 1037, 1046, 1041, 1044, 1057, 1066, 1105, 2837, - 1056, 1050, 1068, 1061, 1056, 1117, 1071, 1072, 1063, 1121, - 1078, 1067, 1070, 1078, 1080, 1065, 1085, 1078, 1083, 1080, - - 1078, 1090, 1074, 1075, 2837, 1091, 1094, 1091, 1078, 1095, - 1090, 1142, 1082, 1101, 2837, 1088, 1101, 1104, 1090, 1085, - 1103, 1146, 1101, 1097, 1094, 1150, 1151, 1110, 1096, 1114, - 1114, 1114, 1115, 1116, 1118, 1103, 1118, 1116, 1106, 1107, - 1123, 1110, 1127, 2837, 1125, 1127, 1175, 1119, 2837, 1122, - 1127, 1174, 1122, 1134, 1128, 1126, 1123, 1129, 1139, 1187, - 1128, 1129, 1129, 1191, 1132, 1144, 1137, 2837, 1133, 1150, - 1142, 1138, 1141, 1144, 1196, 1135, 1157, 1143, 1144, 1145, - 1146, 1152, 1160, 1151, 1156, 1166, 1214, 1168, 1169, 1174, - 1218, 1186, 1215, 1198, 1190, 1195, 2837, 1178, 1163, 1175, - - 1171, 1185, 1168, 1168, 2837, 1171, 1170, 1233, 1173, 2837, - 1184, 1174, 1194, 1193, 1184, 1195, 1241, 1191, 1200, 1193, - 1197, 1201, 1184, 1209, 1206, 1207, 1198, 1256, 1200, 2837, - 1253, 1197, 1201, 2837, 1219, 1201, 1202, 1202, 1223, 1220, - 1222, 1209, 1227, 1215, 1229, 1222, 1231, 1211, 1226, 1233, - 1218, 1279, 1222, 1276, 2837, 1282, 1283, 1222, 1225, 1233, - 1244, 1227, 1247, 1235, 1231, 1238, 1247, 1235, 1242, 1243, - 1255, 1299, 1243, 1301, 1242, 1241, 1245, 1259, 1263, 1307, - 1252, 1258, 1259, 1248, 1312, 1260, 1263, 1315, 2837, 1253, - 1270, 1263, 1254, 1273, 1261, 1271, 1267, 1262, 1281, 1281, - - 2837, 1265, 1261, 1267, 2837, 1269, 1332, 1288, 1269, 1275, - 1289, 1275, 1291, 1277, 1294, 1336, 1286, 1343, 1344, 1294, - 1299, 1293, 1291, 1302, 1301, 1285, 2837, 1290, 1296, 1309, - 2837, 1323, 1336, 1324, 1338, 1325, 1360, 1310, 1298, 1320, - 1315, 1315, 1319, 1320, 1368, 2837, 1308, 1308, 1311, 1328, - 1323, 1327, 1322, 2837, 1331, 1315, 1332, 1312, 1333, 1323, - 1317, 1332, 1329, 1385, 1335, 2837, 1348, 1348, 1389, 1333, - 1342, 1392, 1347, 1352, 1338, 1401, 1356, 1342, 1343, 1357, - 1355, 1352, 1348, 1366, 1367, 1368, 1351, 2837, 1408, 1360, - 2837, 1370, 2837, 1355, 1366, 1372, 1358, 1377, 1370, 1368, - - 1361, 1373, 1420, 1381, 1370, 1377, 1378, 1384, 2837, 1377, - 2837, 1432, 1382, 1371, 1384, 1436, 2837, 1375, 1381, 1382, - 1393, 2837, 1394, 1388, 2837, 1381, 1384, 1398, 1403, 1386, - 1448, 1402, 1389, 1408, 1395, 1400, 1454, 1450, 1400, 1457, - 2837, 1405, 1402, 1413, 1461, 1462, 1463, 1459, 1418, 1419, - 1421, 2837, 2837, 1413, 1408, 1465, 1411, 1427, 1473, 1412, - 1424, 1413, 1430, 1473, 1456, 1457, 1449, 1482, 2837, 1426, - 1437, 1430, 1439, 1430, 1441, 1443, 2837, 1490, 1424, 1435, - 1450, 1489, 1438, 1449, 1435, 1451, 1452, 1449, 1496, 1456, - 1503, 1504, 1460, 1451, 1461, 1468, 1455, 1451, 1514, 1510, - - 1465, 1512, 1518, 1472, 2837, 1469, 1459, 1475, 1466, 1469, - 1478, 1475, 1465, 1468, 1468, 1530, 1470, 1481, 1476, 1534, - 1478, 1536, 1538, 1478, 1483, 1541, 1537, 1475, 1490, 1483, - 1486, 1499, 1500, 1498, 1550, 2837, 1496, 1502, 1492, 2837, - 1508, 1500, 1501, 1553, 1497, 1513, 1561, 1562, 1503, 1513, - 1565, 2837, 1510, 1567, 1508, 1506, 1509, 2837, 1526, 1531, - 2837, 1528, 1516, 1516, 2837, 2837, 2837, 1521, 1531, 1514, - 1534, 1535, 1521, 1523, 1585, 1532, 2837, 1587, 1533, 1527, - 1590, 1555, 1573, 1588, 1575, 2837, 1538, 1597, 1551, 1599, - 1546, 1596, 1602, 2837, 1542, 1604, 1551, 1545, 1542, 1545, - - 1547, 1605, 1565, 1607, 1557, 1569, 1572, 2837, 2837, 1569, - 1563, 1567, 1561, 1568, 1558, 2837, 1566, 1581, 1566, 2837, - 1568, 1568, 1626, 1571, 1628, 1587, 1589, 1589, 1586, 1633, - 1592, 2837, 1593, 1585, 1586, 2837, 1587, 2837, 2837, 1597, - 1590, 2837, 1596, 1601, 1602, 1599, 1646, 1591, 1606, 1607, - 1599, 2837, 1609, 1597, 1607, 1599, 1599, 1600, 1601, 1658, - 1664, 2837, 2837, 1660, 1604, 2837, 1605, 2837, 1619, 1607, - 1615, 1672, 1617, 1609, 1622, 1616, 1626, 1619, 1623, 1639, - 1632, 1638, 1628, 1686, 1636, 2837, 1645, 2837, 1642, 1690, - 2837, 1640, 1668, 1669, 1675, 1660, 1668, 1697, 2837, 1698, - - 2837, 1653, 1638, 2837, 1701, 2837, 1702, 1656, 1661, 1643, - 1706, 1647, 1703, 1666, 1660, 1656, 1650, 1657, 1709, 1664, - 1665, 1655, 1660, 1678, 1726, 1677, 1728, 1678, 1676, 1726, - 1687, 1687, 1729, 1674, 1679, 1677, 1739, 1680, 1688, 1694, - 1682, 1744, 1740, 1700, 1747, 1705, 1694, 1688, 1751, 1690, - 1691, 1705, 1755, 1709, 1700, 1710, 1759, 1760, 1710, 1708, - 2837, 1698, 1759, 1760, 1712, 1712, 1712, 1707, 1708, 1726, - 2837, 1717, 1723, 1728, 1715, 1716, 1778, 1717, 1717, 1719, - 1777, 1720, 2837, 1716, 1734, 1786, 2837, 1741, 1755, 1769, - 1768, 1757, 1759, 2837, 2837, 1793, 1743, 2837, 2837, 1734, - - 1745, 1797, 2837, 1798, 1752, 1743, 1748, 1746, 1799, 1754, - 1759, 1745, 1748, 1764, 1753, 1751, 1765, 1752, 2837, 1754, - 2837, 1759, 1777, 1764, 1773, 1819, 1763, 1826, 1771, 1781, - 1782, 2837, 1830, 1767, 1827, 1782, 1829, 2837, 1777, 1836, - 2837, 1776, 1791, 1779, 2837, 1789, 1790, 1842, 2837, 1797, - 1788, 1802, 2837, 2837, 1778, 1796, 1805, 1787, 1805, 1794, - 1847, 1796, 1792, 1797, 1856, 1795, 1796, 1859, 1855, 1861, - 2837, 1811, 1809, 1864, 1814, 1804, 1820, 1813, 2837, 1869, - 1847, 1871, 1853, 1868, 1874, 2837, 1820, 1876, 1815, 2837, - 2837, 1817, 1819, 1829, 1876, 1821, 1836, 1823, 1885, 1839, - - 1825, 1832, 1832, 1890, 1844, 1845, 1837, 1833, 1835, 1849, - 1837, 1849, 2837, 1896, 1844, 1841, 2837, 1857, 1844, 1857, - 1844, 1865, 2837, 1862, 1910, 1860, 1857, 1858, 2837, 1914, - 1872, 1871, 1870, 1863, 1868, 1869, 1867, 1878, 1862, 1871, - 1920, 1926, 2837, 1876, 1928, 2837, 1874, 2837, 1873, 1869, - 2837, 1876, 1933, 1935, 1931, 2837, 1932, 2837, 1914, 1920, - 2837, 1892, 2837, 1936, 1885, 1896, 1897, 1882, 1883, 1891, - 1948, 2837, 1893, 1945, 1946, 1898, 2837, 1893, 1911, 1912, - 1894, 1900, 1913, 1908, 1905, 1910, 1908, 1963, 1904, 1920, - 1968, 1913, 1910, 1910, 2837, 1925, 1926, 1927, 2837, 1921, - - 1929, 1977, 1927, 1917, 1925, 1938, 1939, 1920, 1921, 1928, - 2837, 1930, 2837, 1944, 1941, 1933, 1985, 1943, 2837, 2837, - 1947, 1973, 1974, 1972, 1935, 1935, 1944, 1951, 1944, 1943, - 1954, 1941, 2837, 1957, 1945, 1948, 2007, 1944, 1963, 1956, - 2006, 1967, 1960, 1959, 1968, 1970, 1974, 2837, 2013, 1967, - 2837, 1972, 1963, 2025, 1965, 2027, 2028, 2024, 2030, 2837, - 1969, 2027, 1986, 1973, 1981, 1992, 1979, 1990, 1976, 1974, - 1982, 1981, 1982, 1988, 1979, 2024, 2048, 2030, 2050, 2000, - 1989, 2002, 1992, 2009, 2008, 2052, 1993, 2012, 2013, 2837, - 2018, 2011, 2058, 2054, 2018, 2005, 2020, 2068, 2022, 2025, - - 2020, 2025, 2014, 2025, 2837, 2077, 2837, 2837, 2024, 2837, - 2079, 2018, 2081, 2021, 2083, 2028, 2080, 2081, 2040, 2083, - 2026, 2030, 2091, 2049, 2093, 2049, 2076, 2837, 2072, 2837, - 2042, 2036, 2033, 2095, 2058, 2051, 2047, 2104, 2044, 2046, - 2045, 2052, 2064, 2099, 2050, 2112, 2053, 2837, 2058, 2068, - 2070, 2072, 2055, 2063, 2837, 2069, 2837, 2071, 2837, 2077, - 2837, 2078, 2078, 2069, 2128, 2069, 2079, 2064, 2837, 2077, - 2837, 2079, 2110, 2116, 2088, 2086, 2138, 2076, 2078, 2075, - 2099, 2837, 2086, 2093, 2094, 2097, 2093, 2148, 2088, 2837, - 2145, 2089, 2097, 2106, 2092, 2108, 2107, 2096, 2103, 2098, - - 2098, 2112, 2107, 2837, 2118, 2106, 2162, 2110, 2122, 2150, - 2171, 2172, 2116, 2837, 2116, 2128, 2176, 2122, 2124, 2122, - 2123, 2181, 2139, 2837, 2132, 2119, 2134, 2139, 2131, 2137, - 2189, 2190, 2129, 2145, 2193, 2194, 2135, 2140, 2136, 2152, - 2135, 2147, 2141, 2203, 2837, 2837, 2148, 2159, 2206, 2837, - 2160, 2145, 2163, 2154, 2837, 2150, 2156, 2170, 2166, 2159, - 2154, 2160, 2837, 2837, 2218, 2219, 2837, 2837, 2159, 2167, - 2162, 2218, 2181, 2178, 2226, 2837, 2222, 2185, 2837, 2229, - 2168, 2231, 2171, 2172, 2185, 2184, 2185, 2175, 2187, 2183, - 2837, 2837, 2178, 2241, 2191, 2200, 2193, 2240, 2837, 2191, - - 2185, 2837, 2197, 2837, 2244, 2203, 2251, 2190, 2206, 2254, - 2207, 2256, 2257, 2837, 2211, 2205, 2198, 2218, 2205, 2217, - 2208, 2212, 2206, 2837, 2263, 2209, 2837, 2219, 2837, 2837, - 2210, 2218, 2268, 2225, 2218, 2230, 2277, 2222, 2222, 2280, - 2219, 2221, 2236, 2284, 2285, 2224, 2240, 2225, 2242, 2837, - 2290, 2234, 2837, 2241, 2293, 2234, 2837, 2837, 2244, 2296, - 2241, 2298, 2837, 2246, 2245, 2837, 2301, 2247, 2837, 2241, - 2837, 2241, 2258, 2837, 2259, 2307, 2250, 2309, 2310, 2837, - 2311, 2837, 2837, 2837, 2837, 2317, 2320, 2323, 2324, 2326, - 2329, 2332, 2335 - + 218, 313, 219, 63, 257, 2809, 298, 67, 341, 242, + 316, 2792, 21, 342, 362, 322, 210, 330, 0, 405, + 422, 436, 445, 450, 2872, 0, 2872, 464, 469, 228, + 232, 238, 260, 347, 278, 2872, 2809, 2853, 2872, 276, + + 2872, 442, 2840, 329, 250, 2806, 348, 17, 347, 2845, + 361, 361, 367, 389, 2849, 0, 506, 429, 2788, 2785, + 2785, 2788, 442, 2784, 348, 2792, 453, 2778, 2779, 2784, + 230, 2794, 360, 2787, 2777, 2786, 392, 2792, 405, 79, + 434, 2772, 2828, 2832, 2775, 2768, 2824, 2761, 384, 2782, + 2782, 2776, 402, 2768, 2769, 2767, 2761, 466, 2772, 225, + 2757, 2756, 474, 2757, 450, 2769, 2768, 2749, 515, 429, + 473, 2770, 2767, 2768, 2756, 446, 2765, 2803, 2802, 463, + 483, 2746, 477, 2747, 483, 480, 2757, 2749, 2742, 2750, + 0, 507, 369, 501, 511, 519, 534, 2746, 2872, 2794, + + 539, 538, 2740, 529, 514, 541, 544, 2797, 544, 2796, + 519, 2795, 2872, 2872, 584, 2737, 567, 2750, 2742, 2740, + 2728, 2739, 2743, 2744, 2724, 2735, 2739, 2736, 2735, 509, + 551, 2776, 2737, 2718, 2715, 2723, 2718, 2728, 2731, 2727, + 2718, 2714, 2726, 2726, 2714, 2713, 2715, 2718, 2698, 2702, + 2716, 2708, 2698, 2701, 2715, 2872, 2700, 2709, 537, 2750, + 2693, 2702, 2747, 2691, 2701, 2704, 561, 2743, 2685, 2699, + 2740, 564, 2682, 2696, 2694, 2674, 2689, 542, 2686, 555, + 2677, 2675, 2675, 2681, 2672, 2685, 2669, 2731, 2684, 9, + 2678, 555, 2685, 2680, 2663, 2678, 2664, 2676, 2671, 2675, + + 2656, 2672, 2658, 2664, 2671, 2710, 517, 556, 2658, 2655, + 2654, 615, 2653, 2648, 2662, 596, 2661, 2707, 2640, 2662, + 582, 570, 2653, 2641, 597, 2872, 2872, 598, 2872, 2872, + 2639, 573, 585, 600, 2690, 614, 2700, 605, 614, 2872, + 2699, 2872, 2693, 658, 2652, 616, 2629, 591, 2650, 2689, + 2646, 2629, 2646, 2685, 2642, 2625, 2631, 2686, 2638, 2641, + 2632, 2635, 2621, 2632, 2679, 2673, 2628, 2625, 635, 2630, + 2630, 2673, 2605, 2666, 2616, 2611, 2605, 2604, 2606, 2609, + 2659, 2613, 2657, 2600, 651, 650, 2614, 2599, 2598, 2611, + 2609, 591, 2608, 2607, 2602, 2609, 2604, 2600, 599, 2598, + + 2601, 2583, 2595, 2645, 614, 629, 2639, 2583, 2599, 2636, + 2583, 2582, 2575, 2590, 2581, 2588, 2569, 2586, 2581, 681, + 2631, 2583, 2582, 2872, 2581, 413, 2572, 2570, 2582, 628, + 2557, 2558, 2571, 2561, 2553, 2614, 2556, 2570, 640, 2556, + 2568, 2567, 2566, 2557, 2561, 2559, 2604, 2561, 2560, 2559, + 2558, 2541, 2549, 2602, 2558, 2538, 2599, 2872, 2598, 2537, + 2536, 685, 2549, 2547, 2545, 2545, 2872, 2872, 2545, 2534, + 2526, 639, 2583, 2587, 2586, 2872, 2585, 626, 2872, 664, + 735, 2541, 663, 2583, 2526, 2521, 2580, 2531, 2573, 2523, + 2525, 648, 2515, 2523, 2511, 2872, 2516, 2509, 2521, 2524, + + 2511, 2510, 2872, 668, 2512, 2509, 673, 2507, 2501, 2508, + 2872, 2556, 2515, 2512, 2497, 2514, 2510, 2508, 2508, 2502, + 693, 2492, 2546, 2872, 2490, 2506, 2543, 2872, 2497, 2546, + 2499, 2497, 2495, 2496, 2480, 2489, 2496, 2533, 2481, 2480, + 2475, 2474, 2528, 2469, 652, 2488, 2462, 2469, 2485, 2522, + 2872, 2469, 2465, 710, 2463, 2518, 2471, 2470, 2464, 2456, + 2456, 2455, 2469, 2469, 2457, 2453, 2451, 2872, 2460, 2510, + 2872, 2449, 2503, 2445, 2444, 2449, 2504, 2457, 2451, 2445, + 2454, 2499, 2493, 2437, 2432, 2490, 2451, 2426, 2432, 677, + 2446, 2439, 2443, 2426, 2487, 2429, 2480, 2423, 2423, 2477, + + 2419, 2420, 2419, 2417, 2434, 2872, 2430, 2470, 2872, 2872, + 2418, 2416, 2872, 673, 2467, 2471, 2403, 2464, 2421, 2405, + 2422, 2465, 702, 2872, 2872, 2872, 695, 704, 666, 2402, + 736, 2872, 2401, 2411, 2872, 2410, 696, 2417, 2397, 2407, + 2410, 2451, 2393, 711, 2392, 2402, 2447, 2389, 2396, 2389, + 2391, 2400, 2382, 2382, 2397, 2396, 2380, 701, 2394, 2393, + 2393, 2375, 2380, 2424, 2378, 2387, 2384, 2378, 2426, 2367, + 2367, 2381, 2381, 2379, 2379, 2872, 2364, 2376, 2368, 2374, + 2365, 2373, 2371, 2872, 2357, 2411, 2372, 2354, 2366, 2358, + 2350, 718, 2348, 2347, 2341, 2346, 2361, 2358, 2359, 2338, + + 2348, 2354, 2400, 2345, 2336, 2337, 2339, 2334, 2347, 2339, + 2338, 712, 2386, 2334, 765, 2384, 2326, 2382, 2326, 2329, + 2322, 2337, 2872, 2382, 2319, 2333, 2328, 2324, 2872, 2372, + 2321, 2328, 2369, 2872, 2311, 2325, 2328, 2313, 2308, 2363, + 2358, 45, 262, 262, 278, 382, 433, 2872, 466, 598, + 612, 688, 692, 766, 703, 705, 722, 709, 768, 731, + 728, 713, 727, 734, 732, 2872, 782, 726, 2872, 742, + 734, 2872, 754, 768, 768, 760, 776, 738, 735, 747, + 737, 746, 758, 752, 741, 737, 751, 747, 754, 804, + 765, 811, 812, 769, 769, 813, 819, 770, 770, 771, + + 781, 786, 772, 775, 778, 787, 787, 771, 831, 781, + 791, 794, 835, 781, 842, 789, 793, 790, 792, 800, + 843, 845, 805, 852, 807, 810, 805, 796, 811, 816, + 817, 814, 816, 818, 817, 805, 819, 806, 818, 826, + 865, 824, 872, 873, 820, 812, 823, 873, 828, 881, + 2872, 831, 833, 829, 823, 839, 827, 837, 889, 885, + 886, 846, 847, 2872, 837, 838, 837, 850, 840, 853, + 900, 901, 902, 2872, 836, 859, 850, 839, 845, 903, + 864, 848, 860, 912, 851, 858, 910, 871, 867, 872, + 870, 917, 856, 868, 883, 880, 880, 879, 869, 867, + + 2872, 934, 888, 889, 877, 891, 882, 886, 897, 882, + 890, 893, 897, 904, 899, 891, 906, 930, 922, 951, + 952, 926, 899, 913, 916, 919, 916, 898, 905, 919, + 967, 921, 906, 919, 920, 918, 927, 2872, 2872, 923, + 918, 933, 930, 916, 918, 937, 934, 936, 925, 932, + 934, 943, 990, 948, 987, 946, 936, 935, 934, 945, + 941, 933, 2872, 944, 955, 940, 941, 947, 963, 1002, + 960, 955, 1005, 2872, 966, 958, 969, 967, 1015, 954, + 971, 957, 969, 978, 975, 962, 960, 1025, 961, 980, + 966, 972, 970, 2872, 2872, 980, 985, 990, 978, 988, + + 990, 2872, 991, 978, 996, 983, 985, 978, 995, 2872, + 984, 1002, 1003, 1042, 990, 991, 988, 992, 1010, 1054, + 2872, 2872, 2872, 997, 994, 1010, 1058, 1009, 999, 1000, + 996, 1009, 2872, 1020, 1015, 1062, 1017, 1019, 1012, 1014, + 1010, 1016, 1016, 1018, 1033, 1016, 1078, 1032, 1034, 1038, + 1025, 1016, 1084, 1038, 1041, 1027, 1026, 2872, 1033, 1034, + 1086, 1087, 1036, 1049, 1090, 1045, 1035, 1051, 1051, 1057, + 1038, 1047, 1055, 1042, 1073, 1083, 1071, 1079, 1091, 1108, + 1054, 1068, 1051, 1109, 1110, 1069, 1112, 2872, 1118, 1068, + 1059, 1075, 1079, 1123, 1070, 1069, 1064, 1065, 1077, 1072, + + 1068, 1077, 1072, 1075, 1088, 1097, 1136, 2872, 1087, 1081, + 1099, 1092, 1087, 1148, 1102, 1103, 1094, 1152, 1109, 1098, + 1101, 1109, 1111, 1096, 1116, 1109, 1114, 1111, 1109, 1121, + 1105, 1106, 2872, 1122, 1125, 1122, 1109, 1126, 1121, 1173, + 1113, 1132, 2872, 1119, 1132, 1135, 1121, 1116, 1134, 1177, + 1132, 1128, 1125, 1181, 1182, 1141, 1127, 1145, 1145, 1145, + 1146, 1147, 1149, 1134, 1149, 1147, 1137, 1138, 1154, 1141, + 1158, 2872, 1156, 1158, 1206, 1150, 2872, 1153, 1158, 1205, + 1153, 1165, 1159, 1157, 1154, 1160, 1170, 1218, 1159, 1160, + 1160, 1222, 1163, 1175, 1168, 2872, 1164, 1181, 1173, 1169, + + 1172, 2872, 1175, 1227, 1166, 1188, 1174, 1175, 1176, 1177, + 1183, 1191, 1182, 1187, 1197, 1245, 1199, 1247, 1194, 1202, + 1207, 1251, 1219, 1248, 1231, 1223, 1228, 2872, 1211, 1196, + 1208, 1204, 1218, 1201, 1201, 2872, 1204, 1203, 1266, 1206, + 2872, 1217, 1207, 1227, 1226, 1217, 1228, 1274, 1224, 1233, + 1226, 1230, 1234, 1217, 1242, 1239, 1240, 1231, 1289, 1233, + 2872, 1286, 1230, 1234, 2872, 1252, 1234, 1235, 1235, 1256, + 1253, 1255, 1242, 1260, 1248, 1262, 1255, 1264, 1244, 1259, + 1266, 1251, 1312, 1255, 1309, 2872, 1315, 1316, 1255, 1258, + 1266, 1277, 1260, 1280, 1268, 1264, 1271, 1280, 1268, 1275, + + 1276, 1288, 1332, 1276, 1334, 1275, 1274, 1278, 1292, 1296, + 1340, 1285, 1291, 1292, 1281, 1345, 1293, 1296, 1348, 2872, + 1286, 1303, 1296, 1287, 1306, 1294, 1304, 1300, 1295, 1314, + 1314, 2872, 1298, 1294, 1300, 2872, 1302, 1365, 1321, 1302, + 1308, 1322, 1308, 1324, 1310, 1327, 1369, 1319, 1376, 1377, + 1327, 1332, 1326, 1324, 1335, 1334, 1318, 2872, 1323, 2872, + 1332, 1330, 1343, 2872, 1357, 1370, 1358, 1372, 1359, 1394, + 1344, 1332, 1354, 1349, 1349, 1353, 1354, 1402, 2872, 1342, + 1342, 1345, 1362, 1357, 1361, 1356, 2872, 1365, 1349, 1366, + 1346, 1367, 1357, 1351, 1366, 1363, 1419, 1369, 2872, 1382, + + 1382, 1423, 1367, 1376, 1426, 1381, 1386, 1372, 1435, 1390, + 1376, 1377, 1391, 1389, 1386, 1382, 1400, 1401, 1402, 1385, + 2872, 1442, 1394, 2872, 1404, 2872, 1389, 1400, 1406, 1392, + 1411, 1404, 1402, 1395, 1407, 1454, 1415, 1404, 1411, 1412, + 1418, 2872, 1411, 2872, 1466, 1416, 1405, 1418, 1470, 2872, + 1409, 1415, 1416, 1427, 2872, 1428, 1422, 2872, 1415, 1418, + 1432, 1437, 1420, 1482, 1436, 1423, 1442, 1429, 1434, 1488, + 1484, 1434, 1491, 2872, 1439, 1436, 1447, 1495, 1496, 1497, + 1493, 1452, 1453, 1455, 2872, 2872, 1447, 1442, 1499, 1445, + 1461, 1507, 1446, 1458, 1510, 1448, 1465, 1508, 1491, 1492, + + 1484, 1517, 2872, 1461, 1472, 1465, 1474, 1465, 1476, 1478, + 2872, 1525, 1459, 1470, 1485, 1524, 1473, 1484, 1470, 1486, + 1487, 1484, 1531, 1491, 1538, 1539, 1495, 1486, 1496, 1503, + 1490, 1486, 1549, 1545, 1500, 1547, 1553, 1507, 2872, 1504, + 1494, 1510, 1501, 1504, 1513, 1510, 1500, 1503, 1503, 1565, + 1505, 1516, 1511, 1569, 1513, 1571, 1573, 1513, 1518, 1576, + 1572, 1510, 1525, 1518, 1521, 1534, 1535, 1533, 1585, 2872, + 1531, 1537, 1527, 2872, 1543, 1535, 1536, 1588, 1532, 1548, + 1596, 1597, 1538, 1548, 1600, 2872, 1545, 1602, 1543, 1541, + 1544, 2872, 1561, 1566, 2872, 1563, 1551, 1551, 2872, 2872, + + 2872, 1556, 1566, 1549, 1569, 1570, 1556, 1558, 1620, 1567, + 2872, 1622, 1568, 2872, 1562, 1625, 1590, 1608, 1623, 1610, + 2872, 1573, 1632, 1586, 1634, 1581, 1631, 1637, 2872, 1577, + 1639, 1586, 1580, 1577, 1580, 1582, 1640, 1600, 1642, 1592, + 1604, 1607, 2872, 2872, 1604, 1598, 1602, 1596, 1603, 1593, + 2872, 1601, 1616, 1601, 2872, 1603, 1603, 1661, 1606, 1663, + 1622, 1624, 1624, 1621, 1668, 1627, 2872, 1628, 1620, 1621, + 2872, 1622, 2872, 2872, 1632, 1625, 2872, 1631, 1636, 1637, + 1634, 1681, 1626, 1641, 1642, 1634, 2872, 1644, 1632, 1642, + 1634, 1634, 1635, 1636, 1693, 1699, 2872, 2872, 1695, 1639, + + 2872, 1640, 2872, 1654, 1642, 1650, 1707, 1652, 1644, 1657, + 1651, 1661, 1654, 1658, 1674, 1667, 1673, 1663, 1721, 1671, + 2872, 1680, 2872, 1677, 1725, 2872, 1675, 1703, 1704, 1710, + 1695, 1703, 1732, 2872, 1733, 2872, 1688, 1673, 2872, 1736, + 2872, 1737, 1691, 1696, 1678, 1741, 1682, 1738, 1701, 1695, + 1691, 1685, 1692, 1744, 1699, 1700, 1690, 1695, 1713, 1761, + 1712, 1763, 1713, 1711, 1761, 1722, 1722, 1764, 1709, 1714, + 1712, 1774, 1715, 1723, 1729, 1717, 1779, 1775, 1735, 1782, + 1740, 1729, 1723, 1786, 1725, 1726, 1740, 1790, 1744, 1735, + 1745, 1794, 1795, 1745, 1743, 2872, 1733, 1794, 1795, 1747, + + 1747, 1747, 1742, 1743, 1761, 2872, 1752, 1758, 1763, 1750, + 1751, 1813, 1752, 1752, 1754, 1812, 1755, 2872, 1751, 1769, + 1821, 2872, 1776, 1790, 1804, 1803, 1792, 1794, 2872, 2872, + 1828, 1778, 2872, 2872, 1769, 1780, 1832, 2872, 1833, 1787, + 1778, 1783, 1781, 1834, 1789, 1794, 1780, 1783, 1799, 1788, + 1786, 1800, 1787, 2872, 1789, 2872, 1794, 1812, 1799, 1808, + 1854, 1798, 1861, 1806, 1816, 1817, 2872, 1865, 1802, 1862, + 1817, 1864, 2872, 1812, 1871, 2872, 1811, 1826, 1814, 2872, + 1824, 1825, 1877, 2872, 1832, 1823, 1837, 2872, 2872, 1813, + 1831, 1840, 1822, 1840, 1829, 1882, 1831, 1827, 1832, 1891, + + 1830, 1831, 1894, 1890, 1896, 2872, 1846, 1844, 1899, 1849, + 1839, 1855, 1848, 2872, 1904, 1882, 1906, 1888, 1903, 1909, + 2872, 1855, 1911, 1850, 2872, 2872, 1852, 1854, 1864, 1911, + 1856, 1871, 1858, 1920, 1874, 1860, 1867, 1867, 1925, 1879, + 1880, 1872, 1868, 1870, 1884, 1872, 1884, 2872, 1931, 1879, + 1876, 2872, 1892, 1879, 1892, 1879, 1900, 2872, 1897, 1945, + 1895, 1892, 1893, 2872, 1949, 1907, 1906, 1905, 1898, 1903, + 1904, 1902, 1913, 1897, 1906, 1955, 1961, 2872, 1911, 1963, + 2872, 1909, 2872, 1908, 1904, 2872, 1911, 1968, 1970, 1966, + 2872, 1967, 2872, 1949, 1955, 2872, 1927, 2872, 1971, 1920, + + 1931, 1932, 1917, 1918, 1926, 1983, 2872, 1928, 1980, 1981, + 1933, 2872, 1928, 1946, 1947, 1929, 1935, 1948, 1943, 1940, + 1945, 1943, 1998, 1939, 1955, 2003, 1948, 1945, 1945, 2872, + 1960, 1961, 1962, 2872, 1956, 1964, 2012, 1962, 1952, 1960, + 1973, 1974, 1955, 1956, 1963, 2872, 1965, 2872, 1979, 1976, + 1968, 2020, 1978, 2872, 2872, 1982, 2008, 2009, 2007, 1970, + 1970, 1979, 1986, 1979, 1978, 1989, 1976, 2872, 1992, 1980, + 1983, 2042, 1979, 1998, 1991, 2041, 2002, 1995, 1994, 2003, + 2005, 2009, 2872, 2048, 2002, 2872, 2007, 1998, 2060, 2000, + 2062, 2063, 2059, 2065, 2872, 2004, 2062, 2021, 2008, 2016, + + 2027, 2014, 2025, 2011, 2009, 2017, 2016, 2017, 2023, 2014, + 2059, 2083, 2065, 2085, 2035, 2024, 2037, 2027, 2044, 2043, + 2087, 2028, 2047, 2048, 2872, 2053, 2046, 2093, 2089, 2053, + 2040, 2055, 2103, 2057, 2060, 2055, 2060, 2049, 2060, 2872, + 2112, 2872, 2872, 2059, 2872, 2114, 2053, 2116, 2056, 2118, + 2063, 2115, 2116, 2075, 2118, 2061, 2065, 2126, 2084, 2128, + 2084, 2111, 2872, 2107, 2872, 2077, 2071, 2068, 2130, 2093, + 2086, 2082, 2139, 2079, 2081, 2080, 2087, 2099, 2134, 2085, + 2147, 2088, 2872, 2093, 2103, 2105, 2107, 2090, 2098, 2872, + 2104, 2872, 2106, 2872, 2112, 2872, 2113, 2113, 2104, 2163, + + 2104, 2114, 2099, 2872, 2112, 2872, 2114, 2145, 2151, 2123, + 2121, 2173, 2111, 2113, 2110, 2134, 2872, 2121, 2128, 2129, + 2132, 2128, 2183, 2123, 2872, 2180, 2124, 2132, 2141, 2127, + 2143, 2142, 2131, 2138, 2133, 2133, 2147, 2142, 2872, 2153, + 2141, 2197, 2145, 2157, 2185, 2206, 2207, 2151, 2872, 2151, + 2163, 2211, 2157, 2159, 2157, 2158, 2216, 2174, 2872, 2167, + 2154, 2169, 2174, 2166, 2172, 2224, 2225, 2164, 2180, 2228, + 2229, 2170, 2175, 2171, 2187, 2170, 2182, 2176, 2238, 2872, + 2872, 2183, 2194, 2241, 2872, 2195, 2180, 2198, 2189, 2872, + 2185, 2191, 2205, 2201, 2194, 2189, 2195, 2872, 2872, 2253, + + 2254, 2872, 2872, 2194, 2202, 2197, 2253, 2216, 2213, 2261, + 2872, 2257, 2220, 2872, 2264, 2203, 2266, 2206, 2207, 2220, + 2219, 2220, 2210, 2222, 2218, 2872, 2872, 2213, 2276, 2226, + 2235, 2228, 2275, 2872, 2226, 2220, 2872, 2232, 2872, 2279, + 2238, 2286, 2225, 2241, 2289, 2242, 2291, 2292, 2872, 2246, + 2240, 2233, 2253, 2240, 2252, 2243, 2247, 2241, 2872, 2298, + 2244, 2872, 2254, 2872, 2872, 2245, 2253, 2303, 2260, 2253, + 2265, 2312, 2257, 2257, 2315, 2254, 2256, 2271, 2319, 2320, + 2259, 2275, 2260, 2277, 2872, 2325, 2269, 2872, 2276, 2328, + 2269, 2872, 2872, 2279, 2331, 2276, 2333, 2872, 2281, 2280, + + 2872, 2336, 2282, 2872, 2276, 2872, 2276, 2293, 2872, 2294, + 2342, 2285, 2344, 2345, 2872, 2346, 2872, 2872, 2872, 2872, + 2352, 2355, 2358, 2359, 2361, 2364, 2367, 2370 } ; -static const flex_int16_t yy_def[2394] = +static const flex_int16_t yy_def[2429] = { 0, - 2386, 2386, 2387, 2387, 2386, 2386, 2386, 2386, 2386, 2386, - 2385, 2385, 2385, 2385, 2385, 2388, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2389, - 2385, 2385, 2385, 2390, 15, 2385, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2391, 45, 45, 45, + 2421, 2421, 2422, 2422, 2421, 2421, 2421, 2421, 2421, 2421, + 2420, 2420, 2420, 2420, 2420, 2423, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2424, + 2420, 2420, 2420, 2425, 15, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2426, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2388, 2385, - 2385, 2385, 2385, 2385, 2385, 2392, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2389, 2385, 2390, + 45, 45, 45, 45, 45, 45, 45, 45, 2423, 2420, + 2420, 2420, 2420, 2420, 2420, 2427, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2424, 2420, 2425, - 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2393, 45, 2391, 45, 45, 45, + 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2428, 45, 2426, 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, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2392, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 45, 45, 45, 45, + 2427, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2393, 2385, - 2385, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2428, 2420, 2420, 117, 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, 2385, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 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, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 2385, 45, 2385, 45, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 2420, + 45, 2420, 45, 117, 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, @@ -1325,245 +1332,248 @@ static const flex_int16_t yy_def[2394] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, - 45, 45, 45, 45, 45, 2385, 2385, 2385, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 2385, 45, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 45, 2385, 45, - + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 2420, 2420, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 2420, 45, + 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 2385, 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, 2385, 45, 45, 2385, 2385, 45, 45, 2385, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 2385, 2385, - 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 2385, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 2420, 2420, + 45, 45, 2420, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 2420, 2420, 2420, 45, 45, 45, 45, + 45, 2420, 45, 45, 2420, 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, 2385, - 45, 45, 45, 45, 45, 45, 45, 2385, 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, 2420, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 2385, - 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 2420, 45, + 45, 2420, 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, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2385, 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, 2385, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 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, 2385, 2385, 45, 45, 45, 45, + 2420, 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, 2385, + 45, 45, 45, 45, 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, - 2385, 45, 45, 45, 45, 45, 45, 2385, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2385, 2385, 2385, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, + + 45, 2420, 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, + 2420, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 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, 2385, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 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, 2385, 45, 45, 45, 45, 2385, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2420, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 2385, + 45, 2420, 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, 2385, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 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, 2385, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, - 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 45, - 45, 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 2420, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, - 45, 45, 45, 45, 2385, 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, 2385, 45, 45, 45, 2385, + 2420, 45, 45, 2420, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, - 2385, 45, 45, 45, 2385, 2385, 2385, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 2385, 2385, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 2385, + 45, 2420, 45, 2420, 45, 45, 45, 45, 45, 2420, + 45, 45, 45, 45, 2420, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 2385, 45, 2385, 2385, 45, - 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 2385, 45, 45, 2385, 45, 2385, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 2385, 45, 45, 2385, 45, 2385, 45, 45, 45, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, + 2420, 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, 2420, 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, 2420, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + 45, 2420, 45, 45, 2420, 45, 45, 45, 2420, 2420, + + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 2420, 45, 2420, 2420, 45, 45, 2420, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 2420, 45, 45, + + 2420, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, - 45, 45, 45, 2385, 2385, 45, 45, 2385, 2385, 45, - - 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, - 2385, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, - 45, 45, 2385, 2385, 45, 45, 45, 45, 45, 45, + 2420, 45, 2420, 45, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 2420, 45, 45, 2420, 45, + 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 45, 2385, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, - 45, 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2385, 45, 45, 2385, 45, 2385, 45, 45, - 2385, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, - 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 45, 2420, 45, 45, 45, 45, 45, 45, 2420, 2420, + 45, 45, 2420, 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 45, 2385, 45, 45, 45, 45, 45, 2385, 2385, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 2420, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 45, 45, 2420, 45, 45, 2420, 45, 45, 45, 2420, + 45, 45, 45, 2420, 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 45, 2420, 45, 45, 45, 45, 45, 2420, 45, 45, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, + 2420, 45, 2420, 45, 45, 2420, 45, 45, 45, 45, + 2420, 45, 2420, 45, 45, 2420, 45, 2420, 45, 45, + + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2420, + 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 45, 2420, 45, 45, + 45, 45, 45, 2420, 2420, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 45, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 45, 2385, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, - 45, 45, 45, 45, 2385, 45, 2385, 45, 2385, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, - 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2385, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2420, + 45, 2420, 2420, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 2420, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2385, 2385, 45, 45, 45, 2385, - 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, - 45, 45, 2385, 2385, 45, 45, 2385, 2385, 45, 45, - 45, 45, 45, 45, 45, 2385, 45, 45, 2385, 45, + 45, 45, 2420, 45, 45, 45, 45, 45, 45, 2420, + 45, 2420, 45, 2420, 45, 2420, 45, 45, 45, 45, + + 45, 45, 45, 2420, 45, 2420, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, + 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2385, 2385, 45, 45, 45, 45, 45, 45, 2385, 45, - - 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2385, 45, 45, 2385, 45, 2385, 2385, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2420, + 2420, 45, 45, 45, 2420, 45, 45, 45, 45, 2420, + 45, 45, 45, 45, 45, 45, 45, 2420, 2420, 45, + + 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, + 2420, 45, 45, 2420, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2420, 2420, 45, 45, 45, + 45, 45, 45, 2420, 45, 45, 2420, 45, 2420, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2420, 45, + 45, 2420, 45, 2420, 2420, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, - 45, 45, 2385, 45, 45, 45, 2385, 2385, 45, 45, - 45, 45, 2385, 45, 45, 2385, 45, 45, 2385, 45, - 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 2385, - 45, 2385, 2385, 2385, 0, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385 + 45, 45, 45, 45, 2420, 45, 45, 2420, 45, 45, + 45, 2420, 2420, 45, 45, 45, 45, 2420, 45, 45, + 2420, 45, 45, 2420, 45, 2420, 45, 45, 2420, 45, + 45, 45, 45, 45, 2420, 45, 2420, 2420, 2420, 0, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420 } ; -static const flex_int16_t yy_nxt[2914] = +static const flex_int16_t yy_nxt[2949] = { 0, - 2385, 13, 14, 13, 2385, 15, 16, 101, 17, 18, + 2420, 13, 14, 13, 2420, 15, 16, 101, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 2385, 37, 14, 37, 86, 25, 26, 38, 37, - 14, 37, 42, 27, 42, 38, 2385, 2385, 28, 90, + 85, 2420, 37, 14, 37, 86, 25, 26, 38, 37, + 14, 37, 42, 27, 42, 38, 2420, 2420, 28, 90, 13, 14, 13, 91, 29, 90, 30, 102, 13, 14, - 13, 202, 25, 31, 13, 14, 13, 42, 40, 42, - 417, 32, 13, 14, 13, 90, 40, 33, 418, 167, - 92, 93, 91, 168, 34, 35, 13, 14, 13, 202, + 13, 205, 25, 31, 13, 14, 13, 42, 40, 42, + 426, 32, 13, 14, 13, 90, 40, 33, 427, 168, + 92, 93, 91, 169, 34, 35, 13, 14, 13, 205, 15, 16, 91, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 39, 13, 14, 13, 92, 92, 25, 26, 39, 13, 14, 13, 42, 27, 42, - 886, 94, 121, 28, 108, 153, 41, 104, 105, 29, + 890, 94, 121, 28, 108, 153, 41, 104, 105, 29, 107, 30, 113, 154, 41, 141, 122, 25, 31, 95, - 142, 245, 88, 143, 88, 155, 32, 89, 89, 89, - 89, 89, 33, 108, 104, 105, 107, 246, 113, 34, + 142, 249, 88, 143, 88, 155, 32, 89, 89, 89, + 89, 89, 33, 108, 104, 105, 107, 250, 113, 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, 49, 50, 45, 51, 45, @@ -1573,305 +1583,308 @@ static const flex_int16_t yy_nxt[2914] = 59, 60, 61, 62, 63, 45, 64, 65, 52, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 45, 45, 45, 45, 45, 80, 114, 81, - 81, 81, 81, 81, 80, 271, 83, 83, 83, 83, + 81, 81, 81, 81, 80, 275, 83, 83, 83, 83, 83, 107, 82, 84, 84, 84, 84, 84, 80, 82, - 83, 83, 83, 83, 83, 114, 82, 109, 163, 111, - 189, 104, 164, 82, 190, 110, 129, 107, 82, 130, - 131, 112, 165, 132, 133, 82, 199, 191, 140, 232, - 233, 101, 82, 109, 272, 111, 134, 189, 118, 82, - 45, 190, 189, 110, 119, 159, 45, 120, 45, 45, - - 112, 45, 199, 160, 45, 161, 191, 45, 144, 116, - 162, 145, 45, 45, 887, 45, 45, 205, 146, 192, + 83, 83, 83, 83, 83, 114, 82, 109, 188, 111, + 192, 104, 189, 82, 193, 110, 129, 107, 82, 130, + 131, 112, 891, 132, 133, 82, 202, 194, 140, 235, + 236, 101, 82, 109, 276, 111, 134, 192, 118, 82, + 45, 193, 192, 110, 119, 159, 45, 120, 45, 45, + + 112, 45, 202, 160, 45, 161, 194, 45, 144, 116, + 162, 145, 45, 45, 892, 45, 45, 194, 146, 195, 147, 102, 45, 45, 45, 45, 45, 45, 105, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 205, 114, 888, 123, 45, - 149, 150, 124, 45, 151, 105, 125, 45, 191, 126, - 152, 135, 127, 136, 207, 45, 128, 109, 113, 45, - 190, 45, 117, 114, 137, 110, 176, 177, 198, 201, - 889, 169, 138, 187, 139, 170, 111, 194, 171, 156, - 208, 157, 207, 158, 183, 172, 173, 193, 112, 203, - - 174, 175, 280, 110, 184, 281, 201, 198, 223, 185, - 224, 206, 178, 242, 179, 226, 208, 180, 84, 84, - 84, 84, 84, 890, 227, 228, 243, 181, 203, 257, - 244, 82, 219, 80, 182, 81, 81, 81, 81, 81, - 206, 220, 258, 453, 88, 221, 88, 100, 82, 89, - 89, 89, 89, 89, 100, 454, 80, 82, 83, 83, - 83, 83, 83, 84, 84, 84, 84, 84, 262, 203, - 198, 82, 263, 239, 82, 240, 82, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 100, 213, 247, - 301, 100, 248, 293, 294, 100, 249, 82, 268, 214, - - 269, 275, 82, 100, 302, 435, 436, 100, 205, 100, - 100, 211, 284, 313, 206, 318, 276, 277, 278, 212, - 212, 212, 212, 212, 437, 207, 438, 314, 212, 212, - 212, 212, 212, 212, 295, 307, 306, 319, 296, 320, - 319, 308, 297, 310, 318, 318, 320, 326, 329, 327, - 285, 286, 287, 312, 212, 212, 212, 212, 212, 212, - 330, 288, 336, 289, 319, 320, 290, 322, 291, 292, - 331, 332, 323, 326, 321, 327, 334, 329, 352, 354, - 404, 353, 326, 382, 331, 407, 333, 355, 330, 391, - 336, 442, 334, 356, 405, 408, 331, 332, 420, 451, - - 383, 421, 334, 337, 337, 337, 337, 337, 339, 456, - 398, 456, 337, 337, 337, 337, 337, 337, 334, 459, - 461, 464, 466, 462, 461, 467, 474, 496, 562, 460, - 891, 466, 446, 497, 524, 456, 475, 457, 337, 337, - 337, 337, 337, 337, 525, 392, 892, 464, 393, 461, - 462, 466, 467, 472, 452, 470, 470, 470, 470, 470, - 542, 612, 893, 725, 470, 470, 470, 470, 470, 470, - 512, 516, 532, 533, 540, 513, 517, 534, 556, 607, - 563, 567, 577, 557, 541, 568, 578, 612, 607, 646, - 470, 470, 470, 470, 470, 470, 599, 613, 625, 614, - - 660, 600, 647, 683, 648, 661, 611, 756, 607, 745, - 626, 692, 746, 684, 894, 764, 753, 616, 726, 754, - 757, 760, 765, 819, 820, 613, 514, 614, 758, 772, - 900, 515, 518, 756, 755, 787, 879, 895, 788, 558, - 45, 45, 45, 45, 45, 754, 901, 880, 757, 45, - 45, 45, 45, 45, 45, 636, 840, 758, 898, 637, - 844, 896, 897, 755, 841, 845, 895, 638, 899, 639, - 640, 641, 642, 643, 902, 45, 45, 45, 45, 45, - 45, 903, 904, 905, 906, 773, 907, 898, 896, 897, - 908, 909, 910, 911, 899, 912, 915, 913, 916, 917, - - 921, 922, 846, 914, 918, 919, 923, 920, 924, 925, - 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, - 936, 937, 938, 939, 940, 941, 942, 945, 946, 947, - 943, 948, 949, 950, 944, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, - 967, 968, 969, 970, 971, 972, 973, 960, 974, 976, - 977, 975, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, - - 1017, 1018, 1021, 1022, 1023, 1015, 1024, 1028, 1019, 1029, - 1030, 1031, 1020, 1032, 1033, 1034, 1035, 1036, 1037, 1025, - 1038, 1026, 1039, 1040, 1041, 1027, 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, 1047, 1074, - 1075, 1048, 1076, 1077, 1051, 1078, 1079, 1080, 1082, 1083, - 1084, 1085, 1081, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1107, 1108, 1109, 1110, 1106, 1111, 1112, - - 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + 45, 45, 45, 45, 45, 893, 197, 113, 123, 45, + 149, 150, 124, 45, 151, 105, 125, 45, 114, 126, + 152, 135, 127, 136, 163, 45, 128, 109, 164, 45, + 201, 45, 117, 185, 137, 110, 178, 179, 165, 193, + 204, 166, 138, 186, 139, 114, 111, 206, 187, 156, + 170, 157, 894, 158, 171, 190, 208, 172, 112, 201, + + 209, 326, 210, 110, 173, 174, 196, 204, 175, 176, + 177, 226, 180, 227, 181, 211, 206, 182, 84, 84, + 84, 84, 84, 575, 208, 238, 239, 183, 326, 209, + 210, 82, 261, 80, 184, 81, 81, 81, 81, 81, + 243, 211, 244, 895, 88, 262, 88, 100, 82, 89, + 89, 89, 89, 89, 100, 246, 80, 82, 83, 83, + 83, 83, 83, 84, 84, 84, 84, 84, 247, 266, + 201, 82, 248, 267, 82, 576, 82, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 100, 216, 298, + 299, 100, 222, 251, 307, 100, 252, 82, 208, 217, + + 253, 223, 82, 100, 229, 224, 206, 100, 308, 100, + 100, 214, 284, 230, 231, 285, 209, 896, 210, 215, + 215, 215, 215, 215, 279, 289, 312, 327, 215, 215, + 215, 215, 215, 215, 300, 272, 319, 273, 301, 280, + 281, 282, 302, 313, 325, 316, 318, 337, 325, 314, + 320, 326, 343, 327, 215, 215, 215, 215, 215, 215, + 327, 333, 334, 290, 291, 292, 336, 338, 339, 359, + 341, 399, 360, 325, 293, 337, 294, 328, 329, 295, + 343, 296, 297, 445, 446, 390, 330, 333, 334, 333, + 338, 412, 461, 338, 339, 336, 341, 344, 344, 344, + + 344, 344, 391, 415, 361, 413, 344, 344, 344, 344, + 344, 344, 362, 416, 429, 346, 406, 430, 363, 447, + 340, 448, 341, 467, 467, 452, 463, 400, 472, 470, + 401, 473, 344, 344, 344, 344, 344, 344, 464, 471, + 475, 477, 478, 485, 536, 507, 897, 462, 341, 467, + 468, 508, 627, 486, 537, 528, 524, 472, 473, 472, + 529, 525, 456, 544, 545, 477, 475, 552, 546, 478, + 477, 481, 481, 481, 481, 481, 622, 553, 627, 898, + 481, 481, 481, 481, 481, 481, 568, 742, 483, 580, + 613, 569, 590, 581, 554, 614, 591, 628, 676, 629, + + 622, 640, 777, 677, 699, 622, 481, 481, 481, 481, + 481, 481, 526, 641, 700, 626, 530, 527, 651, 775, + 708, 791, 652, 763, 661, 628, 764, 629, 773, 631, + 653, 777, 654, 655, 656, 657, 658, 662, 776, 663, + 899, 772, 743, 774, 900, 775, 779, 570, 45, 45, + 45, 45, 45, 903, 773, 904, 783, 45, 45, 45, + 45, 45, 45, 784, 806, 860, 776, 807, 839, 840, + 864, 901, 774, 861, 905, 865, 906, 792, 907, 908, + 909, 910, 902, 45, 45, 45, 45, 45, 45, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 921, 920, + + 923, 924, 922, 925, 926, 927, 928, 929, 930, 931, + 932, 933, 866, 934, 935, 936, 938, 939, 940, 941, + 942, 937, 943, 944, 919, 918, 920, 921, 922, 945, + 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, + 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, + 966, 969, 970, 971, 967, 972, 973, 974, 968, 975, + 976, 977, 978, 979, 980, 981, 982, 983, 985, 986, + 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, + 997, 984, 998, 1000, 1001, 999, 1002, 1003, 1004, 1005, + 1006, 1007, 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, 1033, 1035, 1036, + 1037, 1038, 1034, 1039, 1041, 1042, 1043, 1046, 1047, 1048, + 1040, 1049, 1053, 1044, 1054, 1055, 1056, 1045, 1057, 1058, + 1059, 1060, 1061, 1062, 1050, 1063, 1051, 1064, 1065, 1066, + 1052, 1067, 1068, 1069, 1070, 1072, 1073, 1071, 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, 1075, 1102, 1103, 1076, + 1104, 1105, 1079, 1106, 1107, 1108, 1110, 1111, 1112, 1113, + + 1109, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1138, 1139, 1140, 1137, 1141, 1142, - 1143, 1144, 1146, 1147, 1148, 1149, 1145, 1150, 1151, 1152, + 1133, 1135, 1136, 1137, 1138, 1134, 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, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1163, 1164, 1166, 1167, 1168, 1165, 1169, 1170, 1171, 1172, + 1174, 1175, 1176, 1177, 1173, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1193, 1194, 1197, 1195, 1198, 1199, 1196, 1200, 1201, 1202, + 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, 1218, 1219, 1193, 1192, 1220, - 1194, 1195, 1196, 1221, 1222, 1223, 1224, 1226, 1227, 1225, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 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, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, + 1223, 1224, 1225, 1228, 1226, 1229, 1230, 1227, 1231, 1232, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1224, 1223, + 1251, 1225, 1226, 1227, 1252, 1253, 1254, 1255, 1257, 1258, + 1256, 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, 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, 1256, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1329, 1330, 1331, 1332, 1333, 1335, 1334, 1336, 1337, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, + 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, + 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1287, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1332, 1334, 1335, 1336, 1361, 1363, 1364, - 1365, 1366, 1367, 1368, 1369, 1362, 1370, 1371, 1372, 1373, - 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, - 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1393, 1395, - 1396, 1397, 1392, 1398, 1399, 1400, 1401, 1402, 1403, 1404, - - 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, - 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, - 1435, 1436, 1437, 1438, 1439, 1394, 1440, 1441, 1442, 1443, - 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, - 1464, 1465, 1466, 1468, 1467, 1469, 1470, 1471, 1472, 1473, + 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, + 1367, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, + 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, + 1388, 1389, 1390, 1391, 1392, 1393, 1365, 1367, 1368, 1369, + 1394, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1395, 1403, + + 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, + 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, + 1424, 1426, 1428, 1429, 1430, 1425, 1431, 1432, 1433, 1434, + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, + 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, + 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1427, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1465, 1491, 1464, - 1467, 1466, 1468, 1492, 1493, 1494, 1495, 1496, 1497, 1498, + 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1502, 1501, 1503, - 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, - 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, - 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1499, 1525, 1498, 1501, 1500, 1502, 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, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, - 1589, 1590, 1591, 1592, 1593, 1594, 1596, 1597, 1598, 1599, - - 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, - 1610, 1583, 1584, 1611, 1612, 1585, 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, 1595, 1639, 1640, 1641, 1642, 1643, 1644, 1645, - 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1646, 1654, 1655, - 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, - 1666, 1667, 1668, 1670, 1671, 1672, 1673, 1669, 1674, 1675, - 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, - 1686, 1687, 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1698, - - 1692, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, - 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, - 1717, 1718, 1696, 1694, 1719, 1693, 1720, 1697, 1721, 1722, - 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, - 1696, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, - 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, - 1762, 1763, 1764, 1765, 1769, 1766, 1770, 1771, 1767, 1772, - 1773, 1768, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, - 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1792, - - 1791, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, - 1802, 1803, 1805, 1806, 1809, 1810, 1807, 1811, 1812, 1813, - 1814, 1815, 1816, 1817, 1789, 1790, 1791, 1808, 1792, 1793, - 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, - 1828, 1829, 1830, 1831, 1832, 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, 1804, 1861, 1862, 1863, 1864, 1865, 1866, 1867, - 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, - 1878, 1879, 1880, 1881, 1882, 1884, 1883, 1885, 1886, 1887, - - 1888, 1889, 1890, 1891, 1892, 1833, 1893, 1894, 1895, 1896, - 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, - 1882, 1907, 1881, 1883, 1884, 1908, 1885, 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, + 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, + + 1599, 1600, 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, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, + 1640, 1641, 1642, 1643, 1644, 1645, 1618, 1619, 1646, 1647, + 1620, 1648, 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, 1630, 1674, 1675, + 1676, 1677, 1678, 1679, 1680, 1682, 1683, 1684, 1685, 1686, + 1687, 1688, 1681, 1689, 1690, 1691, 1692, 1693, 1694, 1695, + + 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1705, 1706, + 1707, 1708, 1704, 1709, 1710, 1711, 1712, 1713, 1714, 1715, + 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, + 1726, 1728, 1729, 1730, 1733, 1727, 1732, 1734, 1735, 1736, + 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, + 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1731, 1729, 1754, + 1728, 1755, 1732, 1756, 1757, 1758, 1759, 1760, 1761, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, + 1773, 1774, 1775, 1776, 1777, 1731, 1778, 1779, 1780, 1781, + 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, + + 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1804, + 1801, 1805, 1806, 1802, 1807, 1808, 1803, 1809, 1810, 1811, + 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1822, 1823, 1824, 1825, 1827, 1826, 1828, 1829, 1830, 1831, + 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1840, 1841, 1844, + 1845, 1842, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1824, + 1825, 1826, 1843, 1827, 1828, 1853, 1854, 1855, 1856, 1857, + 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, + 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, 1839, 1896, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, + 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, + 1919, 1918, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, + 1868, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, + 1937, 1938, 1939, 1940, 1941, 1917, 1942, 1916, 1918, 1919, + 1943, 1920, 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, 1957, 1959, 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, 2016, 2017, 2018, 2019, 2015, - 2020, 2021, 2022, 2023, 2025, 2024, 2026, 2027, 2028, 2029, + 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, 1992, 1994, 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, 2045, 2046, 2047, 2048, 2049, - 2023, 2024, 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, + 2051, 2052, 2053, 2054, 2050, 2055, 2056, 2057, 2058, 2060, + 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, + 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, - 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, + 2080, 2081, 2082, 2083, 2084, 2058, 2059, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, - 2098, 2099, 2100, 2101, 2076, 2077, 2102, 2078, 2103, 2104, - 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, - 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2123, 2124, 2122, - 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, - 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, - 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2127, - 2129, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, - 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, - - 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, - 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, - 2193, 2194, 2195, 2196, 2197, 2198, 2173, 2199, 2174, 2200, - 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, - 2212, 2211, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, - 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, - 2231, 2232, 2233, 2234, 2235, 2236, 2210, 2211, 2237, 2238, - 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, - 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, - 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, - - 2269, 2244, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, - 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, - 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, - 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, + 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, + 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, + 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, + 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2111, + 2112, 2137, 2113, 2138, 2139, 2140, 2141, 2142, 2143, 2144, + 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, + 2155, 2156, 2158, 2159, 2157, 2160, 2161, 2162, 2163, 2164, + 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, + + 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, + 2185, 2186, 2187, 2188, 2162, 2164, 2189, 2190, 2191, 2192, + 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, + 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, + 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, + 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2208, 2234, 2209, 2235, 2236, 2237, 2238, 2239, 2240, + 2241, 2242, 2243, 2244, 2245, 2247, 2246, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, + 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, + + 2271, 2245, 2246, 2272, 2273, 2274, 2275, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, + 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2301, 2302, 2303, 2304, 2279, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, - 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2336, 2335, 2337, + 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, - 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, - 2378, 2379, 2380, 2381, 2382, 2383, 2384, 12, 12, 12, - 36, 36, 36, 79, 98, 79, 100, 100, 100, 115, - 115, 115, 188, 885, 188, 209, 209, 209, 884, 883, - 882, 881, 878, 877, 876, 875, 874, 873, 872, 871, - 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, - 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, - 850, 849, 848, 847, 843, 842, 839, 838, 837, 836, - 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, - 825, 824, 823, 822, 821, 818, 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, 786, 785, 784, 783, 782, - 781, 780, 779, 778, 777, 776, 775, 774, 771, 770, - 769, 768, 767, 766, 763, 762, 761, 759, 753, 752, - 751, 750, 749, 748, 747, 744, 743, 742, 741, 740, - 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, - 729, 728, 727, 724, 723, 722, 721, 720, 719, 718, - 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, - 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, - - 697, 696, 695, 694, 693, 691, 690, 689, 688, 687, - 686, 685, 682, 681, 680, 679, 678, 677, 676, 675, - 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, - 664, 663, 662, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 650, 649, 645, 644, 635, 634, 633, 632, - 631, 630, 629, 628, 627, 624, 623, 622, 621, 620, - 619, 618, 617, 615, 611, 610, 609, 608, 606, 605, - 604, 603, 602, 601, 598, 597, 596, 595, 594, 593, - 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, - 582, 581, 580, 579, 576, 575, 574, 573, 572, 571, - - 570, 569, 566, 565, 564, 561, 560, 559, 555, 554, - 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, - 543, 539, 538, 537, 536, 535, 531, 530, 529, 528, - 527, 526, 523, 522, 521, 520, 519, 511, 510, 509, - 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, - 498, 495, 494, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, - 476, 473, 471, 469, 468, 465, 463, 458, 455, 450, - 449, 448, 447, 445, 444, 443, 441, 440, 439, 434, - 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, - - 423, 422, 419, 416, 415, 414, 413, 412, 411, 410, - 409, 406, 403, 402, 401, 400, 399, 397, 396, 395, - 394, 390, 389, 388, 387, 386, 385, 384, 381, 380, - 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, - 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, - 359, 358, 357, 351, 350, 349, 348, 347, 346, 345, - 344, 343, 342, 341, 340, 338, 210, 335, 333, 328, - 325, 324, 317, 316, 315, 311, 309, 305, 304, 303, - 300, 299, 298, 283, 282, 279, 274, 273, 270, 267, - 266, 265, 264, 261, 260, 259, 256, 255, 254, 253, - - 252, 251, 250, 241, 238, 237, 236, 235, 234, 231, - 230, 229, 225, 222, 218, 217, 216, 215, 210, 204, - 200, 197, 196, 195, 186, 166, 148, 106, 103, 43, - 99, 97, 96, 87, 43, 2385, 11, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385 + 2368, 2369, 2371, 2370, 2372, 2373, 2374, 2375, 2376, 2377, + 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, + 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, + 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, + 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, + 2418, 2419, 12, 12, 12, 36, 36, 36, 79, 98, + 79, 100, 100, 100, 115, 115, 115, 191, 889, 191, + 212, 212, 212, 888, 887, 886, 885, 884, 883, 882, + 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, + 871, 870, 869, 868, 867, 863, 862, 859, 858, 857, + + 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, + 846, 845, 844, 843, 842, 841, 838, 837, 836, 835, + 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, + 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, + 814, 813, 812, 811, 810, 809, 808, 805, 804, 803, + 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, + 790, 789, 788, 787, 786, 785, 782, 781, 780, 778, + 772, 771, 770, 769, 768, 767, 766, 765, 762, 761, + 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, + 750, 749, 748, 747, 746, 745, 744, 741, 740, 739, + + 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, + 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, + 707, 706, 705, 704, 703, 702, 701, 698, 697, 696, + 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, + 685, 684, 683, 682, 681, 680, 679, 678, 675, 674, + 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, + 660, 659, 650, 649, 648, 647, 646, 645, 644, 643, + 642, 639, 638, 637, 636, 635, 634, 633, 632, 630, + 626, 625, 624, 623, 621, 620, 619, 618, 617, 616, + + 615, 612, 611, 610, 609, 608, 607, 606, 605, 604, + 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, + 593, 592, 589, 588, 587, 586, 585, 584, 583, 582, + 579, 578, 577, 574, 573, 572, 571, 567, 566, 565, + 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, + 551, 550, 549, 548, 547, 543, 542, 541, 540, 539, + 538, 535, 534, 533, 532, 531, 523, 522, 521, 520, + 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, + 509, 506, 505, 504, 503, 502, 501, 500, 499, 498, + 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, + + 487, 484, 482, 480, 479, 476, 474, 469, 466, 465, + 460, 459, 458, 457, 455, 454, 453, 451, 450, 449, + 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, + 434, 433, 432, 431, 428, 425, 424, 423, 422, 421, + 420, 419, 418, 417, 414, 411, 410, 409, 408, 407, + 405, 404, 403, 402, 398, 397, 396, 395, 394, 393, + 392, 389, 388, 387, 386, 385, 384, 383, 382, 381, + 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 358, 357, 356, + 355, 354, 353, 352, 351, 350, 349, 348, 347, 345, + + 213, 342, 340, 335, 332, 331, 324, 323, 322, 321, + 317, 315, 311, 310, 309, 306, 305, 304, 303, 288, + 287, 286, 283, 278, 277, 274, 271, 270, 269, 268, + 265, 264, 263, 260, 259, 258, 257, 256, 255, 254, + 245, 242, 241, 240, 237, 234, 233, 232, 228, 225, + 221, 220, 219, 218, 213, 207, 203, 200, 199, 198, + 167, 148, 106, 103, 43, 99, 97, 96, 87, 43, + 2420, 11, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420 } ; -static const flex_int16_t yy_chk[2914] = +static const flex_int16_t yy_chk[2949] = { 0, 0, 1, 1, 1, 0, 1, 1, 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1879,7 +1892,7 @@ static const flex_int16_t yy_chk[2914] = 4, 4, 13, 1, 13, 4, 0, 0, 1, 26, 5, 5, 5, 27, 1, 31, 1, 44, 6, 6, 6, 108, 1, 1, 7, 7, 7, 37, 7, 37, - 285, 1, 8, 8, 8, 26, 8, 1, 285, 73, + 290, 1, 8, 8, 8, 26, 8, 1, 290, 73, 28, 31, 27, 73, 1, 1, 2, 2, 2, 108, 2, 2, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 9, 9, 9, 28, @@ -1900,300 +1913,303 @@ static const flex_int16_t yy_chk[2914] = 15, 15, 15, 15, 15, 15, 15, 17, 56, 17, 17, 17, 17, 17, 19, 160, 19, 19, 19, 19, 19, 63, 17, 20, 20, 20, 20, 20, 22, 19, - 22, 22, 22, 22, 22, 56, 20, 53, 71, 54, - 90, 58, 71, 22, 91, 53, 61, 63, 17, 61, - 61, 54, 71, 61, 61, 19, 105, 92, 63, 131, + 22, 22, 22, 22, 22, 56, 20, 53, 77, 54, + 90, 58, 77, 22, 91, 53, 61, 63, 17, 61, + 61, 54, 743, 61, 61, 19, 105, 92, 63, 131, 131, 100, 20, 53, 160, 54, 61, 90, 58, 22, 45, 91, 93, 53, 58, 70, 45, 58, 45, 45, 54, 45, 105, 70, 45, 70, 92, 45, 65, 57, - 70, 65, 45, 45, 743, 45, 57, 111, 65, 93, + 70, 65, 45, 45, 744, 45, 57, 95, 65, 93, 65, 100, 45, 45, 45, 45, 45, 45, 60, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 111, 78, 744, 60, 57, - 67, 67, 60, 57, 67, 60, 60, 57, 95, 60, - 67, 62, 60, 62, 113, 57, 60, 69, 76, 57, - 94, 57, 57, 78, 62, 69, 75, 75, 104, 107, - 745, 74, 62, 78, 62, 74, 75, 95, 74, 69, - 114, 69, 113, 69, 76, 74, 74, 94, 75, 109, - - 74, 74, 165, 69, 76, 165, 107, 104, 125, 76, - 125, 112, 75, 139, 75, 127, 114, 75, 80, 80, - 80, 80, 80, 746, 127, 127, 139, 75, 109, 149, - 139, 80, 123, 81, 75, 81, 81, 81, 81, 81, - 112, 123, 149, 316, 82, 123, 82, 102, 81, 82, - 82, 82, 82, 82, 102, 316, 83, 80, 83, 83, - 83, 83, 83, 84, 84, 84, 84, 84, 153, 158, - 118, 83, 153, 137, 81, 137, 84, 88, 88, 88, - 88, 88, 89, 89, 89, 89, 89, 102, 118, 141, - 174, 102, 141, 169, 169, 102, 141, 83, 158, 118, - - 158, 163, 84, 102, 174, 301, 301, 102, 178, 102, - 102, 117, 168, 184, 181, 189, 163, 163, 163, 117, - 117, 117, 117, 117, 302, 183, 302, 184, 117, 117, - 117, 117, 117, 117, 170, 179, 178, 190, 170, 191, - 193, 179, 170, 181, 189, 192, 194, 198, 201, 199, - 168, 168, 168, 183, 117, 117, 117, 117, 117, 117, - 202, 168, 208, 168, 190, 191, 168, 193, 168, 168, - 203, 204, 194, 198, 192, 199, 206, 201, 227, 228, - 274, 227, 214, 255, 268, 276, 306, 228, 202, 263, - 208, 306, 310, 228, 274, 276, 203, 204, 287, 315, - - 255, 287, 206, 212, 212, 212, 212, 212, 214, 318, - 268, 321, 212, 212, 212, 212, 212, 212, 310, 325, - 326, 329, 331, 327, 339, 332, 341, 362, 417, 325, - 747, 398, 310, 362, 384, 318, 341, 321, 212, 212, - 212, 212, 212, 212, 384, 263, 749, 329, 263, 326, - 327, 331, 332, 339, 315, 337, 337, 337, 337, 337, - 398, 467, 751, 577, 337, 337, 337, 337, 337, 337, - 377, 378, 391, 391, 397, 377, 378, 391, 412, 461, - 417, 421, 430, 412, 397, 421, 430, 467, 472, 496, - 337, 337, 337, 337, 337, 337, 452, 469, 481, 469, - - 509, 452, 496, 533, 496, 509, 542, 612, 461, 600, - 481, 542, 600, 533, 752, 622, 616, 472, 577, 608, - 613, 616, 622, 676, 676, 469, 377, 469, 614, 629, - 759, 377, 378, 612, 608, 643, 736, 754, 643, 412, - 470, 470, 470, 470, 470, 608, 760, 736, 613, 470, - 470, 470, 470, 470, 470, 493, 696, 614, 757, 493, - 699, 755, 756, 608, 696, 699, 754, 493, 758, 493, - 493, 493, 493, 493, 761, 470, 470, 470, 470, 470, - 470, 762, 763, 764, 765, 629, 766, 757, 755, 756, - 767, 768, 769, 770, 758, 771, 773, 772, 774, 775, - - 777, 778, 699, 772, 776, 776, 779, 776, 780, 781, - 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, - 798, 802, 803, 804, 798, 805, 806, 807, 808, 809, - 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 824, 825, 826, 813, 827, 828, - 829, 827, 830, 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, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - - 870, 870, 871, 872, 873, 868, 874, 875, 870, 876, - 877, 878, 870, 880, 881, 882, 883, 884, 885, 874, - 886, 874, 887, 888, 889, 874, 890, 891, 892, 893, - 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, - 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, - 914, 917, 918, 919, 920, 921, 922, 923, 895, 924, - 925, 896, 926, 927, 899, 928, 929, 930, 931, 932, - 933, 934, 930, 935, 936, 937, 938, 939, 940, 941, - 942, 943, 944, 945, 946, 947, 948, 949, 951, 952, - 953, 954, 955, 956, 957, 958, 959, 955, 960, 961, - - 962, 963, 964, 965, 966, 967, 968, 969, 972, 973, - 974, 975, 976, 977, 979, 980, 981, 982, 983, 984, - 985, 987, 988, 989, 990, 991, 992, 989, 993, 994, - 995, 996, 1000, 1001, 1002, 1003, 996, 1004, 1005, 1006, - 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1052, 1050, 1053, 1054, 1051, 1055, 1056, 1057, - 1058, 1059, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - - 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1048, 1047, 1076, - 1049, 1050, 1051, 1077, 1078, 1079, 1081, 1082, 1083, 1081, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, - 1104, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, - 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, - 1147, 1148, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, - - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1112, 1177, - 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, - 1188, 1189, 1190, 1191, 1192, 1193, 1195, 1194, 1196, 1198, - 1199, 1200, 1201, 1202, 1203, 1204, 1206, 1207, 1208, 1209, - 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, - 1221, 1222, 1223, 1192, 1194, 1195, 1196, 1224, 1225, 1226, - 1227, 1228, 1229, 1231, 1232, 1224, 1233, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1256, 1257, 1258, - 1259, 1260, 1256, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 45, 45, 45, 45, 45, 745, 95, 76, 60, 57, + 67, 67, 60, 57, 67, 60, 60, 57, 78, 60, + 67, 62, 60, 62, 71, 57, 60, 69, 71, 57, + 104, 57, 57, 76, 62, 69, 75, 75, 71, 94, + 107, 71, 62, 76, 62, 78, 75, 109, 76, 69, + 74, 69, 746, 69, 74, 78, 111, 74, 75, 104, + + 112, 193, 113, 69, 74, 74, 94, 107, 74, 74, + 74, 125, 75, 125, 75, 114, 109, 75, 80, 80, + 80, 80, 80, 426, 111, 133, 133, 75, 193, 112, + 113, 80, 149, 81, 75, 81, 81, 81, 81, 81, + 137, 114, 137, 747, 82, 149, 82, 102, 81, 82, + 82, 82, 82, 82, 102, 139, 83, 80, 83, 83, + 83, 83, 83, 84, 84, 84, 84, 84, 139, 153, + 118, 83, 139, 153, 81, 426, 84, 88, 88, 88, + 88, 88, 89, 89, 89, 89, 89, 102, 118, 170, + 170, 102, 123, 141, 176, 102, 141, 83, 180, 118, + + 141, 123, 84, 102, 127, 123, 158, 102, 176, 102, + 102, 117, 165, 127, 127, 165, 183, 749, 185, 117, + 117, 117, 117, 117, 163, 169, 180, 194, 117, 117, + 117, 117, 117, 117, 171, 158, 186, 158, 171, 163, + 163, 163, 171, 181, 192, 183, 185, 205, 195, 181, + 186, 196, 211, 194, 117, 117, 117, 117, 117, 117, + 197, 201, 202, 169, 169, 169, 204, 206, 207, 230, + 209, 267, 230, 192, 169, 205, 169, 195, 196, 169, + 211, 169, 169, 307, 307, 259, 197, 201, 202, 217, + 272, 278, 321, 206, 207, 204, 209, 215, 215, 215, + + 215, 215, 259, 280, 231, 278, 215, 215, 215, 215, + 215, 215, 231, 280, 292, 217, 272, 292, 231, 308, + 312, 308, 316, 325, 328, 312, 322, 267, 333, 332, + 267, 334, 215, 215, 215, 215, 215, 215, 322, 332, + 336, 338, 339, 348, 392, 369, 750, 321, 316, 325, + 328, 369, 478, 348, 392, 386, 385, 333, 334, 346, + 386, 385, 316, 399, 399, 406, 336, 405, 399, 339, + 338, 344, 344, 344, 344, 344, 472, 405, 478, 751, + 344, 344, 344, 344, 344, 344, 420, 590, 346, 430, + 462, 420, 439, 430, 406, 462, 439, 480, 521, 480, + + 483, 492, 629, 521, 545, 472, 344, 344, 344, 344, + 344, 344, 385, 492, 545, 554, 386, 385, 504, 627, + 554, 644, 504, 614, 507, 480, 614, 480, 623, 483, + 504, 629, 504, 504, 504, 504, 504, 507, 628, 507, + 752, 631, 590, 623, 753, 627, 631, 420, 481, 481, + 481, 481, 481, 755, 623, 756, 637, 481, 481, 481, + 481, 481, 481, 637, 658, 712, 628, 658, 692, 692, + 715, 754, 623, 712, 757, 715, 758, 644, 759, 760, + 761, 762, 754, 481, 481, 481, 481, 481, 481, 763, + 764, 765, 767, 768, 770, 771, 773, 774, 776, 775, + + 778, 779, 777, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 715, 789, 790, 791, 792, 793, 794, 795, + 795, 791, 795, 796, 774, 773, 775, 776, 777, 797, + 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, + 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, + 818, 819, 820, 821, 818, 822, 823, 824, 818, 825, + 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, + 846, 833, 847, 848, 849, 847, 850, 852, 853, 854, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 865, + + 866, 867, 868, 869, 870, 871, 872, 873, 875, 876, + 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 884, 889, 890, 891, 891, 892, 893, 894, + 889, 895, 896, 891, 897, 898, 899, 891, 900, 902, + 903, 904, 905, 906, 895, 907, 895, 908, 909, 910, + 895, 911, 912, 913, 914, 915, 916, 914, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 940, + 941, 942, 943, 944, 945, 946, 918, 947, 948, 919, + 949, 950, 922, 951, 952, 953, 954, 955, 956, 957, + + 953, 958, 959, 960, 961, 962, 964, 965, 966, 967, + 968, 969, 970, 971, 972, 973, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 979, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 996, 997, 998, 999, + 1000, 1001, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1011, + 1012, 1013, 1014, 1015, 1016, 1013, 1017, 1018, 1019, 1020, + 1024, 1025, 1026, 1027, 1020, 1028, 1029, 1030, 1031, 1032, + 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, + 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, + 1054, 1055, 1056, 1057, 1059, 1060, 1061, 1062, 1063, 1064, + + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1080, 1078, 1081, 1082, 1079, 1083, 1084, + 1085, 1086, 1087, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1076, 1075, + 1104, 1077, 1078, 1079, 1105, 1106, 1107, 1109, 1110, 1111, + 1109, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1131, 1132, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + 1142, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, - 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1300, 1302, 1303, 1304, 1257, 1306, 1307, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1328, 1329, 1330, - 1332, 1333, 1334, 1336, 1335, 1337, 1338, 1339, 1340, 1341, - 1342, 1343, 1344, 1345, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1355, 1356, 1357, 1358, 1359, 1360, 1333, 1361, 1332, - 1335, 1334, 1336, 1362, 1363, 1364, 1365, 1367, 1368, 1369, - - 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, - 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1389, 1390, - 1392, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1406, 1407, 1408, 1410, 1412, 1413, 1414, - 1415, 1416, 1418, 1419, 1420, 1421, 1423, 1424, 1426, 1427, - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, - 1438, 1439, 1440, 1442, 1443, 1444, 1445, 1446, 1447, 1448, - 1449, 1450, 1451, 1454, 1455, 1456, 1457, 1458, 1459, 1460, - 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1470, 1471, - 1472, 1473, 1474, 1475, 1476, 1478, 1479, 1480, 1481, 1482, - - 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1465, 1466, 1494, 1495, 1467, 1496, 1497, 1498, 1499, - 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1508, 1509, 1510, - 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, - 1521, 1522, 1478, 1523, 1524, 1525, 1526, 1527, 1528, 1529, - 1530, 1531, 1532, 1533, 1534, 1535, 1537, 1529, 1538, 1539, - 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, - 1551, 1553, 1554, 1555, 1556, 1557, 1559, 1554, 1559, 1560, - 1562, 1563, 1564, 1568, 1569, 1570, 1571, 1572, 1573, 1574, - 1575, 1576, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1587, - - 1581, 1585, 1588, 1589, 1590, 1591, 1592, 1593, 1595, 1596, - 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, - 1607, 1610, 1584, 1583, 1611, 1582, 1612, 1585, 1613, 1614, - 1615, 1617, 1618, 1619, 1621, 1622, 1623, 1624, 1625, 1626, - 1627, 1628, 1629, 1630, 1631, 1633, 1634, 1635, 1637, 1640, - 1584, 1641, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, - 1651, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, - 1664, 1665, 1667, 1669, 1670, 1669, 1671, 1672, 1669, 1673, - 1674, 1669, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, - 1683, 1684, 1685, 1687, 1689, 1690, 1692, 1693, 1694, 1696, - - 1695, 1697, 1698, 1700, 1702, 1703, 1705, 1707, 1708, 1709, - 1710, 1711, 1712, 1713, 1715, 1716, 1714, 1717, 1718, 1719, - 1720, 1721, 1722, 1723, 1693, 1694, 1695, 1714, 1696, 1697, - 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, - 1734, 1735, 1736, 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, 1711, 1766, 1767, 1768, 1769, 1770, 1772, 1773, - 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1784, - 1785, 1786, 1788, 1789, 1790, 1792, 1791, 1793, 1796, 1797, - - 1800, 1801, 1802, 1804, 1805, 1737, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1820, - 1790, 1822, 1789, 1791, 1792, 1823, 1793, 1824, 1825, 1826, - 1827, 1828, 1829, 1830, 1831, 1833, 1834, 1835, 1836, 1837, - 1839, 1840, 1842, 1843, 1844, 1846, 1847, 1848, 1850, 1851, - 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, - 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1880, 1881, 1882, 1883, 1884, 1885, - 1887, 1888, 1889, 1892, 1893, 1894, 1895, 1896, 1897, 1898, - 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, - - 1909, 1910, 1881, 1883, 1911, 1912, 1914, 1915, 1916, 1918, - 1919, 1920, 1921, 1922, 1924, 1925, 1926, 1927, 1928, 1930, - 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, - 1941, 1942, 1944, 1945, 1947, 1949, 1950, 1952, 1953, 1947, - 1954, 1955, 1957, 1959, 1962, 1960, 1964, 1965, 1966, 1967, - 1968, 1969, 1970, 1971, 1973, 1974, 1975, 1976, 1978, 1979, - 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, - 1959, 1960, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, - 2010, 2012, 2014, 2015, 2016, 2017, 2018, 2021, 2022, 2023, - - 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2034, - 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, - 2045, 2046, 2047, 2049, 2022, 2023, 2050, 2024, 2052, 2053, - 2054, 2055, 2056, 2057, 2058, 2059, 2061, 2062, 2063, 2064, - 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2071, - 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, - 2084, 2085, 2086, 2087, 2088, 2089, 2091, 2092, 2093, 2094, - 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2076, - 2078, 2104, 2106, 2109, 2111, 2112, 2113, 2114, 2115, 2116, - 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, - - 2127, 2129, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, - 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2149, - 2150, 2151, 2152, 2153, 2154, 2156, 2127, 2158, 2129, 2160, - 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2170, 2172, 2173, - 2175, 2174, 2176, 2177, 2178, 2179, 2180, 2181, 2183, 2184, - 2185, 2186, 2187, 2188, 2189, 2191, 2192, 2193, 2194, 2195, - 2196, 2197, 2198, 2199, 2200, 2201, 2173, 2174, 2202, 2203, - 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2215, - 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, - 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, - - 2237, 2210, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2247, - 2248, 2249, 2251, 2252, 2253, 2254, 2256, 2257, 2258, 2259, - 2260, 2261, 2262, 2265, 2266, 2269, 2270, 2271, 2272, 2273, - 2274, 2275, 2277, 2278, 2280, 2281, 2282, 2283, 2284, 2285, - 2286, 2287, 2288, 2289, 2290, 2293, 2294, 2295, 2296, 2297, - 2298, 2300, 2301, 2303, 2305, 2306, 2307, 2308, 2309, 2310, - 2311, 2312, 2313, 2315, 2316, 2317, 2318, 2319, 2318, 2320, - 2321, 2322, 2323, 2325, 2326, 2328, 2331, 2332, 2333, 2334, - 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, - 2345, 2346, 2347, 2348, 2349, 2351, 2352, 2354, 2355, 2356, - - 2359, 2360, 2361, 2362, 2364, 2365, 2367, 2368, 2370, 2372, - 2373, 2375, 2376, 2377, 2378, 2379, 2381, 2386, 2386, 2386, - 2387, 2387, 2387, 2388, 2389, 2388, 2390, 2390, 2390, 2391, - 2391, 2391, 2392, 741, 2392, 2393, 2393, 2393, 740, 739, - 738, 737, 735, 734, 733, 732, 730, 729, 728, 727, - 726, 725, 724, 723, 722, 721, 720, 719, 718, 716, - 715, 714, 713, 711, 710, 709, 708, 706, 705, 704, - 703, 702, 701, 700, 698, 697, 695, 694, 693, 692, - 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 675, 674, 673, 672, 671, - - 670, 669, 667, 666, 665, 664, 663, 662, 661, 659, - 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 642, 641, 640, 639, 638, - 637, 636, 635, 634, 633, 632, 631, 630, 628, 627, - 626, 625, 624, 623, 621, 619, 618, 615, 607, 606, - 605, 604, 603, 602, 601, 598, 597, 594, 593, 591, - 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 576, 575, 574, 573, 572, 571, 570, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 558, 557, 555, 554, 553, 552, 551, 550, 549, 548, - - 547, 546, 545, 544, 543, 541, 540, 538, 537, 536, - 535, 534, 532, 531, 530, 529, 528, 527, 526, 525, - 524, 523, 522, 521, 520, 519, 518, 517, 515, 514, - 513, 511, 510, 508, 507, 506, 505, 504, 503, 502, - 501, 500, 498, 497, 495, 494, 491, 490, 489, 488, - 487, 486, 484, 483, 482, 480, 479, 478, 477, 476, - 475, 474, 473, 471, 466, 464, 463, 462, 460, 459, - 458, 455, 454, 453, 451, 450, 449, 447, 446, 445, - 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 429, 428, 427, 426, 425, 424, - - 423, 422, 420, 419, 418, 416, 414, 413, 411, 410, - 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, - 399, 396, 395, 394, 393, 392, 390, 389, 388, 387, - 386, 385, 383, 382, 381, 380, 379, 376, 375, 374, - 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, - 363, 361, 360, 359, 358, 357, 356, 355, 354, 353, - 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, - 342, 340, 338, 336, 334, 330, 328, 324, 317, 314, - 313, 312, 311, 309, 308, 307, 305, 304, 303, 300, - 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, - - 289, 288, 286, 284, 283, 282, 281, 280, 279, 278, - 277, 275, 273, 272, 271, 270, 269, 267, 266, 265, - 264, 262, 261, 260, 259, 258, 257, 256, 254, 253, - 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, - 231, 230, 229, 226, 225, 224, 223, 222, 221, 220, - 219, 218, 217, 216, 215, 213, 209, 207, 205, 200, - 197, 195, 187, 186, 185, 182, 180, 177, 176, 175, - 173, 172, 171, 167, 166, 164, 162, 161, 159, 157, - 156, 155, 154, 152, 151, 150, 148, 147, 146, 145, - - 144, 143, 142, 138, 136, 135, 134, 133, 132, 130, - 129, 128, 126, 124, 122, 121, 120, 119, 115, 110, - 106, 103, 98, 97, 77, 72, 66, 50, 47, 43, - 41, 39, 38, 24, 14, 11, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - - 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, - 2385, 2385, 2385 + 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1173, + 1174, 1175, 1176, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, + 1195, 1197, 1198, 1199, 1200, 1201, 1203, 1204, 1205, 1140, + 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, + 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1226, + 1225, 1227, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1237, + 1238, 1239, 1240, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1223, 1225, 1226, 1227, + 1255, 1256, 1257, 1258, 1259, 1260, 1262, 1263, 1255, 1264, + + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, + 1287, 1288, 1289, 1290, 1291, 1287, 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, 1321, 1322, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1333, 1334, 1335, 1288, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1359, 1361, 1362, 1363, 1365, 1366, 1367, 1369, 1368, 1370, + + 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1380, 1381, + 1382, 1383, 1384, 1385, 1386, 1388, 1389, 1390, 1391, 1392, + 1393, 1366, 1394, 1365, 1368, 1367, 1369, 1395, 1396, 1397, + 1398, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1419, 1420, 1422, 1423, 1425, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, + 1443, 1445, 1446, 1447, 1448, 1449, 1451, 1452, 1453, 1454, + 1456, 1457, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, + 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1475, 1476, 1477, + + 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1487, 1488, 1489, + 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, + 1500, 1501, 1502, 1504, 1505, 1506, 1507, 1508, 1509, 1510, + 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, + 1522, 1523, 1524, 1525, 1526, 1527, 1499, 1500, 1528, 1529, + 1501, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, + 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, + 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1512, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1571, 1563, 1572, 1573, 1575, 1576, 1577, 1578, 1579, + + 1580, 1581, 1582, 1583, 1584, 1585, 1587, 1588, 1589, 1590, + 1591, 1593, 1588, 1593, 1594, 1596, 1597, 1598, 1602, 1603, + 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1612, 1613, 1615, + 1616, 1617, 1618, 1619, 1622, 1616, 1620, 1623, 1624, 1625, + 1626, 1627, 1628, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1642, 1645, 1619, 1618, 1646, + 1617, 1647, 1620, 1648, 1649, 1650, 1652, 1653, 1654, 1656, + 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, + 1668, 1669, 1670, 1672, 1675, 1619, 1676, 1678, 1679, 1680, + 1681, 1682, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1691, + + 1692, 1693, 1694, 1695, 1696, 1699, 1700, 1702, 1704, 1705, + 1704, 1706, 1707, 1704, 1708, 1709, 1704, 1710, 1711, 1712, + 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1722, 1724, + 1725, 1727, 1728, 1729, 1731, 1730, 1732, 1733, 1735, 1737, + 1738, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1750, + 1751, 1749, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1728, + 1729, 1730, 1749, 1731, 1732, 1759, 1760, 1761, 1762, 1763, + 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 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, 1797, 1798, 1799, 1800, 1746, 1801, 1802, + 1803, 1804, 1805, 1807, 1808, 1809, 1810, 1811, 1812, 1813, + 1814, 1815, 1816, 1817, 1819, 1820, 1821, 1823, 1824, 1825, + 1827, 1826, 1828, 1831, 1832, 1835, 1836, 1837, 1839, 1840, + 1772, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1855, 1825, 1857, 1824, 1826, 1827, + 1858, 1828, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, + 1868, 1869, 1870, 1871, 1872, 1874, 1875, 1877, 1878, 1879, + 1881, 1882, 1883, 1885, 1886, 1887, 1890, 1891, 1892, 1893, + 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, + + 1904, 1905, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1915, + 1916, 1917, 1918, 1919, 1920, 1922, 1923, 1924, 1927, 1928, + 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, + 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1916, 1918, 1946, + 1947, 1949, 1950, 1951, 1953, 1954, 1955, 1956, 1957, 1959, + 1960, 1961, 1962, 1963, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1979, 1980, 1982, + 1984, 1985, 1987, 1988, 1982, 1989, 1990, 1992, 1994, 1997, + 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, + 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, + + 2020, 2021, 2022, 2023, 2024, 1994, 1995, 2025, 2026, 2027, + 2028, 2029, 2031, 2032, 2033, 2035, 2036, 2037, 2038, 2039, + 2040, 2041, 2042, 2043, 2044, 2045, 2047, 2049, 2050, 2051, + 2052, 2053, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, + 2064, 2065, 2066, 2067, 2069, 2070, 2071, 2072, 2073, 2074, + 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2084, 2057, + 2058, 2085, 2059, 2087, 2088, 2089, 2090, 2091, 2092, 2093, + 2094, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, + 2105, 2106, 2107, 2108, 2106, 2109, 2110, 2111, 2112, 2113, + 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, + + 2124, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, + 2135, 2136, 2137, 2138, 2111, 2113, 2139, 2141, 2144, 2146, + 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, + 2157, 2158, 2159, 2160, 2161, 2162, 2164, 2166, 2167, 2168, + 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, + 2179, 2180, 2181, 2182, 2184, 2185, 2186, 2187, 2188, 2189, + 2191, 2162, 2193, 2164, 2195, 2197, 2198, 2199, 2200, 2201, + 2202, 2203, 2205, 2207, 2208, 2210, 2209, 2211, 2212, 2213, + 2214, 2215, 2216, 2218, 2219, 2220, 2221, 2222, 2223, 2224, + 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, + + 2236, 2208, 2209, 2237, 2238, 2240, 2241, 2242, 2243, 2244, + 2245, 2246, 2247, 2248, 2250, 2251, 2252, 2253, 2254, 2255, + 2256, 2257, 2258, 2260, 2261, 2262, 2263, 2264, 2265, 2266, + 2267, 2268, 2269, 2270, 2271, 2272, 2245, 2273, 2274, 2275, + 2276, 2277, 2278, 2279, 2282, 2283, 2284, 2286, 2287, 2288, + 2289, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2300, 2301, + 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2312, 2313, 2315, + 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, + 2328, 2329, 2330, 2331, 2332, 2333, 2335, 2336, 2338, 2340, + 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2350, 2351, + + 2352, 2353, 2354, 2353, 2355, 2356, 2357, 2358, 2360, 2361, + 2363, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, + 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, + 2386, 2387, 2389, 2390, 2391, 2394, 2395, 2396, 2397, 2399, + 2400, 2402, 2403, 2405, 2407, 2408, 2410, 2411, 2412, 2413, + 2414, 2416, 2421, 2421, 2421, 2422, 2422, 2422, 2423, 2424, + 2423, 2425, 2425, 2425, 2426, 2426, 2426, 2427, 741, 2427, + 2428, 2428, 2428, 740, 739, 738, 737, 736, 735, 733, + 732, 731, 730, 728, 727, 726, 725, 724, 722, 721, + 720, 719, 718, 717, 716, 714, 713, 711, 710, 709, + + 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, + 698, 697, 696, 695, 694, 693, 691, 690, 689, 688, + 687, 686, 685, 683, 682, 681, 680, 679, 678, 677, + 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, + 665, 664, 663, 662, 661, 660, 659, 657, 656, 655, + 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, + 643, 642, 641, 640, 639, 638, 636, 634, 633, 630, + 622, 621, 620, 619, 618, 617, 616, 615, 612, 611, + 608, 607, 605, 604, 603, 602, 601, 600, 599, 598, + 597, 596, 595, 594, 593, 592, 591, 589, 588, 587, + + 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, + 576, 575, 574, 573, 572, 570, 569, 567, 566, 565, + 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, + 553, 552, 550, 549, 548, 547, 546, 544, 543, 542, + 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, + 531, 530, 529, 527, 526, 525, 523, 522, 520, 519, + 518, 517, 516, 515, 514, 513, 512, 510, 509, 508, + 506, 505, 502, 501, 500, 499, 498, 497, 495, 494, + 493, 491, 490, 489, 488, 487, 486, 485, 484, 482, + 477, 475, 474, 473, 471, 470, 469, 466, 465, 464, + + 463, 461, 460, 459, 457, 456, 455, 454, 453, 452, + 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, + 441, 440, 438, 437, 436, 435, 434, 433, 432, 431, + 429, 428, 427, 425, 423, 422, 421, 419, 418, 417, + 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, + 404, 403, 402, 401, 400, 398, 397, 396, 395, 394, + 393, 391, 390, 389, 388, 387, 384, 383, 382, 381, + 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, + 370, 368, 367, 366, 365, 364, 363, 362, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, + + 349, 347, 345, 343, 341, 337, 335, 331, 324, 323, + 320, 319, 318, 317, 315, 314, 313, 311, 310, 309, + 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, + 296, 295, 294, 293, 291, 289, 288, 287, 286, 285, + 284, 283, 282, 281, 279, 277, 276, 275, 274, 273, + 271, 270, 269, 268, 266, 265, 264, 263, 262, 261, + 260, 258, 257, 255, 254, 253, 252, 251, 250, 249, + 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, + 238, 237, 236, 235, 234, 233, 232, 229, 228, 227, + 226, 225, 224, 223, 222, 221, 220, 219, 218, 216, + + 212, 210, 208, 203, 200, 198, 190, 189, 188, 187, + 184, 182, 179, 178, 177, 175, 174, 173, 172, 168, + 167, 166, 164, 162, 161, 159, 157, 156, 155, 154, + 152, 151, 150, 148, 147, 146, 145, 144, 143, 142, + 138, 136, 135, 134, 132, 130, 129, 128, 126, 124, + 122, 121, 120, 119, 115, 110, 106, 103, 98, 97, + 72, 66, 50, 47, 43, 41, 39, 38, 24, 14, + 11, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420, + 2420, 2420, 2420, 2420, 2420, 2420, 2420, 2420 } ; static yy_state_type yy_last_accepting_state; @@ -2202,35 +2218,35 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[243] = +static const flex_int16_t yy_rule_linenum[249] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 178, 183, 189, 198, 207, 216, 225, 234, 243, 252, 262, 271, 280, 289, 298, 307, 316, 325, 334, 343, 352, 361, 370, 379, 388, 397, 410, 422, 434, 445, 456, 467, 478, 489, 500, 511, 522, 533, 544, 553, 562, - 571, 582, 593, 602, 614, 626, 638, 650, 661, 673, - 685, 697, 708, 719, 728, 737, 746, 757, 766, 775, - 787, 799, 811, 823, 835, 847, 859, 870, 882, 891, - 900, 909, 918, 930, 942, 954, 966, 976, 987, 996, - 1006, 1020, 1037, 1046, 1055, 1064, 1073, 1082, 1091, 1116, - - 1141, 1150, 1160, 1169, 1180, 1191, 1202, 1212, 1221, 1232, - 1243, 1254, 1265, 1276, 1285, 1294, 1303, 1312, 1321, 1330, - 1339, 1348, 1357, 1366, 1380, 1391, 1402, 1414, 1423, 1432, - 1441, 1450, 1460, 1470, 1480, 1490, 1500, 1510, 1519, 1529, - 1538, 1547, 1556, 1565, 1575, 1584, 1593, 1602, 1611, 1620, - 1629, 1638, 1647, 1656, 1665, 1674, 1683, 1692, 1701, 1710, - 1719, 1728, 1737, 1746, 1755, 1764, 1773, 1782, 1791, 1800, - 1809, 1818, 1827, 1836, 1845, 1854, 1863, 1872, 1881, 1890, - 1899, 1908, 1917, 1926, 1935, 1944, 1953, 1962, 1971, 1980, - 1989, 1998, 2007, 2016, 2028, 2040, 2050, 2060, 2070, 2080, - - 2090, 2100, 2110, 2120, 2130, 2139, 2148, 2157, 2166, 2177, - 2188, 2201, 2214, 2227, 2236, 2245, 2254, 2263, 2272, 2281, - 2290, 2299, 2311, 2320, 2421, 2437, 2486, 2494, 2509, 2510, - 2511, 2512, 2513, 2514, 2516, 2534, 2547, 2552, 2556, 2558, - 2560, 2562 + 571, 582, 593, 602, 614, 626, 638, 649, 660, 669, + 678, 687, 696, 705, 716, 728, 740, 752, 763, 774, + 783, 792, 801, 812, 821, 830, 842, 854, 866, 878, + 890, 902, 914, 925, 937, 946, 955, 964, 973, 985, + 997, 1009, 1021, 1031, 1042, 1051, 1061, 1075, 1092, 1101, + + 1110, 1119, 1128, 1137, 1146, 1171, 1196, 1205, 1215, 1224, + 1235, 1246, 1257, 1267, 1276, 1287, 1298, 1309, 1320, 1331, + 1340, 1349, 1358, 1367, 1376, 1385, 1394, 1403, 1412, 1421, + 1435, 1446, 1457, 1469, 1478, 1487, 1496, 1505, 1515, 1525, + 1535, 1545, 1555, 1565, 1574, 1584, 1593, 1602, 1611, 1620, + 1630, 1639, 1648, 1657, 1666, 1675, 1684, 1693, 1702, 1711, + 1720, 1729, 1738, 1747, 1756, 1765, 1774, 1783, 1792, 1801, + 1810, 1819, 1828, 1837, 1846, 1855, 1864, 1873, 1882, 1891, + 1900, 1909, 1918, 1927, 1936, 1945, 1954, 1963, 1972, 1981, + 1990, 1999, 2008, 2017, 2026, 2035, 2044, 2053, 2062, 2071, + + 2083, 2095, 2105, 2115, 2125, 2135, 2145, 2155, 2165, 2175, + 2185, 2194, 2203, 2212, 2221, 2232, 2243, 2256, 2269, 2282, + 2291, 2300, 2309, 2318, 2327, 2336, 2345, 2354, 2366, 2375, + 2476, 2492, 2541, 2549, 2564, 2565, 2566, 2567, 2568, 2569, + 2571, 2589, 2602, 2607, 2611, 2613, 2615, 2617 } ; /* The intent behind this definition is that it'll catch @@ -2285,7 +2301,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2289 "dhcp4_lexer.cc" +#line 2305 "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 @@ -2311,8 +2327,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 2315 "dhcp4_lexer.cc" -#line 2316 "dhcp4_lexer.cc" +#line 2331 "dhcp4_lexer.cc" +#line 2332 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2640,7 +2656,7 @@ YY_DECL } -#line 2644 "dhcp4_lexer.cc" +#line 2660 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2669,13 +2685,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 >= 2386 ) + if ( yy_current_state >= 2421 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2385 ); + while ( yy_current_state != 2420 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2694,13 +2710,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 < 243 ) + else if ( yy_act < 249 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 243 ) + else if ( yy_act == 249 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 244 ) + else if ( yy_act == 250 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3396,7 +3412,6 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - case isc::dhcp::Parser4Context::CONTROL_SOCKET: return isc::dhcp::Dhcp4Parser::make_KEY_PASSWORD(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("key-password", driver.loc_); @@ -3405,7 +3420,81 @@ YY_RULE_SETUP YY_BREAK case 58: YY_RULE_SETUP -#line 650 "dhcp4_lexer.ll" +#line 649 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_SSL_MODE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ssl-mode", driver.loc_); + } +} + YY_BREAK +case 59: +YY_RULE_SETUP +#line 660 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_DISABLE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("disable", driver.loc_); + } +} + YY_BREAK +case 60: +YY_RULE_SETUP +#line 669 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_PREFER(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("prefer", driver.loc_); + } +} + YY_BREAK +case 61: +YY_RULE_SETUP +#line 678 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_REQUIRE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("require", driver.loc_); + } +} + YY_BREAK +case 62: +YY_RULE_SETUP +#line 687 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_VERIFY_CA(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("verify-ca", driver.loc_); + } +} + YY_BREAK +case 63: +YY_RULE_SETUP +#line 696 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_VERIFY_FULL(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("verify-full", driver.loc_); + } +} + YY_BREAK +case 64: +YY_RULE_SETUP +#line 705 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3417,9 +3506,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 65: YY_RULE_SETUP -#line 661 "dhcp4_lexer.ll" +#line 716 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3432,9 +3521,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 66: YY_RULE_SETUP -#line 673 "dhcp4_lexer.ll" +#line 728 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3447,9 +3536,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 67: YY_RULE_SETUP -#line 685 "dhcp4_lexer.ll" +#line 740 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3462,9 +3551,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 68: YY_RULE_SETUP -#line 697 "dhcp4_lexer.ll" +#line 752 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3476,9 +3565,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 69: YY_RULE_SETUP -#line 708 "dhcp4_lexer.ll" +#line 763 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3490,9 +3579,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 70: YY_RULE_SETUP -#line 719 "dhcp4_lexer.ll" +#line 774 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3502,9 +3591,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 71: YY_RULE_SETUP -#line 728 "dhcp4_lexer.ll" +#line 783 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3514,9 +3603,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 72: YY_RULE_SETUP -#line 737 "dhcp4_lexer.ll" +#line 792 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3526,9 +3615,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 73: YY_RULE_SETUP -#line 746 "dhcp4_lexer.ll" +#line 801 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3540,9 +3629,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 74: YY_RULE_SETUP -#line 757 "dhcp4_lexer.ll" +#line 812 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3552,9 +3641,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 75: YY_RULE_SETUP -#line 766 "dhcp4_lexer.ll" +#line 821 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3564,9 +3653,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 76: YY_RULE_SETUP -#line 775 "dhcp4_lexer.ll" +#line 830 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3579,9 +3668,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 77: YY_RULE_SETUP -#line 787 "dhcp4_lexer.ll" +#line 842 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3594,9 +3683,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 78: YY_RULE_SETUP -#line 799 "dhcp4_lexer.ll" +#line 854 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3609,9 +3698,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 79: YY_RULE_SETUP -#line 811 "dhcp4_lexer.ll" +#line 866 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3624,9 +3713,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 80: YY_RULE_SETUP -#line 823 "dhcp4_lexer.ll" +#line 878 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3639,9 +3728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 81: YY_RULE_SETUP -#line 835 "dhcp4_lexer.ll" +#line 890 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3654,9 +3743,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 82: YY_RULE_SETUP -#line 847 "dhcp4_lexer.ll" +#line 902 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3669,9 +3758,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 83: YY_RULE_SETUP -#line 859 "dhcp4_lexer.ll" +#line 914 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3683,9 +3772,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 84: YY_RULE_SETUP -#line 870 "dhcp4_lexer.ll" +#line 925 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3698,9 +3787,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 85: YY_RULE_SETUP -#line 882 "dhcp4_lexer.ll" +#line 937 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_CHECK_WITH_DHCID(driver.loc_); @@ -3710,9 +3799,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 80: +case 86: YY_RULE_SETUP -#line 891 "dhcp4_lexer.ll" +#line 946 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_NO_CHECK_WITH_DHCID(driver.loc_); @@ -3722,9 +3811,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 81: +case 87: YY_RULE_SETUP -#line 900 "dhcp4_lexer.ll" +#line 955 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_CHECK_EXISTS_WITH_DHCID(driver.loc_); @@ -3734,9 +3823,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 82: +case 88: YY_RULE_SETUP -#line 909 "dhcp4_lexer.ll" +#line 964 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_NO_CHECK_WITHOUT_DHCID(driver.loc_); @@ -3746,9 +3835,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 83: +case 89: YY_RULE_SETUP -#line 918 "dhcp4_lexer.ll" +#line 973 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3761,9 +3850,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 90: YY_RULE_SETUP -#line 930 "dhcp4_lexer.ll" +#line 985 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3776,9 +3865,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 91: YY_RULE_SETUP -#line 942 "dhcp4_lexer.ll" +#line 997 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3791,9 +3880,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 92: YY_RULE_SETUP -#line 954 "dhcp4_lexer.ll" +#line 1009 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3806,9 +3895,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 93: YY_RULE_SETUP -#line 966 "dhcp4_lexer.ll" +#line 1021 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3819,9 +3908,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 94: YY_RULE_SETUP -#line 976 "dhcp4_lexer.ll" +#line 1031 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3833,9 +3922,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 95: YY_RULE_SETUP -#line 987 "dhcp4_lexer.ll" +#line 1042 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3845,9 +3934,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 96: YY_RULE_SETUP -#line 996 "dhcp4_lexer.ll" +#line 1051 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3858,9 +3947,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 97: YY_RULE_SETUP -#line 1006 "dhcp4_lexer.ll" +#line 1061 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3875,9 +3964,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 98: YY_RULE_SETUP -#line 1020 "dhcp4_lexer.ll" +#line 1075 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3895,9 +3984,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 99: YY_RULE_SETUP -#line 1037 "dhcp4_lexer.ll" +#line 1092 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3907,9 +3996,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 100: YY_RULE_SETUP -#line 1046 "dhcp4_lexer.ll" +#line 1101 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3919,9 +4008,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 101: YY_RULE_SETUP -#line 1055 "dhcp4_lexer.ll" +#line 1110 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3931,9 +4020,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 102: YY_RULE_SETUP -#line 1064 "dhcp4_lexer.ll" +#line 1119 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3943,9 +4032,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 103: YY_RULE_SETUP -#line 1073 "dhcp4_lexer.ll" +#line 1128 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3955,9 +4044,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 104: YY_RULE_SETUP -#line 1082 "dhcp4_lexer.ll" +#line 1137 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3967,9 +4056,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 105: YY_RULE_SETUP -#line 1091 "dhcp4_lexer.ll" +#line 1146 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3995,9 +4084,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 106: YY_RULE_SETUP -#line 1116 "dhcp4_lexer.ll" +#line 1171 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4023,9 +4112,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 107: YY_RULE_SETUP -#line 1141 "dhcp4_lexer.ll" +#line 1196 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4035,9 +4124,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 108: YY_RULE_SETUP -#line 1150 "dhcp4_lexer.ll" +#line 1205 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4048,9 +4137,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 109: YY_RULE_SETUP -#line 1160 "dhcp4_lexer.ll" +#line 1215 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4060,9 +4149,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 110: YY_RULE_SETUP -#line 1169 "dhcp4_lexer.ll" +#line 1224 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4074,9 +4163,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 111: YY_RULE_SETUP -#line 1180 "dhcp4_lexer.ll" +#line 1235 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4088,9 +4177,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 112: YY_RULE_SETUP -#line 1191 "dhcp4_lexer.ll" +#line 1246 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4102,9 +4191,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 113: YY_RULE_SETUP -#line 1202 "dhcp4_lexer.ll" +#line 1257 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4115,9 +4204,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 114: YY_RULE_SETUP -#line 1212 "dhcp4_lexer.ll" +#line 1267 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4127,9 +4216,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 115: YY_RULE_SETUP -#line 1221 "dhcp4_lexer.ll" +#line 1276 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4141,9 +4230,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 116: YY_RULE_SETUP -#line 1232 "dhcp4_lexer.ll" +#line 1287 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4155,9 +4244,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 117: YY_RULE_SETUP -#line 1243 "dhcp4_lexer.ll" +#line 1298 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4169,9 +4258,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 118: YY_RULE_SETUP -#line 1254 "dhcp4_lexer.ll" +#line 1309 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4183,9 +4272,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 119: YY_RULE_SETUP -#line 1265 "dhcp4_lexer.ll" +#line 1320 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4197,9 +4286,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 120: YY_RULE_SETUP -#line 1276 "dhcp4_lexer.ll" +#line 1331 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4209,9 +4298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 121: YY_RULE_SETUP -#line 1285 "dhcp4_lexer.ll" +#line 1340 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4221,9 +4310,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 122: YY_RULE_SETUP -#line 1294 "dhcp4_lexer.ll" +#line 1349 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4233,9 +4322,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 123: YY_RULE_SETUP -#line 1303 "dhcp4_lexer.ll" +#line 1358 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4245,9 +4334,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 124: YY_RULE_SETUP -#line 1312 "dhcp4_lexer.ll" +#line 1367 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4257,9 +4346,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 125: YY_RULE_SETUP -#line 1321 "dhcp4_lexer.ll" +#line 1376 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4269,9 +4358,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 126: YY_RULE_SETUP -#line 1330 "dhcp4_lexer.ll" +#line 1385 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4281,9 +4370,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 127: YY_RULE_SETUP -#line 1339 "dhcp4_lexer.ll" +#line 1394 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4293,9 +4382,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 128: YY_RULE_SETUP -#line 1348 "dhcp4_lexer.ll" +#line 1403 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4305,9 +4394,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 129: YY_RULE_SETUP -#line 1357 "dhcp4_lexer.ll" +#line 1412 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4317,9 +4406,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 130: YY_RULE_SETUP -#line 1366 "dhcp4_lexer.ll" +#line 1421 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4334,9 +4423,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 131: YY_RULE_SETUP -#line 1380 "dhcp4_lexer.ll" +#line 1435 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4348,9 +4437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 132: YY_RULE_SETUP -#line 1391 "dhcp4_lexer.ll" +#line 1446 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4362,9 +4451,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 133: YY_RULE_SETUP -#line 1402 "dhcp4_lexer.ll" +#line 1457 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4377,9 +4466,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 134: YY_RULE_SETUP -#line 1414 "dhcp4_lexer.ll" +#line 1469 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4389,9 +4478,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 135: YY_RULE_SETUP -#line 1423 "dhcp4_lexer.ll" +#line 1478 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4401,9 +4490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 136: YY_RULE_SETUP -#line 1432 "dhcp4_lexer.ll" +#line 1487 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4413,9 +4502,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 137: YY_RULE_SETUP -#line 1441 "dhcp4_lexer.ll" +#line 1496 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4425,9 +4514,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 138: YY_RULE_SETUP -#line 1450 "dhcp4_lexer.ll" +#line 1505 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4438,9 +4527,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 139: YY_RULE_SETUP -#line 1460 "dhcp4_lexer.ll" +#line 1515 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4451,9 +4540,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 140: YY_RULE_SETUP -#line 1470 "dhcp4_lexer.ll" +#line 1525 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4464,9 +4553,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 141: YY_RULE_SETUP -#line 1480 "dhcp4_lexer.ll" +#line 1535 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4477,9 +4566,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 142: YY_RULE_SETUP -#line 1490 "dhcp4_lexer.ll" +#line 1545 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4490,9 +4579,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 143: YY_RULE_SETUP -#line 1500 "dhcp4_lexer.ll" +#line 1555 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4503,9 +4592,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 144: YY_RULE_SETUP -#line 1510 "dhcp4_lexer.ll" +#line 1565 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4515,9 +4604,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 145: YY_RULE_SETUP -#line 1519 "dhcp4_lexer.ll" +#line 1574 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4528,9 +4617,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 146: YY_RULE_SETUP -#line 1529 "dhcp4_lexer.ll" +#line 1584 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4540,9 +4629,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 147: YY_RULE_SETUP -#line 1538 "dhcp4_lexer.ll" +#line 1593 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4552,9 +4641,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 148: YY_RULE_SETUP -#line 1547 "dhcp4_lexer.ll" +#line 1602 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4564,9 +4653,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 149: YY_RULE_SETUP -#line 1556 "dhcp4_lexer.ll" +#line 1611 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4576,9 +4665,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 150: YY_RULE_SETUP -#line 1565 "dhcp4_lexer.ll" +#line 1620 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4589,9 +4678,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 151: YY_RULE_SETUP -#line 1575 "dhcp4_lexer.ll" +#line 1630 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4601,9 +4690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 152: YY_RULE_SETUP -#line 1584 "dhcp4_lexer.ll" +#line 1639 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4613,9 +4702,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 153: YY_RULE_SETUP -#line 1593 "dhcp4_lexer.ll" +#line 1648 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4625,9 +4714,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 154: YY_RULE_SETUP -#line 1602 "dhcp4_lexer.ll" +#line 1657 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4637,9 +4726,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 155: YY_RULE_SETUP -#line 1611 "dhcp4_lexer.ll" +#line 1666 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4649,9 +4738,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 156: YY_RULE_SETUP -#line 1620 "dhcp4_lexer.ll" +#line 1675 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4661,9 +4750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 157: YY_RULE_SETUP -#line 1629 "dhcp4_lexer.ll" +#line 1684 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4673,9 +4762,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 158: YY_RULE_SETUP -#line 1638 "dhcp4_lexer.ll" +#line 1693 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4685,9 +4774,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 159: YY_RULE_SETUP -#line 1647 "dhcp4_lexer.ll" +#line 1702 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4697,9 +4786,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 160: YY_RULE_SETUP -#line 1656 "dhcp4_lexer.ll" +#line 1711 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4709,9 +4798,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 161: YY_RULE_SETUP -#line 1665 "dhcp4_lexer.ll" +#line 1720 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4721,9 +4810,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 162: YY_RULE_SETUP -#line 1674 "dhcp4_lexer.ll" +#line 1729 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4733,9 +4822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 163: YY_RULE_SETUP -#line 1683 "dhcp4_lexer.ll" +#line 1738 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4745,9 +4834,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 164: YY_RULE_SETUP -#line 1692 "dhcp4_lexer.ll" +#line 1747 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4757,9 +4846,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 165: YY_RULE_SETUP -#line 1701 "dhcp4_lexer.ll" +#line 1756 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4769,9 +4858,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 166: YY_RULE_SETUP -#line 1710 "dhcp4_lexer.ll" +#line 1765 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4781,9 +4870,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 167: YY_RULE_SETUP -#line 1719 "dhcp4_lexer.ll" +#line 1774 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4793,9 +4882,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 168: YY_RULE_SETUP -#line 1728 "dhcp4_lexer.ll" +#line 1783 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4805,9 +4894,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 169: YY_RULE_SETUP -#line 1737 "dhcp4_lexer.ll" +#line 1792 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4817,9 +4906,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 170: YY_RULE_SETUP -#line 1746 "dhcp4_lexer.ll" +#line 1801 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4829,9 +4918,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 171: YY_RULE_SETUP -#line 1755 "dhcp4_lexer.ll" +#line 1810 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4841,9 +4930,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 172: YY_RULE_SETUP -#line 1764 "dhcp4_lexer.ll" +#line 1819 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4853,9 +4942,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 173: YY_RULE_SETUP -#line 1773 "dhcp4_lexer.ll" +#line 1828 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4865,9 +4954,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 174: YY_RULE_SETUP -#line 1782 "dhcp4_lexer.ll" +#line 1837 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4877,9 +4966,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 175: YY_RULE_SETUP -#line 1791 "dhcp4_lexer.ll" +#line 1846 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4889,9 +4978,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 176: YY_RULE_SETUP -#line 1800 "dhcp4_lexer.ll" +#line 1855 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4901,9 +4990,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 177: YY_RULE_SETUP -#line 1809 "dhcp4_lexer.ll" +#line 1864 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4913,9 +5002,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 178: YY_RULE_SETUP -#line 1818 "dhcp4_lexer.ll" +#line 1873 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTH_TYPE: @@ -4925,9 +5014,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 179: YY_RULE_SETUP -#line 1827 "dhcp4_lexer.ll" +#line 1882 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4937,9 +5026,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 180: YY_RULE_SETUP -#line 1836 "dhcp4_lexer.ll" +#line 1891 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4949,9 +5038,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 181: YY_RULE_SETUP -#line 1845 "dhcp4_lexer.ll" +#line 1900 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4961,9 +5050,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 182: YY_RULE_SETUP -#line 1854 "dhcp4_lexer.ll" +#line 1909 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4973,9 +5062,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 183: YY_RULE_SETUP -#line 1863 "dhcp4_lexer.ll" +#line 1918 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4985,9 +5074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 184: YY_RULE_SETUP -#line 1872 "dhcp4_lexer.ll" +#line 1927 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4997,9 +5086,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 185: YY_RULE_SETUP -#line 1881 "dhcp4_lexer.ll" +#line 1936 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -5009,9 +5098,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 186: YY_RULE_SETUP -#line 1890 "dhcp4_lexer.ll" +#line 1945 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HTTP_HEADERS: @@ -5021,9 +5110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 187: YY_RULE_SETUP -#line 1899 "dhcp4_lexer.ll" +#line 1954 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5033,9 +5122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 188: YY_RULE_SETUP -#line 1908 "dhcp4_lexer.ll" +#line 1963 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5045,9 +5134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 189: YY_RULE_SETUP -#line 1917 "dhcp4_lexer.ll" +#line 1972 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5057,9 +5146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 190: YY_RULE_SETUP -#line 1926 "dhcp4_lexer.ll" +#line 1981 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5069,9 +5158,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 191: YY_RULE_SETUP -#line 1935 "dhcp4_lexer.ll" +#line 1990 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5081,9 +5170,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 192: YY_RULE_SETUP -#line 1944 "dhcp4_lexer.ll" +#line 1999 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5093,9 +5182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 193: YY_RULE_SETUP -#line 1953 "dhcp4_lexer.ll" +#line 2008 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5105,9 +5194,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 194: YY_RULE_SETUP -#line 1962 "dhcp4_lexer.ll" +#line 2017 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5117,9 +5206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 195: YY_RULE_SETUP -#line 1971 "dhcp4_lexer.ll" +#line 2026 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5129,9 +5218,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 196: YY_RULE_SETUP -#line 1980 "dhcp4_lexer.ll" +#line 2035 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5141,9 +5230,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 197: YY_RULE_SETUP -#line 1989 "dhcp4_lexer.ll" +#line 2044 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5153,9 +5242,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 198: YY_RULE_SETUP -#line 1998 "dhcp4_lexer.ll" +#line 2053 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5165,9 +5254,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 199: YY_RULE_SETUP -#line 2007 "dhcp4_lexer.ll" +#line 2062 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5177,9 +5266,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 200: YY_RULE_SETUP -#line 2016 "dhcp4_lexer.ll" +#line 2071 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5192,9 +5281,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 201: YY_RULE_SETUP -#line 2028 "dhcp4_lexer.ll" +#line 2083 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5207,9 +5296,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 202: YY_RULE_SETUP -#line 2040 "dhcp4_lexer.ll" +#line 2095 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5220,9 +5309,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 197: +case 203: YY_RULE_SETUP -#line 2050 "dhcp4_lexer.ll" +#line 2105 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5233,9 +5322,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 198: +case 204: YY_RULE_SETUP -#line 2060 "dhcp4_lexer.ll" +#line 2115 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -5246,9 +5335,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 199: +case 205: YY_RULE_SETUP -#line 2070 "dhcp4_lexer.ll" +#line 2125 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5259,9 +5348,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 200: +case 206: YY_RULE_SETUP -#line 2080 "dhcp4_lexer.ll" +#line 2135 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5272,9 +5361,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 201: +case 207: YY_RULE_SETUP -#line 2090 "dhcp4_lexer.ll" +#line 2145 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5285,9 +5374,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 202: +case 208: YY_RULE_SETUP -#line 2100 "dhcp4_lexer.ll" +#line 2155 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5298,9 +5387,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 203: +case 209: YY_RULE_SETUP -#line 2110 "dhcp4_lexer.ll" +#line 2165 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5311,9 +5400,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 204: +case 210: YY_RULE_SETUP -#line 2120 "dhcp4_lexer.ll" +#line 2175 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5324,9 +5413,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 205: +case 211: YY_RULE_SETUP -#line 2130 "dhcp4_lexer.ll" +#line 2185 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5336,9 +5425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 212: YY_RULE_SETUP -#line 2139 "dhcp4_lexer.ll" +#line 2194 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5348,9 +5437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 207: +case 213: YY_RULE_SETUP -#line 2148 "dhcp4_lexer.ll" +#line 2203 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5360,9 +5449,9 @@ YY_RULE_SETUP } } YY_BREAK -case 208: +case 214: YY_RULE_SETUP -#line 2157 "dhcp4_lexer.ll" +#line 2212 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5372,9 +5461,9 @@ YY_RULE_SETUP } } YY_BREAK -case 209: +case 215: YY_RULE_SETUP -#line 2166 "dhcp4_lexer.ll" +#line 2221 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5386,9 +5475,9 @@ YY_RULE_SETUP } } YY_BREAK -case 210: +case 216: YY_RULE_SETUP -#line 2177 "dhcp4_lexer.ll" +#line 2232 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5400,9 +5489,9 @@ YY_RULE_SETUP } } YY_BREAK -case 211: +case 217: YY_RULE_SETUP -#line 2188 "dhcp4_lexer.ll" +#line 2243 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5416,9 +5505,9 @@ YY_RULE_SETUP } } YY_BREAK -case 212: +case 218: YY_RULE_SETUP -#line 2201 "dhcp4_lexer.ll" +#line 2256 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5432,9 +5521,9 @@ YY_RULE_SETUP } } YY_BREAK -case 213: +case 219: YY_RULE_SETUP -#line 2214 "dhcp4_lexer.ll" +#line 2269 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5448,9 +5537,9 @@ YY_RULE_SETUP } } YY_BREAK -case 214: +case 220: YY_RULE_SETUP -#line 2227 "dhcp4_lexer.ll" +#line 2282 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5460,9 +5549,9 @@ YY_RULE_SETUP } } YY_BREAK -case 215: +case 221: YY_RULE_SETUP -#line 2236 "dhcp4_lexer.ll" +#line 2291 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5472,9 +5561,9 @@ YY_RULE_SETUP } } YY_BREAK -case 216: +case 222: YY_RULE_SETUP -#line 2245 "dhcp4_lexer.ll" +#line 2300 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5484,9 +5573,9 @@ YY_RULE_SETUP } } YY_BREAK -case 217: +case 223: YY_RULE_SETUP -#line 2254 "dhcp4_lexer.ll" +#line 2309 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5496,9 +5585,9 @@ YY_RULE_SETUP } } YY_BREAK -case 218: +case 224: YY_RULE_SETUP -#line 2263 "dhcp4_lexer.ll" +#line 2318 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5508,9 +5597,9 @@ YY_RULE_SETUP } } YY_BREAK -case 219: +case 225: YY_RULE_SETUP -#line 2272 "dhcp4_lexer.ll" +#line 2327 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5520,9 +5609,9 @@ YY_RULE_SETUP } } YY_BREAK -case 220: +case 226: YY_RULE_SETUP -#line 2281 "dhcp4_lexer.ll" +#line 2336 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5532,9 +5621,9 @@ YY_RULE_SETUP } } YY_BREAK -case 221: +case 227: YY_RULE_SETUP -#line 2290 "dhcp4_lexer.ll" +#line 2345 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5544,9 +5633,9 @@ YY_RULE_SETUP } } YY_BREAK -case 222: +case 228: YY_RULE_SETUP -#line 2299 "dhcp4_lexer.ll" +#line 2354 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5559,9 +5648,9 @@ YY_RULE_SETUP } } YY_BREAK -case 223: +case 229: YY_RULE_SETUP -#line 2311 "dhcp4_lexer.ll" +#line 2366 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5571,9 +5660,9 @@ YY_RULE_SETUP } } YY_BREAK -case 224: +case 230: YY_RULE_SETUP -#line 2320 "dhcp4_lexer.ll" +#line 2375 "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. @@ -5675,10 +5764,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 225: -/* rule 225 can match eol */ +case 231: +/* rule 231 can match eol */ YY_RULE_SETUP -#line 2421 "dhcp4_lexer.ll" +#line 2476 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5695,10 +5784,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 226: -/* rule 226 can match eol */ +case 232: +/* rule 232 can match eol */ YY_RULE_SETUP -#line 2437 "dhcp4_lexer.ll" +#line 2492 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5748,9 +5837,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 227: +case 233: YY_RULE_SETUP -#line 2486 "dhcp4_lexer.ll" +#line 2541 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5759,9 +5848,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 228: +case 234: YY_RULE_SETUP -#line 2494 "dhcp4_lexer.ll" +#line 2549 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5777,39 +5866,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 229: +case 235: YY_RULE_SETUP -#line 2509 "dhcp4_lexer.ll" +#line 2564 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 230: +case 236: YY_RULE_SETUP -#line 2510 "dhcp4_lexer.ll" +#line 2565 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 231: +case 237: YY_RULE_SETUP -#line 2511 "dhcp4_lexer.ll" +#line 2566 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 232: +case 238: YY_RULE_SETUP -#line 2512 "dhcp4_lexer.ll" +#line 2567 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 233: +case 239: YY_RULE_SETUP -#line 2513 "dhcp4_lexer.ll" +#line 2568 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 234: +case 240: YY_RULE_SETUP -#line 2514 "dhcp4_lexer.ll" +#line 2569 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 235: +case 241: YY_RULE_SETUP -#line 2516 "dhcp4_lexer.ll" +#line 2571 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5828,9 +5917,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 236: +case 242: YY_RULE_SETUP -#line 2534 "dhcp4_lexer.ll" +#line 2589 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5844,43 +5933,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 237: +case 243: YY_RULE_SETUP -#line 2547 "dhcp4_lexer.ll" +#line 2602 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 238: +case 244: YY_RULE_SETUP -#line 2552 "dhcp4_lexer.ll" +#line 2607 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 239: +case 245: YY_RULE_SETUP -#line 2556 "dhcp4_lexer.ll" +#line 2611 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 240: +case 246: YY_RULE_SETUP -#line 2558 "dhcp4_lexer.ll" +#line 2613 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 241: +case 247: YY_RULE_SETUP -#line 2560 "dhcp4_lexer.ll" +#line 2615 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 242: +case 248: YY_RULE_SETUP -#line 2562 "dhcp4_lexer.ll" +#line 2617 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2564 "dhcp4_lexer.ll" +#line 2619 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5904,12 +5993,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 243: +case 249: YY_RULE_SETUP -#line 2587 "dhcp4_lexer.ll" +#line 2642 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5913 "dhcp4_lexer.cc" +#line 6002 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -6228,7 +6317,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 >= 2386 ) + if ( yy_current_state >= 2421 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -6261,11 +6350,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 >= 2386 ) + if ( yy_current_state >= 2421 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2385); + yy_is_jam = (yy_current_state == 2420); return yy_is_jam ? 0 : yy_current_state; } @@ -7014,7 +7103,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2587 "dhcp4_lexer.ll" +#line 2642 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index ba3f3510d0..91578e468c 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -639,13 +639,68 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - case isc::dhcp::Parser4Context::CONTROL_SOCKET: return isc::dhcp::Dhcp4Parser::make_KEY_PASSWORD(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("key-password", driver.loc_); } } +\"ssl-mode\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_SSL_MODE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ssl-mode", driver.loc_); + } +} + +\"disable\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_DISABLE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("disable", driver.loc_); + } +} + +\"prefer\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_PREFER(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("prefer", driver.loc_); + } +} + +\"require\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_REQUIRE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("require", driver.loc_); + } +} + +\"verify-ca\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_VERIFY_CA(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("verify-ca", driver.loc_); + } +} + +\"verify-full\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::SSL_MODE: + return isc::dhcp::Dhcp4Parser::make_VERIFY_FULL(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("verify-full", driver.loc_); + } +} + \"cipher-list\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 4749ba2245..7126cfea63 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -221,6 +221,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -265,6 +266,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -309,6 +311,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -352,6 +355,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -411,87 +415,93 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 417 "dhcp4_parser.cc" +#line 421 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 423 "dhcp4_parser.cc" +#line 427 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 429 "dhcp4_parser.cc" +#line 433 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 435 "dhcp4_parser.cc" +#line 439 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 441 "dhcp4_parser.cc" +#line 445 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 447 "dhcp4_parser.cc" +#line 451 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 453 "dhcp4_parser.cc" +#line 457 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 459 "dhcp4_parser.cc" +#line 463 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 465 "dhcp4_parser.cc" +#line 469 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 471 "dhcp4_parser.cc" +#line 475 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 477 "dhcp4_parser.cc" +#line 481 "dhcp4_parser.cc" + break; + + case symbol_kind::S_ssl_mode: // ssl_mode +#line 328 "dhcp4_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 487 "dhcp4_parser.cc" break; case symbol_kind::S_control_socket_type_value: // control_socket_type_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 483 "dhcp4_parser.cc" +#line 493 "dhcp4_parser.cc" break; case symbol_kind::S_auth_type_value: // auth_type_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 489 "dhcp4_parser.cc" +#line 499 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 321 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 495 "dhcp4_parser.cc" +#line 505 "dhcp4_parser.cc" break; default: @@ -728,6 +738,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -771,300 +782,300 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 330 "dhcp4_parser.yy" +#line 337 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 777 "dhcp4_parser.cc" +#line 788 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 331 "dhcp4_parser.yy" +#line 338 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } -#line 783 "dhcp4_parser.cc" +#line 794 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 332 "dhcp4_parser.yy" +#line 339 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } -#line 789 "dhcp4_parser.cc" +#line 800 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 333 "dhcp4_parser.yy" +#line 340 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 795 "dhcp4_parser.cc" +#line 806 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 334 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } -#line 801 "dhcp4_parser.cc" +#line 812 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 335 "dhcp4_parser.yy" +#line 342 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } -#line 807 "dhcp4_parser.cc" +#line 818 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 336 "dhcp4_parser.yy" +#line 343 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } -#line 813 "dhcp4_parser.cc" +#line 824 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 337 "dhcp4_parser.yy" +#line 344 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } -#line 819 "dhcp4_parser.cc" +#line 830 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 338 "dhcp4_parser.yy" +#line 345 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } -#line 825 "dhcp4_parser.cc" +#line 836 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 339 "dhcp4_parser.yy" +#line 346 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } -#line 831 "dhcp4_parser.cc" +#line 842 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 340 "dhcp4_parser.yy" +#line 347 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 837 "dhcp4_parser.cc" +#line 848 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 341 "dhcp4_parser.yy" +#line 348 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 843 "dhcp4_parser.cc" +#line 854 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 342 "dhcp4_parser.yy" +#line 349 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 849 "dhcp4_parser.cc" +#line 860 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 350 "dhcp4_parser.yy" +#line 357 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 855 "dhcp4_parser.cc" +#line 866 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 351 "dhcp4_parser.yy" +#line 358 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 861 "dhcp4_parser.cc" +#line 872 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 352 "dhcp4_parser.yy" +#line 359 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 867 "dhcp4_parser.cc" +#line 878 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 353 "dhcp4_parser.yy" +#line 360 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 873 "dhcp4_parser.cc" +#line 884 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 354 "dhcp4_parser.yy" +#line 361 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 879 "dhcp4_parser.cc" +#line 890 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 355 "dhcp4_parser.yy" +#line 362 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 885 "dhcp4_parser.cc" +#line 896 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 356 "dhcp4_parser.yy" +#line 363 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 891 "dhcp4_parser.cc" +#line 902 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 359 "dhcp4_parser.yy" +#line 366 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 900 "dhcp4_parser.cc" +#line 911 "dhcp4_parser.cc" break; case 36: // $@14: %empty -#line 364 "dhcp4_parser.yy" +#line 371 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 911 "dhcp4_parser.cc" +#line 922 "dhcp4_parser.cc" break; case 37: // map2: "{" $@14 map_content "}" -#line 369 "dhcp4_parser.yy" +#line 376 "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 // for it. } -#line 921 "dhcp4_parser.cc" +#line 932 "dhcp4_parser.cc" break; case 38: // map_value: map2 -#line 375 "dhcp4_parser.yy" +#line 382 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 927 "dhcp4_parser.cc" +#line 938 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 382 "dhcp4_parser.yy" +#line 389 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 937 "dhcp4_parser.cc" +#line 948 "dhcp4_parser.cc" break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 387 "dhcp4_parser.yy" +#line 394 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 948 "dhcp4_parser.cc" +#line 959 "dhcp4_parser.cc" break; case 43: // not_empty_map: not_empty_map "," -#line 393 "dhcp4_parser.yy" +#line 400 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 956 "dhcp4_parser.cc" +#line 967 "dhcp4_parser.cc" break; case 44: // $@15: %empty -#line 398 "dhcp4_parser.yy" +#line 405 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 965 "dhcp4_parser.cc" +#line 976 "dhcp4_parser.cc" break; case 45: // list_generic: "[" $@15 list_content "]" -#line 401 "dhcp4_parser.yy" +#line 408 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } -#line 973 "dhcp4_parser.cc" +#line 984 "dhcp4_parser.cc" break; case 48: // not_empty_list: value -#line 409 "dhcp4_parser.yy" +#line 416 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 982 "dhcp4_parser.cc" +#line 993 "dhcp4_parser.cc" break; case 49: // not_empty_list: not_empty_list "," value -#line 413 "dhcp4_parser.yy" +#line 420 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 991 "dhcp4_parser.cc" +#line 1002 "dhcp4_parser.cc" break; case 50: // not_empty_list: not_empty_list "," -#line 417 "dhcp4_parser.yy" +#line 424 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 999 "dhcp4_parser.cc" +#line 1010 "dhcp4_parser.cc" break; case 51: // $@16: %empty -#line 423 "dhcp4_parser.yy" +#line 430 "dhcp4_parser.yy" { // List parsing about to start } -#line 1007 "dhcp4_parser.cc" +#line 1018 "dhcp4_parser.cc" break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 425 "dhcp4_parser.yy" +#line 432 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 1016 "dhcp4_parser.cc" +#line 1027 "dhcp4_parser.cc" break; case 55: // not_empty_list_strings: "constant string" -#line 434 "dhcp4_parser.yy" +#line 441 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1025 "dhcp4_parser.cc" +#line 1036 "dhcp4_parser.cc" break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 438 "dhcp4_parser.yy" +#line 445 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1034 "dhcp4_parser.cc" +#line 1045 "dhcp4_parser.cc" break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 442 "dhcp4_parser.yy" +#line 449 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1042 "dhcp4_parser.cc" +#line 1053 "dhcp4_parser.cc" break; case 58: // unknown_map_entry: "constant string" ":" -#line 452 "dhcp4_parser.yy" +#line 459 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1053 "dhcp4_parser.cc" +#line 1064 "dhcp4_parser.cc" break; case 59: // $@17: %empty -#line 461 "dhcp4_parser.yy" +#line 468 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1064 "dhcp4_parser.cc" +#line 1075 "dhcp4_parser.cc" break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 466 "dhcp4_parser.yy" +#line 473 "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 @@ -1073,11 +1084,11 @@ namespace isc { namespace dhcp { // Dhcp4 is required ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1077 "dhcp4_parser.cc" +#line 1088 "dhcp4_parser.cc" break; case 61: // $@18: %empty -#line 476 "dhcp4_parser.yy" +#line 483 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1088,381 +1099,381 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP4); } -#line 1092 "dhcp4_parser.cc" +#line 1103 "dhcp4_parser.cc" break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 485 "dhcp4_parser.yy" +#line 492 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1102 "dhcp4_parser.cc" +#line 1113 "dhcp4_parser.cc" break; case 64: // global_object_comma: global_object "," -#line 493 "dhcp4_parser.yy" +#line 500 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1110 "dhcp4_parser.cc" +#line 1121 "dhcp4_parser.cc" break; case 65: // $@19: %empty -#line 499 "dhcp4_parser.yy" +#line 506 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1120 "dhcp4_parser.cc" +#line 1131 "dhcp4_parser.cc" break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 503 "dhcp4_parser.yy" +#line 510 "dhcp4_parser.yy" { // No global parameter is required // parsing completed } -#line 1129 "dhcp4_parser.cc" +#line 1140 "dhcp4_parser.cc" break; case 69: // global_params: global_params "," -#line 510 "dhcp4_parser.yy" +#line 517 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1137 "dhcp4_parser.cc" +#line 1148 "dhcp4_parser.cc" break; case 142: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 591 "dhcp4_parser.yy" +#line 598 "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))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1147 "dhcp4_parser.cc" +#line 1158 "dhcp4_parser.cc" break; case 143: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 597 "dhcp4_parser.yy" +#line 604 "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))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1157 "dhcp4_parser.cc" +#line 1168 "dhcp4_parser.cc" break; case 144: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 603 "dhcp4_parser.yy" +#line 610 "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))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1167 "dhcp4_parser.cc" +#line 1178 "dhcp4_parser.cc" break; case 145: // renew_timer: "renew-timer" ":" "integer" -#line 609 "dhcp4_parser.yy" +#line 616 "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))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1177 "dhcp4_parser.cc" +#line 1188 "dhcp4_parser.cc" break; case 146: // rebind_timer: "rebind-timer" ":" "integer" -#line 615 "dhcp4_parser.yy" +#line 622 "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))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1187 "dhcp4_parser.cc" +#line 1198 "dhcp4_parser.cc" break; case 147: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 621 "dhcp4_parser.yy" +#line 628 "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))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1197 "dhcp4_parser.cc" +#line 1208 "dhcp4_parser.cc" break; case 148: // t1_percent: "t1-percent" ":" "floating point" -#line 627 "dhcp4_parser.yy" +#line 634 "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))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1207 "dhcp4_parser.cc" +#line 1218 "dhcp4_parser.cc" break; case 149: // t2_percent: "t2-percent" ":" "floating point" -#line 633 "dhcp4_parser.yy" +#line 640 "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))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1217 "dhcp4_parser.cc" +#line 1228 "dhcp4_parser.cc" break; case 150: // cache_threshold: "cache-threshold" ":" "floating point" -#line 639 "dhcp4_parser.yy" +#line 646 "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))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1227 "dhcp4_parser.cc" +#line 1238 "dhcp4_parser.cc" break; case 151: // cache_max_age: "cache-max-age" ":" "integer" -#line 645 "dhcp4_parser.yy" +#line 652 "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))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1237 "dhcp4_parser.cc" +#line 1248 "dhcp4_parser.cc" break; case 152: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 651 "dhcp4_parser.yy" +#line 658 "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))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1247 "dhcp4_parser.cc" +#line 1258 "dhcp4_parser.cc" break; case 153: // $@20: %empty -#line 657 "dhcp4_parser.yy" +#line 664 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1256 "dhcp4_parser.cc" +#line 1267 "dhcp4_parser.cc" break; case 154: // server_tag: "server-tag" $@20 ":" "constant string" -#line 660 "dhcp4_parser.yy" +#line 667 "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); ctx.leave(); } -#line 1266 "dhcp4_parser.cc" +#line 1277 "dhcp4_parser.cc" break; case 155: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 666 "dhcp4_parser.yy" +#line 673 "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))); ctx.stack_.back()->set("parked-packet-limit", ppl); } -#line 1276 "dhcp4_parser.cc" +#line 1287 "dhcp4_parser.cc" break; case 156: // $@21: %empty -#line 672 "dhcp4_parser.yy" +#line 679 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1285 "dhcp4_parser.cc" +#line 1296 "dhcp4_parser.cc" break; case 157: // allocator: "allocator" $@21 ":" "constant string" -#line 675 "dhcp4_parser.yy" +#line 682 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); ctx.leave(); } -#line 1295 "dhcp4_parser.cc" +#line 1306 "dhcp4_parser.cc" break; case 158: // echo_client_id: "echo-client-id" ":" "boolean" -#line 681 "dhcp4_parser.yy" +#line 688 "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))); ctx.stack_.back()->set("echo-client-id", echo); } -#line 1305 "dhcp4_parser.cc" +#line 1316 "dhcp4_parser.cc" break; case 159: // match_client_id: "match-client-id" ":" "boolean" -#line 687 "dhcp4_parser.yy" +#line 694 "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))); ctx.stack_.back()->set("match-client-id", match); } -#line 1315 "dhcp4_parser.cc" +#line 1326 "dhcp4_parser.cc" break; case 160: // authoritative: "authoritative" ":" "boolean" -#line 693 "dhcp4_parser.yy" +#line 700 "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))); ctx.stack_.back()->set("authoritative", prf); } -#line 1325 "dhcp4_parser.cc" +#line 1336 "dhcp4_parser.cc" break; case 161: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 699 "dhcp4_parser.yy" +#line 706 "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))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1335 "dhcp4_parser.cc" +#line 1346 "dhcp4_parser.cc" break; case 162: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 705 "dhcp4_parser.yy" +#line 712 "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))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1345 "dhcp4_parser.cc" +#line 1356 "dhcp4_parser.cc" break; case 163: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 711 "dhcp4_parser.yy" +#line 718 "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))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1355 "dhcp4_parser.cc" +#line 1366 "dhcp4_parser.cc" break; case 164: // $@22: %empty -#line 717 "dhcp4_parser.yy" +#line 724 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); } -#line 1364 "dhcp4_parser.cc" +#line 1375 "dhcp4_parser.cc" break; case 165: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 720 "dhcp4_parser.yy" +#line 727 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1373 "dhcp4_parser.cc" +#line 1384 "dhcp4_parser.cc" break; case 166: // ddns_replace_client_name_value: "when-present" -#line 726 "dhcp4_parser.yy" +#line 733 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1381 "dhcp4_parser.cc" +#line 1392 "dhcp4_parser.cc" break; case 167: // ddns_replace_client_name_value: "never" -#line 729 "dhcp4_parser.yy" +#line 736 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1389 "dhcp4_parser.cc" +#line 1400 "dhcp4_parser.cc" break; case 168: // ddns_replace_client_name_value: "always" -#line 732 "dhcp4_parser.yy" +#line 739 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1397 "dhcp4_parser.cc" +#line 1408 "dhcp4_parser.cc" break; case 169: // ddns_replace_client_name_value: "when-not-present" -#line 735 "dhcp4_parser.yy" +#line 742 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1405 "dhcp4_parser.cc" +#line 1416 "dhcp4_parser.cc" break; case 170: // ddns_replace_client_name_value: "boolean" -#line 738 "dhcp4_parser.yy" +#line 745 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the ddns-replace-client-name are " "no longer supported"); } -#line 1414 "dhcp4_parser.cc" +#line 1425 "dhcp4_parser.cc" break; case 171: // $@23: %empty -#line 744 "dhcp4_parser.yy" +#line 751 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1423 "dhcp4_parser.cc" +#line 1434 "dhcp4_parser.cc" break; case 172: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 747 "dhcp4_parser.yy" +#line 754 "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); ctx.leave(); } -#line 1433 "dhcp4_parser.cc" +#line 1444 "dhcp4_parser.cc" break; case 173: // $@24: %empty -#line 753 "dhcp4_parser.yy" +#line 760 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1442 "dhcp4_parser.cc" +#line 1453 "dhcp4_parser.cc" break; case 174: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 756 "dhcp4_parser.yy" +#line 763 "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); ctx.leave(); } -#line 1452 "dhcp4_parser.cc" +#line 1463 "dhcp4_parser.cc" break; case 175: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 762 "dhcp4_parser.yy" +#line 769 "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))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1462 "dhcp4_parser.cc" +#line 1473 "dhcp4_parser.cc" break; case 176: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 771 "dhcp4_parser.yy" +#line 778 "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))); @@ -1472,219 +1483,219 @@ namespace isc { namespace dhcp { : "no-check-with-dhcid")); ctx.stack_.back()->set("ddns-conflict-resolution-mode", mode); } -#line 1476 "dhcp4_parser.cc" +#line 1487 "dhcp4_parser.cc" break; case 177: // $@25: %empty -#line 781 "dhcp4_parser.yy" +#line 788 "dhcp4_parser.yy" { ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE); } -#line 1485 "dhcp4_parser.cc" +#line 1496 "dhcp4_parser.cc" break; case 178: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value -#line 784 "dhcp4_parser.yy" +#line 791 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1494 "dhcp4_parser.cc" +#line 1505 "dhcp4_parser.cc" break; case 179: // ddns_conflict_resolution_mode_value: "check-with-dhcid" -#line 790 "dhcp4_parser.yy" +#line 797 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1502 "dhcp4_parser.cc" +#line 1513 "dhcp4_parser.cc" break; case 180: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid" -#line 793 "dhcp4_parser.yy" +#line 800 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1510 "dhcp4_parser.cc" +#line 1521 "dhcp4_parser.cc" break; case 181: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid" -#line 796 "dhcp4_parser.yy" +#line 803 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1518 "dhcp4_parser.cc" +#line 1529 "dhcp4_parser.cc" break; case 182: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid" -#line 799 "dhcp4_parser.yy" +#line 806 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1526 "dhcp4_parser.cc" +#line 1537 "dhcp4_parser.cc" break; case 183: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" -#line 804 "dhcp4_parser.yy" +#line 811 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-percent", ttl); } -#line 1536 "dhcp4_parser.cc" +#line 1547 "dhcp4_parser.cc" break; case 184: // ddns_ttl: "ddns-ttl" ":" "integer" -#line 810 "dhcp4_parser.yy" +#line 817 "dhcp4_parser.yy" { ctx.unique("ddns-ttl", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl", ttl); } -#line 1546 "dhcp4_parser.cc" +#line 1557 "dhcp4_parser.cc" break; case 185: // ddns_ttl_min: "ddns-ttl-min" ":" "integer" -#line 816 "dhcp4_parser.yy" +#line 823 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-min", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-min", ttl); } -#line 1556 "dhcp4_parser.cc" +#line 1567 "dhcp4_parser.cc" break; case 186: // ddns_ttl_max: "ddns-ttl-mix" ":" "integer" -#line 822 "dhcp4_parser.yy" +#line 829 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-max", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-max", ttl); } -#line 1566 "dhcp4_parser.cc" +#line 1577 "dhcp4_parser.cc" break; case 187: // $@26: %empty -#line 828 "dhcp4_parser.yy" +#line 835 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1575 "dhcp4_parser.cc" +#line 1586 "dhcp4_parser.cc" break; case 188: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string" -#line 831 "dhcp4_parser.yy" +#line 838 "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); ctx.leave(); } -#line 1585 "dhcp4_parser.cc" +#line 1596 "dhcp4_parser.cc" break; case 189: // $@27: %empty -#line 837 "dhcp4_parser.yy" +#line 844 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1594 "dhcp4_parser.cc" +#line 1605 "dhcp4_parser.cc" break; case 190: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string" -#line 840 "dhcp4_parser.yy" +#line 847 "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); ctx.leave(); } -#line 1604 "dhcp4_parser.cc" +#line 1615 "dhcp4_parser.cc" break; case 191: // store_extended_info: "store-extended-info" ":" "boolean" -#line 846 "dhcp4_parser.yy" +#line 853 "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))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1614 "dhcp4_parser.cc" +#line 1625 "dhcp4_parser.cc" break; case 192: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 852 "dhcp4_parser.yy" +#line 859 "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))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1624 "dhcp4_parser.cc" +#line 1635 "dhcp4_parser.cc" break; case 193: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 858 "dhcp4_parser.yy" +#line 865 "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))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1634 "dhcp4_parser.cc" +#line 1645 "dhcp4_parser.cc" break; case 194: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 864 "dhcp4_parser.yy" +#line 871 "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))); ctx.stack_.back()->set("early-global-reservations-lookup", early); } -#line 1644 "dhcp4_parser.cc" +#line 1655 "dhcp4_parser.cc" break; case 195: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 870 "dhcp4_parser.yy" +#line 877 "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))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1654 "dhcp4_parser.cc" +#line 1665 "dhcp4_parser.cc" break; case 196: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 876 "dhcp4_parser.yy" +#line 883 "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))); ctx.stack_.back()->set("reservations-lookup-first", first); } -#line 1664 "dhcp4_parser.cc" +#line 1675 "dhcp4_parser.cc" break; case 197: // offer_lifetime: "offer-lifetime" ":" "integer" -#line 882 "dhcp4_parser.yy" +#line 889 "dhcp4_parser.yy" { ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("offer-lifetime", offer_lifetime); } -#line 1674 "dhcp4_parser.cc" +#line 1685 "dhcp4_parser.cc" break; case 198: // stash_agent_options: "stash-agent-options" ":" "boolean" -#line 888 "dhcp4_parser.yy" +#line 895 "dhcp4_parser.yy" { ctx.unique("stash-agent-options", ctx.loc2pos(yystack_[2].location)); ElementPtr stash(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("stash-agent-options", stash); } -#line 1684 "dhcp4_parser.cc" +#line 1695 "dhcp4_parser.cc" break; case 199: // $@28: %empty -#line 894 "dhcp4_parser.yy" +#line 901 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1692,48 +1703,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1696 "dhcp4_parser.cc" +#line 1707 "dhcp4_parser.cc" break; case 200: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 900 "dhcp4_parser.yy" +#line 907 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1706 "dhcp4_parser.cc" +#line 1717 "dhcp4_parser.cc" break; case 203: // interfaces_config_params: interfaces_config_params "," -#line 908 "dhcp4_parser.yy" +#line 915 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1714 "dhcp4_parser.cc" +#line 1725 "dhcp4_parser.cc" break; case 214: // $@29: %empty -#line 925 "dhcp4_parser.yy" +#line 932 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1724 "dhcp4_parser.cc" +#line 1735 "dhcp4_parser.cc" break; case 215: // sub_interfaces4: "{" $@29 interfaces_config_params "}" -#line 929 "dhcp4_parser.yy" +#line 936 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1733 "dhcp4_parser.cc" +#line 1744 "dhcp4_parser.cc" break; case 216: // $@30: %empty -#line 934 "dhcp4_parser.yy" +#line 941 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1741,124 +1752,124 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1745 "dhcp4_parser.cc" +#line 1756 "dhcp4_parser.cc" break; case 217: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 940 "dhcp4_parser.yy" +#line 947 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1754 "dhcp4_parser.cc" +#line 1765 "dhcp4_parser.cc" break; case 218: // $@31: %empty -#line 945 "dhcp4_parser.yy" +#line 952 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1763 "dhcp4_parser.cc" +#line 1774 "dhcp4_parser.cc" break; case 219: // dhcp_socket_type: "dhcp-socket-type" $@31 ":" socket_type -#line 948 "dhcp4_parser.yy" +#line 955 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1772 "dhcp4_parser.cc" +#line 1783 "dhcp4_parser.cc" break; case 220: // socket_type: "raw" -#line 953 "dhcp4_parser.yy" +#line 960 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1778 "dhcp4_parser.cc" +#line 1789 "dhcp4_parser.cc" break; case 221: // socket_type: "udp" -#line 954 "dhcp4_parser.yy" +#line 961 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1784 "dhcp4_parser.cc" +#line 1795 "dhcp4_parser.cc" break; case 222: // $@32: %empty -#line 957 "dhcp4_parser.yy" +#line 964 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1793 "dhcp4_parser.cc" +#line 1804 "dhcp4_parser.cc" break; case 223: // outbound_interface: "outbound-interface" $@32 ":" outbound_interface_value -#line 960 "dhcp4_parser.yy" +#line 967 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1802 "dhcp4_parser.cc" +#line 1813 "dhcp4_parser.cc" break; case 224: // outbound_interface_value: "same-as-inbound" -#line 965 "dhcp4_parser.yy" +#line 972 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1810 "dhcp4_parser.cc" +#line 1821 "dhcp4_parser.cc" break; case 225: // outbound_interface_value: "use-routing" -#line 967 "dhcp4_parser.yy" +#line 974 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1818 "dhcp4_parser.cc" +#line 1829 "dhcp4_parser.cc" break; case 226: // re_detect: "re-detect" ":" "boolean" -#line 971 "dhcp4_parser.yy" +#line 978 "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))); ctx.stack_.back()->set("re-detect", b); } -#line 1828 "dhcp4_parser.cc" +#line 1839 "dhcp4_parser.cc" break; case 227: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 977 "dhcp4_parser.yy" +#line 984 "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))); ctx.stack_.back()->set("service-sockets-require-all", b); } -#line 1838 "dhcp4_parser.cc" +#line 1849 "dhcp4_parser.cc" break; case 228: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 983 "dhcp4_parser.yy" +#line 990 "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))); ctx.stack_.back()->set("service-sockets-retry-wait-time", n); } -#line 1848 "dhcp4_parser.cc" +#line 1859 "dhcp4_parser.cc" break; case 229: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 989 "dhcp4_parser.yy" +#line 996 "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))); ctx.stack_.back()->set("service-sockets-max-retries", n); } -#line 1858 "dhcp4_parser.cc" +#line 1869 "dhcp4_parser.cc" break; case 230: // $@33: %empty -#line 995 "dhcp4_parser.yy" +#line 1002 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1866,22 +1877,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1870 "dhcp4_parser.cc" +#line 1881 "dhcp4_parser.cc" break; case 231: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" -#line 1001 "dhcp4_parser.yy" +#line 1008 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1881 "dhcp4_parser.cc" +#line 1892 "dhcp4_parser.cc" break; case 232: // $@34: %empty -#line 1008 "dhcp4_parser.yy" +#line 1015 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1889,37 +1900,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1893 "dhcp4_parser.cc" +#line 1904 "dhcp4_parser.cc" break; case 233: // sanity_checks: "sanity-checks" $@34 ":" "{" sanity_checks_params "}" -#line 1014 "dhcp4_parser.yy" +#line 1021 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1902 "dhcp4_parser.cc" +#line 1913 "dhcp4_parser.cc" break; case 236: // sanity_checks_params: sanity_checks_params "," -#line 1021 "dhcp4_parser.yy" +#line 1028 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1910 "dhcp4_parser.cc" +#line 1921 "dhcp4_parser.cc" break; case 239: // $@35: %empty -#line 1030 "dhcp4_parser.yy" +#line 1037 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1919 "dhcp4_parser.cc" +#line 1930 "dhcp4_parser.cc" break; case 240: // lease_checks: "lease-checks" $@35 ":" "constant string" -#line 1033 "dhcp4_parser.yy" +#line 1040 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1935,20 +1946,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1939 "dhcp4_parser.cc" +#line 1950 "dhcp4_parser.cc" break; case 241: // $@36: %empty -#line 1049 "dhcp4_parser.yy" +#line 1056 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1948 "dhcp4_parser.cc" +#line 1959 "dhcp4_parser.cc" break; case 242: // extended_info_checks: "extended-info-checks" $@36 ":" "constant string" -#line 1052 "dhcp4_parser.yy" +#line 1059 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1963,11 +1974,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 1967 "dhcp4_parser.cc" +#line 1978 "dhcp4_parser.cc" break; case 243: // $@37: %empty -#line 1067 "dhcp4_parser.yy" +#line 1074 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1975,22 +1986,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1979 "dhcp4_parser.cc" +#line 1990 "dhcp4_parser.cc" break; case 244: // hosts_database: "hosts-database" $@37 ":" "{" database_map_params "}" -#line 1073 "dhcp4_parser.yy" +#line 1080 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1990 "dhcp4_parser.cc" +#line 2001 "dhcp4_parser.cc" break; case 245: // $@38: %empty -#line 1080 "dhcp4_parser.yy" +#line 1087 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1998,402 +2009,450 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 2002 "dhcp4_parser.cc" +#line 2013 "dhcp4_parser.cc" break; case 246: // hosts_databases: "hosts-databases" $@38 ":" "[" database_list "]" -#line 1086 "dhcp4_parser.yy" +#line 1093 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2011 "dhcp4_parser.cc" +#line 2022 "dhcp4_parser.cc" break; case 251: // not_empty_database_list: not_empty_database_list "," -#line 1097 "dhcp4_parser.yy" +#line 1104 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2019 "dhcp4_parser.cc" +#line 2030 "dhcp4_parser.cc" break; case 252: // $@39: %empty -#line 1102 "dhcp4_parser.yy" +#line 1109 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2029 "dhcp4_parser.cc" +#line 2040 "dhcp4_parser.cc" break; case 253: // database: "{" $@39 database_map_params "}" -#line 1106 "dhcp4_parser.yy" +#line 1113 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2039 "dhcp4_parser.cc" +#line 2050 "dhcp4_parser.cc" break; case 256: // database_map_params: database_map_params "," -#line 1114 "dhcp4_parser.yy" +#line 1121 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2047 "dhcp4_parser.cc" +#line 2058 "dhcp4_parser.cc" break; - case 281: // $@40: %empty -#line 1145 "dhcp4_parser.yy" + case 282: // $@40: %empty +#line 1153 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2056 "dhcp4_parser.cc" +#line 2067 "dhcp4_parser.cc" break; - case 282: // database_type: "type" $@40 ":" "constant string" -#line 1148 "dhcp4_parser.yy" + case 283: // database_type: "type" $@40 ":" "constant string" +#line 1156 "dhcp4_parser.yy" { ElementPtr db_type(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", db_type); ctx.leave(); } -#line 2066 "dhcp4_parser.cc" +#line 2077 "dhcp4_parser.cc" break; - case 283: // $@41: %empty -#line 1154 "dhcp4_parser.yy" + case 284: // $@41: %empty +#line 1162 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2075 "dhcp4_parser.cc" +#line 2086 "dhcp4_parser.cc" break; - case 284: // user: "user" $@41 ":" "constant string" -#line 1157 "dhcp4_parser.yy" + case 285: // user: "user" $@41 ":" "constant string" +#line 1165 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 2085 "dhcp4_parser.cc" +#line 2096 "dhcp4_parser.cc" break; - case 285: // $@42: %empty -#line 1163 "dhcp4_parser.yy" + case 286: // $@42: %empty +#line 1171 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2094 "dhcp4_parser.cc" +#line 2105 "dhcp4_parser.cc" break; - case 286: // password: "password" $@42 ":" "constant string" -#line 1166 "dhcp4_parser.yy" + case 287: // password: "password" $@42 ":" "constant string" +#line 1174 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 2104 "dhcp4_parser.cc" +#line 2115 "dhcp4_parser.cc" break; - case 287: // $@43: %empty -#line 1172 "dhcp4_parser.yy" + case 288: // $@43: %empty +#line 1180 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2113 "dhcp4_parser.cc" +#line 2124 "dhcp4_parser.cc" break; - case 288: // host: "host" $@43 ":" "constant string" -#line 1175 "dhcp4_parser.yy" + case 289: // host: "host" $@43 ":" "constant string" +#line 1183 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 2123 "dhcp4_parser.cc" +#line 2134 "dhcp4_parser.cc" break; - case 289: // port: "port" ":" "integer" -#line 1181 "dhcp4_parser.yy" + case 290: // port: "port" ":" "integer" +#line 1189 "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))); ctx.stack_.back()->set("port", p); } -#line 2133 "dhcp4_parser.cc" +#line 2144 "dhcp4_parser.cc" break; - case 290: // $@44: %empty -#line 1187 "dhcp4_parser.yy" + case 291: // $@44: %empty +#line 1195 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2142 "dhcp4_parser.cc" +#line 2153 "dhcp4_parser.cc" break; - case 291: // name: "name" $@44 ":" "constant string" -#line 1190 "dhcp4_parser.yy" + case 292: // name: "name" $@44 ":" "constant string" +#line 1198 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 2152 "dhcp4_parser.cc" +#line 2163 "dhcp4_parser.cc" break; - case 292: // persist: "persist" ":" "boolean" -#line 1196 "dhcp4_parser.yy" + case 293: // persist: "persist" ":" "boolean" +#line 1204 "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))); ctx.stack_.back()->set("persist", n); } -#line 2162 "dhcp4_parser.cc" +#line 2173 "dhcp4_parser.cc" break; - case 293: // lfc_interval: "lfc-interval" ":" "integer" -#line 1202 "dhcp4_parser.yy" + case 294: // lfc_interval: "lfc-interval" ":" "integer" +#line 1210 "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))); ctx.stack_.back()->set("lfc-interval", n); } -#line 2172 "dhcp4_parser.cc" +#line 2183 "dhcp4_parser.cc" break; - case 294: // readonly: "readonly" ":" "boolean" -#line 1208 "dhcp4_parser.yy" + case 295: // readonly: "readonly" ":" "boolean" +#line 1216 "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))); ctx.stack_.back()->set("readonly", n); } -#line 2182 "dhcp4_parser.cc" +#line 2193 "dhcp4_parser.cc" break; - case 295: // connect_timeout: "connect-timeout" ":" "integer" -#line 1214 "dhcp4_parser.yy" + case 296: // connect_timeout: "connect-timeout" ":" "integer" +#line 1222 "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))); ctx.stack_.back()->set("connect-timeout", n); } -#line 2192 "dhcp4_parser.cc" +#line 2203 "dhcp4_parser.cc" break; - case 296: // read_timeout: "read-timeout" ":" "integer" -#line 1220 "dhcp4_parser.yy" + case 297: // read_timeout: "read-timeout" ":" "integer" +#line 1228 "dhcp4_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("read-timeout", n); } -#line 2202 "dhcp4_parser.cc" +#line 2213 "dhcp4_parser.cc" break; - case 297: // write_timeout: "write-timeout" ":" "integer" -#line 1226 "dhcp4_parser.yy" + case 298: // write_timeout: "write-timeout" ":" "integer" +#line 1234 "dhcp4_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("write-timeout", n); } -#line 2212 "dhcp4_parser.cc" +#line 2223 "dhcp4_parser.cc" break; - case 298: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1232 "dhcp4_parser.yy" + case 299: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1240 "dhcp4_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-user-timeout", n); } -#line 2222 "dhcp4_parser.cc" +#line 2233 "dhcp4_parser.cc" break; - case 299: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1238 "dhcp4_parser.yy" + case 300: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1246 "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))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2232 "dhcp4_parser.cc" +#line 2243 "dhcp4_parser.cc" break; - case 300: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1244 "dhcp4_parser.yy" + case 301: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1252 "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))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2242 "dhcp4_parser.cc" +#line 2253 "dhcp4_parser.cc" break; - case 301: // $@45: %empty -#line 1250 "dhcp4_parser.yy" + case 302: // $@45: %empty +#line 1258 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 2251 "dhcp4_parser.cc" +#line 2262 "dhcp4_parser.cc" break; - case 302: // on_fail: "on-fail" $@45 ":" on_fail_mode -#line 1253 "dhcp4_parser.yy" + case 303: // on_fail: "on-fail" $@45 ":" on_fail_mode +#line 1261 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2260 "dhcp4_parser.cc" +#line 2271 "dhcp4_parser.cc" break; - case 303: // on_fail_mode: "stop-retry-exit" -#line 1258 "dhcp4_parser.yy" + case 304: // on_fail_mode: "stop-retry-exit" +#line 1266 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2266 "dhcp4_parser.cc" +#line 2277 "dhcp4_parser.cc" break; - case 304: // on_fail_mode: "serve-retry-exit" -#line 1259 "dhcp4_parser.yy" + case 305: // on_fail_mode: "serve-retry-exit" +#line 1267 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2272 "dhcp4_parser.cc" +#line 2283 "dhcp4_parser.cc" break; - case 305: // on_fail_mode: "serve-retry-continue" -#line 1260 "dhcp4_parser.yy" + case 306: // on_fail_mode: "serve-retry-continue" +#line 1268 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2278 "dhcp4_parser.cc" +#line 2289 "dhcp4_parser.cc" break; - case 306: // retry_on_startup: "retry-on-startup" ":" "boolean" -#line 1263 "dhcp4_parser.yy" + case 307: // retry_on_startup: "retry-on-startup" ":" "boolean" +#line 1271 "dhcp4_parser.yy" { ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("retry-on-startup", n); } -#line 2288 "dhcp4_parser.cc" +#line 2299 "dhcp4_parser.cc" break; - case 307: // max_row_errors: "max-row-errors" ":" "integer" -#line 1269 "dhcp4_parser.yy" + case 308: // max_row_errors: "max-row-errors" ":" "integer" +#line 1277 "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))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2298 "dhcp4_parser.cc" +#line 2309 "dhcp4_parser.cc" break; - case 308: // $@46: %empty -#line 1275 "dhcp4_parser.yy" + case 309: // $@46: %empty +#line 1283 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2307 "dhcp4_parser.cc" +#line 2318 "dhcp4_parser.cc" break; - case 309: // trust_anchor: "trust-anchor" $@46 ":" "constant string" -#line 1278 "dhcp4_parser.yy" + case 310: // trust_anchor: "trust-anchor" $@46 ":" "constant string" +#line 1286 "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); ctx.leave(); } -#line 2317 "dhcp4_parser.cc" +#line 2328 "dhcp4_parser.cc" break; - case 310: // $@47: %empty -#line 1284 "dhcp4_parser.yy" + case 311: // $@47: %empty +#line 1292 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2326 "dhcp4_parser.cc" +#line 2337 "dhcp4_parser.cc" break; - case 311: // cert_file: "cert-file" $@47 ":" "constant string" -#line 1287 "dhcp4_parser.yy" + case 312: // cert_file: "cert-file" $@47 ":" "constant string" +#line 1295 "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); ctx.leave(); } -#line 2336 "dhcp4_parser.cc" +#line 2347 "dhcp4_parser.cc" break; - case 312: // $@48: %empty -#line 1293 "dhcp4_parser.yy" + case 313: // $@48: %empty +#line 1301 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2345 "dhcp4_parser.cc" +#line 2356 "dhcp4_parser.cc" break; - case 313: // key_file: "key-file" $@48 ":" "constant string" -#line 1296 "dhcp4_parser.yy" + case 314: // key_file: "key-file" $@48 ":" "constant string" +#line 1304 "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); ctx.leave(); } -#line 2355 "dhcp4_parser.cc" +#line 2366 "dhcp4_parser.cc" break; - case 314: // $@49: %empty -#line 1302 "dhcp4_parser.yy" + case 315: // $@49: %empty +#line 1310 "dhcp4_parser.yy" { ctx.unique("key-password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2364 "dhcp4_parser.cc" +#line 2375 "dhcp4_parser.cc" break; - case 315: // key_password: "key-password" $@49 ":" "constant string" -#line 1305 "dhcp4_parser.yy" + case 316: // key_password: "key-password" $@49 ":" "constant string" +#line 1313 "dhcp4_parser.yy" { ElementPtr key_pass(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-password", key_pass); ctx.leave(); } -#line 2374 "dhcp4_parser.cc" +#line 2385 "dhcp4_parser.cc" + break; + + case 317: // $@50: %empty +#line 1319 "dhcp4_parser.yy" + { + ctx.unique("ssl-mode", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.SSL_MODE); +} +#line 2394 "dhcp4_parser.cc" + break; + + case 318: // ssl_mode: "ssl-mode" $@50 ":" ssl_mode +#line 1322 "dhcp4_parser.yy" + { + ctx.stack_.back()->set("ssl-mode", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 2403 "dhcp4_parser.cc" + break; + + case 319: // ssl_mode: "disable" +#line 1327 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location))); } +#line 2409 "dhcp4_parser.cc" + break; + + case 320: // ssl_mode: "prefer" +#line 1328 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location))); } +#line 2415 "dhcp4_parser.cc" + break; + + case 321: // ssl_mode: "require" +#line 1329 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location))); } +#line 2421 "dhcp4_parser.cc" + break; + + case 322: // ssl_mode: "verify-ca" +#line 1330 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location))); } +#line 2427 "dhcp4_parser.cc" break; - case 316: // $@50: %empty -#line 1311 "dhcp4_parser.yy" + case 323: // ssl_mode: "verify-full" +#line 1331 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location))); } +#line 2433 "dhcp4_parser.cc" + break; + + case 324: // $@51: %empty +#line 1334 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2383 "dhcp4_parser.cc" +#line 2442 "dhcp4_parser.cc" break; - case 317: // cipher_list: "cipher-list" $@50 ":" "constant string" -#line 1314 "dhcp4_parser.yy" + case 325: // cipher_list: "cipher-list" $@51 ":" "constant string" +#line 1337 "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); ctx.leave(); } -#line 2393 "dhcp4_parser.cc" +#line 2452 "dhcp4_parser.cc" break; - case 318: // $@51: %empty -#line 1320 "dhcp4_parser.yy" + case 326: // $@52: %empty +#line 1343 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2401,73 +2460,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2405 "dhcp4_parser.cc" +#line 2464 "dhcp4_parser.cc" break; - case 319: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" -#line 1326 "dhcp4_parser.yy" + case 327: // host_reservation_identifiers: "host-reservation-identifiers" $@52 ":" "[" host_reservation_identifiers_list "]" +#line 1349 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2414 "dhcp4_parser.cc" +#line 2473 "dhcp4_parser.cc" break; - case 322: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1333 "dhcp4_parser.yy" + case 330: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1356 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2422 "dhcp4_parser.cc" +#line 2481 "dhcp4_parser.cc" break; - case 328: // duid_id: "duid" -#line 1345 "dhcp4_parser.yy" + case 336: // duid_id: "duid" +#line 1368 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2431 "dhcp4_parser.cc" +#line 2490 "dhcp4_parser.cc" break; - case 329: // hw_address_id: "hw-address" -#line 1350 "dhcp4_parser.yy" + case 337: // hw_address_id: "hw-address" +#line 1373 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2440 "dhcp4_parser.cc" +#line 2499 "dhcp4_parser.cc" break; - case 330: // circuit_id: "circuit-id" -#line 1355 "dhcp4_parser.yy" + case 338: // circuit_id: "circuit-id" +#line 1378 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2449 "dhcp4_parser.cc" +#line 2508 "dhcp4_parser.cc" break; - case 331: // client_id: "client-id" -#line 1360 "dhcp4_parser.yy" + case 339: // client_id: "client-id" +#line 1383 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2458 "dhcp4_parser.cc" +#line 2517 "dhcp4_parser.cc" break; - case 332: // flex_id: "flex-id" -#line 1365 "dhcp4_parser.yy" + case 340: // flex_id: "flex-id" +#line 1388 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2467 "dhcp4_parser.cc" +#line 2526 "dhcp4_parser.cc" break; - case 333: // $@52: %empty -#line 1372 "dhcp4_parser.yy" + case 341: // $@53: %empty +#line 1395 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2475,60 +2534,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2479 "dhcp4_parser.cc" +#line 2538 "dhcp4_parser.cc" break; - case 334: // dhcp_multi_threading: "multi-threading" $@52 ":" "{" multi_threading_params "}" -#line 1378 "dhcp4_parser.yy" + case 342: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}" +#line 1401 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2490 "dhcp4_parser.cc" +#line 2549 "dhcp4_parser.cc" break; - case 337: // multi_threading_params: multi_threading_params "," -#line 1387 "dhcp4_parser.yy" + case 345: // multi_threading_params: multi_threading_params "," +#line 1410 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2498 "dhcp4_parser.cc" +#line 2557 "dhcp4_parser.cc" break; - case 344: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1400 "dhcp4_parser.yy" + case 352: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1423 "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))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2508 "dhcp4_parser.cc" +#line 2567 "dhcp4_parser.cc" break; - case 345: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1406 "dhcp4_parser.yy" + case 353: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1429 "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))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2518 "dhcp4_parser.cc" +#line 2577 "dhcp4_parser.cc" break; - case 346: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1412 "dhcp4_parser.yy" + case 354: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1435 "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))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2528 "dhcp4_parser.cc" +#line 2587 "dhcp4_parser.cc" break; - case 347: // $@53: %empty -#line 1418 "dhcp4_parser.yy" + case 355: // $@54: %empty +#line 1441 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2536,113 +2595,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2540 "dhcp4_parser.cc" +#line 2599 "dhcp4_parser.cc" break; - case 348: // hooks_libraries: "hooks-libraries" $@53 ":" "[" hooks_libraries_list "]" -#line 1424 "dhcp4_parser.yy" + case 356: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]" +#line 1447 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2549 "dhcp4_parser.cc" +#line 2608 "dhcp4_parser.cc" break; - case 353: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1435 "dhcp4_parser.yy" + case 361: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1458 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2557 "dhcp4_parser.cc" +#line 2616 "dhcp4_parser.cc" break; - case 354: // $@54: %empty -#line 1440 "dhcp4_parser.yy" + case 362: // $@55: %empty +#line 1463 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2567 "dhcp4_parser.cc" +#line 2626 "dhcp4_parser.cc" break; - case 355: // hooks_library: "{" $@54 hooks_params "}" -#line 1444 "dhcp4_parser.yy" + case 363: // hooks_library: "{" $@55 hooks_params "}" +#line 1467 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2577 "dhcp4_parser.cc" +#line 2636 "dhcp4_parser.cc" break; - case 356: // $@55: %empty -#line 1450 "dhcp4_parser.yy" + case 364: // $@56: %empty +#line 1473 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2587 "dhcp4_parser.cc" +#line 2646 "dhcp4_parser.cc" break; - case 357: // sub_hooks_library: "{" $@55 hooks_params "}" -#line 1454 "dhcp4_parser.yy" + case 365: // sub_hooks_library: "{" $@56 hooks_params "}" +#line 1477 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2597 "dhcp4_parser.cc" +#line 2656 "dhcp4_parser.cc" break; - case 360: // hooks_params: hooks_params "," -#line 1462 "dhcp4_parser.yy" + case 368: // hooks_params: hooks_params "," +#line 1485 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2605 "dhcp4_parser.cc" +#line 2664 "dhcp4_parser.cc" break; - case 364: // $@56: %empty -#line 1472 "dhcp4_parser.yy" + case 372: // $@57: %empty +#line 1495 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2614 "dhcp4_parser.cc" +#line 2673 "dhcp4_parser.cc" break; - case 365: // library: "library" $@56 ":" "constant string" -#line 1475 "dhcp4_parser.yy" + case 373: // library: "library" $@57 ":" "constant string" +#line 1498 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2624 "dhcp4_parser.cc" +#line 2683 "dhcp4_parser.cc" break; - case 366: // $@57: %empty -#line 1481 "dhcp4_parser.yy" + case 374: // $@58: %empty +#line 1504 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2633 "dhcp4_parser.cc" +#line 2692 "dhcp4_parser.cc" break; - case 367: // parameters: "parameters" $@57 ":" map_value -#line 1484 "dhcp4_parser.yy" + case 375: // parameters: "parameters" $@58 ":" map_value +#line 1507 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2642 "dhcp4_parser.cc" +#line 2701 "dhcp4_parser.cc" break; - case 368: // $@58: %empty -#line 1490 "dhcp4_parser.yy" + case 376: // $@59: %empty +#line 1513 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2650,89 +2709,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2654 "dhcp4_parser.cc" +#line 2713 "dhcp4_parser.cc" break; - case 369: // expired_leases_processing: "expired-leases-processing" $@58 ":" "{" expired_leases_params "}" -#line 1496 "dhcp4_parser.yy" + case 377: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}" +#line 1519 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2664 "dhcp4_parser.cc" +#line 2723 "dhcp4_parser.cc" break; - case 372: // expired_leases_params: expired_leases_params "," -#line 1504 "dhcp4_parser.yy" + case 380: // expired_leases_params: expired_leases_params "," +#line 1527 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2672 "dhcp4_parser.cc" +#line 2731 "dhcp4_parser.cc" break; - case 379: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1517 "dhcp4_parser.yy" + case 387: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1540 "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))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2682 "dhcp4_parser.cc" +#line 2741 "dhcp4_parser.cc" break; - case 380: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1523 "dhcp4_parser.yy" + case 388: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1546 "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))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2692 "dhcp4_parser.cc" +#line 2751 "dhcp4_parser.cc" break; - case 381: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1529 "dhcp4_parser.yy" + case 389: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1552 "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))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2702 "dhcp4_parser.cc" +#line 2761 "dhcp4_parser.cc" break; - case 382: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1535 "dhcp4_parser.yy" + case 390: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1558 "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))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2712 "dhcp4_parser.cc" +#line 2771 "dhcp4_parser.cc" break; - case 383: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1541 "dhcp4_parser.yy" + case 391: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1564 "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))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2722 "dhcp4_parser.cc" +#line 2781 "dhcp4_parser.cc" break; - case 384: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1547 "dhcp4_parser.yy" + case 392: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1570 "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))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2732 "dhcp4_parser.cc" +#line 2791 "dhcp4_parser.cc" break; - case 385: // $@59: %empty -#line 1556 "dhcp4_parser.yy" + case 393: // $@60: %empty +#line 1579 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2740,38 +2799,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2744 "dhcp4_parser.cc" +#line 2803 "dhcp4_parser.cc" break; - case 386: // subnet4_list: "subnet4" $@59 ":" "[" subnet4_list_content "]" -#line 1562 "dhcp4_parser.yy" + case 394: // subnet4_list: "subnet4" $@60 ":" "[" subnet4_list_content "]" +#line 1585 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2753 "dhcp4_parser.cc" +#line 2812 "dhcp4_parser.cc" break; - case 391: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1576 "dhcp4_parser.yy" + case 399: // not_empty_subnet4_list: not_empty_subnet4_list "," +#line 1599 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2761 "dhcp4_parser.cc" +#line 2820 "dhcp4_parser.cc" break; - case 392: // $@60: %empty -#line 1585 "dhcp4_parser.yy" + case 400: // $@61: %empty +#line 1608 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2771 "dhcp4_parser.cc" +#line 2830 "dhcp4_parser.cc" break; - case 393: // subnet4: "{" $@60 subnet4_params "}" -#line 1589 "dhcp4_parser.yy" + case 401: // subnet4: "{" $@61 subnet4_params "}" +#line 1612 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2793,153 +2852,153 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2797 "dhcp4_parser.cc" +#line 2856 "dhcp4_parser.cc" break; - case 394: // $@61: %empty -#line 1611 "dhcp4_parser.yy" + case 402: // $@62: %empty +#line 1634 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2807 "dhcp4_parser.cc" +#line 2866 "dhcp4_parser.cc" break; - case 395: // sub_subnet4: "{" $@61 subnet4_params "}" -#line 1615 "dhcp4_parser.yy" + case 403: // sub_subnet4: "{" $@62 subnet4_params "}" +#line 1638 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2817 "dhcp4_parser.cc" +#line 2876 "dhcp4_parser.cc" break; - case 398: // subnet4_params: subnet4_params "," -#line 1624 "dhcp4_parser.yy" + case 406: // subnet4_params: subnet4_params "," +#line 1647 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2825 "dhcp4_parser.cc" +#line 2884 "dhcp4_parser.cc" break; - case 452: // $@62: %empty -#line 1685 "dhcp4_parser.yy" + case 460: // $@63: %empty +#line 1708 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2834 "dhcp4_parser.cc" +#line 2893 "dhcp4_parser.cc" break; - case 453: // subnet: "subnet" $@62 ":" "constant string" -#line 1688 "dhcp4_parser.yy" + case 461: // subnet: "subnet" $@63 ":" "constant string" +#line 1711 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2844 "dhcp4_parser.cc" +#line 2903 "dhcp4_parser.cc" break; - case 454: // $@63: %empty -#line 1694 "dhcp4_parser.yy" + case 462: // $@64: %empty +#line 1717 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2853 "dhcp4_parser.cc" +#line 2912 "dhcp4_parser.cc" break; - case 455: // subnet_4o6_interface: "4o6-interface" $@63 ":" "constant string" -#line 1697 "dhcp4_parser.yy" + case 463: // subnet_4o6_interface: "4o6-interface" $@64 ":" "constant string" +#line 1720 "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); ctx.leave(); } -#line 2863 "dhcp4_parser.cc" +#line 2922 "dhcp4_parser.cc" break; - case 456: // $@64: %empty -#line 1703 "dhcp4_parser.yy" + case 464: // $@65: %empty +#line 1726 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2872 "dhcp4_parser.cc" +#line 2931 "dhcp4_parser.cc" break; - case 457: // subnet_4o6_interface_id: "4o6-interface-id" $@64 ":" "constant string" -#line 1706 "dhcp4_parser.yy" + case 465: // subnet_4o6_interface_id: "4o6-interface-id" $@65 ":" "constant string" +#line 1729 "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); ctx.leave(); } -#line 2882 "dhcp4_parser.cc" +#line 2941 "dhcp4_parser.cc" break; - case 458: // $@65: %empty -#line 1712 "dhcp4_parser.yy" + case 466: // $@66: %empty +#line 1735 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2891 "dhcp4_parser.cc" +#line 2950 "dhcp4_parser.cc" break; - case 459: // subnet_4o6_subnet: "4o6-subnet" $@65 ":" "constant string" -#line 1715 "dhcp4_parser.yy" + case 467: // subnet_4o6_subnet: "4o6-subnet" $@66 ":" "constant string" +#line 1738 "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); ctx.leave(); } -#line 2901 "dhcp4_parser.cc" +#line 2960 "dhcp4_parser.cc" break; - case 460: // $@66: %empty -#line 1721 "dhcp4_parser.yy" + case 468: // $@67: %empty +#line 1744 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2910 "dhcp4_parser.cc" +#line 2969 "dhcp4_parser.cc" break; - case 461: // interface: "interface" $@66 ":" "constant string" -#line 1724 "dhcp4_parser.yy" + case 469: // interface: "interface" $@67 ":" "constant string" +#line 1747 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2920 "dhcp4_parser.cc" +#line 2979 "dhcp4_parser.cc" break; - case 462: // $@67: %empty -#line 1730 "dhcp4_parser.yy" + case 470: // $@68: %empty +#line 1753 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2929 "dhcp4_parser.cc" +#line 2988 "dhcp4_parser.cc" break; - case 463: // client_class: "client-class" $@67 ":" "constant string" -#line 1733 "dhcp4_parser.yy" + case 471: // client_class: "client-class" $@68 ":" "constant string" +#line 1756 "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); ctx.leave(); } -#line 2939 "dhcp4_parser.cc" +#line 2998 "dhcp4_parser.cc" break; - case 464: // $@68: %empty -#line 1740 "dhcp4_parser.yy" + case 472: // $@69: %empty +#line 1763 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2947,20 +3006,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2951 "dhcp4_parser.cc" +#line 3010 "dhcp4_parser.cc" break; - case 465: // network_client_classes: "client-classes" $@68 ":" list_strings -#line 1746 "dhcp4_parser.yy" + case 473: // network_client_classes: "client-classes" $@69 ":" list_strings +#line 1769 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2960 "dhcp4_parser.cc" +#line 3019 "dhcp4_parser.cc" break; - case 466: // $@69: %empty -#line 1752 "dhcp4_parser.yy" + case 474: // $@70: %empty +#line 1775 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2968,20 +3027,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2972 "dhcp4_parser.cc" +#line 3031 "dhcp4_parser.cc" break; - case 467: // require_client_classes: "require-client-classes" $@69 ":" list_strings -#line 1758 "dhcp4_parser.yy" + case 475: // require_client_classes: "require-client-classes" $@70 ":" list_strings +#line 1781 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2981 "dhcp4_parser.cc" +#line 3040 "dhcp4_parser.cc" break; - case 468: // $@70: %empty -#line 1763 "dhcp4_parser.yy" + case 476: // $@71: %empty +#line 1786 "dhcp4_parser.yy" { ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2989,60 +3048,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2993 "dhcp4_parser.cc" +#line 3052 "dhcp4_parser.cc" break; - case 469: // evaluate_additional_classes: "evaluate-additional-classes" $@70 ":" list_strings -#line 1769 "dhcp4_parser.yy" + case 477: // evaluate_additional_classes: "evaluate-additional-classes" $@71 ":" list_strings +#line 1792 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3002 "dhcp4_parser.cc" +#line 3061 "dhcp4_parser.cc" break; - case 470: // reservations_global: "reservations-global" ":" "boolean" -#line 1774 "dhcp4_parser.yy" + case 478: // reservations_global: "reservations-global" ":" "boolean" +#line 1797 "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))); ctx.stack_.back()->set("reservations-global", b); } -#line 3012 "dhcp4_parser.cc" +#line 3071 "dhcp4_parser.cc" break; - case 471: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1780 "dhcp4_parser.yy" + case 479: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1803 "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))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 3022 "dhcp4_parser.cc" +#line 3081 "dhcp4_parser.cc" break; - case 472: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1786 "dhcp4_parser.yy" + case 480: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1809 "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))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 3032 "dhcp4_parser.cc" +#line 3091 "dhcp4_parser.cc" break; - case 473: // id: "id" ":" "integer" -#line 1792 "dhcp4_parser.yy" + case 481: // id: "id" ":" "integer" +#line 1815 "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))); ctx.stack_.back()->set("id", id); } -#line 3042 "dhcp4_parser.cc" +#line 3101 "dhcp4_parser.cc" break; - case 474: // $@71: %empty -#line 1800 "dhcp4_parser.yy" + case 482: // $@72: %empty +#line 1823 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3050,54 +3109,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 3054 "dhcp4_parser.cc" +#line 3113 "dhcp4_parser.cc" break; - case 475: // shared_networks: "shared-networks" $@71 ":" "[" shared_networks_content "]" -#line 1806 "dhcp4_parser.yy" + case 483: // shared_networks: "shared-networks" $@72 ":" "[" shared_networks_content "]" +#line 1829 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3063 "dhcp4_parser.cc" +#line 3122 "dhcp4_parser.cc" break; - case 480: // shared_networks_list: shared_networks_list "," -#line 1819 "dhcp4_parser.yy" + case 488: // shared_networks_list: shared_networks_list "," +#line 1842 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3071 "dhcp4_parser.cc" +#line 3130 "dhcp4_parser.cc" break; - case 481: // $@72: %empty -#line 1824 "dhcp4_parser.yy" + case 489: // $@73: %empty +#line 1847 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3081 "dhcp4_parser.cc" +#line 3140 "dhcp4_parser.cc" break; - case 482: // shared_network: "{" $@72 shared_network_params "}" -#line 1828 "dhcp4_parser.yy" + case 490: // shared_network: "{" $@73 shared_network_params "}" +#line 1851 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 3089 "dhcp4_parser.cc" +#line 3148 "dhcp4_parser.cc" break; - case 485: // shared_network_params: shared_network_params "," -#line 1834 "dhcp4_parser.yy" + case 493: // shared_network_params: shared_network_params "," +#line 1857 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3097 "dhcp4_parser.cc" +#line 3156 "dhcp4_parser.cc" break; - case 534: // $@73: %empty -#line 1893 "dhcp4_parser.yy" + case 542: // $@74: %empty +#line 1916 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3105,55 +3164,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 3109 "dhcp4_parser.cc" +#line 3168 "dhcp4_parser.cc" break; - case 535: // option_def_list: "option-def" $@73 ":" "[" option_def_list_content "]" -#line 1899 "dhcp4_parser.yy" + case 543: // option_def_list: "option-def" $@74 ":" "[" option_def_list_content "]" +#line 1922 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3118 "dhcp4_parser.cc" +#line 3177 "dhcp4_parser.cc" break; - case 536: // $@74: %empty -#line 1907 "dhcp4_parser.yy" + case 544: // $@75: %empty +#line 1930 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3127 "dhcp4_parser.cc" +#line 3186 "dhcp4_parser.cc" break; - case 537: // sub_option_def_list: "{" $@74 option_def_list "}" -#line 1910 "dhcp4_parser.yy" + case 545: // sub_option_def_list: "{" $@75 option_def_list "}" +#line 1933 "dhcp4_parser.yy" { // parsing completed } -#line 3135 "dhcp4_parser.cc" +#line 3194 "dhcp4_parser.cc" break; - case 542: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1922 "dhcp4_parser.yy" + case 550: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1945 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3143 "dhcp4_parser.cc" +#line 3202 "dhcp4_parser.cc" break; - case 543: // $@75: %empty -#line 1929 "dhcp4_parser.yy" + case 551: // $@76: %empty +#line 1952 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3153 "dhcp4_parser.cc" +#line 3212 "dhcp4_parser.cc" break; - case 544: // option_def_entry: "{" $@75 option_def_params "}" -#line 1933 "dhcp4_parser.yy" + case 552: // option_def_entry: "{" $@76 option_def_params "}" +#line 1956 "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)); @@ -3161,21 +3220,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3165 "dhcp4_parser.cc" +#line 3224 "dhcp4_parser.cc" break; - case 545: // $@76: %empty -#line 1944 "dhcp4_parser.yy" + case 553: // $@77: %empty +#line 1967 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3175 "dhcp4_parser.cc" +#line 3234 "dhcp4_parser.cc" break; - case 546: // sub_option_def: "{" $@76 option_def_params "}" -#line 1948 "dhcp4_parser.yy" + case 554: // sub_option_def: "{" $@77 option_def_params "}" +#line 1971 "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)); @@ -3183,115 +3242,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3187 "dhcp4_parser.cc" +#line 3246 "dhcp4_parser.cc" break; - case 551: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1964 "dhcp4_parser.yy" + case 559: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1987 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3195 "dhcp4_parser.cc" +#line 3254 "dhcp4_parser.cc" break; - case 563: // code: "code" ":" "integer" -#line 1983 "dhcp4_parser.yy" + case 571: // code: "code" ":" "integer" +#line 2006 "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))); ctx.stack_.back()->set("code", code); } -#line 3205 "dhcp4_parser.cc" +#line 3264 "dhcp4_parser.cc" break; - case 565: // $@77: %empty -#line 1991 "dhcp4_parser.yy" + case 573: // $@78: %empty +#line 2014 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3214 "dhcp4_parser.cc" +#line 3273 "dhcp4_parser.cc" break; - case 566: // option_def_type: "type" $@77 ":" "constant string" -#line 1994 "dhcp4_parser.yy" + case 574: // option_def_type: "type" $@78 ":" "constant string" +#line 2017 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3224 "dhcp4_parser.cc" +#line 3283 "dhcp4_parser.cc" break; - case 567: // $@78: %empty -#line 2000 "dhcp4_parser.yy" + case 575: // $@79: %empty +#line 2023 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3233 "dhcp4_parser.cc" +#line 3292 "dhcp4_parser.cc" break; - case 568: // option_def_record_types: "record-types" $@78 ":" "constant string" -#line 2003 "dhcp4_parser.yy" + case 576: // option_def_record_types: "record-types" $@79 ":" "constant string" +#line 2026 "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); ctx.leave(); } -#line 3243 "dhcp4_parser.cc" +#line 3302 "dhcp4_parser.cc" break; - case 569: // $@79: %empty -#line 2009 "dhcp4_parser.yy" + case 577: // $@80: %empty +#line 2032 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3252 "dhcp4_parser.cc" +#line 3311 "dhcp4_parser.cc" break; - case 570: // space: "space" $@79 ":" "constant string" -#line 2012 "dhcp4_parser.yy" + case 578: // space: "space" $@80 ":" "constant string" +#line 2035 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3262 "dhcp4_parser.cc" +#line 3321 "dhcp4_parser.cc" break; - case 572: // $@80: %empty -#line 2020 "dhcp4_parser.yy" + case 580: // $@81: %empty +#line 2043 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3271 "dhcp4_parser.cc" +#line 3330 "dhcp4_parser.cc" break; - case 573: // option_def_encapsulate: "encapsulate" $@80 ":" "constant string" -#line 2023 "dhcp4_parser.yy" + case 581: // option_def_encapsulate: "encapsulate" $@81 ":" "constant string" +#line 2046 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3281 "dhcp4_parser.cc" +#line 3340 "dhcp4_parser.cc" break; - case 574: // option_def_array: "array" ":" "boolean" -#line 2029 "dhcp4_parser.yy" + case 582: // option_def_array: "array" ":" "boolean" +#line 2052 "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))); ctx.stack_.back()->set("array", array); } -#line 3291 "dhcp4_parser.cc" +#line 3350 "dhcp4_parser.cc" break; - case 575: // $@81: %empty -#line 2039 "dhcp4_parser.yy" + case 583: // $@82: %empty +#line 2062 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3299,123 +3358,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3303 "dhcp4_parser.cc" +#line 3362 "dhcp4_parser.cc" break; - case 576: // option_data_list: "option-data" $@81 ":" "[" option_data_list_content "]" -#line 2045 "dhcp4_parser.yy" + case 584: // option_data_list: "option-data" $@82 ":" "[" option_data_list_content "]" +#line 2068 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3312 "dhcp4_parser.cc" +#line 3371 "dhcp4_parser.cc" break; - case 581: // not_empty_option_data_list: not_empty_option_data_list "," -#line 2060 "dhcp4_parser.yy" + case 589: // not_empty_option_data_list: not_empty_option_data_list "," +#line 2083 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3320 "dhcp4_parser.cc" +#line 3379 "dhcp4_parser.cc" break; - case 582: // $@82: %empty -#line 2067 "dhcp4_parser.yy" + case 590: // $@83: %empty +#line 2090 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3330 "dhcp4_parser.cc" +#line 3389 "dhcp4_parser.cc" break; - case 583: // option_data_entry: "{" $@82 option_data_params "}" -#line 2071 "dhcp4_parser.yy" + case 591: // option_data_entry: "{" $@83 option_data_params "}" +#line 2094 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3339 "dhcp4_parser.cc" +#line 3398 "dhcp4_parser.cc" break; - case 584: // $@83: %empty -#line 2079 "dhcp4_parser.yy" + case 592: // $@84: %empty +#line 2102 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3349 "dhcp4_parser.cc" +#line 3408 "dhcp4_parser.cc" break; - case 585: // sub_option_data: "{" $@83 option_data_params "}" -#line 2083 "dhcp4_parser.yy" + case 593: // sub_option_data: "{" $@84 option_data_params "}" +#line 2106 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3358 "dhcp4_parser.cc" +#line 3417 "dhcp4_parser.cc" break; - case 590: // not_empty_option_data_params: not_empty_option_data_params "," -#line 2099 "dhcp4_parser.yy" + case 598: // not_empty_option_data_params: not_empty_option_data_params "," +#line 2122 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3366 "dhcp4_parser.cc" +#line 3425 "dhcp4_parser.cc" break; - case 603: // $@84: %empty -#line 2121 "dhcp4_parser.yy" + case 611: // $@85: %empty +#line 2144 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3375 "dhcp4_parser.cc" +#line 3434 "dhcp4_parser.cc" break; - case 604: // option_data_data: "data" $@84 ":" "constant string" -#line 2124 "dhcp4_parser.yy" + case 612: // option_data_data: "data" $@85 ":" "constant string" +#line 2147 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3385 "dhcp4_parser.cc" +#line 3444 "dhcp4_parser.cc" break; - case 607: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2134 "dhcp4_parser.yy" + case 615: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2157 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3395 "dhcp4_parser.cc" +#line 3454 "dhcp4_parser.cc" break; - case 608: // option_data_always_send: "always-send" ":" "boolean" -#line 2140 "dhcp4_parser.yy" + case 616: // option_data_always_send: "always-send" ":" "boolean" +#line 2163 "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))); ctx.stack_.back()->set("always-send", persist); } -#line 3405 "dhcp4_parser.cc" +#line 3464 "dhcp4_parser.cc" break; - case 609: // option_data_never_send: "never-send" ":" "boolean" -#line 2146 "dhcp4_parser.yy" + case 617: // option_data_never_send: "never-send" ":" "boolean" +#line 2169 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3415 "dhcp4_parser.cc" +#line 3474 "dhcp4_parser.cc" break; - case 610: // $@85: %empty -#line 2152 "dhcp4_parser.yy" + case 618: // $@86: %empty +#line 2175 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3423,20 +3482,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3427 "dhcp4_parser.cc" +#line 3486 "dhcp4_parser.cc" break; - case 611: // option_data_client_classes: "client-classes" $@85 ":" list_strings -#line 2158 "dhcp4_parser.yy" + case 619: // option_data_client_classes: "client-classes" $@86 ":" list_strings +#line 2181 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3436 "dhcp4_parser.cc" +#line 3495 "dhcp4_parser.cc" break; - case 612: // $@86: %empty -#line 2166 "dhcp4_parser.yy" + case 620: // $@87: %empty +#line 2189 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3444,113 +3503,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3448 "dhcp4_parser.cc" +#line 3507 "dhcp4_parser.cc" break; - case 613: // pools_list: "pools" $@86 ":" "[" pools_list_content "]" -#line 2172 "dhcp4_parser.yy" + case 621: // pools_list: "pools" $@87 ":" "[" pools_list_content "]" +#line 2195 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3457 "dhcp4_parser.cc" +#line 3516 "dhcp4_parser.cc" break; - case 618: // not_empty_pools_list: not_empty_pools_list "," -#line 2185 "dhcp4_parser.yy" + case 626: // not_empty_pools_list: not_empty_pools_list "," +#line 2208 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3465 "dhcp4_parser.cc" +#line 3524 "dhcp4_parser.cc" break; - case 619: // $@87: %empty -#line 2190 "dhcp4_parser.yy" + case 627: // $@88: %empty +#line 2213 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3475 "dhcp4_parser.cc" +#line 3534 "dhcp4_parser.cc" break; - case 620: // pool_list_entry: "{" $@87 pool_params "}" -#line 2194 "dhcp4_parser.yy" + case 628: // pool_list_entry: "{" $@88 pool_params "}" +#line 2217 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3485 "dhcp4_parser.cc" +#line 3544 "dhcp4_parser.cc" break; - case 621: // $@88: %empty -#line 2200 "dhcp4_parser.yy" + case 629: // $@89: %empty +#line 2223 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3495 "dhcp4_parser.cc" +#line 3554 "dhcp4_parser.cc" break; - case 622: // sub_pool4: "{" $@88 pool_params "}" -#line 2204 "dhcp4_parser.yy" + case 630: // sub_pool4: "{" $@89 pool_params "}" +#line 2227 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3505 "dhcp4_parser.cc" +#line 3564 "dhcp4_parser.cc" break; - case 625: // pool_params: pool_params "," -#line 2212 "dhcp4_parser.yy" + case 633: // pool_params: pool_params "," +#line 2235 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3513 "dhcp4_parser.cc" +#line 3572 "dhcp4_parser.cc" break; - case 650: // $@89: %empty -#line 2243 "dhcp4_parser.yy" + case 658: // $@90: %empty +#line 2266 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3522 "dhcp4_parser.cc" +#line 3581 "dhcp4_parser.cc" break; - case 651: // pool_entry: "pool" $@89 ":" "constant string" -#line 2246 "dhcp4_parser.yy" + case 659: // pool_entry: "pool" $@90 ":" "constant string" +#line 2269 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3532 "dhcp4_parser.cc" +#line 3591 "dhcp4_parser.cc" break; - case 652: // pool_id: "pool-id" ":" "integer" -#line 2252 "dhcp4_parser.yy" + case 660: // pool_id: "pool-id" ":" "integer" +#line 2275 "dhcp4_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3542 "dhcp4_parser.cc" +#line 3601 "dhcp4_parser.cc" break; - case 653: // $@90: %empty -#line 2258 "dhcp4_parser.yy" + case 661: // $@91: %empty +#line 2281 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3550 "dhcp4_parser.cc" +#line 3609 "dhcp4_parser.cc" break; - case 654: // user_context: "user-context" $@90 ":" map_value -#line 2260 "dhcp4_parser.yy" + case 662: // user_context: "user-context" $@91 ":" map_value +#line 2283 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3573,19 +3632,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3577 "dhcp4_parser.cc" +#line 3636 "dhcp4_parser.cc" break; - case 655: // $@91: %empty -#line 2283 "dhcp4_parser.yy" + case 663: // $@92: %empty +#line 2306 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3585 "dhcp4_parser.cc" +#line 3644 "dhcp4_parser.cc" break; - case 656: // comment: "comment" $@91 ":" "constant string" -#line 2285 "dhcp4_parser.yy" + case 664: // comment: "comment" $@92 ":" "constant string" +#line 2308 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3610,11 +3669,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3614 "dhcp4_parser.cc" +#line 3673 "dhcp4_parser.cc" break; - case 657: // $@92: %empty -#line 2313 "dhcp4_parser.yy" + case 665: // $@93: %empty +#line 2336 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3622,264 +3681,264 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3626 "dhcp4_parser.cc" +#line 3685 "dhcp4_parser.cc" break; - case 658: // reservations: "reservations" $@92 ":" "[" reservations_list "]" -#line 2319 "dhcp4_parser.yy" + case 666: // reservations: "reservations" $@93 ":" "[" reservations_list "]" +#line 2342 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3635 "dhcp4_parser.cc" +#line 3694 "dhcp4_parser.cc" break; - case 663: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2330 "dhcp4_parser.yy" + case 671: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2353 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3643 "dhcp4_parser.cc" +#line 3702 "dhcp4_parser.cc" break; - case 664: // $@93: %empty -#line 2335 "dhcp4_parser.yy" + case 672: // $@94: %empty +#line 2358 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3653 "dhcp4_parser.cc" +#line 3712 "dhcp4_parser.cc" break; - case 665: // reservation: "{" $@93 reservation_params "}" -#line 2339 "dhcp4_parser.yy" + case 673: // reservation: "{" $@94 reservation_params "}" +#line 2362 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3662 "dhcp4_parser.cc" +#line 3721 "dhcp4_parser.cc" break; - case 666: // $@94: %empty -#line 2344 "dhcp4_parser.yy" + case 674: // $@95: %empty +#line 2367 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3672 "dhcp4_parser.cc" +#line 3731 "dhcp4_parser.cc" break; - case 667: // sub_reservation: "{" $@94 reservation_params "}" -#line 2348 "dhcp4_parser.yy" + case 675: // sub_reservation: "{" $@95 reservation_params "}" +#line 2371 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3681 "dhcp4_parser.cc" +#line 3740 "dhcp4_parser.cc" break; - case 672: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2359 "dhcp4_parser.yy" + case 680: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2382 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3689 "dhcp4_parser.cc" +#line 3748 "dhcp4_parser.cc" break; - case 688: // $@95: %empty -#line 2382 "dhcp4_parser.yy" + case 696: // $@96: %empty +#line 2405 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3698 "dhcp4_parser.cc" +#line 3757 "dhcp4_parser.cc" break; - case 689: // next_server: "next-server" $@95 ":" "constant string" -#line 2385 "dhcp4_parser.yy" + case 697: // next_server: "next-server" $@96 ":" "constant string" +#line 2408 "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); ctx.leave(); } -#line 3708 "dhcp4_parser.cc" +#line 3767 "dhcp4_parser.cc" break; - case 690: // $@96: %empty -#line 2391 "dhcp4_parser.yy" + case 698: // $@97: %empty +#line 2414 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3717 "dhcp4_parser.cc" +#line 3776 "dhcp4_parser.cc" break; - case 691: // server_hostname: "server-hostname" $@96 ":" "constant string" -#line 2394 "dhcp4_parser.yy" + case 699: // server_hostname: "server-hostname" $@97 ":" "constant string" +#line 2417 "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); ctx.leave(); } -#line 3727 "dhcp4_parser.cc" +#line 3786 "dhcp4_parser.cc" break; - case 692: // $@97: %empty -#line 2400 "dhcp4_parser.yy" + case 700: // $@98: %empty +#line 2423 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3736 "dhcp4_parser.cc" +#line 3795 "dhcp4_parser.cc" break; - case 693: // boot_file_name: "boot-file-name" $@97 ":" "constant string" -#line 2403 "dhcp4_parser.yy" + case 701: // boot_file_name: "boot-file-name" $@98 ":" "constant string" +#line 2426 "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); ctx.leave(); } -#line 3746 "dhcp4_parser.cc" +#line 3805 "dhcp4_parser.cc" break; - case 694: // $@98: %empty -#line 2409 "dhcp4_parser.yy" + case 702: // $@99: %empty +#line 2432 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3755 "dhcp4_parser.cc" +#line 3814 "dhcp4_parser.cc" break; - case 695: // ip_address: "ip-address" $@98 ":" "constant string" -#line 2412 "dhcp4_parser.yy" + case 703: // ip_address: "ip-address" $@99 ":" "constant string" +#line 2435 "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); ctx.leave(); } -#line 3765 "dhcp4_parser.cc" +#line 3824 "dhcp4_parser.cc" break; - case 696: // $@99: %empty -#line 2418 "dhcp4_parser.yy" + case 704: // $@100: %empty +#line 2441 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3774 "dhcp4_parser.cc" +#line 3833 "dhcp4_parser.cc" break; - case 697: // duid: "duid" $@99 ":" "constant string" -#line 2421 "dhcp4_parser.yy" + case 705: // duid: "duid" $@100 ":" "constant string" +#line 2444 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3784 "dhcp4_parser.cc" +#line 3843 "dhcp4_parser.cc" break; - case 698: // $@100: %empty -#line 2427 "dhcp4_parser.yy" + case 706: // $@101: %empty +#line 2450 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3793 "dhcp4_parser.cc" +#line 3852 "dhcp4_parser.cc" break; - case 699: // hw_address: "hw-address" $@100 ":" "constant string" -#line 2430 "dhcp4_parser.yy" + case 707: // hw_address: "hw-address" $@101 ":" "constant string" +#line 2453 "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); ctx.leave(); } -#line 3803 "dhcp4_parser.cc" +#line 3862 "dhcp4_parser.cc" break; - case 700: // $@101: %empty -#line 2436 "dhcp4_parser.yy" + case 708: // $@102: %empty +#line 2459 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3812 "dhcp4_parser.cc" +#line 3871 "dhcp4_parser.cc" break; - case 701: // client_id_value: "client-id" $@101 ":" "constant string" -#line 2439 "dhcp4_parser.yy" + case 709: // client_id_value: "client-id" $@102 ":" "constant string" +#line 2462 "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); ctx.leave(); } -#line 3822 "dhcp4_parser.cc" +#line 3881 "dhcp4_parser.cc" break; - case 702: // $@102: %empty -#line 2445 "dhcp4_parser.yy" + case 710: // $@103: %empty +#line 2468 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3831 "dhcp4_parser.cc" +#line 3890 "dhcp4_parser.cc" break; - case 703: // circuit_id_value: "circuit-id" $@102 ":" "constant string" -#line 2448 "dhcp4_parser.yy" + case 711: // circuit_id_value: "circuit-id" $@103 ":" "constant string" +#line 2471 "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); ctx.leave(); } -#line 3841 "dhcp4_parser.cc" +#line 3900 "dhcp4_parser.cc" break; - case 704: // $@103: %empty -#line 2454 "dhcp4_parser.yy" + case 712: // $@104: %empty +#line 2477 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3850 "dhcp4_parser.cc" +#line 3909 "dhcp4_parser.cc" break; - case 705: // flex_id_value: "flex-id" $@103 ":" "constant string" -#line 2457 "dhcp4_parser.yy" + case 713: // flex_id_value: "flex-id" $@104 ":" "constant string" +#line 2480 "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); ctx.leave(); } -#line 3860 "dhcp4_parser.cc" +#line 3919 "dhcp4_parser.cc" break; - case 706: // $@104: %empty -#line 2463 "dhcp4_parser.yy" + case 714: // $@105: %empty +#line 2486 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3869 "dhcp4_parser.cc" +#line 3928 "dhcp4_parser.cc" break; - case 707: // hostname: "hostname" $@104 ":" "constant string" -#line 2466 "dhcp4_parser.yy" + case 715: // hostname: "hostname" $@105 ":" "constant string" +#line 2489 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3879 "dhcp4_parser.cc" +#line 3938 "dhcp4_parser.cc" break; - case 708: // $@105: %empty -#line 2472 "dhcp4_parser.yy" + case 716: // $@106: %empty +#line 2495 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3887,20 +3946,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3891 "dhcp4_parser.cc" +#line 3950 "dhcp4_parser.cc" break; - case 709: // reservation_client_classes: "client-classes" $@105 ":" list_strings -#line 2478 "dhcp4_parser.yy" + case 717: // reservation_client_classes: "client-classes" $@106 ":" list_strings +#line 2501 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3900 "dhcp4_parser.cc" +#line 3959 "dhcp4_parser.cc" break; - case 710: // $@106: %empty -#line 2486 "dhcp4_parser.yy" + case 718: // $@107: %empty +#line 2509 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3908,20 +3967,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3912 "dhcp4_parser.cc" +#line 3971 "dhcp4_parser.cc" break; - case 711: // relay: "relay" $@106 ":" "{" relay_map "}" -#line 2492 "dhcp4_parser.yy" + case 719: // relay: "relay" $@107 ":" "{" relay_map "}" +#line 2515 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3921 "dhcp4_parser.cc" +#line 3980 "dhcp4_parser.cc" break; - case 713: // $@107: %empty -#line 2500 "dhcp4_parser.yy" + case 721: // $@108: %empty +#line 2523 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3929,20 +3988,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3933 "dhcp4_parser.cc" +#line 3992 "dhcp4_parser.cc" break; - case 714: // ip_addresses: "ip-addresses" $@107 ":" list_strings -#line 2506 "dhcp4_parser.yy" + case 722: // ip_addresses: "ip-addresses" $@108 ":" list_strings +#line 2529 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3942 "dhcp4_parser.cc" +#line 4001 "dhcp4_parser.cc" break; - case 715: // $@108: %empty -#line 2514 "dhcp4_parser.yy" + case 723: // $@109: %empty +#line 2537 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3950,124 +4009,124 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3954 "dhcp4_parser.cc" +#line 4013 "dhcp4_parser.cc" break; - case 716: // client_classes: "client-classes" $@108 ":" "[" client_classes_list "]" -#line 2520 "dhcp4_parser.yy" + case 724: // client_classes: "client-classes" $@109 ":" "[" client_classes_list "]" +#line 2543 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3963 "dhcp4_parser.cc" +#line 4022 "dhcp4_parser.cc" break; - case 719: // client_classes_list: client_classes_list "," -#line 2527 "dhcp4_parser.yy" + case 727: // client_classes_list: client_classes_list "," +#line 2550 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3971 "dhcp4_parser.cc" +#line 4030 "dhcp4_parser.cc" break; - case 720: // $@109: %empty -#line 2532 "dhcp4_parser.yy" + case 728: // $@110: %empty +#line 2555 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3981 "dhcp4_parser.cc" +#line 4040 "dhcp4_parser.cc" break; - case 721: // client_class_entry: "{" $@109 client_class_params "}" -#line 2536 "dhcp4_parser.yy" + case 729: // client_class_entry: "{" $@110 client_class_params "}" +#line 2559 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3991 "dhcp4_parser.cc" +#line 4050 "dhcp4_parser.cc" break; - case 726: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2548 "dhcp4_parser.yy" + case 734: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2571 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3999 "dhcp4_parser.cc" +#line 4058 "dhcp4_parser.cc" break; - case 745: // $@110: %empty -#line 2574 "dhcp4_parser.yy" + case 753: // $@111: %empty +#line 2597 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4008 "dhcp4_parser.cc" +#line 4067 "dhcp4_parser.cc" break; - case 746: // client_class_test: "test" $@110 ":" "constant string" -#line 2577 "dhcp4_parser.yy" + case 754: // client_class_test: "test" $@111 ":" "constant string" +#line 2600 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 4018 "dhcp4_parser.cc" +#line 4077 "dhcp4_parser.cc" break; - case 747: // $@111: %empty -#line 2583 "dhcp4_parser.yy" + case 755: // $@112: %empty +#line 2606 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4027 "dhcp4_parser.cc" +#line 4086 "dhcp4_parser.cc" break; - case 748: // client_class_template_test: "template-test" $@111 ":" "constant string" -#line 2586 "dhcp4_parser.yy" + case 756: // client_class_template_test: "template-test" $@112 ":" "constant string" +#line 2609 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 4037 "dhcp4_parser.cc" +#line 4096 "dhcp4_parser.cc" break; - case 749: // only_if_required: "only-if-required" ":" "boolean" -#line 2593 "dhcp4_parser.yy" + case 757: // only_if_required: "only-if-required" ":" "boolean" +#line 2616 "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))); ctx.stack_.back()->set("only-if-required", b); } -#line 4047 "dhcp4_parser.cc" +#line 4106 "dhcp4_parser.cc" break; - case 750: // only_in_additional_list: "only-in-additional-list" ":" "boolean" -#line 2599 "dhcp4_parser.yy" + case 758: // only_in_additional_list: "only-in-additional-list" ":" "boolean" +#line 2622 "dhcp4_parser.yy" { ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-in-additional-list", b); } -#line 4057 "dhcp4_parser.cc" +#line 4116 "dhcp4_parser.cc" break; - case 751: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2607 "dhcp4_parser.yy" + case 759: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2630 "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))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4067 "dhcp4_parser.cc" +#line 4126 "dhcp4_parser.cc" break; - case 752: // $@112: %empty -#line 2615 "dhcp4_parser.yy" + case 760: // $@113: %empty +#line 2638 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -4076,20 +4135,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4080 "dhcp4_parser.cc" +#line 4139 "dhcp4_parser.cc" break; - case 753: // control_socket: "control-socket" $@112 ":" "{" control_socket_params "}" -#line 2622 "dhcp4_parser.yy" + case 761: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" +#line 2645 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4089 "dhcp4_parser.cc" +#line 4148 "dhcp4_parser.cc" break; - case 754: // $@113: %empty -#line 2627 "dhcp4_parser.yy" + case 762: // $@114: %empty +#line 2650 "dhcp4_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -4098,150 +4157,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4102 "dhcp4_parser.cc" +#line 4161 "dhcp4_parser.cc" break; - case 755: // control_sockets: "control-sockets" $@113 ":" "[" control_socket_list "]" -#line 2634 "dhcp4_parser.yy" + case 763: // control_sockets: "control-sockets" $@114 ":" "[" control_socket_list "]" +#line 2657 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4111 "dhcp4_parser.cc" +#line 4170 "dhcp4_parser.cc" break; - case 760: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2645 "dhcp4_parser.yy" + case 768: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2668 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4119 "dhcp4_parser.cc" +#line 4178 "dhcp4_parser.cc" break; - case 761: // $@114: %empty -#line 2650 "dhcp4_parser.yy" + case 769: // $@115: %empty +#line 2673 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4129 "dhcp4_parser.cc" +#line 4188 "dhcp4_parser.cc" break; - case 762: // control_socket_entry: "{" $@114 control_socket_params "}" -#line 2654 "dhcp4_parser.yy" + case 770: // control_socket_entry: "{" $@115 control_socket_params "}" +#line 2677 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4137 "dhcp4_parser.cc" +#line 4196 "dhcp4_parser.cc" break; - case 765: // control_socket_params: control_socket_params "," -#line 2660 "dhcp4_parser.yy" + case 773: // control_socket_params: control_socket_params "," +#line 2683 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4145 "dhcp4_parser.cc" +#line 4204 "dhcp4_parser.cc" break; - case 779: // $@115: %empty -#line 2680 "dhcp4_parser.yy" + case 787: // $@116: %empty +#line 2703 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4154 "dhcp4_parser.cc" +#line 4213 "dhcp4_parser.cc" break; - case 780: // control_socket_type: "socket-type" $@115 ":" control_socket_type_value -#line 2683 "dhcp4_parser.yy" + case 788: // control_socket_type: "socket-type" $@116 ":" control_socket_type_value +#line 2706 "dhcp4_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4163 "dhcp4_parser.cc" +#line 4222 "dhcp4_parser.cc" break; - case 781: // control_socket_type_value: "unix" -#line 2689 "dhcp4_parser.yy" + case 789: // control_socket_type_value: "unix" +#line 2712 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4169 "dhcp4_parser.cc" +#line 4228 "dhcp4_parser.cc" break; - case 782: // control_socket_type_value: "http" -#line 2690 "dhcp4_parser.yy" + case 790: // control_socket_type_value: "http" +#line 2713 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4175 "dhcp4_parser.cc" +#line 4234 "dhcp4_parser.cc" break; - case 783: // control_socket_type_value: "https" -#line 2691 "dhcp4_parser.yy" + case 791: // control_socket_type_value: "https" +#line 2714 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4181 "dhcp4_parser.cc" +#line 4240 "dhcp4_parser.cc" break; - case 784: // $@116: %empty -#line 2694 "dhcp4_parser.yy" + case 792: // $@117: %empty +#line 2717 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4191 "dhcp4_parser.cc" +#line 4250 "dhcp4_parser.cc" break; - case 785: // control_socket_name: "socket-name" $@116 ":" "constant string" -#line 2698 "dhcp4_parser.yy" + case 793: // control_socket_name: "socket-name" $@117 ":" "constant string" +#line 2721 "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); ctx.leave(); } -#line 4201 "dhcp4_parser.cc" +#line 4260 "dhcp4_parser.cc" break; - case 786: // $@117: %empty -#line 2704 "dhcp4_parser.yy" + case 794: // $@118: %empty +#line 2727 "dhcp4_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4211 "dhcp4_parser.cc" +#line 4270 "dhcp4_parser.cc" break; - case 787: // control_socket_address: "socket-address" $@117 ":" "constant string" -#line 2708 "dhcp4_parser.yy" + case 795: // control_socket_address: "socket-address" $@118 ":" "constant string" +#line 2731 "dhcp4_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4221 "dhcp4_parser.cc" +#line 4280 "dhcp4_parser.cc" break; - case 788: // control_socket_port: "socket-port" ":" "integer" -#line 2714 "dhcp4_parser.yy" + case 796: // control_socket_port: "socket-port" ":" "integer" +#line 2737 "dhcp4_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4231 "dhcp4_parser.cc" +#line 4290 "dhcp4_parser.cc" break; - case 789: // cert_required: "cert-required" ":" "boolean" -#line 2720 "dhcp4_parser.yy" + case 797: // cert_required: "cert-required" ":" "boolean" +#line 2743 "dhcp4_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4241 "dhcp4_parser.cc" +#line 4300 "dhcp4_parser.cc" break; - case 790: // $@118: %empty -#line 2726 "dhcp4_parser.yy" + case 798: // $@119: %empty +#line 2749 "dhcp4_parser.yy" { ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4249,73 +4308,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HTTP_HEADERS); } -#line 4253 "dhcp4_parser.cc" +#line 4312 "dhcp4_parser.cc" break; - case 791: // http_headers: "http-headers" $@118 ":" "[" http_header_list "]" -#line 2732 "dhcp4_parser.yy" + case 799: // http_headers: "http-headers" $@119 ":" "[" http_header_list "]" +#line 2755 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4262 "dhcp4_parser.cc" +#line 4321 "dhcp4_parser.cc" break; - case 796: // not_empty_http_header_list: not_empty_http_header_list "," -#line 2743 "dhcp4_parser.yy" + case 804: // not_empty_http_header_list: not_empty_http_header_list "," +#line 2766 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4270 "dhcp4_parser.cc" +#line 4329 "dhcp4_parser.cc" break; - case 797: // $@119: %empty -#line 2748 "dhcp4_parser.yy" + case 805: // $@120: %empty +#line 2771 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4280 "dhcp4_parser.cc" +#line 4339 "dhcp4_parser.cc" break; - case 798: // http_header: "{" $@119 http_header_params "}" -#line 2752 "dhcp4_parser.yy" + case 806: // http_header: "{" $@120 http_header_params "}" +#line 2775 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4288 "dhcp4_parser.cc" +#line 4347 "dhcp4_parser.cc" break; - case 801: // http_header_params: http_header_params "," -#line 2758 "dhcp4_parser.yy" + case 809: // http_header_params: http_header_params "," +#line 2781 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4296 "dhcp4_parser.cc" +#line 4355 "dhcp4_parser.cc" break; - case 807: // $@120: %empty -#line 2770 "dhcp4_parser.yy" + case 815: // $@121: %empty +#line 2793 "dhcp4_parser.yy" { ctx.unique("value", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4305 "dhcp4_parser.cc" +#line 4364 "dhcp4_parser.cc" break; - case 808: // header_value: "value" $@120 ":" "constant string" -#line 2773 "dhcp4_parser.yy" + case 816: // header_value: "value" $@121 ":" "constant string" +#line 2796 "dhcp4_parser.yy" { ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("value", value); ctx.leave(); } -#line 4315 "dhcp4_parser.cc" +#line 4374 "dhcp4_parser.cc" break; - case 809: // $@121: %empty -#line 2781 "dhcp4_parser.yy" + case 817: // $@122: %empty +#line 2804 "dhcp4_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4323,92 +4382,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4327 "dhcp4_parser.cc" +#line 4386 "dhcp4_parser.cc" break; - case 810: // authentication: "authentication" $@121 ":" "{" auth_params "}" -#line 2787 "dhcp4_parser.yy" + case 818: // authentication: "authentication" $@122 ":" "{" auth_params "}" +#line 2810 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4338 "dhcp4_parser.cc" +#line 4397 "dhcp4_parser.cc" break; - case 813: // auth_params: auth_params "," -#line 2796 "dhcp4_parser.yy" + case 821: // auth_params: auth_params "," +#line 2819 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4346 "dhcp4_parser.cc" +#line 4405 "dhcp4_parser.cc" break; - case 821: // $@122: %empty -#line 2810 "dhcp4_parser.yy" + case 829: // $@123: %empty +#line 2833 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4355 "dhcp4_parser.cc" +#line 4414 "dhcp4_parser.cc" break; - case 822: // auth_type: "type" $@122 ":" auth_type_value -#line 2813 "dhcp4_parser.yy" + case 830: // auth_type: "type" $@123 ":" auth_type_value +#line 2836 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4364 "dhcp4_parser.cc" +#line 4423 "dhcp4_parser.cc" break; - case 823: // auth_type_value: "basic" -#line 2818 "dhcp4_parser.yy" + case 831: // auth_type_value: "basic" +#line 2841 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4370 "dhcp4_parser.cc" +#line 4429 "dhcp4_parser.cc" break; - case 824: // $@123: %empty -#line 2821 "dhcp4_parser.yy" + case 832: // $@124: %empty +#line 2844 "dhcp4_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4379 "dhcp4_parser.cc" +#line 4438 "dhcp4_parser.cc" break; - case 825: // realm: "realm" $@123 ":" "constant string" -#line 2824 "dhcp4_parser.yy" + case 833: // realm: "realm" $@124 ":" "constant string" +#line 2847 "dhcp4_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4389 "dhcp4_parser.cc" +#line 4448 "dhcp4_parser.cc" break; - case 826: // $@124: %empty -#line 2830 "dhcp4_parser.yy" + case 834: // $@125: %empty +#line 2853 "dhcp4_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4398 "dhcp4_parser.cc" +#line 4457 "dhcp4_parser.cc" break; - case 827: // directory: "directory" $@124 ":" "constant string" -#line 2833 "dhcp4_parser.yy" + case 835: // directory: "directory" $@125 ":" "constant string" +#line 2856 "dhcp4_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4408 "dhcp4_parser.cc" +#line 4467 "dhcp4_parser.cc" break; - case 828: // $@125: %empty -#line 2839 "dhcp4_parser.yy" + case 836: // $@126: %empty +#line 2862 "dhcp4_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4416,92 +4475,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4420 "dhcp4_parser.cc" +#line 4479 "dhcp4_parser.cc" break; - case 829: // clients: "clients" $@125 ":" "[" clients_list "]" -#line 2845 "dhcp4_parser.yy" + case 837: // clients: "clients" $@126 ":" "[" clients_list "]" +#line 2868 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4429 "dhcp4_parser.cc" +#line 4488 "dhcp4_parser.cc" break; - case 834: // not_empty_clients_list: not_empty_clients_list "," -#line 2856 "dhcp4_parser.yy" + case 842: // not_empty_clients_list: not_empty_clients_list "," +#line 2879 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4437 "dhcp4_parser.cc" +#line 4496 "dhcp4_parser.cc" break; - case 835: // $@126: %empty -#line 2861 "dhcp4_parser.yy" + case 843: // $@127: %empty +#line 2884 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4447 "dhcp4_parser.cc" +#line 4506 "dhcp4_parser.cc" break; - case 836: // basic_auth: "{" $@126 clients_params "}" -#line 2865 "dhcp4_parser.yy" + case 844: // basic_auth: "{" $@127 clients_params "}" +#line 2888 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4455 "dhcp4_parser.cc" +#line 4514 "dhcp4_parser.cc" break; - case 839: // clients_params: clients_params "," -#line 2871 "dhcp4_parser.yy" + case 847: // clients_params: clients_params "," +#line 2894 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4463 "dhcp4_parser.cc" +#line 4522 "dhcp4_parser.cc" break; - case 847: // $@127: %empty -#line 2885 "dhcp4_parser.yy" + case 855: // $@128: %empty +#line 2908 "dhcp4_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4472 "dhcp4_parser.cc" +#line 4531 "dhcp4_parser.cc" break; - case 848: // user_file: "user-file" $@127 ":" "constant string" -#line 2888 "dhcp4_parser.yy" + case 856: // user_file: "user-file" $@128 ":" "constant string" +#line 2911 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4482 "dhcp4_parser.cc" +#line 4541 "dhcp4_parser.cc" break; - case 849: // $@128: %empty -#line 2894 "dhcp4_parser.yy" + case 857: // $@129: %empty +#line 2917 "dhcp4_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4491 "dhcp4_parser.cc" +#line 4550 "dhcp4_parser.cc" break; - case 850: // password_file: "password-file" $@128 ":" "constant string" -#line 2897 "dhcp4_parser.yy" + case 858: // password_file: "password-file" $@129 ":" "constant string" +#line 2920 "dhcp4_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4501 "dhcp4_parser.cc" +#line 4560 "dhcp4_parser.cc" break; - case 851: // $@129: %empty -#line 2905 "dhcp4_parser.yy" + case 859: // $@130: %empty +#line 2928 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4509,87 +4568,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4513 "dhcp4_parser.cc" +#line 4572 "dhcp4_parser.cc" break; - case 852: // dhcp_queue_control: "dhcp-queue-control" $@129 ":" "{" queue_control_params "}" -#line 2911 "dhcp4_parser.yy" + case 860: // dhcp_queue_control: "dhcp-queue-control" $@130 ":" "{" queue_control_params "}" +#line 2934 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4524 "dhcp4_parser.cc" +#line 4583 "dhcp4_parser.cc" break; - case 855: // queue_control_params: queue_control_params "," -#line 2920 "dhcp4_parser.yy" + case 863: // queue_control_params: queue_control_params "," +#line 2943 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4532 "dhcp4_parser.cc" +#line 4591 "dhcp4_parser.cc" break; - case 862: // enable_queue: "enable-queue" ":" "boolean" -#line 2933 "dhcp4_parser.yy" + case 870: // enable_queue: "enable-queue" ":" "boolean" +#line 2956 "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))); ctx.stack_.back()->set("enable-queue", b); } -#line 4542 "dhcp4_parser.cc" +#line 4601 "dhcp4_parser.cc" break; - case 863: // $@130: %empty -#line 2939 "dhcp4_parser.yy" + case 871: // $@131: %empty +#line 2962 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4551 "dhcp4_parser.cc" +#line 4610 "dhcp4_parser.cc" break; - case 864: // queue_type: "queue-type" $@130 ":" "constant string" -#line 2942 "dhcp4_parser.yy" + case 872: // queue_type: "queue-type" $@131 ":" "constant string" +#line 2965 "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); ctx.leave(); } -#line 4561 "dhcp4_parser.cc" +#line 4620 "dhcp4_parser.cc" break; - case 865: // capacity: "capacity" ":" "integer" -#line 2948 "dhcp4_parser.yy" + case 873: // capacity: "capacity" ":" "integer" +#line 2971 "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))); ctx.stack_.back()->set("capacity", c); } -#line 4571 "dhcp4_parser.cc" +#line 4630 "dhcp4_parser.cc" break; - case 866: // $@131: %empty -#line 2954 "dhcp4_parser.yy" + case 874: // $@132: %empty +#line 2977 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4580 "dhcp4_parser.cc" +#line 4639 "dhcp4_parser.cc" break; - case 867: // arbitrary_map_entry: "constant string" $@131 ":" value -#line 2957 "dhcp4_parser.yy" + case 875: // arbitrary_map_entry: "constant string" $@132 ":" value +#line 2980 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4589 "dhcp4_parser.cc" +#line 4648 "dhcp4_parser.cc" break; - case 868: // $@132: %empty -#line 2964 "dhcp4_parser.yy" + case 876: // $@133: %empty +#line 2987 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4597,177 +4656,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4601 "dhcp4_parser.cc" +#line 4660 "dhcp4_parser.cc" break; - case 869: // dhcp_ddns: "dhcp-ddns" $@132 ":" "{" dhcp_ddns_params "}" -#line 2970 "dhcp4_parser.yy" + case 877: // dhcp_ddns: "dhcp-ddns" $@133 ":" "{" dhcp_ddns_params "}" +#line 2993 "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)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4612 "dhcp4_parser.cc" +#line 4671 "dhcp4_parser.cc" break; - case 870: // $@133: %empty -#line 2977 "dhcp4_parser.yy" + case 878: // $@134: %empty +#line 3000 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4622 "dhcp4_parser.cc" +#line 4681 "dhcp4_parser.cc" break; - case 871: // sub_dhcp_ddns: "{" $@133 dhcp_ddns_params "}" -#line 2981 "dhcp4_parser.yy" + case 879: // sub_dhcp_ddns: "{" $@134 dhcp_ddns_params "}" +#line 3004 "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)); // parsing completed } -#line 4632 "dhcp4_parser.cc" +#line 4691 "dhcp4_parser.cc" break; - case 874: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2989 "dhcp4_parser.yy" + case 882: // dhcp_ddns_params: dhcp_ddns_params "," +#line 3012 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4640 "dhcp4_parser.cc" +#line 4699 "dhcp4_parser.cc" break; - case 886: // enable_updates: "enable-updates" ":" "boolean" -#line 3007 "dhcp4_parser.yy" + case 894: // enable_updates: "enable-updates" ":" "boolean" +#line 3030 "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))); ctx.stack_.back()->set("enable-updates", b); } -#line 4650 "dhcp4_parser.cc" +#line 4709 "dhcp4_parser.cc" break; - case 887: // $@134: %empty -#line 3013 "dhcp4_parser.yy" + case 895: // $@135: %empty +#line 3036 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4659 "dhcp4_parser.cc" +#line 4718 "dhcp4_parser.cc" break; - case 888: // server_ip: "server-ip" $@134 ":" "constant string" -#line 3016 "dhcp4_parser.yy" + case 896: // server_ip: "server-ip" $@135 ":" "constant string" +#line 3039 "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); ctx.leave(); } -#line 4669 "dhcp4_parser.cc" +#line 4728 "dhcp4_parser.cc" break; - case 889: // server_port: "server-port" ":" "integer" -#line 3022 "dhcp4_parser.yy" + case 897: // server_port: "server-port" ":" "integer" +#line 3045 "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))); ctx.stack_.back()->set("server-port", i); } -#line 4679 "dhcp4_parser.cc" +#line 4738 "dhcp4_parser.cc" break; - case 890: // $@135: %empty -#line 3028 "dhcp4_parser.yy" + case 898: // $@136: %empty +#line 3051 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4688 "dhcp4_parser.cc" +#line 4747 "dhcp4_parser.cc" break; - case 891: // sender_ip: "sender-ip" $@135 ":" "constant string" -#line 3031 "dhcp4_parser.yy" + case 899: // sender_ip: "sender-ip" $@136 ":" "constant string" +#line 3054 "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); ctx.leave(); } -#line 4698 "dhcp4_parser.cc" +#line 4757 "dhcp4_parser.cc" break; - case 892: // sender_port: "sender-port" ":" "integer" -#line 3037 "dhcp4_parser.yy" + case 900: // sender_port: "sender-port" ":" "integer" +#line 3060 "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))); ctx.stack_.back()->set("sender-port", i); } -#line 4708 "dhcp4_parser.cc" +#line 4767 "dhcp4_parser.cc" break; - case 893: // max_queue_size: "max-queue-size" ":" "integer" -#line 3043 "dhcp4_parser.yy" + case 901: // max_queue_size: "max-queue-size" ":" "integer" +#line 3066 "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))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4718 "dhcp4_parser.cc" +#line 4777 "dhcp4_parser.cc" break; - case 894: // $@136: %empty -#line 3049 "dhcp4_parser.yy" + case 902: // $@137: %empty +#line 3072 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4727 "dhcp4_parser.cc" +#line 4786 "dhcp4_parser.cc" break; - case 895: // ncr_protocol: "ncr-protocol" $@136 ":" ncr_protocol_value -#line 3052 "dhcp4_parser.yy" + case 903: // ncr_protocol: "ncr-protocol" $@137 ":" ncr_protocol_value +#line 3075 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4736 "dhcp4_parser.cc" +#line 4795 "dhcp4_parser.cc" break; - case 896: // ncr_protocol_value: "udp" -#line 3058 "dhcp4_parser.yy" + case 904: // ncr_protocol_value: "udp" +#line 3081 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4742 "dhcp4_parser.cc" +#line 4801 "dhcp4_parser.cc" break; - case 897: // ncr_protocol_value: "tcp" -#line 3059 "dhcp4_parser.yy" + case 905: // ncr_protocol_value: "tcp" +#line 3082 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4748 "dhcp4_parser.cc" +#line 4807 "dhcp4_parser.cc" break; - case 898: // $@137: %empty -#line 3062 "dhcp4_parser.yy" + case 906: // $@138: %empty +#line 3085 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4757 "dhcp4_parser.cc" +#line 4816 "dhcp4_parser.cc" break; - case 899: // ncr_format: "ncr-format" $@137 ":" "JSON" -#line 3065 "dhcp4_parser.yy" + case 907: // ncr_format: "ncr-format" $@138 ":" "JSON" +#line 3088 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4767 "dhcp4_parser.cc" +#line 4826 "dhcp4_parser.cc" break; - case 900: // $@138: %empty -#line 3073 "dhcp4_parser.yy" + case 908: // $@139: %empty +#line 3096 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4775,48 +4834,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4779 "dhcp4_parser.cc" +#line 4838 "dhcp4_parser.cc" break; - case 901: // config_control: "config-control" $@138 ":" "{" config_control_params "}" -#line 3079 "dhcp4_parser.yy" + case 909: // config_control: "config-control" $@139 ":" "{" config_control_params "}" +#line 3102 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4789 "dhcp4_parser.cc" +#line 4848 "dhcp4_parser.cc" break; - case 902: // $@139: %empty -#line 3085 "dhcp4_parser.yy" + case 910: // $@140: %empty +#line 3108 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4799 "dhcp4_parser.cc" +#line 4858 "dhcp4_parser.cc" break; - case 903: // sub_config_control: "{" $@139 config_control_params "}" -#line 3089 "dhcp4_parser.yy" + case 911: // sub_config_control: "{" $@140 config_control_params "}" +#line 3112 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4808 "dhcp4_parser.cc" +#line 4867 "dhcp4_parser.cc" break; - case 906: // config_control_params: config_control_params "," -#line 3097 "dhcp4_parser.yy" + case 914: // config_control_params: config_control_params "," +#line 3120 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4816 "dhcp4_parser.cc" +#line 4875 "dhcp4_parser.cc" break; - case 909: // $@140: %empty -#line 3107 "dhcp4_parser.yy" + case 917: // $@141: %empty +#line 3130 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4824,30 +4883,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4828 "dhcp4_parser.cc" +#line 4887 "dhcp4_parser.cc" break; - case 910: // config_databases: "config-databases" $@140 ":" "[" database_list "]" -#line 3113 "dhcp4_parser.yy" + case 918: // config_databases: "config-databases" $@141 ":" "[" database_list "]" +#line 3136 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4837 "dhcp4_parser.cc" +#line 4896 "dhcp4_parser.cc" break; - case 911: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 3118 "dhcp4_parser.yy" + case 919: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 3141 "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))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4847 "dhcp4_parser.cc" +#line 4906 "dhcp4_parser.cc" break; - case 912: // $@141: %empty -#line 3126 "dhcp4_parser.yy" + case 920: // $@142: %empty +#line 3149 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4855,83 +4914,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4859 "dhcp4_parser.cc" +#line 4918 "dhcp4_parser.cc" break; - case 913: // loggers: "loggers" $@141 ":" "[" loggers_entries "]" -#line 3132 "dhcp4_parser.yy" + case 921: // loggers: "loggers" $@142 ":" "[" loggers_entries "]" +#line 3155 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4868 "dhcp4_parser.cc" +#line 4927 "dhcp4_parser.cc" break; - case 916: // loggers_entries: loggers_entries "," -#line 3141 "dhcp4_parser.yy" + case 924: // loggers_entries: loggers_entries "," +#line 3164 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4876 "dhcp4_parser.cc" +#line 4935 "dhcp4_parser.cc" break; - case 917: // $@142: %empty -#line 3147 "dhcp4_parser.yy" + case 925: // $@143: %empty +#line 3170 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4886 "dhcp4_parser.cc" +#line 4945 "dhcp4_parser.cc" break; - case 918: // logger_entry: "{" $@142 logger_params "}" -#line 3151 "dhcp4_parser.yy" + case 926: // logger_entry: "{" $@143 logger_params "}" +#line 3174 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4894 "dhcp4_parser.cc" +#line 4953 "dhcp4_parser.cc" break; - case 921: // logger_params: logger_params "," -#line 3157 "dhcp4_parser.yy" + case 929: // logger_params: logger_params "," +#line 3180 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4902 "dhcp4_parser.cc" +#line 4961 "dhcp4_parser.cc" break; - case 929: // debuglevel: "debuglevel" ":" "integer" -#line 3171 "dhcp4_parser.yy" + case 937: // debuglevel: "debuglevel" ":" "integer" +#line 3194 "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))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4912 "dhcp4_parser.cc" +#line 4971 "dhcp4_parser.cc" break; - case 930: // $@143: %empty -#line 3177 "dhcp4_parser.yy" + case 938: // $@144: %empty +#line 3200 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4921 "dhcp4_parser.cc" +#line 4980 "dhcp4_parser.cc" break; - case 931: // severity: "severity" $@143 ":" "constant string" -#line 3180 "dhcp4_parser.yy" + case 939: // severity: "severity" $@144 ":" "constant string" +#line 3203 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4931 "dhcp4_parser.cc" +#line 4990 "dhcp4_parser.cc" break; - case 932: // $@144: %empty -#line 3186 "dhcp4_parser.yy" + case 940: // $@145: %empty +#line 3209 "dhcp4_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4939,122 +4998,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4943 "dhcp4_parser.cc" +#line 5002 "dhcp4_parser.cc" break; - case 933: // output_options_list: "output-options" $@144 ":" "[" output_options_list_content "]" -#line 3192 "dhcp4_parser.yy" + case 941: // output_options_list: "output-options" $@145 ":" "[" output_options_list_content "]" +#line 3215 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4952 "dhcp4_parser.cc" +#line 5011 "dhcp4_parser.cc" break; - case 936: // output_options_list_content: output_options_list_content "," -#line 3199 "dhcp4_parser.yy" + case 944: // output_options_list_content: output_options_list_content "," +#line 3222 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4960 "dhcp4_parser.cc" +#line 5019 "dhcp4_parser.cc" break; - case 937: // $@145: %empty -#line 3204 "dhcp4_parser.yy" + case 945: // $@146: %empty +#line 3227 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4970 "dhcp4_parser.cc" +#line 5029 "dhcp4_parser.cc" break; - case 938: // output_entry: "{" $@145 output_params_list "}" -#line 3208 "dhcp4_parser.yy" + case 946: // output_entry: "{" $@146 output_params_list "}" +#line 3231 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4978 "dhcp4_parser.cc" +#line 5037 "dhcp4_parser.cc" break; - case 941: // output_params_list: output_params_list "," -#line 3214 "dhcp4_parser.yy" + case 949: // output_params_list: output_params_list "," +#line 3237 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4986 "dhcp4_parser.cc" +#line 5045 "dhcp4_parser.cc" break; - case 947: // $@146: %empty -#line 3226 "dhcp4_parser.yy" + case 955: // $@147: %empty +#line 3249 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4995 "dhcp4_parser.cc" +#line 5054 "dhcp4_parser.cc" break; - case 948: // output: "output" $@146 ":" "constant string" -#line 3229 "dhcp4_parser.yy" + case 956: // output: "output" $@147 ":" "constant string" +#line 3252 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 5005 "dhcp4_parser.cc" +#line 5064 "dhcp4_parser.cc" break; - case 949: // flush: "flush" ":" "boolean" -#line 3235 "dhcp4_parser.yy" + case 957: // flush: "flush" ":" "boolean" +#line 3258 "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))); ctx.stack_.back()->set("flush", flush); } -#line 5015 "dhcp4_parser.cc" +#line 5074 "dhcp4_parser.cc" break; - case 950: // maxsize: "maxsize" ":" "integer" -#line 3241 "dhcp4_parser.yy" + case 958: // maxsize: "maxsize" ":" "integer" +#line 3264 "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))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 5025 "dhcp4_parser.cc" +#line 5084 "dhcp4_parser.cc" break; - case 951: // maxver: "maxver" ":" "integer" -#line 3247 "dhcp4_parser.yy" + case 959: // maxver: "maxver" ":" "integer" +#line 3270 "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))); ctx.stack_.back()->set("maxver", maxver); } -#line 5035 "dhcp4_parser.cc" +#line 5094 "dhcp4_parser.cc" break; - case 952: // $@147: %empty -#line 3253 "dhcp4_parser.yy" + case 960: // $@148: %empty +#line 3276 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5044 "dhcp4_parser.cc" +#line 5103 "dhcp4_parser.cc" break; - case 953: // pattern: "pattern" $@147 ":" "constant string" -#line 3256 "dhcp4_parser.yy" + case 961: // pattern: "pattern" $@148 ":" "constant string" +#line 3279 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 5054 "dhcp4_parser.cc" +#line 5113 "dhcp4_parser.cc" break; - case 954: // $@148: %empty -#line 3262 "dhcp4_parser.yy" + case 962: // $@149: %empty +#line 3285 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -5062,68 +5121,68 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 5066 "dhcp4_parser.cc" +#line 5125 "dhcp4_parser.cc" break; - case 955: // compatibility: "compatibility" $@148 ":" "{" compatibility_params "}" -#line 3268 "dhcp4_parser.yy" + case 963: // compatibility: "compatibility" $@149 ":" "{" compatibility_params "}" +#line 3291 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5075 "dhcp4_parser.cc" +#line 5134 "dhcp4_parser.cc" break; - case 958: // compatibility_params: compatibility_params "," -#line 3275 "dhcp4_parser.yy" + case 966: // compatibility_params: compatibility_params "," +#line 3298 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5083 "dhcp4_parser.cc" +#line 5142 "dhcp4_parser.cc" break; - case 964: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3287 "dhcp4_parser.yy" + case 972: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3310 "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))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 5093 "dhcp4_parser.cc" +#line 5152 "dhcp4_parser.cc" break; - case 965: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" -#line 3293 "dhcp4_parser.yy" + case 973: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 3316 "dhcp4_parser.yy" { ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); } -#line 5103 "dhcp4_parser.cc" +#line 5162 "dhcp4_parser.cc" break; - case 966: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" -#line 3299 "dhcp4_parser.yy" + case 974: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 3322 "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("ignore-rai-link-selection", b); } -#line 5113 "dhcp4_parser.cc" +#line 5172 "dhcp4_parser.cc" break; - case 967: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 3305 "dhcp4_parser.yy" + case 975: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 3328 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 5123 "dhcp4_parser.cc" +#line 5182 "dhcp4_parser.cc" break; -#line 5127 "dhcp4_parser.cc" +#line 5186 "dhcp4_parser.cc" default: break; @@ -5475,161 +5534,162 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -1369; + const short Dhcp4Parser::yypact_ninf_ = -1377; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 507, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, 28, 26, 29, 39, 44, 54, - 80, 90, 111, 140, 179, 183, 193, 262, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, 26, -168, 158, 205, 180, 726, - 784, 315, 34, 272, 321, -79, 484, 68, -1369, 176, - 211, 252, 214, 306, -1369, 45, -1369, -1369, -1369, -1369, - 323, 338, 340, -1369, -1369, -1369, 342, 348, -1369, -1369, - -1369, 367, 371, 372, 376, 399, 406, 409, 413, 422, - 427, 428, -1369, 431, 433, 434, 437, 439, -1369, -1369, - -1369, 440, 445, 446, 447, 455, 456, 457, -1369, -1369, - -1369, 458, -1369, -1369, -1369, -1369, -1369, 459, 460, 461, - -1369, -1369, -1369, -1369, -1369, 465, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 466, 467, 468, -1369, -1369, 469, -1369, - 116, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 470, 472, 473, 474, - -1369, 124, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 479, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, 134, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - 480, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, 151, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 310, - 322, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 477, -1369, -1369, 482, -1369, -1369, -1369, - 483, -1369, -1369, 486, 485, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 487, 488, - 491, -1369, -1369, -1369, -1369, -1369, 489, 493, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, 161, -1369, -1369, -1369, 495, -1369, 497, -1369, - 498, 501, -1369, -1369, -1369, -1369, -1369, 162, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 502, 169, - -1369, -1369, -1369, -1369, 26, 26, -1369, 259, 503, -1369, - -1369, 505, 506, 509, 277, 281, 283, 515, 516, 518, - 294, 295, 528, 529, 531, 309, 319, 326, 328, 330, - 302, 305, 307, 317, 334, 336, 544, 343, 344, 333, - 345, 351, 549, 551, 566, 354, 358, 361, 346, 363, - 364, 359, 573, 577, 578, 368, 579, 586, 594, 601, - 602, 374, 380, 383, 606, 614, 617, 619, 623, 396, - 627, 629, 634, 640, 642, 645, 648, 417, 420, 421, - 652, 655, -1369, 205, -1369, 658, 660, 663, 443, 444, - 448, 450, 180, -1369, 679, 680, 681, 698, 699, 708, - 481, 710, 714, 715, 734, 737, 726, -1369, 740, 514, - 784, -1369, 743, 744, 745, 746, 748, 749, 750, 751, - -1369, 315, -1369, 758, 759, 532, 761, 762, 763, 534, - -1369, 272, 765, 536, 537, 538, 769, -1369, 321, 770, - 771, -43, -1369, 542, 773, 546, 777, 550, 552, 779, - 781, 484, -1369, 797, 556, 68, -1369, -1369, -1369, 798, - 796, 811, 815, 818, -1369, -1369, -1369, 595, 596, 603, - -1369, -1369, 825, 826, 799, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 609, -1369, -1369, -1369, - -1369, -1369, -103, 610, 612, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, 832, 847, 851, -1369, 626, 316, 853, 852, - 630, -1369, -1369, -1369, 870, 871, 872, 874, 873, -1369, - 875, 876, 879, 878, 880, 657, 659, -1369, -1369, -1369, - 881, 882, -1369, 886, 215, 120, -1369, -1369, -1369, -1369, - -1369, 662, 664, 665, 892, 667, 668, -1369, 886, 886, - 886, 669, 897, -1369, 674, -1369, -1369, 886, 675, 676, - 677, 678, 683, 684, 685, -1369, 686, 689, -1369, 690, - 691, 692, -1369, -1369, 693, -1369, -1369, -1369, 886, -1369, - 696, 852, -1369, -1369, 697, -1369, 700, -1369, -1369, 4, - 471, -1369, 905, -1369, -1369, 26, 205, 68, 180, 329, - -1369, -1369, -1369, 647, 647, 922, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, 923, 925, 926, -1369, -1369, - -1369, -1369, -1369, -1369, 927, -1369, -1369, -1369, 123, 928, - 929, 930, 247, -69, 661, 931, -74, 484, -1369, -1369, - 932, -8, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 933, -1369, -1369, -1369, -1369, -1369, -1369, - 800, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, 922, -1369, 172, 175, 181, - -1369, -1369, 207, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - 937, 938, 939, 940, 942, 943, 944, 945, 946, 947, - -1369, 948, 949, -1369, -1369, -1369, -1369, -1369, -1369, 209, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, 210, -1369, 950, 951, -1369, -1369, - 952, 956, -1369, -1369, 954, 958, -1369, -1369, 957, 959, - -1369, -1369, 960, 961, -1369, -1369, -1369, -1369, -1369, -1369, - 100, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 195, -1369, - -1369, 962, 964, -1369, -1369, 963, 967, -1369, 968, 969, - 970, 971, 972, 973, 217, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, 974, 975, 976, -1369, 218, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 977, -1369, 978, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 245, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 965, 982, -1369, 983, - -1369, 984, -1369, -1369, -1369, 246, -1369, -1369, -1369, -1369, - -1369, 297, -1369, 249, -1369, 985, 986, 987, 988, -1369, - 300, -1369, -1369, -1369, -1369, -1369, 724, -1369, 980, 991, - -1369, -1369, 989, -1369, 992, -1369, -1369, -1369, 997, 1001, - 329, -1369, 1004, 1005, 1013, 1014, 733, 786, 791, 790, - 803, 809, 812, 814, 817, 822, 1027, 823, 846, 1054, - 1060, 1075, 1077, 1082, 647, -1369, -1369, 647, -1369, 922, - 726, -1369, 923, 272, -1369, 925, 321, -1369, 926, 1407, - -1369, 927, 123, -1369, 349, 928, -1369, 315, -1369, 929, - -79, -1369, 930, 855, 856, 862, 864, 867, 889, 247, - -1369, 893, 899, 910, -69, -1369, 1100, 1133, 1155, 953, - 1165, 941, 1173, 661, -1369, 661, -1369, 931, 955, 1178, - 966, 1180, -74, -1369, -1369, -20, 932, -1369, 979, 981, - 990, 993, -8, -1369, -1369, 1181, 1185, 784, -1369, 933, - 1186, -1369, -1369, 764, 994, -1369, 995, 998, 999, 1000, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - 331, -1369, -1369, 1002, 1003, 1006, 1007, 1008, -1369, 308, - -1369, 314, -1369, 1184, -1369, 1187, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 318, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, 1190, 1193, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 1191, 1197, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, 1194, -1369, 335, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - 228, 1009, 1010, -1369, 1198, -1369, 1199, -1369, 337, -1369, - -1369, 1011, -1369, 26, -1369, -1369, 1203, -1369, -1369, -1369, - -1369, -1369, 347, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, 1012, 350, -1369, 886, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, 1407, -1369, 1205, - 1206, 1015, 1017, -1369, 349, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 73, 1204, -1369, -1369, -1369, 1208, 996, - 1212, -20, -1369, -1369, -1369, -1369, -1369, 1016, 1021, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 356, - -1369, -1369, -1369, -1369, -1369, -1369, 1211, 1215, -1369, 1214, - -1369, 1022, -1369, -1369, -1369, 1216, 1217, 1218, 1219, 73, - -1369, -64, -1369, 1204, 1225, -1369, 1064, 1024, 1025, 1231, - -1369, -1369, -1369, -1369, -1369, -1369, 357, -1369, -1369, -1369, - -1369, 304, -1369, -1369, -1369, -1369, -1369, 1237, 1241, -64, - -1369, 18, 1225, -1369, -1369, 1240, 1245, -1369, 1028, -1369, - -1369, 1254, 1256, 1258, -1369, 360, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 75, -1369, 1237, -1369, 1259, 1031, 1035, - 1036, 1266, 18, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, 366, -1369, -1369, -1369, -1369, 1040, -1369, -1369, -1369, - 1041, -1369, 1271, 1273, 75, -1369, -1369, -1369, 1048, 1050, - -1369, -1369, -1369 + 463, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, 28, 26, 35, 37, 39, 44, + 58, 62, 71, 83, 123, 171, 191, 193, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, 26, -174, 192, 204, 72, 722, + 1468, 736, -3, 101, 353, -73, 276, 80, -1377, 211, + 201, 244, 221, 249, -1377, 42, -1377, -1377, -1377, -1377, + 268, 313, 335, -1377, -1377, -1377, 336, 344, -1377, -1377, + -1377, 354, 357, 364, 373, 375, 383, 387, 402, 404, + 411, 418, -1377, 435, 436, 451, 452, 460, -1377, -1377, + -1377, 461, 475, 476, 490, 495, 497, 498, -1377, -1377, + -1377, 499, -1377, -1377, -1377, -1377, -1377, 501, 502, 503, + -1377, -1377, -1377, -1377, -1377, 505, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 506, 507, 511, -1377, -1377, 515, -1377, + 50, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, 516, 518, 522, 525, + -1377, 106, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 528, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 144, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + 531, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, 151, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 349, + 378, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 381, -1377, -1377, 532, -1377, -1377, -1377, + 534, -1377, -1377, 391, 537, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 542, 544, + 551, -1377, -1377, -1377, -1377, -1377, 533, 555, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, 154, -1377, -1377, -1377, 556, -1377, 558, -1377, + 562, 563, -1377, -1377, -1377, -1377, -1377, 162, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 564, 169, + -1377, -1377, -1377, -1377, 26, 26, -1377, 333, 571, -1377, + -1377, 572, 573, 574, 339, 340, 341, 578, 579, 581, + 350, 352, 589, 590, 591, 358, 360, 365, 367, 368, + 370, 363, 369, 379, 376, 390, 596, 393, 400, 406, + 409, 412, 613, 619, 623, 414, 415, 394, 413, 419, + 421, 416, 640, 658, 660, 427, 665, 666, 667, 668, + 669, 434, 437, 438, 671, 672, 676, 678, 679, 446, + 681, 696, 697, 698, 699, 701, 702, 467, 468, 469, + 706, 707, -1377, 204, -1377, 708, 709, 710, 478, 481, + 477, 484, 72, -1377, 715, 719, 721, 723, 724, 725, + 492, 727, 728, 729, 730, 731, 722, -1377, 732, 500, + 1468, -1377, 733, 737, 740, 741, 742, 743, 744, 745, + -1377, 736, -1377, 746, 754, 521, 756, 757, 758, 486, + -1377, 101, 759, 524, 526, 527, 761, -1377, 353, 767, + 768, 40, -1377, 535, 769, 536, 772, 543, 545, 776, + 778, 276, -1377, 780, 547, 80, -1377, -1377, -1377, 784, + 785, 796, 797, 798, -1377, -1377, -1377, 554, 569, 583, + -1377, -1377, 817, 819, 822, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, 592, -1377, -1377, -1377, + -1377, -1377, -98, 593, 594, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, 823, 827, 828, -1377, 597, 433, 830, 829, + 603, -1377, -1377, -1377, 838, 840, 849, 853, 852, -1377, + 856, 858, 861, 860, 863, 631, 634, -1377, -1377, -1377, + 868, 867, -1377, 870, 306, 148, -1377, -1377, -1377, -1377, + -1377, 639, 641, 650, 872, 651, 652, -1377, 870, 870, + 870, 657, 888, -1377, 659, -1377, -1377, 870, 661, 662, + 670, 673, 674, 675, 677, -1377, 680, 682, -1377, 683, + 684, 685, -1377, -1377, 686, -1377, -1377, -1377, 870, -1377, + 687, 829, -1377, -1377, 688, -1377, 689, -1377, -1377, 4, + 703, -1377, 892, -1377, -1377, 26, 204, 80, 72, 159, + -1377, -1377, -1377, 384, 384, 895, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 897, 898, 899, -1377, -1377, + -1377, -1377, -1377, -1377, 901, -1377, -1377, -1377, 229, 902, + 906, 908, 63, 85, 717, 909, 296, 276, -1377, -1377, + 911, -38, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 922, -1377, -1377, -1377, -1377, -1377, -1377, + 779, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 895, -1377, 172, 187, 198, + -1377, -1377, 208, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, + -1377, 937, 938, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 224, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, 300, -1377, 939, 940, -1377, -1377, 941, 943, -1377, + -1377, 942, 946, -1377, -1377, 944, 948, -1377, -1377, 947, + 949, -1377, -1377, -1377, -1377, -1377, -1377, 121, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 134, -1377, -1377, 950, 952, + -1377, -1377, 951, 955, -1377, 956, 957, 958, 959, 960, + 961, 302, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 962, + 963, 964, -1377, 308, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 965, -1377, 966, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 318, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 968, 969, -1377, 967, -1377, 971, -1377, + -1377, -1377, 346, -1377, -1377, -1377, -1377, -1377, 347, -1377, + 225, -1377, 972, 973, 974, 975, -1377, 361, -1377, -1377, + -1377, -1377, -1377, 747, -1377, 976, 977, -1377, -1377, 978, + -1377, 979, -1377, -1377, -1377, 983, 984, 159, -1377, 985, + 986, 987, 988, 755, 704, 760, 762, 765, 771, 775, + 787, 788, 790, 990, 766, 793, 991, 992, 993, 995, + 996, 1001, 384, -1377, -1377, 384, -1377, 895, 722, -1377, + 897, 101, -1377, 898, 353, -1377, 899, 1410, -1377, 901, + 229, -1377, 280, 902, -1377, 736, -1377, 906, -73, -1377, + 908, 794, 801, 805, 811, 814, 816, 63, -1377, 777, + 824, 834, 85, -1377, 1012, 1019, 1053, 848, 1061, 826, + 1083, 717, -1377, 717, -1377, 909, 854, 1085, 857, 1092, + 296, -1377, -1377, 149, 911, -1377, 862, 864, 889, 905, + -38, -1377, -1377, 1101, 980, 1468, -1377, 922, 1108, -1377, + -1377, 913, 953, -1377, 970, 981, 982, 989, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 205, -1377, + -1377, 994, 997, 998, 999, 190, 1000, -1377, 362, -1377, + 377, -1377, 1127, -1377, 1131, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, 385, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + 1163, 1173, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 1175, 1182, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, 1184, -1377, 389, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 160, + 1002, 1003, -1377, 1186, -1377, 1190, -1377, 395, -1377, -1377, + 1004, -1377, 26, -1377, -1377, 1192, -1377, -1377, -1377, -1377, + -1377, 399, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 1005, 473, -1377, 870, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, 1410, -1377, 1193, + 1194, 1006, 1007, -1377, 280, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 67, 1195, -1377, -1377, -1377, 1196, 1010, + 1199, 149, -1377, -1377, -1377, -1377, -1377, 1008, 1013, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 479, + -1377, -1377, -1377, -1377, -1377, -1377, 1200, 1202, -1377, 1203, + -1377, 1014, -1377, -1377, -1377, 1206, 1208, 1209, 1211, 67, + -1377, -70, -1377, 1195, 1210, -1377, 804, 1015, 1016, 1215, + -1377, -1377, -1377, -1377, -1377, -1377, 487, -1377, -1377, -1377, + -1377, 265, -1377, -1377, -1377, -1377, -1377, 1214, 1218, -70, + -1377, -99, 1210, -1377, -1377, 1219, 1221, -1377, 1017, -1377, + -1377, 1223, 1224, 1225, -1377, 488, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 7, -1377, 1214, -1377, 1226, 1009, 1018, + 1020, 1228, -99, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, 489, -1377, -1377, -1377, -1377, 1022, -1377, -1377, -1377, + 1024, -1377, 1229, 1234, 7, -1377, -1377, -1377, 1025, 1026, + -1377, -1377, -1377 }; const short @@ -5639,18 +5699,18 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 59, 5, 65, 7, 214, 9, 394, 11, 621, 13, - 666, 15, 536, 17, 545, 19, 584, 21, 356, 23, - 870, 25, 902, 27, 46, 39, 0, 0, 0, 0, - 0, 668, 0, 547, 586, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 900, 199, 232, - 0, 0, 0, 688, 690, 692, 0, 0, 230, 243, + 59, 5, 65, 7, 214, 9, 402, 11, 629, 13, + 674, 15, 544, 17, 553, 19, 592, 21, 364, 23, + 878, 25, 910, 27, 46, 39, 0, 0, 0, 0, + 0, 676, 0, 555, 594, 0, 0, 0, 48, 0, + 47, 0, 0, 40, 61, 0, 63, 908, 199, 232, + 0, 0, 0, 696, 698, 700, 0, 0, 230, 243, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 164, 171, - 173, 0, 0, 0, 0, 0, 0, 0, 385, 534, - 575, 0, 156, 177, 474, 653, 655, 0, 0, 0, - 318, 715, 657, 347, 368, 0, 333, 752, 754, 851, - 868, 187, 189, 0, 0, 0, 912, 954, 0, 141, + 173, 0, 0, 0, 0, 0, 0, 0, 393, 542, + 583, 0, 156, 177, 482, 661, 663, 0, 0, 0, + 326, 723, 665, 355, 376, 0, 341, 760, 762, 859, + 876, 187, 189, 0, 0, 0, 920, 962, 0, 141, 0, 67, 70, 71, 72, 73, 74, 108, 109, 110, 111, 112, 75, 104, 137, 138, 93, 94, 95, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, @@ -5660,27 +5720,27 @@ namespace isc { namespace dhcp { 102, 96, 97, 98, 83, 88, 89, 90, 91, 92, 103, 113, 136, 216, 218, 222, 0, 0, 0, 0, 213, 0, 201, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 454, 456, 458, 612, 452, 460, 0, 464, - 466, 468, 462, 710, 451, 399, 400, 401, 402, 403, - 428, 429, 430, 431, 432, 449, 418, 419, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 450, 0, 396, 406, 423, 424, - 425, 407, 409, 410, 411, 412, 414, 415, 416, 408, - 404, 405, 426, 427, 413, 420, 421, 422, 417, 650, - 0, 649, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 629, 630, 631, 632, - 628, 0, 623, 626, 627, 647, 648, 708, 694, 696, - 698, 702, 700, 706, 704, 687, 681, 685, 686, 0, - 669, 670, 682, 683, 684, 678, 673, 679, 675, 676, - 677, 680, 674, 0, 565, 290, 0, 569, 567, 572, - 0, 561, 562, 0, 548, 549, 552, 564, 553, 554, - 555, 571, 556, 557, 558, 559, 560, 603, 0, 0, - 0, 610, 601, 602, 605, 606, 0, 587, 588, 591, - 592, 593, 594, 595, 596, 597, 600, 598, 599, 364, - 366, 361, 0, 358, 362, 363, 0, 887, 0, 890, - 0, 0, 894, 898, 885, 883, 884, 0, 872, 875, - 876, 877, 878, 879, 880, 881, 882, 909, 0, 0, - 904, 907, 908, 45, 50, 0, 37, 43, 0, 64, + 211, 212, 462, 464, 466, 620, 460, 468, 0, 472, + 474, 476, 470, 718, 459, 407, 408, 409, 410, 411, + 436, 437, 438, 439, 440, 457, 426, 427, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 458, 0, 404, 414, 431, 432, + 433, 415, 417, 418, 419, 420, 422, 423, 424, 416, + 412, 413, 434, 435, 421, 428, 429, 430, 425, 658, + 0, 657, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 637, 638, 639, 640, + 636, 0, 631, 634, 635, 655, 656, 716, 702, 704, + 706, 710, 708, 714, 712, 695, 689, 693, 694, 0, + 677, 678, 690, 691, 692, 686, 681, 687, 683, 684, + 685, 688, 682, 0, 573, 291, 0, 577, 575, 580, + 0, 569, 570, 0, 556, 557, 560, 572, 561, 562, + 563, 579, 564, 565, 566, 567, 568, 611, 0, 0, + 0, 618, 609, 610, 613, 614, 0, 595, 596, 599, + 600, 601, 602, 603, 604, 605, 608, 606, 607, 372, + 374, 369, 0, 366, 370, 371, 0, 895, 0, 898, + 0, 0, 902, 906, 893, 891, 892, 0, 880, 883, + 884, 885, 886, 887, 888, 889, 890, 917, 0, 0, + 912, 915, 916, 45, 50, 0, 37, 43, 0, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5690,153 +5750,154 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 69, 66, 0, 0, 0, 0, 0, 0, 0, 203, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 398, 395, 0, 0, - 625, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 667, 672, 537, 0, 0, 0, 0, 0, 0, 0, - 546, 551, 0, 0, 0, 0, 0, 585, 590, 0, - 0, 360, 357, 0, 0, 0, 0, 0, 0, 0, - 0, 874, 871, 0, 0, 906, 903, 49, 41, 0, + 0, 0, 0, 0, 0, 0, 406, 403, 0, 0, + 633, 630, 0, 0, 0, 0, 0, 0, 0, 0, + 675, 680, 545, 0, 0, 0, 0, 0, 0, 0, + 554, 559, 0, 0, 0, 0, 0, 593, 598, 0, + 0, 368, 365, 0, 0, 0, 0, 0, 0, 0, + 0, 882, 879, 0, 0, 914, 911, 49, 41, 0, 0, 0, 0, 0, 158, 159, 160, 0, 0, 0, 197, 198, 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 192, 193, 161, 162, 163, 0, 0, 0, 175, 176, 183, 184, 185, 186, 191, 0, 0, 0, 155, 0, 0, 0, 0, - 0, 470, 471, 472, 0, 0, 0, 0, 0, 751, + 0, 478, 479, 480, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 194, 195, 196, 0, 0, 68, 0, 0, 0, 226, 227, 228, 229, - 202, 0, 0, 0, 0, 0, 0, 473, 0, 0, - 0, 0, 0, 397, 0, 652, 624, 0, 0, 0, - 0, 0, 0, 0, 0, 671, 0, 0, 563, 0, - 0, 0, 574, 550, 0, 607, 608, 609, 0, 589, - 0, 0, 359, 886, 0, 889, 0, 892, 893, 0, - 0, 873, 0, 911, 905, 0, 0, 0, 0, 0, - 689, 691, 693, 0, 0, 247, 154, 166, 167, 168, - 169, 170, 165, 172, 174, 387, 538, 577, 157, 179, - 180, 181, 182, 178, 476, 38, 654, 656, 0, 0, - 659, 349, 0, 0, 0, 756, 0, 0, 188, 190, + 202, 0, 0, 0, 0, 0, 0, 481, 0, 0, + 0, 0, 0, 405, 0, 660, 632, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 571, 0, + 0, 0, 582, 558, 0, 615, 616, 617, 0, 597, + 0, 0, 367, 894, 0, 897, 0, 900, 901, 0, + 0, 881, 0, 919, 913, 0, 0, 0, 0, 0, + 697, 699, 701, 0, 0, 247, 154, 166, 167, 168, + 169, 170, 165, 172, 174, 395, 546, 585, 157, 179, + 180, 181, 182, 178, 484, 38, 662, 664, 0, 0, + 667, 357, 0, 0, 0, 764, 0, 0, 188, 190, 0, 0, 51, 217, 220, 221, 219, 224, 225, 223, - 455, 457, 459, 614, 453, 461, 465, 467, 469, 463, - 0, 651, 709, 695, 697, 699, 703, 701, 707, 705, - 566, 291, 570, 568, 573, 604, 611, 365, 367, 888, - 891, 896, 897, 895, 899, 247, 42, 0, 0, 0, - 239, 241, 0, 234, 237, 238, 281, 283, 285, 287, + 463, 465, 467, 622, 461, 469, 473, 475, 477, 471, + 0, 659, 717, 703, 705, 707, 711, 709, 715, 713, + 574, 292, 578, 576, 581, 612, 619, 373, 375, 896, + 899, 904, 905, 903, 907, 247, 42, 0, 0, 0, + 239, 241, 0, 234, 237, 238, 282, 284, 286, 288, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 302, 0, 0, 309, 311, 313, 315, 317, 319, 320, + 321, 322, 323, 324, 281, 0, 254, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 0, 252, 0, 248, 249, 400, 0, 396, 397, + 551, 0, 547, 548, 590, 0, 586, 587, 489, 0, + 485, 486, 336, 337, 338, 339, 340, 0, 328, 331, + 332, 333, 334, 335, 728, 0, 725, 672, 0, 668, + 669, 362, 0, 358, 359, 0, 0, 0, 0, 0, + 0, 0, 378, 381, 382, 383, 384, 385, 386, 0, + 0, 0, 351, 0, 343, 346, 347, 348, 349, 350, + 787, 792, 794, 0, 817, 0, 798, 786, 779, 780, + 781, 784, 785, 0, 771, 774, 775, 776, 777, 782, + 783, 778, 769, 0, 765, 766, 0, 871, 0, 874, + 867, 868, 0, 861, 864, 865, 866, 869, 0, 925, + 0, 922, 0, 0, 0, 0, 971, 0, 964, 967, + 968, 969, 970, 53, 627, 0, 623, 624, 721, 0, + 720, 0, 62, 909, 200, 0, 0, 236, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 301, 0, 0, 308, 310, 312, 314, 316, 280, 0, - 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 252, 0, 248, 249, 392, - 0, 388, 389, 543, 0, 539, 540, 582, 0, 578, - 579, 481, 0, 477, 478, 328, 329, 330, 331, 332, - 0, 320, 323, 324, 325, 326, 327, 720, 0, 717, - 664, 0, 660, 661, 354, 0, 350, 351, 0, 0, - 0, 0, 0, 0, 0, 370, 373, 374, 375, 376, - 377, 378, 0, 0, 0, 343, 0, 335, 338, 339, - 340, 341, 342, 779, 784, 786, 0, 809, 0, 790, - 778, 771, 772, 773, 776, 777, 0, 763, 766, 767, - 768, 769, 774, 775, 770, 761, 0, 757, 758, 0, - 863, 0, 866, 859, 860, 0, 853, 856, 857, 858, - 861, 0, 917, 0, 914, 0, 0, 0, 0, 963, - 0, 956, 959, 960, 961, 962, 53, 619, 0, 615, - 616, 713, 0, 712, 0, 62, 901, 200, 0, 0, - 236, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 256, 231, 244, 0, 246, 251, - 0, 386, 391, 547, 535, 542, 586, 576, 581, 0, - 475, 480, 322, 319, 722, 719, 716, 668, 658, 663, - 0, 348, 353, 0, 0, 0, 0, 0, 0, 372, - 369, 0, 0, 0, 337, 334, 0, 0, 0, 0, - 0, 0, 0, 765, 753, 0, 755, 760, 0, 0, - 0, 0, 855, 852, 869, 0, 916, 913, 0, 0, - 0, 0, 958, 955, 55, 0, 54, 0, 613, 618, - 0, 711, 910, 0, 0, 235, 0, 0, 0, 0, - 289, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 0, 306, 307, 0, 0, 0, 0, 0, 255, 0, - 250, 0, 390, 0, 541, 0, 580, 533, 505, 506, - 507, 489, 490, 510, 511, 512, 513, 514, 531, 492, - 493, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 532, 486, 487, - 488, 501, 502, 503, 504, 498, 499, 500, 0, 483, - 491, 508, 509, 494, 495, 496, 497, 479, 321, 745, - 747, 0, 0, 739, 740, 741, 742, 743, 744, 732, - 733, 737, 738, 734, 735, 736, 0, 723, 724, 727, - 728, 729, 730, 731, 718, 0, 662, 0, 352, 379, - 380, 381, 382, 383, 384, 371, 344, 345, 346, 336, - 0, 0, 0, 788, 0, 789, 0, 764, 0, 759, - 862, 0, 865, 0, 854, 932, 0, 930, 928, 922, - 926, 927, 0, 919, 924, 925, 923, 915, 964, 965, - 966, 967, 957, 52, 57, 0, 617, 0, 240, 242, - 282, 284, 286, 288, 303, 304, 305, 302, 309, 311, - 313, 315, 317, 253, 393, 544, 583, 485, 482, 0, - 0, 0, 0, 721, 726, 665, 355, 781, 782, 783, - 780, 785, 787, 0, 792, 762, 864, 867, 0, 0, - 0, 921, 918, 56, 620, 714, 484, 0, 0, 749, - 750, 725, 821, 824, 826, 828, 820, 819, 818, 0, - 811, 814, 815, 816, 817, 797, 0, 793, 794, 0, - 929, 0, 920, 746, 748, 0, 0, 0, 0, 813, - 810, 0, 791, 796, 0, 931, 0, 0, 0, 0, - 812, 807, 806, 802, 804, 805, 0, 799, 803, 795, - 937, 0, 934, 823, 822, 825, 827, 830, 0, 801, - 798, 0, 936, 933, 835, 0, 831, 832, 0, 800, - 947, 0, 0, 0, 952, 0, 939, 942, 943, 944, - 945, 946, 935, 0, 829, 834, 808, 0, 0, 0, - 0, 0, 941, 938, 847, 849, 846, 840, 842, 844, - 845, 0, 837, 841, 843, 833, 0, 949, 950, 951, - 0, 940, 0, 0, 839, 836, 948, 953, 0, 0, - 838, 848, 850 + 0, 0, 256, 231, 244, 0, 246, 251, 0, 394, + 399, 555, 543, 550, 594, 584, 589, 0, 483, 488, + 330, 327, 730, 727, 724, 676, 666, 671, 0, 356, + 361, 0, 0, 0, 0, 0, 0, 380, 377, 0, + 0, 0, 345, 342, 0, 0, 0, 0, 0, 0, + 0, 773, 761, 0, 763, 768, 0, 0, 0, 0, + 863, 860, 877, 0, 924, 921, 0, 0, 0, 0, + 966, 963, 55, 0, 54, 0, 621, 626, 0, 719, + 918, 0, 0, 235, 0, 0, 0, 0, 290, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 0, 307, + 308, 0, 0, 0, 0, 0, 0, 255, 0, 250, + 0, 398, 0, 549, 0, 588, 541, 513, 514, 515, + 497, 498, 518, 519, 520, 521, 522, 539, 500, 501, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 540, 494, 495, 496, + 509, 510, 511, 512, 506, 507, 508, 0, 491, 499, + 516, 517, 502, 503, 504, 505, 487, 329, 753, 755, + 0, 0, 747, 748, 749, 750, 751, 752, 740, 741, + 745, 746, 742, 743, 744, 0, 731, 732, 735, 736, + 737, 738, 739, 726, 0, 670, 0, 360, 387, 388, + 389, 390, 391, 392, 379, 352, 353, 354, 344, 0, + 0, 0, 796, 0, 797, 0, 772, 0, 767, 870, + 0, 873, 0, 862, 940, 0, 938, 936, 930, 934, + 935, 0, 927, 932, 933, 931, 923, 972, 973, 974, + 975, 965, 52, 57, 0, 625, 0, 240, 242, 283, + 285, 287, 289, 304, 305, 306, 303, 310, 312, 314, + 316, 318, 325, 253, 401, 552, 591, 493, 490, 0, + 0, 0, 0, 729, 734, 673, 363, 789, 790, 791, + 788, 793, 795, 0, 800, 770, 872, 875, 0, 0, + 0, 929, 926, 56, 628, 722, 492, 0, 0, 757, + 758, 733, 829, 832, 834, 836, 828, 827, 826, 0, + 819, 822, 823, 824, 825, 805, 0, 801, 802, 0, + 937, 0, 928, 754, 756, 0, 0, 0, 0, 821, + 818, 0, 799, 804, 0, 939, 0, 0, 0, 0, + 820, 815, 814, 810, 812, 813, 0, 807, 811, 803, + 945, 0, 942, 831, 830, 833, 835, 838, 0, 809, + 806, 0, 944, 941, 843, 0, 839, 840, 0, 808, + 955, 0, 0, 0, 960, 0, 947, 950, 951, 952, + 953, 954, 943, 0, 837, 842, 816, 0, 0, 0, + 0, 0, 949, 946, 855, 857, 854, 848, 850, 852, + 853, 0, 845, 849, 851, 841, 0, 957, 958, 959, + 0, 948, 0, 0, 847, 844, 956, 961, 0, 0, + 846, 856, 858 }; const short Dhcp4Parser::yypgoto_[] = { - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -59, -1369, -617, -1369, 553, - -1369, -1369, -1369, -1369, -1369, -1369, -640, -1369, -1369, -1369, - -67, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 540, 754, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -59, -1377, -623, -1377, 512, + -1377, -1377, -1377, -1377, -1377, -1377, -639, -1377, -1377, -1377, + -67, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 509, 711, 16, 31, 33, -26, 84, 86, 87, 89, 91, 92, - -1369, -1369, -1369, -1369, 94, -1369, -1369, 97, 102, -13, - 13, 41, 51, -1369, -1369, 53, -1369, 56, -1369, 59, - 104, 64, -1369, -1369, 66, 69, 74, 76, 79, -1369, - 81, -1369, 105, -1369, -1369, -1369, -1369, -1369, 43, -1369, - -1369, -1369, 535, 752, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 260, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, 463, -1369, 223, -1369, -738, 239, -1369, -1369, - -1368, -1369, -1363, -1369, -1369, -1369, -1369, -63, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -770, -1369, -769, -1369, -766, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 224, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, 201, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, 219, -1369, -1369, -1369, 220, 711, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 216, -1369, -1369, -1369, - -1369, -1369, -1369, -1052, -1369, -1369, -1369, 241, -1369, -1369, - -1369, 248, 753, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1050, -1369, -29, -1369, -18, -1369, -4, -1369, 5, - -1369, 107, 110, 112, -1369, -1369, -1369, -1369, -1369, 235, - -1369, -1369, -10, -60, -1369, -1369, -1369, -1369, -1369, 250, - -1369, -1369, -1369, 253, -1369, 730, -1369, -34, -1369, -1369, - -1369, -1369, -1369, -27, -1369, -1369, -1369, -1369, -1369, -32, - -1369, -1369, -1369, 251, -1369, -1369, -1369, 255, -1369, 735, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, 196, -1369, -1369, -1369, 197, 766, - -1369, -1369, -1369, -44, -1369, 3, -1369, -56, -1369, -1369, - -1369, 264, -1369, -1369, -1369, 254, -1369, 757, -48, -1369, - -7, -1369, 15, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1049, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 263, -1369, - -1369, -1369, 10, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, 222, -1369, 236, - 242, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -36, -1369, -1369, -58, -1369, -1369, - -1369, -1369, -1369, -30, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -83, -1369, -1369, -111, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 244, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, 567, 760, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, 615, 767, -1369, -1369, - -1369, -1369, -1369, -1369, 243, -1369, -1369, 22, -1369, -1369, - -1369, -1369, -1369, -1369, -41, -1369, -1369, -78, -1369, -1369, - -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 256, -1369, - -1369, -1369, -1369 + -1377, -1377, -1377, -1377, 94, -1377, -1377, 97, 102, -13, + 13, 41, 51, -1377, -1377, 53, -1377, 56, -1377, 59, + 104, 64, -1377, -1377, 66, 69, 74, 76, 79, -1377, + 81, -1377, 105, -1377, -1377, -1377, -1377, -1377, 43, -1377, + -1377, -1377, 517, 726, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, 220, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, 431, -1377, 202, -1377, -738, 210, -1377, -1377, + -1376, -1377, -1373, -1377, -1377, -1377, -1377, -63, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -770, -1377, -769, -1377, -766, -1377, -1377, + -1377, 108, -1377, -1377, -1377, -1377, -1377, -1377, 195, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, 168, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, 188, -1377, -1377, -1377, 189, + 690, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 183, -1377, + -1377, -1377, -1377, -1377, -1377, -1060, -1377, -1377, -1377, 212, + -1377, -1377, -1377, 217, 735, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1058, -1377, -29, -1377, -18, -1377, -4, + -1377, 5, -1377, 107, 110, 112, -1377, -1377, -1377, -1377, + -1377, 213, -1377, -1377, -40, -60, -1377, -1377, -1377, -1377, + -1377, 216, -1377, -1377, -1377, 222, -1377, 713, -1377, -34, + -1377, -1377, -1377, -1377, -1377, -27, -1377, -1377, -1377, -1377, + -1377, -32, -1377, -1377, -1377, 227, -1377, -1377, -1377, 223, + -1377, 712, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, 167, -1377, -1377, -1377, + 161, 748, -1377, -1377, -1377, -44, -1377, 3, -1377, -56, + -1377, -1377, -1377, 218, -1377, -1377, -1377, 226, -1377, 739, + -48, -1377, -7, -1377, 15, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1057, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + 230, -1377, -1377, -1377, -28, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 197, + -1377, 203, 206, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -78, -1377, -1377, -101, + -1377, -1377, -1377, -1377, -1377, -68, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -126, -1377, -1377, + -149, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 209, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 539, + 734, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, 584, 750, + -1377, -1377, -1377, -1377, -1377, -1377, 214, -1377, -1377, -17, + -1377, -1377, -1377, -1377, -1377, -1377, -89, -1377, -1377, -116, + -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, -1377, + 231, -1377, -1377, -1377, -1377 }; const short @@ -5844,8 +5905,8 @@ namespace isc { namespace dhcp { { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 776, - 82, 83, 39, 64, 79, 80, 793, 1016, 1125, 1126, - 868, 41, 66, 85, 458, 86, 43, 67, 160, 161, + 82, 83, 39, 64, 79, 80, 793, 1023, 1133, 1134, + 874, 41, 66, 85, 458, 86, 43, 67, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 486, 174, 175, 506, 176, 177, 178, 179, 180, 181, 182, 492, 762, 183, 493, 184, 494, 185, @@ -5853,637 +5914,653 @@ namespace isc { namespace dhcp { 193, 526, 194, 195, 196, 197, 198, 199, 200, 201, 202, 462, 241, 242, 45, 68, 243, 535, 244, 536, 796, 245, 537, 799, 246, 247, 248, 249, 203, 472, - 204, 463, 842, 843, 844, 1028, 845, 1029, 205, 473, - 206, 474, 896, 897, 898, 1057, 869, 870, 871, 1032, - 872, 1033, 873, 1034, 874, 1035, 875, 876, 574, 877, - 878, 879, 880, 881, 882, 883, 884, 885, 886, 1046, - 1307, 887, 888, 889, 1049, 890, 1050, 891, 1051, 892, - 1052, 893, 1053, 207, 514, 920, 921, 922, 923, 924, - 925, 926, 208, 520, 956, 957, 958, 959, 960, 209, - 517, 935, 936, 937, 1080, 59, 75, 422, 423, 424, - 589, 425, 590, 210, 518, 944, 945, 946, 947, 948, - 949, 950, 951, 211, 502, 900, 901, 902, 1060, 47, - 69, 295, 296, 297, 548, 298, 544, 299, 545, 300, - 546, 301, 549, 302, 554, 303, 551, 304, 552, 305, - 553, 212, 213, 214, 309, 215, 508, 912, 913, 914, - 1069, 1208, 1209, 216, 503, 53, 72, 904, 905, 906, - 1063, 55, 73, 383, 384, 385, 386, 387, 388, 389, - 573, 390, 577, 391, 576, 392, 393, 578, 394, 217, - 504, 908, 909, 910, 1066, 57, 74, 406, 407, 408, - 409, 410, 582, 411, 412, 413, 414, 415, 416, 586, - 311, 547, 1018, 1019, 1020, 1127, 49, 70, 341, 342, - 343, 558, 344, 218, 509, 219, 510, 220, 516, 931, - 932, 933, 1077, 51, 71, 359, 360, 361, 221, 467, - 222, 468, 223, 469, 365, 563, 366, 564, 367, 565, - 368, 567, 369, 566, 370, 569, 371, 568, 372, 562, - 318, 555, 1022, 1023, 1130, 224, 515, 928, 929, 1074, - 1236, 1237, 1238, 1239, 1240, 1319, 1241, 1320, 1242, 1243, - 225, 226, 521, 227, 522, 986, 987, 988, 1105, 976, - 977, 978, 1096, 1330, 979, 1097, 980, 1098, 981, 982, - 983, 1102, 1366, 1367, 1368, 1381, 1396, 1397, 1398, 1408, - 984, 1100, 1359, 1360, 1361, 1375, 1404, 1362, 1376, 1363, - 1377, 1364, 1378, 1415, 1416, 1417, 1433, 1451, 1452, 1453, - 1462, 1454, 1463, 228, 523, 995, 996, 997, 998, 1109, - 999, 1000, 1111, 229, 524, 61, 76, 437, 438, 439, - 440, 594, 441, 442, 596, 443, 444, 445, 599, 833, - 446, 600, 230, 461, 63, 77, 449, 450, 451, 603, - 452, 231, 530, 1003, 1004, 1115, 1282, 1283, 1284, 1285, - 1340, 1286, 1338, 1401, 1402, 1411, 1425, 1426, 1427, 1437, - 1428, 1429, 1430, 1431, 1441, 232, 531, 1010, 1011, 1012, - 1013, 1014, 1015 + 204, 463, 842, 843, 844, 1035, 845, 1036, 205, 473, + 206, 474, 903, 904, 905, 1065, 875, 876, 877, 1039, + 878, 1040, 879, 1041, 880, 1042, 881, 882, 574, 883, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 1053, + 1316, 893, 894, 895, 1056, 896, 1057, 897, 1058, 898, + 1059, 899, 1060, 900, 1061, 207, 514, 927, 928, 929, + 930, 931, 932, 933, 208, 520, 963, 964, 965, 966, + 967, 209, 517, 942, 943, 944, 1088, 59, 75, 422, + 423, 424, 589, 425, 590, 210, 518, 951, 952, 953, + 954, 955, 956, 957, 958, 211, 502, 907, 908, 909, + 1068, 47, 69, 295, 296, 297, 548, 298, 544, 299, + 545, 300, 546, 301, 549, 302, 554, 303, 551, 304, + 552, 305, 553, 212, 213, 214, 309, 215, 508, 919, + 920, 921, 1077, 1217, 1218, 216, 503, 53, 72, 911, + 912, 913, 1071, 55, 73, 383, 384, 385, 386, 387, + 388, 389, 573, 390, 577, 391, 576, 392, 393, 578, + 394, 217, 504, 915, 916, 917, 1074, 57, 74, 406, + 407, 408, 409, 410, 582, 411, 412, 413, 414, 415, + 416, 586, 311, 547, 1025, 1026, 1027, 1135, 49, 70, + 341, 342, 343, 558, 344, 218, 509, 219, 510, 220, + 516, 938, 939, 940, 1085, 51, 71, 359, 360, 361, + 221, 467, 222, 468, 223, 469, 365, 563, 366, 564, + 367, 565, 368, 567, 369, 566, 370, 569, 371, 568, + 372, 562, 318, 555, 1029, 1030, 1138, 224, 515, 935, + 936, 1082, 1245, 1246, 1247, 1248, 1249, 1329, 1250, 1330, + 1251, 1252, 225, 226, 521, 227, 522, 993, 994, 995, + 1113, 983, 984, 985, 1104, 1340, 986, 1105, 987, 1106, + 988, 989, 990, 1110, 1376, 1377, 1378, 1391, 1406, 1407, + 1408, 1418, 991, 1108, 1369, 1370, 1371, 1385, 1414, 1372, + 1386, 1373, 1387, 1374, 1388, 1425, 1426, 1427, 1443, 1461, + 1462, 1463, 1472, 1464, 1473, 228, 523, 1002, 1003, 1004, + 1005, 1117, 1006, 1007, 1119, 229, 524, 61, 76, 437, + 438, 439, 440, 594, 441, 442, 596, 443, 444, 445, + 599, 833, 446, 600, 230, 461, 63, 77, 449, 450, + 451, 603, 452, 231, 530, 1010, 1011, 1123, 1291, 1292, + 1293, 1294, 1350, 1295, 1348, 1411, 1412, 1421, 1435, 1436, + 1437, 1447, 1438, 1439, 1440, 1441, 1451, 232, 531, 1017, + 1018, 1019, 1020, 1021, 1022 }; const short Dhcp4Parser::yytable_[] = { 159, 240, 264, 321, 355, 78, 381, 402, 421, 434, - 382, 403, 373, 314, 971, 972, 894, 1199, 973, 1200, - 1216, 315, 831, 362, 250, 312, 345, 357, 28, 395, - 417, 29, 435, 30, 375, 31, 40, 310, 340, 356, - 404, 336, 775, 268, 135, 136, 42, 405, 459, 135, - 136, 44, 337, 460, 135, 136, 278, 322, 806, 807, - 808, 46, 316, 81, 363, 1447, 338, 812, 419, 420, - 1448, 251, 313, 346, 358, 339, 396, 418, 375, 436, - 447, 448, 279, 323, 317, 265, 364, 48, 826, 952, - 953, 954, 757, 758, 759, 760, 1447, 50, 135, 136, - 266, 1448, 267, 1072, 419, 420, 1073, 989, 990, 991, - 280, 324, 294, 1352, 775, 1391, 847, 848, 52, 533, - 281, 325, 282, 326, 534, 283, 327, 542, 284, 328, - 129, 761, 543, 286, 329, 287, 330, 556, 288, 331, - 797, 798, 557, 289, 332, 290, 333, 54, 291, 334, - 292, 335, 158, 269, 560, 270, 271, 992, 272, 561, - 273, 274, 158, 275, 591, 601, 276, 158, 84, 592, - 602, 277, 605, 285, 293, 533, 306, 606, 605, 307, - 1025, 308, 453, 1026, 542, 1275, 56, 1276, 1277, 1027, - 58, 135, 136, 135, 136, 233, 234, 832, 1075, 235, - 60, 1076, 236, 237, 238, 239, 1005, 1006, 1007, 1008, - 1030, 158, 1054, 1054, 454, 1031, 87, 1055, 1056, 88, - 1089, 1094, 456, 158, 1420, 1090, 1095, 1421, 1422, 1423, - 1424, 89, 794, 795, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 1353, 1354, 1355, 1103, 1112, - 1444, 1445, 1116, 1104, 1113, 1117, 455, 32, 33, 34, - 35, 915, 916, 917, 918, 1199, 919, 1200, 1216, 62, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 135, 136, - 601, 129, 130, 1122, 158, 1114, 158, 1412, 1123, 457, - 1413, 1054, 374, 131, 132, 133, 1313, 556, 570, 1159, - 134, 1317, 1314, 135, 136, 571, 1318, 464, 137, 138, - 139, 140, 141, 971, 972, 971, 972, 973, 591, 973, - 1103, 142, 465, 1326, 466, 1335, 470, 93, 94, 95, - 1341, 143, 471, 560, 144, 1342, 840, 841, 1344, 1379, - 1409, 145, 146, 1442, 1380, 1410, 147, 148, 1443, 1464, - 375, 475, 376, 377, 1465, 476, 477, 378, 379, 380, - 478, 93, 94, 95, 96, 149, 1304, 1305, 1306, 150, - 135, 136, 1327, 1328, 1329, 607, 608, 938, 939, 940, - 941, 942, 943, 479, 151, 152, 153, 154, 155, 156, - 480, 158, 130, 481, 101, 102, 103, 482, 157, 375, - 397, 376, 377, 398, 399, 400, 483, 769, 770, 771, - 772, 484, 485, 135, 136, 487, 158, 488, 489, 135, - 136, 490, 347, 491, 495, 129, 130, 375, 401, 496, - 497, 498, 348, 349, 350, 351, 352, 353, 354, 499, - 500, 501, 505, 511, 512, 513, 159, 135, 136, 519, - 527, 528, 529, 532, 538, 240, 539, 540, 541, 1219, - 1220, 1221, 1222, 550, 559, 572, 575, 579, 581, 264, - 609, 583, 584, 321, 580, 585, 588, 587, 250, 593, - 314, 595, 597, 158, 355, 598, 604, 610, 315, 611, - 612, 614, 312, 613, 381, 615, 345, 616, 382, 617, - 618, 402, 619, 362, 310, 403, 620, 357, 340, 621, - 268, 336, 622, 623, 434, 624, 630, 395, 631, 356, - 632, 625, 337, 278, 417, 251, 158, 322, 636, 316, - 633, 626, 158, 642, 404, 643, 338, 435, 627, 313, - 628, 405, 629, 346, 363, 339, 634, 639, 635, 279, - 644, 317, 265, 323, 358, 637, 638, 652, 648, 640, - 158, 653, 654, 656, 396, 641, 364, 266, 645, 267, - 657, 418, 646, 651, 647, 649, 650, 280, 658, 294, - 655, 324, 135, 136, 436, 659, 660, 281, 661, 282, - 664, 325, 283, 326, 662, 284, 327, 663, 665, 328, - 286, 666, 287, 667, 329, 288, 330, 668, 669, 331, - 289, 670, 290, 671, 332, 291, 333, 292, 672, 334, - 269, 335, 270, 271, 673, 272, 674, 273, 274, 675, - 275, 677, 676, 276, 678, 679, 680, 1345, 277, 681, - 285, 293, 683, 306, 684, 834, 307, 685, 308, 426, - 427, 428, 429, 430, 431, 432, 433, 686, 687, 159, - 688, 240, 689, 691, 692, 693, 836, 846, 847, 848, - 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 694, 695, 250, 861, 862, 863, 864, 865, - 866, 867, 696, 697, 698, 158, 955, 970, 699, 700, - 434, 863, 864, 865, 1009, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 701, 961, - 974, 702, 993, 435, 704, 375, 705, 707, 708, 709, - 710, 251, 711, 712, 713, 714, 91, 92, 93, 94, - 95, 96, 716, 717, 718, 719, 720, 721, 722, 724, - 725, 726, 727, 728, 730, 731, 733, 734, 735, 135, - 136, 736, 737, 739, 738, 740, 962, 975, 743, 994, - 436, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 742, 745, 746, 755, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 747, 252, - 253, 254, 748, 130, 963, 749, 750, 751, 964, 965, - 966, 967, 753, 754, 752, 132, 133, 765, 968, 969, - 756, 763, 255, 764, 135, 136, 256, 257, 258, 137, - 138, 139, 766, 259, 260, 261, 767, 768, 774, 30, - 262, 777, 142, 115, 116, 117, 118, 119, 120, 121, - 263, 123, 124, 125, 126, 778, 779, 780, 158, 781, - 782, 130, 783, 784, 785, 786, 790, 787, 788, 791, - 789, 792, 158, 800, 133, 801, 802, 803, 804, 805, - 809, 319, 135, 136, 810, 811, 813, 814, 815, 816, - 835, 259, 260, 261, 817, 818, 819, 820, 262, 320, - 821, 822, 823, 824, 825, 151, 152, 827, 829, 895, - 899, 830, 903, 907, 911, 927, 930, 934, 985, 1002, - 1017, 1036, 1037, 1038, 1039, 1021, 1040, 1041, 1042, 1043, - 1044, 1045, 1047, 1048, 1059, 1124, 1058, 158, 1061, 1062, - 1064, 1065, 1068, 1067, 1071, 1140, 1070, 1079, 1078, 1081, - 1082, 1106, 1083, 1084, 1085, 1086, 1087, 1088, 1091, 1092, - 1093, 1099, 1101, 151, 152, 1107, 1128, 1108, 1110, 1118, - 1119, 1120, 1121, 264, 1129, 1298, 381, 1131, 1132, 402, - 382, 1133, 1167, 403, 314, 1134, 1198, 1223, 1136, 1137, - 355, 1228, 315, 421, 1229, 158, 312, 1138, 1139, 395, - 1141, 1213, 417, 1142, 1143, 1211, 1233, 955, 310, 362, - 1231, 1150, 404, 357, 268, 1144, 970, 1210, 970, 405, - 1201, 1145, 1230, 1171, 1146, 356, 1147, 278, 1278, 1148, - 961, 1202, 1279, 316, 1149, 1009, 1181, 1151, 1153, 974, - 321, 974, 1214, 313, 1154, 1203, 396, 1234, 993, 418, - 363, 1280, 1212, 279, 1204, 317, 265, 1232, 1152, 1155, - 358, 1156, 1182, 345, 1215, 1168, 1157, 1249, 1250, 1235, - 1224, 266, 364, 267, 1251, 340, 1252, 962, 336, 1253, - 1169, 280, 1170, 294, 1260, 1225, 975, 1226, 975, 337, - 1183, 281, 1197, 282, 322, 994, 283, 1227, 1281, 284, - 1184, 1254, 1185, 338, 286, 1186, 287, 1256, 1187, 288, - 346, 1257, 339, 1189, 289, 1190, 290, 1261, 1191, 291, - 323, 292, 1258, 1192, 269, 1193, 270, 271, 1194, 272, - 1195, 273, 274, 1172, 275, 1173, 1174, 276, 1175, 1262, - 1176, 1177, 277, 1178, 285, 293, 1179, 306, 324, 1264, - 307, 1180, 308, 1188, 1196, 1265, 1205, 1266, 325, 1206, - 326, 1207, 1271, 327, 1273, 1263, 328, 1293, 1294, 1270, - 1297, 329, 1315, 330, 1321, 1316, 331, 1322, 1272, 1323, - 1324, 332, 1325, 333, 1334, 1333, 334, 1339, 335, 1347, - 1348, 1365, 1369, 1288, 1337, 1289, 1371, 1382, 1383, 1384, - 1386, 1387, 1388, 1389, 1290, 1299, 1300, 1291, 1370, 1301, - 1302, 1303, 1400, 1308, 1309, 1403, 1407, 1310, 1311, 1312, - 1331, 1332, 1336, 1343, 1414, 1418, 1434, 1373, 1435, 1349, - 1167, 1350, 1374, 1385, 1198, 1405, 1406, 1223, 1438, 1436, - 1439, 1228, 1440, 1456, 1229, 1457, 1356, 1458, 1459, 1213, - 1460, 1466, 1467, 1211, 1278, 1468, 1233, 1469, 1279, 1471, - 1231, 1472, 1160, 839, 828, 1210, 837, 682, 1201, 1357, - 1135, 1171, 1230, 1158, 690, 1259, 1218, 1280, 1024, 1202, - 1247, 1248, 732, 1162, 1181, 1255, 1217, 1346, 1161, 703, - 1214, 723, 1356, 1203, 1392, 1164, 1163, 1234, 1393, 1166, - 1212, 1165, 1204, 729, 1295, 1296, 706, 1232, 715, 1269, - 1182, 1245, 1215, 1168, 1351, 1357, 1358, 1394, 1244, 1235, - 1224, 1268, 1392, 1246, 1281, 1267, 1393, 1399, 1169, 1390, - 1170, 1419, 1455, 1470, 1001, 1225, 1274, 1226, 1183, 1287, - 1197, 741, 838, 1372, 1461, 1394, 1446, 1227, 1184, 0, - 1185, 1432, 744, 1186, 0, 0, 1187, 0, 1292, 0, - 0, 1189, 1358, 1190, 1395, 0, 1191, 0, 0, 1449, - 0, 1192, 0, 1193, 0, 0, 1194, 1446, 1195, 0, - 0, 1172, 0, 1173, 1174, 0, 1175, 0, 1176, 1177, - 0, 1178, 1395, 0, 1179, 0, 0, 0, 0, 1180, - 1449, 1188, 1196, 0, 1205, 0, 0, 1206, 0, 1207, - 0, 0, 0, 0, 0, 0, 1450, 91, 92, 93, - 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, + 382, 403, 373, 314, 978, 979, 901, 1208, 980, 1209, + 1225, 315, 831, 362, 250, 312, 345, 357, 28, 395, + 417, 29, 435, 30, 375, 31, 775, 310, 340, 356, + 404, 336, 40, 268, 42, 459, 44, 405, 847, 848, + 460, 46, 337, 533, 135, 136, 278, 322, 534, 806, + 807, 808, 316, 81, 363, 48, 338, 1457, 812, 50, + 1458, 251, 313, 346, 358, 339, 396, 418, 52, 436, + 419, 420, 279, 323, 317, 265, 364, 233, 234, 826, + 54, 235, 447, 448, 236, 237, 238, 239, 1457, 129, + 266, 1458, 267, 757, 758, 759, 760, 1362, 775, 542, + 280, 324, 294, 1430, 543, 1401, 1431, 1432, 1433, 1434, + 281, 325, 282, 326, 1080, 283, 327, 1081, 284, 328, + 56, 135, 136, 286, 329, 287, 330, 1083, 288, 331, + 1084, 374, 761, 289, 332, 290, 333, 556, 291, 334, + 292, 335, 557, 269, 560, 270, 271, 591, 272, 561, + 273, 274, 592, 275, 158, 601, 276, 158, 797, 798, + 602, 277, 605, 285, 293, 533, 306, 606, 58, 307, + 1032, 308, 1012, 1013, 1014, 1015, 840, 841, 1454, 1455, + 605, 135, 136, 419, 420, 1033, 135, 136, 60, 158, + 62, 542, 84, 832, 454, 375, 1034, 376, 377, 135, + 136, 1037, 378, 379, 380, 87, 1038, 453, 88, 945, + 946, 947, 948, 949, 950, 135, 136, 1062, 1124, 456, + 89, 1125, 1063, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 158, 1363, 1364, 1365, 455, 959, + 960, 961, 457, 375, 867, 868, 869, 870, 871, 872, + 1313, 1314, 1315, 32, 33, 34, 35, 1208, 1422, 1209, + 1225, 1423, 464, 135, 136, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 1062, 158, 1097, 129, 130, 1064, 158, + 1098, 1102, 93, 94, 95, 96, 1103, 465, 131, 132, + 133, 1111, 158, 794, 795, 134, 1112, 1168, 135, 136, + 1337, 1338, 1339, 137, 138, 139, 140, 141, 158, 466, + 470, 978, 979, 978, 979, 980, 142, 980, 471, 1120, + 601, 101, 102, 103, 1121, 1122, 143, 570, 475, 144, + 1284, 476, 1285, 1286, 1130, 1062, 145, 146, 477, 1131, + 1323, 147, 148, 922, 923, 924, 925, 478, 926, 479, + 556, 571, 129, 130, 375, 1324, 158, 480, 1327, 572, + 149, 481, 591, 1328, 150, 607, 608, 1336, 1111, 580, + 135, 136, 1351, 1345, 135, 136, 482, 1352, 483, 151, + 152, 153, 154, 155, 156, 484, 1228, 1229, 1230, 1231, + 135, 136, 485, 157, 846, 847, 848, 849, 850, 851, + 852, 853, 854, 855, 856, 857, 858, 859, 860, 487, + 488, 158, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 489, 490, 375, 397, 376, + 377, 398, 399, 400, 491, 495, 159, 426, 427, 428, + 429, 430, 431, 432, 433, 240, 560, 135, 136, 496, + 497, 1354, 1389, 996, 997, 998, 401, 1390, 375, 264, + 1419, 1452, 1474, 321, 498, 1420, 1453, 1475, 250, 499, + 314, 500, 501, 505, 355, 511, 512, 513, 315, 519, + 527, 528, 312, 158, 381, 529, 345, 158, 382, 532, + 538, 402, 539, 362, 310, 403, 540, 357, 340, 541, + 268, 336, 550, 999, 434, 559, 575, 395, 579, 356, + 581, 587, 337, 278, 417, 251, 583, 322, 584, 316, + 769, 770, 771, 772, 404, 585, 338, 435, 588, 313, + 593, 405, 595, 346, 363, 339, 597, 598, 604, 279, + 609, 317, 265, 323, 358, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 396, 619, 364, 266, 620, 267, + 158, 418, 621, 622, 623, 624, 625, 280, 626, 294, + 636, 324, 631, 627, 436, 628, 629, 281, 632, 282, + 630, 325, 283, 326, 634, 284, 327, 642, 633, 328, + 286, 158, 287, 643, 329, 288, 330, 644, 635, 331, + 289, 637, 290, 647, 332, 291, 333, 292, 638, 334, + 269, 335, 270, 271, 652, 272, 639, 273, 274, 640, + 275, 648, 641, 276, 645, 646, 651, 649, 277, 650, + 285, 293, 653, 306, 654, 655, 307, 1355, 308, 656, + 657, 658, 659, 660, 661, 664, 665, 662, 663, 159, + 666, 240, 667, 668, 669, 670, 836, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 671, 672, 673, 674, 250, 675, 676, 677, 678, 679, + 680, 681, 683, 684, 685, 688, 962, 977, 686, 691, + 434, 687, 689, 692, 1016, 693, 722, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 704, 707, 705, 968, + 981, 708, 1000, 435, 709, 710, 711, 712, 713, 714, + 716, 251, 91, 92, 93, 94, 95, 96, 717, 718, + 719, 720, 721, 724, 725, 728, 726, 727, 93, 94, + 95, 730, 731, 734, 735, 733, 736, 863, 864, 865, + 739, 737, 740, 738, 742, 743, 969, 982, 745, 1001, + 436, 750, 746, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 747, 748, 749, 751, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 752, 252, 253, 254, 753, 130, 754, 755, 765, 756, + 763, 764, 766, 767, 768, 774, 30, 132, 133, 130, + 777, 135, 136, 778, 255, 779, 135, 136, 256, 257, + 258, 137, 138, 139, 780, 259, 260, 261, 781, 782, + 135, 136, 262, 783, 142, 784, 785, 786, 788, 347, + 787, 789, 263, 790, 791, 792, 800, 803, 801, 348, + 349, 350, 351, 352, 353, 354, 970, 802, 804, 805, + 971, 972, 973, 974, 809, 810, 811, 835, 813, 814, + 975, 976, 902, 834, 906, 910, 914, 815, 918, 934, + 816, 817, 818, 937, 819, 941, 992, 820, 1009, 821, + 822, 823, 824, 825, 827, 829, 830, 151, 152, 1024, + 1028, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1054, 1055, 1067, 1149, 1066, 1070, 1069, 1072, 1073, + 1075, 1076, 1079, 1078, 158, 1087, 1086, 1089, 1090, 158, + 1091, 1092, 1093, 1094, 1095, 1096, 1099, 1100, 1101, 1107, + 1109, 1116, 1115, 158, 1114, 1118, 1126, 1127, 1128, 1129, + 1137, 1413, 1136, 1303, 1132, 1140, 1139, 1141, 1142, 1144, + 1145, 1146, 1147, 1148, 1158, 1161, 1162, 1163, 1150, 1164, + 1165, 264, 1151, 1152, 381, 1166, 1159, 402, 382, 1153, + 1176, 403, 314, 1154, 1207, 1232, 1269, 1265, 355, 1237, + 315, 421, 1238, 1270, 312, 1155, 1156, 395, 1157, 1222, + 417, 1160, 1258, 1220, 1242, 962, 310, 362, 1240, 1259, + 404, 357, 268, 1260, 977, 1219, 977, 405, 1210, 1261, + 1239, 1180, 1262, 356, 1263, 278, 1287, 1271, 968, 1211, + 1288, 316, 1266, 1016, 1190, 1273, 1274, 981, 321, 981, + 1223, 313, 1267, 1212, 396, 1243, 1000, 418, 363, 1289, + 1221, 279, 1213, 317, 265, 1241, 1272, 1275, 358, 1280, + 1191, 345, 1224, 1177, 1279, 1281, 1282, 1244, 1233, 266, + 364, 267, 1297, 340, 1298, 969, 336, 1302, 1178, 280, + 1179, 294, 1306, 1234, 982, 1235, 982, 337, 1192, 281, + 1206, 282, 322, 1001, 283, 1236, 1290, 284, 1193, 1299, + 1194, 338, 286, 1195, 287, 1325, 1196, 288, 346, 1326, + 339, 1198, 289, 1199, 290, 1300, 1200, 291, 323, 292, + 1307, 1201, 269, 1202, 270, 271, 1203, 272, 1204, 273, + 274, 1181, 275, 1182, 1183, 276, 1184, 1331, 1185, 1186, + 277, 1187, 285, 293, 1188, 306, 324, 1332, 307, 1189, + 308, 1197, 1205, 1333, 1214, 1334, 325, 1215, 326, 1216, + 1308, 327, 1335, 1343, 328, 1344, 1349, 1357, 1358, 329, + 1379, 330, 1375, 1381, 331, 1393, 1392, 1309, 1394, 332, + 1396, 333, 1397, 1398, 334, 1399, 335, 1410, 1310, 1311, + 1417, 1424, 1428, 1347, 1445, 1444, 1312, 1448, 1449, 1450, + 1466, 1317, 1470, 1478, 1318, 1319, 1320, 1322, 1479, 1341, + 1342, 1346, 1353, 828, 682, 1383, 1359, 1360, 1380, 1467, + 1384, 1395, 1415, 1416, 1446, 837, 1468, 1143, 1469, 1476, + 1176, 1477, 1481, 1482, 1207, 839, 1031, 1232, 690, 1169, + 1268, 1237, 1167, 1321, 1238, 1227, 1366, 1256, 1257, 1222, + 1264, 732, 1171, 1220, 1287, 1170, 1242, 1356, 1288, 1173, + 1240, 703, 1226, 1172, 723, 1219, 1304, 1174, 1210, 1367, + 729, 1180, 1239, 1175, 1305, 1255, 1361, 1289, 706, 1211, + 715, 1254, 1278, 1253, 1190, 1409, 1277, 1276, 1429, 1465, + 1223, 1400, 1366, 1212, 1402, 1480, 1008, 1243, 1403, 1283, + 1221, 838, 1213, 1442, 1382, 741, 1471, 1241, 1296, 0, + 1191, 0, 1224, 1177, 0, 1367, 1368, 1404, 0, 1244, + 1233, 0, 1402, 0, 1290, 744, 1403, 0, 1178, 0, + 1179, 1301, 0, 0, 0, 1234, 0, 1235, 1192, 0, + 1206, 0, 0, 0, 0, 1404, 1456, 1236, 1193, 0, + 1194, 0, 0, 1195, 0, 0, 1196, 0, 0, 0, + 0, 1198, 1368, 1199, 1405, 0, 1200, 0, 0, 1459, + 0, 1201, 0, 1202, 0, 0, 1203, 1456, 1204, 0, + 0, 1181, 0, 1182, 1183, 0, 1184, 0, 1185, 1186, + 0, 1187, 1405, 0, 1188, 0, 0, 0, 0, 1189, + 1459, 1197, 1205, 0, 1214, 0, 0, 1215, 0, 1216, + 91, 92, 93, 94, 95, 96, 1460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1450, 0, 0, - 0, 0, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 0, 0, 0, 0, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 0, 0, 0, 0, 130, 375, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 0, 0, - 0, 0, 0, 0, 0, 135, 136, 0, 257, 0, - 137, 138, 139, 0, 259, 260, 261, 0, 0, 0, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1460, 0, 0, + 0, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 0, 0, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 0, + 0, 0, 0, 130, 375, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 132, 133, 0, 0, 0, + 0, 0, 0, 0, 135, 136, 0, 257, 0, 137, + 138, 139, 0, 259, 260, 261, 0, 0, 0, 0, + 262, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 263, 123, 124, 125, 126, 0, 0, 0, 0, 0, + 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, + 0, 319, 135, 136, 0, 0, 0, 0, 0, 0, + 0, 259, 260, 261, 0, 0, 0, 0, 262, 320, + 0, 0, 0, 0, 0, 151, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 151, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 151, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 158 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 64, 73, 74, 75, 76, - 73, 74, 72, 69, 784, 784, 754, 1069, 784, 1069, - 1069, 69, 18, 71, 68, 69, 70, 71, 0, 73, - 74, 5, 76, 7, 98, 9, 7, 69, 70, 71, - 74, 70, 659, 69, 118, 119, 7, 74, 3, 118, - 119, 7, 70, 8, 118, 119, 69, 70, 698, 699, - 700, 7, 69, 231, 71, 1433, 70, 707, 147, 148, - 1433, 68, 69, 70, 71, 70, 73, 74, 98, 76, - 12, 13, 69, 70, 69, 69, 71, 7, 728, 158, - 159, 160, 195, 196, 197, 198, 1464, 7, 118, 119, - 69, 1464, 69, 3, 147, 148, 6, 181, 182, 183, - 69, 70, 69, 40, 731, 179, 41, 42, 7, 3, - 69, 70, 69, 70, 8, 69, 70, 3, 69, 70, - 96, 234, 8, 69, 70, 69, 70, 3, 69, 70, - 20, 21, 8, 69, 70, 69, 70, 7, 69, 70, - 69, 70, 231, 69, 3, 69, 69, 231, 69, 8, - 69, 69, 231, 69, 3, 3, 69, 231, 10, 8, - 8, 69, 3, 69, 69, 3, 69, 8, 3, 69, - 8, 69, 6, 8, 3, 205, 7, 207, 208, 8, - 7, 118, 119, 118, 119, 15, 16, 193, 3, 19, - 7, 6, 22, 23, 24, 25, 214, 215, 216, 217, - 3, 231, 3, 3, 3, 8, 11, 8, 8, 14, - 3, 3, 8, 231, 206, 8, 8, 209, 210, 211, - 212, 26, 17, 18, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 172, 173, 174, 3, 3, - 175, 176, 3, 8, 8, 6, 4, 231, 232, 233, - 234, 138, 139, 140, 141, 1317, 143, 1317, 1317, 7, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 118, 119, - 3, 96, 97, 3, 231, 8, 231, 3, 8, 3, - 6, 3, 40, 108, 109, 110, 8, 3, 8, 1057, - 115, 3, 8, 118, 119, 3, 8, 4, 123, 124, - 125, 126, 127, 1103, 1103, 1105, 1105, 1103, 3, 1105, - 3, 136, 4, 8, 4, 8, 4, 32, 33, 34, - 3, 146, 4, 3, 149, 8, 27, 28, 8, 3, - 3, 156, 157, 3, 8, 8, 161, 162, 8, 3, - 98, 4, 100, 101, 8, 4, 4, 105, 106, 107, - 4, 32, 33, 34, 35, 180, 55, 56, 57, 184, - 118, 119, 164, 165, 166, 454, 455, 150, 151, 152, - 153, 154, 155, 4, 199, 200, 201, 202, 203, 204, - 4, 231, 97, 4, 65, 66, 67, 4, 213, 98, - 99, 100, 101, 102, 103, 104, 4, 111, 112, 113, - 114, 4, 4, 118, 119, 4, 231, 4, 4, 118, - 119, 4, 127, 4, 4, 96, 97, 98, 127, 4, - 4, 4, 137, 138, 139, 140, 141, 142, 143, 4, - 4, 4, 4, 4, 4, 4, 533, 118, 119, 4, - 4, 4, 4, 4, 4, 542, 4, 4, 4, 130, - 131, 132, 133, 4, 4, 8, 4, 4, 3, 556, - 231, 4, 4, 560, 8, 4, 3, 8, 542, 4, - 556, 4, 4, 231, 571, 4, 4, 4, 556, 4, - 4, 234, 556, 4, 581, 234, 560, 234, 581, 4, - 4, 588, 4, 571, 556, 588, 232, 571, 560, 234, - 556, 560, 4, 4, 601, 4, 234, 581, 233, 571, - 233, 232, 560, 556, 588, 542, 231, 560, 4, 556, - 233, 232, 231, 4, 588, 4, 560, 601, 232, 556, - 232, 588, 232, 560, 571, 560, 232, 234, 232, 556, - 4, 556, 556, 560, 571, 232, 232, 4, 232, 234, - 231, 4, 4, 4, 581, 234, 571, 556, 234, 556, - 4, 588, 234, 234, 233, 232, 232, 556, 4, 556, - 232, 560, 118, 119, 601, 4, 4, 556, 234, 556, - 4, 560, 556, 560, 234, 556, 560, 234, 4, 560, - 556, 4, 556, 4, 560, 556, 560, 4, 232, 560, - 556, 4, 556, 4, 560, 556, 560, 556, 4, 560, - 556, 560, 556, 556, 4, 556, 4, 556, 556, 4, - 556, 234, 4, 556, 234, 234, 4, 1297, 556, 4, - 556, 556, 4, 556, 4, 194, 556, 4, 556, 185, - 186, 187, 188, 189, 190, 191, 192, 234, 234, 746, - 232, 748, 232, 4, 4, 4, 745, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 4, 4, 748, 58, 59, 60, 61, 62, - 63, 64, 4, 232, 4, 231, 783, 784, 4, 4, - 787, 60, 61, 62, 791, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 4, 783, - 784, 4, 786, 787, 4, 98, 232, 4, 4, 4, - 4, 748, 4, 4, 4, 4, 30, 31, 32, 33, - 34, 35, 4, 4, 232, 4, 4, 4, 234, 4, - 234, 234, 234, 4, 4, 4, 234, 4, 232, 118, - 119, 4, 232, 4, 232, 4, 783, 784, 232, 786, - 787, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 4, 4, 7, 5, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 7, 93, - 94, 95, 7, 97, 163, 7, 231, 231, 167, 168, - 169, 170, 7, 7, 231, 109, 110, 5, 177, 178, - 231, 231, 116, 231, 118, 119, 120, 121, 122, 123, - 124, 125, 5, 127, 128, 129, 5, 231, 5, 7, - 134, 231, 136, 79, 80, 81, 82, 83, 84, 85, - 144, 87, 88, 89, 90, 5, 5, 5, 231, 5, - 7, 97, 7, 7, 5, 7, 5, 7, 231, 7, - 231, 5, 231, 231, 110, 231, 231, 5, 231, 231, - 231, 117, 118, 119, 7, 231, 231, 231, 231, 231, - 5, 127, 128, 129, 231, 231, 231, 231, 134, 135, - 231, 231, 231, 231, 231, 199, 200, 231, 231, 7, - 7, 231, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 4, 4, 4, 4, 145, 4, 4, 4, 4, - 4, 4, 4, 4, 3, 231, 6, 231, 6, 3, - 6, 3, 3, 6, 3, 232, 6, 3, 6, 6, - 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 199, 200, 3, 6, 4, 4, 4, - 4, 4, 4, 1060, 3, 231, 1063, 8, 6, 1066, - 1063, 4, 1069, 1066, 1060, 4, 1069, 1074, 4, 4, - 1077, 1074, 1060, 1080, 1074, 231, 1060, 4, 4, 1063, - 234, 1069, 1066, 232, 234, 1069, 1074, 1094, 1060, 1077, - 1074, 4, 1066, 1077, 1060, 232, 1103, 1069, 1105, 1066, - 1069, 232, 1074, 1069, 232, 1077, 232, 1060, 1115, 232, - 1094, 1069, 1115, 1060, 232, 1122, 1069, 234, 4, 1103, - 1127, 1105, 1069, 1060, 4, 1069, 1063, 1074, 1112, 1066, - 1077, 1115, 1069, 1060, 1069, 1060, 1060, 1074, 232, 4, - 1077, 4, 1069, 1127, 1069, 1069, 4, 232, 232, 1074, - 1074, 1060, 1077, 1060, 232, 1127, 232, 1094, 1127, 232, - 1069, 1060, 1069, 1060, 4, 1074, 1103, 1074, 1105, 1127, - 1069, 1060, 1069, 1060, 1127, 1112, 1060, 1074, 1115, 1060, - 1069, 232, 1069, 1127, 1060, 1069, 1060, 234, 1069, 1060, - 1127, 232, 1127, 1069, 1060, 1069, 1060, 4, 1069, 1060, - 1127, 1060, 232, 1069, 1060, 1069, 1060, 1060, 1069, 1060, - 1069, 1060, 1060, 1069, 1060, 1069, 1069, 1060, 1069, 4, - 1069, 1069, 1060, 1069, 1060, 1060, 1069, 1060, 1127, 4, - 1060, 1069, 1060, 1069, 1069, 234, 1069, 4, 1127, 1069, - 1127, 1069, 4, 1127, 4, 232, 1127, 6, 3, 234, - 4, 1127, 8, 1127, 4, 8, 1127, 4, 232, 8, - 3, 1127, 8, 1127, 5, 7, 1127, 4, 1127, 4, - 4, 7, 4, 234, 1273, 234, 4, 6, 3, 5, - 4, 4, 4, 4, 234, 231, 231, 234, 232, 231, - 231, 231, 7, 231, 231, 171, 5, 231, 231, 231, - 231, 231, 231, 231, 7, 4, 6, 231, 3, 234, - 1317, 234, 231, 231, 1317, 231, 231, 1324, 4, 231, - 4, 1324, 4, 4, 1324, 234, 1333, 232, 232, 1317, - 4, 231, 231, 1317, 1341, 4, 1324, 4, 1341, 231, - 1324, 231, 1059, 748, 731, 1317, 746, 533, 1317, 1333, - 1030, 1317, 1324, 1054, 542, 1094, 1072, 1341, 835, 1317, - 1080, 1082, 591, 1062, 1317, 1089, 1071, 1317, 1060, 556, - 1317, 581, 1379, 1317, 1381, 1065, 1063, 1324, 1381, 1068, - 1317, 1066, 1317, 588, 1127, 1129, 560, 1324, 571, 1107, - 1317, 1077, 1317, 1317, 1324, 1379, 1333, 1381, 1075, 1324, - 1324, 1105, 1409, 1079, 1341, 1103, 1409, 1383, 1317, 1379, - 1317, 1409, 1435, 1464, 787, 1324, 1112, 1324, 1317, 1116, - 1317, 601, 747, 1341, 1442, 1409, 1433, 1324, 1317, -1, - 1317, 1412, 605, 1317, -1, -1, 1317, -1, 1122, -1, - -1, 1317, 1379, 1317, 1381, -1, 1317, -1, -1, 1433, - -1, 1317, -1, 1317, -1, -1, 1317, 1464, 1317, -1, - -1, 1317, -1, 1317, 1317, -1, 1317, -1, 1317, 1317, - -1, 1317, 1409, -1, 1317, -1, -1, -1, -1, 1317, - 1464, 1317, 1317, -1, 1317, -1, -1, 1317, -1, 1317, - -1, -1, -1, -1, -1, -1, 1433, 30, 31, 32, - 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, + 73, 74, 72, 69, 784, 784, 754, 1077, 784, 1077, + 1077, 69, 18, 71, 68, 69, 70, 71, 0, 73, + 74, 5, 76, 7, 104, 9, 659, 69, 70, 71, + 74, 70, 7, 69, 7, 3, 7, 74, 41, 42, + 8, 7, 70, 3, 124, 125, 69, 70, 8, 698, + 699, 700, 69, 237, 71, 7, 70, 1443, 707, 7, + 1443, 68, 69, 70, 71, 70, 73, 74, 7, 76, + 153, 154, 69, 70, 69, 69, 71, 15, 16, 728, + 7, 19, 12, 13, 22, 23, 24, 25, 1474, 102, + 69, 1474, 69, 201, 202, 203, 204, 40, 731, 3, + 69, 70, 69, 212, 8, 185, 215, 216, 217, 218, + 69, 70, 69, 70, 3, 69, 70, 6, 69, 70, + 7, 124, 125, 69, 70, 69, 70, 3, 69, 70, + 6, 40, 240, 69, 70, 69, 70, 3, 69, 70, + 69, 70, 8, 69, 3, 69, 69, 3, 69, 8, + 69, 69, 8, 69, 237, 3, 69, 237, 20, 21, + 8, 69, 3, 69, 69, 3, 69, 8, 7, 69, + 8, 69, 220, 221, 222, 223, 27, 28, 181, 182, + 3, 124, 125, 153, 154, 8, 124, 125, 7, 237, + 7, 3, 10, 199, 3, 104, 8, 106, 107, 124, + 125, 3, 111, 112, 113, 11, 8, 6, 14, 156, + 157, 158, 159, 160, 161, 124, 125, 3, 3, 8, + 26, 6, 8, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 237, 178, 179, 180, 4, 164, + 165, 166, 3, 104, 64, 65, 66, 67, 68, 69, + 55, 56, 57, 237, 238, 239, 240, 1327, 3, 1327, + 1327, 6, 4, 124, 125, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 3, 237, 3, 102, 103, 8, 237, + 8, 3, 32, 33, 34, 35, 8, 4, 114, 115, + 116, 3, 237, 17, 18, 121, 8, 1065, 124, 125, + 170, 171, 172, 129, 130, 131, 132, 133, 237, 4, + 4, 1111, 1111, 1113, 1113, 1111, 142, 1113, 4, 3, + 3, 71, 72, 73, 8, 8, 152, 8, 4, 155, + 211, 4, 213, 214, 3, 3, 162, 163, 4, 8, + 8, 167, 168, 144, 145, 146, 147, 4, 149, 4, + 3, 3, 102, 103, 104, 8, 237, 4, 3, 8, + 186, 4, 3, 8, 190, 454, 455, 8, 3, 8, + 124, 125, 3, 8, 124, 125, 4, 8, 4, 205, + 206, 207, 208, 209, 210, 4, 136, 137, 138, 139, + 124, 125, 4, 219, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 4, + 4, 237, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 4, 4, 104, 105, 106, + 107, 108, 109, 110, 4, 4, 533, 191, 192, 193, + 194, 195, 196, 197, 198, 542, 3, 124, 125, 4, + 4, 8, 3, 187, 188, 189, 133, 8, 104, 556, + 3, 3, 3, 560, 4, 8, 8, 8, 542, 4, + 556, 4, 4, 4, 571, 4, 4, 4, 556, 4, + 4, 4, 556, 237, 581, 4, 560, 237, 581, 4, + 4, 588, 4, 571, 556, 588, 4, 571, 560, 4, + 556, 560, 4, 237, 601, 4, 4, 581, 4, 571, + 3, 8, 560, 556, 588, 542, 4, 560, 4, 556, + 117, 118, 119, 120, 588, 4, 560, 601, 3, 556, + 4, 588, 4, 560, 571, 560, 4, 4, 4, 556, + 237, 556, 556, 560, 571, 4, 4, 4, 4, 240, + 240, 240, 4, 4, 581, 4, 571, 556, 238, 556, + 237, 588, 240, 4, 4, 4, 238, 556, 238, 556, + 4, 560, 239, 238, 601, 238, 238, 556, 239, 556, + 240, 560, 556, 560, 238, 556, 560, 4, 239, 560, + 556, 237, 556, 4, 560, 556, 560, 4, 238, 560, + 556, 238, 556, 239, 560, 556, 560, 556, 238, 560, + 556, 560, 556, 556, 4, 556, 240, 556, 556, 240, + 556, 238, 240, 556, 240, 240, 240, 238, 556, 238, + 556, 556, 4, 556, 4, 238, 556, 1306, 556, 4, + 4, 4, 4, 4, 240, 4, 4, 240, 240, 746, + 4, 748, 4, 4, 238, 4, 745, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 4, 4, 4, 4, 748, 4, 4, 240, 240, 240, + 4, 4, 4, 4, 4, 238, 783, 784, 240, 4, + 787, 240, 238, 4, 791, 4, 240, 4, 4, 4, + 238, 4, 4, 4, 4, 4, 4, 4, 238, 783, + 784, 4, 786, 787, 4, 4, 4, 4, 4, 4, + 4, 748, 30, 31, 32, 33, 34, 35, 4, 238, + 4, 4, 4, 4, 240, 4, 240, 240, 32, 33, + 34, 4, 4, 4, 238, 240, 4, 60, 61, 62, + 4, 238, 4, 238, 4, 238, 783, 784, 4, 786, + 787, 237, 7, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 7, 7, 7, 237, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 237, 99, 100, 101, 7, 103, 7, 5, 5, 237, + 237, 237, 5, 5, 237, 5, 7, 115, 116, 103, + 237, 124, 125, 5, 122, 5, 124, 125, 126, 127, + 128, 129, 130, 131, 5, 133, 134, 135, 5, 7, + 124, 125, 140, 7, 142, 7, 5, 7, 237, 133, + 7, 237, 150, 5, 7, 5, 237, 5, 237, 143, + 144, 145, 146, 147, 148, 149, 169, 237, 237, 237, + 173, 174, 175, 176, 237, 7, 237, 5, 237, 237, + 183, 184, 7, 200, 7, 7, 7, 237, 7, 7, + 237, 237, 237, 7, 237, 7, 7, 237, 7, 237, + 237, 237, 237, 237, 237, 237, 237, 205, 206, 7, + 151, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 3, 240, 6, 3, 6, 6, 3, + 6, 3, 3, 6, 237, 3, 6, 6, 3, 237, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 3, 237, 6, 4, 4, 4, 4, 4, + 3, 177, 6, 3, 237, 6, 8, 4, 4, 4, + 4, 4, 4, 238, 4, 4, 4, 4, 238, 4, + 4, 1068, 240, 238, 1071, 4, 240, 1074, 1071, 238, + 1077, 1074, 1068, 238, 1077, 1082, 4, 240, 1085, 1082, + 1068, 1088, 1082, 4, 1068, 238, 238, 1071, 238, 1077, + 1074, 238, 238, 1077, 1082, 1102, 1068, 1085, 1082, 238, + 1074, 1085, 1068, 238, 1111, 1077, 1113, 1074, 1077, 238, + 1082, 1077, 238, 1085, 238, 1068, 1123, 4, 1102, 1077, + 1123, 1068, 238, 1130, 1077, 4, 240, 1111, 1135, 1113, + 1077, 1068, 238, 1077, 1071, 1082, 1120, 1074, 1085, 1123, + 1077, 1068, 1077, 1068, 1068, 1082, 238, 4, 1085, 4, + 1077, 1135, 1077, 1077, 240, 238, 4, 1082, 1082, 1068, + 1085, 1068, 240, 1135, 240, 1102, 1135, 6, 1077, 1068, + 1077, 1068, 4, 1082, 1111, 1082, 1113, 1135, 1077, 1068, + 1077, 1068, 1135, 1120, 1068, 1082, 1123, 1068, 1077, 240, + 1077, 1135, 1068, 1077, 1068, 8, 1077, 1068, 1135, 8, + 1135, 1077, 1068, 1077, 1068, 240, 1077, 1068, 1135, 1068, + 237, 1077, 1068, 1077, 1068, 1068, 1077, 1068, 1077, 1068, + 1068, 1077, 1068, 1077, 1077, 1068, 1077, 4, 1077, 1077, + 1068, 1077, 1068, 1068, 1077, 1068, 1135, 4, 1068, 1077, + 1068, 1077, 1077, 8, 1077, 3, 1135, 1077, 1135, 1077, + 237, 1135, 8, 7, 1135, 5, 4, 4, 4, 1135, + 4, 1135, 7, 4, 1135, 3, 6, 237, 5, 1135, + 4, 1135, 4, 4, 1135, 4, 1135, 7, 237, 237, + 5, 7, 4, 1282, 3, 6, 237, 4, 4, 4, + 4, 237, 4, 4, 237, 237, 237, 237, 4, 237, + 237, 237, 237, 731, 533, 237, 240, 240, 238, 240, + 237, 237, 237, 237, 237, 746, 238, 1037, 238, 237, + 1327, 237, 237, 237, 1327, 748, 835, 1334, 542, 1067, + 1102, 1334, 1062, 1165, 1334, 1080, 1343, 1088, 1090, 1327, + 1097, 591, 1070, 1327, 1351, 1068, 1334, 1327, 1351, 1073, + 1334, 556, 1079, 1071, 581, 1327, 1135, 1074, 1327, 1343, + 588, 1327, 1334, 1076, 1137, 1087, 1334, 1351, 560, 1327, + 571, 1085, 1115, 1083, 1327, 1393, 1113, 1111, 1419, 1445, + 1327, 1389, 1389, 1327, 1391, 1474, 787, 1334, 1391, 1120, + 1327, 747, 1327, 1422, 1351, 601, 1452, 1334, 1124, -1, + 1327, -1, 1327, 1327, -1, 1389, 1343, 1391, -1, 1334, + 1334, -1, 1419, -1, 1351, 605, 1419, -1, 1327, -1, + 1327, 1130, -1, -1, -1, 1334, -1, 1334, 1327, -1, + 1327, -1, -1, -1, -1, 1419, 1443, 1334, 1327, -1, + 1327, -1, -1, 1327, -1, -1, 1327, -1, -1, -1, + -1, 1327, 1389, 1327, 1391, -1, 1327, -1, -1, 1443, + -1, 1327, -1, 1327, -1, -1, 1327, 1474, 1327, -1, + -1, 1327, -1, 1327, 1327, -1, 1327, -1, 1327, 1327, + -1, 1327, 1419, -1, 1327, -1, -1, -1, -1, 1327, + 1474, 1327, 1327, -1, 1327, -1, -1, 1327, -1, 1327, + 30, 31, 32, 33, 34, 35, 1443, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1464, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, - -1, -1, -1, -1, -1, 118, 119, -1, 121, -1, - 123, 124, 125, -1, 127, 128, 129, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1474, -1, -1, + -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, -1, -1, -1, -1, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, -1, + -1, -1, -1, 103, 104, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 115, 116, -1, -1, -1, + -1, -1, -1, -1, 124, 125, -1, 127, -1, 129, + 130, 131, -1, 133, 134, 135, -1, -1, -1, -1, + 140, -1, -1, 85, 86, 87, 88, 89, 90, 91, + 150, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, + -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, + -1, 133, 134, 135, -1, -1, -1, -1, 140, 141, + -1, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, + -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 231 + -1, -1, -1, -1, -1, 237 }; const short Dhcp4Parser::yystos_[] = { - 0, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 0, 5, - 7, 9, 231, 232, 233, 234, 250, 251, 252, 257, - 7, 266, 7, 271, 7, 329, 7, 444, 7, 531, - 7, 548, 7, 480, 7, 486, 7, 510, 7, 420, - 7, 660, 7, 679, 258, 253, 267, 272, 330, 445, - 532, 549, 481, 487, 511, 421, 661, 680, 250, 259, - 260, 231, 255, 256, 10, 268, 270, 11, 14, 26, + 0, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 0, 5, + 7, 9, 237, 238, 239, 240, 256, 257, 258, 263, + 7, 272, 7, 277, 7, 335, 7, 452, 7, 539, + 7, 556, 7, 488, 7, 494, 7, 518, 7, 428, + 7, 668, 7, 687, 264, 259, 273, 278, 336, 453, + 540, 557, 489, 495, 519, 429, 669, 688, 256, 265, + 266, 237, 261, 262, 10, 274, 276, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 96, - 97, 108, 109, 110, 115, 118, 119, 123, 124, 125, - 126, 127, 136, 146, 149, 156, 157, 161, 162, 180, - 184, 199, 200, 201, 202, 203, 204, 213, 231, 265, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 288, 289, 291, 292, 293, 294, - 295, 296, 297, 300, 302, 304, 305, 306, 309, 310, - 311, 312, 313, 315, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 343, 345, 353, 355, 398, 407, 414, - 428, 438, 466, 467, 468, 470, 478, 504, 538, 540, - 542, 553, 555, 557, 580, 595, 596, 598, 648, 658, - 677, 686, 710, 15, 16, 19, 22, 23, 24, 25, - 265, 327, 328, 331, 333, 336, 339, 340, 341, 342, - 538, 540, 93, 94, 95, 116, 120, 121, 122, 127, - 128, 129, 134, 144, 265, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 289, 292, 293, 294, 295, - 296, 297, 300, 302, 304, 305, 306, 309, 310, 311, - 312, 313, 315, 317, 323, 446, 447, 448, 450, 452, - 454, 456, 458, 460, 462, 464, 466, 467, 468, 469, - 504, 525, 538, 540, 542, 553, 555, 557, 575, 117, - 135, 265, 294, 295, 296, 297, 300, 302, 304, 306, - 309, 310, 311, 312, 313, 315, 458, 460, 462, 464, - 504, 533, 534, 535, 537, 538, 540, 127, 137, 138, - 139, 140, 141, 142, 143, 265, 504, 538, 540, 550, - 551, 552, 553, 555, 557, 559, 561, 563, 565, 567, - 569, 571, 573, 478, 40, 98, 100, 101, 105, 106, - 107, 265, 372, 488, 489, 490, 491, 492, 493, 494, - 496, 498, 500, 501, 503, 538, 540, 99, 102, 103, - 104, 127, 265, 372, 492, 498, 512, 513, 514, 515, - 516, 518, 519, 520, 521, 522, 523, 538, 540, 147, - 148, 265, 422, 423, 424, 426, 185, 186, 187, 188, - 189, 190, 191, 192, 265, 538, 540, 662, 663, 664, - 665, 667, 668, 670, 671, 672, 675, 12, 13, 681, - 682, 683, 685, 6, 3, 4, 8, 3, 269, 3, - 8, 678, 326, 346, 4, 4, 4, 554, 556, 558, - 4, 4, 344, 354, 356, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 287, 4, 4, 4, - 4, 4, 298, 301, 303, 4, 4, 4, 4, 4, - 4, 4, 439, 479, 505, 4, 290, 307, 471, 539, - 541, 4, 4, 4, 399, 581, 543, 415, 429, 4, - 408, 597, 599, 649, 659, 314, 316, 4, 4, 4, - 687, 711, 4, 3, 8, 332, 334, 337, 4, 4, - 4, 4, 3, 8, 451, 453, 455, 526, 449, 457, - 4, 461, 463, 465, 459, 576, 3, 8, 536, 4, - 3, 8, 574, 560, 562, 564, 568, 566, 572, 570, - 8, 3, 8, 495, 373, 4, 499, 497, 502, 4, - 8, 3, 517, 4, 4, 4, 524, 8, 3, 425, - 427, 3, 8, 4, 666, 4, 669, 4, 4, 673, - 676, 3, 8, 684, 4, 3, 8, 250, 250, 231, - 4, 4, 4, 4, 234, 234, 234, 4, 4, 4, - 232, 234, 4, 4, 4, 232, 232, 232, 232, 232, - 234, 233, 233, 233, 232, 232, 4, 232, 232, 234, - 234, 234, 4, 4, 4, 234, 234, 233, 232, 232, - 232, 234, 4, 4, 4, 232, 4, 4, 4, 4, - 4, 234, 234, 234, 4, 4, 4, 4, 4, 232, - 4, 4, 4, 4, 4, 4, 4, 234, 234, 234, - 4, 4, 274, 4, 4, 4, 234, 234, 232, 232, - 328, 4, 4, 4, 4, 4, 4, 232, 4, 4, - 4, 4, 4, 447, 4, 232, 534, 4, 4, 4, - 4, 4, 4, 4, 4, 552, 4, 4, 232, 4, - 4, 4, 234, 490, 4, 234, 234, 234, 4, 514, - 4, 4, 423, 234, 4, 232, 4, 232, 232, 4, - 4, 663, 4, 232, 682, 4, 7, 7, 7, 7, - 231, 231, 231, 7, 7, 5, 231, 195, 196, 197, - 198, 234, 299, 231, 231, 5, 5, 5, 231, 111, - 112, 113, 114, 308, 5, 252, 254, 231, 5, 5, - 5, 5, 7, 7, 7, 5, 7, 7, 231, 231, - 5, 7, 5, 261, 17, 18, 335, 20, 21, 338, - 231, 231, 231, 5, 231, 231, 261, 261, 261, 231, - 7, 231, 261, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 261, 231, 254, 231, - 231, 18, 193, 674, 194, 5, 250, 273, 681, 327, - 27, 28, 347, 348, 349, 351, 40, 41, 42, 43, + 39, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 102, + 103, 114, 115, 116, 121, 124, 125, 129, 130, 131, + 132, 133, 142, 152, 155, 162, 163, 167, 168, 186, + 190, 205, 206, 207, 208, 209, 210, 219, 237, 271, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 294, 295, 297, 298, 299, 300, + 301, 302, 303, 306, 308, 310, 311, 312, 315, 316, + 317, 318, 319, 321, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 349, 351, 359, 361, 406, 415, 422, + 436, 446, 474, 475, 476, 478, 486, 512, 546, 548, + 550, 561, 563, 565, 588, 603, 604, 606, 656, 666, + 685, 694, 718, 15, 16, 19, 22, 23, 24, 25, + 271, 333, 334, 337, 339, 342, 345, 346, 347, 348, + 546, 548, 99, 100, 101, 122, 126, 127, 128, 133, + 134, 135, 140, 150, 271, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 295, 298, 299, 300, 301, + 302, 303, 306, 308, 310, 311, 312, 315, 316, 317, + 318, 319, 321, 323, 329, 454, 455, 456, 458, 460, + 462, 464, 466, 468, 470, 472, 474, 475, 476, 477, + 512, 533, 546, 548, 550, 561, 563, 565, 583, 123, + 141, 271, 300, 301, 302, 303, 306, 308, 310, 312, + 315, 316, 317, 318, 319, 321, 466, 468, 470, 472, + 512, 541, 542, 543, 545, 546, 548, 133, 143, 144, + 145, 146, 147, 148, 149, 271, 512, 546, 548, 558, + 559, 560, 561, 563, 565, 567, 569, 571, 573, 575, + 577, 579, 581, 486, 40, 104, 106, 107, 111, 112, + 113, 271, 378, 496, 497, 498, 499, 500, 501, 502, + 504, 506, 508, 509, 511, 546, 548, 105, 108, 109, + 110, 133, 271, 378, 500, 506, 520, 521, 522, 523, + 524, 526, 527, 528, 529, 530, 531, 546, 548, 153, + 154, 271, 430, 431, 432, 434, 191, 192, 193, 194, + 195, 196, 197, 198, 271, 546, 548, 670, 671, 672, + 673, 675, 676, 678, 679, 680, 683, 12, 13, 689, + 690, 691, 693, 6, 3, 4, 8, 3, 275, 3, + 8, 686, 332, 352, 4, 4, 4, 562, 564, 566, + 4, 4, 350, 360, 362, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 293, 4, 4, 4, + 4, 4, 304, 307, 309, 4, 4, 4, 4, 4, + 4, 4, 447, 487, 513, 4, 296, 313, 479, 547, + 549, 4, 4, 4, 407, 589, 551, 423, 437, 4, + 416, 605, 607, 657, 667, 320, 322, 4, 4, 4, + 695, 719, 4, 3, 8, 338, 340, 343, 4, 4, + 4, 4, 3, 8, 459, 461, 463, 534, 457, 465, + 4, 469, 471, 473, 467, 584, 3, 8, 544, 4, + 3, 8, 582, 568, 570, 572, 576, 574, 580, 578, + 8, 3, 8, 503, 379, 4, 507, 505, 510, 4, + 8, 3, 525, 4, 4, 4, 532, 8, 3, 433, + 435, 3, 8, 4, 674, 4, 677, 4, 4, 681, + 684, 3, 8, 692, 4, 3, 8, 256, 256, 237, + 4, 4, 4, 4, 240, 240, 240, 4, 4, 4, + 238, 240, 4, 4, 4, 238, 238, 238, 238, 238, + 240, 239, 239, 239, 238, 238, 4, 238, 238, 240, + 240, 240, 4, 4, 4, 240, 240, 239, 238, 238, + 238, 240, 4, 4, 4, 238, 4, 4, 4, 4, + 4, 240, 240, 240, 4, 4, 4, 4, 4, 238, + 4, 4, 4, 4, 4, 4, 4, 240, 240, 240, + 4, 4, 280, 4, 4, 4, 240, 240, 238, 238, + 334, 4, 4, 4, 4, 4, 4, 238, 4, 4, + 4, 4, 4, 455, 4, 238, 542, 4, 4, 4, + 4, 4, 4, 4, 4, 560, 4, 4, 238, 4, + 4, 4, 240, 498, 4, 240, 240, 240, 4, 522, + 4, 4, 431, 240, 4, 238, 4, 238, 238, 4, + 4, 671, 4, 238, 690, 4, 7, 7, 7, 7, + 237, 237, 237, 7, 7, 5, 237, 201, 202, 203, + 204, 240, 305, 237, 237, 5, 5, 5, 237, 117, + 118, 119, 120, 314, 5, 258, 260, 237, 5, 5, + 5, 5, 7, 7, 7, 5, 7, 7, 237, 237, + 5, 7, 5, 267, 17, 18, 341, 20, 21, 344, + 237, 237, 237, 5, 237, 237, 267, 267, 267, 237, + 7, 237, 267, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 267, 237, 260, 237, + 237, 18, 199, 682, 200, 5, 256, 279, 689, 333, + 27, 28, 353, 354, 355, 357, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 58, 59, 60, 61, 62, 63, 64, 265, 361, - 362, 363, 365, 367, 369, 371, 372, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 386, 387, 388, - 390, 392, 394, 396, 361, 7, 357, 358, 359, 7, - 440, 441, 442, 7, 482, 483, 484, 7, 506, 507, - 508, 7, 472, 473, 474, 138, 139, 140, 141, 143, - 400, 401, 402, 403, 404, 405, 406, 7, 582, 583, - 7, 544, 545, 546, 7, 416, 417, 418, 150, 151, - 152, 153, 154, 155, 430, 431, 432, 433, 434, 435, - 436, 437, 158, 159, 160, 265, 409, 410, 411, 412, - 413, 538, 540, 163, 167, 168, 169, 170, 177, 178, - 265, 388, 390, 392, 538, 540, 604, 605, 606, 609, - 611, 613, 614, 615, 625, 7, 600, 601, 602, 181, - 182, 183, 231, 538, 540, 650, 651, 652, 653, 655, - 656, 662, 7, 688, 689, 214, 215, 216, 217, 265, - 712, 713, 714, 715, 716, 717, 262, 7, 527, 528, - 529, 145, 577, 578, 357, 8, 8, 8, 350, 352, - 3, 8, 364, 366, 368, 370, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 384, 4, 4, 389, - 391, 393, 395, 397, 3, 8, 8, 360, 6, 3, - 443, 6, 3, 485, 6, 3, 509, 6, 3, 475, - 6, 3, 3, 6, 584, 3, 6, 547, 6, 3, - 419, 6, 3, 4, 4, 4, 4, 4, 4, 3, - 8, 4, 4, 4, 3, 8, 607, 610, 612, 4, - 626, 4, 616, 3, 8, 603, 6, 3, 4, 654, - 4, 657, 3, 8, 8, 690, 3, 6, 4, 4, - 4, 4, 3, 8, 231, 263, 264, 530, 6, 3, - 579, 8, 6, 4, 4, 348, 4, 4, 4, 4, - 232, 234, 232, 234, 232, 232, 232, 232, 232, 232, - 4, 234, 232, 4, 4, 4, 4, 4, 362, 361, - 359, 446, 442, 488, 484, 512, 508, 265, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 289, 292, - 293, 294, 295, 296, 297, 300, 302, 304, 305, 306, - 309, 310, 311, 312, 313, 315, 317, 323, 372, 438, - 456, 458, 460, 462, 464, 466, 467, 468, 476, 477, - 504, 538, 540, 553, 555, 557, 575, 474, 401, 130, - 131, 132, 133, 265, 275, 276, 277, 323, 372, 478, - 504, 538, 540, 553, 555, 557, 585, 586, 587, 588, - 589, 591, 593, 594, 583, 550, 546, 422, 418, 232, - 232, 232, 232, 232, 232, 431, 234, 232, 232, 410, - 4, 4, 4, 232, 4, 234, 4, 605, 604, 602, - 234, 4, 232, 4, 651, 205, 207, 208, 265, 372, - 538, 540, 691, 692, 693, 694, 696, 689, 234, 234, - 234, 234, 713, 6, 3, 533, 529, 4, 231, 231, - 231, 231, 231, 231, 55, 56, 57, 385, 231, 231, - 231, 231, 231, 8, 8, 8, 8, 3, 8, 590, - 592, 4, 4, 8, 3, 8, 8, 164, 165, 166, - 608, 231, 231, 7, 5, 8, 231, 250, 697, 4, - 695, 3, 8, 231, 8, 261, 477, 4, 4, 234, - 234, 587, 40, 172, 173, 174, 265, 538, 540, 627, - 628, 629, 632, 634, 636, 7, 617, 618, 619, 4, - 232, 4, 692, 231, 231, 630, 633, 635, 637, 3, - 8, 620, 6, 3, 5, 231, 4, 4, 4, 4, - 628, 179, 265, 372, 538, 540, 621, 622, 623, 619, - 7, 698, 699, 171, 631, 231, 231, 5, 624, 3, - 8, 700, 3, 6, 7, 638, 639, 640, 4, 622, - 206, 209, 210, 211, 212, 701, 702, 703, 705, 706, - 707, 708, 699, 641, 6, 3, 231, 704, 4, 4, - 4, 709, 3, 8, 175, 176, 265, 365, 367, 538, - 540, 642, 643, 644, 646, 640, 4, 234, 232, 232, - 4, 702, 645, 647, 3, 8, 231, 231, 4, 4, - 643, 231, 231 + 54, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 271, 367, 368, 369, 371, 373, + 375, 377, 378, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 392, 393, 394, 396, 398, 400, 402, + 404, 367, 7, 363, 364, 365, 7, 448, 449, 450, + 7, 490, 491, 492, 7, 514, 515, 516, 7, 480, + 481, 482, 144, 145, 146, 147, 149, 408, 409, 410, + 411, 412, 413, 414, 7, 590, 591, 7, 552, 553, + 554, 7, 424, 425, 426, 156, 157, 158, 159, 160, + 161, 438, 439, 440, 441, 442, 443, 444, 445, 164, + 165, 166, 271, 417, 418, 419, 420, 421, 546, 548, + 169, 173, 174, 175, 176, 183, 184, 271, 394, 396, + 398, 546, 548, 612, 613, 614, 617, 619, 621, 622, + 623, 633, 7, 608, 609, 610, 187, 188, 189, 237, + 546, 548, 658, 659, 660, 661, 663, 664, 670, 7, + 696, 697, 220, 221, 222, 223, 271, 720, 721, 722, + 723, 724, 725, 268, 7, 535, 536, 537, 151, 585, + 586, 363, 8, 8, 8, 356, 358, 3, 8, 370, + 372, 374, 376, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 390, 4, 4, 395, 397, 399, 401, + 403, 405, 3, 8, 8, 366, 6, 3, 451, 6, + 3, 493, 6, 3, 517, 6, 3, 483, 6, 3, + 3, 6, 592, 3, 6, 555, 6, 3, 427, 6, + 3, 4, 4, 4, 4, 4, 4, 3, 8, 4, + 4, 4, 3, 8, 615, 618, 620, 4, 634, 4, + 624, 3, 8, 611, 6, 3, 4, 662, 4, 665, + 3, 8, 8, 698, 3, 6, 4, 4, 4, 4, + 3, 8, 237, 269, 270, 538, 6, 3, 587, 8, + 6, 4, 4, 354, 4, 4, 4, 4, 238, 240, + 238, 240, 238, 238, 238, 238, 238, 238, 4, 240, + 238, 4, 4, 4, 4, 4, 4, 368, 367, 365, + 454, 450, 496, 492, 520, 516, 271, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 295, 298, 299, + 300, 301, 302, 303, 306, 308, 310, 311, 312, 315, + 316, 317, 318, 319, 321, 323, 329, 378, 446, 464, + 466, 468, 470, 472, 474, 475, 476, 484, 485, 512, + 546, 548, 561, 563, 565, 583, 482, 409, 136, 137, + 138, 139, 271, 281, 282, 283, 329, 378, 486, 512, + 546, 548, 561, 563, 565, 593, 594, 595, 596, 597, + 599, 601, 602, 591, 558, 554, 430, 426, 238, 238, + 238, 238, 238, 238, 439, 240, 238, 238, 418, 4, + 4, 4, 238, 4, 240, 4, 613, 612, 610, 240, + 4, 238, 4, 659, 211, 213, 214, 271, 378, 546, + 548, 699, 700, 701, 702, 704, 697, 240, 240, 240, + 240, 721, 6, 3, 541, 537, 4, 237, 237, 237, + 237, 237, 237, 55, 56, 57, 391, 237, 237, 237, + 237, 402, 237, 8, 8, 8, 8, 3, 8, 598, + 600, 4, 4, 8, 3, 8, 8, 170, 171, 172, + 616, 237, 237, 7, 5, 8, 237, 256, 705, 4, + 703, 3, 8, 237, 8, 267, 485, 4, 4, 240, + 240, 595, 40, 178, 179, 180, 271, 546, 548, 635, + 636, 637, 640, 642, 644, 7, 625, 626, 627, 4, + 238, 4, 700, 237, 237, 638, 641, 643, 645, 3, + 8, 628, 6, 3, 5, 237, 4, 4, 4, 4, + 636, 185, 271, 378, 546, 548, 629, 630, 631, 627, + 7, 706, 707, 177, 639, 237, 237, 5, 632, 3, + 8, 708, 3, 6, 7, 646, 647, 648, 4, 630, + 212, 215, 216, 217, 218, 709, 710, 711, 713, 714, + 715, 716, 707, 649, 6, 3, 237, 712, 4, 4, + 4, 717, 3, 8, 181, 182, 271, 371, 373, 546, + 548, 650, 651, 652, 654, 648, 4, 240, 238, 238, + 4, 710, 653, 655, 3, 8, 237, 237, 4, 4, + 651, 237, 237 }; const short Dhcp4Parser::yyr1_[] = { - 0, 235, 237, 236, 238, 236, 239, 236, 240, 236, - 241, 236, 242, 236, 243, 236, 244, 236, 245, 236, - 246, 236, 247, 236, 248, 236, 249, 236, 250, 250, - 250, 250, 250, 250, 250, 251, 253, 252, 254, 255, - 255, 256, 256, 256, 258, 257, 259, 259, 260, 260, - 260, 262, 261, 263, 263, 264, 264, 264, 265, 267, - 266, 269, 268, 268, 270, 272, 271, 273, 273, 273, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 287, 286, 288, 290, 289, 291, 292, - 293, 294, 295, 296, 298, 297, 299, 299, 299, 299, - 299, 301, 300, 303, 302, 304, 305, 307, 306, 308, - 308, 308, 308, 309, 310, 311, 312, 314, 313, 316, - 315, 317, 318, 319, 320, 321, 322, 323, 324, 326, - 325, 327, 327, 327, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 330, 329, 332, 331, 334, 333, - 335, 335, 337, 336, 338, 338, 339, 340, 341, 342, - 344, 343, 346, 345, 347, 347, 347, 348, 348, 350, - 349, 352, 351, 354, 353, 356, 355, 357, 357, 358, - 358, 358, 360, 359, 361, 361, 361, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 364, 363, 366, 365, 368, 367, 370, 369, 371, - 373, 372, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 384, 383, 385, 385, 385, 386, 387, 389, 388, - 391, 390, 393, 392, 395, 394, 397, 396, 399, 398, - 400, 400, 400, 401, 401, 401, 401, 401, 402, 403, - 404, 405, 406, 408, 407, 409, 409, 409, 410, 410, - 410, 410, 410, 410, 411, 412, 413, 415, 414, 416, - 416, 417, 417, 417, 419, 418, 421, 420, 422, 422, - 422, 422, 423, 423, 425, 424, 427, 426, 429, 428, - 430, 430, 430, 431, 431, 431, 431, 431, 431, 432, - 433, 434, 435, 436, 437, 439, 438, 440, 440, 441, - 441, 441, 443, 442, 445, 444, 446, 446, 446, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 449, 448, 451, 450, 453, 452, 455, 454, + 0, 241, 243, 242, 244, 242, 245, 242, 246, 242, + 247, 242, 248, 242, 249, 242, 250, 242, 251, 242, + 252, 242, 253, 242, 254, 242, 255, 242, 256, 256, + 256, 256, 256, 256, 256, 257, 259, 258, 260, 261, + 261, 262, 262, 262, 264, 263, 265, 265, 266, 266, + 266, 268, 267, 269, 269, 270, 270, 270, 271, 273, + 272, 275, 274, 274, 276, 278, 277, 279, 279, 279, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 293, 292, 294, 296, 295, 297, 298, + 299, 300, 301, 302, 304, 303, 305, 305, 305, 305, + 305, 307, 306, 309, 308, 310, 311, 313, 312, 314, + 314, 314, 314, 315, 316, 317, 318, 320, 319, 322, + 321, 323, 324, 325, 326, 327, 328, 329, 330, 332, + 331, 333, 333, 333, 334, 334, 334, 334, 334, 334, + 334, 334, 334, 334, 336, 335, 338, 337, 340, 339, + 341, 341, 343, 342, 344, 344, 345, 346, 347, 348, + 350, 349, 352, 351, 353, 353, 353, 354, 354, 356, + 355, 358, 357, 360, 359, 362, 361, 363, 363, 364, + 364, 364, 366, 365, 367, 367, 367, 368, 368, 368, + 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, + 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, + 368, 368, 370, 369, 372, 371, 374, 373, 376, 375, + 377, 379, 378, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 390, 389, 391, 391, 391, 392, 393, 395, + 394, 397, 396, 399, 398, 401, 400, 403, 402, 402, + 402, 402, 402, 402, 405, 404, 407, 406, 408, 408, + 408, 409, 409, 409, 409, 409, 410, 411, 412, 413, + 414, 416, 415, 417, 417, 417, 418, 418, 418, 418, + 418, 418, 419, 420, 421, 423, 422, 424, 424, 425, + 425, 425, 427, 426, 429, 428, 430, 430, 430, 430, + 431, 431, 433, 432, 435, 434, 437, 436, 438, 438, + 438, 439, 439, 439, 439, 439, 439, 440, 441, 442, + 443, 444, 445, 447, 446, 448, 448, 449, 449, 449, + 451, 450, 453, 452, 454, 454, 454, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 457, 456, 459, 458, 461, 460, 463, 462, 465, 464, - 466, 467, 468, 469, 471, 470, 472, 472, 473, 473, - 473, 475, 474, 476, 476, 476, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 479, 478, 481, 480, 482, 482, - 483, 483, 483, 485, 484, 487, 486, 488, 488, 489, - 489, 489, 490, 490, 490, 490, 490, 490, 490, 490, - 490, 490, 491, 492, 493, 495, 494, 497, 496, 499, - 498, 500, 502, 501, 503, 505, 504, 506, 506, 507, - 507, 507, 509, 508, 511, 510, 512, 512, 513, 513, - 513, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 515, 517, 516, 518, 519, 520, 521, 522, - 524, 523, 526, 525, 527, 527, 528, 528, 528, 530, - 529, 532, 531, 533, 533, 533, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, - 536, 535, 537, 539, 538, 541, 540, 543, 542, 544, - 544, 545, 545, 545, 547, 546, 549, 548, 550, 550, - 551, 551, 551, 552, 552, 552, 552, 552, 552, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 554, 553, - 556, 555, 558, 557, 560, 559, 562, 561, 564, 563, + 467, 466, 469, 468, 471, 470, 473, 472, 474, 475, + 476, 477, 479, 478, 480, 480, 481, 481, 481, 483, + 482, 484, 484, 484, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 487, 486, 489, 488, 490, 490, 491, 491, + 491, 493, 492, 495, 494, 496, 496, 497, 497, 497, + 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, + 499, 500, 501, 503, 502, 505, 504, 507, 506, 508, + 510, 509, 511, 513, 512, 514, 514, 515, 515, 515, + 517, 516, 519, 518, 520, 520, 521, 521, 521, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 523, 525, 524, 526, 527, 528, 529, 530, 532, 531, + 534, 533, 535, 535, 536, 536, 536, 538, 537, 540, + 539, 541, 541, 541, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 544, 543, + 545, 547, 546, 549, 548, 551, 550, 552, 552, 553, + 553, 553, 555, 554, 557, 556, 558, 558, 559, 559, + 559, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 562, 561, 564, 563, 566, 565, 568, 567, 570, 569, 572, 571, 574, 573, - 576, 575, 577, 579, 578, 581, 580, 582, 582, 582, - 584, 583, 585, 585, 586, 586, 586, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 588, 590, 589, 592, 591, 593, - 594, 595, 597, 596, 599, 598, 600, 600, 601, 601, - 601, 603, 602, 604, 604, 604, 605, 605, 605, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 605, 607, - 606, 608, 608, 608, 610, 609, 612, 611, 613, 614, - 616, 615, 617, 617, 618, 618, 618, 620, 619, 621, - 621, 621, 622, 622, 622, 622, 622, 624, 623, 626, - 625, 627, 627, 627, 628, 628, 628, 628, 628, 628, - 628, 630, 629, 631, 633, 632, 635, 634, 637, 636, - 638, 638, 639, 639, 639, 641, 640, 642, 642, 642, - 643, 643, 643, 643, 643, 643, 643, 645, 644, 647, - 646, 649, 648, 650, 650, 650, 651, 651, 651, 651, - 651, 651, 652, 654, 653, 655, 657, 656, 659, 658, - 661, 660, 662, 662, 662, 663, 663, 663, 663, 663, - 663, 663, 663, 663, 663, 663, 664, 666, 665, 667, - 669, 668, 670, 671, 673, 672, 674, 674, 676, 675, - 678, 677, 680, 679, 681, 681, 681, 682, 682, 684, - 683, 685, 687, 686, 688, 688, 688, 690, 689, 691, - 691, 691, 692, 692, 692, 692, 692, 692, 692, 693, - 695, 694, 697, 696, 698, 698, 698, 700, 699, 701, - 701, 701, 702, 702, 702, 702, 702, 704, 703, 705, - 706, 707, 709, 708, 711, 710, 712, 712, 712, 713, - 713, 713, 713, 713, 714, 715, 716, 717 + 576, 575, 578, 577, 580, 579, 582, 581, 584, 583, + 585, 587, 586, 589, 588, 590, 590, 590, 592, 591, + 593, 593, 594, 594, 594, 595, 595, 595, 595, 595, + 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, + 595, 595, 596, 598, 597, 600, 599, 601, 602, 603, + 605, 604, 607, 606, 608, 608, 609, 609, 609, 611, + 610, 612, 612, 612, 613, 613, 613, 613, 613, 613, + 613, 613, 613, 613, 613, 613, 613, 615, 614, 616, + 616, 616, 618, 617, 620, 619, 621, 622, 624, 623, + 625, 625, 626, 626, 626, 628, 627, 629, 629, 629, + 630, 630, 630, 630, 630, 632, 631, 634, 633, 635, + 635, 635, 636, 636, 636, 636, 636, 636, 636, 638, + 637, 639, 641, 640, 643, 642, 645, 644, 646, 646, + 647, 647, 647, 649, 648, 650, 650, 650, 651, 651, + 651, 651, 651, 651, 651, 653, 652, 655, 654, 657, + 656, 658, 658, 658, 659, 659, 659, 659, 659, 659, + 660, 662, 661, 663, 665, 664, 667, 666, 669, 668, + 670, 670, 670, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 672, 674, 673, 675, 677, 676, + 678, 679, 681, 680, 682, 682, 684, 683, 686, 685, + 688, 687, 689, 689, 689, 690, 690, 692, 691, 693, + 695, 694, 696, 696, 696, 698, 697, 699, 699, 699, + 700, 700, 700, 700, 700, 700, 700, 701, 703, 702, + 705, 704, 706, 706, 706, 708, 707, 709, 709, 709, + 710, 710, 710, 710, 710, 712, 711, 713, 714, 715, + 717, 716, 719, 718, 720, 720, 720, 721, 721, 721, + 721, 721, 722, 723, 724, 725 }; const signed char @@ -6517,75 +6594,76 @@ namespace isc { namespace dhcp { 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 3, - 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 0, 4, 1, 1, 1, 3, 3, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, - 2, 1, 1, 1, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 0, 4, 1, 1, 1, 3, 3, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 1, + 1, 1, 1, 1, 0, 4, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 3, 3, 3, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 3, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 6, 0, 4, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 0, 4, 0, 4, 0, - 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 3, 3, 3, - 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 4, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 0, 4, 0, 4, 0, 4, 1, + 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 1, 3, 3, 3, 0, 4, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 3, 0, 4, 0, 4, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 4, 0, 4, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 6, 1, 0, 4, 0, 6, 1, 3, 2, - 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 0, 4, 0, 6, 1, 3, 2, 0, 4, + 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 3, 3, 0, 6, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 0, 4, 0, 4, 3, 3, - 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 1, 0, 4, 0, 4, 0, 6, + 1, 1, 1, 0, 4, 0, 4, 3, 3, 3, + 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, - 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, - 0, 6, 0, 4, 1, 3, 2, 1, 1, 0, - 6, 3, 0, 6, 1, 3, 2, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 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, 1, 1, 1, 3, 3, 3, 3 + 1, 1, 1, 1, 1, 0, 4, 0, 6, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 0, 4, 0, 4, 0, 6, 0, 1, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, + 3, 3, 0, 4, 1, 1, 0, 4, 0, 6, + 0, 4, 1, 3, 2, 1, 1, 0, 6, 3, + 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 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, 1, + 1, 1, 3, 3, 3, 3 }; @@ -6614,11 +6692,13 @@ namespace isc { namespace dhcp { "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"retry-on-startup\"", "\"max-row-errors\"", "\"trust-anchor\"", - "\"cert-file\"", "\"key-file\"", "\"key-password\"", "\"cipher-list\"", - "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", - "\"t1-percent\"", "\"t2-percent\"", "\"cache-threshold\"", - "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", + "\"cert-file\"", "\"key-file\"", "\"key-password\"", "\"ssl-mode\"", + "\"disable\"", "\"prefer\"", "\"require\"", "\"verify-ca\"", + "\"verify-full\"", "\"cipher-list\"", "\"valid-lifetime\"", + "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", + "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", + "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -6711,86 +6791,87 @@ namespace isc { namespace dhcp { "max_reconnect_tries", "reconnect_wait_time", "on_fail", "$@45", "on_fail_mode", "retry_on_startup", "max_row_errors", "trust_anchor", "$@46", "cert_file", "$@47", "key_file", "$@48", "key_password", "$@49", - "cipher_list", "$@50", "host_reservation_identifiers", "$@51", + "ssl_mode", "$@50", "cipher_list", "$@51", + "host_reservation_identifiers", "$@52", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id", - "dhcp_multi_threading", "$@52", "multi_threading_params", + "dhcp_multi_threading", "$@53", "multi_threading_params", "multi_threading_param", "enable_multi_threading", "thread_pool_size", - "packet_queue_size", "hooks_libraries", "$@53", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@54", - "sub_hooks_library", "$@55", "hooks_params", "hooks_param", "library", - "$@56", "parameters", "$@57", "expired_leases_processing", "$@58", + "packet_queue_size", "hooks_libraries", "$@54", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@55", + "sub_hooks_library", "$@56", "hooks_params", "hooks_param", "library", + "$@57", "parameters", "$@58", "expired_leases_processing", "$@59", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet4_list", "$@59", - "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@60", - "sub_subnet4", "$@61", "subnet4_params", "subnet4_param", "subnet", - "$@62", "subnet_4o6_interface", "$@63", "subnet_4o6_interface_id", - "$@64", "subnet_4o6_subnet", "$@65", "interface", "$@66", "client_class", - "$@67", "network_client_classes", "$@68", "require_client_classes", - "$@69", "evaluate_additional_classes", "$@70", "reservations_global", + "unwarned_reclaim_cycles", "subnet4_list", "$@60", + "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@61", + "sub_subnet4", "$@62", "subnet4_params", "subnet4_param", "subnet", + "$@63", "subnet_4o6_interface", "$@64", "subnet_4o6_interface_id", + "$@65", "subnet_4o6_subnet", "$@66", "interface", "$@67", "client_class", + "$@68", "network_client_classes", "$@69", "require_client_classes", + "$@70", "evaluate_additional_classes", "$@71", "reservations_global", "reservations_in_subnet", "reservations_out_of_pool", "id", - "shared_networks", "$@71", "shared_networks_content", - "shared_networks_list", "shared_network", "$@72", + "shared_networks", "$@72", "shared_networks_content", + "shared_networks_list", "shared_network", "$@73", "shared_network_params", "shared_network_param", "option_def_list", - "$@73", "sub_option_def_list", "$@74", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@75", - "sub_option_def", "$@76", "option_def_params", + "$@74", "sub_option_def_list", "$@75", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@76", + "sub_option_def", "$@77", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@77", - "option_def_record_types", "$@78", "space", "$@79", "option_def_space", - "option_def_encapsulate", "$@80", "option_def_array", "option_data_list", - "$@81", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@82", "sub_option_data", "$@83", + "code", "option_def_code", "option_def_type", "$@78", + "option_def_record_types", "$@79", "space", "$@80", "option_def_space", + "option_def_encapsulate", "$@81", "option_def_array", "option_data_list", + "$@82", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@83", "sub_option_data", "$@84", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@84", + "option_data_param", "option_data_name", "option_data_data", "$@85", "option_data_code", "option_data_space", "option_data_csv_format", "option_data_always_send", "option_data_never_send", - "option_data_client_classes", "$@85", "pools_list", "$@86", - "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@87", - "sub_pool4", "$@88", "pool_params", "pool_param", "pool_entry", "$@89", - "pool_id", "user_context", "$@90", "comment", "$@91", "reservations", - "$@92", "reservations_list", "not_empty_reservations_list", - "reservation", "$@93", "sub_reservation", "$@94", "reservation_params", + "option_data_client_classes", "$@86", "pools_list", "$@87", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@88", + "sub_pool4", "$@89", "pool_params", "pool_param", "pool_entry", "$@90", + "pool_id", "user_context", "$@91", "comment", "$@92", "reservations", + "$@93", "reservations_list", "not_empty_reservations_list", + "reservation", "$@94", "sub_reservation", "$@95", "reservation_params", "not_empty_reservation_params", "reservation_param", "next_server", - "$@95", "server_hostname", "$@96", "boot_file_name", "$@97", - "ip_address", "$@98", "duid", "$@99", "hw_address", "$@100", - "client_id_value", "$@101", "circuit_id_value", "$@102", "flex_id_value", - "$@103", "hostname", "$@104", "reservation_client_classes", "$@105", - "relay", "$@106", "relay_map", "ip_addresses", "$@107", "client_classes", - "$@108", "client_classes_list", "client_class_entry", "$@109", + "$@96", "server_hostname", "$@97", "boot_file_name", "$@98", + "ip_address", "$@99", "duid", "$@100", "hw_address", "$@101", + "client_id_value", "$@102", "circuit_id_value", "$@103", "flex_id_value", + "$@104", "hostname", "$@105", "reservation_client_classes", "$@106", + "relay", "$@107", "relay_map", "ip_addresses", "$@108", "client_classes", + "$@109", "client_classes_list", "client_class_entry", "$@110", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@110", - "client_class_template_test", "$@111", "only_if_required", - "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@112", - "control_sockets", "$@113", "control_socket_list", - "not_empty_control_socket_list", "control_socket_entry", "$@114", + "client_class_param", "client_class_name", "client_class_test", "$@111", + "client_class_template_test", "$@112", "only_if_required", + "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@113", + "control_sockets", "$@114", "control_socket_list", + "not_empty_control_socket_list", "control_socket_entry", "$@115", "control_socket_params", "control_socket_param", "control_socket_type", - "$@115", "control_socket_type_value", "control_socket_name", "$@116", - "control_socket_address", "$@117", "control_socket_port", - "cert_required", "http_headers", "$@118", "http_header_list", - "not_empty_http_header_list", "http_header", "$@119", - "http_header_params", "http_header_param", "header_value", "$@120", - "authentication", "$@121", "auth_params", "auth_param", "auth_type", - "$@122", "auth_type_value", "realm", "$@123", "directory", "$@124", - "clients", "$@125", "clients_list", "not_empty_clients_list", - "basic_auth", "$@126", "clients_params", "clients_param", "user_file", - "$@127", "password_file", "$@128", "dhcp_queue_control", "$@129", + "$@116", "control_socket_type_value", "control_socket_name", "$@117", + "control_socket_address", "$@118", "control_socket_port", + "cert_required", "http_headers", "$@119", "http_header_list", + "not_empty_http_header_list", "http_header", "$@120", + "http_header_params", "http_header_param", "header_value", "$@121", + "authentication", "$@122", "auth_params", "auth_param", "auth_type", + "$@123", "auth_type_value", "realm", "$@124", "directory", "$@125", + "clients", "$@126", "clients_list", "not_empty_clients_list", + "basic_auth", "$@127", "clients_params", "clients_param", "user_file", + "$@128", "password_file", "$@129", "dhcp_queue_control", "$@130", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@130", "capacity", "arbitrary_map_entry", "$@131", - "dhcp_ddns", "$@132", "sub_dhcp_ddns", "$@133", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@134", "server_port", - "sender_ip", "$@135", "sender_port", "max_queue_size", "ncr_protocol", - "$@136", "ncr_protocol_value", "ncr_format", "$@137", "config_control", - "$@138", "sub_config_control", "$@139", "config_control_params", - "config_control_param", "config_databases", "$@140", - "config_fetch_wait_time", "loggers", "$@141", "loggers_entries", - "logger_entry", "$@142", "logger_params", "logger_param", "debuglevel", - "severity", "$@143", "output_options_list", "$@144", - "output_options_list_content", "output_entry", "$@145", - "output_params_list", "output_params", "output", "$@146", "flush", - "maxsize", "maxver", "pattern", "$@147", "compatibility", "$@148", + "queue_type", "$@131", "capacity", "arbitrary_map_entry", "$@132", + "dhcp_ddns", "$@133", "sub_dhcp_ddns", "$@134", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@135", "server_port", + "sender_ip", "$@136", "sender_port", "max_queue_size", "ncr_protocol", + "$@137", "ncr_protocol_value", "ncr_format", "$@138", "config_control", + "$@139", "sub_config_control", "$@140", "config_control_params", + "config_control_param", "config_databases", "$@141", + "config_fetch_wait_time", "loggers", "$@142", "loggers_entries", + "logger_entry", "$@143", "logger_params", "logger_param", "debuglevel", + "severity", "$@144", "output_options_list", "$@145", + "output_options_list_content", "output_entry", "$@146", + "output_params_list", "output_params", "output", "$@147", "flush", + "maxsize", "maxver", "pattern", "$@148", "compatibility", "$@149", "compatibility_params", "compatibility_param", "lenient_option_parsing", "ignore_dhcp_server_identifier", "ignore_rai_link_selection", "exclude_first_last_24", YY_NULLPTR @@ -6802,103 +6883,104 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 330, 330, 330, 331, 331, 332, 332, 333, 333, - 334, 334, 335, 335, 336, 336, 337, 337, 338, 338, - 339, 339, 340, 340, 341, 341, 342, 342, 350, 351, - 352, 353, 354, 355, 356, 359, 364, 364, 375, 378, - 379, 382, 387, 393, 398, 398, 405, 406, 409, 413, - 417, 423, 423, 430, 431, 434, 438, 442, 452, 461, - 461, 476, 476, 490, 493, 499, 499, 508, 509, 510, - 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, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 591, 597, 603, 609, 615, 621, 627, 633, - 639, 645, 651, 657, 657, 666, 672, 672, 681, 687, - 693, 699, 705, 711, 717, 717, 726, 729, 732, 735, - 738, 744, 744, 753, 753, 762, 771, 781, 781, 790, - 793, 796, 799, 804, 810, 816, 822, 828, 828, 837, - 837, 846, 852, 858, 864, 870, 876, 882, 888, 894, - 894, 906, 907, 908, 913, 914, 915, 916, 917, 918, - 919, 920, 921, 922, 925, 925, 934, 934, 945, 945, - 953, 954, 957, 957, 965, 967, 971, 977, 983, 989, - 995, 995, 1008, 1008, 1019, 1020, 1021, 1026, 1027, 1030, - 1030, 1049, 1049, 1067, 1067, 1080, 1080, 1091, 1092, 1095, - 1096, 1097, 1102, 1102, 1112, 1113, 1114, 1119, 1120, 1121, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - 1142, 1145, 1145, 1154, 1154, 1163, 1163, 1172, 1172, 1181, - 1187, 1187, 1196, 1202, 1208, 1214, 1220, 1226, 1232, 1238, - 1244, 1250, 1250, 1258, 1259, 1260, 1263, 1269, 1275, 1275, - 1284, 1284, 1293, 1293, 1302, 1302, 1311, 1311, 1320, 1320, - 1331, 1332, 1333, 1338, 1339, 1340, 1341, 1342, 1345, 1350, - 1355, 1360, 1365, 1372, 1372, 1385, 1386, 1387, 1392, 1393, - 1394, 1395, 1396, 1397, 1400, 1406, 1412, 1418, 1418, 1429, - 1430, 1433, 1434, 1435, 1440, 1440, 1450, 1450, 1460, 1461, - 1462, 1465, 1468, 1469, 1472, 1472, 1481, 1481, 1490, 1490, - 1502, 1503, 1504, 1509, 1510, 1511, 1512, 1513, 1514, 1517, - 1523, 1529, 1535, 1541, 1547, 1556, 1556, 1570, 1571, 1574, - 1575, 1576, 1585, 1585, 1611, 1611, 1622, 1623, 1624, 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, - 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, - 1681, 1682, 1685, 1685, 1694, 1694, 1703, 1703, 1712, 1712, - 1721, 1721, 1730, 1730, 1740, 1740, 1752, 1752, 1763, 1763, - 1774, 1780, 1786, 1792, 1800, 1800, 1812, 1813, 1817, 1818, - 1819, 1824, 1824, 1832, 1833, 1834, 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, 1870, 1871, 1872, - 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, - 1883, 1884, 1885, 1886, 1893, 1893, 1907, 1907, 1916, 1917, - 1920, 1921, 1922, 1929, 1929, 1944, 1944, 1958, 1959, 1962, - 1963, 1964, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, - 1977, 1978, 1981, 1983, 1989, 1991, 1991, 2000, 2000, 2009, - 2009, 2018, 2020, 2020, 2029, 2039, 2039, 2052, 2053, 2058, - 2059, 2060, 2067, 2067, 2079, 2079, 2091, 2092, 2097, 2098, - 2099, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, - 2115, 2116, 2119, 2121, 2121, 2130, 2132, 2134, 2140, 2146, - 2152, 2152, 2166, 2166, 2179, 2180, 2183, 2184, 2185, 2190, - 2190, 2200, 2200, 2210, 2211, 2212, 2217, 2218, 2219, 2220, - 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, - 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, - 2243, 2243, 2252, 2258, 2258, 2283, 2283, 2313, 2313, 2324, - 2325, 2328, 2329, 2330, 2335, 2335, 2344, 2344, 2353, 2354, - 2357, 2358, 2359, 2365, 2366, 2367, 2368, 2369, 2370, 2371, - 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2382, 2382, - 2391, 2391, 2400, 2400, 2409, 2409, 2418, 2418, 2427, 2427, - 2436, 2436, 2445, 2445, 2454, 2454, 2463, 2463, 2472, 2472, - 2486, 2486, 2497, 2500, 2500, 2514, 2514, 2525, 2526, 2527, - 2532, 2532, 2542, 2543, 2546, 2547, 2548, 2553, 2554, 2555, - 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, - 2566, 2567, 2568, 2569, 2572, 2574, 2574, 2583, 2583, 2593, - 2599, 2607, 2615, 2615, 2627, 2627, 2639, 2640, 2643, 2644, - 2645, 2650, 2650, 2658, 2659, 2660, 2665, 2666, 2667, 2668, - 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2680, - 2680, 2689, 2690, 2691, 2694, 2694, 2704, 2704, 2714, 2720, - 2726, 2726, 2737, 2738, 2741, 2742, 2743, 2748, 2748, 2756, - 2757, 2758, 2763, 2764, 2765, 2766, 2767, 2770, 2770, 2781, - 2781, 2794, 2795, 2796, 2801, 2802, 2803, 2804, 2805, 2806, - 2807, 2810, 2810, 2818, 2821, 2821, 2830, 2830, 2839, 2839, - 2850, 2851, 2854, 2855, 2856, 2861, 2861, 2869, 2870, 2871, - 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2885, 2885, 2894, - 2894, 2905, 2905, 2918, 2919, 2920, 2925, 2926, 2927, 2928, - 2929, 2930, 2933, 2939, 2939, 2948, 2954, 2954, 2964, 2964, - 2977, 2977, 2987, 2988, 2989, 2994, 2995, 2996, 2997, 2998, - 2999, 3000, 3001, 3002, 3003, 3004, 3007, 3013, 3013, 3022, - 3028, 3028, 3037, 3043, 3049, 3049, 3058, 3059, 3062, 3062, - 3073, 3073, 3085, 3085, 3095, 3096, 3097, 3103, 3104, 3107, - 3107, 3118, 3126, 3126, 3139, 3140, 3141, 3147, 3147, 3155, - 3156, 3157, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3171, - 3177, 3177, 3186, 3186, 3197, 3198, 3199, 3204, 3204, 3212, - 3213, 3214, 3219, 3220, 3221, 3222, 3223, 3226, 3226, 3235, - 3241, 3247, 3253, 3253, 3262, 3262, 3273, 3274, 3275, 3280, - 3281, 3282, 3283, 3284, 3287, 3293, 3299, 3305 + 0, 337, 337, 337, 338, 338, 339, 339, 340, 340, + 341, 341, 342, 342, 343, 343, 344, 344, 345, 345, + 346, 346, 347, 347, 348, 348, 349, 349, 357, 358, + 359, 360, 361, 362, 363, 366, 371, 371, 382, 385, + 386, 389, 394, 400, 405, 405, 412, 413, 416, 420, + 424, 430, 430, 437, 438, 441, 445, 449, 459, 468, + 468, 483, 483, 497, 500, 506, 506, 515, 516, 517, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 598, 604, 610, 616, 622, 628, 634, 640, + 646, 652, 658, 664, 664, 673, 679, 679, 688, 694, + 700, 706, 712, 718, 724, 724, 733, 736, 739, 742, + 745, 751, 751, 760, 760, 769, 778, 788, 788, 797, + 800, 803, 806, 811, 817, 823, 829, 835, 835, 844, + 844, 853, 859, 865, 871, 877, 883, 889, 895, 901, + 901, 913, 914, 915, 920, 921, 922, 923, 924, 925, + 926, 927, 928, 929, 932, 932, 941, 941, 952, 952, + 960, 961, 964, 964, 972, 974, 978, 984, 990, 996, + 1002, 1002, 1015, 1015, 1026, 1027, 1028, 1033, 1034, 1037, + 1037, 1056, 1056, 1074, 1074, 1087, 1087, 1098, 1099, 1102, + 1103, 1104, 1109, 1109, 1119, 1120, 1121, 1126, 1127, 1128, + 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, + 1149, 1150, 1153, 1153, 1162, 1162, 1171, 1171, 1180, 1180, + 1189, 1195, 1195, 1204, 1210, 1216, 1222, 1228, 1234, 1240, + 1246, 1252, 1258, 1258, 1266, 1267, 1268, 1271, 1277, 1283, + 1283, 1292, 1292, 1301, 1301, 1310, 1310, 1319, 1319, 1327, + 1328, 1329, 1330, 1331, 1334, 1334, 1343, 1343, 1354, 1355, + 1356, 1361, 1362, 1363, 1364, 1365, 1368, 1373, 1378, 1383, + 1388, 1395, 1395, 1408, 1409, 1410, 1415, 1416, 1417, 1418, + 1419, 1420, 1423, 1429, 1435, 1441, 1441, 1452, 1453, 1456, + 1457, 1458, 1463, 1463, 1473, 1473, 1483, 1484, 1485, 1488, + 1491, 1492, 1495, 1495, 1504, 1504, 1513, 1513, 1525, 1526, + 1527, 1532, 1533, 1534, 1535, 1536, 1537, 1540, 1546, 1552, + 1558, 1564, 1570, 1579, 1579, 1593, 1594, 1597, 1598, 1599, + 1608, 1608, 1634, 1634, 1645, 1646, 1647, 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, 1690, 1691, 1692, 1693, 1694, 1695, + 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, + 1708, 1708, 1717, 1717, 1726, 1726, 1735, 1735, 1744, 1744, + 1753, 1753, 1763, 1763, 1775, 1775, 1786, 1786, 1797, 1803, + 1809, 1815, 1823, 1823, 1835, 1836, 1840, 1841, 1842, 1847, + 1847, 1855, 1856, 1857, 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, 1916, 1916, 1930, 1930, 1939, 1940, 1943, 1944, + 1945, 1952, 1952, 1967, 1967, 1981, 1982, 1985, 1986, 1987, + 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2004, 2006, 2012, 2014, 2014, 2023, 2023, 2032, 2032, 2041, + 2043, 2043, 2052, 2062, 2062, 2075, 2076, 2081, 2082, 2083, + 2090, 2090, 2102, 2102, 2114, 2115, 2120, 2121, 2122, 2129, + 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, + 2142, 2144, 2144, 2153, 2155, 2157, 2163, 2169, 2175, 2175, + 2189, 2189, 2202, 2203, 2206, 2207, 2208, 2213, 2213, 2223, + 2223, 2233, 2234, 2235, 2240, 2241, 2242, 2243, 2244, 2245, + 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, + 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2266, 2266, + 2275, 2281, 2281, 2306, 2306, 2336, 2336, 2347, 2348, 2351, + 2352, 2353, 2358, 2358, 2367, 2367, 2376, 2377, 2380, 2381, + 2382, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, + 2397, 2398, 2399, 2400, 2401, 2402, 2405, 2405, 2414, 2414, + 2423, 2423, 2432, 2432, 2441, 2441, 2450, 2450, 2459, 2459, + 2468, 2468, 2477, 2477, 2486, 2486, 2495, 2495, 2509, 2509, + 2520, 2523, 2523, 2537, 2537, 2548, 2549, 2550, 2555, 2555, + 2565, 2566, 2569, 2570, 2571, 2576, 2577, 2578, 2579, 2580, + 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, + 2591, 2592, 2595, 2597, 2597, 2606, 2606, 2616, 2622, 2630, + 2638, 2638, 2650, 2650, 2662, 2663, 2666, 2667, 2668, 2673, + 2673, 2681, 2682, 2683, 2688, 2689, 2690, 2691, 2692, 2693, + 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2703, 2703, 2712, + 2713, 2714, 2717, 2717, 2727, 2727, 2737, 2743, 2749, 2749, + 2760, 2761, 2764, 2765, 2766, 2771, 2771, 2779, 2780, 2781, + 2786, 2787, 2788, 2789, 2790, 2793, 2793, 2804, 2804, 2817, + 2818, 2819, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2833, + 2833, 2841, 2844, 2844, 2853, 2853, 2862, 2862, 2873, 2874, + 2877, 2878, 2879, 2884, 2884, 2892, 2893, 2894, 2899, 2900, + 2901, 2902, 2903, 2904, 2905, 2908, 2908, 2917, 2917, 2928, + 2928, 2941, 2942, 2943, 2948, 2949, 2950, 2951, 2952, 2953, + 2956, 2962, 2962, 2971, 2977, 2977, 2987, 2987, 3000, 3000, + 3010, 3011, 3012, 3017, 3018, 3019, 3020, 3021, 3022, 3023, + 3024, 3025, 3026, 3027, 3030, 3036, 3036, 3045, 3051, 3051, + 3060, 3066, 3072, 3072, 3081, 3082, 3085, 3085, 3096, 3096, + 3108, 3108, 3118, 3119, 3120, 3126, 3127, 3130, 3130, 3141, + 3149, 3149, 3162, 3163, 3164, 3170, 3170, 3178, 3179, 3180, + 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3194, 3200, 3200, + 3209, 3209, 3220, 3221, 3222, 3227, 3227, 3235, 3236, 3237, + 3242, 3243, 3244, 3245, 3246, 3249, 3249, 3258, 3264, 3270, + 3276, 3276, 3285, 3285, 3296, 3297, 3298, 3303, 3304, 3305, + 3306, 3307, 3310, 3316, 3322, 3328 }; void @@ -6931,9 +7013,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6935 "dhcp4_parser.cc" +#line 7017 "dhcp4_parser.cc" -#line 3311 "dhcp4_parser.yy" +#line 3334 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 67253e7948..1d554861b4 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -432,6 +432,7 @@ namespace isc { namespace dhcp { // socket_type // outbound_interface_value // on_fail_mode + // ssl_mode // control_socket_type_value // auth_type_value // ncr_protocol_value @@ -561,177 +562,183 @@ namespace isc { namespace dhcp { TOKEN_CERT_FILE = 316, // "cert-file" TOKEN_KEY_FILE = 317, // "key-file" TOKEN_KEY_PASSWORD = 318, // "key-password" - TOKEN_CIPHER_LIST = 319, // "cipher-list" - TOKEN_VALID_LIFETIME = 320, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 321, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 322, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 323, // "renew-timer" - TOKEN_REBIND_TIMER = 324, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 325, // "calculate-tee-times" - TOKEN_T1_PERCENT = 326, // "t1-percent" - TOKEN_T2_PERCENT = 327, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 328, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 329, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 330, // "decline-probation-period" - TOKEN_SERVER_TAG = 331, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 332, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 333, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 334, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 335, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 336, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 337, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 338, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 339, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 340, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 341, // "ddns-use-conflict-resolution" - TOKEN_DDNS_TTL_PERCENT = 342, // "ddns-ttl-percent" - TOKEN_DDNS_TTL = 343, // "ddns-ttl" - TOKEN_DDNS_TTL_MIN = 344, // "ddns-ttl-min" - TOKEN_DDNS_TTL_MAX = 345, // "ddns-ttl-mix" - TOKEN_STORE_EXTENDED_INFO = 346, // "store-extended-info" - TOKEN_SUBNET4 = 347, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 348, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 349, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 350, // "4o6-subnet" - TOKEN_OPTION_DEF = 351, // "option-def" - TOKEN_OPTION_DATA = 352, // "option-data" - TOKEN_NAME = 353, // "name" - TOKEN_DATA = 354, // "data" - TOKEN_CODE = 355, // "code" - TOKEN_SPACE = 356, // "space" - TOKEN_CSV_FORMAT = 357, // "csv-format" - TOKEN_ALWAYS_SEND = 358, // "always-send" - TOKEN_NEVER_SEND = 359, // "never-send" - TOKEN_RECORD_TYPES = 360, // "record-types" - TOKEN_ENCAPSULATE = 361, // "encapsulate" - TOKEN_ARRAY = 362, // "array" - TOKEN_PARKED_PACKET_LIMIT = 363, // "parked-packet-limit" - TOKEN_ALLOCATOR = 364, // "allocator" - TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 365, // "ddns-conflict-resolution-mode" - TOKEN_CHECK_WITH_DHCID = 366, // "check-with-dhcid" - TOKEN_NO_CHECK_WITH_DHCID = 367, // "no-check-with-dhcid" - TOKEN_CHECK_EXISTS_WITH_DHCID = 368, // "check-exists-with-dhcid" - TOKEN_NO_CHECK_WITHOUT_DHCID = 369, // "no-check-without-dhcid" - TOKEN_SHARED_NETWORKS = 370, // "shared-networks" - TOKEN_POOLS = 371, // "pools" - TOKEN_POOL = 372, // "pool" - TOKEN_USER_CONTEXT = 373, // "user-context" - TOKEN_COMMENT = 374, // "comment" - TOKEN_SUBNET = 375, // "subnet" - TOKEN_INTERFACE = 376, // "interface" - TOKEN_ID = 377, // "id" - TOKEN_RESERVATIONS_GLOBAL = 378, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 379, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 380, // "reservations-out-of-pool" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 381, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 382, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 383, // "require-client-classes" - TOKEN_EVALUATE_ADDITIONAL_CLASSES = 384, // "evaluate-additional-classes" - TOKEN_TEST = 385, // "test" - TOKEN_TEMPLATE_TEST = 386, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 387, // "only-if-required" - TOKEN_ONLY_IN_ADDITIONAL_LIST = 388, // "only-in-additional-list" - TOKEN_CLIENT_CLASS = 389, // "client-class" - TOKEN_POOL_ID = 390, // "pool-id" - TOKEN_RESERVATIONS = 391, // "reservations" - TOKEN_IP_ADDRESS = 392, // "ip-address" - TOKEN_DUID = 393, // "duid" - TOKEN_HW_ADDRESS = 394, // "hw-address" - TOKEN_CIRCUIT_ID = 395, // "circuit-id" - TOKEN_CLIENT_ID = 396, // "client-id" - TOKEN_HOSTNAME = 397, // "hostname" - TOKEN_FLEX_ID = 398, // "flex-id" - TOKEN_RELAY = 399, // "relay" - TOKEN_IP_ADDRESSES = 400, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 401, // "hooks-libraries" - TOKEN_LIBRARY = 402, // "library" - TOKEN_PARAMETERS = 403, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 404, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 405, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 406, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 407, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 408, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 409, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 410, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 411, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 412, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 413, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 414, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 415, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 416, // "control-socket" - TOKEN_CONTROL_SOCKETS = 417, // "control-sockets" - TOKEN_SOCKET_TYPE = 418, // "socket-type" - TOKEN_UNIX = 419, // "unix" - TOKEN_HTTP = 420, // "http" - TOKEN_HTTPS = 421, // "https" - TOKEN_SOCKET_NAME = 422, // "socket-name" - TOKEN_SOCKET_ADDRESS = 423, // "socket-address" - TOKEN_SOCKET_PORT = 424, // "socket-port" - TOKEN_AUTHENTICATION = 425, // "authentication" - TOKEN_BASIC = 426, // "basic" - TOKEN_REALM = 427, // "realm" - TOKEN_DIRECTORY = 428, // "directory" - TOKEN_CLIENTS = 429, // "clients" - TOKEN_USER_FILE = 430, // "user-file" - TOKEN_PASSWORD_FILE = 431, // "password-file" - TOKEN_CERT_REQUIRED = 432, // "cert-required" - TOKEN_HTTP_HEADERS = 433, // "http-headers" - TOKEN_VALUE = 434, // "value" - TOKEN_DHCP_QUEUE_CONTROL = 435, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 436, // "enable-queue" - TOKEN_QUEUE_TYPE = 437, // "queue-type" - TOKEN_CAPACITY = 438, // "capacity" - TOKEN_DHCP_DDNS = 439, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 440, // "enable-updates" - TOKEN_SERVER_IP = 441, // "server-ip" - TOKEN_SERVER_PORT = 442, // "server-port" - TOKEN_SENDER_IP = 443, // "sender-ip" - TOKEN_SENDER_PORT = 444, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 445, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 446, // "ncr-protocol" - TOKEN_NCR_FORMAT = 447, // "ncr-format" - TOKEN_TCP = 448, // "tcp" - TOKEN_JSON = 449, // "JSON" - TOKEN_WHEN_PRESENT = 450, // "when-present" - TOKEN_NEVER = 451, // "never" - TOKEN_ALWAYS = 452, // "always" - TOKEN_WHEN_NOT_PRESENT = 453, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 454, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 455, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 456, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 457, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 458, // "reservations-lookup-first" - TOKEN_LOGGERS = 459, // "loggers" - TOKEN_OUTPUT_OPTIONS = 460, // "output-options" - TOKEN_OUTPUT = 461, // "output" - TOKEN_DEBUGLEVEL = 462, // "debuglevel" - TOKEN_SEVERITY = 463, // "severity" - TOKEN_FLUSH = 464, // "flush" - TOKEN_MAXSIZE = 465, // "maxsize" - TOKEN_MAXVER = 466, // "maxver" - TOKEN_PATTERN = 467, // "pattern" - TOKEN_COMPATIBILITY = 468, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 469, // "lenient-option-parsing" - TOKEN_IGNORE_DHCP_SERVER_ID = 470, // "ignore-dhcp-server-identifier" - TOKEN_IGNORE_RAI_LINK_SEL = 471, // "ignore-rai-link-selection" - TOKEN_EXCLUDE_FIRST_LAST_24 = 472, // "exclude-first-last-24" - TOKEN_TOPLEVEL_JSON = 473, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 474, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 475, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 476, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 477, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 478, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 479, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 480, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 481, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 482, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 483, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 484, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 485, // SUB_CONFIG_CONTROL - TOKEN_STRING = 486, // "constant string" - TOKEN_INTEGER = 487, // "integer" - TOKEN_FLOAT = 488, // "floating point" - TOKEN_BOOLEAN = 489 // "boolean" + TOKEN_SSL_MODE = 319, // "ssl-mode" + TOKEN_DISABLE = 320, // "disable" + TOKEN_PREFER = 321, // "prefer" + TOKEN_REQUIRE = 322, // "require" + TOKEN_VERIFY_CA = 323, // "verify-ca" + TOKEN_VERIFY_FULL = 324, // "verify-full" + TOKEN_CIPHER_LIST = 325, // "cipher-list" + TOKEN_VALID_LIFETIME = 326, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 327, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 328, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 329, // "renew-timer" + TOKEN_REBIND_TIMER = 330, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 331, // "calculate-tee-times" + TOKEN_T1_PERCENT = 332, // "t1-percent" + TOKEN_T2_PERCENT = 333, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 334, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 335, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 336, // "decline-probation-period" + TOKEN_SERVER_TAG = 337, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 338, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 339, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 340, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 341, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 342, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 343, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 344, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 345, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 346, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 347, // "ddns-use-conflict-resolution" + TOKEN_DDNS_TTL_PERCENT = 348, // "ddns-ttl-percent" + TOKEN_DDNS_TTL = 349, // "ddns-ttl" + TOKEN_DDNS_TTL_MIN = 350, // "ddns-ttl-min" + TOKEN_DDNS_TTL_MAX = 351, // "ddns-ttl-mix" + TOKEN_STORE_EXTENDED_INFO = 352, // "store-extended-info" + TOKEN_SUBNET4 = 353, // "subnet4" + TOKEN_SUBNET_4O6_INTERFACE = 354, // "4o6-interface" + TOKEN_SUBNET_4O6_INTERFACE_ID = 355, // "4o6-interface-id" + TOKEN_SUBNET_4O6_SUBNET = 356, // "4o6-subnet" + TOKEN_OPTION_DEF = 357, // "option-def" + TOKEN_OPTION_DATA = 358, // "option-data" + TOKEN_NAME = 359, // "name" + TOKEN_DATA = 360, // "data" + TOKEN_CODE = 361, // "code" + TOKEN_SPACE = 362, // "space" + TOKEN_CSV_FORMAT = 363, // "csv-format" + TOKEN_ALWAYS_SEND = 364, // "always-send" + TOKEN_NEVER_SEND = 365, // "never-send" + TOKEN_RECORD_TYPES = 366, // "record-types" + TOKEN_ENCAPSULATE = 367, // "encapsulate" + TOKEN_ARRAY = 368, // "array" + TOKEN_PARKED_PACKET_LIMIT = 369, // "parked-packet-limit" + TOKEN_ALLOCATOR = 370, // "allocator" + TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 371, // "ddns-conflict-resolution-mode" + TOKEN_CHECK_WITH_DHCID = 372, // "check-with-dhcid" + TOKEN_NO_CHECK_WITH_DHCID = 373, // "no-check-with-dhcid" + TOKEN_CHECK_EXISTS_WITH_DHCID = 374, // "check-exists-with-dhcid" + TOKEN_NO_CHECK_WITHOUT_DHCID = 375, // "no-check-without-dhcid" + TOKEN_SHARED_NETWORKS = 376, // "shared-networks" + TOKEN_POOLS = 377, // "pools" + TOKEN_POOL = 378, // "pool" + TOKEN_USER_CONTEXT = 379, // "user-context" + TOKEN_COMMENT = 380, // "comment" + TOKEN_SUBNET = 381, // "subnet" + TOKEN_INTERFACE = 382, // "interface" + TOKEN_ID = 383, // "id" + TOKEN_RESERVATIONS_GLOBAL = 384, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 385, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 386, // "reservations-out-of-pool" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 387, // "host-reservation-identifiers" + TOKEN_CLIENT_CLASSES = 388, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 389, // "require-client-classes" + TOKEN_EVALUATE_ADDITIONAL_CLASSES = 390, // "evaluate-additional-classes" + TOKEN_TEST = 391, // "test" + TOKEN_TEMPLATE_TEST = 392, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 393, // "only-if-required" + TOKEN_ONLY_IN_ADDITIONAL_LIST = 394, // "only-in-additional-list" + TOKEN_CLIENT_CLASS = 395, // "client-class" + TOKEN_POOL_ID = 396, // "pool-id" + TOKEN_RESERVATIONS = 397, // "reservations" + TOKEN_IP_ADDRESS = 398, // "ip-address" + TOKEN_DUID = 399, // "duid" + TOKEN_HW_ADDRESS = 400, // "hw-address" + TOKEN_CIRCUIT_ID = 401, // "circuit-id" + TOKEN_CLIENT_ID = 402, // "client-id" + TOKEN_HOSTNAME = 403, // "hostname" + TOKEN_FLEX_ID = 404, // "flex-id" + TOKEN_RELAY = 405, // "relay" + TOKEN_IP_ADDRESSES = 406, // "ip-addresses" + TOKEN_HOOKS_LIBRARIES = 407, // "hooks-libraries" + TOKEN_LIBRARY = 408, // "library" + TOKEN_PARAMETERS = 409, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 410, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 411, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 412, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 413, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 414, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 415, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 416, // "unwarned-reclaim-cycles" + TOKEN_DHCP4O6_PORT = 417, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 418, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 419, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 420, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 421, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 422, // "control-socket" + TOKEN_CONTROL_SOCKETS = 423, // "control-sockets" + TOKEN_SOCKET_TYPE = 424, // "socket-type" + TOKEN_UNIX = 425, // "unix" + TOKEN_HTTP = 426, // "http" + TOKEN_HTTPS = 427, // "https" + TOKEN_SOCKET_NAME = 428, // "socket-name" + TOKEN_SOCKET_ADDRESS = 429, // "socket-address" + TOKEN_SOCKET_PORT = 430, // "socket-port" + TOKEN_AUTHENTICATION = 431, // "authentication" + TOKEN_BASIC = 432, // "basic" + TOKEN_REALM = 433, // "realm" + TOKEN_DIRECTORY = 434, // "directory" + TOKEN_CLIENTS = 435, // "clients" + TOKEN_USER_FILE = 436, // "user-file" + TOKEN_PASSWORD_FILE = 437, // "password-file" + TOKEN_CERT_REQUIRED = 438, // "cert-required" + TOKEN_HTTP_HEADERS = 439, // "http-headers" + TOKEN_VALUE = 440, // "value" + TOKEN_DHCP_QUEUE_CONTROL = 441, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 442, // "enable-queue" + TOKEN_QUEUE_TYPE = 443, // "queue-type" + TOKEN_CAPACITY = 444, // "capacity" + TOKEN_DHCP_DDNS = 445, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 446, // "enable-updates" + TOKEN_SERVER_IP = 447, // "server-ip" + TOKEN_SERVER_PORT = 448, // "server-port" + TOKEN_SENDER_IP = 449, // "sender-ip" + TOKEN_SENDER_PORT = 450, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 451, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 452, // "ncr-protocol" + TOKEN_NCR_FORMAT = 453, // "ncr-format" + TOKEN_TCP = 454, // "tcp" + TOKEN_JSON = 455, // "JSON" + TOKEN_WHEN_PRESENT = 456, // "when-present" + TOKEN_NEVER = 457, // "never" + TOKEN_ALWAYS = 458, // "always" + TOKEN_WHEN_NOT_PRESENT = 459, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 460, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 461, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 462, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 463, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 464, // "reservations-lookup-first" + TOKEN_LOGGERS = 465, // "loggers" + TOKEN_OUTPUT_OPTIONS = 466, // "output-options" + TOKEN_OUTPUT = 467, // "output" + TOKEN_DEBUGLEVEL = 468, // "debuglevel" + TOKEN_SEVERITY = 469, // "severity" + TOKEN_FLUSH = 470, // "flush" + TOKEN_MAXSIZE = 471, // "maxsize" + TOKEN_MAXVER = 472, // "maxver" + TOKEN_PATTERN = 473, // "pattern" + TOKEN_COMPATIBILITY = 474, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 475, // "lenient-option-parsing" + TOKEN_IGNORE_DHCP_SERVER_ID = 476, // "ignore-dhcp-server-identifier" + TOKEN_IGNORE_RAI_LINK_SEL = 477, // "ignore-rai-link-selection" + TOKEN_EXCLUDE_FIRST_LAST_24 = 478, // "exclude-first-last-24" + TOKEN_TOPLEVEL_JSON = 479, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 480, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 481, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 482, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 483, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 484, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 485, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 486, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 487, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 488, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 489, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 490, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 491, // SUB_CONFIG_CONTROL + TOKEN_STRING = 492, // "constant string" + TOKEN_INTEGER = 493, // "integer" + TOKEN_FLOAT = 494, // "floating point" + TOKEN_BOOLEAN = 495 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -748,7 +755,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 235, ///< Number of tokens. + YYNTOKENS = 241, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -814,660 +821,668 @@ namespace isc { namespace dhcp { S_CERT_FILE = 61, // "cert-file" S_KEY_FILE = 62, // "key-file" S_KEY_PASSWORD = 63, // "key-password" - S_CIPHER_LIST = 64, // "cipher-list" - S_VALID_LIFETIME = 65, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 66, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 67, // "max-valid-lifetime" - S_RENEW_TIMER = 68, // "renew-timer" - S_REBIND_TIMER = 69, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 70, // "calculate-tee-times" - S_T1_PERCENT = 71, // "t1-percent" - S_T2_PERCENT = 72, // "t2-percent" - S_CACHE_THRESHOLD = 73, // "cache-threshold" - S_CACHE_MAX_AGE = 74, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 75, // "decline-probation-period" - S_SERVER_TAG = 76, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 77, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 78, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 79, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 80, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 81, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 82, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 83, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 84, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 85, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 86, // "ddns-use-conflict-resolution" - S_DDNS_TTL_PERCENT = 87, // "ddns-ttl-percent" - S_DDNS_TTL = 88, // "ddns-ttl" - S_DDNS_TTL_MIN = 89, // "ddns-ttl-min" - S_DDNS_TTL_MAX = 90, // "ddns-ttl-mix" - S_STORE_EXTENDED_INFO = 91, // "store-extended-info" - S_SUBNET4 = 92, // "subnet4" - S_SUBNET_4O6_INTERFACE = 93, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 94, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 95, // "4o6-subnet" - S_OPTION_DEF = 96, // "option-def" - S_OPTION_DATA = 97, // "option-data" - S_NAME = 98, // "name" - S_DATA = 99, // "data" - S_CODE = 100, // "code" - S_SPACE = 101, // "space" - S_CSV_FORMAT = 102, // "csv-format" - S_ALWAYS_SEND = 103, // "always-send" - S_NEVER_SEND = 104, // "never-send" - S_RECORD_TYPES = 105, // "record-types" - S_ENCAPSULATE = 106, // "encapsulate" - S_ARRAY = 107, // "array" - S_PARKED_PACKET_LIMIT = 108, // "parked-packet-limit" - S_ALLOCATOR = 109, // "allocator" - S_DDNS_CONFLICT_RESOLUTION_MODE = 110, // "ddns-conflict-resolution-mode" - S_CHECK_WITH_DHCID = 111, // "check-with-dhcid" - S_NO_CHECK_WITH_DHCID = 112, // "no-check-with-dhcid" - S_CHECK_EXISTS_WITH_DHCID = 113, // "check-exists-with-dhcid" - S_NO_CHECK_WITHOUT_DHCID = 114, // "no-check-without-dhcid" - S_SHARED_NETWORKS = 115, // "shared-networks" - S_POOLS = 116, // "pools" - S_POOL = 117, // "pool" - S_USER_CONTEXT = 118, // "user-context" - S_COMMENT = 119, // "comment" - S_SUBNET = 120, // "subnet" - S_INTERFACE = 121, // "interface" - S_ID = 122, // "id" - S_RESERVATIONS_GLOBAL = 123, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 124, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 125, // "reservations-out-of-pool" - S_HOST_RESERVATION_IDENTIFIERS = 126, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 127, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 128, // "require-client-classes" - S_EVALUATE_ADDITIONAL_CLASSES = 129, // "evaluate-additional-classes" - S_TEST = 130, // "test" - S_TEMPLATE_TEST = 131, // "template-test" - S_ONLY_IF_REQUIRED = 132, // "only-if-required" - S_ONLY_IN_ADDITIONAL_LIST = 133, // "only-in-additional-list" - S_CLIENT_CLASS = 134, // "client-class" - S_POOL_ID = 135, // "pool-id" - S_RESERVATIONS = 136, // "reservations" - S_IP_ADDRESS = 137, // "ip-address" - S_DUID = 138, // "duid" - S_HW_ADDRESS = 139, // "hw-address" - S_CIRCUIT_ID = 140, // "circuit-id" - S_CLIENT_ID = 141, // "client-id" - S_HOSTNAME = 142, // "hostname" - S_FLEX_ID = 143, // "flex-id" - S_RELAY = 144, // "relay" - S_IP_ADDRESSES = 145, // "ip-addresses" - S_HOOKS_LIBRARIES = 146, // "hooks-libraries" - S_LIBRARY = 147, // "library" - S_PARAMETERS = 148, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 149, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 150, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 151, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 152, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 153, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 154, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 155, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 156, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 157, // "multi-threading" - S_ENABLE_MULTI_THREADING = 158, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 159, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 160, // "packet-queue-size" - S_CONTROL_SOCKET = 161, // "control-socket" - S_CONTROL_SOCKETS = 162, // "control-sockets" - S_SOCKET_TYPE = 163, // "socket-type" - S_UNIX = 164, // "unix" - S_HTTP = 165, // "http" - S_HTTPS = 166, // "https" - S_SOCKET_NAME = 167, // "socket-name" - S_SOCKET_ADDRESS = 168, // "socket-address" - S_SOCKET_PORT = 169, // "socket-port" - S_AUTHENTICATION = 170, // "authentication" - S_BASIC = 171, // "basic" - S_REALM = 172, // "realm" - S_DIRECTORY = 173, // "directory" - S_CLIENTS = 174, // "clients" - S_USER_FILE = 175, // "user-file" - S_PASSWORD_FILE = 176, // "password-file" - S_CERT_REQUIRED = 177, // "cert-required" - S_HTTP_HEADERS = 178, // "http-headers" - S_VALUE = 179, // "value" - S_DHCP_QUEUE_CONTROL = 180, // "dhcp-queue-control" - S_ENABLE_QUEUE = 181, // "enable-queue" - S_QUEUE_TYPE = 182, // "queue-type" - S_CAPACITY = 183, // "capacity" - S_DHCP_DDNS = 184, // "dhcp-ddns" - S_ENABLE_UPDATES = 185, // "enable-updates" - S_SERVER_IP = 186, // "server-ip" - S_SERVER_PORT = 187, // "server-port" - S_SENDER_IP = 188, // "sender-ip" - S_SENDER_PORT = 189, // "sender-port" - S_MAX_QUEUE_SIZE = 190, // "max-queue-size" - S_NCR_PROTOCOL = 191, // "ncr-protocol" - S_NCR_FORMAT = 192, // "ncr-format" - S_TCP = 193, // "tcp" - S_JSON = 194, // "JSON" - S_WHEN_PRESENT = 195, // "when-present" - S_NEVER = 196, // "never" - S_ALWAYS = 197, // "always" - S_WHEN_NOT_PRESENT = 198, // "when-not-present" - S_HOSTNAME_CHAR_SET = 199, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 200, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 201, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 202, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 203, // "reservations-lookup-first" - S_LOGGERS = 204, // "loggers" - S_OUTPUT_OPTIONS = 205, // "output-options" - S_OUTPUT = 206, // "output" - S_DEBUGLEVEL = 207, // "debuglevel" - S_SEVERITY = 208, // "severity" - S_FLUSH = 209, // "flush" - S_MAXSIZE = 210, // "maxsize" - S_MAXVER = 211, // "maxver" - S_PATTERN = 212, // "pattern" - S_COMPATIBILITY = 213, // "compatibility" - S_LENIENT_OPTION_PARSING = 214, // "lenient-option-parsing" - S_IGNORE_DHCP_SERVER_ID = 215, // "ignore-dhcp-server-identifier" - S_IGNORE_RAI_LINK_SEL = 216, // "ignore-rai-link-selection" - S_EXCLUDE_FIRST_LAST_24 = 217, // "exclude-first-last-24" - S_TOPLEVEL_JSON = 218, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 219, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 220, // SUB_DHCP4 - S_SUB_INTERFACES4 = 221, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 222, // SUB_SUBNET4 - S_SUB_POOL4 = 223, // SUB_POOL4 - S_SUB_RESERVATION = 224, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 225, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 226, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 227, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 228, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 229, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 230, // SUB_CONFIG_CONTROL - S_STRING = 231, // "constant string" - S_INTEGER = 232, // "integer" - S_FLOAT = 233, // "floating point" - S_BOOLEAN = 234, // "boolean" - S_YYACCEPT = 235, // $accept - S_start = 236, // start - S_237_1 = 237, // $@1 - S_238_2 = 238, // $@2 - S_239_3 = 239, // $@3 - S_240_4 = 240, // $@4 - S_241_5 = 241, // $@5 - S_242_6 = 242, // $@6 - S_243_7 = 243, // $@7 - S_244_8 = 244, // $@8 - S_245_9 = 245, // $@9 - S_246_10 = 246, // $@10 - S_247_11 = 247, // $@11 - S_248_12 = 248, // $@12 - S_249_13 = 249, // $@13 - S_value = 250, // value - S_sub_json = 251, // sub_json - S_map2 = 252, // map2 - S_253_14 = 253, // $@14 - S_map_value = 254, // map_value - S_map_content = 255, // map_content - S_not_empty_map = 256, // not_empty_map - S_list_generic = 257, // list_generic - S_258_15 = 258, // $@15 - S_list_content = 259, // list_content - S_not_empty_list = 260, // not_empty_list - S_list_strings = 261, // list_strings - S_262_16 = 262, // $@16 - S_list_strings_content = 263, // list_strings_content - S_not_empty_list_strings = 264, // not_empty_list_strings - S_unknown_map_entry = 265, // unknown_map_entry - S_syntax_map = 266, // syntax_map - S_267_17 = 267, // $@17 - S_global_object = 268, // global_object - S_269_18 = 269, // $@18 - S_global_object_comma = 270, // global_object_comma - S_sub_dhcp4 = 271, // sub_dhcp4 - S_272_19 = 272, // $@19 - S_global_params = 273, // global_params - S_global_param = 274, // global_param - S_valid_lifetime = 275, // valid_lifetime - S_min_valid_lifetime = 276, // min_valid_lifetime - S_max_valid_lifetime = 277, // max_valid_lifetime - S_renew_timer = 278, // renew_timer - S_rebind_timer = 279, // rebind_timer - S_calculate_tee_times = 280, // calculate_tee_times - S_t1_percent = 281, // t1_percent - S_t2_percent = 282, // t2_percent - S_cache_threshold = 283, // cache_threshold - S_cache_max_age = 284, // cache_max_age - S_decline_probation_period = 285, // decline_probation_period - S_server_tag = 286, // server_tag - S_287_20 = 287, // $@20 - S_parked_packet_limit = 288, // parked_packet_limit - S_allocator = 289, // allocator - S_290_21 = 290, // $@21 - S_echo_client_id = 291, // echo_client_id - S_match_client_id = 292, // match_client_id - S_authoritative = 293, // authoritative - S_ddns_send_updates = 294, // ddns_send_updates - S_ddns_override_no_update = 295, // ddns_override_no_update - S_ddns_override_client_update = 296, // ddns_override_client_update - S_ddns_replace_client_name = 297, // ddns_replace_client_name - S_298_22 = 298, // $@22 - S_ddns_replace_client_name_value = 299, // ddns_replace_client_name_value - S_ddns_generated_prefix = 300, // ddns_generated_prefix - S_301_23 = 301, // $@23 - S_ddns_qualifying_suffix = 302, // ddns_qualifying_suffix - S_303_24 = 303, // $@24 - S_ddns_update_on_renew = 304, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 305, // ddns_use_conflict_resolution - S_ddns_conflict_resolution_mode = 306, // ddns_conflict_resolution_mode - S_307_25 = 307, // $@25 - S_ddns_conflict_resolution_mode_value = 308, // ddns_conflict_resolution_mode_value - S_ddns_ttl_percent = 309, // ddns_ttl_percent - S_ddns_ttl = 310, // ddns_ttl - S_ddns_ttl_min = 311, // ddns_ttl_min - S_ddns_ttl_max = 312, // ddns_ttl_max - S_hostname_char_set = 313, // hostname_char_set - S_314_26 = 314, // $@26 - S_hostname_char_replacement = 315, // hostname_char_replacement - S_316_27 = 316, // $@27 - S_store_extended_info = 317, // store_extended_info - S_statistic_default_sample_count = 318, // statistic_default_sample_count - S_statistic_default_sample_age = 319, // statistic_default_sample_age - S_early_global_reservations_lookup = 320, // early_global_reservations_lookup - S_ip_reservations_unique = 321, // ip_reservations_unique - S_reservations_lookup_first = 322, // reservations_lookup_first - S_offer_lifetime = 323, // offer_lifetime - S_stash_agent_options = 324, // stash_agent_options - S_interfaces_config = 325, // interfaces_config - S_326_28 = 326, // $@28 - S_interfaces_config_params = 327, // interfaces_config_params - S_interfaces_config_param = 328, // interfaces_config_param - S_sub_interfaces4 = 329, // sub_interfaces4 - S_330_29 = 330, // $@29 - S_interfaces_list = 331, // interfaces_list - S_332_30 = 332, // $@30 - S_dhcp_socket_type = 333, // dhcp_socket_type - S_334_31 = 334, // $@31 - S_socket_type = 335, // socket_type - S_outbound_interface = 336, // outbound_interface - S_337_32 = 337, // $@32 - S_outbound_interface_value = 338, // outbound_interface_value - S_re_detect = 339, // re_detect - S_service_sockets_require_all = 340, // service_sockets_require_all - S_service_sockets_retry_wait_time = 341, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 342, // service_sockets_max_retries - S_lease_database = 343, // lease_database - S_344_33 = 344, // $@33 - S_sanity_checks = 345, // sanity_checks - S_346_34 = 346, // $@34 - S_sanity_checks_params = 347, // sanity_checks_params - S_sanity_checks_param = 348, // sanity_checks_param - S_lease_checks = 349, // lease_checks - S_350_35 = 350, // $@35 - S_extended_info_checks = 351, // extended_info_checks - S_352_36 = 352, // $@36 - S_hosts_database = 353, // hosts_database - S_354_37 = 354, // $@37 - S_hosts_databases = 355, // hosts_databases - S_356_38 = 356, // $@38 - S_database_list = 357, // database_list - S_not_empty_database_list = 358, // not_empty_database_list - S_database = 359, // database - S_360_39 = 360, // $@39 - S_database_map_params = 361, // database_map_params - S_database_map_param = 362, // database_map_param - S_database_type = 363, // database_type - S_364_40 = 364, // $@40 - S_user = 365, // user - S_366_41 = 366, // $@41 - S_password = 367, // password - S_368_42 = 368, // $@42 - S_host = 369, // host - S_370_43 = 370, // $@43 - S_port = 371, // port - S_name = 372, // name - S_373_44 = 373, // $@44 - S_persist = 374, // persist - S_lfc_interval = 375, // lfc_interval - S_readonly = 376, // readonly - S_connect_timeout = 377, // connect_timeout - S_read_timeout = 378, // read_timeout - S_write_timeout = 379, // write_timeout - S_tcp_user_timeout = 380, // tcp_user_timeout - S_max_reconnect_tries = 381, // max_reconnect_tries - S_reconnect_wait_time = 382, // reconnect_wait_time - S_on_fail = 383, // on_fail - S_384_45 = 384, // $@45 - S_on_fail_mode = 385, // on_fail_mode - S_retry_on_startup = 386, // retry_on_startup - S_max_row_errors = 387, // max_row_errors - S_trust_anchor = 388, // trust_anchor - S_389_46 = 389, // $@46 - S_cert_file = 390, // cert_file - S_391_47 = 391, // $@47 - S_key_file = 392, // key_file - S_393_48 = 393, // $@48 - S_key_password = 394, // key_password - S_395_49 = 395, // $@49 - S_cipher_list = 396, // cipher_list - S_397_50 = 397, // $@50 - S_host_reservation_identifiers = 398, // host_reservation_identifiers - S_399_51 = 399, // $@51 - S_host_reservation_identifiers_list = 400, // host_reservation_identifiers_list - S_host_reservation_identifier = 401, // host_reservation_identifier - S_duid_id = 402, // duid_id - S_hw_address_id = 403, // hw_address_id - S_circuit_id = 404, // circuit_id - S_client_id = 405, // client_id - S_flex_id = 406, // flex_id - S_dhcp_multi_threading = 407, // dhcp_multi_threading - S_408_52 = 408, // $@52 - S_multi_threading_params = 409, // multi_threading_params - S_multi_threading_param = 410, // multi_threading_param - S_enable_multi_threading = 411, // enable_multi_threading - S_thread_pool_size = 412, // thread_pool_size - S_packet_queue_size = 413, // packet_queue_size - S_hooks_libraries = 414, // hooks_libraries - S_415_53 = 415, // $@53 - S_hooks_libraries_list = 416, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 417, // not_empty_hooks_libraries_list - S_hooks_library = 418, // hooks_library - S_419_54 = 419, // $@54 - S_sub_hooks_library = 420, // sub_hooks_library - S_421_55 = 421, // $@55 - S_hooks_params = 422, // hooks_params - S_hooks_param = 423, // hooks_param - S_library = 424, // library - S_425_56 = 425, // $@56 - S_parameters = 426, // parameters - S_427_57 = 427, // $@57 - S_expired_leases_processing = 428, // expired_leases_processing - S_429_58 = 429, // $@58 - S_expired_leases_params = 430, // expired_leases_params - S_expired_leases_param = 431, // expired_leases_param - S_reclaim_timer_wait_time = 432, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 433, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 434, // hold_reclaimed_time - S_max_reclaim_leases = 435, // max_reclaim_leases - S_max_reclaim_time = 436, // max_reclaim_time - S_unwarned_reclaim_cycles = 437, // unwarned_reclaim_cycles - S_subnet4_list = 438, // subnet4_list - S_439_59 = 439, // $@59 - S_subnet4_list_content = 440, // subnet4_list_content - S_not_empty_subnet4_list = 441, // not_empty_subnet4_list - S_subnet4 = 442, // subnet4 - S_443_60 = 443, // $@60 - S_sub_subnet4 = 444, // sub_subnet4 - S_445_61 = 445, // $@61 - S_subnet4_params = 446, // subnet4_params - S_subnet4_param = 447, // subnet4_param - S_subnet = 448, // subnet - S_449_62 = 449, // $@62 - S_subnet_4o6_interface = 450, // subnet_4o6_interface - S_451_63 = 451, // $@63 - S_subnet_4o6_interface_id = 452, // subnet_4o6_interface_id - S_453_64 = 453, // $@64 - S_subnet_4o6_subnet = 454, // subnet_4o6_subnet - S_455_65 = 455, // $@65 - S_interface = 456, // interface - S_457_66 = 457, // $@66 - S_client_class = 458, // client_class - S_459_67 = 459, // $@67 - S_network_client_classes = 460, // network_client_classes - S_461_68 = 461, // $@68 - S_require_client_classes = 462, // require_client_classes - S_463_69 = 463, // $@69 - S_evaluate_additional_classes = 464, // evaluate_additional_classes - S_465_70 = 465, // $@70 - S_reservations_global = 466, // reservations_global - S_reservations_in_subnet = 467, // reservations_in_subnet - S_reservations_out_of_pool = 468, // reservations_out_of_pool - S_id = 469, // id - S_shared_networks = 470, // shared_networks - S_471_71 = 471, // $@71 - S_shared_networks_content = 472, // shared_networks_content - S_shared_networks_list = 473, // shared_networks_list - S_shared_network = 474, // shared_network - S_475_72 = 475, // $@72 - S_shared_network_params = 476, // shared_network_params - S_shared_network_param = 477, // shared_network_param - S_option_def_list = 478, // option_def_list - S_479_73 = 479, // $@73 - S_sub_option_def_list = 480, // sub_option_def_list - S_481_74 = 481, // $@74 - S_option_def_list_content = 482, // option_def_list_content - S_not_empty_option_def_list = 483, // not_empty_option_def_list - S_option_def_entry = 484, // option_def_entry - S_485_75 = 485, // $@75 - S_sub_option_def = 486, // sub_option_def - S_487_76 = 487, // $@76 - S_option_def_params = 488, // option_def_params - S_not_empty_option_def_params = 489, // not_empty_option_def_params - S_option_def_param = 490, // option_def_param - S_option_def_name = 491, // option_def_name - S_code = 492, // code - S_option_def_code = 493, // option_def_code - S_option_def_type = 494, // option_def_type + S_SSL_MODE = 64, // "ssl-mode" + S_DISABLE = 65, // "disable" + S_PREFER = 66, // "prefer" + S_REQUIRE = 67, // "require" + S_VERIFY_CA = 68, // "verify-ca" + S_VERIFY_FULL = 69, // "verify-full" + S_CIPHER_LIST = 70, // "cipher-list" + S_VALID_LIFETIME = 71, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 72, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 73, // "max-valid-lifetime" + S_RENEW_TIMER = 74, // "renew-timer" + S_REBIND_TIMER = 75, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 76, // "calculate-tee-times" + S_T1_PERCENT = 77, // "t1-percent" + S_T2_PERCENT = 78, // "t2-percent" + S_CACHE_THRESHOLD = 79, // "cache-threshold" + S_CACHE_MAX_AGE = 80, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 81, // "decline-probation-period" + S_SERVER_TAG = 82, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 83, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 84, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 85, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 86, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 87, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 88, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 89, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 90, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 91, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 92, // "ddns-use-conflict-resolution" + S_DDNS_TTL_PERCENT = 93, // "ddns-ttl-percent" + S_DDNS_TTL = 94, // "ddns-ttl" + S_DDNS_TTL_MIN = 95, // "ddns-ttl-min" + S_DDNS_TTL_MAX = 96, // "ddns-ttl-mix" + S_STORE_EXTENDED_INFO = 97, // "store-extended-info" + S_SUBNET4 = 98, // "subnet4" + S_SUBNET_4O6_INTERFACE = 99, // "4o6-interface" + S_SUBNET_4O6_INTERFACE_ID = 100, // "4o6-interface-id" + S_SUBNET_4O6_SUBNET = 101, // "4o6-subnet" + S_OPTION_DEF = 102, // "option-def" + S_OPTION_DATA = 103, // "option-data" + S_NAME = 104, // "name" + S_DATA = 105, // "data" + S_CODE = 106, // "code" + S_SPACE = 107, // "space" + S_CSV_FORMAT = 108, // "csv-format" + S_ALWAYS_SEND = 109, // "always-send" + S_NEVER_SEND = 110, // "never-send" + S_RECORD_TYPES = 111, // "record-types" + S_ENCAPSULATE = 112, // "encapsulate" + S_ARRAY = 113, // "array" + S_PARKED_PACKET_LIMIT = 114, // "parked-packet-limit" + S_ALLOCATOR = 115, // "allocator" + S_DDNS_CONFLICT_RESOLUTION_MODE = 116, // "ddns-conflict-resolution-mode" + S_CHECK_WITH_DHCID = 117, // "check-with-dhcid" + S_NO_CHECK_WITH_DHCID = 118, // "no-check-with-dhcid" + S_CHECK_EXISTS_WITH_DHCID = 119, // "check-exists-with-dhcid" + S_NO_CHECK_WITHOUT_DHCID = 120, // "no-check-without-dhcid" + S_SHARED_NETWORKS = 121, // "shared-networks" + S_POOLS = 122, // "pools" + S_POOL = 123, // "pool" + S_USER_CONTEXT = 124, // "user-context" + S_COMMENT = 125, // "comment" + S_SUBNET = 126, // "subnet" + S_INTERFACE = 127, // "interface" + S_ID = 128, // "id" + S_RESERVATIONS_GLOBAL = 129, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 130, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 131, // "reservations-out-of-pool" + S_HOST_RESERVATION_IDENTIFIERS = 132, // "host-reservation-identifiers" + S_CLIENT_CLASSES = 133, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 134, // "require-client-classes" + S_EVALUATE_ADDITIONAL_CLASSES = 135, // "evaluate-additional-classes" + S_TEST = 136, // "test" + S_TEMPLATE_TEST = 137, // "template-test" + S_ONLY_IF_REQUIRED = 138, // "only-if-required" + S_ONLY_IN_ADDITIONAL_LIST = 139, // "only-in-additional-list" + S_CLIENT_CLASS = 140, // "client-class" + S_POOL_ID = 141, // "pool-id" + S_RESERVATIONS = 142, // "reservations" + S_IP_ADDRESS = 143, // "ip-address" + S_DUID = 144, // "duid" + S_HW_ADDRESS = 145, // "hw-address" + S_CIRCUIT_ID = 146, // "circuit-id" + S_CLIENT_ID = 147, // "client-id" + S_HOSTNAME = 148, // "hostname" + S_FLEX_ID = 149, // "flex-id" + S_RELAY = 150, // "relay" + S_IP_ADDRESSES = 151, // "ip-addresses" + S_HOOKS_LIBRARIES = 152, // "hooks-libraries" + S_LIBRARY = 153, // "library" + S_PARAMETERS = 154, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 155, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 156, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 157, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 158, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 159, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 160, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 161, // "unwarned-reclaim-cycles" + S_DHCP4O6_PORT = 162, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 163, // "multi-threading" + S_ENABLE_MULTI_THREADING = 164, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 165, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 166, // "packet-queue-size" + S_CONTROL_SOCKET = 167, // "control-socket" + S_CONTROL_SOCKETS = 168, // "control-sockets" + S_SOCKET_TYPE = 169, // "socket-type" + S_UNIX = 170, // "unix" + S_HTTP = 171, // "http" + S_HTTPS = 172, // "https" + S_SOCKET_NAME = 173, // "socket-name" + S_SOCKET_ADDRESS = 174, // "socket-address" + S_SOCKET_PORT = 175, // "socket-port" + S_AUTHENTICATION = 176, // "authentication" + S_BASIC = 177, // "basic" + S_REALM = 178, // "realm" + S_DIRECTORY = 179, // "directory" + S_CLIENTS = 180, // "clients" + S_USER_FILE = 181, // "user-file" + S_PASSWORD_FILE = 182, // "password-file" + S_CERT_REQUIRED = 183, // "cert-required" + S_HTTP_HEADERS = 184, // "http-headers" + S_VALUE = 185, // "value" + S_DHCP_QUEUE_CONTROL = 186, // "dhcp-queue-control" + S_ENABLE_QUEUE = 187, // "enable-queue" + S_QUEUE_TYPE = 188, // "queue-type" + S_CAPACITY = 189, // "capacity" + S_DHCP_DDNS = 190, // "dhcp-ddns" + S_ENABLE_UPDATES = 191, // "enable-updates" + S_SERVER_IP = 192, // "server-ip" + S_SERVER_PORT = 193, // "server-port" + S_SENDER_IP = 194, // "sender-ip" + S_SENDER_PORT = 195, // "sender-port" + S_MAX_QUEUE_SIZE = 196, // "max-queue-size" + S_NCR_PROTOCOL = 197, // "ncr-protocol" + S_NCR_FORMAT = 198, // "ncr-format" + S_TCP = 199, // "tcp" + S_JSON = 200, // "JSON" + S_WHEN_PRESENT = 201, // "when-present" + S_NEVER = 202, // "never" + S_ALWAYS = 203, // "always" + S_WHEN_NOT_PRESENT = 204, // "when-not-present" + S_HOSTNAME_CHAR_SET = 205, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 206, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 207, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 208, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 209, // "reservations-lookup-first" + S_LOGGERS = 210, // "loggers" + S_OUTPUT_OPTIONS = 211, // "output-options" + S_OUTPUT = 212, // "output" + S_DEBUGLEVEL = 213, // "debuglevel" + S_SEVERITY = 214, // "severity" + S_FLUSH = 215, // "flush" + S_MAXSIZE = 216, // "maxsize" + S_MAXVER = 217, // "maxver" + S_PATTERN = 218, // "pattern" + S_COMPATIBILITY = 219, // "compatibility" + S_LENIENT_OPTION_PARSING = 220, // "lenient-option-parsing" + S_IGNORE_DHCP_SERVER_ID = 221, // "ignore-dhcp-server-identifier" + S_IGNORE_RAI_LINK_SEL = 222, // "ignore-rai-link-selection" + S_EXCLUDE_FIRST_LAST_24 = 223, // "exclude-first-last-24" + S_TOPLEVEL_JSON = 224, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 225, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 226, // SUB_DHCP4 + S_SUB_INTERFACES4 = 227, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 228, // SUB_SUBNET4 + S_SUB_POOL4 = 229, // SUB_POOL4 + S_SUB_RESERVATION = 230, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 231, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 232, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 233, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 234, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 235, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 236, // SUB_CONFIG_CONTROL + S_STRING = 237, // "constant string" + S_INTEGER = 238, // "integer" + S_FLOAT = 239, // "floating point" + S_BOOLEAN = 240, // "boolean" + S_YYACCEPT = 241, // $accept + S_start = 242, // start + S_243_1 = 243, // $@1 + S_244_2 = 244, // $@2 + S_245_3 = 245, // $@3 + S_246_4 = 246, // $@4 + S_247_5 = 247, // $@5 + S_248_6 = 248, // $@6 + S_249_7 = 249, // $@7 + S_250_8 = 250, // $@8 + S_251_9 = 251, // $@9 + S_252_10 = 252, // $@10 + S_253_11 = 253, // $@11 + S_254_12 = 254, // $@12 + S_255_13 = 255, // $@13 + S_value = 256, // value + S_sub_json = 257, // sub_json + S_map2 = 258, // map2 + S_259_14 = 259, // $@14 + S_map_value = 260, // map_value + S_map_content = 261, // map_content + S_not_empty_map = 262, // not_empty_map + S_list_generic = 263, // list_generic + S_264_15 = 264, // $@15 + S_list_content = 265, // list_content + S_not_empty_list = 266, // not_empty_list + S_list_strings = 267, // list_strings + S_268_16 = 268, // $@16 + S_list_strings_content = 269, // list_strings_content + S_not_empty_list_strings = 270, // not_empty_list_strings + S_unknown_map_entry = 271, // unknown_map_entry + S_syntax_map = 272, // syntax_map + S_273_17 = 273, // $@17 + S_global_object = 274, // global_object + S_275_18 = 275, // $@18 + S_global_object_comma = 276, // global_object_comma + S_sub_dhcp4 = 277, // sub_dhcp4 + S_278_19 = 278, // $@19 + S_global_params = 279, // global_params + S_global_param = 280, // global_param + S_valid_lifetime = 281, // valid_lifetime + S_min_valid_lifetime = 282, // min_valid_lifetime + S_max_valid_lifetime = 283, // max_valid_lifetime + S_renew_timer = 284, // renew_timer + S_rebind_timer = 285, // rebind_timer + S_calculate_tee_times = 286, // calculate_tee_times + S_t1_percent = 287, // t1_percent + S_t2_percent = 288, // t2_percent + S_cache_threshold = 289, // cache_threshold + S_cache_max_age = 290, // cache_max_age + S_decline_probation_period = 291, // decline_probation_period + S_server_tag = 292, // server_tag + S_293_20 = 293, // $@20 + S_parked_packet_limit = 294, // parked_packet_limit + S_allocator = 295, // allocator + S_296_21 = 296, // $@21 + S_echo_client_id = 297, // echo_client_id + S_match_client_id = 298, // match_client_id + S_authoritative = 299, // authoritative + S_ddns_send_updates = 300, // ddns_send_updates + S_ddns_override_no_update = 301, // ddns_override_no_update + S_ddns_override_client_update = 302, // ddns_override_client_update + S_ddns_replace_client_name = 303, // ddns_replace_client_name + S_304_22 = 304, // $@22 + S_ddns_replace_client_name_value = 305, // ddns_replace_client_name_value + S_ddns_generated_prefix = 306, // ddns_generated_prefix + S_307_23 = 307, // $@23 + S_ddns_qualifying_suffix = 308, // ddns_qualifying_suffix + S_309_24 = 309, // $@24 + S_ddns_update_on_renew = 310, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 311, // ddns_use_conflict_resolution + S_ddns_conflict_resolution_mode = 312, // ddns_conflict_resolution_mode + S_313_25 = 313, // $@25 + S_ddns_conflict_resolution_mode_value = 314, // ddns_conflict_resolution_mode_value + S_ddns_ttl_percent = 315, // ddns_ttl_percent + S_ddns_ttl = 316, // ddns_ttl + S_ddns_ttl_min = 317, // ddns_ttl_min + S_ddns_ttl_max = 318, // ddns_ttl_max + S_hostname_char_set = 319, // hostname_char_set + S_320_26 = 320, // $@26 + S_hostname_char_replacement = 321, // hostname_char_replacement + S_322_27 = 322, // $@27 + S_store_extended_info = 323, // store_extended_info + S_statistic_default_sample_count = 324, // statistic_default_sample_count + S_statistic_default_sample_age = 325, // statistic_default_sample_age + S_early_global_reservations_lookup = 326, // early_global_reservations_lookup + S_ip_reservations_unique = 327, // ip_reservations_unique + S_reservations_lookup_first = 328, // reservations_lookup_first + S_offer_lifetime = 329, // offer_lifetime + S_stash_agent_options = 330, // stash_agent_options + S_interfaces_config = 331, // interfaces_config + S_332_28 = 332, // $@28 + S_interfaces_config_params = 333, // interfaces_config_params + S_interfaces_config_param = 334, // interfaces_config_param + S_sub_interfaces4 = 335, // sub_interfaces4 + S_336_29 = 336, // $@29 + S_interfaces_list = 337, // interfaces_list + S_338_30 = 338, // $@30 + S_dhcp_socket_type = 339, // dhcp_socket_type + S_340_31 = 340, // $@31 + S_socket_type = 341, // socket_type + S_outbound_interface = 342, // outbound_interface + S_343_32 = 343, // $@32 + S_outbound_interface_value = 344, // outbound_interface_value + S_re_detect = 345, // re_detect + S_service_sockets_require_all = 346, // service_sockets_require_all + S_service_sockets_retry_wait_time = 347, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 348, // service_sockets_max_retries + S_lease_database = 349, // lease_database + S_350_33 = 350, // $@33 + S_sanity_checks = 351, // sanity_checks + S_352_34 = 352, // $@34 + S_sanity_checks_params = 353, // sanity_checks_params + S_sanity_checks_param = 354, // sanity_checks_param + S_lease_checks = 355, // lease_checks + S_356_35 = 356, // $@35 + S_extended_info_checks = 357, // extended_info_checks + S_358_36 = 358, // $@36 + S_hosts_database = 359, // hosts_database + S_360_37 = 360, // $@37 + S_hosts_databases = 361, // hosts_databases + S_362_38 = 362, // $@38 + S_database_list = 363, // database_list + S_not_empty_database_list = 364, // not_empty_database_list + S_database = 365, // database + S_366_39 = 366, // $@39 + S_database_map_params = 367, // database_map_params + S_database_map_param = 368, // database_map_param + S_database_type = 369, // database_type + S_370_40 = 370, // $@40 + S_user = 371, // user + S_372_41 = 372, // $@41 + S_password = 373, // password + S_374_42 = 374, // $@42 + S_host = 375, // host + S_376_43 = 376, // $@43 + S_port = 377, // port + S_name = 378, // name + S_379_44 = 379, // $@44 + S_persist = 380, // persist + S_lfc_interval = 381, // lfc_interval + S_readonly = 382, // readonly + S_connect_timeout = 383, // connect_timeout + S_read_timeout = 384, // read_timeout + S_write_timeout = 385, // write_timeout + S_tcp_user_timeout = 386, // tcp_user_timeout + S_max_reconnect_tries = 387, // max_reconnect_tries + S_reconnect_wait_time = 388, // reconnect_wait_time + S_on_fail = 389, // on_fail + S_390_45 = 390, // $@45 + S_on_fail_mode = 391, // on_fail_mode + S_retry_on_startup = 392, // retry_on_startup + S_max_row_errors = 393, // max_row_errors + S_trust_anchor = 394, // trust_anchor + S_395_46 = 395, // $@46 + S_cert_file = 396, // cert_file + S_397_47 = 397, // $@47 + S_key_file = 398, // key_file + S_399_48 = 399, // $@48 + S_key_password = 400, // key_password + S_401_49 = 401, // $@49 + S_ssl_mode = 402, // ssl_mode + S_403_50 = 403, // $@50 + S_cipher_list = 404, // cipher_list + S_405_51 = 405, // $@51 + S_host_reservation_identifiers = 406, // host_reservation_identifiers + S_407_52 = 407, // $@52 + S_host_reservation_identifiers_list = 408, // host_reservation_identifiers_list + S_host_reservation_identifier = 409, // host_reservation_identifier + S_duid_id = 410, // duid_id + S_hw_address_id = 411, // hw_address_id + S_circuit_id = 412, // circuit_id + S_client_id = 413, // client_id + S_flex_id = 414, // flex_id + S_dhcp_multi_threading = 415, // dhcp_multi_threading + S_416_53 = 416, // $@53 + S_multi_threading_params = 417, // multi_threading_params + S_multi_threading_param = 418, // multi_threading_param + S_enable_multi_threading = 419, // enable_multi_threading + S_thread_pool_size = 420, // thread_pool_size + S_packet_queue_size = 421, // packet_queue_size + S_hooks_libraries = 422, // hooks_libraries + S_423_54 = 423, // $@54 + S_hooks_libraries_list = 424, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 425, // not_empty_hooks_libraries_list + S_hooks_library = 426, // hooks_library + S_427_55 = 427, // $@55 + S_sub_hooks_library = 428, // sub_hooks_library + S_429_56 = 429, // $@56 + S_hooks_params = 430, // hooks_params + S_hooks_param = 431, // hooks_param + S_library = 432, // library + S_433_57 = 433, // $@57 + S_parameters = 434, // parameters + S_435_58 = 435, // $@58 + S_expired_leases_processing = 436, // expired_leases_processing + S_437_59 = 437, // $@59 + S_expired_leases_params = 438, // expired_leases_params + S_expired_leases_param = 439, // expired_leases_param + S_reclaim_timer_wait_time = 440, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 441, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 442, // hold_reclaimed_time + S_max_reclaim_leases = 443, // max_reclaim_leases + S_max_reclaim_time = 444, // max_reclaim_time + S_unwarned_reclaim_cycles = 445, // unwarned_reclaim_cycles + S_subnet4_list = 446, // subnet4_list + S_447_60 = 447, // $@60 + S_subnet4_list_content = 448, // subnet4_list_content + S_not_empty_subnet4_list = 449, // not_empty_subnet4_list + S_subnet4 = 450, // subnet4 + S_451_61 = 451, // $@61 + S_sub_subnet4 = 452, // sub_subnet4 + S_453_62 = 453, // $@62 + S_subnet4_params = 454, // subnet4_params + S_subnet4_param = 455, // subnet4_param + S_subnet = 456, // subnet + S_457_63 = 457, // $@63 + S_subnet_4o6_interface = 458, // subnet_4o6_interface + S_459_64 = 459, // $@64 + S_subnet_4o6_interface_id = 460, // subnet_4o6_interface_id + S_461_65 = 461, // $@65 + S_subnet_4o6_subnet = 462, // subnet_4o6_subnet + S_463_66 = 463, // $@66 + S_interface = 464, // interface + S_465_67 = 465, // $@67 + S_client_class = 466, // client_class + S_467_68 = 467, // $@68 + S_network_client_classes = 468, // network_client_classes + S_469_69 = 469, // $@69 + S_require_client_classes = 470, // require_client_classes + S_471_70 = 471, // $@70 + S_evaluate_additional_classes = 472, // evaluate_additional_classes + S_473_71 = 473, // $@71 + S_reservations_global = 474, // reservations_global + S_reservations_in_subnet = 475, // reservations_in_subnet + S_reservations_out_of_pool = 476, // reservations_out_of_pool + S_id = 477, // id + S_shared_networks = 478, // shared_networks + S_479_72 = 479, // $@72 + S_shared_networks_content = 480, // shared_networks_content + S_shared_networks_list = 481, // shared_networks_list + S_shared_network = 482, // shared_network + S_483_73 = 483, // $@73 + S_shared_network_params = 484, // shared_network_params + S_shared_network_param = 485, // shared_network_param + S_option_def_list = 486, // option_def_list + S_487_74 = 487, // $@74 + S_sub_option_def_list = 488, // sub_option_def_list + S_489_75 = 489, // $@75 + S_option_def_list_content = 490, // option_def_list_content + S_not_empty_option_def_list = 491, // not_empty_option_def_list + S_option_def_entry = 492, // option_def_entry + S_493_76 = 493, // $@76 + S_sub_option_def = 494, // sub_option_def S_495_77 = 495, // $@77 - S_option_def_record_types = 496, // option_def_record_types - S_497_78 = 497, // $@78 - S_space = 498, // space - S_499_79 = 499, // $@79 - S_option_def_space = 500, // option_def_space - S_option_def_encapsulate = 501, // option_def_encapsulate - S_502_80 = 502, // $@80 - S_option_def_array = 503, // option_def_array - S_option_data_list = 504, // option_data_list - S_505_81 = 505, // $@81 - S_option_data_list_content = 506, // option_data_list_content - S_not_empty_option_data_list = 507, // not_empty_option_data_list - S_option_data_entry = 508, // option_data_entry - S_509_82 = 509, // $@82 - S_sub_option_data = 510, // sub_option_data - S_511_83 = 511, // $@83 - S_option_data_params = 512, // option_data_params - S_not_empty_option_data_params = 513, // not_empty_option_data_params - S_option_data_param = 514, // option_data_param - S_option_data_name = 515, // option_data_name - S_option_data_data = 516, // option_data_data - S_517_84 = 517, // $@84 - S_option_data_code = 518, // option_data_code - S_option_data_space = 519, // option_data_space - S_option_data_csv_format = 520, // option_data_csv_format - S_option_data_always_send = 521, // option_data_always_send - S_option_data_never_send = 522, // option_data_never_send - S_option_data_client_classes = 523, // option_data_client_classes - S_524_85 = 524, // $@85 - S_pools_list = 525, // pools_list - S_526_86 = 526, // $@86 - S_pools_list_content = 527, // pools_list_content - S_not_empty_pools_list = 528, // not_empty_pools_list - S_pool_list_entry = 529, // pool_list_entry - S_530_87 = 530, // $@87 - S_sub_pool4 = 531, // sub_pool4 - S_532_88 = 532, // $@88 - S_pool_params = 533, // pool_params - S_pool_param = 534, // pool_param - S_pool_entry = 535, // pool_entry - S_536_89 = 536, // $@89 - S_pool_id = 537, // pool_id - S_user_context = 538, // user_context - S_539_90 = 539, // $@90 - S_comment = 540, // comment - S_541_91 = 541, // $@91 - S_reservations = 542, // reservations - S_543_92 = 543, // $@92 - S_reservations_list = 544, // reservations_list - S_not_empty_reservations_list = 545, // not_empty_reservations_list - S_reservation = 546, // reservation - S_547_93 = 547, // $@93 - S_sub_reservation = 548, // sub_reservation - S_549_94 = 549, // $@94 - S_reservation_params = 550, // reservation_params - S_not_empty_reservation_params = 551, // not_empty_reservation_params - S_reservation_param = 552, // reservation_param - S_next_server = 553, // next_server - S_554_95 = 554, // $@95 - S_server_hostname = 555, // server_hostname - S_556_96 = 556, // $@96 - S_boot_file_name = 557, // boot_file_name - S_558_97 = 558, // $@97 - S_ip_address = 559, // ip_address - S_560_98 = 560, // $@98 - S_duid = 561, // duid - S_562_99 = 562, // $@99 - S_hw_address = 563, // hw_address - S_564_100 = 564, // $@100 - S_client_id_value = 565, // client_id_value - S_566_101 = 566, // $@101 - S_circuit_id_value = 567, // circuit_id_value - S_568_102 = 568, // $@102 - S_flex_id_value = 569, // flex_id_value - S_570_103 = 570, // $@103 - S_hostname = 571, // hostname - S_572_104 = 572, // $@104 - S_reservation_client_classes = 573, // reservation_client_classes - S_574_105 = 574, // $@105 - S_relay = 575, // relay - S_576_106 = 576, // $@106 - S_relay_map = 577, // relay_map - S_ip_addresses = 578, // ip_addresses - S_579_107 = 579, // $@107 - S_client_classes = 580, // client_classes - S_581_108 = 581, // $@108 - S_client_classes_list = 582, // client_classes_list - S_client_class_entry = 583, // client_class_entry - S_584_109 = 584, // $@109 - S_client_class_params = 585, // client_class_params - S_not_empty_client_class_params = 586, // not_empty_client_class_params - S_client_class_param = 587, // client_class_param - S_client_class_name = 588, // client_class_name - S_client_class_test = 589, // client_class_test - S_590_110 = 590, // $@110 - S_client_class_template_test = 591, // client_class_template_test - S_592_111 = 592, // $@111 - S_only_if_required = 593, // only_if_required - S_only_in_additional_list = 594, // only_in_additional_list - S_dhcp4o6_port = 595, // dhcp4o6_port - S_control_socket = 596, // control_socket - S_597_112 = 597, // $@112 - S_control_sockets = 598, // control_sockets - S_599_113 = 599, // $@113 - S_control_socket_list = 600, // control_socket_list - S_not_empty_control_socket_list = 601, // not_empty_control_socket_list - S_control_socket_entry = 602, // control_socket_entry - S_603_114 = 603, // $@114 - S_control_socket_params = 604, // control_socket_params - S_control_socket_param = 605, // control_socket_param - S_control_socket_type = 606, // control_socket_type - S_607_115 = 607, // $@115 - S_control_socket_type_value = 608, // control_socket_type_value - S_control_socket_name = 609, // control_socket_name - S_610_116 = 610, // $@116 - S_control_socket_address = 611, // control_socket_address - S_612_117 = 612, // $@117 - S_control_socket_port = 613, // control_socket_port - S_cert_required = 614, // cert_required - S_http_headers = 615, // http_headers - S_616_118 = 616, // $@118 - S_http_header_list = 617, // http_header_list - S_not_empty_http_header_list = 618, // not_empty_http_header_list - S_http_header = 619, // http_header - S_620_119 = 620, // $@119 - S_http_header_params = 621, // http_header_params - S_http_header_param = 622, // http_header_param - S_header_value = 623, // header_value - S_624_120 = 624, // $@120 - S_authentication = 625, // authentication - S_626_121 = 626, // $@121 - S_auth_params = 627, // auth_params - S_auth_param = 628, // auth_param - S_auth_type = 629, // auth_type - S_630_122 = 630, // $@122 - S_auth_type_value = 631, // auth_type_value - S_realm = 632, // realm - S_633_123 = 633, // $@123 - S_directory = 634, // directory - S_635_124 = 635, // $@124 - S_clients = 636, // clients - S_637_125 = 637, // $@125 - S_clients_list = 638, // clients_list - S_not_empty_clients_list = 639, // not_empty_clients_list - S_basic_auth = 640, // basic_auth - S_641_126 = 641, // $@126 - S_clients_params = 642, // clients_params - S_clients_param = 643, // clients_param - S_user_file = 644, // user_file - S_645_127 = 645, // $@127 - S_password_file = 646, // password_file - S_647_128 = 647, // $@128 - S_dhcp_queue_control = 648, // dhcp_queue_control - S_649_129 = 649, // $@129 - S_queue_control_params = 650, // queue_control_params - S_queue_control_param = 651, // queue_control_param - S_enable_queue = 652, // enable_queue - S_queue_type = 653, // queue_type - S_654_130 = 654, // $@130 - S_capacity = 655, // capacity - S_arbitrary_map_entry = 656, // arbitrary_map_entry - S_657_131 = 657, // $@131 - S_dhcp_ddns = 658, // dhcp_ddns - S_659_132 = 659, // $@132 - S_sub_dhcp_ddns = 660, // sub_dhcp_ddns - S_661_133 = 661, // $@133 - S_dhcp_ddns_params = 662, // dhcp_ddns_params - S_dhcp_ddns_param = 663, // dhcp_ddns_param - S_enable_updates = 664, // enable_updates - S_server_ip = 665, // server_ip - S_666_134 = 666, // $@134 - S_server_port = 667, // server_port - S_sender_ip = 668, // sender_ip - S_669_135 = 669, // $@135 - S_sender_port = 670, // sender_port - S_max_queue_size = 671, // max_queue_size - S_ncr_protocol = 672, // ncr_protocol - S_673_136 = 673, // $@136 - S_ncr_protocol_value = 674, // ncr_protocol_value - S_ncr_format = 675, // ncr_format - S_676_137 = 676, // $@137 - S_config_control = 677, // config_control - S_678_138 = 678, // $@138 - S_sub_config_control = 679, // sub_config_control - S_680_139 = 680, // $@139 - S_config_control_params = 681, // config_control_params - S_config_control_param = 682, // config_control_param - S_config_databases = 683, // config_databases - S_684_140 = 684, // $@140 - S_config_fetch_wait_time = 685, // config_fetch_wait_time - S_loggers = 686, // loggers - S_687_141 = 687, // $@141 - S_loggers_entries = 688, // loggers_entries - S_logger_entry = 689, // logger_entry - S_690_142 = 690, // $@142 - S_logger_params = 691, // logger_params - S_logger_param = 692, // logger_param - S_debuglevel = 693, // debuglevel - S_severity = 694, // severity - S_695_143 = 695, // $@143 - S_output_options_list = 696, // output_options_list - S_697_144 = 697, // $@144 - S_output_options_list_content = 698, // output_options_list_content - S_output_entry = 699, // output_entry - S_700_145 = 700, // $@145 - S_output_params_list = 701, // output_params_list - S_output_params = 702, // output_params - S_output = 703, // output - S_704_146 = 704, // $@146 - S_flush = 705, // flush - S_maxsize = 706, // maxsize - S_maxver = 707, // maxver - S_pattern = 708, // pattern - S_709_147 = 709, // $@147 - S_compatibility = 710, // compatibility - S_711_148 = 711, // $@148 - S_compatibility_params = 712, // compatibility_params - S_compatibility_param = 713, // compatibility_param - S_lenient_option_parsing = 714, // lenient_option_parsing - S_ignore_dhcp_server_identifier = 715, // ignore_dhcp_server_identifier - S_ignore_rai_link_selection = 716, // ignore_rai_link_selection - S_exclude_first_last_24 = 717 // exclude_first_last_24 + S_option_def_params = 496, // option_def_params + S_not_empty_option_def_params = 497, // not_empty_option_def_params + S_option_def_param = 498, // option_def_param + S_option_def_name = 499, // option_def_name + S_code = 500, // code + S_option_def_code = 501, // option_def_code + S_option_def_type = 502, // option_def_type + S_503_78 = 503, // $@78 + S_option_def_record_types = 504, // option_def_record_types + S_505_79 = 505, // $@79 + S_space = 506, // space + S_507_80 = 507, // $@80 + S_option_def_space = 508, // option_def_space + S_option_def_encapsulate = 509, // option_def_encapsulate + S_510_81 = 510, // $@81 + S_option_def_array = 511, // option_def_array + S_option_data_list = 512, // option_data_list + S_513_82 = 513, // $@82 + S_option_data_list_content = 514, // option_data_list_content + S_not_empty_option_data_list = 515, // not_empty_option_data_list + S_option_data_entry = 516, // option_data_entry + S_517_83 = 517, // $@83 + S_sub_option_data = 518, // sub_option_data + S_519_84 = 519, // $@84 + S_option_data_params = 520, // option_data_params + S_not_empty_option_data_params = 521, // not_empty_option_data_params + S_option_data_param = 522, // option_data_param + S_option_data_name = 523, // option_data_name + S_option_data_data = 524, // option_data_data + S_525_85 = 525, // $@85 + S_option_data_code = 526, // option_data_code + S_option_data_space = 527, // option_data_space + S_option_data_csv_format = 528, // option_data_csv_format + S_option_data_always_send = 529, // option_data_always_send + S_option_data_never_send = 530, // option_data_never_send + S_option_data_client_classes = 531, // option_data_client_classes + S_532_86 = 532, // $@86 + S_pools_list = 533, // pools_list + S_534_87 = 534, // $@87 + S_pools_list_content = 535, // pools_list_content + S_not_empty_pools_list = 536, // not_empty_pools_list + S_pool_list_entry = 537, // pool_list_entry + S_538_88 = 538, // $@88 + S_sub_pool4 = 539, // sub_pool4 + S_540_89 = 540, // $@89 + S_pool_params = 541, // pool_params + S_pool_param = 542, // pool_param + S_pool_entry = 543, // pool_entry + S_544_90 = 544, // $@90 + S_pool_id = 545, // pool_id + S_user_context = 546, // user_context + S_547_91 = 547, // $@91 + S_comment = 548, // comment + S_549_92 = 549, // $@92 + S_reservations = 550, // reservations + S_551_93 = 551, // $@93 + S_reservations_list = 552, // reservations_list + S_not_empty_reservations_list = 553, // not_empty_reservations_list + S_reservation = 554, // reservation + S_555_94 = 555, // $@94 + S_sub_reservation = 556, // sub_reservation + S_557_95 = 557, // $@95 + S_reservation_params = 558, // reservation_params + S_not_empty_reservation_params = 559, // not_empty_reservation_params + S_reservation_param = 560, // reservation_param + S_next_server = 561, // next_server + S_562_96 = 562, // $@96 + S_server_hostname = 563, // server_hostname + S_564_97 = 564, // $@97 + S_boot_file_name = 565, // boot_file_name + S_566_98 = 566, // $@98 + S_ip_address = 567, // ip_address + S_568_99 = 568, // $@99 + S_duid = 569, // duid + S_570_100 = 570, // $@100 + S_hw_address = 571, // hw_address + S_572_101 = 572, // $@101 + S_client_id_value = 573, // client_id_value + S_574_102 = 574, // $@102 + S_circuit_id_value = 575, // circuit_id_value + S_576_103 = 576, // $@103 + S_flex_id_value = 577, // flex_id_value + S_578_104 = 578, // $@104 + S_hostname = 579, // hostname + S_580_105 = 580, // $@105 + S_reservation_client_classes = 581, // reservation_client_classes + S_582_106 = 582, // $@106 + S_relay = 583, // relay + S_584_107 = 584, // $@107 + S_relay_map = 585, // relay_map + S_ip_addresses = 586, // ip_addresses + S_587_108 = 587, // $@108 + S_client_classes = 588, // client_classes + S_589_109 = 589, // $@109 + S_client_classes_list = 590, // client_classes_list + S_client_class_entry = 591, // client_class_entry + S_592_110 = 592, // $@110 + S_client_class_params = 593, // client_class_params + S_not_empty_client_class_params = 594, // not_empty_client_class_params + S_client_class_param = 595, // client_class_param + S_client_class_name = 596, // client_class_name + S_client_class_test = 597, // client_class_test + S_598_111 = 598, // $@111 + S_client_class_template_test = 599, // client_class_template_test + S_600_112 = 600, // $@112 + S_only_if_required = 601, // only_if_required + S_only_in_additional_list = 602, // only_in_additional_list + S_dhcp4o6_port = 603, // dhcp4o6_port + S_control_socket = 604, // control_socket + S_605_113 = 605, // $@113 + S_control_sockets = 606, // control_sockets + S_607_114 = 607, // $@114 + S_control_socket_list = 608, // control_socket_list + S_not_empty_control_socket_list = 609, // not_empty_control_socket_list + S_control_socket_entry = 610, // control_socket_entry + S_611_115 = 611, // $@115 + S_control_socket_params = 612, // control_socket_params + S_control_socket_param = 613, // control_socket_param + S_control_socket_type = 614, // control_socket_type + S_615_116 = 615, // $@116 + S_control_socket_type_value = 616, // control_socket_type_value + S_control_socket_name = 617, // control_socket_name + S_618_117 = 618, // $@117 + S_control_socket_address = 619, // control_socket_address + S_620_118 = 620, // $@118 + S_control_socket_port = 621, // control_socket_port + S_cert_required = 622, // cert_required + S_http_headers = 623, // http_headers + S_624_119 = 624, // $@119 + S_http_header_list = 625, // http_header_list + S_not_empty_http_header_list = 626, // not_empty_http_header_list + S_http_header = 627, // http_header + S_628_120 = 628, // $@120 + S_http_header_params = 629, // http_header_params + S_http_header_param = 630, // http_header_param + S_header_value = 631, // header_value + S_632_121 = 632, // $@121 + S_authentication = 633, // authentication + S_634_122 = 634, // $@122 + S_auth_params = 635, // auth_params + S_auth_param = 636, // auth_param + S_auth_type = 637, // auth_type + S_638_123 = 638, // $@123 + S_auth_type_value = 639, // auth_type_value + S_realm = 640, // realm + S_641_124 = 641, // $@124 + S_directory = 642, // directory + S_643_125 = 643, // $@125 + S_clients = 644, // clients + S_645_126 = 645, // $@126 + S_clients_list = 646, // clients_list + S_not_empty_clients_list = 647, // not_empty_clients_list + S_basic_auth = 648, // basic_auth + S_649_127 = 649, // $@127 + S_clients_params = 650, // clients_params + S_clients_param = 651, // clients_param + S_user_file = 652, // user_file + S_653_128 = 653, // $@128 + S_password_file = 654, // password_file + S_655_129 = 655, // $@129 + S_dhcp_queue_control = 656, // dhcp_queue_control + S_657_130 = 657, // $@130 + S_queue_control_params = 658, // queue_control_params + S_queue_control_param = 659, // queue_control_param + S_enable_queue = 660, // enable_queue + S_queue_type = 661, // queue_type + S_662_131 = 662, // $@131 + S_capacity = 663, // capacity + S_arbitrary_map_entry = 664, // arbitrary_map_entry + S_665_132 = 665, // $@132 + S_dhcp_ddns = 666, // dhcp_ddns + S_667_133 = 667, // $@133 + S_sub_dhcp_ddns = 668, // sub_dhcp_ddns + S_669_134 = 669, // $@134 + S_dhcp_ddns_params = 670, // dhcp_ddns_params + S_dhcp_ddns_param = 671, // dhcp_ddns_param + S_enable_updates = 672, // enable_updates + S_server_ip = 673, // server_ip + S_674_135 = 674, // $@135 + S_server_port = 675, // server_port + S_sender_ip = 676, // sender_ip + S_677_136 = 677, // $@136 + S_sender_port = 678, // sender_port + S_max_queue_size = 679, // max_queue_size + S_ncr_protocol = 680, // ncr_protocol + S_681_137 = 681, // $@137 + S_ncr_protocol_value = 682, // ncr_protocol_value + S_ncr_format = 683, // ncr_format + S_684_138 = 684, // $@138 + S_config_control = 685, // config_control + S_686_139 = 686, // $@139 + S_sub_config_control = 687, // sub_config_control + S_688_140 = 688, // $@140 + S_config_control_params = 689, // config_control_params + S_config_control_param = 690, // config_control_param + S_config_databases = 691, // config_databases + S_692_141 = 692, // $@141 + S_config_fetch_wait_time = 693, // config_fetch_wait_time + S_loggers = 694, // loggers + S_695_142 = 695, // $@142 + S_loggers_entries = 696, // loggers_entries + S_logger_entry = 697, // logger_entry + S_698_143 = 698, // $@143 + S_logger_params = 699, // logger_params + S_logger_param = 700, // logger_param + S_debuglevel = 701, // debuglevel + S_severity = 702, // severity + S_703_144 = 703, // $@144 + S_output_options_list = 704, // output_options_list + S_705_145 = 705, // $@145 + S_output_options_list_content = 706, // output_options_list_content + S_output_entry = 707, // output_entry + S_708_146 = 708, // $@146 + S_output_params_list = 709, // output_params_list + S_output_params = 710, // output_params + S_output = 711, // output + S_712_147 = 712, // $@147 + S_flush = 713, // flush + S_maxsize = 714, // maxsize + S_maxver = 715, // maxver + S_pattern = 716, // pattern + S_717_148 = 717, // $@148 + S_compatibility = 718, // compatibility + S_719_149 = 719, // $@149 + S_compatibility_params = 720, // compatibility_params + S_compatibility_param = 721, // compatibility_param + S_lenient_option_parsing = 722, // lenient_option_parsing + S_ignore_dhcp_server_identifier = 723, // ignore_dhcp_server_identifier + S_ignore_rai_link_selection = 724, // ignore_rai_link_selection + S_exclude_first_last_24 = 725 // exclude_first_last_24 }; }; @@ -1511,6 +1526,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -1657,6 +1673,7 @@ switch (yykind) case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -2836,6 +2853,96 @@ switch (yykind) return symbol_type (token::TOKEN_KEY_PASSWORD, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SSL_MODE (location_type l) + { + return symbol_type (token::TOKEN_SSL_MODE, std::move (l)); + } +#else + static + symbol_type + make_SSL_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_SSL_MODE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DISABLE (location_type l) + { + return symbol_type (token::TOKEN_DISABLE, std::move (l)); + } +#else + static + symbol_type + make_DISABLE (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PREFER (location_type l) + { + return symbol_type (token::TOKEN_PREFER, std::move (l)); + } +#else + static + symbol_type + make_PREFER (const location_type& l) + { + return symbol_type (token::TOKEN_PREFER, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_REQUIRE (location_type l) + { + return symbol_type (token::TOKEN_REQUIRE, std::move (l)); + } +#else + static + symbol_type + make_REQUIRE (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_VERIFY_CA (location_type l) + { + return symbol_type (token::TOKEN_VERIFY_CA, std::move (l)); + } +#else + static + symbol_type + make_VERIFY_CA (const location_type& l) + { + return symbol_type (token::TOKEN_VERIFY_CA, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_VERIFY_FULL (location_type l) + { + return symbol_type (token::TOKEN_VERIFY_FULL, std::move (l)); + } +#else + static + symbol_type + make_VERIFY_FULL (const location_type& l) + { + return symbol_type (token::TOKEN_VERIFY_FULL, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5731,8 +5838,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1638, ///< Last index in yytable_. - yynnts_ = 483, ///< Number of nonterminal symbols. + yylast_ = 1705, ///< Last index in yytable_. + yynnts_ = 485, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5800,10 +5907,11 @@ switch (yykind) 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234 + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240 }; // Last valid token kind. - const int code_max = 489; + const int code_max = 495; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5829,6 +5937,7 @@ switch (yykind) case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -5889,6 +5998,7 @@ switch (yykind) case symbol_kind::S_socket_type: // socket_type case symbol_kind::S_outbound_interface_value: // outbound_interface_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value @@ -5978,7 +6088,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5982 "dhcp4_parser.h" +#line 6092 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 98478ee9f0..c6a96acf6c 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -113,6 +113,12 @@ using namespace std; CERT_FILE "cert-file" KEY_FILE "key-file" KEY_PASSWORD "key-password" + SSL_MODE "ssl-mode" + DISABLE "disable" + PREFER "prefer" + REQUIRE "require" + VERIFY_CA "verify-ca" + VERIFY_FULL "verify-full" CIPHER_LIST "cipher-list" VALID_LIFETIME "valid-lifetime" @@ -312,6 +318,7 @@ using namespace std; %type socket_type %type outbound_interface_value %type on_fail_mode +%type ssl_mode %type ncr_protocol_value %type ddns_replace_client_name_value %type ddns_conflict_resolution_mode_value @@ -1138,6 +1145,7 @@ database_map_param: database_type | cert_file | key_file | key_password + | ssl_mode | cipher_list | unknown_map_entry ; @@ -1308,6 +1316,21 @@ key_password: KEY_PASSWORD { ctx.leave(); }; +ssl_mode: SSL_MODE { + ctx.unique("ssl-mode", ctx.loc2pos(@1)); + ctx.enter(ctx.SSL_MODE); +} COLON ssl_mode { + ctx.stack_.back()->set("ssl-mode", $4); + ctx.leave(); +}; + +ssl_mode: DISABLE { $$ = ElementPtr(new StringElement("disable", ctx.loc2pos(@1))); } + | PREFER { $$ = ElementPtr(new StringElement("prefer", ctx.loc2pos(@1))); } + | REQUIRE { $$ = ElementPtr(new StringElement("require", ctx.loc2pos(@1))); } + | VERIFY_CA { $$ = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(@1))); } + | VERIFY_FULL { $$ = ElementPtr(new StringElement("verify-full", ctx.loc2pos(@1))); } + ; + cipher_list: CIPHER_LIST { ctx.unique("cipher-list", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); diff --git a/src/bin/dhcp4/parser_context.cc b/src/bin/dhcp4/parser_context.cc index 01d6de1018..1d61f57df8 100644 --- a/src/bin/dhcp4/parser_context.cc +++ b/src/bin/dhcp4/parser_context.cc @@ -166,6 +166,8 @@ Parser4Context::contextName() { return ("hosts-database"); case DATABASE_ON_FAIL: return ("database-on-fail"); + case SSL_MODE: + return ("ssl-mode"); case HOST_RESERVATION_IDENTIFIERS: return ("host-reservation-identifiers"); case HOOKS_LIBRARIES: diff --git a/src/bin/dhcp4/parser_context.h b/src/bin/dhcp4/parser_context.h index 9a65eb1cef..92230af15b 100644 --- a/src/bin/dhcp4/parser_context.h +++ b/src/bin/dhcp4/parser_context.h @@ -258,6 +258,9 @@ public: /// Used while parsing Dhcp4/*-database/on-fail. DATABASE_ON_FAIL, + /// Used while parsing Dhcp4/*-database/ssl-mode. + SSL_MODE, + /// Used while parsing Dhcp4/host-reservation-identifiers. HOST_RESERVATION_IDENTIFIERS, diff --git a/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc b/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc index 722cf3a7ee..549756a732 100644 --- a/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc +++ b/src/bin/dhcp4/tests/dhcp4_srv_unittest.cc @@ -2812,7 +2812,8 @@ void removeTlsParameters(ConstElementPtr elem) { "trust-anchor", "cert-file", "key-file", - "cipher-list" + "cipher-list", + "ssl-mode" }; for (auto const& parameter : tls_parameters) { mutable_elem->remove(parameter); diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index dafb143868..3c14118f92 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_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 246 -#define YY_END_OF_BUFFER 247 +#define YY_NUM_RULES 252 +#define YY_END_OF_BUFFER 253 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,46 +700,46 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2335] = +static const flex_int16_t yy_accept[2365] = { 0, - 239, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 245, 10, 11, 245, 1, 239, 236, 239, 239, - 245, 238, 237, 245, 245, 245, 245, 245, 232, 233, - 245, 245, 245, 234, 235, 5, 5, 5, 245, 245, - 245, 10, 11, 0, 0, 227, 0, 0, 0, 0, + 245, 245, 0, 0, 0, 0, 0, 0, 0, 0, + 253, 251, 10, 11, 251, 1, 245, 242, 245, 245, + 251, 244, 243, 251, 251, 251, 251, 251, 238, 239, + 251, 251, 251, 240, 241, 5, 5, 5, 251, 251, + 251, 10, 11, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 239, 239, 0, 238, 239, 3, 2, 6, 0, 239, + 245, 245, 0, 244, 245, 3, 2, 6, 0, 245, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, - 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, + 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, - 0, 229, 231, 0, 0, 0, 0, 0, 0, 0, + 0, 186, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 242, 0, 241, 240, 0, 0, 0, 0, 0, 0, - 179, 0, 0, 23, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 250, 248, 0, 247, 246, 0, + 0, 0, 0, 0, 0, 185, 0, 0, 23, 0, + 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -751,214 +751,217 @@ static const flex_int16_t yy_accept[2335] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 243, 240, 0, 0, 0, 0, 0, - 24, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, - 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, - 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, - 0, 0, 122, 0, 0, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 184, 0, 50, 201, 0, 51, 0, 0, 0, + 0, 249, 246, 0, 0, 0, 0, 0, 24, 0, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 29, 28, 0, 0, 0, - 0, 0, 173, 0, 208, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, - 0, 203, 183, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, - 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, - 0, 209, 0, 0, 0, 0, 174, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 216, 0, 7, 30, 0, + 0, 190, 0, 50, 207, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 29, 28, 0, 0, + 0, 0, 0, 179, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, + 0, 0, 0, 209, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, + 0, 0, 0, 215, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, + 0, 7, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 211, 125, 0, 0, 0, 0, 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, 152, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 177, 143, 0, 0, 0, 0, 0, 0, 0, - 148, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, - 55, 123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 217, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, + 183, 149, 0, 0, 0, 0, 0, 0, 0, 154, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 55, + 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 0, 0, 116, 0, 0, 163, 0, 0, 0, - 0, 49, 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, 226, 0, 0, 0, 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, 70, 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, 221, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 122, 0, 0, 169, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 0, 0, 0, 0, 0, 73, 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, 15, - 0, 0, 178, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, + 0, 91, 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, 0, 0, 170, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, + 0, 0, 227, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 182, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 19, 0, 114, 0, 0, 0, 109, 0, - 0, 0, 176, 0, 0, 0, 0, 118, 219, 0, + 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 184, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, + 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 139, 140, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, - 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, + 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 188, + + 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 120, 0, 0, 0, 115, 0, 0, 0, + 182, 0, 0, 0, 0, 124, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, + 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 80, 0, 0, 0, 0, 16, 0, - 14, 0, 0, 0, 204, 206, 200, 0, 0, 0, + 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 156, 0, + 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 105, 104, 0, 0, 0, 0, 0, - 0, 193, 0, 0, 218, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 16, 0, 14, + 0, 0, 0, 210, 212, 206, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 215, 128, 0, - 162, 0, 72, 41, 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 130, 58, 81, - 0, 0, 171, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69, 0, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 214, 0, 225, 0, 0, 0, + 0, 0, 0, 111, 110, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 224, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 221, 134, 0, + 168, 0, 72, 41, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 136, 58, 87, + 0, 0, 177, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 0, 0, 0, 185, 0, + 69, 0, 130, 0, 0, 0, 0, 0, 0, 0, + 0, 148, 0, 0, 220, 0, 231, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 127, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 158, 0, 0, 0, 59, 0, 0, 0, 0, 0, - 207, 0, 0, 153, 46, 0, 0, 0, 198, 0, + 164, 0, 0, 0, 59, 0, 0, 0, 0, 0, + 213, 0, 0, 159, 46, 0, 0, 0, 204, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, - 43, 0, 0, 17, 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 145, 144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 0, 0, 0, 0, 0, 0, 77, - 0, 0, 0, 0, 0, 141, 0, 0, 0, 57, - 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, - 0, 0, 0, 175, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, + 0, 0, 0, 0, 151, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 211, 0, 0, 0, 0, 0, 0, 83, + 0, 0, 0, 0, 0, 147, 0, 0, 0, 57, + 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 0, 63, 0, - 0, 0, 0, 0, 98, 0, 0, 31, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 0, 0, 181, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 114, 0, 63, 0, + 0, 0, 0, 0, 104, 0, 0, 31, 0, 47, + 0, 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, 0, 0, - 191, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 64, 0, 0, 0, 0, 60, 196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, - 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, + 64, 0, 0, 0, 0, 60, 202, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 20, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 79, 0, 78, 0, 0, 74, 0, + 0, 196, 0, 85, 0, 84, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 99, 0, 138, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 120, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 67, 0, 0, 84, 0, 61, 0, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, + 0, 126, 0, 0, 0, 195, 0, 0, 0, 0, + 0, 67, 0, 0, 90, 0, 61, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 101, 48, 0, 0, 0, 94, 0, 0, - 0, 0, 195, 0, 0, 0, 0, 0, 223, 226, - 76, 75, 0, 0, 136, 154, 132, 0, 0, 0, - 0, 0, 0, 0, 100, 0, 0, 90, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 187, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 92, 0, - 82, 0, 0, 0, 0, 0, 0, 0, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, - 0, 21, 224, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 107, 48, 0, 0, 0, 100, 0, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 229, 232, + 82, 81, 0, 0, 142, 160, 138, 0, 0, 0, + 0, 0, 0, 0, 106, 0, 0, 96, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 166, 193, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 98, 0, + 88, 0, 0, 0, 0, 0, 0, 0, 139, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, + 0, 21, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 91, 0, 0, 155, 0, 0, 39, 37, 0, - 0, 0, 0, 96, 0, 0, 137, 0, 88, 0, - 97, 0, 0, 0, 0, 0, 0, 0, 87, 0, - 188, 38, 222, 0 + 0, 97, 0, 0, 161, 0, 0, 39, 37, 0, + 0, 0, 0, 102, 0, 0, 143, 0, 94, 0, + 103, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 194, 38, 228, 0 } ; static const YY_CHAR yy_ec[256] = @@ -1005,308 +1008,311 @@ static const YY_CHAR yy_meta[77] = 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2343] = +static const flex_int16_t yy_base[2373] = { 0, 0, 75, 21, 28, 39, 47, 53, 61, 95, 103, - 2784, 2785, 31, 2780, 151, 0, 216, 2785, 223, 230, - 13, 237, 2785, 2760, 124, 17, 4, 34, 2785, 2785, - 23, 43, 64, 2785, 2785, 2785, 56, 2768, 2718, 0, - 2758, 106, 2775, 2, 268, 2785, 85, 90, 2721, 2742, - 98, 77, 2742, 235, 231, 97, 207, 298, 240, 2725, - 294, 306, 62, 243, 204, 222, 2720, 224, 296, 341, - 196, 320, 2703, 21, 332, 362, 345, 2722, 350, 0, - 406, 422, 436, 446, 451, 2785, 0, 2785, 298, 465, - 349, 351, 202, 365, 369, 301, 2785, 2719, 2763, 2785, - - 334, 2785, 464, 332, 232, 2717, 2761, 372, 17, 350, - 373, 2755, 225, 377, 391, 252, 2759, 0, 528, 414, - 2698, 2695, 2695, 433, 2695, 2696, 2702, 434, 2688, 2689, - 2694, 76, 2704, 2688, 2696, 2686, 342, 2702, 380, 373, - 427, 403, 2739, 16, 2681, 2737, 2674, 439, 2695, 2695, - 2689, 440, 2681, 2682, 2680, 2674, 451, 397, 2671, 2670, - 449, 2726, 2670, 50, 2682, 2681, 2669, 498, 2670, 436, - 2682, 2679, 2680, 440, 2678, 2716, 2715, 471, 444, 2659, - 2663, 468, 2659, 456, 2669, 2661, 2663, 0, 490, 490, - 509, 500, 508, 532, 2659, 2785, 538, 539, 2654, 2785, - - 502, 536, 2785, 2711, 544, 548, 2710, 547, 2709, 541, - 2708, 2785, 2785, 590, 2650, 553, 2663, 2655, 2653, 2653, - 2657, 2658, 2638, 2649, 2651, 2650, 285, 557, 2691, 2652, - 2633, 2630, 2638, 2644, 2632, 2642, 2642, 2633, 2642, 2642, - 2637, 2629, 2628, 2630, 2633, 2613, 2617, 2631, 2623, 2613, - 2616, 2615, 2629, 2785, 2615, 2623, 82, 2664, 2607, 2616, - 2661, 2605, 2615, 2658, 561, 2657, 2599, 2613, 2654, 556, - 2610, 2590, 2605, 2597, 2601, 470, 2592, 2590, 475, 2590, - 2596, 2587, 2600, 2584, 2595, 2599, 532, 2593, 462, 2600, - 2595, 2578, 2593, 2579, 2587, 2591, 2572, 2588, 2574, 2580, - - 2587, 2569, 522, 2574, 2571, 2570, 583, 2569, 2564, 2578, - 2577, 568, 2576, 2556, 2578, 2560, 553, 2557, 574, 2785, - 2785, 585, 2785, 2785, 2555, 547, 564, 2605, 597, 2616, - 2785, 589, 600, 2785, 2615, 2785, 2609, 643, 2568, 589, - 2545, 2564, 2565, 2562, 2545, 2562, 2601, 2558, 2548, 2603, - 2555, 2558, 2549, 2552, 2538, 2549, 626, 2591, 2546, 2543, - 2544, 619, 2547, 2591, 2523, 2535, 2530, 2527, 2523, 2522, - 2524, 2527, 2577, 2531, 2575, 2518, 640, 641, 2531, 2531, - 2514, 2515, 2528, 2526, 599, 2525, 2524, 2519, 2526, 2521, - 2506, 608, 2515, 2518, 584, 2513, 2563, 611, 639, 2519, - - 2556, 2503, 2496, 2511, 2502, 2509, 2490, 2507, 2499, 2495, - 2500, 671, 2550, 592, 2502, 2502, 2500, 623, 2491, 2489, - 2501, 617, 2476, 2477, 2490, 2480, 2472, 2476, 2490, 627, - 2476, 2488, 2487, 2486, 2481, 2526, 2483, 2482, 2481, 2480, - 2463, 2471, 2524, 2480, 2522, 2459, 2520, 2519, 2458, 679, - 2471, 2469, 2468, 2785, 2785, 2468, 643, 2508, 2512, 2511, - 2785, 2510, 660, 2785, 655, 725, 2466, 660, 2508, 2451, - 2506, 2500, 2450, 2452, 634, 2442, 2439, 2785, 2444, 2437, - 2449, 2452, 2439, 2438, 2785, 2448, 663, 2439, 2436, 2448, - 647, 2433, 2427, 2785, 2483, 2440, 2425, 2427, 2441, 2437, - - 2435, 2435, 2429, 695, 2419, 2473, 2785, 2417, 2433, 2470, - 2785, 2424, 2473, 2472, 2425, 2419, 2421, 2422, 2406, 2415, - 2422, 2459, 2407, 2406, 2401, 2400, 2402, 2398, 2394, 658, - 2413, 2387, 2394, 2393, 2409, 2446, 2785, 2393, 2389, 698, - 2397, 2396, 2390, 2383, 2382, 2396, 2396, 2384, 2380, 2385, - 2381, 2376, 2785, 2385, 2435, 2785, 2374, 2367, 2427, 2426, - 2368, 2367, 2372, 2427, 2380, 2374, 2368, 2377, 709, 2417, - 2361, 2356, 2414, 2351, 2357, 692, 2371, 2364, 2368, 2351, - 2412, 2350, 2350, 2404, 2346, 2347, 2346, 2344, 2361, 2785, - 2357, 2785, 2397, 2785, 2785, 2345, 2785, 671, 2395, 2399, - - 2393, 2350, 2396, 717, 2785, 2785, 2785, 709, 698, 679, - 2333, 751, 2785, 2332, 2785, 686, 2350, 2330, 2340, 2343, - 2384, 713, 2326, 2336, 2381, 2323, 2330, 2323, 2331, 2324, - 2333, 2315, 2315, 2330, 2329, 2313, 699, 2327, 2326, 2310, - 2325, 2307, 2357, 2311, 2318, 2361, 2302, 2304, 2301, 2315, - 2315, 2313, 2313, 2785, 2298, 2310, 2302, 2308, 2299, 2307, - 2305, 2785, 2785, 2291, 2302, 2306, 2288, 2300, 2292, 2284, - 684, 2282, 2281, 2275, 2280, 2277, 2292, 2291, 2292, 2271, - 2281, 2287, 2333, 2285, 2277, 2268, 2269, 2271, 2785, 2266, - 2272, 702, 2320, 761, 2319, 2261, 2317, 2261, 2264, 2262, - - 2264, 2255, 2270, 2785, 2255, 762, 2252, 2268, 2265, 2260, - 2256, 2785, 2304, 2253, 2260, 2301, 2785, 2244, 2242, 2256, - 2259, 2244, 2295, 2294, 2238, 2292, 2249, 2233, 2289, 2288, - 2785, 2230, 2244, 2243, 763, 2244, 2243, 2240, 2224, 2280, - 2241, 2236, 2225, 2230, 2222, 2785, 161, 2785, 2785, 712, - 735, 739, 743, 759, 217, 275, 373, 392, 416, 452, - 458, 533, 599, 663, 686, 740, 777, 735, 739, 776, - 778, 733, 729, 734, 735, 746, 751, 737, 740, 743, - 752, 752, 736, 796, 755, 748, 760, 803, 750, 757, - 757, 759, 763, 768, 771, 813, 773, 821, 775, 778, - - 773, 764, 779, 784, 785, 782, 779, 786, 785, 773, - 787, 774, 786, 794, 833, 792, 840, 841, 782, 795, - 781, 791, 841, 796, 849, 2785, 802, 800, 802, 798, - 792, 808, 856, 852, 853, 813, 2785, 803, 804, 803, - 816, 806, 819, 866, 822, 807, 869, 870, 824, 2785, - 818, 812, 807, 818, 831, 822, 811, 817, 875, 836, - 820, 820, 833, 880, 824, 831, 843, 838, 843, 840, - 887, 826, 838, 852, 846, 837, 834, 2785, 901, 856, - 857, 845, 859, 849, 853, 865, 856, 859, 864, 865, - 893, 885, 914, 915, 889, 862, 876, 879, 859, 866, - - 880, 928, 882, 867, 880, 878, 2785, 2785, 882, 877, - 892, 889, 875, 877, 896, 893, 893, 895, 883, 891, - 892, 902, 949, 908, 947, 906, 897, 910, 896, 895, - 901, 893, 904, 899, 900, 906, 922, 905, 962, 963, - 915, 965, 2785, 926, 918, 929, 927, 975, 914, 931, - 917, 932, 934, 921, 919, 984, 920, 939, 925, 931, - 929, 2785, 2785, 945, 944, 945, 950, 938, 948, 950, - 2785, 950, 952, 939, 957, 944, 946, 2785, 943, 961, - 962, 948, 949, 945, 950, 968, 1012, 2785, 970, 1014, - 2785, 2785, 969, 969, 1018, 961, 965, 959, 975, 1023, - - 973, 963, 964, 960, 970, 974, 985, 980, 1027, 983, - 976, 978, 974, 991, 981, 996, 979, 1041, 995, 997, - 1001, 988, 979, 1002, 988, 988, 2785, 995, 996, 1048, - 1049, 998, 1011, 1052, 996, 1012, 1012, 1006, 1030, 1040, - 1028, 1036, 1048, 1065, 1011, 1025, 1065, 1024, 1067, 2785, - 1073, 1023, 1014, 1033, 1023, 1022, 1017, 1018, 1030, 1025, - 1021, 1039, 1031, 1026, 1027, 1037, 1046, 1087, 2785, 1041, - 1035, 1053, 1046, 1041, 1097, 1103, 1057, 1048, 1106, 1063, - 1054, 1062, 1064, 1049, 1065, 1070, 1056, 1068, 1065, 1063, - 1075, 1059, 1060, 2785, 1076, 1079, 1076, 1063, 1065, 1126, - - 1066, 1085, 2785, 1072, 1085, 1089, 1075, 1070, 1088, 1076, - 1132, 1087, 1083, 1080, 1136, 1082, 1138, 1097, 1083, 1101, - 1101, 1101, 1103, 1088, 1103, 1090, 1091, 1107, 1094, 1111, - 2785, 1109, 1096, 2785, 1154, 1104, 2785, 1114, 1107, 1163, - 1107, 2785, 1110, 1115, 1162, 1110, 1111, 1123, 1117, 1115, - 1112, 1127, 1175, 1116, 1117, 1178, 1179, 1120, 1132, 1125, - 2785, 1121, 1138, 1130, 1126, 1130, 1184, 1123, 1144, 1130, - 1131, 1132, 1133, 1139, 1147, 1138, 1152, 1200, 1154, 1155, - 1170, 1199, 1182, 1174, 1179, 2785, 1162, 1147, 1167, 1150, - 1150, 2785, 1153, 1152, 1154, 1165, 1155, 1175, 1174, 1165, - - 1176, 1222, 1161, 1173, 1182, 1175, 1179, 1183, 1166, 1187, - 1184, 1189, 1180, 1239, 1183, 1187, 2785, 1237, 1183, 2785, - 1201, 1183, 1183, 1204, 1201, 1244, 1204, 1191, 1209, 1197, - 1211, 1204, 1213, 1193, 1208, 1215, 1200, 1261, 1262, 2785, - 1212, 1264, 1218, 1204, 1207, 1215, 1226, 1209, 1229, 1212, - 1214, 1214, 1221, 1230, 1218, 1225, 1220, 1227, 1239, 1283, - 1227, 1285, 1227, 1241, 1245, 1289, 1239, 1240, 1229, 1293, - 1241, 1244, 1239, 1243, 1298, 1299, 1249, 2785, 1238, 1255, - 1248, 1239, 1258, 1252, 1247, 1257, 1253, 1248, 1266, 2785, - 1250, 1246, 2785, 2785, 1252, 1315, 1271, 1252, 1258, 1272, - - 1258, 1274, 1276, 1318, 1268, 1325, 1326, 1276, 1281, 1275, - 1273, 1284, 1266, 2785, 1271, 1277, 1303, 1316, 1304, 1318, - 1305, 1340, 1290, 1293, 1293, 1297, 1298, 1346, 1286, 1286, - 1289, 1306, 1301, 1305, 1300, 2785, 1297, 1310, 1294, 1311, - 1291, 1312, 1302, 1295, 1307, 1308, 1364, 1314, 2785, 1327, - 1325, 1328, 1312, 1321, 1325, 1330, 1316, 1379, 1329, 1335, - 1335, 1322, 1336, 1334, 1331, 1327, 1345, 1346, 1347, 1330, - 2785, 2785, 1346, 2785, 1348, 1333, 1344, 1350, 1336, 1355, - 1348, 1346, 1401, 1355, 1352, 1399, 1360, 1349, 1356, 1361, - 1358, 1364, 2785, 1357, 2785, 1349, 1362, 1414, 2785, 1358, - - 1359, 1370, 2785, 1371, 1365, 1360, 1370, 2785, 2785, 1360, - 1361, 1364, 1378, 1383, 1366, 1377, 1429, 1383, 1370, 1389, - 1380, 1434, 1430, 1436, 2785, 1384, 1381, 1392, 1440, 1441, - 1442, 1396, 1397, 1399, 2785, 2785, 1391, 1386, 1443, 1389, - 1405, 1389, 1401, 1390, 1449, 1432, 1433, 1425, 1458, 2785, - 1402, 1413, 1404, 1415, 1417, 2785, 1464, 1398, 1409, 1424, - 1463, 1412, 1423, 1411, 1410, 1426, 1427, 1424, 1471, 1431, - 1478, 1479, 1435, 1424, 1436, 1442, 1431, 1431, 1489, 1485, - 1486, 1492, 1446, 2785, 1448, 1444, 1448, 1450, 1441, 1444, - 1453, 1450, 1440, 1443, 1443, 1505, 1506, 1450, 1508, 1452, - - 1510, 1512, 1452, 1457, 1515, 2785, 1470, 1449, 1464, 1457, - 1460, 1473, 1476, 1475, 1473, 1525, 1476, 1466, 2785, 1473, - 1474, 1526, 1470, 1486, 1534, 1487, 1536, 1537, 1538, 1479, - 1489, 1541, 1495, 2785, 1487, 1544, 1485, 1485, 2785, 1503, - 2785, 1500, 1491, 1491, 2785, 2785, 2785, 1505, 1488, 1508, - 1509, 1495, 1497, 1559, 1506, 1561, 1507, 1501, 1528, 1546, - 1561, 1547, 2785, 1511, 1569, 1516, 1566, 1572, 2785, 1512, - 1574, 1521, 1515, 1512, 1515, 1517, 1513, 1576, 1536, 1578, - 1528, 1540, 1543, 2785, 2785, 1540, 1532, 1535, 1530, 1595, - 1540, 2785, 1537, 1536, 2785, 1538, 1600, 1539, 1551, 1542, - - 1599, 1558, 1560, 1560, 1557, 1604, 1563, 2785, 2785, 1555, - 2785, 1556, 2785, 2785, 1566, 1558, 2785, 1610, 1569, 1570, - 1568, 1615, 1560, 1575, 1618, 1577, 1569, 2785, 1566, 1576, - 1567, 1568, 1569, 1626, 1632, 2785, 1586, 2785, 2785, 2785, - 1629, 1573, 2785, 1590, 1575, 2785, 1589, 1577, 1641, 1585, - 1578, 1583, 1594, 1587, 1606, 1599, 1605, 1595, 1653, 1603, - 2785, 1612, 2785, 1609, 1657, 1634, 1635, 1641, 1626, 1634, - 1663, 2785, 1618, 1603, 2785, 1666, 2785, 1667, 1621, 1626, - 1608, 1671, 1672, 1613, 1669, 1632, 1626, 1622, 1616, 1623, - 1675, 1630, 1631, 2785, 1621, 1637, 1641, 1692, 2785, 1642, - - 1628, 1690, 1651, 1651, 1693, 1638, 1643, 1641, 1703, 1656, - 1644, 1706, 1702, 1654, 1709, 1667, 1656, 1650, 1713, 1652, - 1661, 1654, 1668, 1671, 1662, 1720, 1721, 1671, 1669, 2785, - 1662, 1660, 1721, 1722, 1723, 1675, 1674, 1674, 1670, 1671, - 2785, 1679, 1685, 1676, 1677, 1739, 1677, 1679, 1737, 1680, - 2785, 1676, 1694, 1746, 2785, 1714, 1728, 1727, 1716, 1718, - 2785, 1752, 1702, 2785, 2785, 1693, 1704, 1756, 2785, 1757, - 2785, 1711, 1701, 1706, 1704, 1757, 1712, 1718, 1704, 1707, - 1723, 1712, 1710, 1710, 1712, 2785, 1716, 1779, 1717, 1731, - 1777, 1721, 1785, 1730, 1740, 1741, 2785, 1789, 1739, 1786, - - 2785, 1734, 1742, 2785, 1733, 1748, 1736, 2785, 1746, 1747, - 1748, 1800, 1755, 1746, 2785, 2785, 1735, 1753, 1754, 1763, - 1745, 1751, 1764, 1753, 1806, 1755, 1751, 1756, 1753, 1754, - 1812, 1818, 2785, 1765, 1820, 1770, 1760, 1776, 1769, 2785, - 1802, 1827, 1809, 1824, 1830, 2785, 1776, 1832, 1771, 2785, - 2785, 1773, 1775, 1785, 1832, 1777, 1792, 1779, 1841, 1795, - 1781, 1788, 1788, 1799, 1800, 1792, 2785, 1795, 1789, 1791, - 1806, 1793, 1805, 2785, 1852, 1800, 1797, 2785, 1811, 1798, - 1819, 1815, 1817, 1865, 1815, 1812, 1820, 1814, 2785, 1870, - 1828, 1825, 1818, 1819, 1824, 1825, 1819, 1824, 1835, 1819, - - 1828, 1877, 1883, 1833, 1885, 1831, 2785, 1825, 2785, 1832, - 1889, 1890, 1887, 1888, 2785, 1870, 1876, 2785, 1848, 2785, - 1892, 1841, 1852, 1853, 1838, 1839, 1847, 1904, 2785, 1849, - 1901, 1902, 1854, 1849, 1867, 1868, 1865, 1913, 1857, 1870, - 1865, 1862, 1867, 1865, 1920, 1923, 1868, 1865, 1879, 1866, - 2785, 1881, 1882, 1883, 1884, 2785, 1878, 1933, 1883, 1888, - 1874, 1882, 1876, 1896, 1897, 1878, 1879, 1886, 2785, 1888, - 2785, 1902, 1899, 1942, 1900, 2785, 2785, 1904, 1930, 1931, - 1929, 1892, 1892, 1901, 1908, 1901, 1900, 1911, 1898, 2785, - 1914, 1902, 1905, 1964, 1901, 1920, 1913, 1912, 2785, 1924, - - 1917, 1916, 1925, 1927, 1931, 2785, 2785, 1924, 1917, 1918, - 1981, 1921, 1983, 1922, 1985, 1981, 2785, 1925, 1988, 1984, - 1943, 1940, 1931, 1939, 1950, 1937, 1948, 1934, 1932, 1940, - 1939, 1944, 1936, 1981, 2005, 1987, 2007, 1957, 1946, 1959, - 1949, 1966, 1965, 2009, 1950, 1969, 1970, 2785, 1975, 1968, - 2015, 2021, 1975, 1962, 1977, 2025, 1979, 1982, 1969, 1978, - 1979, 2785, 2033, 2785, 1983, 2785, 1981, 2036, 2785, 1975, - 2038, 1982, 1979, 2041, 1986, 2038, 2039, 1998, 2041, 1984, - 1988, 2006, 2050, 2006, 2033, 2785, 2029, 2785, 1999, 1993, - 1990, 2052, 2015, 2008, 2004, 2061, 2001, 2003, 2002, 2009, - - 2021, 2785, 2006, 2068, 2009, 2785, 2014, 2024, 2009, 2017, - 2019, 2785, 2020, 2025, 2785, 2026, 2785, 2023, 2034, 2785, - 2035, 2035, 2026, 2085, 2026, 2036, 2021, 2034, 2785, 2036, - 2067, 2073, 2045, 2043, 2095, 2033, 2035, 2032, 2056, 2785, - 2043, 2050, 2051, 2054, 2050, 2044, 2785, 2101, 2045, 2053, - 2062, 2061, 2064, 2065, 2052, 2059, 2054, 2055, 2055, 2069, - 2064, 2785, 2075, 2063, 2119, 2067, 2079, 2107, 2128, 2129, - 2073, 2785, 2073, 2085, 2133, 2079, 2081, 2079, 2080, 2138, - 2096, 2089, 2076, 2091, 2096, 2144, 2145, 2146, 2147, 2086, - 2102, 2150, 2151, 2152, 2094, 2098, 2094, 2110, 2093, 2105, - - 2099, 2161, 2785, 2785, 2106, 2117, 2164, 2785, 2118, 2103, - 2121, 2112, 2785, 2108, 2114, 2128, 2124, 2117, 2785, 2785, - 2785, 2785, 2174, 2175, 2785, 2785, 2785, 2115, 2123, 2118, - 2174, 2137, 2134, 2182, 2785, 2178, 2141, 2785, 2185, 2124, - 2187, 2127, 2128, 2141, 2140, 2141, 2131, 2785, 2785, 2132, - 2195, 2145, 2154, 2147, 2194, 2785, 2145, 2139, 2785, 2151, - 2785, 2198, 2157, 2205, 2144, 2160, 2208, 2209, 2785, 2163, - 2157, 2150, 2170, 2157, 2169, 2160, 2164, 2158, 2785, 2215, - 2161, 2785, 2785, 2161, 2169, 2219, 2176, 2169, 2181, 2228, - 2173, 2173, 2231, 2170, 2172, 2234, 2235, 2174, 2190, 2175, - - 2192, 2785, 2240, 2184, 2785, 2191, 2243, 2785, 2785, 2193, - 2245, 2190, 2247, 2785, 2195, 2194, 2785, 2195, 2785, 2189, - 2785, 2189, 2206, 2207, 2255, 2198, 2257, 2258, 2785, 2259, - 2785, 2785, 2785, 2785, 2265, 2268, 2271, 2272, 2274, 2277, - 2280, 2283 + 2813, 2814, 31, 2809, 151, 0, 216, 2814, 223, 230, + 13, 237, 2814, 2789, 124, 17, 4, 34, 2814, 2814, + 23, 43, 64, 2814, 2814, 2814, 56, 2797, 2747, 0, + 2787, 106, 2804, 2, 268, 2814, 85, 90, 2750, 2771, + 98, 77, 2771, 235, 231, 97, 207, 298, 240, 2754, + 294, 306, 62, 243, 204, 222, 2749, 224, 296, 341, + 196, 320, 2732, 21, 332, 382, 351, 78, 349, 0, + 394, 410, 435, 442, 450, 2814, 0, 2814, 298, 456, + 346, 354, 202, 356, 360, 301, 2814, 2749, 2793, 2814, + + 334, 2814, 430, 300, 232, 2747, 2791, 369, 17, 343, + 391, 2785, 225, 422, 310, 252, 2789, 0, 498, 437, + 2728, 2725, 2725, 430, 2725, 2726, 2732, 379, 2718, 2719, + 2724, 450, 2734, 416, 2727, 2717, 437, 2733, 366, 440, + 467, 434, 2770, 16, 2712, 2768, 2705, 64, 2726, 2726, + 2720, 434, 2712, 2713, 2711, 2705, 448, 476, 2702, 2701, + 477, 2757, 2701, 379, 2713, 2712, 2700, 506, 2701, 467, + 2713, 2710, 2711, 2699, 483, 2708, 2746, 2745, 320, 474, + 2689, 2693, 471, 2689, 482, 2699, 2691, 2684, 2692, 0, + 493, 505, 527, 520, 509, 532, 2688, 2814, 539, 538, + + 2683, 2814, 523, 530, 2814, 2740, 540, 545, 2739, 545, + 2738, 541, 2737, 2814, 2814, 590, 2679, 553, 2692, 2684, + 2682, 2682, 2686, 2687, 2667, 2678, 2680, 2679, 414, 529, + 2720, 2681, 2662, 2659, 2667, 2673, 2661, 2671, 2674, 2670, + 2661, 2670, 2670, 2665, 2657, 2656, 2658, 2661, 2641, 2645, + 2659, 2651, 2641, 2644, 2643, 2657, 2814, 2643, 2651, 528, + 2692, 2635, 2644, 2689, 2633, 2643, 2686, 567, 2685, 2627, + 2641, 2682, 557, 2638, 2618, 2633, 2625, 2629, 550, 2620, + 2618, 537, 2618, 2624, 2615, 2628, 2612, 2623, 2627, 559, + 2621, 519, 2628, 2623, 2606, 2621, 2607, 2615, 2619, 2600, + + 2616, 2602, 2608, 2615, 2654, 2596, 556, 2601, 2598, 2597, + 589, 2596, 2591, 2605, 2604, 585, 2603, 2583, 2605, 2587, + 79, 2595, 2583, 594, 2814, 2814, 596, 2814, 2814, 2581, + 580, 595, 2631, 598, 2642, 2814, 589, 600, 2814, 2641, + 2814, 2635, 643, 2594, 589, 2571, 2590, 2591, 2588, 2571, + 2588, 2627, 2584, 2574, 2629, 2581, 2584, 2575, 2578, 2564, + 2575, 624, 2617, 2572, 2569, 2570, 661, 2573, 2573, 2616, + 2548, 2560, 2555, 2552, 2548, 2547, 2549, 2552, 2602, 2556, + 2600, 2543, 639, 668, 2556, 2556, 2539, 2540, 2553, 2551, + 582, 2550, 2549, 2544, 2551, 2546, 2531, 611, 2540, 2543, + + 616, 2538, 2588, 609, 645, 2544, 2581, 2528, 2521, 2536, + 2527, 2534, 2515, 2532, 2524, 2520, 2525, 677, 2575, 575, + 2527, 2527, 2525, 637, 2516, 2514, 2526, 623, 2501, 2502, + 2515, 2505, 2497, 2501, 2515, 634, 2501, 2513, 2512, 2511, + 2502, 2505, 2550, 2507, 2506, 2505, 2504, 2487, 2495, 2548, + 2504, 2546, 2483, 2544, 2543, 2482, 692, 2495, 2493, 2491, + 2491, 2814, 2814, 2491, 646, 2531, 2535, 2534, 2814, 2533, + 637, 2814, 668, 731, 2489, 661, 2531, 2474, 2529, 2523, + 2473, 2475, 651, 2465, 2462, 2814, 2467, 2460, 2472, 2475, + 2462, 2461, 2814, 2471, 657, 2462, 2459, 2471, 662, 2456, + + 2450, 2457, 2814, 2505, 2462, 2447, 2449, 2463, 2459, 2457, + 2457, 2451, 704, 2441, 2495, 2814, 2439, 2455, 2492, 2814, + 2446, 2495, 2494, 2447, 2441, 2443, 2444, 2428, 2437, 2444, + 2481, 2429, 2428, 2423, 2422, 2424, 2420, 2416, 656, 2435, + 2409, 2416, 2415, 2431, 2468, 2814, 2415, 2411, 710, 2419, + 2418, 2412, 2405, 2404, 2418, 2418, 2406, 2402, 2407, 2403, + 2398, 2814, 2407, 2457, 2814, 2396, 2389, 2449, 2448, 2390, + 2389, 2394, 2449, 2402, 2396, 2390, 2399, 723, 2439, 2383, + 2378, 2436, 2373, 2379, 50, 2393, 2386, 2390, 2373, 2434, + 2376, 2371, 2371, 2425, 2367, 2368, 2367, 2365, 2382, 2814, + + 2378, 2814, 2418, 2814, 2814, 2366, 2814, 682, 2416, 2420, + 2352, 2413, 2370, 2416, 723, 2814, 2814, 2814, 712, 703, + 694, 2353, 756, 2814, 2352, 2814, 700, 2370, 2350, 2360, + 2363, 2404, 707, 2346, 2356, 2401, 2343, 2350, 2343, 2351, + 2344, 2353, 2335, 2335, 2350, 2349, 2333, 675, 2347, 2346, + 2330, 2345, 2327, 2377, 2331, 2340, 2337, 2380, 2321, 2323, + 2320, 2334, 2334, 2332, 2332, 2814, 2317, 2329, 2321, 2327, + 2318, 2326, 2324, 2814, 2814, 2310, 2321, 2325, 2307, 2319, + 2311, 2303, 468, 2301, 2300, 2294, 2299, 2296, 2311, 2310, + 2311, 2290, 2300, 2306, 2352, 2304, 2296, 2287, 2288, 2290, + + 2814, 2285, 2291, 689, 2339, 758, 2338, 2280, 2336, 2280, + 2283, 2281, 2283, 2274, 2289, 2814, 734, 764, 2272, 2288, + 2285, 2280, 2276, 2814, 2324, 2273, 2280, 2321, 2814, 2264, + 2262, 2276, 2279, 2264, 2315, 2314, 2258, 2312, 2269, 2253, + 2309, 2308, 2814, 2266, 2249, 2263, 2258, 735, 178, 229, + 338, 355, 570, 582, 612, 644, 695, 711, 2814, 761, + 705, 2814, 2814, 735, 747, 754, 740, 761, 724, 722, + 733, 742, 736, 725, 722, 736, 732, 738, 748, 795, + 796, 753, 758, 794, 800, 754, 750, 756, 757, 767, + 772, 758, 761, 764, 773, 773, 757, 817, 776, 768, + + 778, 821, 767, 828, 775, 775, 777, 781, 786, 789, + 831, 791, 839, 793, 796, 791, 782, 797, 802, 803, + 800, 797, 804, 803, 791, 805, 792, 804, 812, 851, + 810, 858, 859, 800, 813, 799, 809, 859, 814, 867, + 2814, 820, 818, 820, 816, 810, 826, 874, 870, 871, + 831, 2814, 821, 822, 821, 834, 824, 837, 884, 840, + 825, 887, 888, 2814, 842, 2814, 836, 830, 825, 836, + 849, 840, 829, 835, 893, 854, 838, 838, 851, 903, + 842, 849, 861, 856, 862, 859, 906, 845, 857, 872, + 869, 867, 857, 854, 2814, 922, 876, 877, 865, 879, + + 869, 873, 885, 876, 879, 884, 891, 886, 914, 907, + 936, 937, 911, 884, 898, 901, 881, 888, 902, 950, + 904, 889, 902, 900, 2814, 2814, 904, 899, 914, 911, + 897, 899, 918, 915, 915, 917, 906, 913, 914, 924, + 971, 930, 969, 928, 919, 932, 918, 917, 923, 915, + 2814, 926, 921, 922, 928, 944, 927, 984, 985, 937, + 987, 2814, 948, 940, 951, 949, 997, 936, 953, 939, + 954, 956, 943, 941, 1006, 942, 961, 947, 953, 951, + 2814, 2814, 967, 966, 967, 972, 960, 970, 972, 2814, + 972, 974, 961, 979, 966, 968, 2814, 965, 983, 984, + + 970, 971, 967, 972, 990, 1034, 2814, 992, 1036, 2814, + 2814, 991, 991, 1040, 983, 987, 981, 997, 1045, 995, + 985, 986, 982, 992, 996, 2814, 1007, 1002, 1049, 1005, + 998, 1000, 996, 1013, 1003, 1018, 1001, 1063, 1017, 1019, + 1023, 1010, 1001, 1069, 1025, 1012, 1011, 2814, 1018, 1019, + 1071, 1072, 1021, 1034, 1075, 1019, 1035, 1035, 1041, 1022, + 1031, 1055, 1065, 1053, 1061, 1073, 1090, 1036, 1050, 1090, + 1049, 1092, 2814, 1098, 1048, 1039, 1058, 1048, 1047, 1042, + 1043, 1055, 1050, 1046, 1064, 1056, 1051, 1052, 1062, 1071, + 1112, 2814, 1066, 1060, 1078, 1071, 1066, 1122, 1128, 1082, + + 1073, 1131, 1088, 1079, 1087, 1089, 1074, 1090, 1095, 1081, + 1093, 1090, 1088, 1100, 1084, 1085, 2814, 1101, 1104, 1101, + 1088, 1090, 1151, 1091, 1110, 2814, 1097, 1110, 1114, 1100, + 1095, 1113, 1101, 1157, 1112, 1108, 1105, 1161, 1107, 1163, + 1122, 1108, 1126, 1126, 1126, 1128, 1113, 1128, 1115, 1116, + 1132, 1119, 1136, 2814, 1134, 1121, 2814, 1179, 1129, 2814, + 1139, 1132, 1188, 1132, 2814, 1135, 1140, 1187, 1135, 1136, + 1148, 1142, 1140, 1137, 1152, 1200, 1141, 1142, 1203, 1204, + 1145, 1157, 1150, 2814, 1146, 1163, 1155, 1151, 1155, 2814, + 1209, 1148, 1169, 1155, 1156, 1157, 1158, 1164, 1172, 1163, + + 1177, 1225, 1179, 1227, 1174, 1182, 1197, 1226, 1209, 1201, + 1206, 2814, 1189, 1174, 1194, 1177, 1177, 2814, 1180, 1179, + 1181, 1192, 1182, 1202, 1201, 1192, 1203, 1249, 1188, 1200, + 1209, 1202, 1206, 1210, 1193, 1214, 1211, 1216, 1207, 1266, + 1210, 1214, 2814, 1264, 1210, 2814, 1228, 1210, 1210, 1231, + 1228, 1271, 1231, 1218, 1236, 1224, 1238, 1231, 1240, 1220, + 1235, 1242, 1227, 1288, 1289, 2814, 1239, 1291, 1245, 1231, + 1234, 1242, 1253, 1236, 1256, 1239, 1241, 1241, 1248, 1257, + 1245, 1252, 1247, 1254, 1266, 1310, 1254, 1312, 1254, 1268, + 1272, 1316, 1266, 1267, 1256, 1320, 1268, 1271, 1266, 1270, + + 1325, 1326, 1276, 2814, 1265, 1282, 1275, 1266, 1285, 1279, + 1274, 1284, 1280, 1275, 1293, 2814, 1277, 1273, 2814, 2814, + 1279, 1342, 1298, 1279, 1285, 1299, 1285, 1301, 1303, 1345, + 1295, 1352, 1353, 1303, 1308, 1302, 1300, 1311, 1293, 2814, + 1298, 2814, 1307, 1305, 1331, 1344, 1332, 1346, 1333, 1368, + 1318, 1321, 1321, 1325, 1326, 1374, 1314, 1314, 1317, 1334, + 1329, 1333, 1328, 2814, 1325, 1338, 1322, 1339, 1319, 1340, + 1330, 1323, 1335, 1336, 1392, 1342, 2814, 1355, 1353, 1356, + 1340, 1349, 1353, 1358, 1344, 1407, 1357, 1363, 1363, 1350, + 1364, 1362, 1359, 1355, 1373, 1374, 1375, 1358, 2814, 2814, + + 1374, 2814, 1376, 1361, 1372, 1378, 1364, 1383, 1376, 1374, + 1429, 1383, 1380, 1427, 1388, 1377, 1384, 1389, 1386, 1392, + 2814, 1385, 2814, 1377, 1390, 1442, 2814, 1386, 1387, 1398, + 2814, 1399, 1393, 1388, 1398, 2814, 2814, 1388, 1389, 1392, + 1406, 1411, 1394, 1405, 1457, 1411, 1398, 1417, 1408, 1462, + 1458, 1464, 2814, 1412, 1409, 1420, 1468, 1469, 1470, 1424, + 1425, 1427, 2814, 2814, 1419, 1414, 1471, 1417, 1433, 1417, + 1429, 1481, 1419, 1478, 1461, 1462, 1454, 1487, 2814, 1431, + 1442, 1433, 1444, 1446, 2814, 1493, 1427, 1438, 1453, 1492, + 1441, 1452, 1440, 1439, 1455, 1456, 1453, 1500, 1460, 1507, + + 1508, 1464, 1453, 1465, 1471, 1460, 1460, 1518, 1514, 1515, + 1521, 1475, 2814, 1477, 1473, 1477, 1479, 1470, 1473, 1482, + 1479, 1469, 1472, 1472, 1534, 1535, 1479, 1537, 1481, 1539, + 1541, 1481, 1486, 1544, 2814, 1499, 1478, 1493, 1486, 1489, + 1502, 1505, 1504, 1502, 1554, 1505, 1495, 2814, 1502, 1503, + 1555, 1499, 1515, 1563, 1516, 1565, 1566, 1567, 1508, 1518, + 1570, 1524, 2814, 1516, 1573, 1514, 1514, 2814, 1532, 2814, + 1529, 1520, 1520, 2814, 2814, 2814, 1534, 1517, 1537, 1538, + 1524, 1526, 1588, 1535, 1590, 1536, 2814, 1530, 1557, 1575, + 1590, 1576, 2814, 1540, 1598, 1545, 1595, 1601, 2814, 1541, + + 1603, 1550, 1544, 1541, 1544, 1546, 1542, 1605, 1565, 1607, + 1557, 1569, 1572, 2814, 2814, 1569, 1561, 1564, 1559, 1624, + 1569, 2814, 1566, 1565, 2814, 1567, 1629, 1568, 1580, 1571, + 1628, 1587, 1589, 1589, 1586, 1633, 1592, 2814, 2814, 1584, + 2814, 1585, 2814, 2814, 1595, 1587, 2814, 1639, 1598, 1599, + 1597, 1644, 1589, 1604, 1647, 1606, 1598, 2814, 1595, 1605, + 1596, 1597, 1598, 1655, 1661, 2814, 1615, 2814, 2814, 2814, + 1658, 1602, 2814, 1619, 1604, 2814, 1618, 1606, 1670, 1614, + 1607, 1612, 1623, 1616, 1635, 1628, 1634, 1624, 1682, 1632, + 2814, 1641, 2814, 1638, 1686, 1663, 1664, 1670, 1655, 1663, + + 1692, 2814, 1647, 1632, 2814, 1695, 2814, 1696, 1650, 1655, + 1637, 1700, 1701, 1642, 1698, 1661, 1655, 1651, 1645, 1652, + 1704, 1659, 1660, 2814, 1650, 1666, 1670, 1721, 2814, 1671, + 1657, 1719, 1680, 1680, 1722, 1667, 1672, 1670, 1732, 1685, + 1673, 1735, 1731, 1683, 1738, 1696, 1685, 1679, 1742, 1681, + 1690, 1683, 1697, 1700, 1691, 1749, 1750, 1700, 1698, 2814, + 1691, 1689, 1750, 1751, 1752, 1704, 1703, 1703, 1699, 1700, + 2814, 1708, 1714, 1705, 1706, 1768, 1706, 1708, 1766, 1709, + 2814, 1705, 1723, 1775, 2814, 1743, 1757, 1756, 1745, 1747, + 2814, 1781, 1731, 2814, 2814, 1722, 1733, 1785, 2814, 1786, + + 2814, 1740, 1730, 1735, 1733, 1786, 1741, 1747, 1733, 1736, + 1752, 1741, 1739, 1739, 1741, 2814, 1745, 1808, 1746, 1760, + 1806, 1750, 1814, 1759, 1769, 1770, 2814, 1818, 1768, 1815, + 2814, 1763, 1771, 2814, 1762, 1777, 1765, 2814, 1775, 1776, + 1777, 1829, 1784, 1775, 2814, 2814, 1764, 1782, 1783, 1792, + 1774, 1780, 1793, 1782, 1835, 1784, 1780, 1785, 1782, 1783, + 1841, 1847, 2814, 1794, 1849, 1799, 1789, 1805, 1798, 2814, + 1831, 1856, 1838, 1853, 1859, 2814, 1805, 1861, 1800, 2814, + 2814, 1802, 1804, 1814, 1861, 1806, 1821, 1808, 1870, 1824, + 1810, 1817, 1817, 1828, 1829, 1821, 2814, 1824, 1818, 1820, + + 1835, 1822, 1834, 2814, 1881, 1829, 1826, 2814, 1840, 1827, + 1848, 1844, 1846, 1894, 1844, 1841, 1849, 1843, 2814, 1899, + 1857, 1854, 1847, 1848, 1853, 1854, 1848, 1853, 1864, 1848, + 1857, 1906, 1912, 1862, 1914, 1860, 2814, 1854, 2814, 1861, + 1918, 1919, 1916, 1917, 2814, 1899, 1905, 2814, 1877, 2814, + 1921, 1870, 1881, 1882, 1867, 1868, 1876, 1933, 2814, 1878, + 1930, 1931, 1883, 1878, 1896, 1897, 1894, 1942, 1886, 1899, + 1894, 1891, 1896, 1894, 1949, 1952, 1897, 1894, 1908, 1895, + 2814, 1910, 1911, 1912, 1913, 2814, 1907, 1962, 1912, 1917, + 1903, 1911, 1905, 1925, 1926, 1907, 1908, 1915, 2814, 1917, + + 2814, 1931, 1928, 1971, 1929, 2814, 2814, 1933, 1959, 1960, + 1958, 1921, 1921, 1930, 1937, 1930, 1929, 1940, 1927, 2814, + 1943, 1931, 1934, 1993, 1930, 1949, 1942, 1941, 2814, 1953, + 1946, 1945, 1954, 1956, 1960, 2814, 2814, 1953, 1946, 1947, + 2010, 1950, 2012, 1951, 2014, 2010, 2814, 1954, 2017, 2013, + 1972, 1969, 1960, 1968, 1979, 1966, 1977, 1963, 1961, 1969, + 1968, 1973, 1965, 2010, 2034, 2016, 2036, 1986, 1975, 1988, + 1978, 1995, 1994, 2038, 1979, 1998, 1999, 2814, 2004, 1997, + 2044, 2050, 2004, 1991, 2006, 2054, 2008, 2011, 1998, 2007, + 2008, 2814, 2062, 2814, 2012, 2814, 2010, 2065, 2814, 2004, + + 2067, 2011, 2008, 2070, 2015, 2067, 2068, 2027, 2070, 2013, + 2017, 2035, 2079, 2035, 2062, 2814, 2058, 2814, 2028, 2022, + 2019, 2081, 2044, 2037, 2033, 2090, 2030, 2032, 2031, 2038, + 2050, 2814, 2035, 2097, 2038, 2814, 2043, 2053, 2038, 2046, + 2048, 2814, 2049, 2054, 2814, 2055, 2814, 2052, 2063, 2814, + 2064, 2064, 2055, 2114, 2055, 2065, 2050, 2063, 2814, 2065, + 2096, 2102, 2074, 2072, 2124, 2062, 2064, 2061, 2085, 2814, + 2072, 2079, 2080, 2083, 2079, 2073, 2814, 2130, 2074, 2082, + 2091, 2090, 2093, 2094, 2081, 2088, 2083, 2084, 2084, 2098, + 2093, 2814, 2104, 2092, 2148, 2096, 2108, 2136, 2157, 2158, + + 2102, 2814, 2102, 2114, 2162, 2108, 2110, 2108, 2109, 2167, + 2125, 2118, 2105, 2120, 2125, 2173, 2174, 2175, 2176, 2115, + 2131, 2179, 2180, 2181, 2123, 2127, 2123, 2139, 2122, 2134, + 2128, 2190, 2814, 2814, 2135, 2146, 2193, 2814, 2147, 2132, + 2150, 2141, 2814, 2137, 2143, 2157, 2153, 2146, 2814, 2814, + 2814, 2814, 2203, 2204, 2814, 2814, 2814, 2144, 2152, 2147, + 2203, 2166, 2163, 2211, 2814, 2207, 2170, 2814, 2214, 2153, + 2216, 2156, 2157, 2170, 2169, 2170, 2160, 2814, 2814, 2161, + 2224, 2174, 2183, 2176, 2223, 2814, 2174, 2168, 2814, 2180, + 2814, 2227, 2186, 2234, 2173, 2189, 2237, 2238, 2814, 2192, + + 2186, 2179, 2199, 2186, 2198, 2189, 2193, 2187, 2814, 2244, + 2190, 2814, 2814, 2190, 2198, 2248, 2205, 2198, 2210, 2257, + 2202, 2202, 2260, 2199, 2201, 2263, 2264, 2203, 2219, 2204, + 2221, 2814, 2269, 2213, 2814, 2220, 2272, 2814, 2814, 2222, + 2274, 2219, 2276, 2814, 2224, 2223, 2814, 2224, 2814, 2218, + 2814, 2218, 2235, 2236, 2284, 2227, 2286, 2287, 2814, 2288, + 2814, 2814, 2814, 2814, 2294, 2297, 2300, 2301, 2303, 2306, + 2309, 2312 } ; -static const flex_int16_t yy_def[2343] = +static const flex_int16_t yy_def[2373] = { 0, - 2335, 2335, 2336, 2336, 2335, 2335, 2335, 2335, 2335, 2335, - 2334, 2334, 2334, 2334, 2334, 2337, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2338, - 2334, 2334, 2334, 2339, 15, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2340, 45, 45, + 2365, 2365, 2366, 2366, 2365, 2365, 2365, 2365, 2365, 2365, + 2364, 2364, 2364, 2364, 2364, 2367, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2368, + 2364, 2364, 2364, 2369, 15, 2364, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2370, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2337, - 2334, 2334, 2334, 2334, 2334, 2334, 2341, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2338, 2334, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2367, + 2364, 2364, 2364, 2364, 2364, 2364, 2371, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2368, 2364, - 2339, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2342, 45, 2340, 45, + 2369, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2372, 45, 2370, 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, 2341, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 45, 45, 45, 2334, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2371, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, - 2342, 2334, 2334, 119, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 45, 45, 45, 45, + 45, 45, 2372, 2364, 2364, 119, 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, 2334, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 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, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 45, 45, 45, 45, 45, - 2334, 45, 45, 2334, 45, 2334, 45, 119, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 45, 45, 45, 45, 45, 2364, 45, 45, 2364, 45, + 2364, 45, 119, 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, @@ -1318,235 +1324,238 @@ static const flex_int16_t yy_def[2343] = 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, 2334, 2334, 2334, 45, 45, 45, 45, - 2334, 45, 45, 2334, 45, 119, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, - 2334, 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, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 45, 45, 2334, 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, 2334, - 45, 2334, 45, 2334, 2334, 45, 2334, 45, 45, 45, + 45, 2364, 2364, 2364, 45, 45, 45, 45, 2364, 45, + 45, 2364, 45, 119, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 2334, 2334, 2334, 45, 45, 45, - 45, 45, 2334, 45, 2334, 45, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 2364, 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, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, - 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2364, - 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 45, 45, 2334, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 2334, 2334, 45, + 45, 2364, 45, 2364, 2364, 45, 2364, 45, 45, 45, + 45, 45, 2364, 45, 45, 2364, 2364, 2364, 45, 45, + 45, 45, 45, 2364, 45, 2364, 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, 2364, 45, 45, 45, 45, + 45, 45, 45, 2364, 2364, 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, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 45, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 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, 2334, 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, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, - 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2364, 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, 2334, 45, 45, 45, + 45, 45, 45, 45, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 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, 2334, 45, 45, 45, 45, 45, 45, + 2364, 2364, 45, 45, 45, 45, 45, 45, 45, 2364, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 2364, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 2334, 45, 45, 2334, 45, 45, 45, - 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 2334, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 2364, 45, 45, 2364, + 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, - 45, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 45, 45, 2364, 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, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 45, 45, 2364, 45, 45, 2364, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 45, 2334, 45, 45, 45, 2334, 45, - 45, 45, 2334, 45, 45, 45, 45, 2334, 2334, 45, + 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 2364, 2364, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2364, + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 2364, + + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2364, 45, 2364, 45, 45, 45, 2364, 45, 45, 45, + 2364, 45, 45, 45, 45, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 2364, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 2334, 45, - 2334, 45, 45, 45, 2334, 2334, 2334, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 2334, 45, + 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 2334, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 2334, 2334, 45, - 2334, 45, 2334, 2334, 45, 45, 2334, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 2334, 2334, 2334, - 45, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 2364, 45, 2364, + 45, 45, 45, 2364, 2364, 2364, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 2364, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 2334, 45, 2334, 45, 45, 45, + 45, 45, 45, 2364, 2364, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 2364, 45, + 2364, 45, 2364, 2364, 45, 45, 2364, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 2364, 2364, 2364, + 45, 45, 2364, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 45, 2334, 45, + 2364, 45, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 2334, 45, 45, 45, 45, 45, - 2334, 45, 45, 2334, 2334, 45, 45, 45, 2334, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, - - 2334, 45, 45, 2334, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 45, 2334, - 45, 45, 45, 45, 45, 2334, 45, 45, 45, 2334, - 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, - 45, 45, 45, 2334, 45, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2364, 45, 45, 45, 2364, 45, 45, 45, 45, 45, + 2364, 45, 45, 2364, 2364, 45, 45, 45, 2364, 45, + + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, + 2364, 45, 45, 2364, 45, 45, 45, 2364, 45, 45, + 45, 45, 45, 45, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 45, 2364, + 45, 45, 45, 45, 45, 2364, 45, 45, 45, 2364, + 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 2334, 45, - 45, 45, 45, 45, 2334, 45, 45, 2334, 45, 2334, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2364, 45, 45, 45, 2364, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2334, 45, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 2334, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - - 45, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 2364, 45, + 45, 45, 45, 45, 2364, 45, 45, 2364, 45, 2364, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 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, 2334, 45, 45, + 2364, 45, 45, 45, 45, 2364, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + + 2364, 45, 45, 45, 45, 2364, 2364, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2364, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 45, 45, 45, 45, 45, 2364, 2364, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 2334, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2334, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 2364, 45, 2364, 45, 45, 2364, 45, - 45, 2334, 45, 45, 45, 2334, 45, 45, 45, 45, - 45, 2334, 45, 45, 2334, 45, 2334, 45, 45, 2334, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, - 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2364, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 2364, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 2364, 45, 45, 2364, + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2364, + 45, 45, 45, 45, 45, 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2334, 2334, 45, 45, 45, 2334, 45, 45, - 45, 45, 2334, 45, 45, 45, 45, 45, 2334, 2334, - 2334, 2334, 45, 45, 2334, 2334, 2334, 45, 45, 45, - 45, 45, 45, 45, 2334, 45, 45, 2334, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2334, 2334, 45, - 45, 45, 45, 45, 45, 2334, 45, 45, 2334, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 2334, 45, 45, 2334, 45, 45, 2334, 2334, 45, - 45, 45, 45, 2334, 45, 45, 2334, 45, 2334, 45, - 2334, 45, 45, 45, 45, 45, 45, 45, 2334, 45, - 2334, 2334, 2334, 0, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334 + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2364, 2364, 45, 45, 45, 2364, 45, 45, + 45, 45, 2364, 45, 45, 45, 45, 45, 2364, 2364, + 2364, 2364, 45, 45, 2364, 2364, 2364, 45, 45, 45, + 45, 45, 45, 45, 2364, 45, 45, 2364, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2364, 2364, 45, + 45, 45, 45, 45, 45, 2364, 45, 45, 2364, 45, + 2364, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 45, 2364, 2364, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2364, 45, 45, 2364, 45, 45, 2364, 2364, 45, + 45, 45, 45, 2364, 45, 45, 2364, 45, 2364, 45, + 2364, 45, 45, 45, 45, 45, 45, 45, 2364, 45, + 2364, 2364, 2364, 0, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364 } ; -static const flex_int16_t yy_nxt[2862] = +static const flex_int16_t yy_nxt[2891] = { 0, - 2334, 13, 14, 13, 2334, 15, 16, 102, 17, 18, + 2364, 13, 14, 13, 2364, 15, 16, 102, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 86, 254, 37, 14, 37, 87, 25, 26, 38, 37, - 14, 37, 42, 27, 42, 38, 2334, 2334, 28, 91, + 86, 257, 37, 14, 37, 87, 25, 26, 38, 37, + 14, 37, 42, 27, 42, 38, 2364, 2364, 28, 91, 13, 14, 13, 92, 29, 91, 30, 103, 13, 14, - 13, 202, 25, 31, 13, 14, 13, 42, 40, 42, - 2334, 32, 13, 14, 13, 91, 40, 33, 255, 167, - 93, 94, 92, 168, 34, 35, 13, 14, 13, 202, + 13, 204, 25, 31, 13, 14, 13, 42, 40, 42, + 737, 32, 13, 14, 13, 91, 40, 33, 258, 167, + 93, 94, 92, 168, 34, 35, 13, 14, 13, 204, 15, 16, 92, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 39, 13, 14, 13, 93, 93, 25, 26, 39, 13, 14, 13, 42, 27, 42, - 136, 95, 281, 28, 109, 282, 41, 104, 105, 29, - 108, 30, 115, 137, 41, 232, 233, 25, 31, 96, - 383, 138, 89, 139, 89, 234, 32, 90, 90, 90, - 90, 90, 33, 109, 104, 105, 108, 384, 115, 34, + 136, 95, 262, 28, 109, 738, 41, 104, 105, 29, + 108, 30, 115, 137, 41, 263, 187, 25, 31, 96, + 188, 138, 89, 139, 89, 458, 32, 90, 90, 90, + 90, 90, 33, 109, 104, 105, 108, 459, 115, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 48, 49, 50, 51, 45, @@ -1555,300 +1564,302 @@ static const flex_int16_t yy_nxt[2862] = 60, 61, 62, 63, 64, 45, 65, 66, 52, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 45, 45, 45, 45, 45, 81, 890, 82, + 78, 79, 45, 45, 45, 45, 45, 81, 897, 82, 82, 82, 82, 82, 81, 116, 84, 84, 84, 84, - 84, 191, 83, 85, 85, 85, 85, 85, 81, 83, - 84, 84, 84, 84, 84, 113, 83, 158, 198, 159, - 207, 111, 116, 83, 160, 108, 141, 114, 83, 112, - 191, 142, 104, 144, 143, 83, 148, 149, 210, 896, - 150, 113, 83, 145, 198, 146, 151, 111, 207, 83, + 84, 193, 83, 85, 85, 85, 85, 85, 81, 83, + 84, 84, 84, 84, 84, 113, 83, 158, 200, 159, + 209, 111, 116, 83, 160, 108, 141, 114, 83, 112, + 193, 142, 104, 144, 143, 83, 148, 149, 212, 898, + 150, 113, 83, 145, 200, 146, 151, 111, 209, 83, 45, 108, 45, 45, 45, 45, 114, 112, 45, 120, - 45, 45, 140, 118, 210, 121, 45, 45, 122, 45, + 45, 45, 140, 118, 212, 121, 45, 45, 122, 45, 45, 90, 90, 90, 90, 90, 45, 45, 45, 45, 45, 45, 105, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 102, - 191, 897, 124, 45, 152, 351, 125, 45, 352, 105, - 126, 45, 153, 127, 130, 203, 128, 131, 132, 45, - 129, 133, 134, 45, 154, 45, 119, 111, 161, 194, - 115, 162, 163, 197, 135, 112, 176, 177, 116, 103, - 169, 189, 164, 190, 170, 165, 113, 171, 204, 155, - 239, 156, 240, 157, 172, 173, 115, 189, 114, 174, - - 175, 190, 197, 112, 201, 116, 184, 271, 189, 241, - 190, 185, 178, 205, 179, 187, 208, 180, 181, 85, - 85, 85, 85, 85, 192, 246, 209, 182, 193, 898, - 243, 201, 83, 81, 183, 82, 82, 82, 82, 82, - 899, 247, 205, 244, 89, 208, 89, 245, 83, 90, - 90, 90, 90, 90, 209, 197, 272, 81, 83, 84, - 84, 84, 84, 84, 85, 85, 85, 85, 85, 101, - 251, 900, 83, 215, 83, 252, 101, 83, 90, 90, - 90, 90, 90, 220, 216, 226, 248, 259, 302, 249, - 264, 205, 221, 250, 227, 228, 222, 296, 83, 275, - - 260, 297, 303, 83, 308, 298, 207, 208, 286, 101, - 309, 265, 314, 101, 276, 277, 278, 101, 405, 901, - 270, 421, 320, 409, 422, 101, 315, 319, 406, 101, - 902, 101, 101, 213, 307, 321, 312, 319, 410, 329, - 320, 214, 214, 214, 214, 214, 287, 288, 289, 320, - 214, 214, 214, 214, 214, 214, 319, 290, 321, 291, - 326, 321, 292, 327, 293, 294, 322, 323, 329, 330, - 332, 392, 333, 335, 337, 326, 214, 214, 214, 214, - 214, 214, 332, 418, 324, 436, 326, 437, 334, 327, - 457, 419, 903, 441, 335, 458, 332, 330, 333, 335, - - 454, 340, 337, 338, 338, 338, 338, 338, 399, 451, - 353, 454, 338, 338, 338, 338, 338, 338, 354, 457, - 335, 452, 458, 460, 355, 462, 454, 393, 463, 491, - 394, 485, 457, 562, 446, 492, 486, 455, 338, 338, - 338, 338, 338, 338, 557, 507, 511, 534, 558, 460, - 508, 512, 520, 535, 462, 463, 466, 466, 466, 466, - 466, 468, 521, 904, 538, 466, 466, 466, 466, 466, - 466, 528, 529, 530, 539, 462, 553, 531, 567, 576, - 603, 554, 568, 577, 597, 563, 608, 619, 609, 598, - 610, 466, 466, 466, 466, 466, 466, 603, 641, 620, - - 654, 509, 725, 689, 540, 655, 510, 513, 690, 603, - 679, 642, 608, 630, 717, 754, 609, 631, 610, 718, - 680, 743, 905, 765, 744, 632, 612, 633, 634, 635, - 636, 637, 753, 752, 813, 814, 906, 555, 45, 45, - 45, 45, 45, 750, 754, 907, 758, 45, 45, 45, - 45, 45, 45, 759, 891, 834, 749, 726, 751, 752, - 753, 756, 781, 835, 892, 782, 837, 850, 878, 750, - 893, 838, 851, 45, 45, 45, 45, 45, 45, 766, - 879, 894, 908, 891, 909, 895, 913, 751, 914, 910, - 911, 892, 912, 915, 916, 917, 918, 893, 919, 920, - - 921, 922, 923, 924, 925, 926, 927, 928, 839, 929, - 894, 895, 930, 931, 852, 932, 933, 934, 937, 938, - 939, 935, 940, 941, 942, 936, 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, 969, 970, 968, 971, 972, 973, 974, 975, 976, - 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, - 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, - 1007, 1008, 1009, 1010, 1011, 1013, 1014, 1017, 1018, 1019, - - 1020, 1012, 1024, 1015, 1025, 1026, 1027, 1016, 1028, 1029, - 1030, 1031, 1032, 1021, 1033, 1022, 1034, 1035, 1036, 1023, - 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, 1039, - 1066, 1067, 1040, 1068, 1069, 1043, 1071, 1072, 1073, 1070, - 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1096, 1097, 1098, 1099, 1095, 1100, 1101, 1102, 1103, - 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, - - 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1126, 1127, 1128, 1125, 1129, 1130, 1131, 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, 1158, 1159, 1160, 1161, 1162, 1163, 1164, - 1165, 1166, 1167, 1168, 1157, 1169, 1170, 1171, 1172, 1173, - 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, - 1186, 1184, 1187, 1188, 1185, 1189, 1190, 1191, 1192, 1193, - 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1206, 1207, 1208, 1182, 1181, 1209, 1183, 1184, - - 1185, 1210, 1212, 1213, 1211, 1214, 1215, 1216, 1217, 1218, - 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1243, 1244, 1245, 1246, 1241, 1247, 1248, 1249, + 193, 199, 124, 45, 152, 211, 125, 45, 205, 105, + 126, 45, 153, 127, 130, 209, 128, 131, 132, 45, + 129, 133, 134, 45, 154, 45, 119, 111, 161, 196, + 199, 162, 163, 211, 135, 112, 115, 116, 191, 103, + 169, 206, 164, 311, 170, 165, 192, 171, 191, 155, + 899, 156, 192, 157, 172, 173, 177, 178, 174, 175, + + 176, 203, 115, 112, 116, 191, 113, 85, 85, 85, + 85, 85, 185, 192, 189, 194, 246, 186, 114, 195, + 83, 81, 900, 82, 82, 82, 82, 82, 203, 247, + 228, 207, 179, 248, 180, 101, 83, 181, 182, 229, + 230, 284, 101, 89, 285, 89, 83, 183, 90, 90, + 90, 90, 90, 81, 184, 84, 84, 84, 84, 84, + 207, 210, 83, 85, 85, 85, 85, 85, 83, 90, + 90, 90, 90, 90, 356, 101, 83, 357, 199, 101, + 222, 238, 239, 101, 267, 242, 274, 243, 207, 223, + 210, 101, 249, 224, 83, 101, 217, 101, 101, 234, + + 235, 254, 83, 215, 244, 268, 255, 218, 250, 236, + 210, 216, 216, 216, 216, 216, 289, 273, 828, 829, + 216, 216, 216, 216, 216, 216, 251, 278, 299, 252, + 324, 306, 300, 253, 312, 275, 301, 325, 318, 316, + 313, 325, 279, 280, 281, 307, 216, 216, 216, 216, + 216, 216, 319, 326, 290, 291, 292, 324, 326, 324, + 334, 331, 332, 335, 325, 293, 337, 294, 328, 338, + 295, 340, 296, 297, 342, 331, 389, 398, 427, 326, + 901, 428, 358, 337, 329, 415, 327, 331, 332, 334, + 359, 335, 337, 390, 339, 338, 360, 340, 411, 448, + + 416, 345, 342, 343, 343, 343, 343, 343, 412, 405, + 424, 340, 343, 343, 343, 343, 343, 343, 425, 443, + 462, 444, 462, 465, 468, 470, 466, 566, 471, 493, + 902, 567, 465, 399, 494, 529, 400, 340, 343, 343, + 343, 343, 343, 343, 516, 530, 462, 571, 463, 517, + 468, 453, 465, 466, 470, 471, 474, 474, 474, 474, + 474, 476, 547, 619, 903, 474, 474, 474, 474, 474, + 474, 499, 548, 520, 537, 538, 539, 500, 521, 543, + 540, 470, 562, 614, 576, 544, 585, 563, 577, 619, + 586, 474, 474, 474, 474, 474, 474, 607, 614, 572, + + 518, 620, 608, 621, 630, 519, 904, 641, 691, 666, + 549, 642, 614, 652, 667, 701, 631, 779, 692, 643, + 702, 644, 645, 646, 647, 648, 653, 623, 729, 620, + 768, 621, 756, 730, 522, 757, 766, 767, 795, 864, + 895, 796, 849, 564, 45, 45, 45, 45, 45, 764, + 850, 905, 896, 45, 45, 45, 45, 45, 45, 768, + 772, 763, 766, 852, 765, 767, 770, 773, 853, 866, + 906, 907, 908, 780, 867, 764, 910, 909, 912, 45, + 45, 45, 45, 45, 45, 911, 914, 913, 915, 916, + 917, 918, 919, 765, 920, 921, 922, 923, 924, 865, + + 925, 926, 927, 910, 931, 854, 909, 912, 928, 929, + 932, 930, 911, 913, 933, 934, 868, 935, 936, 937, + 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, + 948, 949, 950, 951, 952, 953, 956, 957, 958, 954, + 959, 960, 961, 955, 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, 988, + 989, 987, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + + 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1028, + 1029, 1030, 1031, 1027, 1033, 1034, 1037, 1038, 1039, 1032, + 1040, 1044, 1035, 1045, 1046, 1047, 1036, 1048, 1049, 1050, + 1051, 1052, 1053, 1041, 1054, 1042, 1055, 1056, 1057, 1043, + 1058, 1059, 1061, 1062, 1060, 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, + 1062, 1088, 1089, 1090, 1063, 1091, 1092, 1066, 1094, 1095, + 1096, 1093, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, + + 1115, 1116, 1117, 1119, 1120, 1121, 1122, 1118, 1123, 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, 1148, 1152, 1153, 1154, + 1156, 1157, 1158, 1159, 1155, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, + 1175, 1176, 1177, 1178, 1179, 1181, 1182, 1183, 1184, 1185, + 1186, 1187, 1188, 1189, 1190, 1191, 1180, 1192, 1193, 1194, + 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1212, 1210, 1213, 1214, 1211, + + 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, + 1208, 1207, 1235, 1209, 1210, 1211, 1236, 1238, 1239, 1237, + 1240, 1241, 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, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, - 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, - 1300, 1301, 1242, 1302, 1303, 1304, 1305, 1306, 1307, 1308, - - 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, - 1320, 1319, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, - 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1317, 1319, 1320, - 1321, 1347, 1348, 1345, 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, - 1376, 1377, 1378, 1379, 1375, 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, - - 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, - 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, - 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1449, 1448, 1450, 1451, 1452, 1453, 1454, - 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, - 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1446, 1472, 1445, - 1448, 1447, 1449, 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, 1504, 1505, 1506, 1507, 1508, 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, 1549, - 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, - 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, + 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1269, 1270, 1271, + 1272, 1267, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 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, 1323, 1324, 1325, 1326, 1327, 1268, 1328, 1329, + 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, + 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1348, 1347, 1349, + 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, + 1370, 1371, 1372, 1374, 1345, 1347, 1348, 1349, 1375, 1376, + 1373, 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, 1404, 1405, 1406, + + 1407, 1403, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, + 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, + 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, + 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, + 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, + 1476, 1478, 1477, 1479, 1480, 1481, 1482, 1483, 1484, 1485, + 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1475, 1501, 1474, 1477, 1476, + + 1478, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 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, 1549, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1560, 1561, 1588, - 1589, 1562, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, - - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1610, 1611, 1612, 1613, 1570, 1614, 1615, 1616, - 1617, 1618, 1619, 1620, 1622, 1623, 1624, 1625, 1626, 1627, - 1628, 1621, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, - 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, - 1648, 1649, 1652, 1650, 1647, 1651, 1653, 1654, 1655, 1656, - 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, - 1667, 1668, 1671, 1670, 1672, 1673, 1674, 1675, 1676, 1677, - 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, - 1688, 1689, 1690, 1691, 1692, 1669, 1667, 1693, 1666, 1670, - - 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, - 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, - 1714, 1715, 1716, 1669, 1717, 1718, 1719, 1720, 1721, 1722, - 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1734, 1735, 1736, 1740, 1737, 1741, 1742, 1738, 1743, - 1744, 1739, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, - 1753, 1754, 1755, 1756, 1757, 1759, 1758, 1760, 1761, 1762, - 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1771, 1772, 1773, - 1776, 1777, 1774, 1778, 1779, 1780, 1781, 1782, 1783, 1784, - 1756, 1757, 1758, 1775, 1759, 1760, 1785, 1786, 1787, 1788, - - 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 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, 1770, 1827, 1828, - 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, - 1839, 1840, 1841, 1842, 1844, 1843, 1845, 1846, 1847, 1848, - 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1798, - 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1842, - 1870, 1841, 1843, 1844, 1867, 1845, 1871, 1872, 1873, 1868, - 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, 1869, 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, 1914, 1940, 1916, - 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, 1974, 1975, 1976, 1977, 1973, 1978, 1979, 1980, - - 1982, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, - 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 1980, 1981, 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, 2045, 2046, 2047, 2048, - 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, - 2059, 2034, 2035, 2060, 2036, 2061, 2062, 2063, 2064, 2065, - 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, - - 2076, 2077, 2078, 2079, 2080, 2082, 2083, 2081, 2084, 2085, - 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, - 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, - 2106, 2107, 2108, 2109, 2110, 2111, 2085, 2087, 2112, 2113, - 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, - 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, - 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, - 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, - 2154, 2155, 2156, 2131, 2157, 2132, 2158, 2159, 2160, 2161, - 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2170, 2169, 2171, - - 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, - 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, - 2192, 2193, 2194, 2168, 2169, 2195, 2196, 2197, 2198, 2199, - 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, - 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, - 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2202, 2228, - 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, - 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, - 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, - 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, - - 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, - 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2289, - 2288, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, - 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, - 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, - 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, - 2329, 2330, 2331, 2332, 2333, 12, 12, 12, 36, 36, - 36, 80, 99, 80, 101, 101, 101, 117, 117, 117, - 188, 889, 188, 211, 211, 211, 888, 887, 886, 885, - 884, 883, 882, 881, 880, 877, 876, 875, 874, 873, - - 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, - 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, - 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, - 836, 833, 832, 831, 830, 829, 828, 827, 826, 825, - 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, - 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, 785, 784, 783, - 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, - 770, 769, 768, 767, 764, 763, 762, 761, 760, 757, - - 755, 749, 748, 747, 746, 745, 742, 741, 740, 739, - 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, - 728, 727, 724, 723, 722, 721, 720, 719, 716, 715, - 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, - 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, - 694, 693, 692, 691, 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, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 640, 639, 638, 629, - - 628, 627, 626, 625, 624, 623, 622, 621, 618, 617, - 616, 615, 614, 613, 611, 607, 606, 605, 604, 602, - 601, 600, 599, 596, 595, 594, 593, 592, 591, 590, - 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, - 579, 578, 575, 574, 573, 572, 571, 570, 569, 566, - 565, 564, 561, 560, 559, 556, 552, 551, 550, 549, - 548, 547, 546, 545, 544, 543, 542, 541, 537, 536, - 533, 532, 527, 526, 525, 524, 523, 522, 519, 518, - 517, 516, 515, 514, 506, 505, 504, 503, 502, 501, - 500, 499, 498, 497, 496, 495, 494, 493, 490, 489, - - 488, 487, 484, 483, 482, 481, 480, 479, 478, 477, - 476, 475, 474, 473, 472, 471, 470, 469, 467, 465, - 464, 461, 459, 456, 453, 450, 449, 448, 447, 445, - 444, 443, 442, 440, 439, 438, 435, 434, 433, 432, - 431, 430, 429, 428, 427, 426, 425, 424, 423, 420, - 417, 416, 415, 414, 413, 412, 411, 408, 407, 404, - 403, 402, 401, 400, 398, 397, 396, 395, 391, 390, - 389, 388, 387, 386, 385, 382, 381, 380, 379, 378, - 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, - 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, - - 357, 356, 350, 349, 348, 347, 346, 345, 344, 343, - 342, 341, 339, 212, 336, 334, 331, 328, 325, 318, - 317, 316, 313, 311, 310, 306, 305, 304, 301, 300, - 299, 295, 285, 284, 283, 280, 279, 274, 273, 269, - 268, 267, 266, 263, 262, 261, 258, 257, 256, 253, - 242, 238, 237, 236, 235, 231, 230, 229, 225, 224, - 223, 219, 218, 217, 212, 206, 200, 199, 196, 195, - 186, 166, 147, 123, 110, 107, 106, 43, 100, 98, - 97, 88, 43, 2334, 11, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334 + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, + + 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1612, 1613, 1614, 1615, 1616, 1617, 1590, 1591, 1618, 1619, + 1592, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, + 1639, 1640, 1641, 1642, 1643, 1600, 1644, 1645, 1646, 1647, + 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658, + 1651, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1678, + 1679, 1682, 1680, 1677, 1681, 1683, 1684, 1685, 1686, 1687, + 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, + + 1698, 1701, 1700, 1702, 1703, 1704, 1705, 1706, 1707, 1708, + 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, + 1719, 1720, 1721, 1722, 1699, 1697, 1723, 1696, 1700, 1724, + 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, + 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, + 1745, 1746, 1699, 1747, 1748, 1749, 1750, 1751, 1752, 1753, + 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, + 1764, 1765, 1766, 1770, 1767, 1771, 1772, 1768, 1773, 1774, + 1769, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, + 1784, 1785, 1786, 1787, 1789, 1788, 1790, 1791, 1792, 1793, + + 1794, 1795, 1796, 1797, 1798, 1799, 1801, 1802, 1803, 1806, + 1807, 1804, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1786, + 1787, 1788, 1805, 1789, 1790, 1815, 1816, 1817, 1818, 1819, + 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 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, 1800, 1857, 1858, 1859, + 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, + 1870, 1871, 1872, 1874, 1873, 1875, 1876, 1877, 1878, 1879, + 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1828, 1888, + + 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1872, 1900, + 1871, 1873, 1874, 1897, 1875, 1901, 1902, 1903, 1898, 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, + 1899, 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, 1944, 1970, 1946, 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, 2004, 2005, 2006, 2007, 2003, 2008, 2009, 2010, 2012, + 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, + 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, + 2032, 2033, 2034, 2035, 2036, 2010, 2011, 2037, 2038, 2039, + 2040, 2041, 2042, 2043, 2044, 2045, 2046, 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, 2085, 2086, 2087, 2088, 2089, + 2064, 2065, 2090, 2066, 2091, 2092, 2093, 2094, 2095, 2096, + 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, + 2107, 2108, 2109, 2110, 2112, 2113, 2111, 2114, 2115, 2116, + 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, + 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, + 2137, 2138, 2139, 2140, 2141, 2115, 2117, 2142, 2143, 2144, + 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, + 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, + 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, + + 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, + 2185, 2186, 2161, 2187, 2162, 2188, 2189, 2190, 2191, 2192, + 2193, 2194, 2195, 2196, 2197, 2198, 2200, 2199, 2201, 2202, + 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, + 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, + 2223, 2224, 2198, 2199, 2225, 2226, 2227, 2228, 2229, 2230, + 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, + 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2232, 2258, 2259, + 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, + + 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, + 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, + 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, + 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, + 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2319, 2318, + 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, + 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, + 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, + 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, + 2360, 2361, 2362, 2363, 12, 12, 12, 36, 36, 36, + + 80, 99, 80, 101, 101, 101, 117, 117, 117, 190, + 894, 190, 213, 213, 213, 893, 892, 891, 890, 889, + 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, + 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, + 863, 862, 861, 860, 859, 858, 857, 856, 855, 851, + 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, + 838, 837, 836, 835, 834, 833, 832, 831, 830, 827, + 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, + 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, + 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, + + 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, + 784, 783, 782, 781, 778, 777, 776, 775, 774, 771, + 769, 763, 762, 761, 760, 759, 758, 755, 754, 753, + 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, + 742, 741, 740, 739, 736, 735, 734, 733, 732, 731, + 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, + 708, 707, 706, 705, 704, 703, 700, 699, 698, 697, + 696, 695, 694, 693, 690, 689, 688, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, + + 674, 673, 672, 671, 670, 669, 668, 665, 664, 663, + 662, 661, 660, 659, 658, 657, 656, 655, 654, 651, + 650, 649, 640, 639, 638, 637, 636, 635, 634, 633, + 632, 629, 628, 627, 626, 625, 624, 622, 618, 617, + 616, 615, 613, 612, 611, 610, 609, 606, 605, 604, + 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, + 593, 592, 591, 590, 589, 588, 587, 584, 583, 582, + 581, 580, 579, 578, 575, 574, 573, 570, 569, 568, + 565, 561, 560, 559, 558, 557, 556, 555, 554, 553, + 552, 551, 550, 546, 545, 542, 541, 536, 535, 534, + + 533, 532, 531, 528, 527, 526, 525, 524, 523, 515, + 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, + 504, 503, 502, 501, 498, 497, 496, 495, 492, 491, + 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, + 480, 479, 478, 477, 475, 473, 472, 469, 467, 464, + 461, 460, 457, 456, 455, 454, 452, 451, 450, 449, + 447, 446, 445, 442, 441, 440, 439, 438, 437, 436, + 435, 434, 433, 432, 431, 430, 429, 426, 423, 422, + 421, 420, 419, 418, 417, 414, 413, 410, 409, 408, + 407, 406, 404, 403, 402, 401, 397, 396, 395, 394, + + 393, 392, 391, 388, 387, 386, 385, 384, 383, 382, + 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, + 361, 355, 354, 353, 352, 351, 350, 349, 348, 347, + 346, 344, 214, 341, 339, 336, 333, 330, 323, 322, + 321, 320, 317, 315, 314, 310, 309, 308, 305, 304, + 303, 302, 298, 288, 287, 286, 283, 282, 277, 276, + 272, 271, 270, 269, 266, 265, 264, 261, 260, 259, + 256, 245, 241, 240, 237, 233, 232, 231, 227, 226, + 225, 221, 220, 219, 214, 208, 202, 201, 198, 197, + + 166, 147, 123, 110, 107, 106, 43, 100, 98, 97, + 88, 43, 2364, 11, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364 } ; -static const flex_int16_t yy_chk[2862] = +static const flex_int16_t yy_chk[2891] = { 0, 0, 1, 1, 1, 0, 1, 1, 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1856,16 +1867,16 @@ static const flex_int16_t yy_chk[2862] = 4, 4, 13, 1, 13, 4, 0, 0, 1, 26, 5, 5, 5, 27, 1, 31, 1, 44, 6, 6, 6, 109, 1, 1, 7, 7, 7, 37, 7, 37, - 0, 1, 8, 8, 8, 26, 8, 1, 144, 74, + 585, 1, 8, 8, 8, 26, 8, 1, 144, 74, 28, 31, 27, 74, 1, 1, 2, 2, 2, 109, 2, 2, 32, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 9, 9, 9, 28, 33, 2, 2, 6, 10, 10, 10, 42, 2, 42, - 63, 32, 164, 2, 52, 164, 9, 47, 48, 2, - 51, 2, 56, 63, 10, 132, 132, 2, 2, 33, - 257, 63, 25, 63, 25, 132, 2, 25, 25, 25, - 25, 25, 2, 52, 47, 48, 51, 257, 56, 2, + 63, 32, 148, 2, 52, 585, 9, 47, 48, 2, + 51, 2, 56, 63, 10, 148, 78, 2, 2, 33, + 78, 63, 25, 63, 25, 321, 2, 25, 25, 25, + 25, 25, 2, 52, 47, 48, 51, 321, 56, 2, 2, 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, 15, @@ -1874,12 +1885,12 @@ static const flex_int16_t yy_chk[2862] = 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, 747, 17, + 15, 15, 15, 15, 15, 15, 15, 17, 749, 17, 17, 17, 17, 17, 19, 57, 19, 19, 19, 19, 19, 93, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 55, 20, 71, 105, 71, 113, 54, 57, 22, 71, 64, 65, 55, 17, 54, - 93, 65, 59, 66, 65, 19, 68, 68, 116, 755, + 93, 65, 59, 66, 65, 19, 68, 68, 116, 750, 68, 55, 20, 66, 105, 66, 68, 54, 113, 22, 45, 64, 45, 45, 45, 45, 55, 54, 45, 59, @@ -1887,284 +1898,286 @@ static const flex_int16_t yy_chk[2862] = 58, 89, 89, 89, 89, 89, 45, 45, 45, 45, 45, 45, 61, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 101, - 96, 756, 61, 58, 69, 227, 61, 58, 227, 61, - 61, 58, 69, 61, 62, 110, 61, 62, 62, 58, + 96, 104, 61, 58, 69, 115, 61, 58, 110, 61, + 61, 58, 69, 61, 62, 179, 61, 62, 62, 58, 61, 62, 62, 58, 69, 58, 58, 70, 72, 96, - 77, 72, 72, 104, 62, 70, 76, 76, 79, 101, - 75, 91, 72, 92, 75, 72, 76, 75, 110, 70, - 137, 70, 137, 70, 75, 75, 77, 94, 76, 75, - - 75, 95, 104, 70, 108, 79, 77, 158, 91, 137, - 92, 77, 76, 111, 76, 79, 114, 76, 76, 81, - 81, 81, 81, 81, 94, 140, 115, 76, 95, 757, - 139, 108, 81, 82, 76, 82, 82, 82, 82, 82, - 758, 140, 111, 139, 83, 114, 83, 139, 82, 83, - 83, 83, 83, 83, 115, 120, 158, 84, 81, 84, - 84, 84, 84, 84, 85, 85, 85, 85, 85, 103, - 142, 759, 84, 120, 82, 142, 103, 85, 90, 90, - 90, 90, 90, 124, 120, 128, 141, 148, 174, 141, - 152, 157, 124, 141, 128, 128, 124, 170, 84, 161, - - 148, 170, 174, 85, 179, 170, 178, 182, 168, 103, - 179, 152, 184, 103, 161, 161, 161, 103, 276, 760, - 157, 289, 190, 279, 289, 103, 184, 189, 276, 103, - 761, 103, 103, 119, 178, 191, 182, 192, 279, 201, - 193, 119, 119, 119, 119, 119, 168, 168, 168, 190, - 119, 119, 119, 119, 119, 119, 189, 168, 194, 168, - 197, 191, 168, 198, 168, 168, 192, 193, 201, 202, - 205, 265, 206, 208, 210, 216, 119, 119, 119, 119, - 119, 119, 270, 287, 194, 303, 197, 303, 307, 198, - 326, 287, 762, 307, 312, 327, 205, 202, 206, 208, - - 319, 216, 210, 214, 214, 214, 214, 214, 270, 317, - 228, 322, 214, 214, 214, 214, 214, 214, 228, 326, - 312, 317, 327, 329, 228, 332, 319, 265, 333, 362, - 265, 357, 340, 418, 312, 362, 357, 322, 214, 214, - 214, 214, 214, 214, 414, 377, 378, 395, 414, 329, - 377, 378, 385, 395, 332, 333, 338, 338, 338, 338, - 338, 340, 385, 763, 398, 338, 338, 338, 338, 338, - 338, 392, 392, 392, 398, 399, 412, 392, 422, 430, - 457, 412, 422, 430, 450, 418, 463, 475, 465, 450, - 465, 338, 338, 338, 338, 338, 338, 468, 491, 475, - - 504, 377, 576, 540, 399, 504, 377, 378, 540, 457, - 530, 491, 463, 487, 569, 610, 465, 487, 465, 569, - 530, 598, 764, 622, 598, 487, 468, 487, 487, 487, - 487, 487, 609, 608, 671, 671, 765, 412, 466, 466, - 466, 466, 466, 604, 610, 766, 616, 466, 466, 466, - 466, 466, 466, 616, 750, 692, 612, 576, 604, 608, - 609, 612, 637, 692, 751, 637, 694, 706, 735, 604, - 752, 694, 706, 466, 466, 466, 466, 466, 466, 622, - 735, 753, 767, 750, 768, 754, 770, 604, 771, 769, - 769, 751, 769, 772, 773, 774, 775, 752, 776, 777, - - 778, 779, 780, 781, 782, 783, 784, 785, 694, 786, - 753, 754, 787, 788, 706, 789, 790, 791, 792, 793, - 794, 791, 795, 796, 797, 791, 798, 799, 800, 801, - 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, - 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, - 822, 823, 824, 822, 825, 827, 828, 829, 830, 831, - 832, 833, 834, 835, 836, 838, 839, 840, 841, 842, - 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, - - 874, 868, 875, 870, 876, 877, 879, 870, 880, 881, - 882, 883, 884, 874, 885, 874, 886, 887, 888, 874, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 903, 904, 905, 906, 909, 910, - 911, 912, 913, 914, 915, 916, 917, 918, 919, 891, - 920, 921, 892, 922, 923, 895, 924, 925, 926, 923, + 104, 72, 72, 115, 62, 70, 77, 79, 91, 101, + 75, 110, 72, 179, 75, 72, 92, 75, 94, 70, + 751, 70, 95, 70, 75, 75, 76, 76, 75, 75, + + 75, 108, 77, 70, 79, 91, 76, 81, 81, 81, + 81, 81, 77, 92, 79, 94, 139, 77, 76, 95, + 81, 82, 752, 82, 82, 82, 82, 82, 108, 139, + 128, 111, 76, 139, 76, 103, 82, 76, 76, 128, + 128, 164, 103, 83, 164, 83, 81, 76, 83, 83, + 83, 83, 83, 84, 76, 84, 84, 84, 84, 84, + 111, 114, 82, 85, 85, 85, 85, 85, 84, 90, + 90, 90, 90, 90, 229, 103, 85, 229, 120, 103, + 124, 134, 134, 103, 152, 137, 158, 137, 157, 124, + 114, 103, 140, 124, 84, 103, 120, 103, 103, 132, + + 132, 142, 85, 119, 137, 152, 142, 120, 140, 132, + 183, 119, 119, 119, 119, 119, 168, 157, 683, 683, + 119, 119, 119, 119, 119, 119, 141, 161, 170, 141, + 191, 175, 170, 141, 180, 158, 170, 192, 185, 183, + 180, 195, 161, 161, 161, 175, 119, 119, 119, 119, + 119, 119, 185, 193, 168, 168, 168, 194, 196, 191, + 203, 199, 200, 204, 192, 168, 207, 168, 195, 208, + 168, 210, 168, 168, 212, 218, 260, 268, 292, 193, + 753, 292, 230, 273, 196, 282, 194, 199, 200, 203, + 230, 204, 207, 260, 311, 208, 230, 210, 279, 311, + + 282, 218, 212, 216, 216, 216, 216, 216, 279, 273, + 290, 316, 216, 216, 216, 216, 216, 216, 290, 307, + 324, 307, 327, 331, 334, 337, 332, 420, 338, 362, + 754, 420, 345, 268, 362, 391, 268, 316, 216, 216, + 216, 216, 216, 216, 383, 391, 324, 424, 327, 383, + 334, 316, 331, 332, 337, 338, 343, 343, 343, 343, + 343, 345, 404, 471, 755, 343, 343, 343, 343, 343, + 343, 367, 404, 384, 398, 398, 398, 367, 384, 401, + 398, 405, 418, 465, 428, 401, 436, 418, 428, 471, + 436, 343, 343, 343, 343, 343, 343, 457, 476, 424, + + 383, 473, 457, 473, 483, 383, 756, 495, 539, 513, + 405, 495, 465, 499, 513, 549, 483, 633, 539, 495, + 549, 495, 495, 495, 495, 495, 499, 476, 578, 473, + 621, 473, 608, 578, 384, 608, 619, 620, 648, 717, + 748, 648, 704, 418, 474, 474, 474, 474, 474, 615, + 704, 757, 748, 474, 474, 474, 474, 474, 474, 621, + 627, 623, 619, 706, 615, 620, 623, 627, 706, 718, + 758, 760, 761, 633, 718, 615, 765, 764, 767, 474, + 474, 474, 474, 474, 474, 766, 769, 768, 770, 771, + 772, 773, 774, 615, 775, 776, 777, 778, 779, 717, + + 780, 781, 782, 765, 784, 706, 764, 767, 783, 783, + 785, 783, 766, 768, 786, 787, 718, 788, 789, 790, + 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, + 801, 802, 803, 804, 805, 806, 807, 808, 809, 806, + 810, 811, 812, 806, 813, 814, 815, 816, 817, 818, + 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, + 839, 837, 840, 842, 843, 844, 845, 846, 847, 848, + 849, 850, 851, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 862, 863, 865, 867, 868, 869, 870, 871, + + 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 884, 880, 885, 886, 887, 888, 889, 884, + 890, 891, 886, 892, 893, 894, 886, 896, 897, 898, + 899, 900, 901, 890, 902, 890, 903, 904, 905, 890, + 906, 907, 908, 909, 907, 910, 911, 912, 913, 914, + 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, - 937, 938, 939, 940, 941, 942, 944, 945, 946, 947, - 948, 949, 950, 951, 952, 948, 953, 954, 955, 956, - 957, 958, 959, 960, 961, 964, 965, 966, 967, 968, - - 969, 970, 972, 973, 974, 975, 976, 977, 979, 980, - 981, 982, 983, 984, 981, 985, 986, 987, 989, 990, - 993, 994, 987, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1025, 1014, 1026, 1028, 1029, 1030, 1031, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, - 1044, 1042, 1045, 1046, 1043, 1047, 1048, 1049, 1051, 1052, - 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1066, 1067, 1040, 1039, 1068, 1041, 1042, - - 1043, 1070, 1071, 1072, 1070, 1073, 1074, 1075, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1091, 1092, 1093, 1095, 1096, 1097, 1098, - 1099, 1100, 1101, 1102, 1104, 1105, 1100, 1106, 1107, 1108, - 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, - 1129, 1130, 1132, 1133, 1135, 1136, 1138, 1139, 1140, 1141, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1163, - 1164, 1165, 1100, 1166, 1167, 1168, 1169, 1170, 1171, 1172, - - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, - 1184, 1183, 1185, 1187, 1188, 1189, 1190, 1191, 1193, 1194, - 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, - 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1181, 1183, 1184, - 1185, 1212, 1213, 1210, 1214, 1215, 1216, 1218, 1219, 1221, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, - 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1241, 1242, - 1243, 1244, 1245, 1246, 1242, 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, 1279, 1280, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1291, 1292, 1295, - 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1315, 1316, - 1317, 1318, 1319, 1321, 1320, 1322, 1323, 1324, 1325, 1326, - 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1337, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1318, 1345, 1317, - 1320, 1319, 1321, 1346, 1347, 1348, 1350, 1351, 1352, 1353, - 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, - 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1373, 1375, 1376, - - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1396, 1397, 1398, - 1400, 1401, 1402, 1404, 1405, 1406, 1407, 1410, 1411, 1412, - 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, - 1423, 1424, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, - 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1446, 1447, 1448, 1449, 1451, 1452, 1453, 1454, 1455, 1457, - 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, - 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1446, 1447, 1475, - 1476, 1448, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1485, + 909, 937, 938, 939, 910, 940, 941, 913, 942, 943, + 944, 941, 945, 946, 947, 948, 949, 950, 952, 953, + 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, + + 965, 966, 967, 968, 969, 970, 971, 967, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 983, 984, 985, + 986, 987, 988, 989, 991, 992, 993, 994, 995, 996, + 998, 999, 1000, 1001, 1002, 1003, 1000, 1004, 1005, 1006, + 1008, 1009, 1012, 1013, 1006, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1027, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, + 1040, 1041, 1042, 1043, 1044, 1045, 1034, 1046, 1047, 1049, + 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, + 1060, 1061, 1062, 1063, 1064, 1067, 1065, 1068, 1069, 1066, + + 1070, 1071, 1072, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1063, 1062, 1091, 1064, 1065, 1066, 1093, 1094, 1095, 1093, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, + 1128, 1123, 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, 1155, 1156, 1158, + 1159, 1161, 1162, 1163, 1164, 1166, 1167, 1168, 1169, 1170, + + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 1185, 1186, 1187, 1188, 1123, 1189, 1191, + 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1210, 1209, 1211, + 1213, 1214, 1215, 1216, 1217, 1219, 1220, 1221, 1222, 1223, + 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, + 1234, 1235, 1236, 1237, 1207, 1209, 1210, 1211, 1238, 1239, + 1236, 1240, 1241, 1242, 1244, 1245, 1247, 1248, 1249, 1250, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1269, 1270, 1271, + + 1272, 1268, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1303, 1305, 1306, 1307, 1308, 1309, 1310, 1311, + 1312, 1313, 1314, 1315, 1317, 1318, 1321, 1322, 1323, 1324, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1335, 1336, 1337, 1338, 1339, 1341, 1343, 1344, 1345, 1346, + 1347, 1349, 1348, 1350, 1351, 1352, 1353, 1354, 1355, 1356, + 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1365, 1366, 1367, + 1368, 1369, 1370, 1371, 1372, 1346, 1373, 1345, 1348, 1347, + + 1349, 1374, 1375, 1376, 1378, 1379, 1380, 1381, 1382, 1383, + 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 1397, 1398, 1401, 1403, 1404, 1405, 1406, + 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, + 1417, 1418, 1419, 1420, 1422, 1424, 1425, 1426, 1428, 1429, + 1430, 1432, 1433, 1434, 1435, 1438, 1439, 1440, 1441, 1442, + 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1465, + 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, + 1476, 1477, 1478, 1480, 1481, 1482, 1483, 1484, 1486, 1487, + + 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, + 1498, 1499, 1500, 1501, 1502, 1503, 1475, 1476, 1504, 1505, + 1477, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1527, 1528, 1529, 1530, 1486, 1531, 1532, 1533, 1534, + 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, + 1538, 1546, 1547, 1549, 1550, 1551, 1552, 1553, 1554, 1555, + 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1564, 1565, 1566, + 1567, 1571, 1569, 1565, 1569, 1572, 1573, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1588, 1589, 1590, + + 1591, 1594, 1592, 1595, 1596, 1597, 1598, 1600, 1601, 1602, + 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, + 1613, 1616, 1617, 1618, 1591, 1590, 1619, 1589, 1592, 1620, + 1621, 1623, 1624, 1626, 1627, 1628, 1629, 1630, 1631, 1632, + 1633, 1634, 1635, 1636, 1637, 1640, 1642, 1645, 1646, 1648, + 1649, 1650, 1591, 1651, 1652, 1653, 1654, 1655, 1656, 1657, + 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1667, 1671, 1672, + 1674, 1675, 1677, 1678, 1677, 1679, 1680, 1677, 1681, 1682, + 1677, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1692, + 1694, 1695, 1696, 1697, 1699, 1698, 1700, 1701, 1703, 1704, + + 1706, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1717, + 1718, 1716, 1719, 1720, 1721, 1722, 1723, 1725, 1726, 1696, + 1697, 1698, 1716, 1699, 1700, 1727, 1728, 1730, 1731, 1732, + 1733, 1734, 1735, 1736, 1737, 1738, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, + 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1761, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1712, 1769, 1770, 1772, + 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1782, 1783, + 1784, 1786, 1787, 1789, 1788, 1790, 1792, 1793, 1796, 1797, + 1798, 1800, 1802, 1803, 1804, 1805, 1806, 1807, 1739, 1808, + + 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1817, 1787, 1819, + 1786, 1788, 1789, 1818, 1790, 1820, 1821, 1822, 1818, 1823, + 1824, 1825, 1826, 1828, 1829, 1830, 1832, 1833, 1835, 1836, + 1837, 1839, 1840, 1841, 1842, 1843, 1844, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, + 1860, 1861, 1862, 1864, 1865, 1866, 1867, 1868, 1869, 1871, + 1818, 1872, 1873, 1874, 1875, 1877, 1878, 1879, 1882, 1883, + 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, + 1894, 1895, 1896, 1898, 1899, 1900, 1871, 1901, 1873, 1902, + 1903, 1905, 1906, 1907, 1909, 1910, 1911, 1912, 1913, 1914, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1501, 1457, 1502, 1503, 1504, - 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1509, 1517, 1518, 1520, 1521, 1522, 1523, 1524, 1525, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1535, 1536, - 1537, 1538, 1542, 1540, 1536, 1540, 1543, 1544, 1548, 1549, - 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, - 1560, 1561, 1564, 1562, 1565, 1566, 1567, 1568, 1570, 1571, - 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, - 1582, 1583, 1586, 1587, 1588, 1561, 1560, 1589, 1559, 1562, - - 1590, 1591, 1593, 1594, 1596, 1597, 1598, 1599, 1600, 1601, - 1602, 1603, 1604, 1605, 1606, 1607, 1610, 1612, 1615, 1616, - 1618, 1619, 1620, 1561, 1621, 1622, 1623, 1624, 1625, 1626, - 1627, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1637, 1641, - 1642, 1644, 1645, 1647, 1648, 1647, 1649, 1650, 1647, 1651, - 1652, 1647, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, - 1662, 1664, 1665, 1666, 1667, 1669, 1668, 1670, 1671, 1673, - 1674, 1676, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, - 1687, 1688, 1686, 1689, 1690, 1691, 1692, 1693, 1695, 1696, - 1666, 1667, 1668, 1686, 1669, 1670, 1697, 1698, 1700, 1701, - - 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1708, 1709, 1710, - 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, - 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1731, - 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1682, 1739, 1740, - 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1752, - 1753, 1754, 1756, 1757, 1759, 1758, 1760, 1762, 1763, 1766, - 1767, 1768, 1770, 1772, 1773, 1774, 1775, 1776, 1777, 1709, - 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1787, 1757, - 1789, 1756, 1758, 1759, 1788, 1760, 1790, 1791, 1792, 1788, - 1793, 1794, 1795, 1796, 1798, 1799, 1800, 1802, 1803, 1805, - - 1806, 1807, 1809, 1810, 1811, 1812, 1813, 1814, 1817, 1818, - 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, - 1829, 1830, 1831, 1832, 1834, 1835, 1836, 1837, 1838, 1839, - 1841, 1788, 1842, 1843, 1844, 1845, 1847, 1848, 1849, 1852, - 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, - 1863, 1864, 1865, 1866, 1868, 1869, 1870, 1841, 1871, 1843, - 1872, 1873, 1875, 1876, 1877, 1879, 1880, 1881, 1882, 1883, - 1884, 1885, 1886, 1887, 1888, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, - 1905, 1906, 1908, 1910, 1911, 1912, 1906, 1913, 1914, 1916, - - 1919, 1917, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, - 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, - 1940, 1941, 1942, 1943, 1944, 1945, 1916, 1917, 1946, 1947, - 1948, 1949, 1950, 1952, 1953, 1954, 1955, 1957, 1958, 1959, - 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1970, - 1972, 1973, 1974, 1975, 1978, 1979, 1980, 1981, 1982, 1983, - 1984, 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, - 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, - 2008, 1979, 1980, 2009, 1981, 2010, 2011, 2012, 2013, 2014, - 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, - - 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2030, 2033, 2034, - 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, - 2045, 2046, 2047, 2049, 2050, 2051, 2052, 2053, 2054, 2055, - 2056, 2057, 2058, 2059, 2060, 2061, 2034, 2036, 2063, 2065, - 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, - 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2087, 2089, - 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, - 2100, 2101, 2103, 2104, 2105, 2107, 2108, 2109, 2110, 2111, - 2113, 2114, 2116, 2085, 2118, 2087, 2119, 2121, 2122, 2123, - 2124, 2125, 2126, 2127, 2128, 2130, 2131, 2133, 2132, 2134, - - 2135, 2136, 2137, 2138, 2139, 2141, 2142, 2143, 2144, 2145, - 2146, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, - 2157, 2158, 2159, 2131, 2132, 2160, 2161, 2163, 2164, 2165, - 2166, 2167, 2168, 2169, 2170, 2171, 2173, 2174, 2175, 2176, - 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, - 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2168, 2195, - 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2205, 2206, 2207, - 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2217, 2218, 2223, - 2224, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2236, 2237, - 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2250, - - 2251, 2252, 2253, 2254, 2255, 2257, 2258, 2260, 2262, 2263, - 2264, 2265, 2266, 2267, 2268, 2270, 2271, 2272, 2273, 2274, - 2273, 2275, 2276, 2277, 2278, 2280, 2281, 2284, 2285, 2286, - 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, - 2297, 2298, 2299, 2300, 2301, 2303, 2304, 2306, 2307, 2310, - 2311, 2312, 2313, 2315, 2316, 2318, 2320, 2322, 2323, 2324, - 2325, 2326, 2327, 2328, 2330, 2335, 2335, 2335, 2336, 2336, - 2336, 2337, 2338, 2337, 2339, 2339, 2339, 2340, 2340, 2340, - 2341, 745, 2341, 2342, 2342, 2342, 744, 743, 742, 741, - 740, 739, 738, 737, 736, 734, 733, 732, 730, 729, + 1915, 1916, 1917, 1918, 1920, 1921, 1922, 1923, 1924, 1925, + 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, + 1936, 1938, 1940, 1941, 1942, 1936, 1943, 1944, 1946, 1949, + 1947, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1960, + 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1973, 1974, 1975, 1946, 1947, 1976, 1977, 1978, + 1979, 1980, 1982, 1983, 1984, 1985, 1987, 1988, 1989, 1990, + 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002, + 2003, 2004, 2005, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, 2025, + + 2026, 2027, 2028, 2030, 2031, 2032, 2033, 2034, 2035, 2038, + 2009, 2010, 2039, 2011, 2040, 2041, 2042, 2043, 2044, 2045, + 2046, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, + 2057, 2058, 2059, 2060, 2061, 2062, 2060, 2063, 2064, 2065, + 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, + 2076, 2077, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, + 2087, 2088, 2089, 2090, 2091, 2064, 2066, 2093, 2095, 2097, + 2098, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, + 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2117, 2119, 2120, + 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, + + 2131, 2133, 2134, 2135, 2137, 2138, 2139, 2140, 2141, 2143, + 2144, 2146, 2115, 2148, 2117, 2149, 2151, 2152, 2153, 2154, + 2155, 2156, 2157, 2158, 2160, 2161, 2163, 2162, 2164, 2165, + 2166, 2167, 2168, 2169, 2171, 2172, 2173, 2174, 2175, 2176, + 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, + 2188, 2189, 2161, 2162, 2190, 2191, 2193, 2194, 2195, 2196, + 2197, 2198, 2199, 2200, 2201, 2203, 2204, 2205, 2206, 2207, + 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, + 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2198, 2225, 2226, + 2227, 2228, 2229, 2230, 2231, 2232, 2235, 2236, 2237, 2239, + + 2240, 2241, 2242, 2244, 2245, 2246, 2247, 2248, 2253, 2254, + 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2266, 2267, 2269, + 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2280, 2281, + 2282, 2283, 2284, 2285, 2287, 2288, 2290, 2292, 2293, 2294, + 2295, 2296, 2297, 2298, 2300, 2301, 2302, 2303, 2304, 2303, + 2305, 2306, 2307, 2308, 2310, 2311, 2314, 2315, 2316, 2317, + 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, + 2328, 2329, 2330, 2331, 2333, 2334, 2336, 2337, 2340, 2341, + 2342, 2343, 2345, 2346, 2348, 2350, 2352, 2353, 2354, 2355, + 2356, 2357, 2358, 2360, 2365, 2365, 2365, 2366, 2366, 2366, + + 2367, 2368, 2367, 2369, 2369, 2369, 2370, 2370, 2370, 2371, + 747, 2371, 2372, 2372, 2372, 746, 745, 744, 742, 741, + 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, + 730, 728, 727, 726, 725, 723, 722, 721, 720, 719, + 715, 714, 713, 712, 711, 710, 709, 708, 707, 705, + 703, 702, 700, 699, 698, 697, 696, 695, 694, 693, + 692, 691, 690, 689, 688, 687, 686, 685, 684, 682, + 681, 680, 679, 678, 677, 676, 673, 672, 671, 670, + 669, 668, 667, 665, 664, 663, 662, 661, 660, 659, + 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, - 718, 716, 715, 714, 713, 711, 710, 709, 708, 707, - 705, 703, 702, 701, 700, 699, 698, 697, 696, 695, - 693, 691, 690, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, - 670, 669, 668, 667, 666, 665, 664, 661, 660, 659, - 658, 657, 656, 655, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, - 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 621, 620, 619, 618, 617, 614, - - 611, 603, 602, 601, 600, 599, 596, 593, 591, 589, - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 575, 574, 573, 572, 571, 570, 568, 567, - 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 555, 554, 552, 551, 550, 549, 548, 547, 546, 545, - 544, 543, 542, 541, 539, 538, 536, 535, 534, 533, - 532, 531, 529, 528, 527, 526, 525, 524, 523, 522, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 510, 509, 508, 506, 505, 503, 502, 501, 500, 499, - 498, 497, 496, 495, 493, 492, 490, 489, 488, 486, - - 484, 483, 482, 481, 480, 479, 477, 476, 474, 473, - 472, 471, 470, 469, 467, 462, 460, 459, 458, 456, - 453, 452, 451, 449, 448, 447, 446, 445, 444, 443, - 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, - 432, 431, 429, 428, 427, 426, 425, 424, 423, 421, - 420, 419, 417, 416, 415, 413, 411, 410, 409, 408, - 407, 406, 405, 404, 403, 402, 401, 400, 397, 396, - 394, 393, 391, 390, 389, 388, 387, 386, 384, 383, - 382, 381, 380, 379, 376, 375, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 361, 360, - - 359, 358, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 339, 337, - 335, 330, 328, 325, 318, 316, 315, 314, 313, 311, - 310, 309, 308, 306, 305, 304, 302, 301, 300, 299, - 298, 297, 296, 295, 294, 293, 292, 291, 290, 288, - 286, 285, 284, 283, 282, 281, 280, 278, 277, 275, - 274, 273, 272, 271, 269, 268, 267, 266, 264, 263, - 262, 261, 260, 259, 258, 256, 255, 253, 252, 251, - 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, - 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, - - 230, 229, 226, 225, 224, 223, 222, 221, 220, 219, - 218, 217, 215, 211, 209, 207, 204, 199, 195, 187, - 186, 185, 183, 181, 180, 177, 176, 175, 173, 172, - 171, 169, 167, 166, 165, 163, 162, 160, 159, 156, - 155, 154, 153, 151, 150, 149, 147, 146, 145, 143, - 138, 136, 135, 134, 133, 131, 130, 129, 127, 126, + 637, 636, 635, 634, 632, 631, 630, 629, 628, 625, + 622, 614, 613, 612, 611, 610, 609, 606, 603, 601, + 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, + 589, 588, 587, 586, 584, 583, 582, 581, 580, 579, + 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, + 567, 566, 564, 563, 561, 560, 559, 558, 557, 556, + 555, 554, 553, 552, 551, 550, 548, 547, 545, 544, + 543, 542, 541, 540, 538, 537, 536, 535, 534, 533, + 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, + + 522, 521, 519, 518, 517, 515, 514, 512, 511, 510, + 509, 508, 507, 506, 505, 504, 502, 501, 500, 498, + 497, 496, 494, 492, 491, 490, 489, 488, 487, 485, + 484, 482, 481, 480, 479, 478, 477, 475, 470, 468, + 467, 466, 464, 461, 460, 459, 458, 456, 455, 454, + 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, + 443, 442, 441, 440, 439, 438, 437, 435, 434, 433, + 432, 431, 430, 429, 427, 426, 425, 423, 422, 421, + 419, 417, 416, 415, 414, 413, 412, 411, 410, 409, + 408, 407, 406, 403, 402, 400, 399, 397, 396, 395, + + 394, 393, 392, 390, 389, 388, 387, 386, 385, 382, + 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 366, 365, 364, 363, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 344, 342, 340, 335, 333, 330, + 323, 322, 320, 319, 318, 317, 315, 314, 313, 312, + 310, 309, 308, 306, 305, 304, 303, 302, 301, 300, + 299, 298, 297, 296, 295, 294, 293, 291, 289, 288, + 287, 286, 285, 284, 283, 281, 280, 278, 277, 276, + 275, 274, 272, 271, 270, 269, 267, 266, 265, 264, + + 263, 262, 261, 259, 258, 256, 255, 254, 253, 252, + 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, + 231, 228, 227, 226, 225, 224, 223, 222, 221, 220, + 219, 217, 213, 211, 209, 206, 201, 197, 189, 188, + 187, 186, 184, 182, 181, 178, 177, 176, 174, 173, + 172, 171, 169, 167, 166, 165, 163, 162, 160, 159, + 156, 155, 154, 153, 151, 150, 149, 147, 146, 145, + 143, 138, 136, 135, 133, 131, 130, 129, 127, 126, 125, 123, 122, 121, 117, 112, 107, 106, 99, 98, - 78, 73, 67, 60, 53, 50, 49, 43, 41, 39, - 38, 24, 14, 11, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, - 2334 + + 73, 67, 60, 53, 50, 49, 43, 41, 39, 38, + 24, 14, 11, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, + 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364 } ; static yy_state_type yy_last_accepting_state; @@ -2173,7 +2186,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[246] = +static const flex_int16_t yy_rule_linenum[252] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 180, 185, 191, 200, 209, 218, 227, 236, 245, 254, 263, @@ -2182,26 +2195,27 @@ static const flex_int16_t yy_rule_linenum[246] = 467, 476, 485, 494, 503, 512, 521, 530, 539, 548, 562, 574, 586, 597, 608, 620, 631, 642, 653, 664, 675, 686, 697, 706, 715, 724, 735, 746, 755, 767, - 779, 791, 803, 814, 826, 838, 850, 862, 874, 886, - 897, 908, 917, 926, 935, 946, 957, 966, 975, 987, - 999, 1011, 1023, 1035, 1047, 1059, 1070, 1082, 1091, 1100, - - 1109, 1118, 1130, 1142, 1154, 1166, 1176, 1187, 1196, 1205, - 1220, 1237, 1246, 1255, 1264, 1273, 1282, 1291, 1300, 1309, - 1318, 1327, 1336, 1346, 1373, 1400, 1409, 1419, 1429, 1438, - 1448, 1459, 1470, 1481, 1491, 1500, 1509, 1518, 1529, 1540, - 1551, 1562, 1573, 1582, 1591, 1600, 1609, 1618, 1627, 1636, - 1645, 1654, 1663, 1678, 1690, 1702, 1715, 1724, 1733, 1742, - 1751, 1761, 1771, 1780, 1789, 1800, 1810, 1819, 1829, 1839, - 1848, 1857, 1866, 1875, 1885, 1894, 1903, 1912, 1921, 1930, - 1939, 1948, 1957, 1966, 1975, 1984, 1993, 2002, 2011, 2020, - 2029, 2038, 2047, 2056, 2065, 2074, 2083, 2092, 2101, 2110, - - 2119, 2128, 2137, 2146, 2155, 2164, 2173, 2182, 2191, 2200, - 2209, 2218, 2227, 2236, 2245, 2254, 2263, 2272, 2281, 2290, - 2299, 2308, 2317, 2326, 2335, 2344, 2353, 2454, 2470, 2519, - 2527, 2542, 2543, 2544, 2545, 2546, 2547, 2549, 2567, 2580, - 2585, 2589, 2591, 2593, 2595 + 779, 791, 802, 813, 822, 831, 840, 849, 858, 869, + 881, 893, 905, 917, 929, 941, 952, 963, 972, 981, + 990, 1001, 1012, 1021, 1030, 1042, 1054, 1066, 1078, 1090, + + 1102, 1114, 1125, 1137, 1146, 1155, 1164, 1173, 1185, 1197, + 1209, 1221, 1231, 1242, 1251, 1260, 1275, 1292, 1301, 1310, + 1319, 1328, 1337, 1346, 1355, 1364, 1373, 1382, 1391, 1401, + 1428, 1455, 1464, 1474, 1484, 1493, 1503, 1514, 1525, 1536, + 1546, 1555, 1564, 1573, 1584, 1595, 1606, 1617, 1628, 1637, + 1646, 1655, 1664, 1673, 1682, 1691, 1700, 1709, 1718, 1733, + 1745, 1757, 1770, 1779, 1788, 1797, 1806, 1816, 1826, 1835, + 1844, 1855, 1865, 1874, 1884, 1894, 1903, 1912, 1921, 1930, + 1940, 1949, 1958, 1967, 1976, 1985, 1994, 2003, 2012, 2021, + 2030, 2039, 2048, 2057, 2066, 2075, 2084, 2093, 2102, 2111, + + 2120, 2129, 2138, 2147, 2156, 2165, 2174, 2183, 2192, 2201, + 2210, 2219, 2228, 2237, 2246, 2255, 2264, 2273, 2282, 2291, + 2300, 2309, 2318, 2327, 2336, 2345, 2354, 2363, 2372, 2381, + 2390, 2399, 2408, 2509, 2525, 2574, 2582, 2597, 2598, 2599, + 2600, 2601, 2602, 2604, 2622, 2635, 2640, 2644, 2646, 2648, + 2650 } ; /* The intent behind this definition is that it'll catch @@ -2256,7 +2270,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2260 "dhcp6_lexer.cc" +#line 2274 "dhcp6_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 @@ -2282,8 +2296,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 2286 "dhcp6_lexer.cc" -#line 2287 "dhcp6_lexer.cc" +#line 2300 "dhcp6_lexer.cc" +#line 2301 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2613,7 +2627,7 @@ YY_DECL } -#line 2617 "dhcp6_lexer.cc" +#line 2631 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2642,13 +2656,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 >= 2335 ) + if ( yy_current_state >= 2365 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2334 ); + while ( yy_current_state != 2364 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2667,13 +2681,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 < 246 ) + else if ( yy_act < 252 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 246 ) + else if ( yy_act == 252 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 247 ) + else if ( yy_act == 253 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3565,7 +3579,6 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - case isc::dhcp::Parser6Context::CONTROL_SOCKET: return isc::dhcp::Dhcp6Parser::make_KEY_PASSWORD(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("key-password", driver.loc_); @@ -3574,7 +3587,81 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 803 "dhcp6_lexer.ll" +#line 802 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_); + } +} + YY_BREAK +case 74: +YY_RULE_SETUP +#line 813 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_); + } +} + YY_BREAK +case 75: +YY_RULE_SETUP +#line 822 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_); + } +} + YY_BREAK +case 76: +YY_RULE_SETUP +#line 831 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_); + } +} + YY_BREAK +case 77: +YY_RULE_SETUP +#line 840 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_); + } +} + YY_BREAK +case 78: +YY_RULE_SETUP +#line 849 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_); + } +} + YY_BREAK +case 79: +YY_RULE_SETUP +#line 858 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3586,9 +3673,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 80: YY_RULE_SETUP -#line 814 "dhcp6_lexer.ll" +#line 869 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3601,9 +3688,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 81: YY_RULE_SETUP -#line 826 "dhcp6_lexer.ll" +#line 881 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3616,9 +3703,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 82: YY_RULE_SETUP -#line 838 "dhcp6_lexer.ll" +#line 893 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3631,9 +3718,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 83: YY_RULE_SETUP -#line 850 "dhcp6_lexer.ll" +#line 905 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3646,9 +3733,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 84: YY_RULE_SETUP -#line 862 "dhcp6_lexer.ll" +#line 917 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3661,9 +3748,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 85: YY_RULE_SETUP -#line 874 "dhcp6_lexer.ll" +#line 929 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3676,9 +3763,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 86: YY_RULE_SETUP -#line 886 "dhcp6_lexer.ll" +#line 941 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3690,9 +3777,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 87: YY_RULE_SETUP -#line 897 "dhcp6_lexer.ll" +#line 952 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3704,9 +3791,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 88: YY_RULE_SETUP -#line 908 "dhcp6_lexer.ll" +#line 963 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3716,9 +3803,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 89: YY_RULE_SETUP -#line 917 "dhcp6_lexer.ll" +#line 972 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3728,9 +3815,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 90: YY_RULE_SETUP -#line 926 "dhcp6_lexer.ll" +#line 981 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3740,9 +3827,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 91: YY_RULE_SETUP -#line 935 "dhcp6_lexer.ll" +#line 990 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3754,9 +3841,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 92: YY_RULE_SETUP -#line 946 "dhcp6_lexer.ll" +#line 1001 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3768,9 +3855,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 93: YY_RULE_SETUP -#line 957 "dhcp6_lexer.ll" +#line 1012 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3780,9 +3867,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 94: YY_RULE_SETUP -#line 966 "dhcp6_lexer.ll" +#line 1021 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3792,9 +3879,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 95: YY_RULE_SETUP -#line 975 "dhcp6_lexer.ll" +#line 1030 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3807,9 +3894,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 96: YY_RULE_SETUP -#line 987 "dhcp6_lexer.ll" +#line 1042 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3822,9 +3909,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 97: YY_RULE_SETUP -#line 999 "dhcp6_lexer.ll" +#line 1054 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3837,9 +3924,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 98: YY_RULE_SETUP -#line 1011 "dhcp6_lexer.ll" +#line 1066 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3852,9 +3939,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 99: YY_RULE_SETUP -#line 1023 "dhcp6_lexer.ll" +#line 1078 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3867,9 +3954,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 100: YY_RULE_SETUP -#line 1035 "dhcp6_lexer.ll" +#line 1090 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3882,9 +3969,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 101: YY_RULE_SETUP -#line 1047 "dhcp6_lexer.ll" +#line 1102 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3897,9 +3984,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 102: YY_RULE_SETUP -#line 1059 "dhcp6_lexer.ll" +#line 1114 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3911,9 +3998,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 103: YY_RULE_SETUP -#line 1070 "dhcp6_lexer.ll" +#line 1125 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3926,9 +4013,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 104: YY_RULE_SETUP -#line 1082 "dhcp6_lexer.ll" +#line 1137 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_CHECK_WITH_DHCID(driver.loc_); @@ -3938,9 +4025,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 99: +case 105: YY_RULE_SETUP -#line 1091 "dhcp6_lexer.ll" +#line 1146 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_NO_CHECK_WITH_DHCID(driver.loc_); @@ -3950,9 +4037,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 100: +case 106: YY_RULE_SETUP -#line 1100 "dhcp6_lexer.ll" +#line 1155 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_CHECK_EXISTS_WITH_DHCID(driver.loc_); @@ -3962,9 +4049,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 101: +case 107: YY_RULE_SETUP -#line 1109 "dhcp6_lexer.ll" +#line 1164 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_NO_CHECK_WITHOUT_DHCID(driver.loc_); @@ -3974,9 +4061,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 102: +case 108: YY_RULE_SETUP -#line 1118 "dhcp6_lexer.ll" +#line 1173 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3989,9 +4076,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 109: YY_RULE_SETUP -#line 1130 "dhcp6_lexer.ll" +#line 1185 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4004,9 +4091,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 110: YY_RULE_SETUP -#line 1142 "dhcp6_lexer.ll" +#line 1197 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4019,9 +4106,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 111: YY_RULE_SETUP -#line 1154 "dhcp6_lexer.ll" +#line 1209 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4034,9 +4121,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 112: YY_RULE_SETUP -#line 1166 "dhcp6_lexer.ll" +#line 1221 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4047,9 +4134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 113: YY_RULE_SETUP -#line 1176 "dhcp6_lexer.ll" +#line 1231 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4061,9 +4148,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 114: YY_RULE_SETUP -#line 1187 "dhcp6_lexer.ll" +#line 1242 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4073,9 +4160,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 115: YY_RULE_SETUP -#line 1196 "dhcp6_lexer.ll" +#line 1251 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4085,9 +4172,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 116: YY_RULE_SETUP -#line 1205 "dhcp6_lexer.ll" +#line 1260 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4103,9 +4190,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 117: YY_RULE_SETUP -#line 1220 "dhcp6_lexer.ll" +#line 1275 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -4123,9 +4210,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 118: YY_RULE_SETUP -#line 1237 "dhcp6_lexer.ll" +#line 1292 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4135,9 +4222,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 119: YY_RULE_SETUP -#line 1246 "dhcp6_lexer.ll" +#line 1301 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4147,9 +4234,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 120: YY_RULE_SETUP -#line 1255 "dhcp6_lexer.ll" +#line 1310 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4159,9 +4246,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 121: YY_RULE_SETUP -#line 1264 "dhcp6_lexer.ll" +#line 1319 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4171,9 +4258,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 122: YY_RULE_SETUP -#line 1273 "dhcp6_lexer.ll" +#line 1328 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4183,9 +4270,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 123: YY_RULE_SETUP -#line 1282 "dhcp6_lexer.ll" +#line 1337 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4195,9 +4282,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 124: YY_RULE_SETUP -#line 1291 "dhcp6_lexer.ll" +#line 1346 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4207,9 +4294,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 125: YY_RULE_SETUP -#line 1300 "dhcp6_lexer.ll" +#line 1355 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4219,9 +4306,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 126: YY_RULE_SETUP -#line 1309 "dhcp6_lexer.ll" +#line 1364 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4231,9 +4318,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 127: YY_RULE_SETUP -#line 1318 "dhcp6_lexer.ll" +#line 1373 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4243,9 +4330,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 128: YY_RULE_SETUP -#line 1327 "dhcp6_lexer.ll" +#line 1382 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4255,9 +4342,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 129: YY_RULE_SETUP -#line 1336 "dhcp6_lexer.ll" +#line 1391 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4268,9 +4355,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 130: YY_RULE_SETUP -#line 1346 "dhcp6_lexer.ll" +#line 1401 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4298,9 +4385,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 131: YY_RULE_SETUP -#line 1373 "dhcp6_lexer.ll" +#line 1428 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4328,9 +4415,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 132: YY_RULE_SETUP -#line 1400 "dhcp6_lexer.ll" +#line 1455 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4340,9 +4427,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 133: YY_RULE_SETUP -#line 1409 "dhcp6_lexer.ll" +#line 1464 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4353,9 +4440,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 134: YY_RULE_SETUP -#line 1419 "dhcp6_lexer.ll" +#line 1474 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4366,9 +4453,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 135: YY_RULE_SETUP -#line 1429 "dhcp6_lexer.ll" +#line 1484 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4378,9 +4465,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 136: YY_RULE_SETUP -#line 1438 "dhcp6_lexer.ll" +#line 1493 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4391,9 +4478,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 137: YY_RULE_SETUP -#line 1448 "dhcp6_lexer.ll" +#line 1503 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4405,9 +4492,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 138: YY_RULE_SETUP -#line 1459 "dhcp6_lexer.ll" +#line 1514 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4419,9 +4506,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 139: YY_RULE_SETUP -#line 1470 "dhcp6_lexer.ll" +#line 1525 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4433,9 +4520,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 140: YY_RULE_SETUP -#line 1481 "dhcp6_lexer.ll" +#line 1536 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4446,9 +4533,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 141: YY_RULE_SETUP -#line 1491 "dhcp6_lexer.ll" +#line 1546 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4458,9 +4545,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 142: YY_RULE_SETUP -#line 1500 "dhcp6_lexer.ll" +#line 1555 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4470,9 +4557,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 143: YY_RULE_SETUP -#line 1509 "dhcp6_lexer.ll" +#line 1564 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4482,9 +4569,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 144: YY_RULE_SETUP -#line 1518 "dhcp6_lexer.ll" +#line 1573 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4496,9 +4583,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 145: YY_RULE_SETUP -#line 1529 "dhcp6_lexer.ll" +#line 1584 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4510,9 +4597,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 146: YY_RULE_SETUP -#line 1540 "dhcp6_lexer.ll" +#line 1595 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4524,9 +4611,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 147: YY_RULE_SETUP -#line 1551 "dhcp6_lexer.ll" +#line 1606 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4538,9 +4625,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 148: YY_RULE_SETUP -#line 1562 "dhcp6_lexer.ll" +#line 1617 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4552,9 +4639,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 149: YY_RULE_SETUP -#line 1573 "dhcp6_lexer.ll" +#line 1628 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4564,9 +4651,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 150: YY_RULE_SETUP -#line 1582 "dhcp6_lexer.ll" +#line 1637 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4576,9 +4663,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 151: YY_RULE_SETUP -#line 1591 "dhcp6_lexer.ll" +#line 1646 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4588,9 +4675,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 152: YY_RULE_SETUP -#line 1600 "dhcp6_lexer.ll" +#line 1655 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4600,9 +4687,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 153: YY_RULE_SETUP -#line 1609 "dhcp6_lexer.ll" +#line 1664 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4612,9 +4699,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 154: YY_RULE_SETUP -#line 1618 "dhcp6_lexer.ll" +#line 1673 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4624,9 +4711,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 155: YY_RULE_SETUP -#line 1627 "dhcp6_lexer.ll" +#line 1682 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4636,9 +4723,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 156: YY_RULE_SETUP -#line 1636 "dhcp6_lexer.ll" +#line 1691 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4648,9 +4735,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 157: YY_RULE_SETUP -#line 1645 "dhcp6_lexer.ll" +#line 1700 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4660,9 +4747,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 158: YY_RULE_SETUP -#line 1654 "dhcp6_lexer.ll" +#line 1709 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4672,9 +4759,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 159: YY_RULE_SETUP -#line 1663 "dhcp6_lexer.ll" +#line 1718 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4690,9 +4777,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 160: YY_RULE_SETUP -#line 1678 "dhcp6_lexer.ll" +#line 1733 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4705,9 +4792,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 161: YY_RULE_SETUP -#line 1690 "dhcp6_lexer.ll" +#line 1745 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4720,9 +4807,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 162: YY_RULE_SETUP -#line 1702 "dhcp6_lexer.ll" +#line 1757 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4736,9 +4823,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 163: YY_RULE_SETUP -#line 1715 "dhcp6_lexer.ll" +#line 1770 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4748,9 +4835,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 164: YY_RULE_SETUP -#line 1724 "dhcp6_lexer.ll" +#line 1779 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4760,9 +4847,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 165: YY_RULE_SETUP -#line 1733 "dhcp6_lexer.ll" +#line 1788 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4772,9 +4859,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 166: YY_RULE_SETUP -#line 1742 "dhcp6_lexer.ll" +#line 1797 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4784,9 +4871,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 167: YY_RULE_SETUP -#line 1751 "dhcp6_lexer.ll" +#line 1806 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4797,9 +4884,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 168: YY_RULE_SETUP -#line 1761 "dhcp6_lexer.ll" +#line 1816 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4810,9 +4897,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 169: YY_RULE_SETUP -#line 1771 "dhcp6_lexer.ll" +#line 1826 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4822,9 +4909,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 170: YY_RULE_SETUP -#line 1780 "dhcp6_lexer.ll" +#line 1835 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4834,9 +4921,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 171: YY_RULE_SETUP -#line 1789 "dhcp6_lexer.ll" +#line 1844 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4848,9 +4935,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 172: YY_RULE_SETUP -#line 1800 "dhcp6_lexer.ll" +#line 1855 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4861,9 +4948,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 173: YY_RULE_SETUP -#line 1810 "dhcp6_lexer.ll" +#line 1865 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4873,9 +4960,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 174: YY_RULE_SETUP -#line 1819 "dhcp6_lexer.ll" +#line 1874 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4886,9 +4973,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 175: YY_RULE_SETUP -#line 1829 "dhcp6_lexer.ll" +#line 1884 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4899,9 +4986,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 176: YY_RULE_SETUP -#line 1839 "dhcp6_lexer.ll" +#line 1894 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4911,9 +4998,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 177: YY_RULE_SETUP -#line 1848 "dhcp6_lexer.ll" +#line 1903 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4923,9 +5010,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 178: YY_RULE_SETUP -#line 1857 "dhcp6_lexer.ll" +#line 1912 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4935,9 +5022,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 179: YY_RULE_SETUP -#line 1866 "dhcp6_lexer.ll" +#line 1921 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4947,9 +5034,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 180: YY_RULE_SETUP -#line 1875 "dhcp6_lexer.ll" +#line 1930 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4960,9 +5047,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 181: YY_RULE_SETUP -#line 1885 "dhcp6_lexer.ll" +#line 1940 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4972,9 +5059,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 182: YY_RULE_SETUP -#line 1894 "dhcp6_lexer.ll" +#line 1949 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4984,9 +5071,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 183: YY_RULE_SETUP -#line 1903 "dhcp6_lexer.ll" +#line 1958 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4996,9 +5083,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 184: YY_RULE_SETUP -#line 1912 "dhcp6_lexer.ll" +#line 1967 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5008,9 +5095,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 185: YY_RULE_SETUP -#line 1921 "dhcp6_lexer.ll" +#line 1976 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5020,9 +5107,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 186: YY_RULE_SETUP -#line 1930 "dhcp6_lexer.ll" +#line 1985 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5032,9 +5119,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 187: YY_RULE_SETUP -#line 1939 "dhcp6_lexer.ll" +#line 1994 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5044,9 +5131,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 188: YY_RULE_SETUP -#line 1948 "dhcp6_lexer.ll" +#line 2003 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5056,9 +5143,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 189: YY_RULE_SETUP -#line 1957 "dhcp6_lexer.ll" +#line 2012 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5068,9 +5155,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 190: YY_RULE_SETUP -#line 1966 "dhcp6_lexer.ll" +#line 2021 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5080,9 +5167,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 191: YY_RULE_SETUP -#line 1975 "dhcp6_lexer.ll" +#line 2030 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5092,9 +5179,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 192: YY_RULE_SETUP -#line 1984 "dhcp6_lexer.ll" +#line 2039 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5104,9 +5191,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 193: YY_RULE_SETUP -#line 1993 "dhcp6_lexer.ll" +#line 2048 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5116,9 +5203,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 194: YY_RULE_SETUP -#line 2002 "dhcp6_lexer.ll" +#line 2057 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5128,9 +5215,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 195: YY_RULE_SETUP -#line 2011 "dhcp6_lexer.ll" +#line 2066 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5140,9 +5227,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 196: YY_RULE_SETUP -#line 2020 "dhcp6_lexer.ll" +#line 2075 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5152,9 +5239,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 197: YY_RULE_SETUP -#line 2029 "dhcp6_lexer.ll" +#line 2084 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5164,9 +5251,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 198: YY_RULE_SETUP -#line 2038 "dhcp6_lexer.ll" +#line 2093 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5176,9 +5263,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 199: YY_RULE_SETUP -#line 2047 "dhcp6_lexer.ll" +#line 2102 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5188,9 +5275,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 200: YY_RULE_SETUP -#line 2056 "dhcp6_lexer.ll" +#line 2111 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5200,9 +5287,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 201: YY_RULE_SETUP -#line 2065 "dhcp6_lexer.ll" +#line 2120 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5212,9 +5299,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 202: YY_RULE_SETUP -#line 2074 "dhcp6_lexer.ll" +#line 2129 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5224,9 +5311,9 @@ YY_RULE_SETUP } } YY_BREAK -case 197: +case 203: YY_RULE_SETUP -#line 2083 "dhcp6_lexer.ll" +#line 2138 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5236,9 +5323,9 @@ YY_RULE_SETUP } } YY_BREAK -case 198: +case 204: YY_RULE_SETUP -#line 2092 "dhcp6_lexer.ll" +#line 2147 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5248,9 +5335,9 @@ YY_RULE_SETUP } } YY_BREAK -case 199: +case 205: YY_RULE_SETUP -#line 2101 "dhcp6_lexer.ll" +#line 2156 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5260,9 +5347,9 @@ YY_RULE_SETUP } } YY_BREAK -case 200: +case 206: YY_RULE_SETUP -#line 2110 "dhcp6_lexer.ll" +#line 2165 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5272,9 +5359,9 @@ YY_RULE_SETUP } } YY_BREAK -case 201: +case 207: YY_RULE_SETUP -#line 2119 "dhcp6_lexer.ll" +#line 2174 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5284,9 +5371,9 @@ YY_RULE_SETUP } } YY_BREAK -case 202: +case 208: YY_RULE_SETUP -#line 2128 "dhcp6_lexer.ll" +#line 2183 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5296,9 +5383,9 @@ YY_RULE_SETUP } } YY_BREAK -case 203: +case 209: YY_RULE_SETUP -#line 2137 "dhcp6_lexer.ll" +#line 2192 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5308,9 +5395,9 @@ YY_RULE_SETUP } } YY_BREAK -case 204: +case 210: YY_RULE_SETUP -#line 2146 "dhcp6_lexer.ll" +#line 2201 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5320,9 +5407,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 211: YY_RULE_SETUP -#line 2155 "dhcp6_lexer.ll" +#line 2210 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5332,9 +5419,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 212: YY_RULE_SETUP -#line 2164 "dhcp6_lexer.ll" +#line 2219 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5344,9 +5431,9 @@ YY_RULE_SETUP } } YY_BREAK -case 207: +case 213: YY_RULE_SETUP -#line 2173 "dhcp6_lexer.ll" +#line 2228 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5356,9 +5443,9 @@ YY_RULE_SETUP } } YY_BREAK -case 208: +case 214: YY_RULE_SETUP -#line 2182 "dhcp6_lexer.ll" +#line 2237 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTH_TYPE: @@ -5368,9 +5455,9 @@ YY_RULE_SETUP } } YY_BREAK -case 209: +case 215: YY_RULE_SETUP -#line 2191 "dhcp6_lexer.ll" +#line 2246 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5380,9 +5467,9 @@ YY_RULE_SETUP } } YY_BREAK -case 210: +case 216: YY_RULE_SETUP -#line 2200 "dhcp6_lexer.ll" +#line 2255 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5392,9 +5479,9 @@ YY_RULE_SETUP } } YY_BREAK -case 211: +case 217: YY_RULE_SETUP -#line 2209 "dhcp6_lexer.ll" +#line 2264 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5404,9 +5491,9 @@ YY_RULE_SETUP } } YY_BREAK -case 212: +case 218: YY_RULE_SETUP -#line 2218 "dhcp6_lexer.ll" +#line 2273 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5416,9 +5503,9 @@ YY_RULE_SETUP } } YY_BREAK -case 213: +case 219: YY_RULE_SETUP -#line 2227 "dhcp6_lexer.ll" +#line 2282 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5428,9 +5515,9 @@ YY_RULE_SETUP } } YY_BREAK -case 214: +case 220: YY_RULE_SETUP -#line 2236 "dhcp6_lexer.ll" +#line 2291 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5440,9 +5527,9 @@ YY_RULE_SETUP } } YY_BREAK -case 215: +case 221: YY_RULE_SETUP -#line 2245 "dhcp6_lexer.ll" +#line 2300 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5452,9 +5539,9 @@ YY_RULE_SETUP } } YY_BREAK -case 216: +case 222: YY_RULE_SETUP -#line 2254 "dhcp6_lexer.ll" +#line 2309 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HTTP_HEADERS: @@ -5464,9 +5551,9 @@ YY_RULE_SETUP } } YY_BREAK -case 217: +case 223: YY_RULE_SETUP -#line 2263 "dhcp6_lexer.ll" +#line 2318 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5476,9 +5563,9 @@ YY_RULE_SETUP } } YY_BREAK -case 218: +case 224: YY_RULE_SETUP -#line 2272 "dhcp6_lexer.ll" +#line 2327 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5488,9 +5575,9 @@ YY_RULE_SETUP } } YY_BREAK -case 219: +case 225: YY_RULE_SETUP -#line 2281 "dhcp6_lexer.ll" +#line 2336 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5500,9 +5587,9 @@ YY_RULE_SETUP } } YY_BREAK -case 220: +case 226: YY_RULE_SETUP -#line 2290 "dhcp6_lexer.ll" +#line 2345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5512,9 +5599,9 @@ YY_RULE_SETUP } } YY_BREAK -case 221: +case 227: YY_RULE_SETUP -#line 2299 "dhcp6_lexer.ll" +#line 2354 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5524,9 +5611,9 @@ YY_RULE_SETUP } } YY_BREAK -case 222: +case 228: YY_RULE_SETUP -#line 2308 "dhcp6_lexer.ll" +#line 2363 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5536,9 +5623,9 @@ YY_RULE_SETUP } } YY_BREAK -case 223: +case 229: YY_RULE_SETUP -#line 2317 "dhcp6_lexer.ll" +#line 2372 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5548,9 +5635,9 @@ YY_RULE_SETUP } } YY_BREAK -case 224: +case 230: YY_RULE_SETUP -#line 2326 "dhcp6_lexer.ll" +#line 2381 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5560,9 +5647,9 @@ YY_RULE_SETUP } } YY_BREAK -case 225: +case 231: YY_RULE_SETUP -#line 2335 "dhcp6_lexer.ll" +#line 2390 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5572,9 +5659,9 @@ YY_RULE_SETUP } } YY_BREAK -case 226: +case 232: YY_RULE_SETUP -#line 2344 "dhcp6_lexer.ll" +#line 2399 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::COMPATIBILITY: @@ -5584,9 +5671,9 @@ YY_RULE_SETUP } } YY_BREAK -case 227: +case 233: YY_RULE_SETUP -#line 2353 "dhcp6_lexer.ll" +#line 2408 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -5688,10 +5775,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 228: -/* rule 228 can match eol */ +case 234: +/* rule 234 can match eol */ YY_RULE_SETUP -#line 2454 "dhcp6_lexer.ll" +#line 2509 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5708,10 +5795,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 229: -/* rule 229 can match eol */ +case 235: +/* rule 235 can match eol */ YY_RULE_SETUP -#line 2470 "dhcp6_lexer.ll" +#line 2525 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5761,9 +5848,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 230: +case 236: YY_RULE_SETUP -#line 2519 "dhcp6_lexer.ll" +#line 2574 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5772,9 +5859,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 231: +case 237: YY_RULE_SETUP -#line 2527 "dhcp6_lexer.ll" +#line 2582 "dhcp6_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5790,39 +5877,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 232: +case 238: YY_RULE_SETUP -#line 2542 "dhcp6_lexer.ll" +#line 2597 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 233: +case 239: YY_RULE_SETUP -#line 2543 "dhcp6_lexer.ll" +#line 2598 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 234: +case 240: YY_RULE_SETUP -#line 2544 "dhcp6_lexer.ll" +#line 2599 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 235: +case 241: YY_RULE_SETUP -#line 2545 "dhcp6_lexer.ll" +#line 2600 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 236: +case 242: YY_RULE_SETUP -#line 2546 "dhcp6_lexer.ll" +#line 2601 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 237: +case 243: YY_RULE_SETUP -#line 2547 "dhcp6_lexer.ll" +#line 2602 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 238: +case 244: YY_RULE_SETUP -#line 2549 "dhcp6_lexer.ll" +#line 2604 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5841,9 +5928,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 239: +case 245: YY_RULE_SETUP -#line 2567 "dhcp6_lexer.ll" +#line 2622 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5857,43 +5944,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 240: +case 246: YY_RULE_SETUP -#line 2580 "dhcp6_lexer.ll" +#line 2635 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 241: +case 247: YY_RULE_SETUP -#line 2585 "dhcp6_lexer.ll" +#line 2640 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 242: +case 248: YY_RULE_SETUP -#line 2589 "dhcp6_lexer.ll" +#line 2644 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 243: +case 249: YY_RULE_SETUP -#line 2591 "dhcp6_lexer.ll" +#line 2646 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 244: +case 250: YY_RULE_SETUP -#line 2593 "dhcp6_lexer.ll" +#line 2648 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 245: +case 251: YY_RULE_SETUP -#line 2595 "dhcp6_lexer.ll" +#line 2650 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2597 "dhcp6_lexer.ll" +#line 2652 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5917,12 +6004,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 246: +case 252: YY_RULE_SETUP -#line 2620 "dhcp6_lexer.ll" +#line 2675 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5926 "dhcp6_lexer.cc" +#line 6013 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -6241,7 +6328,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 >= 2335 ) + if ( yy_current_state >= 2365 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -6274,11 +6361,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 >= 2335 ) + if ( yy_current_state >= 2365 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2334); + yy_is_jam = (yy_current_state == 2364); return yy_is_jam ? 0 : yy_current_state; } @@ -7027,7 +7114,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2620 "dhcp6_lexer.ll" +#line 2675 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index ed2a441cc1..dd0e086c89 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -792,13 +792,68 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - case isc::dhcp::Parser6Context::CONTROL_SOCKET: return isc::dhcp::Dhcp6Parser::make_KEY_PASSWORD(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("key-password", driver.loc_); } } +\"ssl-mode\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_); + } +} + +\"disable\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_); + } +} + +\"prefer\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_); + } +} + +\"require\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_); + } +} + +\"verify-ca\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_); + } +} + +\"verify-full\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::SSL_MODE: + return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_); + } +} + \"cipher-list\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 2d781ee48a..b1e54895a7 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -219,6 +219,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -262,6 +263,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -305,6 +307,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -347,6 +350,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -407,81 +411,87 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 413 "dhcp6_parser.cc" +#line 417 "dhcp6_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 419 "dhcp6_parser.cc" +#line 423 "dhcp6_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 425 "dhcp6_parser.cc" +#line 429 "dhcp6_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 431 "dhcp6_parser.cc" +#line 435 "dhcp6_parser.cc" break; case symbol_kind::S_value: // value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 437 "dhcp6_parser.cc" +#line 441 "dhcp6_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 443 "dhcp6_parser.cc" +#line 447 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 449 "dhcp6_parser.cc" +#line 453 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 455 "dhcp6_parser.cc" +#line 459 "dhcp6_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 461 "dhcp6_parser.cc" +#line 465 "dhcp6_parser.cc" + break; + + case symbol_kind::S_ssl_mode: // ssl_mode +#line 331 "dhcp6_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 471 "dhcp6_parser.cc" break; case symbol_kind::S_duid_type: // duid_type -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 467 "dhcp6_parser.cc" +#line 477 "dhcp6_parser.cc" break; case symbol_kind::S_control_socket_type_value: // control_socket_type_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 473 "dhcp6_parser.cc" +#line 483 "dhcp6_parser.cc" break; case symbol_kind::S_auth_type_value: // auth_type_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 479 "dhcp6_parser.cc" +#line 489 "dhcp6_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 324 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 485 "dhcp6_parser.cc" +#line 495 "dhcp6_parser.cc" break; default: @@ -716,6 +726,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -760,306 +771,306 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 333 "dhcp6_parser.yy" +#line 340 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 766 "dhcp6_parser.cc" +#line 777 "dhcp6_parser.cc" break; case 4: // $@2: %empty -#line 334 "dhcp6_parser.yy" +#line 341 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } -#line 772 "dhcp6_parser.cc" +#line 783 "dhcp6_parser.cc" break; case 6: // $@3: %empty -#line 335 "dhcp6_parser.yy" +#line 342 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } -#line 778 "dhcp6_parser.cc" +#line 789 "dhcp6_parser.cc" break; case 8: // $@4: %empty -#line 336 "dhcp6_parser.yy" +#line 343 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 784 "dhcp6_parser.cc" +#line 795 "dhcp6_parser.cc" break; case 10: // $@5: %empty -#line 337 "dhcp6_parser.yy" +#line 344 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } -#line 790 "dhcp6_parser.cc" +#line 801 "dhcp6_parser.cc" break; case 12: // $@6: %empty -#line 338 "dhcp6_parser.yy" +#line 345 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } -#line 796 "dhcp6_parser.cc" +#line 807 "dhcp6_parser.cc" break; case 14: // $@7: %empty -#line 339 "dhcp6_parser.yy" +#line 346 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } -#line 802 "dhcp6_parser.cc" +#line 813 "dhcp6_parser.cc" break; case 16: // $@8: %empty -#line 340 "dhcp6_parser.yy" +#line 347 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } -#line 808 "dhcp6_parser.cc" +#line 819 "dhcp6_parser.cc" break; case 18: // $@9: %empty -#line 341 "dhcp6_parser.yy" +#line 348 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } -#line 814 "dhcp6_parser.cc" +#line 825 "dhcp6_parser.cc" break; case 20: // $@10: %empty -#line 342 "dhcp6_parser.yy" +#line 349 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } -#line 820 "dhcp6_parser.cc" +#line 831 "dhcp6_parser.cc" break; case 22: // $@11: %empty -#line 343 "dhcp6_parser.yy" +#line 350 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } -#line 826 "dhcp6_parser.cc" +#line 837 "dhcp6_parser.cc" break; case 24: // $@12: %empty -#line 344 "dhcp6_parser.yy" +#line 351 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 832 "dhcp6_parser.cc" +#line 843 "dhcp6_parser.cc" break; case 26: // $@13: %empty -#line 345 "dhcp6_parser.yy" +#line 352 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 838 "dhcp6_parser.cc" +#line 849 "dhcp6_parser.cc" break; case 28: // $@14: %empty -#line 346 "dhcp6_parser.yy" +#line 353 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 844 "dhcp6_parser.cc" +#line 855 "dhcp6_parser.cc" break; case 30: // value: "integer" -#line 354 "dhcp6_parser.yy" +#line 361 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 850 "dhcp6_parser.cc" +#line 861 "dhcp6_parser.cc" break; case 31: // value: "floating point" -#line 355 "dhcp6_parser.yy" +#line 362 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 856 "dhcp6_parser.cc" +#line 867 "dhcp6_parser.cc" break; case 32: // value: "boolean" -#line 356 "dhcp6_parser.yy" +#line 363 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 862 "dhcp6_parser.cc" +#line 873 "dhcp6_parser.cc" break; case 33: // value: "constant string" -#line 357 "dhcp6_parser.yy" +#line 364 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 868 "dhcp6_parser.cc" +#line 879 "dhcp6_parser.cc" break; case 34: // value: "null" -#line 358 "dhcp6_parser.yy" +#line 365 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 874 "dhcp6_parser.cc" +#line 885 "dhcp6_parser.cc" break; case 35: // value: map2 -#line 359 "dhcp6_parser.yy" +#line 366 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 880 "dhcp6_parser.cc" +#line 891 "dhcp6_parser.cc" break; case 36: // value: list_generic -#line 360 "dhcp6_parser.yy" +#line 367 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 886 "dhcp6_parser.cc" +#line 897 "dhcp6_parser.cc" break; case 37: // sub_json: value -#line 363 "dhcp6_parser.yy" +#line 370 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 895 "dhcp6_parser.cc" +#line 906 "dhcp6_parser.cc" break; case 38: // $@15: %empty -#line 368 "dhcp6_parser.yy" +#line 375 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 906 "dhcp6_parser.cc" +#line 917 "dhcp6_parser.cc" break; case 39: // map2: "{" $@15 map_content "}" -#line 373 "dhcp6_parser.yy" +#line 380 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 916 "dhcp6_parser.cc" +#line 927 "dhcp6_parser.cc" break; case 40: // map_value: map2 -#line 379 "dhcp6_parser.yy" +#line 386 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 922 "dhcp6_parser.cc" +#line 933 "dhcp6_parser.cc" break; case 43: // not_empty_map: "constant string" ":" value -#line 386 "dhcp6_parser.yy" +#line 393 "dhcp6_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 932 "dhcp6_parser.cc" +#line 943 "dhcp6_parser.cc" break; case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 391 "dhcp6_parser.yy" +#line 398 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 943 "dhcp6_parser.cc" +#line 954 "dhcp6_parser.cc" break; case 45: // not_empty_map: not_empty_map "," -#line 397 "dhcp6_parser.yy" +#line 404 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 951 "dhcp6_parser.cc" +#line 962 "dhcp6_parser.cc" break; case 46: // $@16: %empty -#line 402 "dhcp6_parser.yy" +#line 409 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 960 "dhcp6_parser.cc" +#line 971 "dhcp6_parser.cc" break; case 47: // list_generic: "[" $@16 list_content "]" -#line 405 "dhcp6_parser.yy" +#line 412 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } -#line 968 "dhcp6_parser.cc" +#line 979 "dhcp6_parser.cc" break; case 50: // not_empty_list: value -#line 413 "dhcp6_parser.yy" +#line 420 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 977 "dhcp6_parser.cc" +#line 988 "dhcp6_parser.cc" break; case 51: // not_empty_list: not_empty_list "," value -#line 417 "dhcp6_parser.yy" +#line 424 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 986 "dhcp6_parser.cc" +#line 997 "dhcp6_parser.cc" break; case 52: // not_empty_list: not_empty_list "," -#line 421 "dhcp6_parser.yy" +#line 428 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 994 "dhcp6_parser.cc" +#line 1005 "dhcp6_parser.cc" break; case 53: // $@17: %empty -#line 427 "dhcp6_parser.yy" +#line 434 "dhcp6_parser.yy" { // List parsing about to start } -#line 1002 "dhcp6_parser.cc" +#line 1013 "dhcp6_parser.cc" break; case 54: // list_strings: "[" $@17 list_strings_content "]" -#line 429 "dhcp6_parser.yy" +#line 436 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 1011 "dhcp6_parser.cc" +#line 1022 "dhcp6_parser.cc" break; case 57: // not_empty_list_strings: "constant string" -#line 438 "dhcp6_parser.yy" +#line 445 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1020 "dhcp6_parser.cc" +#line 1031 "dhcp6_parser.cc" break; case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 442 "dhcp6_parser.yy" +#line 449 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 1029 "dhcp6_parser.cc" +#line 1040 "dhcp6_parser.cc" break; case 59: // not_empty_list_strings: not_empty_list_strings "," -#line 446 "dhcp6_parser.yy" +#line 453 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1037 "dhcp6_parser.cc" +#line 1048 "dhcp6_parser.cc" break; case 60: // unknown_map_entry: "constant string" ":" -#line 456 "dhcp6_parser.yy" +#line 463 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1048 "dhcp6_parser.cc" +#line 1059 "dhcp6_parser.cc" break; case 61: // $@18: %empty -#line 465 "dhcp6_parser.yy" +#line 472 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1059 "dhcp6_parser.cc" +#line 1070 "dhcp6_parser.cc" break; case 62: // syntax_map: "{" $@18 global_object "}" -#line 470 "dhcp6_parser.yy" +#line 477 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1068,11 +1079,11 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1072 "dhcp6_parser.cc" +#line 1083 "dhcp6_parser.cc" break; case 63: // $@19: %empty -#line 480 "dhcp6_parser.yy" +#line 487 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1083,353 +1094,353 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1087 "dhcp6_parser.cc" +#line 1098 "dhcp6_parser.cc" break; case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 489 "dhcp6_parser.yy" +#line 496 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1097 "dhcp6_parser.cc" +#line 1108 "dhcp6_parser.cc" break; case 66: // global_object_comma: global_object "," -#line 497 "dhcp6_parser.yy" +#line 504 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1105 "dhcp6_parser.cc" +#line 1116 "dhcp6_parser.cc" break; case 67: // $@20: %empty -#line 503 "dhcp6_parser.yy" +#line 510 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1115 "dhcp6_parser.cc" +#line 1126 "dhcp6_parser.cc" break; case 68: // sub_dhcp6: "{" $@20 global_params "}" -#line 507 "dhcp6_parser.yy" +#line 514 "dhcp6_parser.yy" { // No global parameter is required // parsing completed } -#line 1124 "dhcp6_parser.cc" +#line 1135 "dhcp6_parser.cc" break; case 71: // global_params: global_params "," -#line 514 "dhcp6_parser.yy" +#line 521 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1132 "dhcp6_parser.cc" +#line 1143 "dhcp6_parser.cc" break; case 144: // $@21: %empty -#line 595 "dhcp6_parser.yy" +#line 602 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1141 "dhcp6_parser.cc" +#line 1152 "dhcp6_parser.cc" break; case 145: // data_directory: "data-directory" $@21 ":" "constant string" -#line 598 "dhcp6_parser.yy" +#line 605 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.warning(yystack_[2].location, "data-directory is deprecated and will be ignored"); ctx.stack_.back()->set("data-directory", datadir); ctx.leave(); } -#line 1152 "dhcp6_parser.cc" +#line 1163 "dhcp6_parser.cc" break; case 146: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 605 "dhcp6_parser.yy" +#line 612 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1162 "dhcp6_parser.cc" +#line 1173 "dhcp6_parser.cc" break; case 147: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 611 "dhcp6_parser.yy" +#line 618 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-preferred-lifetime", prf); } -#line 1172 "dhcp6_parser.cc" +#line 1183 "dhcp6_parser.cc" break; case 148: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 617 "dhcp6_parser.yy" +#line 624 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-preferred-lifetime", prf); } -#line 1182 "dhcp6_parser.cc" +#line 1193 "dhcp6_parser.cc" break; case 149: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 623 "dhcp6_parser.yy" +#line 630 "dhcp6_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))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1192 "dhcp6_parser.cc" +#line 1203 "dhcp6_parser.cc" break; case 150: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 629 "dhcp6_parser.yy" +#line 636 "dhcp6_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))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1202 "dhcp6_parser.cc" +#line 1213 "dhcp6_parser.cc" break; case 151: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 635 "dhcp6_parser.yy" +#line 642 "dhcp6_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))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1212 "dhcp6_parser.cc" +#line 1223 "dhcp6_parser.cc" break; case 152: // renew_timer: "renew-timer" ":" "integer" -#line 641 "dhcp6_parser.yy" +#line 648 "dhcp6_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))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1222 "dhcp6_parser.cc" +#line 1233 "dhcp6_parser.cc" break; case 153: // rebind_timer: "rebind-timer" ":" "integer" -#line 647 "dhcp6_parser.yy" +#line 654 "dhcp6_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))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1232 "dhcp6_parser.cc" +#line 1243 "dhcp6_parser.cc" break; case 154: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 653 "dhcp6_parser.yy" +#line 660 "dhcp6_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))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1242 "dhcp6_parser.cc" +#line 1253 "dhcp6_parser.cc" break; case 155: // t1_percent: "t1-percent" ":" "floating point" -#line 659 "dhcp6_parser.yy" +#line 666 "dhcp6_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))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1252 "dhcp6_parser.cc" +#line 1263 "dhcp6_parser.cc" break; case 156: // t2_percent: "t2-percent" ":" "floating point" -#line 665 "dhcp6_parser.yy" +#line 672 "dhcp6_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))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1262 "dhcp6_parser.cc" +#line 1273 "dhcp6_parser.cc" break; case 157: // cache_threshold: "cache-threshold" ":" "floating point" -#line 671 "dhcp6_parser.yy" +#line 678 "dhcp6_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))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1272 "dhcp6_parser.cc" +#line 1283 "dhcp6_parser.cc" break; case 158: // cache_max_age: "cache-max-age" ":" "integer" -#line 677 "dhcp6_parser.yy" +#line 684 "dhcp6_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))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1282 "dhcp6_parser.cc" +#line 1293 "dhcp6_parser.cc" break; case 159: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 683 "dhcp6_parser.yy" +#line 690 "dhcp6_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))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1292 "dhcp6_parser.cc" +#line 1303 "dhcp6_parser.cc" break; case 160: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 689 "dhcp6_parser.yy" +#line 696 "dhcp6_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))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1302 "dhcp6_parser.cc" +#line 1313 "dhcp6_parser.cc" break; case 161: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 695 "dhcp6_parser.yy" +#line 702 "dhcp6_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))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1312 "dhcp6_parser.cc" +#line 1323 "dhcp6_parser.cc" break; case 162: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 701 "dhcp6_parser.yy" +#line 708 "dhcp6_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))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1322 "dhcp6_parser.cc" +#line 1333 "dhcp6_parser.cc" break; case 163: // $@22: %empty -#line 707 "dhcp6_parser.yy" +#line 714 "dhcp6_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); } -#line 1331 "dhcp6_parser.cc" +#line 1342 "dhcp6_parser.cc" break; case 164: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 710 "dhcp6_parser.yy" +#line 717 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1340 "dhcp6_parser.cc" +#line 1351 "dhcp6_parser.cc" break; case 165: // ddns_replace_client_name_value: "when-present" -#line 716 "dhcp6_parser.yy" +#line 723 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1348 "dhcp6_parser.cc" +#line 1359 "dhcp6_parser.cc" break; case 166: // ddns_replace_client_name_value: "never" -#line 719 "dhcp6_parser.yy" +#line 726 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1356 "dhcp6_parser.cc" +#line 1367 "dhcp6_parser.cc" break; case 167: // ddns_replace_client_name_value: "always" -#line 722 "dhcp6_parser.yy" +#line 729 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1364 "dhcp6_parser.cc" +#line 1375 "dhcp6_parser.cc" break; case 168: // ddns_replace_client_name_value: "when-not-present" -#line 725 "dhcp6_parser.yy" +#line 732 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1372 "dhcp6_parser.cc" +#line 1383 "dhcp6_parser.cc" break; case 169: // ddns_replace_client_name_value: "boolean" -#line 728 "dhcp6_parser.yy" +#line 735 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the ddns-replace-client-name are " "no longer supported"); } -#line 1381 "dhcp6_parser.cc" +#line 1392 "dhcp6_parser.cc" break; case 170: // $@23: %empty -#line 734 "dhcp6_parser.yy" +#line 741 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1390 "dhcp6_parser.cc" +#line 1401 "dhcp6_parser.cc" break; case 171: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 737 "dhcp6_parser.yy" +#line 744 "dhcp6_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); ctx.leave(); } -#line 1400 "dhcp6_parser.cc" +#line 1411 "dhcp6_parser.cc" break; case 172: // $@24: %empty -#line 743 "dhcp6_parser.yy" +#line 750 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1409 "dhcp6_parser.cc" +#line 1420 "dhcp6_parser.cc" break; case 173: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 746 "dhcp6_parser.yy" +#line 753 "dhcp6_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); ctx.leave(); } -#line 1419 "dhcp6_parser.cc" +#line 1430 "dhcp6_parser.cc" break; case 174: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 752 "dhcp6_parser.yy" +#line 759 "dhcp6_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))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1429 "dhcp6_parser.cc" +#line 1440 "dhcp6_parser.cc" break; case 175: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 761 "dhcp6_parser.yy" +#line 768 "dhcp6_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))); @@ -1439,266 +1450,266 @@ namespace isc { namespace dhcp { : "no-check-with-dhcid")); ctx.stack_.back()->set("ddns-conflict-resolution-mode", mode); } -#line 1443 "dhcp6_parser.cc" +#line 1454 "dhcp6_parser.cc" break; case 176: // $@25: %empty -#line 771 "dhcp6_parser.yy" +#line 778 "dhcp6_parser.yy" { ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE); } -#line 1452 "dhcp6_parser.cc" +#line 1463 "dhcp6_parser.cc" break; case 177: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value -#line 774 "dhcp6_parser.yy" +#line 781 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1461 "dhcp6_parser.cc" +#line 1472 "dhcp6_parser.cc" break; case 178: // ddns_conflict_resolution_mode_value: "check-with-dhcid" -#line 780 "dhcp6_parser.yy" +#line 787 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1469 "dhcp6_parser.cc" +#line 1480 "dhcp6_parser.cc" break; case 179: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid" -#line 783 "dhcp6_parser.yy" +#line 790 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1477 "dhcp6_parser.cc" +#line 1488 "dhcp6_parser.cc" break; case 180: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid" -#line 786 "dhcp6_parser.yy" +#line 793 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1485 "dhcp6_parser.cc" +#line 1496 "dhcp6_parser.cc" break; case 181: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid" -#line 789 "dhcp6_parser.yy" +#line 796 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location))); } -#line 1493 "dhcp6_parser.cc" +#line 1504 "dhcp6_parser.cc" break; case 182: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" -#line 794 "dhcp6_parser.yy" +#line 801 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-percent", ttl); } -#line 1503 "dhcp6_parser.cc" +#line 1514 "dhcp6_parser.cc" break; case 183: // ddns_ttl: "ddns-ttl" ":" "integer" -#line 800 "dhcp6_parser.yy" +#line 807 "dhcp6_parser.yy" { ctx.unique("ddns-ttl", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl", ttl); } -#line 1513 "dhcp6_parser.cc" +#line 1524 "dhcp6_parser.cc" break; case 184: // ddns_ttl_min: "ddns-ttl-min" ":" "integer" -#line 806 "dhcp6_parser.yy" +#line 813 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-min", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-min", ttl); } -#line 1523 "dhcp6_parser.cc" +#line 1534 "dhcp6_parser.cc" break; case 185: // ddns_ttl_max: "ddns-ttl-mix" ":" "integer" -#line 812 "dhcp6_parser.yy" +#line 819 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-max", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-ttl-max", ttl); } -#line 1533 "dhcp6_parser.cc" +#line 1544 "dhcp6_parser.cc" break; case 186: // $@26: %empty -#line 818 "dhcp6_parser.yy" +#line 825 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1542 "dhcp6_parser.cc" +#line 1553 "dhcp6_parser.cc" break; case 187: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string" -#line 821 "dhcp6_parser.yy" +#line 828 "dhcp6_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); ctx.leave(); } -#line 1552 "dhcp6_parser.cc" +#line 1563 "dhcp6_parser.cc" break; case 188: // $@27: %empty -#line 827 "dhcp6_parser.yy" +#line 834 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1561 "dhcp6_parser.cc" +#line 1572 "dhcp6_parser.cc" break; case 189: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string" -#line 830 "dhcp6_parser.yy" +#line 837 "dhcp6_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); ctx.leave(); } -#line 1571 "dhcp6_parser.cc" +#line 1582 "dhcp6_parser.cc" break; case 190: // store_extended_info: "store-extended-info" ":" "boolean" -#line 836 "dhcp6_parser.yy" +#line 843 "dhcp6_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))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1581 "dhcp6_parser.cc" +#line 1592 "dhcp6_parser.cc" break; case 191: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 842 "dhcp6_parser.yy" +#line 849 "dhcp6_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))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1591 "dhcp6_parser.cc" +#line 1602 "dhcp6_parser.cc" break; case 192: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 848 "dhcp6_parser.yy" +#line 855 "dhcp6_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))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1601 "dhcp6_parser.cc" +#line 1612 "dhcp6_parser.cc" break; case 193: // $@28: %empty -#line 854 "dhcp6_parser.yy" +#line 861 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1610 "dhcp6_parser.cc" +#line 1621 "dhcp6_parser.cc" break; case 194: // server_tag: "server-tag" $@28 ":" "constant string" -#line 857 "dhcp6_parser.yy" +#line 864 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1620 "dhcp6_parser.cc" +#line 1631 "dhcp6_parser.cc" break; case 195: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 863 "dhcp6_parser.yy" +#line 870 "dhcp6_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))); ctx.stack_.back()->set("parked-packet-limit", ppl); } -#line 1630 "dhcp6_parser.cc" +#line 1641 "dhcp6_parser.cc" break; case 196: // $@29: %empty -#line 869 "dhcp6_parser.yy" +#line 876 "dhcp6_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1639 "dhcp6_parser.cc" +#line 1650 "dhcp6_parser.cc" break; case 197: // allocator: "allocator" $@29 ":" "constant string" -#line 872 "dhcp6_parser.yy" +#line 879 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); ctx.leave(); } -#line 1649 "dhcp6_parser.cc" +#line 1660 "dhcp6_parser.cc" break; case 198: // $@30: %empty -#line 878 "dhcp6_parser.yy" +#line 885 "dhcp6_parser.yy" { ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1658 "dhcp6_parser.cc" +#line 1669 "dhcp6_parser.cc" break; case 199: // pd_allocator: "pd-allocator" $@30 ":" "constant string" -#line 881 "dhcp6_parser.yy" +#line 888 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-allocator", al); ctx.leave(); } -#line 1668 "dhcp6_parser.cc" +#line 1679 "dhcp6_parser.cc" break; case 200: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 887 "dhcp6_parser.yy" +#line 894 "dhcp6_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))); ctx.stack_.back()->set("early-global-reservations-lookup", early); } -#line 1678 "dhcp6_parser.cc" +#line 1689 "dhcp6_parser.cc" break; case 201: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 893 "dhcp6_parser.yy" +#line 900 "dhcp6_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))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1688 "dhcp6_parser.cc" +#line 1699 "dhcp6_parser.cc" break; case 202: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 899 "dhcp6_parser.yy" +#line 906 "dhcp6_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))); ctx.stack_.back()->set("reservations-lookup-first", first); } -#line 1698 "dhcp6_parser.cc" +#line 1709 "dhcp6_parser.cc" break; case 203: // $@31: %empty -#line 905 "dhcp6_parser.yy" +#line 912 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1706,48 +1717,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1710 "dhcp6_parser.cc" +#line 1721 "dhcp6_parser.cc" break; case 204: // interfaces_config: "interfaces-config" $@31 ":" "{" interfaces_config_params "}" -#line 911 "dhcp6_parser.yy" +#line 918 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1720 "dhcp6_parser.cc" +#line 1731 "dhcp6_parser.cc" break; case 205: // $@32: %empty -#line 917 "dhcp6_parser.yy" +#line 924 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1730 "dhcp6_parser.cc" +#line 1741 "dhcp6_parser.cc" break; case 206: // sub_interfaces6: "{" $@32 interfaces_config_params "}" -#line 921 "dhcp6_parser.yy" +#line 928 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1739 "dhcp6_parser.cc" +#line 1750 "dhcp6_parser.cc" break; case 209: // interfaces_config_params: interfaces_config_params "," -#line 928 "dhcp6_parser.yy" +#line 935 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1747 "dhcp6_parser.cc" +#line 1758 "dhcp6_parser.cc" break; case 218: // $@33: %empty -#line 943 "dhcp6_parser.yy" +#line 950 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1755,60 +1766,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1759 "dhcp6_parser.cc" +#line 1770 "dhcp6_parser.cc" break; case 219: // interfaces_list: "interfaces" $@33 ":" list_strings -#line 949 "dhcp6_parser.yy" +#line 956 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1768 "dhcp6_parser.cc" +#line 1779 "dhcp6_parser.cc" break; case 220: // re_detect: "re-detect" ":" "boolean" -#line 954 "dhcp6_parser.yy" +#line 961 "dhcp6_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))); ctx.stack_.back()->set("re-detect", b); } -#line 1778 "dhcp6_parser.cc" +#line 1789 "dhcp6_parser.cc" break; case 221: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 960 "dhcp6_parser.yy" +#line 967 "dhcp6_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))); ctx.stack_.back()->set("service-sockets-require-all", b); } -#line 1788 "dhcp6_parser.cc" +#line 1799 "dhcp6_parser.cc" break; case 222: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 966 "dhcp6_parser.yy" +#line 973 "dhcp6_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))); ctx.stack_.back()->set("service-sockets-retry-wait-time", n); } -#line 1798 "dhcp6_parser.cc" +#line 1809 "dhcp6_parser.cc" break; case 223: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 972 "dhcp6_parser.yy" +#line 979 "dhcp6_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))); ctx.stack_.back()->set("service-sockets-max-retries", n); } -#line 1808 "dhcp6_parser.cc" +#line 1819 "dhcp6_parser.cc" break; case 224: // $@34: %empty -#line 978 "dhcp6_parser.yy" +#line 985 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1816,22 +1827,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1820 "dhcp6_parser.cc" +#line 1831 "dhcp6_parser.cc" break; case 225: // lease_database: "lease-database" $@34 ":" "{" database_map_params "}" -#line 984 "dhcp6_parser.yy" +#line 991 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1831 "dhcp6_parser.cc" +#line 1842 "dhcp6_parser.cc" break; case 226: // $@35: %empty -#line 991 "dhcp6_parser.yy" +#line 998 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1839,22 +1850,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1843 "dhcp6_parser.cc" +#line 1854 "dhcp6_parser.cc" break; case 227: // hosts_database: "hosts-database" $@35 ":" "{" database_map_params "}" -#line 997 "dhcp6_parser.yy" +#line 1004 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1854 "dhcp6_parser.cc" +#line 1865 "dhcp6_parser.cc" break; case 228: // $@36: %empty -#line 1004 "dhcp6_parser.yy" +#line 1011 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1862,402 +1873,450 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1866 "dhcp6_parser.cc" +#line 1877 "dhcp6_parser.cc" break; case 229: // hosts_databases: "hosts-databases" $@36 ":" "[" database_list "]" -#line 1010 "dhcp6_parser.yy" +#line 1017 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1875 "dhcp6_parser.cc" +#line 1886 "dhcp6_parser.cc" break; case 234: // not_empty_database_list: not_empty_database_list "," -#line 1021 "dhcp6_parser.yy" +#line 1028 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1883 "dhcp6_parser.cc" +#line 1894 "dhcp6_parser.cc" break; case 235: // $@37: %empty -#line 1026 "dhcp6_parser.yy" +#line 1033 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1893 "dhcp6_parser.cc" +#line 1904 "dhcp6_parser.cc" break; case 236: // database: "{" $@37 database_map_params "}" -#line 1030 "dhcp6_parser.yy" +#line 1037 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1903 "dhcp6_parser.cc" +#line 1914 "dhcp6_parser.cc" break; case 239: // database_map_params: database_map_params "," -#line 1038 "dhcp6_parser.yy" +#line 1045 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1911 "dhcp6_parser.cc" +#line 1922 "dhcp6_parser.cc" break; - case 264: // $@38: %empty -#line 1069 "dhcp6_parser.yy" + case 265: // $@38: %empty +#line 1077 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1920 "dhcp6_parser.cc" +#line 1931 "dhcp6_parser.cc" break; - case 265: // database_type: "type" $@38 ":" "constant string" -#line 1072 "dhcp6_parser.yy" + case 266: // database_type: "type" $@38 ":" "constant string" +#line 1080 "dhcp6_parser.yy" { ElementPtr db_type(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", db_type); ctx.leave(); } -#line 1930 "dhcp6_parser.cc" +#line 1941 "dhcp6_parser.cc" break; - case 266: // $@39: %empty -#line 1078 "dhcp6_parser.yy" + case 267: // $@39: %empty +#line 1086 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1939 "dhcp6_parser.cc" +#line 1950 "dhcp6_parser.cc" break; - case 267: // user: "user" $@39 ":" "constant string" -#line 1081 "dhcp6_parser.yy" + case 268: // user: "user" $@39 ":" "constant string" +#line 1089 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1949 "dhcp6_parser.cc" +#line 1960 "dhcp6_parser.cc" break; - case 268: // $@40: %empty -#line 1087 "dhcp6_parser.yy" + case 269: // $@40: %empty +#line 1095 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1958 "dhcp6_parser.cc" +#line 1969 "dhcp6_parser.cc" break; - case 269: // password: "password" $@40 ":" "constant string" -#line 1090 "dhcp6_parser.yy" + case 270: // password: "password" $@40 ":" "constant string" +#line 1098 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1968 "dhcp6_parser.cc" +#line 1979 "dhcp6_parser.cc" break; - case 270: // $@41: %empty -#line 1096 "dhcp6_parser.yy" + case 271: // $@41: %empty +#line 1104 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1977 "dhcp6_parser.cc" +#line 1988 "dhcp6_parser.cc" break; - case 271: // host: "host" $@41 ":" "constant string" -#line 1099 "dhcp6_parser.yy" + case 272: // host: "host" $@41 ":" "constant string" +#line 1107 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1987 "dhcp6_parser.cc" +#line 1998 "dhcp6_parser.cc" break; - case 272: // port: "port" ":" "integer" -#line 1105 "dhcp6_parser.yy" + case 273: // port: "port" ":" "integer" +#line 1113 "dhcp6_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))); ctx.stack_.back()->set("port", p); } -#line 1997 "dhcp6_parser.cc" +#line 2008 "dhcp6_parser.cc" break; - case 273: // $@42: %empty -#line 1111 "dhcp6_parser.yy" + case 274: // $@42: %empty +#line 1119 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2006 "dhcp6_parser.cc" +#line 2017 "dhcp6_parser.cc" break; - case 274: // name: "name" $@42 ":" "constant string" -#line 1114 "dhcp6_parser.yy" + case 275: // name: "name" $@42 ":" "constant string" +#line 1122 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 2016 "dhcp6_parser.cc" +#line 2027 "dhcp6_parser.cc" break; - case 275: // persist: "persist" ":" "boolean" -#line 1120 "dhcp6_parser.yy" + case 276: // persist: "persist" ":" "boolean" +#line 1128 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 2026 "dhcp6_parser.cc" +#line 2037 "dhcp6_parser.cc" break; - case 276: // lfc_interval: "lfc-interval" ":" "integer" -#line 1126 "dhcp6_parser.yy" + case 277: // lfc_interval: "lfc-interval" ":" "integer" +#line 1134 "dhcp6_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))); ctx.stack_.back()->set("lfc-interval", n); } -#line 2036 "dhcp6_parser.cc" +#line 2047 "dhcp6_parser.cc" break; - case 277: // readonly: "readonly" ":" "boolean" -#line 1132 "dhcp6_parser.yy" + case 278: // readonly: "readonly" ":" "boolean" +#line 1140 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 2046 "dhcp6_parser.cc" +#line 2057 "dhcp6_parser.cc" break; - case 278: // connect_timeout: "connect-timeout" ":" "integer" -#line 1138 "dhcp6_parser.yy" + case 279: // connect_timeout: "connect-timeout" ":" "integer" +#line 1146 "dhcp6_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))); ctx.stack_.back()->set("connect-timeout", n); } -#line 2056 "dhcp6_parser.cc" +#line 2067 "dhcp6_parser.cc" break; - case 279: // read_timeout: "read-timeout" ":" "integer" -#line 1144 "dhcp6_parser.yy" + case 280: // read_timeout: "read-timeout" ":" "integer" +#line 1152 "dhcp6_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("read-timeout", n); } -#line 2066 "dhcp6_parser.cc" +#line 2077 "dhcp6_parser.cc" break; - case 280: // write_timeout: "write-timeout" ":" "integer" -#line 1150 "dhcp6_parser.yy" + case 281: // write_timeout: "write-timeout" ":" "integer" +#line 1158 "dhcp6_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("write-timeout", n); } -#line 2076 "dhcp6_parser.cc" +#line 2087 "dhcp6_parser.cc" break; - case 281: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1156 "dhcp6_parser.yy" + case 282: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1164 "dhcp6_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-user-timeout", n); } -#line 2086 "dhcp6_parser.cc" +#line 2097 "dhcp6_parser.cc" break; - case 282: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1162 "dhcp6_parser.yy" + case 283: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1170 "dhcp6_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))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2096 "dhcp6_parser.cc" +#line 2107 "dhcp6_parser.cc" break; - case 283: // $@43: %empty -#line 1168 "dhcp6_parser.yy" + case 284: // $@43: %empty +#line 1176 "dhcp6_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 2105 "dhcp6_parser.cc" +#line 2116 "dhcp6_parser.cc" break; - case 284: // on_fail: "on-fail" $@43 ":" on_fail_mode -#line 1171 "dhcp6_parser.yy" + case 285: // on_fail: "on-fail" $@43 ":" on_fail_mode +#line 1179 "dhcp6_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2114 "dhcp6_parser.cc" +#line 2125 "dhcp6_parser.cc" break; - case 285: // on_fail_mode: "stop-retry-exit" -#line 1176 "dhcp6_parser.yy" + case 286: // on_fail_mode: "stop-retry-exit" +#line 1184 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2120 "dhcp6_parser.cc" +#line 2131 "dhcp6_parser.cc" break; - case 286: // on_fail_mode: "serve-retry-exit" -#line 1177 "dhcp6_parser.yy" + case 287: // on_fail_mode: "serve-retry-exit" +#line 1185 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2126 "dhcp6_parser.cc" +#line 2137 "dhcp6_parser.cc" break; - case 287: // on_fail_mode: "serve-retry-continue" -#line 1178 "dhcp6_parser.yy" + case 288: // on_fail_mode: "serve-retry-continue" +#line 1186 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2132 "dhcp6_parser.cc" +#line 2143 "dhcp6_parser.cc" break; - case 288: // retry_on_startup: "retry-on-startup" ":" "boolean" -#line 1181 "dhcp6_parser.yy" + case 289: // retry_on_startup: "retry-on-startup" ":" "boolean" +#line 1189 "dhcp6_parser.yy" { ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("retry-on-startup", n); } -#line 2142 "dhcp6_parser.cc" +#line 2153 "dhcp6_parser.cc" break; - case 289: // max_row_errors: "max-row-errors" ":" "integer" -#line 1187 "dhcp6_parser.yy" + case 290: // max_row_errors: "max-row-errors" ":" "integer" +#line 1195 "dhcp6_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))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2152 "dhcp6_parser.cc" +#line 2163 "dhcp6_parser.cc" break; - case 290: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1193 "dhcp6_parser.yy" + case 291: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1201 "dhcp6_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))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2162 "dhcp6_parser.cc" +#line 2173 "dhcp6_parser.cc" break; - case 291: // $@44: %empty -#line 1199 "dhcp6_parser.yy" + case 292: // $@44: %empty +#line 1207 "dhcp6_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2171 "dhcp6_parser.cc" +#line 2182 "dhcp6_parser.cc" break; - case 292: // trust_anchor: "trust-anchor" $@44 ":" "constant string" -#line 1202 "dhcp6_parser.yy" + case 293: // trust_anchor: "trust-anchor" $@44 ":" "constant string" +#line 1210 "dhcp6_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); ctx.leave(); } -#line 2181 "dhcp6_parser.cc" +#line 2192 "dhcp6_parser.cc" break; - case 293: // $@45: %empty -#line 1208 "dhcp6_parser.yy" + case 294: // $@45: %empty +#line 1216 "dhcp6_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2190 "dhcp6_parser.cc" +#line 2201 "dhcp6_parser.cc" break; - case 294: // cert_file: "cert-file" $@45 ":" "constant string" -#line 1211 "dhcp6_parser.yy" + case 295: // cert_file: "cert-file" $@45 ":" "constant string" +#line 1219 "dhcp6_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); ctx.leave(); } -#line 2200 "dhcp6_parser.cc" +#line 2211 "dhcp6_parser.cc" break; - case 295: // $@46: %empty -#line 1217 "dhcp6_parser.yy" + case 296: // $@46: %empty +#line 1225 "dhcp6_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2209 "dhcp6_parser.cc" +#line 2220 "dhcp6_parser.cc" break; - case 296: // key_file: "key-file" $@46 ":" "constant string" -#line 1220 "dhcp6_parser.yy" + case 297: // key_file: "key-file" $@46 ":" "constant string" +#line 1228 "dhcp6_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); ctx.leave(); } -#line 2219 "dhcp6_parser.cc" +#line 2230 "dhcp6_parser.cc" break; - case 297: // $@47: %empty -#line 1226 "dhcp6_parser.yy" + case 298: // $@47: %empty +#line 1234 "dhcp6_parser.yy" { ctx.unique("key-password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2228 "dhcp6_parser.cc" +#line 2239 "dhcp6_parser.cc" break; - case 298: // key_password: "key-password" $@47 ":" "constant string" -#line 1229 "dhcp6_parser.yy" + case 299: // key_password: "key-password" $@47 ":" "constant string" +#line 1237 "dhcp6_parser.yy" { ElementPtr key_pass(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-password", key_pass); ctx.leave(); } -#line 2238 "dhcp6_parser.cc" +#line 2249 "dhcp6_parser.cc" + break; + + case 300: // $@48: %empty +#line 1243 "dhcp6_parser.yy" + { + ctx.unique("ssl-mode", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.SSL_MODE); +} +#line 2258 "dhcp6_parser.cc" + break; + + case 301: // ssl_mode: "ssl-mode" $@48 ":" ssl_mode +#line 1246 "dhcp6_parser.yy" + { + ctx.stack_.back()->set("ssl-mode", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 2267 "dhcp6_parser.cc" + break; + + case 302: // ssl_mode: "disable" +#line 1251 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location))); } +#line 2273 "dhcp6_parser.cc" + break; + + case 303: // ssl_mode: "prefer" +#line 1252 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location))); } +#line 2279 "dhcp6_parser.cc" + break; + + case 304: // ssl_mode: "require" +#line 1253 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location))); } +#line 2285 "dhcp6_parser.cc" break; - case 299: // $@48: %empty -#line 1235 "dhcp6_parser.yy" + case 305: // ssl_mode: "verify-ca" +#line 1254 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location))); } +#line 2291 "dhcp6_parser.cc" + break; + + case 306: // ssl_mode: "verify-full" +#line 1255 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location))); } +#line 2297 "dhcp6_parser.cc" + break; + + case 307: // $@49: %empty +#line 1258 "dhcp6_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2247 "dhcp6_parser.cc" +#line 2306 "dhcp6_parser.cc" break; - case 300: // cipher_list: "cipher-list" $@48 ":" "constant string" -#line 1238 "dhcp6_parser.yy" + case 308: // cipher_list: "cipher-list" $@49 ":" "constant string" +#line 1261 "dhcp6_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2257 "dhcp6_parser.cc" +#line 2316 "dhcp6_parser.cc" break; - case 301: // $@49: %empty -#line 1244 "dhcp6_parser.yy" + case 309: // $@50: %empty +#line 1267 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2265,37 +2324,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 2269 "dhcp6_parser.cc" +#line 2328 "dhcp6_parser.cc" break; - case 302: // sanity_checks: "sanity-checks" $@49 ":" "{" sanity_checks_params "}" -#line 1250 "dhcp6_parser.yy" + case 310: // sanity_checks: "sanity-checks" $@50 ":" "{" sanity_checks_params "}" +#line 1273 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2278 "dhcp6_parser.cc" +#line 2337 "dhcp6_parser.cc" break; - case 305: // sanity_checks_params: sanity_checks_params "," -#line 1257 "dhcp6_parser.yy" + case 313: // sanity_checks_params: sanity_checks_params "," +#line 1280 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2286 "dhcp6_parser.cc" +#line 2345 "dhcp6_parser.cc" break; - case 308: // $@50: %empty -#line 1266 "dhcp6_parser.yy" + case 316: // $@51: %empty +#line 1289 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2295 "dhcp6_parser.cc" +#line 2354 "dhcp6_parser.cc" break; - case 309: // lease_checks: "lease-checks" $@50 ":" "constant string" -#line 1269 "dhcp6_parser.yy" + case 317: // lease_checks: "lease-checks" $@51 ":" "constant string" +#line 1292 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2311,20 +2370,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 2315 "dhcp6_parser.cc" +#line 2374 "dhcp6_parser.cc" break; - case 310: // $@51: %empty -#line 1285 "dhcp6_parser.yy" + case 318: // $@52: %empty +#line 1308 "dhcp6_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2324 "dhcp6_parser.cc" +#line 2383 "dhcp6_parser.cc" break; - case 311: // extended_info_checks: "extended-info-checks" $@51 ":" "constant string" -#line 1288 "dhcp6_parser.yy" + case 319: // extended_info_checks: "extended-info-checks" $@52 ":" "constant string" +#line 1311 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2339,11 +2398,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 2343 "dhcp6_parser.cc" +#line 2402 "dhcp6_parser.cc" break; - case 312: // $@52: %empty -#line 1303 "dhcp6_parser.yy" + case 320: // $@53: %empty +#line 1326 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2351,46 +2410,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 2355 "dhcp6_parser.cc" +#line 2414 "dhcp6_parser.cc" break; - case 313: // mac_sources: "mac-sources" $@52 ":" "[" mac_sources_list "]" -#line 1309 "dhcp6_parser.yy" + case 321: // mac_sources: "mac-sources" $@53 ":" "[" mac_sources_list "]" +#line 1332 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2364 "dhcp6_parser.cc" +#line 2423 "dhcp6_parser.cc" break; - case 316: // mac_sources_list: mac_sources_list "," -#line 1316 "dhcp6_parser.yy" + case 324: // mac_sources_list: mac_sources_list "," +#line 1339 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2372 "dhcp6_parser.cc" +#line 2431 "dhcp6_parser.cc" break; - case 319: // duid_id: "duid" -#line 1325 "dhcp6_parser.yy" + case 327: // duid_id: "duid" +#line 1348 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2381 "dhcp6_parser.cc" +#line 2440 "dhcp6_parser.cc" break; - case 320: // string_id: "constant string" -#line 1330 "dhcp6_parser.yy" + case 328: // string_id: "constant string" +#line 1353 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2390 "dhcp6_parser.cc" +#line 2449 "dhcp6_parser.cc" break; - case 321: // $@53: %empty -#line 1335 "dhcp6_parser.yy" + case 329: // $@54: %empty +#line 1358 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2398,46 +2457,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2402 "dhcp6_parser.cc" +#line 2461 "dhcp6_parser.cc" break; - case 322: // host_reservation_identifiers: "host-reservation-identifiers" $@53 ":" "[" host_reservation_identifiers_list "]" -#line 1341 "dhcp6_parser.yy" + case 330: // host_reservation_identifiers: "host-reservation-identifiers" $@54 ":" "[" host_reservation_identifiers_list "]" +#line 1364 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2411 "dhcp6_parser.cc" +#line 2470 "dhcp6_parser.cc" break; - case 325: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1348 "dhcp6_parser.yy" + case 333: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1371 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2419 "dhcp6_parser.cc" +#line 2478 "dhcp6_parser.cc" break; - case 329: // hw_address_id: "hw-address" -#line 1358 "dhcp6_parser.yy" + case 337: // hw_address_id: "hw-address" +#line 1381 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2428 "dhcp6_parser.cc" +#line 2487 "dhcp6_parser.cc" break; - case 330: // flex_id: "flex-id" -#line 1363 "dhcp6_parser.yy" + case 338: // flex_id: "flex-id" +#line 1386 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2437 "dhcp6_parser.cc" +#line 2496 "dhcp6_parser.cc" break; - case 331: // $@54: %empty -#line 1370 "dhcp6_parser.yy" + case 339: // $@55: %empty +#line 1393 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2445,20 +2504,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2449 "dhcp6_parser.cc" +#line 2508 "dhcp6_parser.cc" break; - case 332: // relay_supplied_options: "relay-supplied-options" $@54 ":" "[" list_content "]" -#line 1376 "dhcp6_parser.yy" + case 340: // relay_supplied_options: "relay-supplied-options" $@55 ":" "[" list_content "]" +#line 1399 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2458 "dhcp6_parser.cc" +#line 2517 "dhcp6_parser.cc" break; - case 333: // $@55: %empty -#line 1383 "dhcp6_parser.yy" + case 341: // $@56: %empty +#line 1406 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2466,60 +2525,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2470 "dhcp6_parser.cc" +#line 2529 "dhcp6_parser.cc" break; - case 334: // dhcp_multi_threading: "multi-threading" $@55 ":" "{" multi_threading_params "}" -#line 1389 "dhcp6_parser.yy" + case 342: // dhcp_multi_threading: "multi-threading" $@56 ":" "{" multi_threading_params "}" +#line 1412 "dhcp6_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2481 "dhcp6_parser.cc" +#line 2540 "dhcp6_parser.cc" break; - case 337: // multi_threading_params: multi_threading_params "," -#line 1398 "dhcp6_parser.yy" + case 345: // multi_threading_params: multi_threading_params "," +#line 1421 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2489 "dhcp6_parser.cc" +#line 2548 "dhcp6_parser.cc" break; - case 344: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1411 "dhcp6_parser.yy" + case 352: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1434 "dhcp6_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))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2499 "dhcp6_parser.cc" +#line 2558 "dhcp6_parser.cc" break; - case 345: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1417 "dhcp6_parser.yy" + case 353: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1440 "dhcp6_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))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2509 "dhcp6_parser.cc" +#line 2568 "dhcp6_parser.cc" break; - case 346: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1423 "dhcp6_parser.yy" + case 354: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1446 "dhcp6_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))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2519 "dhcp6_parser.cc" +#line 2578 "dhcp6_parser.cc" break; - case 347: // $@56: %empty -#line 1429 "dhcp6_parser.yy" + case 355: // $@57: %empty +#line 1452 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2527,113 +2586,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2531 "dhcp6_parser.cc" +#line 2590 "dhcp6_parser.cc" break; - case 348: // hooks_libraries: "hooks-libraries" $@56 ":" "[" hooks_libraries_list "]" -#line 1435 "dhcp6_parser.yy" + case 356: // hooks_libraries: "hooks-libraries" $@57 ":" "[" hooks_libraries_list "]" +#line 1458 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2540 "dhcp6_parser.cc" +#line 2599 "dhcp6_parser.cc" break; - case 353: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1446 "dhcp6_parser.yy" + case 361: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1469 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2548 "dhcp6_parser.cc" +#line 2607 "dhcp6_parser.cc" break; - case 354: // $@57: %empty -#line 1451 "dhcp6_parser.yy" + case 362: // $@58: %empty +#line 1474 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2558 "dhcp6_parser.cc" +#line 2617 "dhcp6_parser.cc" break; - case 355: // hooks_library: "{" $@57 hooks_params "}" -#line 1455 "dhcp6_parser.yy" + case 363: // hooks_library: "{" $@58 hooks_params "}" +#line 1478 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2568 "dhcp6_parser.cc" +#line 2627 "dhcp6_parser.cc" break; - case 356: // $@58: %empty -#line 1461 "dhcp6_parser.yy" + case 364: // $@59: %empty +#line 1484 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2578 "dhcp6_parser.cc" +#line 2637 "dhcp6_parser.cc" break; - case 357: // sub_hooks_library: "{" $@58 hooks_params "}" -#line 1465 "dhcp6_parser.yy" + case 365: // sub_hooks_library: "{" $@59 hooks_params "}" +#line 1488 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2588 "dhcp6_parser.cc" +#line 2647 "dhcp6_parser.cc" break; - case 360: // hooks_params: hooks_params "," -#line 1473 "dhcp6_parser.yy" + case 368: // hooks_params: hooks_params "," +#line 1496 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2596 "dhcp6_parser.cc" +#line 2655 "dhcp6_parser.cc" break; - case 364: // $@59: %empty -#line 1483 "dhcp6_parser.yy" + case 372: // $@60: %empty +#line 1506 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2605 "dhcp6_parser.cc" +#line 2664 "dhcp6_parser.cc" break; - case 365: // library: "library" $@59 ":" "constant string" -#line 1486 "dhcp6_parser.yy" + case 373: // library: "library" $@60 ":" "constant string" +#line 1509 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2615 "dhcp6_parser.cc" +#line 2674 "dhcp6_parser.cc" break; - case 366: // $@60: %empty -#line 1492 "dhcp6_parser.yy" + case 374: // $@61: %empty +#line 1515 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2624 "dhcp6_parser.cc" +#line 2683 "dhcp6_parser.cc" break; - case 367: // parameters: "parameters" $@60 ":" map_value -#line 1495 "dhcp6_parser.yy" + case 375: // parameters: "parameters" $@61 ":" map_value +#line 1518 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2633 "dhcp6_parser.cc" +#line 2692 "dhcp6_parser.cc" break; - case 368: // $@61: %empty -#line 1501 "dhcp6_parser.yy" + case 376: // $@62: %empty +#line 1524 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2641,89 +2700,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2645 "dhcp6_parser.cc" +#line 2704 "dhcp6_parser.cc" break; - case 369: // expired_leases_processing: "expired-leases-processing" $@61 ":" "{" expired_leases_params "}" -#line 1507 "dhcp6_parser.yy" + case 377: // expired_leases_processing: "expired-leases-processing" $@62 ":" "{" expired_leases_params "}" +#line 1530 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2655 "dhcp6_parser.cc" +#line 2714 "dhcp6_parser.cc" break; - case 372: // expired_leases_params: expired_leases_params "," -#line 1515 "dhcp6_parser.yy" + case 380: // expired_leases_params: expired_leases_params "," +#line 1538 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2663 "dhcp6_parser.cc" +#line 2722 "dhcp6_parser.cc" break; - case 379: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1528 "dhcp6_parser.yy" + case 387: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1551 "dhcp6_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))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2673 "dhcp6_parser.cc" +#line 2732 "dhcp6_parser.cc" break; - case 380: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1534 "dhcp6_parser.yy" + case 388: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1557 "dhcp6_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))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2683 "dhcp6_parser.cc" +#line 2742 "dhcp6_parser.cc" break; - case 381: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1540 "dhcp6_parser.yy" + case 389: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1563 "dhcp6_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))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2693 "dhcp6_parser.cc" +#line 2752 "dhcp6_parser.cc" break; - case 382: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1546 "dhcp6_parser.yy" + case 390: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1569 "dhcp6_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))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2703 "dhcp6_parser.cc" +#line 2762 "dhcp6_parser.cc" break; - case 383: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1552 "dhcp6_parser.yy" + case 391: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1575 "dhcp6_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))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2713 "dhcp6_parser.cc" +#line 2772 "dhcp6_parser.cc" break; - case 384: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1558 "dhcp6_parser.yy" + case 392: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1581 "dhcp6_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))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2723 "dhcp6_parser.cc" +#line 2782 "dhcp6_parser.cc" break; - case 385: // $@62: %empty -#line 1567 "dhcp6_parser.yy" + case 393: // $@63: %empty +#line 1590 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2731,38 +2790,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2735 "dhcp6_parser.cc" +#line 2794 "dhcp6_parser.cc" break; - case 386: // subnet6_list: "subnet6" $@62 ":" "[" subnet6_list_content "]" -#line 1573 "dhcp6_parser.yy" + case 394: // subnet6_list: "subnet6" $@63 ":" "[" subnet6_list_content "]" +#line 1596 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2744 "dhcp6_parser.cc" +#line 2803 "dhcp6_parser.cc" break; - case 391: // not_empty_subnet6_list: not_empty_subnet6_list "," -#line 1587 "dhcp6_parser.yy" + case 399: // not_empty_subnet6_list: not_empty_subnet6_list "," +#line 1610 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2752 "dhcp6_parser.cc" +#line 2811 "dhcp6_parser.cc" break; - case 392: // $@63: %empty -#line 1596 "dhcp6_parser.yy" + case 400: // $@64: %empty +#line 1619 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2762 "dhcp6_parser.cc" +#line 2821 "dhcp6_parser.cc" break; - case 393: // subnet6: "{" $@63 subnet6_params "}" -#line 1600 "dhcp6_parser.yy" + case 401: // subnet6: "{" $@64 subnet6_params "}" +#line 1623 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2784,115 +2843,115 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2788 "dhcp6_parser.cc" +#line 2847 "dhcp6_parser.cc" break; - case 394: // $@64: %empty -#line 1622 "dhcp6_parser.yy" + case 402: // $@65: %empty +#line 1645 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2798 "dhcp6_parser.cc" +#line 2857 "dhcp6_parser.cc" break; - case 395: // sub_subnet6: "{" $@64 subnet6_params "}" -#line 1626 "dhcp6_parser.yy" + case 403: // sub_subnet6: "{" $@65 subnet6_params "}" +#line 1649 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2808 "dhcp6_parser.cc" +#line 2867 "dhcp6_parser.cc" break; - case 398: // subnet6_params: subnet6_params "," -#line 1635 "dhcp6_parser.yy" + case 406: // subnet6_params: subnet6_params "," +#line 1658 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2816 "dhcp6_parser.cc" +#line 2875 "dhcp6_parser.cc" break; - case 450: // $@65: %empty -#line 1694 "dhcp6_parser.yy" + case 458: // $@66: %empty +#line 1717 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2825 "dhcp6_parser.cc" +#line 2884 "dhcp6_parser.cc" break; - case 451: // subnet: "subnet" $@65 ":" "constant string" -#line 1697 "dhcp6_parser.yy" + case 459: // subnet: "subnet" $@66 ":" "constant string" +#line 1720 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2835 "dhcp6_parser.cc" +#line 2894 "dhcp6_parser.cc" break; - case 452: // $@66: %empty -#line 1703 "dhcp6_parser.yy" + case 460: // $@67: %empty +#line 1726 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2844 "dhcp6_parser.cc" +#line 2903 "dhcp6_parser.cc" break; - case 453: // interface: "interface" $@66 ":" "constant string" -#line 1706 "dhcp6_parser.yy" + case 461: // interface: "interface" $@67 ":" "constant string" +#line 1729 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2854 "dhcp6_parser.cc" +#line 2913 "dhcp6_parser.cc" break; - case 454: // $@67: %empty -#line 1712 "dhcp6_parser.yy" + case 462: // $@68: %empty +#line 1735 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2863 "dhcp6_parser.cc" +#line 2922 "dhcp6_parser.cc" break; - case 455: // interface_id: "interface-id" $@67 ":" "constant string" -#line 1715 "dhcp6_parser.yy" + case 463: // interface_id: "interface-id" $@68 ":" "constant string" +#line 1738 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2873 "dhcp6_parser.cc" +#line 2932 "dhcp6_parser.cc" break; - case 456: // $@68: %empty -#line 1721 "dhcp6_parser.yy" + case 464: // $@69: %empty +#line 1744 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2882 "dhcp6_parser.cc" +#line 2941 "dhcp6_parser.cc" break; - case 457: // client_class: "client-class" $@68 ":" "constant string" -#line 1724 "dhcp6_parser.yy" + case 465: // client_class: "client-class" $@69 ":" "constant string" +#line 1747 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2892 "dhcp6_parser.cc" +#line 2951 "dhcp6_parser.cc" break; - case 458: // $@69: %empty -#line 1731 "dhcp6_parser.yy" + case 466: // $@70: %empty +#line 1754 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2900,20 +2959,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2904 "dhcp6_parser.cc" +#line 2963 "dhcp6_parser.cc" break; - case 459: // network_client_classes: "client-classes" $@69 ":" list_strings -#line 1737 "dhcp6_parser.yy" + case 467: // network_client_classes: "client-classes" $@70 ":" list_strings +#line 1760 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2913 "dhcp6_parser.cc" +#line 2972 "dhcp6_parser.cc" break; - case 460: // $@70: %empty -#line 1743 "dhcp6_parser.yy" + case 468: // $@71: %empty +#line 1766 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2921,20 +2980,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2925 "dhcp6_parser.cc" +#line 2984 "dhcp6_parser.cc" break; - case 461: // require_client_classes: "require-client-classes" $@70 ":" list_strings -#line 1749 "dhcp6_parser.yy" + case 469: // require_client_classes: "require-client-classes" $@71 ":" list_strings +#line 1772 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2934 "dhcp6_parser.cc" +#line 2993 "dhcp6_parser.cc" break; - case 462: // $@71: %empty -#line 1754 "dhcp6_parser.yy" + case 470: // $@72: %empty +#line 1777 "dhcp6_parser.yy" { ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2942,70 +3001,70 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2946 "dhcp6_parser.cc" +#line 3005 "dhcp6_parser.cc" break; - case 463: // evaluate_additional_classes: "evaluate-additional-classes" $@71 ":" list_strings -#line 1760 "dhcp6_parser.yy" + case 471: // evaluate_additional_classes: "evaluate-additional-classes" $@72 ":" list_strings +#line 1783 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2955 "dhcp6_parser.cc" +#line 3014 "dhcp6_parser.cc" break; - case 464: // reservations_global: "reservations-global" ":" "boolean" -#line 1765 "dhcp6_parser.yy" + case 472: // reservations_global: "reservations-global" ":" "boolean" +#line 1788 "dhcp6_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))); ctx.stack_.back()->set("reservations-global", b); } -#line 2965 "dhcp6_parser.cc" +#line 3024 "dhcp6_parser.cc" break; - case 465: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1771 "dhcp6_parser.yy" + case 473: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1794 "dhcp6_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))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2975 "dhcp6_parser.cc" +#line 3034 "dhcp6_parser.cc" break; - case 466: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1777 "dhcp6_parser.yy" + case 474: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1800 "dhcp6_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))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2985 "dhcp6_parser.cc" +#line 3044 "dhcp6_parser.cc" break; - case 467: // id: "id" ":" "integer" -#line 1783 "dhcp6_parser.yy" + case 475: // id: "id" ":" "integer" +#line 1806 "dhcp6_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))); ctx.stack_.back()->set("id", id); } -#line 2995 "dhcp6_parser.cc" +#line 3054 "dhcp6_parser.cc" break; - case 468: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1789 "dhcp6_parser.yy" + case 476: // rapid_commit: "rapid-commit" ":" "boolean" +#line 1812 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 3005 "dhcp6_parser.cc" +#line 3064 "dhcp6_parser.cc" break; - case 469: // $@72: %empty -#line 1797 "dhcp6_parser.yy" + case 477: // $@73: %empty +#line 1820 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3013,54 +3072,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 3017 "dhcp6_parser.cc" +#line 3076 "dhcp6_parser.cc" break; - case 470: // shared_networks: "shared-networks" $@72 ":" "[" shared_networks_content "]" -#line 1803 "dhcp6_parser.yy" + case 478: // shared_networks: "shared-networks" $@73 ":" "[" shared_networks_content "]" +#line 1826 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3026 "dhcp6_parser.cc" +#line 3085 "dhcp6_parser.cc" break; - case 475: // shared_networks_list: shared_networks_list "," -#line 1816 "dhcp6_parser.yy" + case 483: // shared_networks_list: shared_networks_list "," +#line 1839 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3034 "dhcp6_parser.cc" +#line 3093 "dhcp6_parser.cc" break; - case 476: // $@73: %empty -#line 1821 "dhcp6_parser.yy" + case 484: // $@74: %empty +#line 1844 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3044 "dhcp6_parser.cc" +#line 3103 "dhcp6_parser.cc" break; - case 477: // shared_network: "{" $@73 shared_network_params "}" -#line 1825 "dhcp6_parser.yy" + case 485: // shared_network: "{" $@74 shared_network_params "}" +#line 1848 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 3052 "dhcp6_parser.cc" +#line 3111 "dhcp6_parser.cc" break; - case 480: // shared_network_params: shared_network_params "," -#line 1831 "dhcp6_parser.yy" + case 488: // shared_network_params: shared_network_params "," +#line 1854 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3060 "dhcp6_parser.cc" +#line 3119 "dhcp6_parser.cc" break; - case 529: // $@74: %empty -#line 1890 "dhcp6_parser.yy" + case 537: // $@75: %empty +#line 1913 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3068,55 +3127,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 3072 "dhcp6_parser.cc" +#line 3131 "dhcp6_parser.cc" break; - case 530: // option_def_list: "option-def" $@74 ":" "[" option_def_list_content "]" -#line 1896 "dhcp6_parser.yy" + case 538: // option_def_list: "option-def" $@75 ":" "[" option_def_list_content "]" +#line 1919 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3081 "dhcp6_parser.cc" +#line 3140 "dhcp6_parser.cc" break; - case 531: // $@75: %empty -#line 1904 "dhcp6_parser.yy" + case 539: // $@76: %empty +#line 1927 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3090 "dhcp6_parser.cc" +#line 3149 "dhcp6_parser.cc" break; - case 532: // sub_option_def_list: "{" $@75 option_def_list "}" -#line 1907 "dhcp6_parser.yy" + case 540: // sub_option_def_list: "{" $@76 option_def_list "}" +#line 1930 "dhcp6_parser.yy" { // parsing completed } -#line 3098 "dhcp6_parser.cc" +#line 3157 "dhcp6_parser.cc" break; - case 537: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1919 "dhcp6_parser.yy" + case 545: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1942 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3106 "dhcp6_parser.cc" +#line 3165 "dhcp6_parser.cc" break; - case 538: // $@76: %empty -#line 1926 "dhcp6_parser.yy" + case 546: // $@77: %empty +#line 1949 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3116 "dhcp6_parser.cc" +#line 3175 "dhcp6_parser.cc" break; - case 539: // option_def_entry: "{" $@76 option_def_params "}" -#line 1930 "dhcp6_parser.yy" + case 547: // option_def_entry: "{" $@77 option_def_params "}" +#line 1953 "dhcp6_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)); @@ -3124,21 +3183,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3128 "dhcp6_parser.cc" +#line 3187 "dhcp6_parser.cc" break; - case 540: // $@77: %empty -#line 1941 "dhcp6_parser.yy" + case 548: // $@78: %empty +#line 1964 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3138 "dhcp6_parser.cc" +#line 3197 "dhcp6_parser.cc" break; - case 541: // sub_option_def: "{" $@77 option_def_params "}" -#line 1945 "dhcp6_parser.yy" + case 549: // sub_option_def: "{" $@78 option_def_params "}" +#line 1968 "dhcp6_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)); @@ -3146,115 +3205,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3150 "dhcp6_parser.cc" +#line 3209 "dhcp6_parser.cc" break; - case 546: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1961 "dhcp6_parser.yy" + case 554: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1984 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3158 "dhcp6_parser.cc" +#line 3217 "dhcp6_parser.cc" break; - case 558: // code: "code" ":" "integer" -#line 1980 "dhcp6_parser.yy" + case 566: // code: "code" ":" "integer" +#line 2003 "dhcp6_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))); ctx.stack_.back()->set("code", code); } -#line 3168 "dhcp6_parser.cc" +#line 3227 "dhcp6_parser.cc" break; - case 560: // $@78: %empty -#line 1988 "dhcp6_parser.yy" + case 568: // $@79: %empty +#line 2011 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3177 "dhcp6_parser.cc" +#line 3236 "dhcp6_parser.cc" break; - case 561: // option_def_type: "type" $@78 ":" "constant string" -#line 1991 "dhcp6_parser.yy" + case 569: // option_def_type: "type" $@79 ":" "constant string" +#line 2014 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3187 "dhcp6_parser.cc" +#line 3246 "dhcp6_parser.cc" break; - case 562: // $@79: %empty -#line 1997 "dhcp6_parser.yy" + case 570: // $@80: %empty +#line 2020 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3196 "dhcp6_parser.cc" +#line 3255 "dhcp6_parser.cc" break; - case 563: // option_def_record_types: "record-types" $@79 ":" "constant string" -#line 2000 "dhcp6_parser.yy" + case 571: // option_def_record_types: "record-types" $@80 ":" "constant string" +#line 2023 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 3206 "dhcp6_parser.cc" +#line 3265 "dhcp6_parser.cc" break; - case 564: // $@80: %empty -#line 2006 "dhcp6_parser.yy" + case 572: // $@81: %empty +#line 2029 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3215 "dhcp6_parser.cc" +#line 3274 "dhcp6_parser.cc" break; - case 565: // space: "space" $@80 ":" "constant string" -#line 2009 "dhcp6_parser.yy" + case 573: // space: "space" $@81 ":" "constant string" +#line 2032 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3225 "dhcp6_parser.cc" +#line 3284 "dhcp6_parser.cc" break; - case 567: // $@81: %empty -#line 2017 "dhcp6_parser.yy" + case 575: // $@82: %empty +#line 2040 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3234 "dhcp6_parser.cc" +#line 3293 "dhcp6_parser.cc" break; - case 568: // option_def_encapsulate: "encapsulate" $@81 ":" "constant string" -#line 2020 "dhcp6_parser.yy" + case 576: // option_def_encapsulate: "encapsulate" $@82 ":" "constant string" +#line 2043 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3244 "dhcp6_parser.cc" +#line 3303 "dhcp6_parser.cc" break; - case 569: // option_def_array: "array" ":" "boolean" -#line 2026 "dhcp6_parser.yy" + case 577: // option_def_array: "array" ":" "boolean" +#line 2049 "dhcp6_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3254 "dhcp6_parser.cc" +#line 3313 "dhcp6_parser.cc" break; - case 570: // $@82: %empty -#line 2036 "dhcp6_parser.yy" + case 578: // $@83: %empty +#line 2059 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3262,123 +3321,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3266 "dhcp6_parser.cc" +#line 3325 "dhcp6_parser.cc" break; - case 571: // option_data_list: "option-data" $@82 ":" "[" option_data_list_content "]" -#line 2042 "dhcp6_parser.yy" + case 579: // option_data_list: "option-data" $@83 ":" "[" option_data_list_content "]" +#line 2065 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3275 "dhcp6_parser.cc" +#line 3334 "dhcp6_parser.cc" break; - case 576: // not_empty_option_data_list: not_empty_option_data_list "," -#line 2057 "dhcp6_parser.yy" + case 584: // not_empty_option_data_list: not_empty_option_data_list "," +#line 2080 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3283 "dhcp6_parser.cc" +#line 3342 "dhcp6_parser.cc" break; - case 577: // $@83: %empty -#line 2064 "dhcp6_parser.yy" + case 585: // $@84: %empty +#line 2087 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3293 "dhcp6_parser.cc" +#line 3352 "dhcp6_parser.cc" break; - case 578: // option_data_entry: "{" $@83 option_data_params "}" -#line 2068 "dhcp6_parser.yy" + case 586: // option_data_entry: "{" $@84 option_data_params "}" +#line 2091 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3302 "dhcp6_parser.cc" +#line 3361 "dhcp6_parser.cc" break; - case 579: // $@84: %empty -#line 2076 "dhcp6_parser.yy" + case 587: // $@85: %empty +#line 2099 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3312 "dhcp6_parser.cc" +#line 3371 "dhcp6_parser.cc" break; - case 580: // sub_option_data: "{" $@84 option_data_params "}" -#line 2080 "dhcp6_parser.yy" + case 588: // sub_option_data: "{" $@85 option_data_params "}" +#line 2103 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3321 "dhcp6_parser.cc" +#line 3380 "dhcp6_parser.cc" break; - case 585: // not_empty_option_data_params: not_empty_option_data_params "," -#line 2096 "dhcp6_parser.yy" + case 593: // not_empty_option_data_params: not_empty_option_data_params "," +#line 2119 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3329 "dhcp6_parser.cc" +#line 3388 "dhcp6_parser.cc" break; - case 598: // $@85: %empty -#line 2118 "dhcp6_parser.yy" + case 606: // $@86: %empty +#line 2141 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3338 "dhcp6_parser.cc" +#line 3397 "dhcp6_parser.cc" break; - case 599: // option_data_data: "data" $@85 ":" "constant string" -#line 2121 "dhcp6_parser.yy" + case 607: // option_data_data: "data" $@86 ":" "constant string" +#line 2144 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3348 "dhcp6_parser.cc" +#line 3407 "dhcp6_parser.cc" break; - case 602: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2131 "dhcp6_parser.yy" + case 610: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2154 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3358 "dhcp6_parser.cc" +#line 3417 "dhcp6_parser.cc" break; - case 603: // option_data_always_send: "always-send" ":" "boolean" -#line 2137 "dhcp6_parser.yy" + case 611: // option_data_always_send: "always-send" ":" "boolean" +#line 2160 "dhcp6_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))); ctx.stack_.back()->set("always-send", persist); } -#line 3368 "dhcp6_parser.cc" +#line 3427 "dhcp6_parser.cc" break; - case 604: // option_data_never_send: "never-send" ":" "boolean" -#line 2143 "dhcp6_parser.yy" + case 612: // option_data_never_send: "never-send" ":" "boolean" +#line 2166 "dhcp6_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3378 "dhcp6_parser.cc" +#line 3437 "dhcp6_parser.cc" break; - case 605: // $@86: %empty -#line 2149 "dhcp6_parser.yy" + case 613: // $@87: %empty +#line 2172 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3386,20 +3445,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3390 "dhcp6_parser.cc" +#line 3449 "dhcp6_parser.cc" break; - case 606: // option_data_client_classes: "client-classes" $@86 ":" list_strings -#line 2155 "dhcp6_parser.yy" + case 614: // option_data_client_classes: "client-classes" $@87 ":" list_strings +#line 2178 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3399 "dhcp6_parser.cc" +#line 3458 "dhcp6_parser.cc" break; - case 607: // $@87: %empty -#line 2163 "dhcp6_parser.yy" + case 615: // $@88: %empty +#line 2186 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3407,113 +3466,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3411 "dhcp6_parser.cc" +#line 3470 "dhcp6_parser.cc" break; - case 608: // pools_list: "pools" $@87 ":" "[" pools_list_content "]" -#line 2169 "dhcp6_parser.yy" + case 616: // pools_list: "pools" $@88 ":" "[" pools_list_content "]" +#line 2192 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3420 "dhcp6_parser.cc" +#line 3479 "dhcp6_parser.cc" break; - case 613: // not_empty_pools_list: not_empty_pools_list "," -#line 2182 "dhcp6_parser.yy" + case 621: // not_empty_pools_list: not_empty_pools_list "," +#line 2205 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3428 "dhcp6_parser.cc" +#line 3487 "dhcp6_parser.cc" break; - case 614: // $@88: %empty -#line 2187 "dhcp6_parser.yy" + case 622: // $@89: %empty +#line 2210 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3438 "dhcp6_parser.cc" +#line 3497 "dhcp6_parser.cc" break; - case 615: // pool_list_entry: "{" $@88 pool_params "}" -#line 2191 "dhcp6_parser.yy" + case 623: // pool_list_entry: "{" $@89 pool_params "}" +#line 2214 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3448 "dhcp6_parser.cc" +#line 3507 "dhcp6_parser.cc" break; - case 616: // $@89: %empty -#line 2197 "dhcp6_parser.yy" + case 624: // $@90: %empty +#line 2220 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3458 "dhcp6_parser.cc" +#line 3517 "dhcp6_parser.cc" break; - case 617: // sub_pool6: "{" $@89 pool_params "}" -#line 2201 "dhcp6_parser.yy" + case 625: // sub_pool6: "{" $@90 pool_params "}" +#line 2224 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3468 "dhcp6_parser.cc" +#line 3527 "dhcp6_parser.cc" break; - case 620: // pool_params: pool_params "," -#line 2209 "dhcp6_parser.yy" + case 628: // pool_params: pool_params "," +#line 2232 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3476 "dhcp6_parser.cc" +#line 3535 "dhcp6_parser.cc" break; - case 645: // $@90: %empty -#line 2240 "dhcp6_parser.yy" + case 653: // $@91: %empty +#line 2263 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3485 "dhcp6_parser.cc" +#line 3544 "dhcp6_parser.cc" break; - case 646: // pool_entry: "pool" $@90 ":" "constant string" -#line 2243 "dhcp6_parser.yy" + case 654: // pool_entry: "pool" $@91 ":" "constant string" +#line 2266 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3495 "dhcp6_parser.cc" +#line 3554 "dhcp6_parser.cc" break; - case 647: // pool_id: "pool-id" ":" "integer" -#line 2249 "dhcp6_parser.yy" + case 655: // pool_id: "pool-id" ":" "integer" +#line 2272 "dhcp6_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3505 "dhcp6_parser.cc" +#line 3564 "dhcp6_parser.cc" break; - case 648: // $@91: %empty -#line 2255 "dhcp6_parser.yy" + case 656: // $@92: %empty +#line 2278 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3513 "dhcp6_parser.cc" +#line 3572 "dhcp6_parser.cc" break; - case 649: // user_context: "user-context" $@91 ":" map_value -#line 2257 "dhcp6_parser.yy" + case 657: // user_context: "user-context" $@92 ":" map_value +#line 2280 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3536,19 +3595,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3540 "dhcp6_parser.cc" +#line 3599 "dhcp6_parser.cc" break; - case 650: // $@92: %empty -#line 2280 "dhcp6_parser.yy" + case 658: // $@93: %empty +#line 2303 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3548 "dhcp6_parser.cc" +#line 3607 "dhcp6_parser.cc" break; - case 651: // comment: "comment" $@92 ":" "constant string" -#line 2282 "dhcp6_parser.yy" + case 659: // comment: "comment" $@93 ":" "constant string" +#line 2305 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3573,11 +3632,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3577 "dhcp6_parser.cc" +#line 3636 "dhcp6_parser.cc" break; - case 652: // $@93: %empty -#line 2310 "dhcp6_parser.yy" + case 660: // $@94: %empty +#line 2333 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3585,38 +3644,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3589 "dhcp6_parser.cc" +#line 3648 "dhcp6_parser.cc" break; - case 653: // pd_pools_list: "pd-pools" $@93 ":" "[" pd_pools_list_content "]" -#line 2316 "dhcp6_parser.yy" + case 661: // pd_pools_list: "pd-pools" $@94 ":" "[" pd_pools_list_content "]" +#line 2339 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3598 "dhcp6_parser.cc" +#line 3657 "dhcp6_parser.cc" break; - case 658: // not_empty_pd_pools_list: not_empty_pd_pools_list "," -#line 2329 "dhcp6_parser.yy" + case 666: // not_empty_pd_pools_list: not_empty_pd_pools_list "," +#line 2352 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3606 "dhcp6_parser.cc" +#line 3665 "dhcp6_parser.cc" break; - case 659: // $@94: %empty -#line 2334 "dhcp6_parser.yy" + case 667: // $@95: %empty +#line 2357 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3616 "dhcp6_parser.cc" +#line 3675 "dhcp6_parser.cc" break; - case 660: // pd_pool_entry: "{" $@94 pd_pool_params "}" -#line 2338 "dhcp6_parser.yy" + case 668: // pd_pool_entry: "{" $@95 pd_pool_params "}" +#line 2361 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3624,21 +3683,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3628 "dhcp6_parser.cc" +#line 3687 "dhcp6_parser.cc" break; - case 661: // $@95: %empty -#line 2346 "dhcp6_parser.yy" + case 669: // $@96: %empty +#line 2369 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3638 "dhcp6_parser.cc" +#line 3697 "dhcp6_parser.cc" break; - case 662: // sub_pd_pool: "{" $@95 pd_pool_params "}" -#line 2350 "dhcp6_parser.yy" + case 670: // sub_pd_pool: "{" $@96 pd_pool_params "}" +#line 2373 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3646,87 +3705,87 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3650 "dhcp6_parser.cc" +#line 3709 "dhcp6_parser.cc" break; - case 665: // pd_pool_params: pd_pool_params "," -#line 2360 "dhcp6_parser.yy" + case 673: // pd_pool_params: pd_pool_params "," +#line 2383 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3658 "dhcp6_parser.cc" +#line 3717 "dhcp6_parser.cc" break; - case 680: // $@96: %empty -#line 2381 "dhcp6_parser.yy" + case 688: // $@97: %empty +#line 2404 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3667 "dhcp6_parser.cc" +#line 3726 "dhcp6_parser.cc" break; - case 681: // pd_prefix: "prefix" $@96 ":" "constant string" -#line 2384 "dhcp6_parser.yy" + case 689: // pd_prefix: "prefix" $@97 ":" "constant string" +#line 2407 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3677 "dhcp6_parser.cc" +#line 3736 "dhcp6_parser.cc" break; - case 682: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2390 "dhcp6_parser.yy" + case 690: // pd_prefix_len: "prefix-len" ":" "integer" +#line 2413 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3687 "dhcp6_parser.cc" +#line 3746 "dhcp6_parser.cc" break; - case 683: // $@97: %empty -#line 2396 "dhcp6_parser.yy" + case 691: // $@98: %empty +#line 2419 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3696 "dhcp6_parser.cc" +#line 3755 "dhcp6_parser.cc" break; - case 684: // excluded_prefix: "excluded-prefix" $@97 ":" "constant string" -#line 2399 "dhcp6_parser.yy" + case 692: // excluded_prefix: "excluded-prefix" $@98 ":" "constant string" +#line 2422 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3706 "dhcp6_parser.cc" +#line 3765 "dhcp6_parser.cc" break; - case 685: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2405 "dhcp6_parser.yy" + case 693: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" +#line 2428 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3716 "dhcp6_parser.cc" +#line 3775 "dhcp6_parser.cc" break; - case 686: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2411 "dhcp6_parser.yy" + case 694: // pd_delegated_len: "delegated-len" ":" "integer" +#line 2434 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3726 "dhcp6_parser.cc" +#line 3785 "dhcp6_parser.cc" break; - case 687: // $@98: %empty -#line 2420 "dhcp6_parser.yy" + case 695: // $@99: %empty +#line 2443 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3734,74 +3793,74 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3738 "dhcp6_parser.cc" +#line 3797 "dhcp6_parser.cc" break; - case 688: // reservations: "reservations" $@98 ":" "[" reservations_list "]" -#line 2426 "dhcp6_parser.yy" + case 696: // reservations: "reservations" $@99 ":" "[" reservations_list "]" +#line 2449 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3747 "dhcp6_parser.cc" +#line 3806 "dhcp6_parser.cc" break; - case 693: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2437 "dhcp6_parser.yy" + case 701: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2460 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3755 "dhcp6_parser.cc" +#line 3814 "dhcp6_parser.cc" break; - case 694: // $@99: %empty -#line 2442 "dhcp6_parser.yy" + case 702: // $@100: %empty +#line 2465 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3765 "dhcp6_parser.cc" +#line 3824 "dhcp6_parser.cc" break; - case 695: // reservation: "{" $@99 reservation_params "}" -#line 2446 "dhcp6_parser.yy" + case 703: // reservation: "{" $@100 reservation_params "}" +#line 2469 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3774 "dhcp6_parser.cc" +#line 3833 "dhcp6_parser.cc" break; - case 696: // $@100: %empty -#line 2451 "dhcp6_parser.yy" + case 704: // $@101: %empty +#line 2474 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3784 "dhcp6_parser.cc" +#line 3843 "dhcp6_parser.cc" break; - case 697: // sub_reservation: "{" $@100 reservation_params "}" -#line 2455 "dhcp6_parser.yy" + case 705: // sub_reservation: "{" $@101 reservation_params "}" +#line 2478 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3793 "dhcp6_parser.cc" +#line 3852 "dhcp6_parser.cc" break; - case 702: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2466 "dhcp6_parser.yy" + case 710: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2489 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3801 "dhcp6_parser.cc" +#line 3860 "dhcp6_parser.cc" break; - case 715: // $@101: %empty -#line 2486 "dhcp6_parser.yy" + case 723: // $@102: %empty +#line 2509 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3809,20 +3868,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3813 "dhcp6_parser.cc" +#line 3872 "dhcp6_parser.cc" break; - case 716: // ip_addresses: "ip-addresses" $@101 ":" list_strings -#line 2492 "dhcp6_parser.yy" + case 724: // ip_addresses: "ip-addresses" $@102 ":" list_strings +#line 2515 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3822 "dhcp6_parser.cc" +#line 3881 "dhcp6_parser.cc" break; - case 717: // $@102: %empty -#line 2497 "dhcp6_parser.yy" + case 725: // $@103: %empty +#line 2520 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3830,20 +3889,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3834 "dhcp6_parser.cc" +#line 3893 "dhcp6_parser.cc" break; - case 718: // prefixes: "prefixes" $@102 ":" list_strings -#line 2503 "dhcp6_parser.yy" + case 726: // prefixes: "prefixes" $@103 ":" list_strings +#line 2526 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3843 "dhcp6_parser.cc" +#line 3902 "dhcp6_parser.cc" break; - case 719: // $@103: %empty -#line 2508 "dhcp6_parser.yy" + case 727: // $@104: %empty +#line 2531 "dhcp6_parser.yy" { ctx.unique("excluded-prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3851,96 +3910,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3855 "dhcp6_parser.cc" +#line 3914 "dhcp6_parser.cc" break; - case 720: // excluded_prefixes: "excluded-prefixes" $@103 ":" list_strings -#line 2514 "dhcp6_parser.yy" + case 728: // excluded_prefixes: "excluded-prefixes" $@104 ":" list_strings +#line 2537 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3864 "dhcp6_parser.cc" +#line 3923 "dhcp6_parser.cc" break; - case 721: // $@104: %empty -#line 2519 "dhcp6_parser.yy" + case 729: // $@105: %empty +#line 2542 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3873 "dhcp6_parser.cc" +#line 3932 "dhcp6_parser.cc" break; - case 722: // duid: "duid" $@104 ":" "constant string" -#line 2522 "dhcp6_parser.yy" + case 730: // duid: "duid" $@105 ":" "constant string" +#line 2545 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3883 "dhcp6_parser.cc" +#line 3942 "dhcp6_parser.cc" break; - case 723: // $@105: %empty -#line 2528 "dhcp6_parser.yy" + case 731: // $@106: %empty +#line 2551 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3892 "dhcp6_parser.cc" +#line 3951 "dhcp6_parser.cc" break; - case 724: // hw_address: "hw-address" $@105 ":" "constant string" -#line 2531 "dhcp6_parser.yy" + case 732: // hw_address: "hw-address" $@106 ":" "constant string" +#line 2554 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3902 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" break; - case 725: // $@106: %empty -#line 2537 "dhcp6_parser.yy" + case 733: // $@107: %empty +#line 2560 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3911 "dhcp6_parser.cc" +#line 3970 "dhcp6_parser.cc" break; - case 726: // hostname: "hostname" $@106 ":" "constant string" -#line 2540 "dhcp6_parser.yy" + case 734: // hostname: "hostname" $@107 ":" "constant string" +#line 2563 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3921 "dhcp6_parser.cc" +#line 3980 "dhcp6_parser.cc" break; - case 727: // $@107: %empty -#line 2546 "dhcp6_parser.yy" + case 735: // $@108: %empty +#line 2569 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3930 "dhcp6_parser.cc" +#line 3989 "dhcp6_parser.cc" break; - case 728: // flex_id_value: "flex-id" $@107 ":" "constant string" -#line 2549 "dhcp6_parser.yy" + case 736: // flex_id_value: "flex-id" $@108 ":" "constant string" +#line 2572 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3940 "dhcp6_parser.cc" +#line 3999 "dhcp6_parser.cc" break; - case 729: // $@108: %empty -#line 2555 "dhcp6_parser.yy" + case 737: // $@109: %empty +#line 2578 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3948,20 +4007,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3952 "dhcp6_parser.cc" +#line 4011 "dhcp6_parser.cc" break; - case 730: // reservation_client_classes: "client-classes" $@108 ":" list_strings -#line 2561 "dhcp6_parser.yy" + case 738: // reservation_client_classes: "client-classes" $@109 ":" list_strings +#line 2584 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3961 "dhcp6_parser.cc" +#line 4020 "dhcp6_parser.cc" break; - case 731: // $@109: %empty -#line 2569 "dhcp6_parser.yy" + case 739: // $@110: %empty +#line 2592 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3969,20 +4028,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3973 "dhcp6_parser.cc" +#line 4032 "dhcp6_parser.cc" break; - case 732: // relay: "relay" $@109 ":" "{" relay_map "}" -#line 2575 "dhcp6_parser.yy" + case 740: // relay: "relay" $@110 ":" "{" relay_map "}" +#line 2598 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3982 "dhcp6_parser.cc" +#line 4041 "dhcp6_parser.cc" break; - case 734: // $@110: %empty -#line 2586 "dhcp6_parser.yy" + case 742: // $@111: %empty +#line 2609 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3990,114 +4049,114 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3994 "dhcp6_parser.cc" +#line 4053 "dhcp6_parser.cc" break; - case 735: // client_classes: "client-classes" $@110 ":" "[" client_classes_list "]" -#line 2592 "dhcp6_parser.yy" + case 743: // client_classes: "client-classes" $@111 ":" "[" client_classes_list "]" +#line 2615 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4003 "dhcp6_parser.cc" +#line 4062 "dhcp6_parser.cc" break; - case 738: // client_classes_list: client_classes_list "," -#line 2599 "dhcp6_parser.yy" + case 746: // client_classes_list: client_classes_list "," +#line 2622 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4011 "dhcp6_parser.cc" +#line 4070 "dhcp6_parser.cc" break; - case 739: // $@111: %empty -#line 2604 "dhcp6_parser.yy" + case 747: // $@112: %empty +#line 2627 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4021 "dhcp6_parser.cc" +#line 4080 "dhcp6_parser.cc" break; - case 740: // client_class_entry: "{" $@111 client_class_params "}" -#line 2608 "dhcp6_parser.yy" + case 748: // client_class_entry: "{" $@112 client_class_params "}" +#line 2631 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 4031 "dhcp6_parser.cc" +#line 4090 "dhcp6_parser.cc" break; - case 745: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2620 "dhcp6_parser.yy" + case 753: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2643 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4039 "dhcp6_parser.cc" +#line 4098 "dhcp6_parser.cc" break; - case 762: // $@112: %empty -#line 2644 "dhcp6_parser.yy" + case 770: // $@113: %empty +#line 2667 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4048 "dhcp6_parser.cc" +#line 4107 "dhcp6_parser.cc" break; - case 763: // client_class_test: "test" $@112 ":" "constant string" -#line 2647 "dhcp6_parser.yy" + case 771: // client_class_test: "test" $@113 ":" "constant string" +#line 2670 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 4058 "dhcp6_parser.cc" +#line 4117 "dhcp6_parser.cc" break; - case 764: // $@113: %empty -#line 2653 "dhcp6_parser.yy" + case 772: // $@114: %empty +#line 2676 "dhcp6_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4067 "dhcp6_parser.cc" +#line 4126 "dhcp6_parser.cc" break; - case 765: // client_class_template_test: "template-test" $@113 ":" "constant string" -#line 2656 "dhcp6_parser.yy" + case 773: // client_class_template_test: "template-test" $@114 ":" "constant string" +#line 2679 "dhcp6_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 4077 "dhcp6_parser.cc" +#line 4136 "dhcp6_parser.cc" break; - case 766: // only_if_required: "only-if-required" ":" "boolean" -#line 2663 "dhcp6_parser.yy" + case 774: // only_if_required: "only-if-required" ":" "boolean" +#line 2686 "dhcp6_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))); ctx.stack_.back()->set("only-if-required", b); } -#line 4087 "dhcp6_parser.cc" +#line 4146 "dhcp6_parser.cc" break; - case 767: // only_in_additional_list: "only-in-additional-list" ":" "boolean" -#line 2669 "dhcp6_parser.yy" + case 775: // only_in_additional_list: "only-in-additional-list" ":" "boolean" +#line 2692 "dhcp6_parser.yy" { ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-in-additional-list", b); } -#line 4097 "dhcp6_parser.cc" +#line 4156 "dhcp6_parser.cc" break; - case 768: // $@114: %empty -#line 2678 "dhcp6_parser.yy" + case 776: // $@115: %empty +#line 2701 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4105,125 +4164,125 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 4109 "dhcp6_parser.cc" +#line 4168 "dhcp6_parser.cc" break; - case 769: // server_id: "server-id" $@114 ":" "{" server_id_params "}" -#line 2684 "dhcp6_parser.yy" + case 777: // server_id: "server-id" $@115 ":" "{" server_id_params "}" +#line 2707 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4120 "dhcp6_parser.cc" +#line 4179 "dhcp6_parser.cc" break; - case 772: // server_id_params: server_id_params "," -#line 2693 "dhcp6_parser.yy" + case 780: // server_id_params: server_id_params "," +#line 2716 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4128 "dhcp6_parser.cc" +#line 4187 "dhcp6_parser.cc" break; - case 782: // $@115: %empty -#line 2709 "dhcp6_parser.yy" + case 790: // $@116: %empty +#line 2732 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 4137 "dhcp6_parser.cc" +#line 4196 "dhcp6_parser.cc" break; - case 783: // server_id_type: "type" $@115 ":" duid_type -#line 2712 "dhcp6_parser.yy" + case 791: // server_id_type: "type" $@116 ":" duid_type +#line 2735 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4146 "dhcp6_parser.cc" +#line 4205 "dhcp6_parser.cc" break; - case 784: // duid_type: "LLT" -#line 2717 "dhcp6_parser.yy" + case 792: // duid_type: "LLT" +#line 2740 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 4152 "dhcp6_parser.cc" +#line 4211 "dhcp6_parser.cc" break; - case 785: // duid_type: "EN" -#line 2718 "dhcp6_parser.yy" + case 793: // duid_type: "EN" +#line 2741 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 4158 "dhcp6_parser.cc" +#line 4217 "dhcp6_parser.cc" break; - case 786: // duid_type: "LL" -#line 2719 "dhcp6_parser.yy" + case 794: // duid_type: "LL" +#line 2742 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 4164 "dhcp6_parser.cc" +#line 4223 "dhcp6_parser.cc" break; - case 787: // htype: "htype" ":" "integer" -#line 2722 "dhcp6_parser.yy" + case 795: // htype: "htype" ":" "integer" +#line 2745 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 4174 "dhcp6_parser.cc" +#line 4233 "dhcp6_parser.cc" break; - case 788: // $@116: %empty -#line 2728 "dhcp6_parser.yy" + case 796: // $@117: %empty +#line 2751 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4183 "dhcp6_parser.cc" +#line 4242 "dhcp6_parser.cc" break; - case 789: // identifier: "identifier" $@116 ":" "constant string" -#line 2731 "dhcp6_parser.yy" + case 797: // identifier: "identifier" $@117 ":" "constant string" +#line 2754 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 4193 "dhcp6_parser.cc" +#line 4252 "dhcp6_parser.cc" break; - case 790: // time: "time" ":" "integer" -#line 2737 "dhcp6_parser.yy" + case 798: // time: "time" ":" "integer" +#line 2760 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 4203 "dhcp6_parser.cc" +#line 4262 "dhcp6_parser.cc" break; - case 791: // enterprise_id: "enterprise-id" ":" "integer" -#line 2743 "dhcp6_parser.yy" + case 799: // enterprise_id: "enterprise-id" ":" "integer" +#line 2766 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 4213 "dhcp6_parser.cc" +#line 4272 "dhcp6_parser.cc" break; - case 792: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2751 "dhcp6_parser.yy" + case 800: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2774 "dhcp6_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))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4223 "dhcp6_parser.cc" +#line 4282 "dhcp6_parser.cc" break; - case 793: // $@117: %empty -#line 2759 "dhcp6_parser.yy" + case 801: // $@118: %empty +#line 2782 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -4232,20 +4291,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4236 "dhcp6_parser.cc" +#line 4295 "dhcp6_parser.cc" break; - case 794: // control_socket: "control-socket" $@117 ":" "{" control_socket_params "}" -#line 2766 "dhcp6_parser.yy" + case 802: // control_socket: "control-socket" $@118 ":" "{" control_socket_params "}" +#line 2789 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4245 "dhcp6_parser.cc" +#line 4304 "dhcp6_parser.cc" break; - case 795: // $@118: %empty -#line 2771 "dhcp6_parser.yy" + case 803: // $@119: %empty +#line 2794 "dhcp6_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -4254,150 +4313,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4258 "dhcp6_parser.cc" +#line 4317 "dhcp6_parser.cc" break; - case 796: // control_sockets: "control-sockets" $@118 ":" "[" control_socket_list "]" -#line 2778 "dhcp6_parser.yy" + case 804: // control_sockets: "control-sockets" $@119 ":" "[" control_socket_list "]" +#line 2801 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4267 "dhcp6_parser.cc" +#line 4326 "dhcp6_parser.cc" break; - case 801: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2789 "dhcp6_parser.yy" + case 809: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2812 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4275 "dhcp6_parser.cc" +#line 4334 "dhcp6_parser.cc" break; - case 802: // $@119: %empty -#line 2794 "dhcp6_parser.yy" + case 810: // $@120: %empty +#line 2817 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4285 "dhcp6_parser.cc" +#line 4344 "dhcp6_parser.cc" break; - case 803: // control_socket_entry: "{" $@119 control_socket_params "}" -#line 2798 "dhcp6_parser.yy" + case 811: // control_socket_entry: "{" $@120 control_socket_params "}" +#line 2821 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4293 "dhcp6_parser.cc" +#line 4352 "dhcp6_parser.cc" break; - case 806: // control_socket_params: control_socket_params "," -#line 2804 "dhcp6_parser.yy" + case 814: // control_socket_params: control_socket_params "," +#line 2827 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4301 "dhcp6_parser.cc" +#line 4360 "dhcp6_parser.cc" break; - case 820: // $@120: %empty -#line 2824 "dhcp6_parser.yy" + case 828: // $@121: %empty +#line 2847 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4310 "dhcp6_parser.cc" +#line 4369 "dhcp6_parser.cc" break; - case 821: // control_socket_type: "socket-type" $@120 ":" control_socket_type_value -#line 2827 "dhcp6_parser.yy" + case 829: // control_socket_type: "socket-type" $@121 ":" control_socket_type_value +#line 2850 "dhcp6_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4319 "dhcp6_parser.cc" +#line 4378 "dhcp6_parser.cc" break; - case 822: // control_socket_type_value: "unix" -#line 2833 "dhcp6_parser.yy" + case 830: // control_socket_type_value: "unix" +#line 2856 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4325 "dhcp6_parser.cc" +#line 4384 "dhcp6_parser.cc" break; - case 823: // control_socket_type_value: "http" -#line 2834 "dhcp6_parser.yy" + case 831: // control_socket_type_value: "http" +#line 2857 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4331 "dhcp6_parser.cc" +#line 4390 "dhcp6_parser.cc" break; - case 824: // control_socket_type_value: "https" -#line 2835 "dhcp6_parser.yy" + case 832: // control_socket_type_value: "https" +#line 2858 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4337 "dhcp6_parser.cc" +#line 4396 "dhcp6_parser.cc" break; - case 825: // $@121: %empty -#line 2838 "dhcp6_parser.yy" + case 833: // $@122: %empty +#line 2861 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4347 "dhcp6_parser.cc" +#line 4406 "dhcp6_parser.cc" break; - case 826: // control_socket_name: "socket-name" $@121 ":" "constant string" -#line 2842 "dhcp6_parser.yy" + case 834: // control_socket_name: "socket-name" $@122 ":" "constant string" +#line 2865 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 4357 "dhcp6_parser.cc" +#line 4416 "dhcp6_parser.cc" break; - case 827: // $@122: %empty -#line 2848 "dhcp6_parser.yy" + case 835: // $@123: %empty +#line 2871 "dhcp6_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4367 "dhcp6_parser.cc" +#line 4426 "dhcp6_parser.cc" break; - case 828: // control_socket_address: "socket-address" $@122 ":" "constant string" -#line 2852 "dhcp6_parser.yy" + case 836: // control_socket_address: "socket-address" $@123 ":" "constant string" +#line 2875 "dhcp6_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4377 "dhcp6_parser.cc" +#line 4436 "dhcp6_parser.cc" break; - case 829: // control_socket_port: "socket-port" ":" "integer" -#line 2858 "dhcp6_parser.yy" + case 837: // control_socket_port: "socket-port" ":" "integer" +#line 2881 "dhcp6_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4387 "dhcp6_parser.cc" +#line 4446 "dhcp6_parser.cc" break; - case 830: // cert_required: "cert-required" ":" "boolean" -#line 2864 "dhcp6_parser.yy" + case 838: // cert_required: "cert-required" ":" "boolean" +#line 2887 "dhcp6_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4397 "dhcp6_parser.cc" +#line 4456 "dhcp6_parser.cc" break; - case 831: // $@123: %empty -#line 2870 "dhcp6_parser.yy" + case 839: // $@124: %empty +#line 2893 "dhcp6_parser.yy" { ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4405,73 +4464,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HTTP_HEADERS); } -#line 4409 "dhcp6_parser.cc" +#line 4468 "dhcp6_parser.cc" break; - case 832: // http_headers: "http-headers" $@123 ":" "[" http_header_list "]" -#line 2876 "dhcp6_parser.yy" + case 840: // http_headers: "http-headers" $@124 ":" "[" http_header_list "]" +#line 2899 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4418 "dhcp6_parser.cc" +#line 4477 "dhcp6_parser.cc" break; - case 837: // not_empty_http_header_list: not_empty_http_header_list "," -#line 2887 "dhcp6_parser.yy" + case 845: // not_empty_http_header_list: not_empty_http_header_list "," +#line 2910 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4426 "dhcp6_parser.cc" +#line 4485 "dhcp6_parser.cc" break; - case 838: // $@124: %empty -#line 2892 "dhcp6_parser.yy" + case 846: // $@125: %empty +#line 2915 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4436 "dhcp6_parser.cc" +#line 4495 "dhcp6_parser.cc" break; - case 839: // http_header: "{" $@124 http_header_params "}" -#line 2896 "dhcp6_parser.yy" + case 847: // http_header: "{" $@125 http_header_params "}" +#line 2919 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4444 "dhcp6_parser.cc" +#line 4503 "dhcp6_parser.cc" break; - case 842: // http_header_params: http_header_params "," -#line 2902 "dhcp6_parser.yy" + case 850: // http_header_params: http_header_params "," +#line 2925 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4452 "dhcp6_parser.cc" +#line 4511 "dhcp6_parser.cc" break; - case 848: // $@125: %empty -#line 2914 "dhcp6_parser.yy" + case 856: // $@126: %empty +#line 2937 "dhcp6_parser.yy" { ctx.unique("value", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4461 "dhcp6_parser.cc" +#line 4520 "dhcp6_parser.cc" break; - case 849: // header_value: "value" $@125 ":" "constant string" -#line 2917 "dhcp6_parser.yy" + case 857: // header_value: "value" $@126 ":" "constant string" +#line 2940 "dhcp6_parser.yy" { ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("value", value); ctx.leave(); } -#line 4471 "dhcp6_parser.cc" +#line 4530 "dhcp6_parser.cc" break; - case 850: // $@126: %empty -#line 2925 "dhcp6_parser.yy" + case 858: // $@127: %empty +#line 2948 "dhcp6_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4479,92 +4538,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4483 "dhcp6_parser.cc" +#line 4542 "dhcp6_parser.cc" break; - case 851: // authentication: "authentication" $@126 ":" "{" auth_params "}" -#line 2931 "dhcp6_parser.yy" + case 859: // authentication: "authentication" $@127 ":" "{" auth_params "}" +#line 2954 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4494 "dhcp6_parser.cc" +#line 4553 "dhcp6_parser.cc" break; - case 854: // auth_params: auth_params "," -#line 2940 "dhcp6_parser.yy" + case 862: // auth_params: auth_params "," +#line 2963 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4502 "dhcp6_parser.cc" +#line 4561 "dhcp6_parser.cc" break; - case 862: // $@127: %empty -#line 2954 "dhcp6_parser.yy" + case 870: // $@128: %empty +#line 2977 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4511 "dhcp6_parser.cc" +#line 4570 "dhcp6_parser.cc" break; - case 863: // auth_type: "type" $@127 ":" auth_type_value -#line 2957 "dhcp6_parser.yy" + case 871: // auth_type: "type" $@128 ":" auth_type_value +#line 2980 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4520 "dhcp6_parser.cc" +#line 4579 "dhcp6_parser.cc" break; - case 864: // auth_type_value: "basic" -#line 2962 "dhcp6_parser.yy" + case 872: // auth_type_value: "basic" +#line 2985 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4526 "dhcp6_parser.cc" +#line 4585 "dhcp6_parser.cc" break; - case 865: // $@128: %empty -#line 2965 "dhcp6_parser.yy" + case 873: // $@129: %empty +#line 2988 "dhcp6_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4535 "dhcp6_parser.cc" +#line 4594 "dhcp6_parser.cc" break; - case 866: // realm: "realm" $@128 ":" "constant string" -#line 2968 "dhcp6_parser.yy" + case 874: // realm: "realm" $@129 ":" "constant string" +#line 2991 "dhcp6_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4545 "dhcp6_parser.cc" +#line 4604 "dhcp6_parser.cc" break; - case 867: // $@129: %empty -#line 2974 "dhcp6_parser.yy" + case 875: // $@130: %empty +#line 2997 "dhcp6_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4554 "dhcp6_parser.cc" +#line 4613 "dhcp6_parser.cc" break; - case 868: // directory: "directory" $@129 ":" "constant string" -#line 2977 "dhcp6_parser.yy" + case 876: // directory: "directory" $@130 ":" "constant string" +#line 3000 "dhcp6_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4564 "dhcp6_parser.cc" +#line 4623 "dhcp6_parser.cc" break; - case 869: // $@130: %empty -#line 2983 "dhcp6_parser.yy" + case 877: // $@131: %empty +#line 3006 "dhcp6_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4572,92 +4631,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4576 "dhcp6_parser.cc" +#line 4635 "dhcp6_parser.cc" break; - case 870: // clients: "clients" $@130 ":" "[" clients_list "]" -#line 2989 "dhcp6_parser.yy" + case 878: // clients: "clients" $@131 ":" "[" clients_list "]" +#line 3012 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4585 "dhcp6_parser.cc" +#line 4644 "dhcp6_parser.cc" break; - case 875: // not_empty_clients_list: not_empty_clients_list "," -#line 3000 "dhcp6_parser.yy" + case 883: // not_empty_clients_list: not_empty_clients_list "," +#line 3023 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4593 "dhcp6_parser.cc" +#line 4652 "dhcp6_parser.cc" break; - case 876: // $@131: %empty -#line 3005 "dhcp6_parser.yy" + case 884: // $@132: %empty +#line 3028 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4603 "dhcp6_parser.cc" +#line 4662 "dhcp6_parser.cc" break; - case 877: // basic_auth: "{" $@131 clients_params "}" -#line 3009 "dhcp6_parser.yy" + case 885: // basic_auth: "{" $@132 clients_params "}" +#line 3032 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4611 "dhcp6_parser.cc" +#line 4670 "dhcp6_parser.cc" break; - case 880: // clients_params: clients_params "," -#line 3015 "dhcp6_parser.yy" + case 888: // clients_params: clients_params "," +#line 3038 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4619 "dhcp6_parser.cc" +#line 4678 "dhcp6_parser.cc" break; - case 888: // $@132: %empty -#line 3029 "dhcp6_parser.yy" + case 896: // $@133: %empty +#line 3052 "dhcp6_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4628 "dhcp6_parser.cc" +#line 4687 "dhcp6_parser.cc" break; - case 889: // user_file: "user-file" $@132 ":" "constant string" -#line 3032 "dhcp6_parser.yy" + case 897: // user_file: "user-file" $@133 ":" "constant string" +#line 3055 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4638 "dhcp6_parser.cc" +#line 4697 "dhcp6_parser.cc" break; - case 890: // $@133: %empty -#line 3038 "dhcp6_parser.yy" + case 898: // $@134: %empty +#line 3061 "dhcp6_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4647 "dhcp6_parser.cc" +#line 4706 "dhcp6_parser.cc" break; - case 891: // password_file: "password-file" $@133 ":" "constant string" -#line 3041 "dhcp6_parser.yy" + case 899: // password_file: "password-file" $@134 ":" "constant string" +#line 3064 "dhcp6_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4657 "dhcp6_parser.cc" +#line 4716 "dhcp6_parser.cc" break; - case 892: // $@134: %empty -#line 3049 "dhcp6_parser.yy" + case 900: // $@135: %empty +#line 3072 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4665,87 +4724,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4669 "dhcp6_parser.cc" +#line 4728 "dhcp6_parser.cc" break; - case 893: // dhcp_queue_control: "dhcp-queue-control" $@134 ":" "{" queue_control_params "}" -#line 3055 "dhcp6_parser.yy" + case 901: // dhcp_queue_control: "dhcp-queue-control" $@135 ":" "{" queue_control_params "}" +#line 3078 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4680 "dhcp6_parser.cc" +#line 4739 "dhcp6_parser.cc" break; - case 896: // queue_control_params: queue_control_params "," -#line 3064 "dhcp6_parser.yy" + case 904: // queue_control_params: queue_control_params "," +#line 3087 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4688 "dhcp6_parser.cc" +#line 4747 "dhcp6_parser.cc" break; - case 903: // enable_queue: "enable-queue" ":" "boolean" -#line 3077 "dhcp6_parser.yy" + case 911: // enable_queue: "enable-queue" ":" "boolean" +#line 3100 "dhcp6_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))); ctx.stack_.back()->set("enable-queue", b); } -#line 4698 "dhcp6_parser.cc" +#line 4757 "dhcp6_parser.cc" break; - case 904: // $@135: %empty -#line 3083 "dhcp6_parser.yy" + case 912: // $@136: %empty +#line 3106 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4707 "dhcp6_parser.cc" +#line 4766 "dhcp6_parser.cc" break; - case 905: // queue_type: "queue-type" $@135 ":" "constant string" -#line 3086 "dhcp6_parser.yy" + case 913: // queue_type: "queue-type" $@136 ":" "constant string" +#line 3109 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4717 "dhcp6_parser.cc" +#line 4776 "dhcp6_parser.cc" break; - case 906: // capacity: "capacity" ":" "integer" -#line 3092 "dhcp6_parser.yy" + case 914: // capacity: "capacity" ":" "integer" +#line 3115 "dhcp6_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))); ctx.stack_.back()->set("capacity", c); } -#line 4727 "dhcp6_parser.cc" +#line 4786 "dhcp6_parser.cc" break; - case 907: // $@136: %empty -#line 3098 "dhcp6_parser.yy" + case 915: // $@137: %empty +#line 3121 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4736 "dhcp6_parser.cc" +#line 4795 "dhcp6_parser.cc" break; - case 908: // arbitrary_map_entry: "constant string" $@136 ":" value -#line 3101 "dhcp6_parser.yy" + case 916: // arbitrary_map_entry: "constant string" $@137 ":" value +#line 3124 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4745 "dhcp6_parser.cc" +#line 4804 "dhcp6_parser.cc" break; - case 909: // $@137: %empty -#line 3108 "dhcp6_parser.yy" + case 917: // $@138: %empty +#line 3131 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4753,177 +4812,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4757 "dhcp6_parser.cc" +#line 4816 "dhcp6_parser.cc" break; - case 910: // dhcp_ddns: "dhcp-ddns" $@137 ":" "{" dhcp_ddns_params "}" -#line 3114 "dhcp6_parser.yy" + case 918: // dhcp_ddns: "dhcp-ddns" $@138 ":" "{" dhcp_ddns_params "}" +#line 3137 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4768 "dhcp6_parser.cc" +#line 4827 "dhcp6_parser.cc" break; - case 911: // $@138: %empty -#line 3121 "dhcp6_parser.yy" + case 919: // $@139: %empty +#line 3144 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4778 "dhcp6_parser.cc" +#line 4837 "dhcp6_parser.cc" break; - case 912: // sub_dhcp_ddns: "{" $@138 dhcp_ddns_params "}" -#line 3125 "dhcp6_parser.yy" + case 920: // sub_dhcp_ddns: "{" $@139 dhcp_ddns_params "}" +#line 3148 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4788 "dhcp6_parser.cc" +#line 4847 "dhcp6_parser.cc" break; - case 915: // dhcp_ddns_params: dhcp_ddns_params "," -#line 3133 "dhcp6_parser.yy" + case 923: // dhcp_ddns_params: dhcp_ddns_params "," +#line 3156 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4796 "dhcp6_parser.cc" +#line 4855 "dhcp6_parser.cc" break; - case 927: // enable_updates: "enable-updates" ":" "boolean" -#line 3151 "dhcp6_parser.yy" + case 935: // enable_updates: "enable-updates" ":" "boolean" +#line 3174 "dhcp6_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))); ctx.stack_.back()->set("enable-updates", b); } -#line 4806 "dhcp6_parser.cc" +#line 4865 "dhcp6_parser.cc" break; - case 928: // $@139: %empty -#line 3157 "dhcp6_parser.yy" + case 936: // $@140: %empty +#line 3180 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4815 "dhcp6_parser.cc" +#line 4874 "dhcp6_parser.cc" break; - case 929: // server_ip: "server-ip" $@139 ":" "constant string" -#line 3160 "dhcp6_parser.yy" + case 937: // server_ip: "server-ip" $@140 ":" "constant string" +#line 3183 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4825 "dhcp6_parser.cc" +#line 4884 "dhcp6_parser.cc" break; - case 930: // server_port: "server-port" ":" "integer" -#line 3166 "dhcp6_parser.yy" + case 938: // server_port: "server-port" ":" "integer" +#line 3189 "dhcp6_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))); ctx.stack_.back()->set("server-port", i); } -#line 4835 "dhcp6_parser.cc" +#line 4894 "dhcp6_parser.cc" break; - case 931: // $@140: %empty -#line 3172 "dhcp6_parser.yy" + case 939: // $@141: %empty +#line 3195 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4844 "dhcp6_parser.cc" +#line 4903 "dhcp6_parser.cc" break; - case 932: // sender_ip: "sender-ip" $@140 ":" "constant string" -#line 3175 "dhcp6_parser.yy" + case 940: // sender_ip: "sender-ip" $@141 ":" "constant string" +#line 3198 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4854 "dhcp6_parser.cc" +#line 4913 "dhcp6_parser.cc" break; - case 933: // sender_port: "sender-port" ":" "integer" -#line 3181 "dhcp6_parser.yy" + case 941: // sender_port: "sender-port" ":" "integer" +#line 3204 "dhcp6_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))); ctx.stack_.back()->set("sender-port", i); } -#line 4864 "dhcp6_parser.cc" +#line 4923 "dhcp6_parser.cc" break; - case 934: // max_queue_size: "max-queue-size" ":" "integer" -#line 3187 "dhcp6_parser.yy" + case 942: // max_queue_size: "max-queue-size" ":" "integer" +#line 3210 "dhcp6_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))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4874 "dhcp6_parser.cc" +#line 4933 "dhcp6_parser.cc" break; - case 935: // $@141: %empty -#line 3193 "dhcp6_parser.yy" + case 943: // $@142: %empty +#line 3216 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4883 "dhcp6_parser.cc" +#line 4942 "dhcp6_parser.cc" break; - case 936: // ncr_protocol: "ncr-protocol" $@141 ":" ncr_protocol_value -#line 3196 "dhcp6_parser.yy" + case 944: // ncr_protocol: "ncr-protocol" $@142 ":" ncr_protocol_value +#line 3219 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4892 "dhcp6_parser.cc" +#line 4951 "dhcp6_parser.cc" break; - case 937: // ncr_protocol_value: "UDP" -#line 3202 "dhcp6_parser.yy" + case 945: // ncr_protocol_value: "UDP" +#line 3225 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4898 "dhcp6_parser.cc" +#line 4957 "dhcp6_parser.cc" break; - case 938: // ncr_protocol_value: "TCP" -#line 3203 "dhcp6_parser.yy" + case 946: // ncr_protocol_value: "TCP" +#line 3226 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4904 "dhcp6_parser.cc" +#line 4963 "dhcp6_parser.cc" break; - case 939: // $@142: %empty -#line 3206 "dhcp6_parser.yy" + case 947: // $@143: %empty +#line 3229 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4913 "dhcp6_parser.cc" +#line 4972 "dhcp6_parser.cc" break; - case 940: // ncr_format: "ncr-format" $@142 ":" "JSON" -#line 3209 "dhcp6_parser.yy" + case 948: // ncr_format: "ncr-format" $@143 ":" "JSON" +#line 3232 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4923 "dhcp6_parser.cc" +#line 4982 "dhcp6_parser.cc" break; - case 941: // $@143: %empty -#line 3217 "dhcp6_parser.yy" + case 949: // $@144: %empty +#line 3240 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4931,48 +4990,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4935 "dhcp6_parser.cc" +#line 4994 "dhcp6_parser.cc" break; - case 942: // config_control: "config-control" $@143 ":" "{" config_control_params "}" -#line 3223 "dhcp6_parser.yy" + case 950: // config_control: "config-control" $@144 ":" "{" config_control_params "}" +#line 3246 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4945 "dhcp6_parser.cc" +#line 5004 "dhcp6_parser.cc" break; - case 943: // $@144: %empty -#line 3229 "dhcp6_parser.yy" + case 951: // $@145: %empty +#line 3252 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4955 "dhcp6_parser.cc" +#line 5014 "dhcp6_parser.cc" break; - case 944: // sub_config_control: "{" $@144 config_control_params "}" -#line 3233 "dhcp6_parser.yy" + case 952: // sub_config_control: "{" $@145 config_control_params "}" +#line 3256 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4964 "dhcp6_parser.cc" +#line 5023 "dhcp6_parser.cc" break; - case 947: // config_control_params: config_control_params "," -#line 3241 "dhcp6_parser.yy" + case 955: // config_control_params: config_control_params "," +#line 3264 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4972 "dhcp6_parser.cc" +#line 5031 "dhcp6_parser.cc" break; - case 950: // $@145: %empty -#line 3251 "dhcp6_parser.yy" + case 958: // $@146: %empty +#line 3274 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4980,30 +5039,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4984 "dhcp6_parser.cc" +#line 5043 "dhcp6_parser.cc" break; - case 951: // config_databases: "config-databases" $@145 ":" "[" database_list "]" -#line 3257 "dhcp6_parser.yy" + case 959: // config_databases: "config-databases" $@146 ":" "[" database_list "]" +#line 3280 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4993 "dhcp6_parser.cc" +#line 5052 "dhcp6_parser.cc" break; - case 952: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 3262 "dhcp6_parser.yy" + case 960: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 3285 "dhcp6_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))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 5003 "dhcp6_parser.cc" +#line 5062 "dhcp6_parser.cc" break; - case 953: // $@146: %empty -#line 3270 "dhcp6_parser.yy" + case 961: // $@147: %empty +#line 3293 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -5011,83 +5070,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 5015 "dhcp6_parser.cc" +#line 5074 "dhcp6_parser.cc" break; - case 954: // loggers: "loggers" $@146 ":" "[" loggers_entries "]" -#line 3276 "dhcp6_parser.yy" + case 962: // loggers: "loggers" $@147 ":" "[" loggers_entries "]" +#line 3299 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5024 "dhcp6_parser.cc" +#line 5083 "dhcp6_parser.cc" break; - case 957: // loggers_entries: loggers_entries "," -#line 3285 "dhcp6_parser.yy" + case 965: // loggers_entries: loggers_entries "," +#line 3308 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5032 "dhcp6_parser.cc" +#line 5091 "dhcp6_parser.cc" break; - case 958: // $@147: %empty -#line 3291 "dhcp6_parser.yy" + case 966: // $@148: %empty +#line 3314 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 5042 "dhcp6_parser.cc" +#line 5101 "dhcp6_parser.cc" break; - case 959: // logger_entry: "{" $@147 logger_params "}" -#line 3295 "dhcp6_parser.yy" + case 967: // logger_entry: "{" $@148 logger_params "}" +#line 3318 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 5050 "dhcp6_parser.cc" +#line 5109 "dhcp6_parser.cc" break; - case 962: // logger_params: logger_params "," -#line 3301 "dhcp6_parser.yy" + case 970: // logger_params: logger_params "," +#line 3324 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5058 "dhcp6_parser.cc" +#line 5117 "dhcp6_parser.cc" break; - case 970: // debuglevel: "debuglevel" ":" "integer" -#line 3315 "dhcp6_parser.yy" + case 978: // debuglevel: "debuglevel" ":" "integer" +#line 3338 "dhcp6_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))); ctx.stack_.back()->set("debuglevel", dl); } -#line 5068 "dhcp6_parser.cc" +#line 5127 "dhcp6_parser.cc" break; - case 971: // $@148: %empty -#line 3321 "dhcp6_parser.yy" + case 979: // $@149: %empty +#line 3344 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5077 "dhcp6_parser.cc" +#line 5136 "dhcp6_parser.cc" break; - case 972: // severity: "severity" $@148 ":" "constant string" -#line 3324 "dhcp6_parser.yy" + case 980: // severity: "severity" $@149 ":" "constant string" +#line 3347 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 5087 "dhcp6_parser.cc" +#line 5146 "dhcp6_parser.cc" break; - case 973: // $@149: %empty -#line 3330 "dhcp6_parser.yy" + case 981: // $@150: %empty +#line 3353 "dhcp6_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -5095,122 +5154,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 5099 "dhcp6_parser.cc" +#line 5158 "dhcp6_parser.cc" break; - case 974: // output_options_list: "output-options" $@149 ":" "[" output_options_list_content "]" -#line 3336 "dhcp6_parser.yy" + case 982: // output_options_list: "output-options" $@150 ":" "[" output_options_list_content "]" +#line 3359 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5108 "dhcp6_parser.cc" +#line 5167 "dhcp6_parser.cc" break; - case 977: // output_options_list_content: output_options_list_content "," -#line 3343 "dhcp6_parser.yy" + case 985: // output_options_list_content: output_options_list_content "," +#line 3366 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5116 "dhcp6_parser.cc" +#line 5175 "dhcp6_parser.cc" break; - case 978: // $@150: %empty -#line 3348 "dhcp6_parser.yy" + case 986: // $@151: %empty +#line 3371 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 5126 "dhcp6_parser.cc" +#line 5185 "dhcp6_parser.cc" break; - case 979: // output_entry: "{" $@150 output_params_list "}" -#line 3352 "dhcp6_parser.yy" + case 987: // output_entry: "{" $@151 output_params_list "}" +#line 3375 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 5134 "dhcp6_parser.cc" +#line 5193 "dhcp6_parser.cc" break; - case 982: // output_params_list: output_params_list "," -#line 3358 "dhcp6_parser.yy" + case 990: // output_params_list: output_params_list "," +#line 3381 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5142 "dhcp6_parser.cc" +#line 5201 "dhcp6_parser.cc" break; - case 988: // $@151: %empty -#line 3370 "dhcp6_parser.yy" + case 996: // $@152: %empty +#line 3393 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5151 "dhcp6_parser.cc" +#line 5210 "dhcp6_parser.cc" break; - case 989: // output: "output" $@151 ":" "constant string" -#line 3373 "dhcp6_parser.yy" + case 997: // output: "output" $@152 ":" "constant string" +#line 3396 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 5161 "dhcp6_parser.cc" +#line 5220 "dhcp6_parser.cc" break; - case 990: // flush: "flush" ":" "boolean" -#line 3379 "dhcp6_parser.yy" + case 998: // flush: "flush" ":" "boolean" +#line 3402 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 5171 "dhcp6_parser.cc" +#line 5230 "dhcp6_parser.cc" break; - case 991: // maxsize: "maxsize" ":" "integer" -#line 3385 "dhcp6_parser.yy" + case 999: // maxsize: "maxsize" ":" "integer" +#line 3408 "dhcp6_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))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 5181 "dhcp6_parser.cc" +#line 5240 "dhcp6_parser.cc" break; - case 992: // maxver: "maxver" ":" "integer" -#line 3391 "dhcp6_parser.yy" + case 1000: // maxver: "maxver" ":" "integer" +#line 3414 "dhcp6_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))); ctx.stack_.back()->set("maxver", maxver); } -#line 5191 "dhcp6_parser.cc" +#line 5250 "dhcp6_parser.cc" break; - case 993: // $@152: %empty -#line 3397 "dhcp6_parser.yy" + case 1001: // $@153: %empty +#line 3420 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5200 "dhcp6_parser.cc" +#line 5259 "dhcp6_parser.cc" break; - case 994: // pattern: "pattern" $@152 ":" "constant string" -#line 3400 "dhcp6_parser.yy" + case 1002: // pattern: "pattern" $@153 ":" "constant string" +#line 3423 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 5210 "dhcp6_parser.cc" +#line 5269 "dhcp6_parser.cc" break; - case 995: // $@153: %empty -#line 3406 "dhcp6_parser.yy" + case 1003: // $@154: %empty +#line 3429 "dhcp6_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -5218,38 +5277,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 5222 "dhcp6_parser.cc" +#line 5281 "dhcp6_parser.cc" break; - case 996: // compatibility: "compatibility" $@153 ":" "{" compatibility_params "}" -#line 3412 "dhcp6_parser.yy" + case 1004: // compatibility: "compatibility" $@154 ":" "{" compatibility_params "}" +#line 3435 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5231 "dhcp6_parser.cc" +#line 5290 "dhcp6_parser.cc" break; - case 999: // compatibility_params: compatibility_params "," -#line 3419 "dhcp6_parser.yy" + case 1007: // compatibility_params: compatibility_params "," +#line 3442 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5239 "dhcp6_parser.cc" +#line 5298 "dhcp6_parser.cc" break; - case 1002: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3428 "dhcp6_parser.yy" + case 1010: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3451 "dhcp6_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))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 5249 "dhcp6_parser.cc" +#line 5308 "dhcp6_parser.cc" break; -#line 5253 "dhcp6_parser.cc" +#line 5312 "dhcp6_parser.cc" default: break; @@ -5601,166 +5660,167 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -1434; + const short Dhcp6Parser::yypact_ninf_ = -1450; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 710, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 35, 43, 44, 117, 158, - 176, 182, 189, 209, 211, 239, 245, 255, 265, 279, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 43, -186, - 59, 763, 62, 1442, 173, 610, 260, 10, 16, 640, - -74, 273, 89, -1434, 135, 124, 170, 286, 304, -1434, - 64, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 307, 324, - 349, 351, 373, 380, 383, 386, 399, 409, 451, 483, - 490, 492, -1434, 495, 505, 506, 508, 512, -1434, -1434, - -1434, 514, 516, 517, 519, 523, 524, 526, -1434, -1434, - -1434, 527, -1434, -1434, -1434, -1434, -1434, -1434, 530, 531, - 533, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - 534, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 537, 539, - 543, -1434, -1434, 546, -1434, 80, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 550, - 553, 555, 556, -1434, 81, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 559, 561, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 134, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 562, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - 140, -1434, -1434, -1434, -1434, -1434, -1434, 563, -1434, 568, - 569, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - 159, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 314, - 402, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - 477, -1434, -1434, 570, -1434, -1434, -1434, 572, -1434, -1434, - 571, 404, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 573, 574, 578, -1434, -1434, - -1434, -1434, -1434, 576, 582, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 174, - -1434, -1434, -1434, 585, -1434, 588, -1434, 592, 595, -1434, - -1434, -1434, -1434, -1434, 250, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 601, 252, -1434, -1434, -1434, - -1434, 43, 43, -1434, 371, 603, -1434, -1434, 604, 607, - 611, 613, 614, 617, 378, 388, 391, 392, 393, 396, - 397, 398, 387, 408, 413, 415, 418, 420, 634, 421, - 422, 424, 425, 426, 635, 636, 665, 434, 437, 440, - 444, 447, 452, 443, 678, 681, 683, 454, 688, 689, - 690, 692, 693, 694, 461, 465, 467, 702, 704, 705, - 706, 707, 708, 709, 717, 725, 494, 727, 728, 730, - 734, 741, 742, 743, 513, 515, 518, 748, 750, -1434, - 763, -1434, 751, 520, 521, 528, 535, 62, -1434, 753, - 756, 759, 762, 772, 541, 529, 775, 776, 777, 778, - 779, 1442, -1434, 783, 552, 173, -1434, 785, 554, 787, - 557, 558, 610, -1434, 788, 791, 792, 796, 799, 800, - 801, 802, -1434, 260, -1434, 803, 804, 575, 805, 806, - 842, 609, -1434, 16, 844, 612, 615, 616, 845, -1434, - 640, 847, 848, 236, -1434, 621, 856, 625, 858, 628, - 629, 862, 863, 273, -1434, 864, 633, 89, -1434, -1434, - -1434, 866, 867, 641, 870, 871, 879, 880, 884, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, 655, -1434, -1434, -1434, -1434, -1434, -128, - 656, 657, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 888, - 889, 890, -1434, 661, 663, 57, 894, 893, 666, -1434, - -1434, -1434, 897, 898, 899, 900, 903, 905, 906, 907, - 908, -1434, 910, 911, 914, 913, 915, 670, 677, -1434, - -1434, -1434, 916, 919, -1434, 918, -1434, -1434, -1434, -1434, - -1434, 922, 923, 711, 712, 714, -1434, -1434, 918, 918, - 918, 715, 938, -1434, 716, -1434, -1434, 718, -1434, 719, - -1434, -1434, -1434, 918, 918, 918, 918, 720, 721, 722, - 723, -1434, 724, 726, -1434, 729, 731, 732, -1434, -1434, - 739, -1434, -1434, -1434, 918, -1434, 740, 893, -1434, -1434, - 744, -1434, 745, -1434, -1434, 274, 671, -1434, 955, -1434, - -1434, 43, 763, -1434, 89, 62, 177, 177, 956, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 958, 969, - 970, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 971, -1434, - -1434, -1434, -97, 43, 132, 382, 974, 976, 977, 79, - 75, 167, 192, 978, -56, 273, -1434, -1434, 979, -178, - -1434, -1434, 980, 981, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, 827, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 956, -1434, - 253, 266, 300, -1434, -1434, -1434, -1434, 909, 985, 986, - 987, 988, 989, 990, 991, 992, 993, -1434, 995, 996, - -1434, -1434, -1434, -1434, -1434, -1434, 301, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, 316, -1434, 997, 998, -1434, -1434, 999, 1001, -1434, - -1434, 1000, 1004, -1434, -1434, 1002, 1006, -1434, -1434, 1005, - 1007, -1434, -1434, -1434, 110, -1434, -1434, -1434, 1008, -1434, - -1434, -1434, 114, -1434, -1434, -1434, -1434, -1434, 317, -1434, - -1434, -1434, -1434, 184, -1434, -1434, 1009, 1010, -1434, -1434, - 1011, 1013, -1434, 1014, 1015, 1016, 1017, 1018, 1020, 318, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1021, - 1023, 1024, -1434, -1434, -1434, -1434, 326, -1434, -1434, -1434, - -1434, -1434, -1434, 1026, 1027, 1029, -1434, 339, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1030, -1434, 1034, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 340, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1035, 1040, -1434, - 1047, -1434, 1049, -1434, -1434, -1434, 343, -1434, -1434, -1434, - -1434, -1434, 346, -1434, 289, -1434, 1050, -1434, 354, -1434, - -1434, 767, -1434, 1051, 1053, -1434, -1434, 1056, 1060, -1434, - -1434, 1059, 1058, -1434, -1434, -1434, 1065, 1066, 1068, 1071, - 841, 774, 849, 840, 855, 857, 861, 874, 877, 886, - 1079, 865, 892, 1090, 1095, 1116, 1127, 1130, 177, -1434, - -1434, 177, -1434, 956, 1442, -1434, 958, 16, -1434, 969, - 640, -1434, 970, 365, -1434, 971, -97, -1434, -1434, 132, - -1434, 1148, 1151, 382, -1434, 263, 974, -1434, 260, -1434, - 976, -74, -1434, 977, 925, 930, 932, 935, 937, 939, - 79, -1434, 1173, 1176, 946, 947, 949, 75, -1434, 948, - 954, 968, 167, -1434, 1209, 1210, 1211, 983, 1218, 1003, - 1220, 192, -1434, 192, -1434, 978, 1025, 1221, 994, 1222, - -56, -1434, -1434, 175, 979, -1434, 1028, -178, -1434, -1434, - 1223, 1228, 173, -1434, 980, 610, -1434, 981, -1434, -1434, - 1012, 1019, 1033, 1036, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, 389, -1434, -1434, 1037, 1038, 1039, - 1041, 1042, -1434, 360, -1434, 368, -1434, 1226, -1434, 1227, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 401, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, 1043, 1044, -1434, -1434, -1434, 1233, - 1235, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, 1232, 1239, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, 1236, -1434, 403, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, 347, 1045, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, 355, 1046, 1048, -1434, 1242, -1434, 1241, -1434, - 442, -1434, -1434, 1052, -1434, 43, -1434, -1434, 1247, -1434, - -1434, -1434, -1434, -1434, 445, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, 1054, 446, -1434, 448, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 365, -1434, -1434, -1434, 1248, - 1249, 1031, 1032, -1434, 263, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 88, 1251, - -1434, -1434, -1434, 1255, 1055, 1257, 175, -1434, -1434, -1434, - -1434, -1434, 1061, 1063, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, 449, -1434, -1434, -1434, -1434, -1434, - -1434, 1258, 1252, -1434, 1260, -1434, 1064, -1434, -1434, -1434, - 1271, 1278, 1280, 1281, 88, -1434, -18, -1434, 1251, 1279, - -1434, 1112, 1067, 1069, 1285, -1434, -1434, -1434, -1434, -1434, - -1434, 468, -1434, -1434, -1434, -1434, 290, -1434, -1434, -1434, - -1434, -1434, 1286, 1297, -18, -1434, 121, 1279, -1434, -1434, - 1299, 1303, -1434, 1072, -1434, -1434, 1305, 1308, 1309, -1434, - 481, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 83, -1434, - 1286, -1434, 1310, 1078, 1082, 1084, 1317, 121, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, 485, -1434, -1434, -1434, - -1434, 1087, -1434, -1434, -1434, 1089, -1434, 1322, 1323, 83, - -1434, -1434, -1434, 1093, 1094, -1434, -1434, -1434 + 710, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 64, 43, 34, 62, 77, + 93, 98, 123, 141, 186, 209, 225, 236, 259, 260, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 43, -174, + 114, 763, 56, 1446, 326, 336, 164, 192, 11, 627, + -80, 610, 96, -1450, 292, 297, 300, 310, 331, -1450, + 109, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 340, 341, + 355, 357, 361, 369, 373, 375, 384, 420, 439, 440, + 449, 450, -1450, 459, 468, 472, 473, 474, -1450, -1450, + -1450, 484, 485, 486, 487, 488, 489, 490, -1450, -1450, + -1450, 491, -1450, -1450, -1450, -1450, -1450, -1450, 492, 493, + 494, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 495, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 497, 498, + 499, -1450, -1450, 501, -1450, 117, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 502, + 503, 504, 505, -1450, 159, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 506, 508, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, 171, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 512, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 174, -1450, -1450, -1450, -1450, -1450, -1450, 514, -1450, 516, + 517, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 184, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 321, + 419, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 382, -1450, -1450, 519, -1450, -1450, -1450, 520, -1450, -1450, + 477, 522, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 523, 524, 526, -1450, -1450, + -1450, -1450, -1450, 518, 528, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 250, + -1450, -1450, -1450, 530, -1450, 531, -1450, 537, 539, -1450, + -1450, -1450, -1450, -1450, 251, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 543, 261, -1450, -1450, -1450, + -1450, 43, 43, -1450, 309, 550, -1450, -1450, 553, 555, + 556, 559, 561, 562, 328, 330, 332, 334, 337, 342, + 343, 344, 327, 335, 345, 346, 350, 358, 569, 359, + 362, 352, 363, 364, 578, 583, 595, 367, 370, 374, + 376, 379, 380, 371, 598, 599, 601, 385, 602, 620, + 621, 624, 625, 628, 389, 390, 394, 635, 636, 641, + 646, 648, 650, 652, 653, 654, 421, 658, 660, 665, + 668, 671, 673, 676, 437, 438, 441, 679, 683, -1450, + 763, -1450, 684, 446, 447, 451, 454, 56, -1450, 688, + 690, 693, 694, 695, 461, 462, 701, 704, 705, 706, + 707, 1446, -1450, 708, 471, 326, -1450, 718, 482, 719, + 496, 507, 336, -1450, 723, 724, 725, 726, 727, 728, + 730, 731, -1450, 164, -1450, 732, 733, 509, 741, 742, + 743, 470, -1450, 11, 746, 510, 511, 513, 748, -1450, + 627, 749, 752, -59, -1450, 515, 756, 521, 760, 525, + 529, 761, 762, 610, -1450, 772, 535, 96, -1450, -1450, + -1450, 775, 773, 540, 776, 780, 781, 782, 777, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, 549, -1450, -1450, -1450, -1450, -1450, -154, + 551, 552, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 786, + 789, 790, -1450, 563, 564, 378, 791, 793, 573, -1450, + -1450, -1450, 798, 810, 811, 845, 812, 848, 849, 850, + 851, -1450, 852, 853, 860, 859, 863, 614, 615, -1450, + -1450, -1450, 862, 864, -1450, 867, -1450, -1450, -1450, -1450, + -1450, 868, 869, 634, 639, 640, -1450, -1450, 867, 867, + 867, 642, 870, -1450, 643, -1450, -1450, 651, -1450, 655, + -1450, -1450, -1450, 867, 867, 867, 867, 656, 657, 659, + 661, -1450, 663, 664, -1450, 666, 667, 669, -1450, -1450, + 670, -1450, -1450, -1450, 867, -1450, 672, 793, -1450, -1450, + 675, -1450, 677, -1450, -1450, 13, 687, -1450, 871, -1450, + -1450, 43, 763, -1450, 96, 56, 177, 177, 875, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 888, 892, + 894, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 899, -1450, + -1450, -1450, -104, 43, -66, 112, 902, 907, 910, 275, + 74, 27, 204, 912, 131, 610, -1450, -1450, 913, -184, + -1450, -1450, 914, 916, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, 783, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 875, -1450, + 273, 274, 280, -1450, -1450, -1450, -1450, 921, 922, 923, + 924, 925, 928, 929, 930, 947, 948, -1450, 949, 951, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, 291, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 293, -1450, + 950, 954, -1450, -1450, 953, 957, -1450, -1450, 955, 959, + -1450, -1450, 958, 960, -1450, -1450, 961, 962, -1450, -1450, + -1450, 110, -1450, -1450, -1450, 963, -1450, -1450, -1450, 135, + -1450, -1450, -1450, -1450, -1450, 313, -1450, -1450, -1450, -1450, + 257, -1450, -1450, 964, 965, -1450, -1450, 966, 968, -1450, + 969, 976, 977, 978, 979, 980, 314, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, 981, 982, 983, -1450, + -1450, -1450, -1450, 325, -1450, -1450, -1450, -1450, -1450, -1450, + 985, 986, 987, -1450, 329, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, 988, -1450, 989, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, 338, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, 990, 991, -1450, 993, -1450, 994, + -1450, -1450, -1450, 339, -1450, -1450, -1450, -1450, -1450, 354, + -1450, 467, -1450, 995, -1450, 360, -1450, -1450, 754, -1450, + 996, 997, -1450, -1450, 999, 998, -1450, -1450, 1000, 1001, + -1450, -1450, -1450, 1002, 1005, 1006, 1007, 770, 722, 771, + 759, 774, 778, 779, 784, 785, 787, 1010, 788, 794, + 1011, 1013, 1014, 1015, 1018, 1019, 177, -1450, -1450, 177, + -1450, 875, 1446, -1450, 888, 11, -1450, 892, 627, -1450, + 894, 1544, -1450, 899, -104, -1450, -1450, -66, -1450, 1020, + 1021, 112, -1450, 215, 902, -1450, 164, -1450, 907, -80, + -1450, 910, 796, 797, 799, 800, 804, 807, 275, -1450, + 1024, 1026, 809, 817, 819, 74, -1450, 818, 822, 823, + 27, -1450, 1029, 1031, 1066, 829, 1068, 831, 1073, 204, + -1450, 204, -1450, 912, 834, 1076, 841, 1081, 131, -1450, + -1450, 16, 913, -1450, 842, -184, -1450, -1450, 1085, 1090, + 326, -1450, 914, 336, -1450, 916, -1450, -1450, 858, 861, + 866, 877, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, 144, -1450, -1450, 880, 887, 889, 895, 387, + 898, -1450, 368, -1450, 372, -1450, 1093, -1450, 1097, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, 383, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, 901, 919, -1450, -1450, -1450, 1107, 1159, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, 1161, 1171, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 1168, -1450, 386, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -6, 938, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, 220, 940, 942, -1450, 1178, -1450, 1183, -1450, 407, + -1450, -1450, 952, -1450, 43, -1450, -1450, 1186, -1450, -1450, + -1450, -1450, -1450, 408, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, 971, 409, -1450, 411, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 1544, -1450, -1450, -1450, 1187, + 1190, 1003, 1004, -1450, 215, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 129, 1191, + -1450, -1450, -1450, 1217, 992, 1218, 16, -1450, -1450, -1450, + -1450, -1450, 1008, 1009, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, 417, -1450, -1450, -1450, -1450, -1450, + -1450, 1221, 1220, -1450, 1225, -1450, 1016, -1450, -1450, -1450, + 1228, 1229, 1233, 1234, 129, -1450, 146, -1450, 1191, 1232, + -1450, 1060, 1022, 1025, 1238, -1450, -1450, -1450, -1450, -1450, + -1450, 418, -1450, -1450, -1450, -1450, 481, -1450, -1450, -1450, + -1450, -1450, 1245, 1241, 146, -1450, -135, 1232, -1450, -1450, + 1248, 1252, -1450, 1028, -1450, -1450, 1255, 1256, 1257, -1450, + 452, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 140, -1450, + 1245, -1450, 1258, 1023, 1030, 1032, 1267, -135, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, 463, -1450, -1450, -1450, + -1450, 1035, -1450, -1450, -1450, 1036, -1450, 1269, 1274, 140, + -1450, -1450, -1450, 1038, 1039, -1450, -1450, -1450 }; const short @@ -5770,19 +5830,19 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 61, 5, 67, 7, 205, 9, 394, 11, - 616, 13, 661, 15, 696, 17, 531, 19, 540, 21, - 579, 23, 356, 25, 911, 27, 943, 29, 48, 41, - 0, 0, 0, 0, 0, 0, 698, 0, 542, 581, + 35, 36, 61, 5, 67, 7, 205, 9, 402, 11, + 624, 13, 669, 15, 704, 17, 539, 19, 548, 21, + 587, 23, 364, 25, 919, 27, 951, 29, 48, 41, + 0, 0, 0, 0, 0, 0, 706, 0, 550, 589, 0, 0, 0, 50, 0, 49, 0, 0, 42, 63, - 0, 65, 144, 941, 203, 224, 226, 228, 0, 0, + 0, 65, 144, 949, 203, 224, 226, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 163, 170, - 172, 0, 0, 0, 0, 0, 0, 0, 385, 529, - 570, 0, 196, 198, 176, 469, 648, 650, 0, 0, - 0, 312, 331, 321, 301, 734, 687, 347, 368, 768, - 0, 333, 793, 795, 892, 909, 186, 188, 0, 0, - 0, 953, 995, 0, 143, 0, 69, 72, 73, 74, + 172, 0, 0, 0, 0, 0, 0, 0, 393, 537, + 578, 0, 196, 198, 176, 477, 656, 658, 0, 0, + 0, 320, 339, 329, 309, 742, 695, 355, 376, 776, + 0, 341, 801, 803, 900, 917, 186, 188, 0, 0, + 0, 961, 1003, 0, 143, 0, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 111, 112, 113, 114, 115, 81, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 117, 118, 132, 133, 134, @@ -5791,28 +5851,28 @@ namespace isc { namespace dhcp { 109, 110, 83, 92, 93, 102, 103, 105, 91, 96, 97, 98, 99, 100, 101, 106, 116, 139, 218, 0, 0, 0, 0, 217, 0, 207, 210, 211, 212, 213, - 214, 215, 216, 607, 652, 450, 452, 454, 0, 0, - 458, 460, 462, 456, 731, 449, 399, 400, 401, 402, - 403, 404, 405, 406, 426, 427, 428, 429, 430, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 431, 432, 446, 447, 448, 0, 396, 410, - 411, 412, 415, 416, 417, 418, 420, 421, 422, 413, - 414, 407, 408, 424, 425, 409, 419, 423, 645, 0, - 644, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 624, 625, 626, 627, 623, - 0, 618, 621, 622, 642, 643, 680, 0, 683, 0, - 0, 679, 671, 672, 673, 674, 670, 669, 677, 678, - 0, 663, 666, 667, 675, 676, 668, 729, 715, 717, - 719, 721, 723, 725, 727, 714, 711, 712, 713, 0, - 699, 700, 705, 706, 707, 703, 708, 709, 710, 704, - 0, 560, 273, 0, 564, 562, 567, 0, 556, 557, - 0, 543, 544, 547, 559, 548, 549, 550, 566, 551, - 552, 553, 554, 555, 598, 0, 0, 0, 605, 596, - 597, 600, 601, 0, 582, 583, 586, 587, 588, 589, - 590, 591, 592, 595, 593, 594, 364, 366, 361, 0, - 358, 362, 363, 0, 928, 0, 931, 0, 0, 935, - 939, 926, 924, 925, 0, 913, 916, 917, 918, 919, - 920, 921, 922, 923, 950, 0, 0, 945, 948, 949, + 214, 215, 216, 615, 660, 458, 460, 462, 0, 0, + 466, 468, 470, 464, 739, 457, 407, 408, 409, 410, + 411, 412, 413, 414, 434, 435, 436, 437, 438, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 439, 440, 454, 455, 456, 0, 404, 418, + 419, 420, 423, 424, 425, 426, 428, 429, 430, 421, + 422, 415, 416, 432, 433, 417, 427, 431, 653, 0, + 652, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 632, 633, 634, 635, 631, + 0, 626, 629, 630, 650, 651, 688, 0, 691, 0, + 0, 687, 679, 680, 681, 682, 678, 677, 685, 686, + 0, 671, 674, 675, 683, 684, 676, 737, 723, 725, + 727, 729, 731, 733, 735, 722, 719, 720, 721, 0, + 707, 708, 713, 714, 715, 711, 716, 717, 718, 712, + 0, 568, 274, 0, 572, 570, 575, 0, 564, 565, + 0, 551, 552, 555, 567, 556, 557, 558, 574, 559, + 560, 561, 562, 563, 606, 0, 0, 0, 613, 604, + 605, 608, 609, 0, 590, 591, 594, 595, 596, 597, + 598, 599, 600, 603, 601, 602, 372, 374, 369, 0, + 366, 370, 371, 0, 936, 0, 939, 0, 0, 943, + 947, 934, 932, 933, 0, 921, 924, 925, 926, 927, + 928, 929, 930, 931, 958, 0, 0, 953, 956, 957, 47, 52, 0, 39, 45, 0, 66, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5823,157 +5883,159 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 71, 68, 0, 0, 0, 0, 0, 209, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 398, 395, 0, 0, 620, 617, 0, 0, 0, - 0, 0, 665, 662, 0, 0, 0, 0, 0, 0, - 0, 0, 697, 702, 532, 0, 0, 0, 0, 0, - 0, 0, 541, 546, 0, 0, 0, 0, 0, 580, - 585, 0, 0, 360, 357, 0, 0, 0, 0, 0, - 0, 0, 0, 915, 912, 0, 0, 947, 944, 51, + 0, 406, 403, 0, 0, 628, 625, 0, 0, 0, + 0, 0, 673, 670, 0, 0, 0, 0, 0, 0, + 0, 0, 705, 710, 540, 0, 0, 0, 0, 0, + 0, 0, 549, 554, 0, 0, 0, 0, 0, 588, + 593, 0, 0, 368, 365, 0, 0, 0, 0, 0, + 0, 0, 0, 923, 920, 0, 0, 955, 952, 51, 43, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 0, 191, 192, 160, 161, 162, 0, 0, 0, 174, 175, 182, 183, 184, 185, 190, 0, - 0, 0, 195, 0, 0, 0, 0, 0, 0, 464, - 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 792, 0, 0, 0, 0, 0, 0, 0, 200, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 472, + 473, 474, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 800, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, 70, 0, 220, 221, 222, 223, - 208, 0, 0, 0, 0, 0, 467, 468, 0, 0, - 0, 0, 0, 397, 0, 647, 619, 0, 682, 0, - 685, 686, 664, 0, 0, 0, 0, 0, 0, 0, - 0, 701, 0, 0, 558, 0, 0, 0, 569, 545, - 0, 602, 603, 604, 0, 584, 0, 0, 359, 927, - 0, 930, 0, 933, 934, 0, 0, 914, 0, 952, - 946, 0, 0, 145, 0, 0, 0, 0, 230, 194, - 165, 166, 167, 168, 169, 164, 171, 173, 387, 533, - 572, 197, 199, 178, 179, 180, 181, 177, 471, 40, - 649, 651, 0, 48, 0, 0, 0, 689, 349, 0, - 0, 0, 0, 797, 0, 0, 187, 189, 0, 0, - 53, 219, 609, 654, 451, 453, 455, 459, 461, 463, - 457, 0, 646, 681, 684, 730, 716, 718, 720, 722, - 724, 726, 728, 561, 274, 565, 563, 568, 599, 606, - 365, 367, 929, 932, 937, 938, 936, 940, 230, 44, - 0, 0, 0, 264, 266, 268, 270, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, - 291, 293, 295, 297, 299, 263, 0, 237, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 254, 255, 256, 257, 253, 258, 259, 260, 261, - 262, 0, 235, 0, 231, 232, 392, 0, 388, 389, - 538, 0, 534, 535, 577, 0, 573, 574, 476, 0, - 472, 473, 319, 320, 0, 314, 317, 318, 0, 329, - 330, 326, 0, 323, 327, 328, 308, 310, 0, 303, - 306, 307, 739, 0, 736, 694, 0, 690, 691, 354, - 0, 350, 351, 0, 0, 0, 0, 0, 0, 0, - 370, 373, 374, 375, 376, 377, 378, 782, 788, 0, - 0, 0, 781, 778, 779, 780, 0, 770, 773, 776, - 774, 775, 777, 0, 0, 0, 343, 0, 335, 338, - 339, 340, 341, 342, 820, 825, 827, 0, 850, 0, - 831, 819, 812, 813, 814, 817, 818, 0, 804, 807, - 808, 809, 810, 815, 816, 811, 802, 0, 798, 799, - 0, 904, 0, 907, 900, 901, 0, 894, 897, 898, - 899, 902, 0, 958, 0, 955, 0, 1001, 0, 997, - 1000, 55, 614, 0, 610, 611, 659, 0, 655, 656, - 733, 0, 0, 64, 942, 204, 0, 0, 0, 0, + 208, 0, 0, 0, 0, 0, 475, 476, 0, 0, + 0, 0, 0, 405, 0, 655, 627, 0, 690, 0, + 693, 694, 672, 0, 0, 0, 0, 0, 0, 0, + 0, 709, 0, 0, 566, 0, 0, 0, 577, 553, + 0, 610, 611, 612, 0, 592, 0, 0, 367, 935, + 0, 938, 0, 941, 942, 0, 0, 922, 0, 960, + 954, 0, 0, 145, 0, 0, 0, 0, 230, 194, + 165, 166, 167, 168, 169, 164, 171, 173, 395, 541, + 580, 197, 199, 178, 179, 180, 181, 177, 479, 40, + 657, 659, 0, 48, 0, 0, 0, 697, 357, 0, + 0, 0, 0, 805, 0, 0, 187, 189, 0, 0, + 53, 219, 617, 662, 459, 461, 463, 467, 469, 471, + 465, 0, 654, 689, 692, 738, 724, 726, 728, 730, + 732, 734, 736, 569, 275, 573, 571, 576, 607, 614, + 373, 375, 937, 940, 945, 946, 944, 948, 230, 44, + 0, 0, 0, 265, 267, 269, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, + 292, 294, 296, 298, 300, 302, 303, 304, 305, 306, + 307, 264, 0, 237, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 254, 255, 256, + 257, 253, 258, 259, 260, 261, 262, 263, 0, 235, + 0, 231, 232, 400, 0, 396, 397, 546, 0, 542, + 543, 585, 0, 581, 582, 484, 0, 480, 481, 327, + 328, 0, 322, 325, 326, 0, 337, 338, 334, 0, + 331, 335, 336, 316, 318, 0, 311, 314, 315, 747, + 0, 744, 702, 0, 698, 699, 362, 0, 358, 359, + 0, 0, 0, 0, 0, 0, 0, 378, 381, 382, + 383, 384, 385, 386, 790, 796, 0, 0, 0, 789, + 786, 787, 788, 0, 778, 781, 784, 782, 783, 785, + 0, 0, 0, 351, 0, 343, 346, 347, 348, 349, + 350, 828, 833, 835, 0, 858, 0, 839, 827, 820, + 821, 822, 825, 826, 0, 812, 815, 816, 817, 818, + 823, 824, 819, 810, 0, 806, 807, 0, 912, 0, + 915, 908, 909, 0, 902, 905, 906, 907, 910, 0, + 966, 0, 963, 0, 1009, 0, 1005, 1008, 55, 622, + 0, 618, 619, 667, 0, 663, 664, 741, 0, 0, + 64, 950, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 239, 225, - 227, 0, 229, 234, 0, 386, 391, 542, 530, 537, - 581, 571, 576, 0, 470, 475, 316, 313, 332, 325, - 322, 0, 0, 305, 302, 741, 738, 735, 698, 688, - 693, 0, 348, 353, 0, 0, 0, 0, 0, 0, - 372, 369, 0, 0, 0, 0, 0, 772, 769, 0, - 0, 0, 337, 334, 0, 0, 0, 0, 0, 0, - 0, 806, 794, 0, 796, 801, 0, 0, 0, 0, - 896, 893, 910, 0, 957, 954, 0, 999, 996, 57, - 0, 56, 0, 608, 613, 0, 653, 658, 732, 951, - 0, 0, 0, 0, 272, 275, 276, 277, 278, 279, - 280, 281, 290, 282, 0, 288, 289, 0, 0, 0, - 0, 0, 238, 0, 233, 0, 390, 0, 536, 0, - 575, 528, 496, 497, 498, 500, 501, 502, 485, 486, - 505, 506, 507, 508, 509, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 510, 511, - 525, 526, 527, 481, 482, 483, 484, 492, 493, 494, - 495, 489, 490, 491, 499, 0, 478, 487, 503, 504, - 488, 474, 315, 324, 0, 0, 304, 762, 764, 0, - 0, 760, 754, 755, 756, 757, 758, 759, 761, 751, - 752, 753, 0, 742, 743, 746, 747, 748, 749, 750, - 737, 0, 692, 0, 352, 379, 380, 381, 382, 383, - 384, 371, 0, 0, 787, 790, 791, 771, 344, 345, - 346, 336, 0, 0, 0, 829, 0, 830, 0, 805, - 0, 800, 903, 0, 906, 0, 895, 973, 0, 971, - 969, 963, 967, 968, 0, 960, 965, 966, 964, 956, - 1002, 998, 54, 59, 0, 612, 0, 657, 265, 267, - 269, 271, 285, 286, 287, 284, 292, 294, 296, 298, - 300, 236, 393, 539, 578, 480, 477, 309, 311, 0, - 0, 0, 0, 740, 745, 695, 355, 784, 785, 786, - 783, 789, 822, 823, 824, 821, 826, 828, 0, 833, - 803, 905, 908, 0, 0, 0, 962, 959, 58, 615, - 660, 479, 0, 0, 766, 767, 744, 862, 865, 867, - 869, 861, 860, 859, 0, 852, 855, 856, 857, 858, - 838, 0, 834, 835, 0, 970, 0, 961, 763, 765, - 0, 0, 0, 0, 854, 851, 0, 832, 837, 0, - 972, 0, 0, 0, 0, 853, 848, 847, 843, 845, - 846, 0, 840, 844, 836, 978, 0, 975, 864, 863, - 866, 868, 871, 0, 842, 839, 0, 977, 974, 876, - 0, 872, 873, 0, 841, 988, 0, 0, 0, 993, - 0, 980, 983, 984, 985, 986, 987, 976, 0, 870, - 875, 849, 0, 0, 0, 0, 0, 982, 979, 888, - 890, 887, 881, 883, 885, 886, 0, 878, 882, 884, - 874, 0, 990, 991, 992, 0, 981, 0, 0, 880, - 877, 989, 994, 0, 0, 879, 889, 891 + 0, 0, 0, 0, 0, 0, 239, 225, 227, 0, + 229, 234, 0, 394, 399, 550, 538, 545, 589, 579, + 584, 0, 478, 483, 324, 321, 340, 333, 330, 0, + 0, 313, 310, 749, 746, 743, 706, 696, 701, 0, + 356, 361, 0, 0, 0, 0, 0, 0, 380, 377, + 0, 0, 0, 0, 0, 780, 777, 0, 0, 0, + 345, 342, 0, 0, 0, 0, 0, 0, 0, 814, + 802, 0, 804, 809, 0, 0, 0, 0, 904, 901, + 918, 0, 965, 962, 0, 1007, 1004, 57, 0, 56, + 0, 616, 621, 0, 661, 666, 740, 959, 0, 0, + 0, 0, 273, 276, 277, 278, 279, 280, 281, 282, + 291, 283, 0, 289, 290, 0, 0, 0, 0, 0, + 0, 238, 0, 233, 0, 398, 0, 544, 0, 583, + 536, 504, 505, 506, 508, 509, 510, 493, 494, 513, + 514, 515, 516, 517, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 518, 519, 533, + 534, 535, 489, 490, 491, 492, 500, 501, 502, 503, + 497, 498, 499, 507, 0, 486, 495, 511, 512, 496, + 482, 323, 332, 0, 0, 312, 770, 772, 0, 0, + 768, 762, 763, 764, 765, 766, 767, 769, 759, 760, + 761, 0, 750, 751, 754, 755, 756, 757, 758, 745, + 0, 700, 0, 360, 387, 388, 389, 390, 391, 392, + 379, 0, 0, 795, 798, 799, 779, 352, 353, 354, + 344, 0, 0, 0, 837, 0, 838, 0, 813, 0, + 808, 911, 0, 914, 0, 903, 981, 0, 979, 977, + 971, 975, 976, 0, 968, 973, 974, 972, 964, 1010, + 1006, 54, 59, 0, 620, 0, 665, 266, 268, 270, + 272, 286, 287, 288, 285, 293, 295, 297, 299, 301, + 308, 236, 401, 547, 586, 488, 485, 317, 319, 0, + 0, 0, 0, 748, 753, 703, 363, 792, 793, 794, + 791, 797, 830, 831, 832, 829, 834, 836, 0, 841, + 811, 913, 916, 0, 0, 0, 970, 967, 58, 623, + 668, 487, 0, 0, 774, 775, 752, 870, 873, 875, + 877, 869, 868, 867, 0, 860, 863, 864, 865, 866, + 846, 0, 842, 843, 0, 978, 0, 969, 771, 773, + 0, 0, 0, 0, 862, 859, 0, 840, 845, 0, + 980, 0, 0, 0, 0, 861, 856, 855, 851, 853, + 854, 0, 848, 852, 844, 986, 0, 983, 872, 871, + 874, 876, 879, 0, 850, 847, 0, 985, 982, 884, + 0, 880, 881, 0, 849, 996, 0, 0, 0, 1001, + 0, 988, 991, 992, 993, 994, 995, 984, 0, 878, + 883, 857, 0, 0, 0, 0, 0, 990, 987, 896, + 898, 895, 889, 891, 893, 894, 0, 886, 890, 892, + 882, 0, 998, 999, 1000, 0, 989, 0, 0, 888, + 885, 997, 1002, 0, 0, 887, 897, 899 }; const short Dhcp6Parser::yypgoto_[] = { - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -10, -1434, -634, -1434, - 577, -1434, -1434, -1434, -1434, 532, -1434, -132, -1434, -1434, - -1434, -71, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 565, - 781, -1434, -1434, 4, 12, 22, 38, 41, 42, -57, - -54, -35, -15, 97, 100, 102, -1434, 20, 23, 45, - 48, -1434, -1434, 55, -1434, 60, -1434, 66, 103, 71, - -1434, -1434, 73, 76, 78, 84, 90, -1434, 95, -1434, - 105, -1434, -1434, -1434, -1434, -1434, 107, -1434, 108, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 564, 786, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, 475, -1434, 247, -1434, -756, 254, -1434, -1434, -1433, - -1434, -1432, -1434, -1434, -1434, -1434, -55, -1434, -797, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -801, -1434, -795, -1434, -792, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 225, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, 238, -782, -1434, -1434, -1434, -1434, 240, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 205, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, 228, -1434, -1434, -1434, 227, - 746, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 223, -1434, - -1434, -1434, -1434, -1434, -1434, -1078, -1434, -1434, -1434, 259, - -1434, -1434, -1434, 262, 789, -1434, -1434, -1077, -1434, -1076, - -1434, 61, -1434, 85, -1434, 120, -1434, 125, -1434, 113, - 115, 118, -1434, -1075, -1434, -1434, -1434, -1434, 257, -1434, - -1434, -8, 1287, -1434, -1434, -1434, -1434, -1434, 267, -1434, - -1434, -1434, 261, -1434, 764, -1434, -65, -1434, -1434, -1434, - -1434, -1434, -61, -1434, -1434, -1434, -1434, -1434, -29, -1434, - -1434, -1434, 268, -1434, -1434, -1434, 271, -1434, 758, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, 198, -1434, -1434, -1434, 201, 807, -1434, - -1434, -63, -42, -1434, -13, -1434, -1434, -1434, -1434, -1434, - 197, -1434, -1434, -1434, 204, 794, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -58, -1434, -1434, -1434, 264, -1434, -1434, - -1434, 272, -1434, 798, 549, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1074, -1434, -1434, -1434, -1434, -1434, 281, -1434, -1434, -1434, - 15, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, 258, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 243, -1434, 246, - 249, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -37, -1434, -1434, -62, -1434, -1434, - -1434, -1434, -1434, -30, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -85, -1434, -1434, -111, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, 251, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, 599, 795, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, 645, 797, -1434, -1434, - -1434, -1434, -1434, -1434, 269, -1434, -1434, 31, -1434, -1434, - -1434, -1434, -1434, -1434, -39, -1434, -1434, -68, -1434, -1434, - -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 270, -1434 + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -10, -1450, -634, -1450, + 527, -1450, -1450, -1450, -1450, 478, -1450, -380, -1450, -1450, + -1450, -71, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 534, + 735, -1450, -1450, 4, 12, 22, 38, 41, 42, -57, + -54, -35, -15, 97, 100, 102, -1450, 20, 23, 45, + 48, -1450, -1450, 55, -1450, 60, -1450, 66, 103, 71, + -1450, -1450, 73, 76, 78, 84, 90, -1450, 95, -1450, + 105, -1450, -1450, -1450, -1450, -1450, 107, -1450, 108, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, 532, 729, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, 424, -1450, 182, -1450, -756, 191, -1450, -1450, -1449, + -1450, -1447, -1450, -1450, -1450, -1450, -55, -1450, -797, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -801, -1450, -795, -1450, -792, -1450, -1450, -1450, + 79, -1450, -1450, -1450, -1450, -1450, -1450, 168, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 176, -782, -1450, -1450, -1450, + -1450, 175, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 143, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, 160, -1450, -1450, + -1450, 165, 682, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 158, -1450, -1450, -1450, -1450, -1450, -1450, -1086, -1450, -1450, + -1450, 193, -1450, -1450, -1450, 196, 738, -1450, -1450, -1085, + -1450, -1084, -1450, 61, -1450, 85, -1450, 120, -1450, 125, + -1450, 113, 115, 118, -1450, -1083, -1450, -1450, -1450, -1450, + 188, -1450, -1450, -76, 1235, -1450, -1450, -1450, -1450, -1450, + 195, -1450, -1450, -1450, 205, -1450, 711, -1450, -65, -1450, + -1450, -1450, -1450, -1450, -61, -1450, -1450, -1450, -1450, -1450, + -29, -1450, -1450, -1450, 201, -1450, -1450, -1450, 207, -1450, + 709, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, 134, -1450, -1450, -1450, 137, + 747, -1450, -1450, -63, -42, -1450, -13, -1450, -1450, -1450, + -1450, -1450, 138, -1450, -1450, -1450, 142, 744, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -58, -1450, -1450, -1450, 200, + -1450, -1450, -1450, 206, -1450, 737, 500, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1082, -1450, -1450, -1450, -1450, -1450, 210, -1450, + -1450, -1450, -48, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, 194, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 178, + -1450, 183, 179, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -111, -1450, -1450, -131, + -1450, -1450, -1450, -1450, -1450, -99, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -153, -1450, -1450, + -181, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 181, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 538, + 734, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, 576, 736, + -1450, -1450, -1450, -1450, -1450, -1450, 180, -1450, -1450, -52, + -1450, -1450, -1450, -1450, -1450, -1450, -119, -1450, -1450, -148, + -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, -1450, + 190, -1450 }; const short @@ -5981,8 +6043,8 @@ namespace isc { namespace dhcp { { 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 800, 87, 88, 41, 68, 84, 85, 821, 1051, 1170, - 1171, 885, 43, 70, 90, 475, 91, 45, 71, 165, + 800, 87, 88, 41, 68, 84, 85, 821, 1058, 1178, + 1179, 891, 43, 70, 90, 475, 91, 45, 71, 165, 166, 167, 478, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 504, 785, 186, 505, 187, 506, 188, 189, 190, @@ -5990,201 +6052,203 @@ namespace isc { namespace dhcp { 197, 198, 199, 200, 498, 201, 202, 518, 203, 519, 204, 205, 206, 207, 480, 47, 72, 244, 245, 246, 552, 247, 248, 249, 250, 208, 481, 209, 482, 210, - 483, 913, 914, 915, 1091, 886, 887, 888, 1066, 889, - 1067, 890, 1068, 891, 1069, 892, 893, 596, 894, 895, - 896, 897, 898, 899, 900, 901, 902, 1080, 1355, 903, - 904, 905, 906, 1083, 907, 1084, 908, 1085, 909, 1086, - 910, 1087, 211, 530, 948, 949, 950, 1111, 951, 1112, - 212, 527, 934, 935, 936, 937, 213, 529, 942, 943, - 944, 945, 214, 528, 215, 537, 997, 998, 999, 1000, - 1001, 216, 533, 960, 961, 962, 1121, 63, 80, 439, - 440, 441, 611, 442, 612, 217, 534, 969, 970, 971, - 972, 973, 974, 975, 976, 218, 514, 917, 918, 919, - 1094, 49, 73, 297, 298, 299, 561, 300, 562, 301, - 563, 302, 569, 303, 566, 304, 567, 305, 568, 219, - 220, 221, 309, 310, 222, 521, 929, 930, 931, 1103, - 1255, 1256, 223, 515, 57, 77, 921, 922, 923, 1097, - 59, 78, 400, 401, 402, 403, 404, 405, 406, 595, - 407, 599, 408, 598, 409, 410, 600, 411, 224, 516, - 925, 926, 927, 1100, 61, 79, 423, 424, 425, 426, - 427, 604, 428, 429, 430, 431, 432, 433, 608, 312, - 559, 1053, 1054, 1055, 1172, 51, 74, 340, 341, 342, - 573, 343, 225, 522, 226, 523, 315, 560, 1057, 1058, - 1059, 1175, 53, 75, 360, 361, 362, 577, 363, 364, - 579, 365, 366, 227, 532, 956, 957, 958, 1118, 55, - 76, 379, 380, 381, 382, 585, 383, 586, 384, 587, - 385, 588, 386, 589, 387, 590, 388, 591, 389, 584, - 317, 570, 1061, 228, 531, 953, 954, 1115, 1282, 1283, - 1284, 1285, 1286, 1369, 1287, 1370, 1288, 1289, 229, 535, - 986, 987, 988, 1132, 1380, 989, 990, 1133, 991, 992, - 230, 231, 538, 232, 539, 1027, 1028, 1029, 1153, 1017, - 1018, 1019, 1144, 1385, 1020, 1145, 1021, 1146, 1022, 1023, - 1024, 1150, 1421, 1422, 1423, 1436, 1451, 1452, 1453, 1463, - 1025, 1148, 1414, 1415, 1416, 1430, 1459, 1417, 1431, 1418, - 1432, 1419, 1433, 1470, 1471, 1472, 1488, 1506, 1507, 1508, - 1517, 1509, 1518, 233, 540, 1036, 1037, 1038, 1039, 1157, - 1040, 1041, 1159, 234, 541, 65, 81, 454, 455, 456, - 457, 616, 458, 459, 618, 460, 461, 462, 621, 856, - 463, 622, 235, 479, 67, 82, 466, 467, 468, 625, - 469, 236, 547, 1044, 1045, 1163, 1334, 1335, 1336, 1337, - 1395, 1338, 1393, 1456, 1457, 1466, 1480, 1481, 1482, 1492, - 1483, 1484, 1485, 1486, 1496, 237, 548, 1048, 1049, 1050 + 483, 920, 921, 922, 1099, 892, 893, 894, 1073, 895, + 1074, 896, 1075, 897, 1076, 898, 899, 596, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 1087, 1364, 909, + 910, 911, 912, 1090, 913, 1091, 914, 1092, 915, 1093, + 916, 1094, 917, 1095, 211, 530, 955, 956, 957, 1119, + 958, 1120, 212, 527, 941, 942, 943, 944, 213, 529, + 949, 950, 951, 952, 214, 528, 215, 537, 1004, 1005, + 1006, 1007, 1008, 216, 533, 967, 968, 969, 1129, 63, + 80, 439, 440, 441, 611, 442, 612, 217, 534, 976, + 977, 978, 979, 980, 981, 982, 983, 218, 514, 924, + 925, 926, 1102, 49, 73, 297, 298, 299, 561, 300, + 562, 301, 563, 302, 569, 303, 566, 304, 567, 305, + 568, 219, 220, 221, 309, 310, 222, 521, 936, 937, + 938, 1111, 1264, 1265, 223, 515, 57, 77, 928, 929, + 930, 1105, 59, 78, 400, 401, 402, 403, 404, 405, + 406, 595, 407, 599, 408, 598, 409, 410, 600, 411, + 224, 516, 932, 933, 934, 1108, 61, 79, 423, 424, + 425, 426, 427, 604, 428, 429, 430, 431, 432, 433, + 608, 312, 559, 1060, 1061, 1062, 1180, 51, 74, 340, + 341, 342, 573, 343, 225, 522, 226, 523, 315, 560, + 1064, 1065, 1066, 1183, 53, 75, 360, 361, 362, 577, + 363, 364, 579, 365, 366, 227, 532, 963, 964, 965, + 1126, 55, 76, 379, 380, 381, 382, 585, 383, 586, + 384, 587, 385, 588, 386, 589, 387, 590, 388, 591, + 389, 584, 317, 570, 1068, 228, 531, 960, 961, 1123, + 1291, 1292, 1293, 1294, 1295, 1379, 1296, 1380, 1297, 1298, + 229, 535, 993, 994, 995, 1140, 1390, 996, 997, 1141, + 998, 999, 230, 231, 538, 232, 539, 1034, 1035, 1036, + 1161, 1024, 1025, 1026, 1152, 1395, 1027, 1153, 1028, 1154, + 1029, 1030, 1031, 1158, 1431, 1432, 1433, 1446, 1461, 1462, + 1463, 1473, 1032, 1156, 1424, 1425, 1426, 1440, 1469, 1427, + 1441, 1428, 1442, 1429, 1443, 1480, 1481, 1482, 1498, 1516, + 1517, 1518, 1527, 1519, 1528, 233, 540, 1043, 1044, 1045, + 1046, 1165, 1047, 1048, 1167, 234, 541, 65, 81, 454, + 455, 456, 457, 616, 458, 459, 618, 460, 461, 462, + 621, 856, 463, 622, 235, 479, 67, 82, 466, 467, + 468, 625, 469, 236, 547, 1051, 1052, 1171, 1343, 1344, + 1345, 1346, 1405, 1347, 1403, 1466, 1467, 1476, 1490, 1491, + 1492, 1502, 1493, 1494, 1495, 1496, 1506, 237, 548, 1055, + 1056, 1057 }; const short Dhcp6Parser::yytable_[] = { 164, 243, 265, 320, 351, 375, 38, 398, 419, 438, - 451, 1012, 357, 983, 421, 316, 272, 1013, 422, 273, - 1014, 911, 941, 399, 420, 1244, 1245, 1246, 1254, 1260, - 251, 313, 344, 358, 377, 30, 412, 434, 274, 452, - 391, 932, 1046, 799, 311, 339, 356, 376, 31, 86, - 32, 42, 33, 136, 137, 1502, 1503, 163, 275, 252, - 314, 345, 359, 378, 392, 413, 435, 476, 453, 89, - 436, 437, 477, 780, 781, 782, 783, 266, 238, 239, - 240, 241, 242, 550, 557, 267, 1502, 1503, 551, 558, - 129, 136, 137, 279, 321, 268, 280, 322, 392, 977, - 393, 394, 464, 465, 868, 395, 396, 397, 864, 865, - 784, 269, 1407, 1106, 270, 271, 1107, 1109, 281, 323, - 1110, 282, 324, 799, 44, 136, 137, 471, 283, 325, - 1030, 1031, 1032, 284, 326, 335, 352, 571, 933, 285, - 327, 470, 572, 575, 287, 328, 288, 329, 576, 289, - 330, 290, 331, 793, 794, 795, 796, 291, 332, 336, - 353, 163, 582, 292, 333, 46, 1446, 583, 293, 334, - 276, 136, 137, 277, 472, 278, 286, 613, 294, 1033, - 295, 296, 614, 48, 136, 137, 306, 1116, 307, 50, - 1117, 308, 136, 137, 337, 354, 52, 136, 137, 338, + 451, 1019, 357, 990, 421, 316, 272, 1020, 422, 273, + 1021, 918, 948, 399, 420, 1253, 1254, 1255, 1263, 1269, + 251, 313, 344, 358, 377, 391, 412, 434, 274, 452, + 939, 42, 1053, 799, 311, 339, 356, 376, 31, 1512, + 32, 1513, 33, 780, 781, 782, 783, 163, 275, 252, + 314, 345, 359, 378, 30, 413, 435, 86, 453, 44, + 436, 437, 238, 239, 240, 241, 242, 266, 939, 946, + 1512, 947, 1513, 1485, 46, 267, 1486, 1487, 1488, 1489, + 784, 436, 437, 279, 321, 268, 280, 322, 984, 392, + 48, 393, 394, 868, 392, 50, 395, 396, 397, 464, + 465, 269, 476, 1114, 270, 271, 1115, 477, 281, 323, + 550, 282, 324, 799, 89, 551, 136, 137, 283, 325, + 52, 136, 137, 284, 326, 335, 352, 940, 1117, 285, + 327, 1118, 136, 137, 287, 328, 288, 329, 54, 289, + 330, 290, 331, 1417, 1387, 1388, 1389, 291, 332, 336, + 353, 163, 557, 292, 333, 864, 865, 558, 293, 334, + 276, 136, 137, 277, 571, 278, 286, 575, 294, 572, + 295, 296, 576, 1361, 1362, 1363, 306, 582, 307, 136, + 137, 308, 583, 56, 337, 354, 1000, 1001, 1002, 338, 355, 863, 864, 865, 866, 867, 868, 869, 870, 871, - 872, 873, 874, 875, 876, 877, 54, 163, 56, 878, - 879, 880, 881, 882, 883, 884, 963, 964, 965, 966, - 967, 968, 978, 979, 980, 981, 880, 881, 882, 115, - 116, 117, 118, 119, 120, 121, 58, 123, 124, 125, - 126, 163, 60, 623, 130, 627, 550, 392, 624, 392, - 628, 1063, 62, 1499, 1500, 1408, 1409, 1410, 134, 627, - 932, 939, 64, 940, 1064, 318, 136, 137, 34, 35, - 36, 37, 136, 137, 136, 137, 66, 1244, 1245, 1246, - 1254, 1260, 1164, 1467, 473, 1165, 1468, 163, 260, 261, - 262, 136, 137, 557, 1088, 263, 319, 474, 1065, 1089, - 163, 484, 98, 99, 100, 101, 102, 103, 163, 1088, - 1113, 1130, 592, 163, 1090, 1114, 1131, 941, 485, 1137, - 993, 994, 995, 1475, 1138, 1203, 1476, 1477, 1478, 1479, - 983, 130, 1142, 1151, 130, 392, 1160, 1143, 1152, 623, - 1012, 1161, 1012, 486, 1162, 487, 1013, 1167, 1013, 1014, - 1004, 1014, 1168, 1088, 1005, 1006, 1007, 1008, 1361, 136, - 137, 571, 136, 137, 1009, 1010, 1362, 488, 156, 157, - 436, 437, 136, 137, 489, 367, 1327, 490, 1328, 1329, - 491, 1267, 1268, 1269, 1270, 368, 369, 370, 371, 372, - 373, 374, 163, 492, 1365, 593, 613, 603, 163, 1366, - 163, 1376, 163, 493, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 163, 1352, 1353, - 1354, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 1151, 130, 392, 1396, 575, - 1390, 582, 1434, 1397, 1399, 494, 1400, 1435, 132, 133, - 134, 629, 630, 443, 444, 445, 446, 447, 448, 449, - 450, 1464, 854, 855, 136, 137, 1465, 256, 257, 164, - 259, 138, 139, 140, 1497, 594, 243, 495, 1519, 1498, - 260, 261, 262, 1520, 496, 163, 497, 263, 163, 499, - 265, 1377, 1378, 1379, 320, 946, 947, 264, 163, 500, - 501, 351, 502, 316, 272, 251, 503, 273, 507, 357, - 508, 509, 375, 510, 1382, 1383, 1384, 511, 512, 313, - 513, 517, 398, 344, 524, 525, 274, 526, 536, 419, - 358, 544, 311, 545, 252, 421, 339, 546, 399, 422, - 549, 377, 451, 356, 553, 420, 275, 554, 314, 555, - 556, 412, 345, 564, 376, 565, 574, 578, 434, 359, - 156, 157, 580, 581, 597, 266, 601, 605, 606, 602, - 378, 452, 607, 267, 609, 610, 827, 828, 829, 615, - 413, 279, 617, 268, 280, 321, 619, 435, 322, 620, - 163, 835, 836, 837, 838, 626, 631, 632, 633, 269, - 453, 634, 270, 271, 639, 635, 281, 636, 637, 282, - 323, 638, 849, 324, 640, 647, 283, 641, 642, 643, - 325, 284, 644, 645, 646, 326, 335, 285, 653, 659, - 660, 327, 287, 352, 288, 648, 328, 289, 329, 290, - 649, 330, 650, 331, 651, 291, 652, 654, 655, 332, - 336, 292, 656, 657, 658, 333, 293, 353, 276, 661, - 334, 277, 662, 278, 286, 663, 294, 664, 295, 296, - 665, 668, 669, 666, 306, 670, 307, 671, 667, 308, - 672, 130, 673, 674, 675, 337, 676, 677, 678, 679, - 338, 164, 354, 680, 243, 681, 682, 355, 683, 684, - 685, 686, 687, 688, 346, 347, 348, 349, 350, 136, - 137, 689, 392, 414, 393, 394, 415, 416, 417, 690, - 691, 692, 693, 251, 694, 260, 261, 262, 695, 982, - 996, 1011, 263, 319, 451, 696, 697, 698, 1047, 136, - 137, 699, 702, 700, 703, 705, 701, 711, 706, 707, - 712, 859, 252, 713, 708, 418, 714, 717, 984, 1002, - 1015, 709, 1034, 452, 92, 93, 715, 716, 94, 718, - 719, 720, 721, 722, 95, 96, 97, 724, 725, 727, - 728, 729, 733, 730, 731, 734, 735, 985, 1003, 1016, - 736, 1035, 453, 737, 738, 739, 740, 742, 743, 745, - 746, 744, 98, 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, 124, 125, - 126, 127, 128, 129, 130, 163, 747, 748, 750, 754, - 751, 756, 757, 752, 753, 131, 132, 133, 134, 759, - 760, 761, 762, 135, 763, 764, 765, 766, 768, 769, - 771, 857, 136, 137, 772, 163, 773, 774, 775, 138, - 139, 140, 141, 142, 143, 144, 776, 777, 145, 778, - 779, 786, 787, 788, 789, 790, 791, 146, 792, 798, - 32, 801, 802, 803, 804, 816, 147, 805, 806, 148, - 807, 808, 817, 1070, 809, 810, 149, 811, 812, 813, - 814, 818, 815, 820, 150, 151, 819, 822, 823, 152, - 153, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 831, 824, 825, 154, 826, - 830, 832, 155, 833, 834, 839, 840, 841, 842, 843, - 858, 844, 368, 912, 845, 916, 846, 847, 156, 157, - 158, 159, 160, 161, 848, 850, 920, 924, 928, 852, - 853, 952, 162, 955, 959, 1026, 1043, 1052, 1056, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 163, 1081, - 1082, 1093, 1169, 1092, 1096, 1095, 1098, 1099, 1101, 1102, - 1105, 1104, 1185, 1120, 1108, 1119, 1123, 1122, 1124, 1125, - 1126, 1127, 1128, 265, 1129, 1134, 398, 1135, 1136, 419, - 1139, 1140, 1211, 1141, 1147, 421, 316, 272, 1149, 422, - 273, 1154, 399, 1155, 1271, 420, 1218, 375, 1243, 1219, - 438, 1156, 313, 1158, 1166, 412, 1174, 1173, 434, 274, - 1278, 1258, 1176, 1177, 1179, 311, 982, 1178, 1220, 1180, - 1181, 996, 1182, 1280, 1257, 1183, 377, 1184, 1187, 275, - 1011, 314, 1011, 1194, 413, 1186, 1279, 435, 1221, 376, - 1259, 1188, 1330, 1189, 1197, 984, 1047, 1190, 266, 1198, - 1002, 320, 1281, 1195, 351, 378, 267, 1212, 1331, 1015, - 1191, 1015, 357, 1192, 279, 1213, 268, 280, 1034, 1272, - 1199, 1332, 1193, 1225, 985, 1214, 1226, 1273, 1196, 1003, - 344, 1200, 269, 358, 1201, 270, 271, 1274, 1016, 281, - 1016, 1215, 282, 339, 1216, 1217, 356, 1035, 1227, 283, - 1333, 1228, 1264, 1275, 284, 1265, 1276, 1277, 1229, 345, - 285, 1295, 359, 1230, 1247, 287, 1296, 288, 1297, 1231, - 289, 1298, 290, 1299, 1233, 1300, 1234, 1302, 291, 1235, - 1303, 1236, 1304, 1305, 292, 1306, 1308, 1237, 1248, 293, - 1309, 276, 321, 1238, 277, 322, 278, 286, 1239, 294, - 1222, 295, 296, 1223, 1310, 1224, 1232, 306, 1240, 307, - 1241, 1242, 308, 1312, 1313, 1314, 1251, 323, 1252, 1315, - 324, 1253, 1316, 1249, 1318, 1323, 1325, 325, 1250, 1342, - 1324, 1343, 326, 335, 1363, 1364, 352, 1371, 327, 1372, - 1373, 1317, 1374, 328, 1375, 329, 1389, 1348, 330, 1388, - 331, 1394, 1402, 1403, 1349, 1438, 332, 336, 1420, 1424, - 353, 1426, 333, 1322, 1437, 1439, 1340, 334, 1350, 1404, - 1405, 1351, 1356, 1357, 1358, 1441, 1359, 1360, 1367, 1368, - 1381, 1386, 1442, 1387, 1443, 1444, 1455, 1391, 1458, 1398, - 1462, 1425, 337, 1469, 1211, 354, 1428, 338, 1429, 1440, - 355, 1473, 1460, 1271, 1461, 1489, 1490, 1491, 1218, 1493, - 1243, 1219, 1494, 1495, 1511, 1392, 1512, 1411, 1513, 1278, - 1514, 1515, 1521, 1258, 1522, 1330, 1523, 1524, 1526, 1527, - 1220, 704, 1280, 1062, 851, 938, 1257, 860, 1266, 862, - 1204, 1331, 1202, 710, 1262, 1279, 1412, 1311, 1293, 1263, - 1221, 1294, 1259, 1301, 1332, 1206, 1205, 1401, 1207, 758, - 723, 1281, 1261, 1411, 390, 1447, 1208, 749, 755, 1212, - 1210, 1209, 1345, 1344, 1347, 1413, 732, 1213, 1272, 1346, - 1060, 1448, 726, 1333, 1292, 1225, 1273, 1214, 1226, 1406, - 1291, 741, 1412, 1447, 1449, 1307, 1274, 1290, 1321, 1320, - 1319, 1454, 1474, 1215, 1445, 1510, 1216, 1217, 1525, 1448, - 1227, 1326, 1275, 1228, 1042, 1276, 1277, 1501, 767, 861, - 1229, 1413, 1449, 1450, 770, 1230, 1247, 1427, 1487, 1516, - 0, 1231, 0, 1339, 0, 0, 1233, 1341, 1234, 0, - 0, 1235, 0, 1236, 0, 0, 1504, 0, 1501, 1237, - 1248, 1450, 0, 0, 0, 1238, 0, 0, 0, 0, - 1239, 0, 1222, 0, 0, 1223, 0, 1224, 1232, 0, - 1240, 0, 1241, 1242, 0, 1505, 0, 1504, 1251, 0, - 1252, 0, 0, 1253, 0, 1249, 0, 0, 0, 0, - 1250, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 0, 0, 1505, 0, 115, 116, + 872, 873, 874, 875, 876, 877, 58, 854, 855, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 60, 1336, 392, 1337, 1338, 985, 986, 987, + 988, 953, 954, 62, 136, 137, 136, 137, 880, 881, + 882, 130, 163, 613, 623, 136, 137, 163, 614, 624, + 1124, 136, 137, 1125, 627, 392, 64, 66, 163, 628, + 98, 99, 100, 101, 102, 103, 550, 627, 129, 136, + 137, 1070, 1071, 557, 34, 35, 36, 37, 1072, 1253, + 1254, 1255, 1263, 1269, 1096, 367, 1096, 163, 470, 1097, + 471, 1098, 130, 392, 472, 368, 369, 370, 371, 372, + 373, 374, 1418, 1419, 1420, 163, 1121, 1138, 473, 136, + 137, 1122, 1139, 1037, 1038, 1039, 1509, 1510, 1145, 592, + 136, 137, 1150, 1146, 474, 948, 1456, 1151, 827, 828, + 829, 1159, 1168, 1212, 484, 485, 1160, 1169, 990, 1276, + 1277, 1278, 1279, 835, 836, 837, 838, 623, 1019, 486, + 1019, 487, 1170, 1175, 1020, 488, 1020, 1021, 1176, 1021, + 163, 1096, 1040, 489, 849, 571, 1371, 490, 1011, 491, + 1372, 163, 1012, 1013, 1014, 1015, 1375, 163, 492, 613, + 594, 1376, 1016, 1017, 1386, 1392, 1393, 1394, 115, 116, + 117, 118, 119, 120, 121, 163, 123, 124, 125, 126, + 1159, 1406, 575, 130, 582, 1400, 1407, 1409, 163, 1410, + 1444, 1474, 593, 130, 493, 1445, 1475, 134, 970, 971, + 972, 973, 974, 975, 318, 884, 885, 886, 887, 888, + 889, 136, 137, 494, 495, 163, 346, 347, 348, 349, + 350, 136, 137, 496, 497, 1507, 163, 260, 261, 262, + 1508, 629, 630, 499, 263, 319, 1529, 260, 261, 262, + 1172, 1530, 500, 1173, 263, 319, 501, 502, 503, 164, + 793, 794, 795, 796, 1477, 602, 243, 1478, 507, 508, + 509, 510, 511, 512, 513, 517, 524, 525, 526, 536, + 265, 544, 545, 546, 320, 549, 553, 554, 555, 556, + 564, 351, 565, 316, 272, 251, 574, 273, 578, 357, + 580, 581, 375, 597, 601, 603, 609, 605, 606, 313, + 607, 610, 398, 344, 615, 617, 274, 156, 157, 419, + 358, 619, 311, 620, 252, 421, 339, 626, 399, 422, + 631, 377, 451, 356, 632, 420, 275, 633, 314, 634, + 635, 412, 345, 636, 376, 637, 638, 163, 434, 359, + 639, 647, 640, 653, 641, 266, 642, 163, 648, 643, + 378, 452, 659, 267, 644, 645, 646, 660, 649, 650, + 413, 279, 651, 268, 280, 321, 656, 435, 322, 661, + 652, 654, 669, 670, 655, 671, 673, 657, 658, 269, + 453, 662, 270, 271, 663, 668, 281, 664, 665, 282, + 323, 666, 667, 324, 674, 675, 283, 672, 676, 677, + 325, 284, 678, 679, 680, 326, 335, 285, 681, 682, + 683, 327, 287, 352, 288, 684, 328, 289, 329, 290, + 685, 330, 686, 331, 687, 291, 688, 689, 690, 332, + 336, 292, 692, 691, 693, 333, 293, 353, 276, 694, + 334, 277, 695, 278, 286, 696, 294, 697, 295, 296, + 698, 699, 700, 702, 306, 701, 307, 703, 705, 308, + 706, 707, 711, 708, 712, 337, 709, 713, 714, 715, + 338, 164, 354, 716, 243, 718, 717, 355, 719, 720, + 721, 722, 724, 725, 748, 392, 414, 393, 394, 415, + 416, 417, 727, 729, 728, 136, 137, 733, 734, 735, + 736, 737, 738, 251, 739, 740, 742, 743, 730, 989, + 1003, 1018, 136, 137, 451, 745, 746, 747, 1054, 731, + 750, 744, 754, 756, 751, 752, 757, 753, 418, 759, + 760, 859, 252, 761, 762, 765, 766, 763, 991, 1009, + 1022, 764, 1041, 452, 92, 93, 768, 769, 94, 771, + 772, 773, 778, 774, 95, 96, 97, 775, 776, 777, + 779, 788, 786, 787, 789, 790, 798, 992, 1010, 1023, + 32, 1042, 453, 802, 791, 792, 443, 444, 445, 446, + 447, 448, 449, 450, 801, 803, 804, 806, 98, 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, 124, 125, 126, 127, 128, 129, + 130, 163, 805, 807, 808, 816, 817, 809, 810, 811, + 812, 131, 132, 133, 134, 813, 814, 818, 163, 135, + 815, 819, 820, 822, 823, 824, 858, 831, 136, 137, + 825, 826, 919, 830, 832, 138, 139, 140, 141, 142, + 143, 144, 833, 857, 145, 923, 834, 839, 840, 927, + 841, 931, 842, 146, 843, 844, 935, 845, 846, 959, + 847, 848, 147, 850, 962, 148, 852, 966, 853, 1033, + 1050, 1059, 149, 1063, 368, 1077, 1078, 1079, 1080, 1081, + 150, 151, 1082, 1083, 1084, 152, 153, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 1085, 1086, 1088, 154, 1089, 1100, 1101, 155, 1103, + 1104, 1106, 1107, 1110, 1109, 1113, 1193, 1112, 1128, 1116, + 1127, 1131, 1130, 1132, 156, 157, 158, 159, 160, 161, + 1133, 1134, 1135, 1136, 1137, 1142, 1143, 1144, 162, 1147, + 1148, 1149, 1155, 1157, 1163, 1177, 1162, 1164, 1166, 1174, + 1182, 1185, 1181, 1195, 163, 1184, 1188, 1187, 1186, 1189, + 1190, 1191, 1192, 1194, 1202, 1205, 1196, 1206, 1207, 1208, + 1197, 1198, 1209, 1210, 1273, 1274, 1199, 1200, 1311, 1201, + 1312, 265, 1203, 1321, 398, 1322, 1204, 419, 1304, 1305, + 1220, 1306, 1307, 421, 316, 272, 1308, 422, 273, 1309, + 399, 1313, 1280, 420, 1227, 375, 1252, 1228, 438, 1314, + 313, 1315, 1317, 412, 1318, 1319, 434, 274, 1287, 1267, + 1323, 1324, 1325, 311, 989, 1326, 1229, 1327, 1331, 1003, + 1332, 1289, 1266, 1333, 377, 1334, 1349, 275, 1018, 314, + 1018, 1351, 413, 1352, 1288, 435, 1230, 376, 1268, 1357, + 1339, 1373, 1358, 991, 1054, 1374, 266, 1359, 1009, 320, + 1290, 1381, 351, 378, 267, 1221, 1340, 1022, 1360, 1022, + 357, 1365, 279, 1222, 268, 280, 1041, 1281, 1366, 1341, + 1367, 1234, 992, 1223, 1235, 1282, 1368, 1010, 344, 1370, + 269, 358, 1377, 270, 271, 1283, 1023, 281, 1023, 1224, + 282, 339, 1225, 1226, 356, 1042, 1236, 283, 1342, 1237, + 1378, 1284, 284, 1382, 1285, 1286, 1238, 345, 285, 1383, + 359, 1239, 1256, 287, 1384, 288, 1385, 1240, 289, 1391, + 290, 1396, 1242, 1397, 1243, 1398, 291, 1244, 1399, 1245, + 1404, 1412, 292, 1401, 1413, 1246, 1257, 293, 1430, 276, + 321, 1247, 277, 322, 278, 286, 1248, 294, 1231, 295, + 296, 1232, 1408, 1233, 1241, 306, 1249, 307, 1250, 1251, + 308, 1434, 1436, 1448, 1260, 323, 1261, 1447, 324, 1262, + 1449, 1258, 1451, 1452, 1435, 325, 1259, 1453, 1454, 1465, + 326, 335, 1468, 1472, 352, 1483, 327, 1414, 1415, 1438, + 1439, 328, 1479, 329, 1499, 1500, 330, 1450, 331, 1503, + 1504, 1505, 1521, 1470, 332, 336, 1471, 1522, 353, 1501, + 333, 1525, 1523, 1533, 1524, 334, 1531, 1532, 1534, 1536, + 1537, 945, 1069, 1213, 851, 704, 710, 1211, 1369, 1275, + 1271, 1303, 1272, 1320, 1302, 758, 1310, 1215, 1214, 1411, + 337, 1270, 1217, 354, 1220, 338, 860, 862, 355, 723, + 1216, 1219, 390, 1280, 749, 1218, 1354, 1353, 1227, 755, + 1252, 1228, 726, 1356, 1402, 1355, 732, 1421, 1301, 1287, + 741, 1067, 1300, 1267, 1299, 1339, 1416, 1464, 1328, 1316, + 1229, 1330, 1289, 1484, 1329, 1455, 1266, 1520, 1535, 1335, + 861, 1340, 1348, 1049, 1437, 1288, 1422, 767, 1497, 1526, + 1230, 0, 1268, 770, 1341, 1350, 0, 0, 0, 0, + 0, 1290, 0, 1421, 0, 1457, 0, 0, 0, 1221, + 0, 0, 0, 0, 0, 1423, 0, 1222, 1281, 0, + 0, 1458, 0, 1342, 0, 1234, 1282, 1223, 1235, 0, + 0, 0, 1422, 1457, 1459, 0, 1283, 0, 0, 0, + 0, 0, 0, 1224, 0, 0, 1225, 1226, 0, 1458, + 1236, 0, 1284, 1237, 0, 1285, 1286, 1511, 0, 0, + 1238, 1423, 1459, 1460, 0, 1239, 1256, 0, 0, 0, + 0, 1240, 0, 0, 0, 0, 1242, 0, 1243, 0, + 0, 1244, 0, 1245, 0, 0, 1514, 0, 1511, 1246, + 1257, 1460, 0, 0, 0, 1247, 0, 0, 0, 0, + 1248, 0, 1231, 0, 0, 1232, 0, 1233, 1241, 0, + 1249, 0, 1250, 1251, 0, 1515, 0, 1514, 1260, 0, + 1261, 0, 0, 1262, 0, 1258, 0, 0, 0, 0, + 1259, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 0, 0, 1515, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, 134, 0, 0, @@ -6192,16 +6256,26 @@ namespace isc { namespace dhcp { 0, 136, 137, 255, 256, 257, 258, 259, 138, 139, 140, 0, 0, 0, 0, 0, 0, 260, 261, 262, 0, 0, 0, 0, 263, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 264, 0, 0, 0, 0, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 0, 0, 0, 0, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 0, 130, 392, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 132, 133, 134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 136, + 137, 0, 256, 257, 0, 259, 138, 139, 140, 0, + 0, 0, 0, 0, 0, 260, 261, 262, 0, 0, + 0, 0, 263, 0, 0, 0, 0, 163, 0, 0, + 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 157, 0, + 0, 0, 0, 0, 0, 156, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 163 + 0, 0, 0, 0, 0, 163 }; const short @@ -6209,436 +6283,449 @@ namespace isc { namespace dhcp { { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, 81, 812, 75, 810, 79, 73, 73, 812, 79, 73, - 812, 777, 804, 78, 79, 1103, 1103, 1103, 1103, 1103, - 72, 73, 74, 75, 76, 0, 78, 79, 73, 81, - 24, 138, 220, 677, 73, 74, 75, 76, 5, 235, - 7, 7, 9, 109, 110, 1488, 1488, 235, 73, 72, - 73, 74, 75, 76, 82, 78, 79, 3, 81, 10, - 144, 145, 8, 201, 202, 203, 204, 73, 16, 17, - 18, 19, 20, 3, 3, 73, 1519, 1519, 8, 8, - 80, 109, 110, 73, 74, 73, 73, 74, 82, 24, - 84, 85, 13, 14, 29, 89, 90, 91, 25, 26, - 238, 73, 24, 3, 73, 73, 6, 3, 73, 74, - 6, 73, 74, 757, 7, 109, 110, 3, 73, 74, - 186, 187, 188, 73, 74, 74, 75, 3, 235, 73, - 74, 6, 8, 3, 73, 74, 73, 74, 8, 73, - 74, 73, 74, 96, 97, 98, 99, 73, 74, 74, - 75, 235, 3, 73, 74, 7, 184, 8, 73, 74, - 73, 109, 110, 73, 4, 73, 73, 3, 73, 235, - 73, 73, 8, 7, 109, 110, 73, 3, 73, 7, - 6, 73, 109, 110, 74, 75, 7, 109, 110, 74, + 812, 777, 804, 78, 79, 1111, 1111, 1111, 1111, 1111, + 72, 73, 74, 75, 76, 24, 78, 79, 73, 81, + 144, 7, 226, 677, 73, 74, 75, 76, 5, 1498, + 7, 1498, 9, 207, 208, 209, 210, 241, 73, 72, + 73, 74, 75, 76, 0, 78, 79, 241, 81, 7, + 150, 151, 16, 17, 18, 19, 20, 73, 144, 145, + 1529, 147, 1529, 218, 7, 73, 221, 222, 223, 224, + 244, 150, 151, 73, 74, 73, 73, 74, 24, 88, + 7, 90, 91, 29, 88, 7, 95, 96, 97, 13, + 14, 73, 3, 3, 73, 73, 6, 8, 73, 74, + 3, 73, 74, 757, 10, 8, 115, 116, 73, 74, + 7, 115, 116, 73, 74, 74, 75, 241, 3, 73, + 74, 6, 115, 116, 73, 74, 73, 74, 7, 73, + 74, 73, 74, 24, 160, 161, 162, 73, 74, 74, + 75, 241, 3, 73, 74, 25, 26, 8, 73, 74, + 73, 115, 116, 73, 3, 73, 73, 3, 73, 8, + 73, 73, 8, 39, 40, 41, 73, 3, 73, 115, + 116, 73, 8, 7, 74, 75, 169, 170, 171, 74, 75, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 7, 235, 7, 42, - 43, 44, 45, 46, 47, 48, 147, 148, 149, 150, - 151, 152, 157, 158, 159, 160, 44, 45, 46, 66, - 67, 68, 69, 70, 71, 72, 7, 74, 75, 76, - 77, 235, 7, 3, 81, 3, 3, 82, 8, 82, - 8, 8, 7, 180, 181, 177, 178, 179, 95, 3, - 138, 139, 7, 141, 8, 102, 109, 110, 235, 236, - 237, 238, 109, 110, 109, 110, 7, 1365, 1365, 1365, - 1365, 1365, 3, 3, 8, 6, 6, 235, 125, 126, - 127, 109, 110, 3, 3, 132, 133, 3, 8, 8, - 235, 4, 49, 50, 51, 52, 53, 54, 235, 3, - 3, 3, 8, 235, 8, 8, 8, 1109, 4, 3, - 163, 164, 165, 212, 8, 1091, 215, 216, 217, 218, - 1137, 81, 3, 3, 81, 82, 3, 8, 8, 3, - 1151, 8, 1153, 4, 8, 4, 1151, 3, 1153, 1151, - 168, 1153, 8, 3, 172, 173, 174, 175, 8, 109, - 110, 3, 109, 110, 182, 183, 8, 4, 205, 206, - 144, 145, 109, 110, 4, 125, 211, 4, 213, 214, - 4, 128, 129, 130, 131, 135, 136, 137, 138, 139, - 140, 141, 235, 4, 3, 3, 3, 3, 235, 8, - 235, 8, 235, 4, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 235, 39, 40, - 41, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 3, 81, 82, 3, 3, - 8, 3, 3, 8, 8, 4, 8, 8, 93, 94, - 95, 471, 472, 190, 191, 192, 193, 194, 195, 196, - 197, 3, 198, 199, 109, 110, 8, 112, 113, 550, - 115, 116, 117, 118, 3, 8, 557, 4, 3, 8, - 125, 126, 127, 8, 4, 235, 4, 132, 235, 4, - 571, 154, 155, 156, 575, 123, 124, 142, 235, 4, + 33, 34, 35, 36, 37, 38, 7, 204, 205, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 7, 217, 88, 219, 220, 163, 164, 165, + 166, 129, 130, 7, 115, 116, 115, 116, 44, 45, + 46, 87, 241, 3, 3, 115, 116, 241, 8, 8, + 3, 115, 116, 6, 3, 88, 7, 7, 241, 8, + 55, 56, 57, 58, 59, 60, 3, 3, 86, 115, + 116, 8, 8, 3, 241, 242, 243, 244, 8, 1375, + 1375, 1375, 1375, 1375, 3, 131, 3, 241, 6, 8, + 3, 8, 87, 88, 4, 141, 142, 143, 144, 145, + 146, 147, 183, 184, 185, 241, 3, 3, 8, 115, + 116, 8, 8, 192, 193, 194, 186, 187, 3, 8, + 115, 116, 3, 8, 3, 1117, 190, 8, 718, 719, + 720, 3, 3, 1099, 4, 4, 8, 8, 1145, 134, + 135, 136, 137, 733, 734, 735, 736, 3, 1159, 4, + 1161, 4, 8, 3, 1159, 4, 1161, 1159, 8, 1161, + 241, 3, 241, 4, 754, 3, 8, 4, 174, 4, + 8, 241, 178, 179, 180, 181, 3, 241, 4, 3, + 8, 8, 188, 189, 8, 175, 176, 177, 72, 73, + 74, 75, 76, 77, 78, 241, 80, 81, 82, 83, + 3, 3, 3, 87, 3, 8, 8, 8, 241, 8, + 3, 3, 3, 87, 4, 8, 8, 101, 153, 154, + 155, 156, 157, 158, 108, 48, 49, 50, 51, 52, + 53, 115, 116, 4, 4, 241, 110, 111, 112, 113, + 114, 115, 116, 4, 4, 3, 241, 131, 132, 133, + 8, 471, 472, 4, 138, 139, 3, 131, 132, 133, + 3, 8, 4, 6, 138, 139, 4, 4, 4, 550, + 102, 103, 104, 105, 3, 8, 557, 6, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 571, 4, 4, 4, 575, 4, 4, 4, 4, 4, 4, 582, 4, 571, 571, 557, 4, 571, 4, 582, - 4, 4, 593, 4, 169, 170, 171, 4, 4, 571, - 4, 4, 603, 575, 4, 4, 571, 4, 4, 610, + 4, 4, 593, 4, 4, 3, 8, 4, 4, 571, + 4, 3, 603, 575, 4, 4, 571, 211, 212, 610, 582, 4, 571, 4, 557, 610, 575, 4, 603, 610, - 4, 593, 623, 582, 4, 610, 571, 4, 571, 4, - 4, 603, 575, 4, 593, 4, 4, 4, 610, 582, - 205, 206, 4, 4, 4, 571, 4, 4, 4, 8, - 593, 623, 4, 571, 8, 3, 718, 719, 720, 4, - 603, 571, 4, 571, 571, 575, 4, 610, 575, 4, - 235, 733, 734, 735, 736, 4, 235, 4, 4, 571, - 623, 4, 571, 571, 236, 4, 571, 4, 4, 571, - 575, 4, 754, 575, 236, 238, 571, 236, 236, 236, - 575, 571, 236, 236, 236, 575, 575, 571, 4, 4, - 4, 575, 571, 582, 571, 237, 575, 571, 575, 571, - 237, 575, 237, 575, 236, 571, 236, 236, 236, 575, - 575, 571, 238, 238, 238, 575, 571, 582, 571, 4, - 575, 571, 238, 571, 571, 238, 571, 237, 571, 571, - 236, 238, 4, 236, 571, 4, 571, 4, 236, 571, - 236, 81, 4, 4, 4, 575, 4, 4, 4, 238, - 575, 772, 582, 238, 775, 238, 4, 582, 4, 4, - 4, 4, 4, 4, 104, 105, 106, 107, 108, 109, - 110, 4, 82, 83, 84, 85, 86, 87, 88, 4, - 236, 4, 4, 775, 4, 125, 126, 127, 4, 810, - 811, 812, 132, 133, 815, 4, 4, 4, 819, 109, - 110, 238, 4, 238, 4, 4, 238, 4, 238, 238, - 4, 771, 775, 4, 236, 125, 4, 238, 810, 811, - 812, 236, 814, 815, 11, 12, 4, 236, 15, 4, - 4, 4, 4, 4, 21, 22, 23, 4, 236, 4, - 236, 4, 4, 236, 236, 4, 4, 810, 811, 812, - 4, 814, 815, 4, 4, 4, 4, 4, 4, 4, - 4, 236, 49, 50, 51, 52, 53, 54, 55, 56, + 241, 593, 623, 582, 4, 610, 571, 4, 571, 4, + 4, 603, 575, 4, 593, 4, 4, 241, 610, 582, + 242, 244, 242, 4, 242, 571, 242, 241, 243, 242, + 593, 623, 4, 571, 242, 242, 242, 4, 243, 243, + 603, 571, 242, 571, 571, 575, 244, 610, 575, 4, + 242, 242, 4, 4, 242, 4, 4, 244, 244, 571, + 623, 244, 571, 571, 244, 244, 571, 243, 242, 571, + 575, 242, 242, 575, 4, 4, 571, 242, 4, 4, + 575, 571, 4, 244, 244, 575, 575, 571, 244, 4, + 4, 575, 571, 582, 571, 4, 575, 571, 575, 571, + 4, 575, 4, 575, 4, 571, 4, 4, 4, 575, + 575, 571, 4, 242, 4, 575, 571, 582, 571, 4, + 575, 571, 4, 571, 571, 4, 571, 4, 571, 571, + 4, 244, 244, 4, 571, 244, 571, 4, 4, 571, + 244, 244, 4, 242, 4, 575, 242, 4, 4, 4, + 575, 772, 582, 242, 775, 4, 244, 582, 4, 4, + 4, 4, 4, 242, 244, 88, 89, 90, 91, 92, + 93, 94, 4, 4, 242, 115, 116, 4, 4, 4, + 4, 4, 4, 775, 4, 4, 4, 4, 242, 810, + 811, 812, 115, 116, 815, 4, 4, 4, 819, 242, + 4, 242, 4, 4, 244, 244, 4, 244, 131, 244, + 4, 771, 775, 242, 4, 4, 4, 242, 810, 811, + 812, 242, 814, 815, 11, 12, 4, 242, 15, 4, + 7, 241, 5, 7, 21, 22, 23, 7, 7, 7, + 241, 5, 241, 241, 5, 5, 5, 810, 811, 812, + 7, 814, 815, 5, 241, 241, 196, 197, 198, 199, + 200, 201, 202, 203, 241, 5, 5, 5, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 235, 4, 238, 4, 4, - 238, 4, 4, 238, 238, 92, 93, 94, 95, 238, - 4, 236, 4, 100, 236, 236, 4, 4, 4, 236, - 4, 200, 109, 110, 7, 235, 235, 7, 7, 116, - 117, 118, 119, 120, 121, 122, 7, 7, 125, 5, - 235, 235, 235, 5, 5, 5, 235, 134, 235, 5, - 7, 235, 5, 5, 5, 235, 143, 7, 5, 146, - 5, 5, 235, 4, 7, 7, 153, 7, 7, 5, - 7, 5, 7, 5, 161, 162, 7, 5, 5, 166, - 167, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 7, 235, 235, 185, 235, - 235, 235, 189, 235, 235, 235, 235, 235, 235, 235, - 5, 235, 135, 7, 235, 7, 235, 235, 205, 206, - 207, 208, 209, 210, 235, 235, 7, 7, 7, 235, - 235, 7, 219, 7, 7, 7, 7, 7, 7, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 235, 4, - 4, 3, 235, 6, 3, 6, 6, 3, 6, 3, - 3, 6, 238, 3, 6, 6, 3, 6, 4, 4, - 4, 4, 4, 1094, 4, 4, 1097, 4, 4, 1100, - 4, 4, 1103, 4, 4, 1100, 1094, 1094, 4, 1100, - 1094, 6, 1097, 3, 1115, 1100, 1103, 1118, 1103, 1103, - 1121, 4, 1094, 4, 4, 1097, 3, 6, 1100, 1094, - 1115, 1103, 6, 3, 6, 1094, 1137, 8, 1103, 4, - 4, 1142, 4, 1115, 1103, 4, 1118, 236, 238, 1094, - 1151, 1094, 1153, 4, 1097, 236, 1115, 1100, 1103, 1118, - 1103, 236, 1163, 236, 4, 1137, 1167, 236, 1094, 4, - 1142, 1172, 1115, 238, 1175, 1118, 1094, 1103, 1163, 1151, - 236, 1153, 1175, 236, 1094, 1103, 1094, 1094, 1160, 1115, - 4, 1163, 236, 1103, 1137, 1103, 1103, 1115, 236, 1142, - 1172, 4, 1094, 1175, 4, 1094, 1094, 1115, 1151, 1094, - 1153, 1103, 1094, 1172, 1103, 1103, 1175, 1160, 1103, 1094, - 1163, 1103, 4, 1115, 1094, 4, 1115, 1115, 1103, 1172, - 1094, 236, 1175, 1103, 1103, 1094, 236, 1094, 236, 1103, - 1094, 236, 1094, 236, 1103, 236, 1103, 4, 1094, 1103, - 4, 1103, 236, 236, 1094, 236, 238, 1103, 1103, 1094, - 236, 1094, 1172, 1103, 1094, 1172, 1094, 1094, 1103, 1094, - 1103, 1094, 1094, 1103, 236, 1103, 1103, 1094, 1103, 1094, - 1103, 1103, 1094, 4, 4, 4, 1103, 1172, 1103, 236, - 1172, 1103, 4, 1103, 4, 4, 4, 1172, 1103, 6, - 236, 3, 1172, 1172, 8, 8, 1175, 4, 1172, 4, - 8, 238, 3, 1172, 8, 1172, 5, 235, 1172, 7, - 1172, 4, 4, 4, 235, 3, 1172, 1172, 7, 4, - 1175, 4, 1172, 238, 6, 5, 238, 1172, 235, 238, - 238, 235, 235, 235, 235, 4, 235, 235, 235, 235, - 235, 235, 4, 235, 4, 4, 7, 235, 176, 235, - 5, 236, 1172, 7, 1365, 1175, 235, 1172, 235, 235, - 1175, 4, 235, 1374, 235, 6, 3, 235, 1365, 4, - 1365, 1365, 4, 4, 4, 1325, 238, 1388, 236, 1374, - 236, 4, 235, 1365, 235, 1396, 4, 4, 235, 235, - 1365, 550, 1374, 858, 757, 803, 1365, 772, 1113, 775, - 1093, 1396, 1088, 557, 1106, 1374, 1388, 1142, 1121, 1109, - 1365, 1123, 1365, 1130, 1396, 1096, 1094, 1365, 1097, 613, - 571, 1374, 1105, 1434, 77, 1436, 1099, 603, 610, 1365, - 1102, 1100, 1174, 1172, 1177, 1388, 582, 1365, 1374, 1175, - 831, 1436, 575, 1396, 1120, 1365, 1374, 1365, 1365, 1374, - 1118, 593, 1434, 1464, 1436, 1137, 1374, 1116, 1155, 1153, - 1151, 1438, 1464, 1365, 1434, 1490, 1365, 1365, 1519, 1464, - 1365, 1160, 1374, 1365, 815, 1374, 1374, 1488, 623, 774, - 1365, 1434, 1464, 1436, 627, 1365, 1365, 1396, 1467, 1497, - -1, 1365, -1, 1164, -1, -1, 1365, 1167, 1365, -1, - -1, 1365, -1, 1365, -1, -1, 1488, -1, 1519, 1365, - 1365, 1464, -1, -1, -1, 1365, -1, -1, -1, -1, - 1365, -1, 1365, -1, -1, 1365, -1, 1365, 1365, -1, - 1365, -1, 1365, 1365, -1, 1488, -1, 1519, 1365, -1, - 1365, -1, -1, 1365, -1, 1365, -1, -1, -1, -1, - 1365, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, -1, -1, 1519, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, - -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, - -1, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, -1, -1, -1, -1, -1, 125, 126, 127, - -1, -1, -1, -1, 132, -1, 134, -1, -1, -1, - -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 241, 7, 5, 5, 241, 241, 7, 7, 7, + 7, 98, 99, 100, 101, 5, 7, 5, 241, 106, + 7, 7, 5, 5, 5, 241, 5, 7, 115, 116, + 241, 241, 7, 241, 241, 122, 123, 124, 125, 126, + 127, 128, 241, 206, 131, 7, 241, 241, 241, 7, + 241, 7, 241, 140, 241, 241, 7, 241, 241, 7, + 241, 241, 149, 241, 7, 152, 241, 7, 241, 7, + 7, 7, 159, 7, 141, 4, 4, 4, 4, 4, + 167, 168, 4, 4, 4, 172, 173, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 4, 4, 4, 191, 4, 6, 3, 195, 6, + 3, 6, 3, 3, 6, 3, 244, 6, 3, 6, + 6, 3, 6, 4, 211, 212, 213, 214, 215, 216, + 4, 4, 4, 4, 4, 4, 4, 4, 225, 4, + 4, 4, 4, 4, 3, 241, 6, 4, 4, 4, + 3, 3, 6, 244, 241, 6, 4, 6, 8, 4, + 4, 4, 242, 242, 4, 4, 242, 4, 4, 4, + 242, 242, 4, 4, 4, 4, 242, 242, 4, 242, + 4, 1102, 244, 4, 1105, 4, 242, 1108, 242, 242, + 1111, 242, 242, 1108, 1102, 1102, 242, 1108, 1102, 242, + 1105, 242, 1123, 1108, 1111, 1126, 1111, 1111, 1129, 242, + 1102, 242, 244, 1105, 242, 242, 1108, 1102, 1123, 1111, + 4, 242, 4, 1102, 1145, 244, 1111, 4, 244, 1150, + 4, 1123, 1111, 242, 1126, 4, 244, 1102, 1159, 1102, + 1161, 6, 1105, 3, 1123, 1108, 1111, 1126, 1111, 241, + 1171, 8, 241, 1145, 1175, 8, 1102, 241, 1150, 1180, + 1123, 4, 1183, 1126, 1102, 1111, 1171, 1159, 241, 1161, + 1183, 241, 1102, 1111, 1102, 1102, 1168, 1123, 241, 1171, + 241, 1111, 1145, 1111, 1111, 1123, 241, 1150, 1180, 241, + 1102, 1183, 241, 1102, 1102, 1123, 1159, 1102, 1161, 1111, + 1102, 1180, 1111, 1111, 1183, 1168, 1111, 1102, 1171, 1111, + 241, 1123, 1102, 4, 1123, 1123, 1111, 1180, 1102, 8, + 1183, 1111, 1111, 1102, 3, 1102, 8, 1111, 1102, 241, + 1102, 241, 1111, 241, 1111, 7, 1102, 1111, 5, 1111, + 4, 4, 1102, 241, 4, 1111, 1111, 1102, 7, 1102, + 1180, 1111, 1102, 1180, 1102, 1102, 1111, 1102, 1111, 1102, + 1102, 1111, 241, 1111, 1111, 1102, 1111, 1102, 1111, 1111, + 1102, 4, 4, 3, 1111, 1180, 1111, 6, 1180, 1111, + 5, 1111, 4, 4, 242, 1180, 1111, 4, 4, 7, + 1180, 1180, 182, 5, 1183, 4, 1180, 244, 244, 241, + 241, 1180, 7, 1180, 6, 3, 1180, 241, 1180, 4, + 4, 4, 4, 241, 1180, 1180, 241, 244, 1183, 241, + 1180, 4, 242, 4, 242, 1180, 241, 241, 4, 241, + 241, 803, 858, 1101, 757, 550, 557, 1096, 1209, 1121, + 1114, 1131, 1117, 1150, 1129, 613, 1138, 1104, 1102, 1375, + 1180, 1113, 1107, 1183, 1375, 1180, 772, 775, 1183, 571, + 1105, 1110, 77, 1384, 603, 1108, 1182, 1180, 1375, 610, + 1375, 1375, 575, 1185, 1334, 1183, 582, 1398, 1128, 1384, + 593, 831, 1126, 1375, 1124, 1406, 1384, 1448, 1159, 1145, + 1375, 1163, 1384, 1474, 1161, 1444, 1375, 1500, 1529, 1168, + 774, 1406, 1172, 815, 1406, 1384, 1398, 623, 1477, 1507, + 1375, -1, 1375, 627, 1406, 1175, -1, -1, -1, -1, + -1, 1384, -1, 1444, -1, 1446, -1, -1, -1, 1375, + -1, -1, -1, -1, -1, 1398, -1, 1375, 1384, -1, + -1, 1446, -1, 1406, -1, 1375, 1384, 1375, 1375, -1, + -1, -1, 1444, 1474, 1446, -1, 1384, -1, -1, -1, + -1, -1, -1, 1375, -1, -1, 1375, 1375, -1, 1474, + 1375, -1, 1384, 1375, -1, 1384, 1384, 1498, -1, -1, + 1375, 1444, 1474, 1446, -1, 1375, 1375, -1, -1, -1, + -1, 1375, -1, -1, -1, -1, 1375, -1, 1375, -1, + -1, 1375, -1, 1375, -1, -1, 1498, -1, 1529, 1375, + 1375, 1474, -1, -1, -1, 1375, -1, -1, -1, -1, + 1375, -1, 1375, -1, -1, 1375, -1, 1375, 1375, -1, + 1375, -1, 1375, 1375, -1, 1498, -1, 1529, 1375, -1, + 1375, -1, -1, 1375, -1, 1375, -1, -1, -1, -1, + 1375, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, -1, -1, 1529, -1, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, -1, -1, 87, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 99, 100, 101, -1, -1, + -1, -1, -1, 107, -1, 109, -1, -1, -1, -1, + -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, -1, 131, 132, 133, + -1, -1, -1, -1, 138, -1, 140, -1, -1, -1, + -1, -1, -1, -1, 148, -1, -1, -1, -1, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 99, 100, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, 115, + 116, -1, 118, 119, -1, 121, 122, 123, 124, -1, + -1, -1, -1, -1, -1, 131, 132, 133, -1, -1, + -1, -1, 138, -1, -1, -1, -1, 241, -1, -1, + -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 205, 206, -1, + -1, -1, -1, -1, -1, 211, 212, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 235 + -1, -1, -1, -1, -1, 241 }; const short Dhcp6Parser::yystos_[] = { - 0, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 0, 5, 7, 9, 235, 236, 237, 238, 255, 256, - 257, 262, 7, 271, 7, 276, 7, 334, 7, 450, - 7, 534, 7, 551, 7, 568, 7, 483, 7, 489, - 7, 513, 7, 426, 7, 684, 7, 703, 263, 258, - 272, 277, 335, 451, 535, 552, 569, 484, 490, 514, - 427, 685, 704, 255, 264, 265, 235, 260, 261, 10, - 273, 275, 11, 12, 15, 21, 22, 23, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 92, 93, 94, 95, 100, 109, 110, 116, 117, - 118, 119, 120, 121, 122, 125, 134, 143, 146, 153, - 161, 162, 166, 167, 185, 189, 205, 206, 207, 208, - 209, 210, 219, 235, 270, 278, 279, 280, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 302, 304, 306, 307, - 308, 311, 312, 313, 314, 315, 317, 319, 320, 321, - 322, 324, 325, 327, 329, 330, 331, 332, 344, 346, - 348, 391, 399, 405, 411, 413, 420, 434, 444, 468, - 469, 470, 473, 481, 507, 541, 543, 562, 592, 607, - 619, 620, 622, 672, 682, 701, 710, 734, 16, 17, - 18, 19, 20, 270, 336, 337, 338, 340, 341, 342, - 343, 541, 543, 101, 103, 111, 112, 113, 114, 115, - 125, 126, 127, 132, 142, 270, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, - 297, 298, 299, 302, 304, 306, 307, 308, 311, 312, - 313, 314, 315, 317, 319, 325, 327, 452, 453, 454, - 456, 458, 460, 462, 464, 466, 468, 469, 470, 471, - 472, 507, 528, 541, 543, 545, 562, 589, 102, 133, - 270, 296, 297, 298, 299, 302, 304, 306, 308, 311, - 312, 313, 314, 315, 317, 460, 462, 464, 466, 507, - 536, 537, 538, 540, 541, 543, 104, 105, 106, 107, - 108, 270, 460, 462, 464, 466, 507, 540, 541, 543, - 553, 554, 555, 557, 558, 560, 561, 125, 135, 136, - 137, 138, 139, 140, 141, 270, 507, 541, 543, 570, - 571, 572, 573, 575, 577, 579, 581, 583, 585, 587, - 481, 24, 82, 84, 85, 89, 90, 91, 270, 365, - 491, 492, 493, 494, 495, 496, 497, 499, 501, 503, - 504, 506, 541, 543, 83, 86, 87, 88, 125, 270, - 365, 495, 501, 515, 516, 517, 518, 519, 521, 522, - 523, 524, 525, 526, 541, 543, 144, 145, 270, 428, - 429, 430, 432, 190, 191, 192, 193, 194, 195, 196, - 197, 270, 541, 543, 686, 687, 688, 689, 691, 692, - 694, 695, 696, 699, 13, 14, 705, 706, 707, 709, - 6, 3, 4, 8, 3, 274, 3, 8, 281, 702, - 333, 345, 347, 349, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 323, 4, - 4, 4, 4, 4, 300, 303, 305, 4, 4, 4, - 4, 4, 4, 4, 445, 482, 508, 4, 326, 328, - 309, 474, 542, 544, 4, 4, 4, 400, 412, 406, - 392, 593, 563, 421, 435, 608, 4, 414, 621, 623, - 673, 683, 316, 318, 4, 4, 4, 711, 735, 4, - 3, 8, 339, 4, 4, 4, 4, 3, 8, 529, - 546, 455, 457, 459, 4, 4, 463, 465, 467, 461, - 590, 3, 8, 539, 4, 3, 8, 556, 4, 559, - 4, 4, 3, 8, 588, 574, 576, 578, 580, 582, - 584, 586, 8, 3, 8, 498, 366, 4, 502, 500, - 505, 4, 8, 3, 520, 4, 4, 4, 527, 8, - 3, 431, 433, 3, 8, 4, 690, 4, 693, 4, - 4, 697, 700, 3, 8, 708, 4, 3, 8, 255, - 255, 235, 4, 4, 4, 4, 4, 4, 4, 236, - 236, 236, 236, 236, 236, 236, 236, 238, 237, 237, - 237, 236, 236, 4, 236, 236, 238, 238, 238, 4, - 4, 4, 238, 238, 237, 236, 236, 236, 238, 4, - 4, 4, 236, 4, 4, 4, 4, 4, 4, 238, - 238, 238, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 236, 4, 4, 4, 4, 4, 4, 4, 238, - 238, 238, 4, 4, 279, 4, 238, 238, 236, 236, - 337, 4, 4, 4, 4, 4, 236, 238, 4, 4, - 4, 4, 4, 453, 4, 236, 537, 4, 236, 4, - 236, 236, 554, 4, 4, 4, 4, 4, 4, 4, - 4, 572, 4, 4, 236, 4, 4, 4, 238, 493, - 4, 238, 238, 238, 4, 517, 4, 4, 429, 238, - 4, 236, 4, 236, 236, 4, 4, 687, 4, 236, - 706, 4, 7, 235, 7, 7, 7, 7, 5, 235, - 201, 202, 203, 204, 238, 301, 235, 235, 5, 5, - 5, 235, 235, 96, 97, 98, 99, 310, 5, 257, - 259, 235, 5, 5, 5, 7, 5, 5, 5, 7, - 7, 7, 7, 5, 7, 7, 235, 235, 5, 7, - 5, 266, 5, 5, 235, 235, 235, 266, 266, 266, - 235, 7, 235, 235, 235, 266, 266, 266, 266, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 266, - 235, 259, 235, 235, 198, 199, 698, 200, 5, 255, - 278, 705, 336, 24, 25, 26, 27, 28, 29, 30, + 0, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 0, 5, 7, 9, 241, 242, 243, 244, 261, 262, + 263, 268, 7, 277, 7, 282, 7, 340, 7, 458, + 7, 542, 7, 559, 7, 576, 7, 491, 7, 497, + 7, 521, 7, 434, 7, 692, 7, 711, 269, 264, + 278, 283, 341, 459, 543, 560, 577, 492, 498, 522, + 435, 693, 712, 261, 270, 271, 241, 266, 267, 10, + 279, 281, 11, 12, 15, 21, 22, 23, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 98, 99, 100, 101, 106, 115, 116, 122, 123, + 124, 125, 126, 127, 128, 131, 140, 149, 152, 159, + 167, 168, 172, 173, 191, 195, 211, 212, 213, 214, + 215, 216, 225, 241, 276, 284, 285, 286, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 308, 310, 312, 313, + 314, 317, 318, 319, 320, 321, 323, 325, 326, 327, + 328, 330, 331, 333, 335, 336, 337, 338, 350, 352, + 354, 399, 407, 413, 419, 421, 428, 442, 452, 476, + 477, 478, 481, 489, 515, 549, 551, 570, 600, 615, + 627, 628, 630, 680, 690, 709, 718, 742, 16, 17, + 18, 19, 20, 276, 342, 343, 344, 346, 347, 348, + 349, 549, 551, 107, 109, 117, 118, 119, 120, 121, + 131, 132, 133, 138, 148, 276, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 302, + 303, 304, 305, 308, 310, 312, 313, 314, 317, 318, + 319, 320, 321, 323, 325, 331, 333, 460, 461, 462, + 464, 466, 468, 470, 472, 474, 476, 477, 478, 479, + 480, 515, 536, 549, 551, 553, 570, 597, 108, 139, + 276, 302, 303, 304, 305, 308, 310, 312, 314, 317, + 318, 319, 320, 321, 323, 468, 470, 472, 474, 515, + 544, 545, 546, 548, 549, 551, 110, 111, 112, 113, + 114, 276, 468, 470, 472, 474, 515, 548, 549, 551, + 561, 562, 563, 565, 566, 568, 569, 131, 141, 142, + 143, 144, 145, 146, 147, 276, 515, 549, 551, 578, + 579, 580, 581, 583, 585, 587, 589, 591, 593, 595, + 489, 24, 88, 90, 91, 95, 96, 97, 276, 371, + 499, 500, 501, 502, 503, 504, 505, 507, 509, 511, + 512, 514, 549, 551, 89, 92, 93, 94, 131, 276, + 371, 503, 509, 523, 524, 525, 526, 527, 529, 530, + 531, 532, 533, 534, 549, 551, 150, 151, 276, 436, + 437, 438, 440, 196, 197, 198, 199, 200, 201, 202, + 203, 276, 549, 551, 694, 695, 696, 697, 699, 700, + 702, 703, 704, 707, 13, 14, 713, 714, 715, 717, + 6, 3, 4, 8, 3, 280, 3, 8, 287, 710, + 339, 351, 353, 355, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 329, 4, + 4, 4, 4, 4, 306, 309, 311, 4, 4, 4, + 4, 4, 4, 4, 453, 490, 516, 4, 332, 334, + 315, 482, 550, 552, 4, 4, 4, 408, 420, 414, + 400, 601, 571, 429, 443, 616, 4, 422, 629, 631, + 681, 691, 322, 324, 4, 4, 4, 719, 743, 4, + 3, 8, 345, 4, 4, 4, 4, 3, 8, 537, + 554, 463, 465, 467, 4, 4, 471, 473, 475, 469, + 598, 3, 8, 547, 4, 3, 8, 564, 4, 567, + 4, 4, 3, 8, 596, 582, 584, 586, 588, 590, + 592, 594, 8, 3, 8, 506, 372, 4, 510, 508, + 513, 4, 8, 3, 528, 4, 4, 4, 535, 8, + 3, 439, 441, 3, 8, 4, 698, 4, 701, 4, + 4, 705, 708, 3, 8, 716, 4, 3, 8, 261, + 261, 241, 4, 4, 4, 4, 4, 4, 4, 242, + 242, 242, 242, 242, 242, 242, 242, 244, 243, 243, + 243, 242, 242, 4, 242, 242, 244, 244, 244, 4, + 4, 4, 244, 244, 243, 242, 242, 242, 244, 4, + 4, 4, 242, 4, 4, 4, 4, 4, 4, 244, + 244, 244, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 242, 4, 4, 4, 4, 4, 4, 4, 244, + 244, 244, 4, 4, 285, 4, 244, 244, 242, 242, + 343, 4, 4, 4, 4, 4, 242, 244, 4, 4, + 4, 4, 4, 461, 4, 242, 545, 4, 242, 4, + 242, 242, 562, 4, 4, 4, 4, 4, 4, 4, + 4, 580, 4, 4, 242, 4, 4, 4, 244, 501, + 4, 244, 244, 244, 4, 525, 4, 4, 437, 244, + 4, 242, 4, 242, 242, 4, 4, 695, 4, 242, + 714, 4, 7, 241, 7, 7, 7, 7, 5, 241, + 207, 208, 209, 210, 244, 307, 241, 241, 5, 5, + 5, 241, 241, 102, 103, 104, 105, 316, 5, 263, + 265, 241, 5, 5, 5, 7, 5, 5, 5, 7, + 7, 7, 7, 5, 7, 7, 241, 241, 5, 7, + 5, 272, 5, 5, 241, 241, 241, 272, 272, 272, + 241, 7, 241, 241, 241, 272, 272, 272, 272, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 272, + 241, 265, 241, 241, 204, 205, 706, 206, 5, 261, + 284, 713, 342, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 42, 43, - 44, 45, 46, 47, 48, 270, 354, 355, 356, 358, - 360, 362, 364, 365, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 378, 379, 380, 381, 383, 385, 387, - 389, 354, 7, 350, 351, 352, 7, 446, 447, 448, - 7, 485, 486, 487, 7, 509, 510, 511, 7, 475, - 476, 477, 138, 235, 401, 402, 403, 404, 264, 139, - 141, 403, 407, 408, 409, 410, 123, 124, 393, 394, - 395, 397, 7, 594, 595, 7, 564, 565, 566, 7, - 422, 423, 424, 147, 148, 149, 150, 151, 152, 436, - 437, 438, 439, 440, 441, 442, 443, 24, 157, 158, - 159, 160, 270, 367, 541, 543, 609, 610, 611, 614, - 615, 617, 618, 163, 164, 165, 270, 415, 416, 417, - 418, 419, 541, 543, 168, 172, 173, 174, 175, 182, - 183, 270, 381, 383, 385, 541, 543, 628, 629, 630, - 633, 635, 637, 638, 639, 649, 7, 624, 625, 626, - 186, 187, 188, 235, 541, 543, 674, 675, 676, 677, - 679, 680, 686, 7, 712, 713, 220, 270, 736, 737, - 738, 267, 7, 530, 531, 532, 7, 547, 548, 549, - 573, 591, 350, 8, 8, 8, 357, 359, 361, 363, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 376, 4, 4, 382, 384, 386, 388, 390, 3, 8, - 8, 353, 6, 3, 449, 6, 3, 488, 6, 3, - 512, 6, 3, 478, 6, 3, 3, 6, 6, 3, - 6, 396, 398, 3, 8, 596, 3, 6, 567, 6, - 3, 425, 6, 3, 4, 4, 4, 4, 4, 4, - 3, 8, 612, 616, 4, 4, 4, 3, 8, 4, - 4, 4, 3, 8, 631, 634, 636, 4, 650, 4, - 640, 3, 8, 627, 6, 3, 4, 678, 4, 681, - 3, 8, 8, 714, 3, 6, 4, 3, 8, 235, - 268, 269, 533, 6, 3, 550, 6, 3, 8, 6, - 4, 4, 4, 4, 236, 238, 236, 238, 236, 236, - 236, 236, 236, 236, 4, 238, 236, 4, 4, 4, - 4, 4, 355, 354, 352, 452, 448, 491, 487, 515, - 511, 270, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 296, 297, 298, 299, 302, - 304, 306, 307, 308, 311, 312, 313, 314, 315, 317, - 319, 325, 327, 365, 444, 456, 458, 460, 462, 464, - 466, 468, 469, 470, 472, 479, 480, 507, 541, 543, - 589, 477, 402, 408, 4, 4, 394, 128, 129, 130, - 131, 270, 282, 283, 284, 285, 286, 287, 365, 507, - 541, 543, 597, 598, 599, 600, 601, 603, 605, 606, - 595, 570, 566, 428, 424, 236, 236, 236, 236, 236, - 236, 437, 4, 4, 236, 236, 236, 610, 238, 236, - 236, 416, 4, 4, 4, 236, 4, 238, 4, 629, - 628, 626, 238, 4, 236, 4, 675, 211, 213, 214, - 270, 365, 541, 543, 715, 716, 717, 718, 720, 713, - 238, 737, 6, 3, 536, 532, 553, 549, 235, 235, - 235, 235, 39, 40, 41, 377, 235, 235, 235, 235, - 235, 8, 8, 8, 8, 3, 8, 235, 235, 602, - 604, 4, 4, 8, 3, 8, 8, 154, 155, 156, - 613, 235, 169, 170, 171, 632, 235, 235, 7, 5, - 8, 235, 255, 721, 4, 719, 3, 8, 235, 8, - 8, 480, 4, 4, 238, 238, 599, 24, 177, 178, - 179, 270, 541, 543, 651, 652, 653, 656, 658, 660, - 7, 641, 642, 643, 4, 236, 4, 716, 235, 235, - 654, 657, 659, 661, 3, 8, 644, 6, 3, 5, - 235, 4, 4, 4, 4, 652, 184, 270, 365, 541, - 543, 645, 646, 647, 643, 7, 722, 723, 176, 655, - 235, 235, 5, 648, 3, 8, 724, 3, 6, 7, - 662, 663, 664, 4, 646, 212, 215, 216, 217, 218, - 725, 726, 727, 729, 730, 731, 732, 723, 665, 6, - 3, 235, 728, 4, 4, 4, 733, 3, 8, 180, - 181, 270, 358, 360, 541, 543, 666, 667, 668, 670, - 664, 4, 238, 236, 236, 4, 726, 669, 671, 3, - 8, 235, 235, 4, 4, 667, 235, 235 + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 276, 360, 361, 362, 364, 366, 368, 370, 371, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 384, + 385, 386, 387, 389, 391, 393, 395, 397, 360, 7, + 356, 357, 358, 7, 454, 455, 456, 7, 493, 494, + 495, 7, 517, 518, 519, 7, 483, 484, 485, 144, + 241, 409, 410, 411, 412, 270, 145, 147, 411, 415, + 416, 417, 418, 129, 130, 401, 402, 403, 405, 7, + 602, 603, 7, 572, 573, 574, 7, 430, 431, 432, + 153, 154, 155, 156, 157, 158, 444, 445, 446, 447, + 448, 449, 450, 451, 24, 163, 164, 165, 166, 276, + 373, 549, 551, 617, 618, 619, 622, 623, 625, 626, + 169, 170, 171, 276, 423, 424, 425, 426, 427, 549, + 551, 174, 178, 179, 180, 181, 188, 189, 276, 387, + 389, 391, 549, 551, 636, 637, 638, 641, 643, 645, + 646, 647, 657, 7, 632, 633, 634, 192, 193, 194, + 241, 549, 551, 682, 683, 684, 685, 687, 688, 694, + 7, 720, 721, 226, 276, 744, 745, 746, 273, 7, + 538, 539, 540, 7, 555, 556, 557, 581, 599, 356, + 8, 8, 8, 363, 365, 367, 369, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 382, 4, 4, + 388, 390, 392, 394, 396, 398, 3, 8, 8, 359, + 6, 3, 457, 6, 3, 496, 6, 3, 520, 6, + 3, 486, 6, 3, 3, 6, 6, 3, 6, 404, + 406, 3, 8, 604, 3, 6, 575, 6, 3, 433, + 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, + 620, 624, 4, 4, 4, 3, 8, 4, 4, 4, + 3, 8, 639, 642, 644, 4, 658, 4, 648, 3, + 8, 635, 6, 3, 4, 686, 4, 689, 3, 8, + 8, 722, 3, 6, 4, 3, 8, 241, 274, 275, + 541, 6, 3, 558, 6, 3, 8, 6, 4, 4, + 4, 4, 242, 244, 242, 244, 242, 242, 242, 242, + 242, 242, 4, 244, 242, 4, 4, 4, 4, 4, + 4, 361, 360, 358, 460, 456, 499, 495, 523, 519, + 276, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 302, 303, 304, 305, 308, 310, + 312, 313, 314, 317, 318, 319, 320, 321, 323, 325, + 331, 333, 371, 452, 464, 466, 468, 470, 472, 474, + 476, 477, 478, 480, 487, 488, 515, 549, 551, 597, + 485, 410, 416, 4, 4, 402, 134, 135, 136, 137, + 276, 288, 289, 290, 291, 292, 293, 371, 515, 549, + 551, 605, 606, 607, 608, 609, 611, 613, 614, 603, + 578, 574, 436, 432, 242, 242, 242, 242, 242, 242, + 445, 4, 4, 242, 242, 242, 618, 244, 242, 242, + 424, 4, 4, 4, 242, 4, 244, 4, 637, 636, + 634, 244, 4, 242, 4, 683, 217, 219, 220, 276, + 371, 549, 551, 723, 724, 725, 726, 728, 721, 244, + 745, 6, 3, 544, 540, 561, 557, 241, 241, 241, + 241, 39, 40, 41, 383, 241, 241, 241, 241, 395, + 241, 8, 8, 8, 8, 3, 8, 241, 241, 610, + 612, 4, 4, 8, 3, 8, 8, 160, 161, 162, + 621, 241, 175, 176, 177, 640, 241, 241, 7, 5, + 8, 241, 261, 729, 4, 727, 3, 8, 241, 8, + 8, 488, 4, 4, 244, 244, 607, 24, 183, 184, + 185, 276, 549, 551, 659, 660, 661, 664, 666, 668, + 7, 649, 650, 651, 4, 242, 4, 724, 241, 241, + 662, 665, 667, 669, 3, 8, 652, 6, 3, 5, + 241, 4, 4, 4, 4, 660, 190, 276, 371, 549, + 551, 653, 654, 655, 651, 7, 730, 731, 182, 663, + 241, 241, 5, 656, 3, 8, 732, 3, 6, 7, + 670, 671, 672, 4, 654, 218, 221, 222, 223, 224, + 733, 734, 735, 737, 738, 739, 740, 731, 673, 6, + 3, 241, 736, 4, 4, 4, 741, 3, 8, 186, + 187, 276, 364, 366, 549, 551, 674, 675, 676, 678, + 672, 4, 244, 242, 242, 4, 734, 677, 679, 3, + 8, 241, 241, 4, 4, 675, 241, 241 }; const short Dhcp6Parser::yyr1_[] = { - 0, 239, 241, 240, 242, 240, 243, 240, 244, 240, - 245, 240, 246, 240, 247, 240, 248, 240, 249, 240, - 250, 240, 251, 240, 252, 240, 253, 240, 254, 240, - 255, 255, 255, 255, 255, 255, 255, 256, 258, 257, - 259, 260, 260, 261, 261, 261, 263, 262, 264, 264, - 265, 265, 265, 267, 266, 268, 268, 269, 269, 269, - 270, 272, 271, 274, 273, 273, 275, 277, 276, 278, - 278, 278, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 281, 280, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 300, 299, 301, 301, 301, 301, 301, - 303, 302, 305, 304, 306, 307, 309, 308, 310, 310, - 310, 310, 311, 312, 313, 314, 316, 315, 318, 317, - 319, 320, 321, 323, 322, 324, 326, 325, 328, 327, - 329, 330, 331, 333, 332, 335, 334, 336, 336, 336, - 337, 337, 337, 337, 337, 337, 337, 337, 339, 338, - 340, 341, 342, 343, 345, 344, 347, 346, 349, 348, - 350, 350, 351, 351, 351, 353, 352, 354, 354, 354, - 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 357, 356, 359, 358, 361, 360, - 363, 362, 364, 366, 365, 367, 368, 369, 370, 371, - 372, 373, 374, 376, 375, 377, 377, 377, 378, 379, - 380, 382, 381, 384, 383, 386, 385, 388, 387, 390, - 389, 392, 391, 393, 393, 393, 394, 394, 396, 395, - 398, 397, 400, 399, 401, 401, 401, 402, 402, 403, - 404, 406, 405, 407, 407, 407, 408, 408, 408, 409, - 410, 412, 411, 414, 413, 415, 415, 415, 416, 416, - 416, 416, 416, 416, 417, 418, 419, 421, 420, 422, - 422, 423, 423, 423, 425, 424, 427, 426, 428, 428, - 428, 428, 429, 429, 431, 430, 433, 432, 435, 434, - 436, 436, 436, 437, 437, 437, 437, 437, 437, 438, - 439, 440, 441, 442, 443, 445, 444, 446, 446, 447, - 447, 447, 449, 448, 451, 450, 452, 452, 452, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 455, 454, 457, 456, 459, 458, 461, 460, 463, 462, - 465, 464, 467, 466, 468, 469, 470, 471, 472, 474, - 473, 475, 475, 476, 476, 476, 478, 477, 479, 479, - 479, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 482, - 481, 484, 483, 485, 485, 486, 486, 486, 488, 487, - 490, 489, 491, 491, 492, 492, 492, 493, 493, 493, - 493, 493, 493, 493, 493, 493, 493, 494, 495, 496, - 498, 497, 500, 499, 502, 501, 503, 505, 504, 506, - 508, 507, 509, 509, 510, 510, 510, 512, 511, 514, - 513, 515, 515, 516, 516, 516, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 517, 518, 520, 519, - 521, 522, 523, 524, 525, 527, 526, 529, 528, 530, - 530, 531, 531, 531, 533, 532, 535, 534, 536, 536, - 536, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 539, 538, 540, 542, 541, - 544, 543, 546, 545, 547, 547, 548, 548, 548, 550, - 549, 552, 551, 553, 553, 553, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, - 556, 555, 557, 559, 558, 560, 561, 563, 562, 564, - 564, 565, 565, 565, 567, 566, 569, 568, 570, 570, - 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 574, 573, 576, 575, 578, - 577, 580, 579, 582, 581, 584, 583, 586, 585, 588, - 587, 590, 589, 591, 593, 592, 594, 594, 594, 596, - 595, 597, 597, 598, 598, 598, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 600, 602, 601, 604, 603, 605, 606, 608, 607, - 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, - 610, 610, 612, 611, 613, 613, 613, 614, 616, 615, - 617, 618, 619, 621, 620, 623, 622, 624, 624, 625, - 625, 625, 627, 626, 628, 628, 628, 629, 629, 629, - 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, - 631, 630, 632, 632, 632, 634, 633, 636, 635, 637, - 638, 640, 639, 641, 641, 642, 642, 642, 644, 643, - 645, 645, 645, 646, 646, 646, 646, 646, 648, 647, - 650, 649, 651, 651, 651, 652, 652, 652, 652, 652, - 652, 652, 654, 653, 655, 657, 656, 659, 658, 661, - 660, 662, 662, 663, 663, 663, 665, 664, 666, 666, - 666, 667, 667, 667, 667, 667, 667, 667, 669, 668, - 671, 670, 673, 672, 674, 674, 674, 675, 675, 675, - 675, 675, 675, 676, 678, 677, 679, 681, 680, 683, - 682, 685, 684, 686, 686, 686, 687, 687, 687, 687, - 687, 687, 687, 687, 687, 687, 687, 688, 690, 689, - 691, 693, 692, 694, 695, 697, 696, 698, 698, 700, - 699, 702, 701, 704, 703, 705, 705, 705, 706, 706, - 708, 707, 709, 711, 710, 712, 712, 712, 714, 713, - 715, 715, 715, 716, 716, 716, 716, 716, 716, 716, - 717, 719, 718, 721, 720, 722, 722, 722, 724, 723, - 725, 725, 725, 726, 726, 726, 726, 726, 728, 727, - 729, 730, 731, 733, 732, 735, 734, 736, 736, 736, - 737, 737, 738 + 0, 245, 247, 246, 248, 246, 249, 246, 250, 246, + 251, 246, 252, 246, 253, 246, 254, 246, 255, 246, + 256, 246, 257, 246, 258, 246, 259, 246, 260, 246, + 261, 261, 261, 261, 261, 261, 261, 262, 264, 263, + 265, 266, 266, 267, 267, 267, 269, 268, 270, 270, + 271, 271, 271, 273, 272, 274, 274, 275, 275, 275, + 276, 278, 277, 280, 279, 279, 281, 283, 282, 284, + 284, 284, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 287, 286, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 306, 305, 307, 307, 307, 307, 307, + 309, 308, 311, 310, 312, 313, 315, 314, 316, 316, + 316, 316, 317, 318, 319, 320, 322, 321, 324, 323, + 325, 326, 327, 329, 328, 330, 332, 331, 334, 333, + 335, 336, 337, 339, 338, 341, 340, 342, 342, 342, + 343, 343, 343, 343, 343, 343, 343, 343, 345, 344, + 346, 347, 348, 349, 351, 350, 353, 352, 355, 354, + 356, 356, 357, 357, 357, 359, 358, 360, 360, 360, + 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, + 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, + 361, 361, 361, 361, 361, 363, 362, 365, 364, 367, + 366, 369, 368, 370, 372, 371, 373, 374, 375, 376, + 377, 378, 379, 380, 382, 381, 383, 383, 383, 384, + 385, 386, 388, 387, 390, 389, 392, 391, 394, 393, + 396, 395, 395, 395, 395, 395, 395, 398, 397, 400, + 399, 401, 401, 401, 402, 402, 404, 403, 406, 405, + 408, 407, 409, 409, 409, 410, 410, 411, 412, 414, + 413, 415, 415, 415, 416, 416, 416, 417, 418, 420, + 419, 422, 421, 423, 423, 423, 424, 424, 424, 424, + 424, 424, 425, 426, 427, 429, 428, 430, 430, 431, + 431, 431, 433, 432, 435, 434, 436, 436, 436, 436, + 437, 437, 439, 438, 441, 440, 443, 442, 444, 444, + 444, 445, 445, 445, 445, 445, 445, 446, 447, 448, + 449, 450, 451, 453, 452, 454, 454, 455, 455, 455, + 457, 456, 459, 458, 460, 460, 460, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 461, 461, 461, 463, 462, + 465, 464, 467, 466, 469, 468, 471, 470, 473, 472, + 475, 474, 476, 477, 478, 479, 480, 482, 481, 483, + 483, 484, 484, 484, 486, 485, 487, 487, 487, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + 488, 488, 488, 488, 488, 488, 488, 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, 502, 503, 504, 506, 505, + 508, 507, 510, 509, 511, 513, 512, 514, 516, 515, + 517, 517, 518, 518, 518, 520, 519, 522, 521, 523, + 523, 524, 524, 524, 525, 525, 525, 525, 525, 525, + 525, 525, 525, 525, 525, 526, 528, 527, 529, 530, + 531, 532, 533, 535, 534, 537, 536, 538, 538, 539, + 539, 539, 541, 540, 543, 542, 544, 544, 544, 545, + 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, + 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, + 545, 545, 545, 547, 546, 548, 550, 549, 552, 551, + 554, 553, 555, 555, 556, 556, 556, 558, 557, 560, + 559, 561, 561, 561, 562, 562, 562, 562, 562, 562, + 562, 562, 562, 562, 562, 562, 562, 562, 564, 563, + 565, 567, 566, 568, 569, 571, 570, 572, 572, 573, + 573, 573, 575, 574, 577, 576, 578, 578, 579, 579, + 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 582, 581, 584, 583, 586, 585, 588, + 587, 590, 589, 592, 591, 594, 593, 596, 595, 598, + 597, 599, 601, 600, 602, 602, 602, 604, 603, 605, + 605, 606, 606, 606, 607, 607, 607, 607, 607, 607, + 607, 607, 607, 607, 607, 607, 607, 607, 607, 608, + 610, 609, 612, 611, 613, 614, 616, 615, 617, 617, + 617, 618, 618, 618, 618, 618, 618, 618, 618, 618, + 620, 619, 621, 621, 621, 622, 624, 623, 625, 626, + 627, 629, 628, 631, 630, 632, 632, 633, 633, 633, + 635, 634, 636, 636, 636, 637, 637, 637, 637, 637, + 637, 637, 637, 637, 637, 637, 637, 637, 639, 638, + 640, 640, 640, 642, 641, 644, 643, 645, 646, 648, + 647, 649, 649, 650, 650, 650, 652, 651, 653, 653, + 653, 654, 654, 654, 654, 654, 656, 655, 658, 657, + 659, 659, 659, 660, 660, 660, 660, 660, 660, 660, + 662, 661, 663, 665, 664, 667, 666, 669, 668, 670, + 670, 671, 671, 671, 673, 672, 674, 674, 674, 675, + 675, 675, 675, 675, 675, 675, 677, 676, 679, 678, + 681, 680, 682, 682, 682, 683, 683, 683, 683, 683, + 683, 684, 686, 685, 687, 689, 688, 691, 690, 693, + 692, 694, 694, 694, 695, 695, 695, 695, 695, 695, + 695, 695, 695, 695, 695, 696, 698, 697, 699, 701, + 700, 702, 703, 705, 704, 706, 706, 708, 707, 710, + 709, 712, 711, 713, 713, 713, 714, 714, 716, 715, + 717, 719, 718, 720, 720, 720, 722, 721, 723, 723, + 723, 724, 724, 724, 724, 724, 724, 724, 725, 727, + 726, 729, 728, 730, 730, 730, 732, 731, 733, 733, + 733, 734, 734, 734, 734, 734, 736, 735, 737, 738, + 739, 741, 740, 743, 742, 744, 744, 744, 745, 745, + 746 }; const signed char @@ -6670,81 +6757,82 @@ namespace isc { namespace dhcp { 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 4, 3, 0, 4, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 4, 1, 1, 1, 3, 3, - 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 0, 6, 0, 6, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, - 2, 1, 1, 1, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 4, 1, 1, 1, 3, + 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 1, 1, 1, 1, 1, 0, 4, 0, + 6, 1, 3, 2, 1, 1, 0, 4, 0, 4, + 0, 6, 1, 3, 2, 1, 1, 1, 1, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 0, + 6, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 3, 3, 3, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 3, 3, 3, 3, 3, 0, - 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 3, 3, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, + 4, 0, 1, 1, 3, 2, 0, 4, 0, 4, + 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 0, 4, + 0, 4, 0, 4, 1, 0, 4, 3, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, + 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, + 3, 3, 3, 0, 4, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 6, 0, 4, 0, 1, 1, 3, 2, 0, 4, - 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, + 1, 1, 1, 0, 4, 3, 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 1, 1, 3, 3, 3, 0, 4, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, + 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 3, 0, 4, - 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 1, 0, 6, 1, 3, 2, 0, - 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 1, 1, 1, 3, 0, 4, - 3, 3, 3, 0, 6, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, + 6, 1, 0, 6, 1, 3, 2, 0, 4, 0, + 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 1, 0, 4, 0, 4, 3, - 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, - 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 1, 0, 4, 0, 4, 0, + 0, 4, 0, 4, 3, 3, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 1, 1, 3, 0, 4, 3, 3, + 3, 0, 6, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 3, 0, 4, 3, 0, 4, 0, - 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, - 3, 0, 4, 3, 3, 0, 4, 1, 1, 0, - 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, - 0, 6, 3, 0, 6, 1, 3, 2, 0, 4, + 2, 1, 1, 1, 1, 1, 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 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 + 0, 4, 1, 0, 4, 0, 4, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 3, 0, 4, 0, 6, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, + 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, + 6, 0, 4, 1, 3, 2, 1, 1, 0, 6, + 3, 0, 6, 1, 3, 2, 0, 4, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 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 }; @@ -6768,12 +6856,14 @@ namespace isc { namespace dhcp { "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"retry-on-startup\"", "\"max-row-errors\"", "\"trust-anchor\"", "\"cert-file\"", "\"key-file\"", "\"key-password\"", - "\"cipher-list\"", "\"preferred-lifetime\"", - "\"min-preferred-lifetime\"", "\"max-preferred-lifetime\"", - "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", - "\"t1-percent\"", "\"t2-percent\"", "\"cache-threshold\"", - "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", + "\"ssl-mode\"", "\"disable\"", "\"prefer\"", "\"require\"", + "\"verify-ca\"", "\"verify-full\"", "\"cipher-list\"", + "\"preferred-lifetime\"", "\"min-preferred-lifetime\"", + "\"max-preferred-lifetime\"", "\"valid-lifetime\"", + "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", + "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", + "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -6868,95 +6958,95 @@ namespace isc { namespace dhcp { "reconnect_wait_time", "on_fail", "$@43", "on_fail_mode", "retry_on_startup", "max_row_errors", "max_reconnect_tries", "trust_anchor", "$@44", "cert_file", "$@45", "key_file", "$@46", - "key_password", "$@47", "cipher_list", "$@48", "sanity_checks", "$@49", - "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@50", - "extended_info_checks", "$@51", "mac_sources", "$@52", - "mac_sources_list", "mac_sources_value", "duid_id", "string_id", - "host_reservation_identifiers", "$@53", + "key_password", "$@47", "ssl_mode", "$@48", "cipher_list", "$@49", + "sanity_checks", "$@50", "sanity_checks_params", "sanity_checks_param", + "lease_checks", "$@51", "extended_info_checks", "$@52", "mac_sources", + "$@53", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", + "host_reservation_identifiers", "$@54", "host_reservation_identifiers_list", "host_reservation_identifier", - "hw_address_id", "flex_id", "relay_supplied_options", "$@54", - "dhcp_multi_threading", "$@55", "multi_threading_params", + "hw_address_id", "flex_id", "relay_supplied_options", "$@55", + "dhcp_multi_threading", "$@56", "multi_threading_params", "multi_threading_param", "enable_multi_threading", "thread_pool_size", - "packet_queue_size", "hooks_libraries", "$@56", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@57", - "sub_hooks_library", "$@58", "hooks_params", "hooks_param", "library", - "$@59", "parameters", "$@60", "expired_leases_processing", "$@61", + "packet_queue_size", "hooks_libraries", "$@57", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@58", + "sub_hooks_library", "$@59", "hooks_params", "hooks_param", "library", + "$@60", "parameters", "$@61", "expired_leases_processing", "$@62", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet6_list", "$@62", - "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@63", - "sub_subnet6", "$@64", "subnet6_params", "subnet6_param", "subnet", - "$@65", "interface", "$@66", "interface_id", "$@67", "client_class", - "$@68", "network_client_classes", "$@69", "require_client_classes", - "$@70", "evaluate_additional_classes", "$@71", "reservations_global", + "unwarned_reclaim_cycles", "subnet6_list", "$@63", + "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@64", + "sub_subnet6", "$@65", "subnet6_params", "subnet6_param", "subnet", + "$@66", "interface", "$@67", "interface_id", "$@68", "client_class", + "$@69", "network_client_classes", "$@70", "require_client_classes", + "$@71", "evaluate_additional_classes", "$@72", "reservations_global", "reservations_in_subnet", "reservations_out_of_pool", "id", - "rapid_commit", "shared_networks", "$@72", "shared_networks_content", - "shared_networks_list", "shared_network", "$@73", + "rapid_commit", "shared_networks", "$@73", "shared_networks_content", + "shared_networks_list", "shared_network", "$@74", "shared_network_params", "shared_network_param", "option_def_list", - "$@74", "sub_option_def_list", "$@75", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@76", - "sub_option_def", "$@77", "option_def_params", + "$@75", "sub_option_def_list", "$@76", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@77", + "sub_option_def", "$@78", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@78", - "option_def_record_types", "$@79", "space", "$@80", "option_def_space", - "option_def_encapsulate", "$@81", "option_def_array", "option_data_list", - "$@82", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@83", "sub_option_data", "$@84", + "code", "option_def_code", "option_def_type", "$@79", + "option_def_record_types", "$@80", "space", "$@81", "option_def_space", + "option_def_encapsulate", "$@82", "option_def_array", "option_data_list", + "$@83", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@84", "sub_option_data", "$@85", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@85", + "option_data_param", "option_data_name", "option_data_data", "$@86", "option_data_code", "option_data_space", "option_data_csv_format", "option_data_always_send", "option_data_never_send", - "option_data_client_classes", "$@86", "pools_list", "$@87", - "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@88", - "sub_pool6", "$@89", "pool_params", "pool_param", "pool_entry", "$@90", - "pool_id", "user_context", "$@91", "comment", "$@92", "pd_pools_list", - "$@93", "pd_pools_list_content", "not_empty_pd_pools_list", - "pd_pool_entry", "$@94", "sub_pd_pool", "$@95", "pd_pool_params", - "pd_pool_param", "pd_prefix", "$@96", "pd_prefix_len", "excluded_prefix", - "$@97", "excluded_prefix_len", "pd_delegated_len", "reservations", - "$@98", "reservations_list", "not_empty_reservations_list", - "reservation", "$@99", "sub_reservation", "$@100", "reservation_params", + "option_data_client_classes", "$@87", "pools_list", "$@88", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@89", + "sub_pool6", "$@90", "pool_params", "pool_param", "pool_entry", "$@91", + "pool_id", "user_context", "$@92", "comment", "$@93", "pd_pools_list", + "$@94", "pd_pools_list_content", "not_empty_pd_pools_list", + "pd_pool_entry", "$@95", "sub_pd_pool", "$@96", "pd_pool_params", + "pd_pool_param", "pd_prefix", "$@97", "pd_prefix_len", "excluded_prefix", + "$@98", "excluded_prefix_len", "pd_delegated_len", "reservations", + "$@99", "reservations_list", "not_empty_reservations_list", + "reservation", "$@100", "sub_reservation", "$@101", "reservation_params", "not_empty_reservation_params", "reservation_param", "ip_addresses", - "$@101", "prefixes", "$@102", "excluded_prefixes", "$@103", "duid", - "$@104", "hw_address", "$@105", "hostname", "$@106", "flex_id_value", - "$@107", "reservation_client_classes", "$@108", "relay", "$@109", - "relay_map", "client_classes", "$@110", "client_classes_list", - "client_class_entry", "$@111", "client_class_params", + "$@102", "prefixes", "$@103", "excluded_prefixes", "$@104", "duid", + "$@105", "hw_address", "$@106", "hostname", "$@107", "flex_id_value", + "$@108", "reservation_client_classes", "$@109", "relay", "$@110", + "relay_map", "client_classes", "$@111", "client_classes_list", + "client_class_entry", "$@112", "client_class_params", "not_empty_client_class_params", "client_class_param", - "client_class_name", "client_class_test", "$@112", - "client_class_template_test", "$@113", "only_if_required", - "only_in_additional_list", "server_id", "$@114", "server_id_params", - "server_id_param", "server_id_type", "$@115", "duid_type", "htype", - "identifier", "$@116", "time", "enterprise_id", "dhcp4o6_port", - "control_socket", "$@117", "control_sockets", "$@118", + "client_class_name", "client_class_test", "$@113", + "client_class_template_test", "$@114", "only_if_required", + "only_in_additional_list", "server_id", "$@115", "server_id_params", + "server_id_param", "server_id_type", "$@116", "duid_type", "htype", + "identifier", "$@117", "time", "enterprise_id", "dhcp4o6_port", + "control_socket", "$@118", "control_sockets", "$@119", "control_socket_list", "not_empty_control_socket_list", - "control_socket_entry", "$@119", "control_socket_params", - "control_socket_param", "control_socket_type", "$@120", - "control_socket_type_value", "control_socket_name", "$@121", - "control_socket_address", "$@122", "control_socket_port", - "cert_required", "http_headers", "$@123", "http_header_list", - "not_empty_http_header_list", "http_header", "$@124", - "http_header_params", "http_header_param", "header_value", "$@125", - "authentication", "$@126", "auth_params", "auth_param", "auth_type", - "$@127", "auth_type_value", "realm", "$@128", "directory", "$@129", - "clients", "$@130", "clients_list", "not_empty_clients_list", - "basic_auth", "$@131", "clients_params", "clients_param", "user_file", - "$@132", "password_file", "$@133", "dhcp_queue_control", "$@134", + "control_socket_entry", "$@120", "control_socket_params", + "control_socket_param", "control_socket_type", "$@121", + "control_socket_type_value", "control_socket_name", "$@122", + "control_socket_address", "$@123", "control_socket_port", + "cert_required", "http_headers", "$@124", "http_header_list", + "not_empty_http_header_list", "http_header", "$@125", + "http_header_params", "http_header_param", "header_value", "$@126", + "authentication", "$@127", "auth_params", "auth_param", "auth_type", + "$@128", "auth_type_value", "realm", "$@129", "directory", "$@130", + "clients", "$@131", "clients_list", "not_empty_clients_list", + "basic_auth", "$@132", "clients_params", "clients_param", "user_file", + "$@133", "password_file", "$@134", "dhcp_queue_control", "$@135", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@135", "capacity", "arbitrary_map_entry", "$@136", - "dhcp_ddns", "$@137", "sub_dhcp_ddns", "$@138", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@139", "server_port", - "sender_ip", "$@140", "sender_port", "max_queue_size", "ncr_protocol", - "$@141", "ncr_protocol_value", "ncr_format", "$@142", "config_control", - "$@143", "sub_config_control", "$@144", "config_control_params", - "config_control_param", "config_databases", "$@145", - "config_fetch_wait_time", "loggers", "$@146", "loggers_entries", - "logger_entry", "$@147", "logger_params", "logger_param", "debuglevel", - "severity", "$@148", "output_options_list", "$@149", - "output_options_list_content", "output_entry", "$@150", - "output_params_list", "output_params", "output", "$@151", "flush", - "maxsize", "maxver", "pattern", "$@152", "compatibility", "$@153", + "queue_type", "$@136", "capacity", "arbitrary_map_entry", "$@137", + "dhcp_ddns", "$@138", "sub_dhcp_ddns", "$@139", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@140", "server_port", + "sender_ip", "$@141", "sender_port", "max_queue_size", "ncr_protocol", + "$@142", "ncr_protocol_value", "ncr_format", "$@143", "config_control", + "$@144", "sub_config_control", "$@145", "config_control_params", + "config_control_param", "config_databases", "$@146", + "config_fetch_wait_time", "loggers", "$@147", "loggers_entries", + "logger_entry", "$@148", "logger_params", "logger_param", "debuglevel", + "severity", "$@149", "output_options_list", "$@150", + "output_options_list_content", "output_entry", "$@151", + "output_params_list", "output_params", "output", "$@152", "flush", + "maxsize", "maxver", "pattern", "$@153", "compatibility", "$@154", "compatibility_params", "compatibility_param", "lenient_option_parsing", YY_NULLPTR }; #endif @@ -6966,107 +7056,108 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yyrline_[] = { - 0, 333, 333, 333, 334, 334, 335, 335, 336, 336, - 337, 337, 338, 338, 339, 339, 340, 340, 341, 341, - 342, 342, 343, 343, 344, 344, 345, 345, 346, 346, - 354, 355, 356, 357, 358, 359, 360, 363, 368, 368, - 379, 382, 383, 386, 391, 397, 402, 402, 409, 410, - 413, 417, 421, 427, 427, 434, 435, 438, 442, 446, - 456, 465, 465, 480, 480, 494, 497, 503, 503, 512, - 513, 514, 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, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 595, 595, 605, 611, 617, 623, - 629, 635, 641, 647, 653, 659, 665, 671, 677, 683, - 689, 695, 701, 707, 707, 716, 719, 722, 725, 728, - 734, 734, 743, 743, 752, 761, 771, 771, 780, 783, - 786, 789, 794, 800, 806, 812, 818, 818, 827, 827, - 836, 842, 848, 854, 854, 863, 869, 869, 878, 878, - 887, 893, 899, 905, 905, 917, 917, 926, 927, 928, - 933, 934, 935, 936, 937, 938, 939, 940, 943, 943, - 954, 960, 966, 972, 978, 978, 991, 991, 1004, 1004, - 1015, 1016, 1019, 1020, 1021, 1026, 1026, 1036, 1037, 1038, - 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1066, 1069, 1069, 1078, 1078, 1087, 1087, - 1096, 1096, 1105, 1111, 1111, 1120, 1126, 1132, 1138, 1144, - 1150, 1156, 1162, 1168, 1168, 1176, 1177, 1178, 1181, 1187, - 1193, 1199, 1199, 1208, 1208, 1217, 1217, 1226, 1226, 1235, - 1235, 1244, 1244, 1255, 1256, 1257, 1262, 1263, 1266, 1266, - 1285, 1285, 1303, 1303, 1314, 1315, 1316, 1321, 1322, 1325, - 1330, 1335, 1335, 1346, 1347, 1348, 1353, 1354, 1355, 1358, - 1363, 1370, 1370, 1383, 1383, 1396, 1397, 1398, 1403, 1404, - 1405, 1406, 1407, 1408, 1411, 1417, 1423, 1429, 1429, 1440, - 1441, 1444, 1445, 1446, 1451, 1451, 1461, 1461, 1471, 1472, - 1473, 1476, 1479, 1480, 1483, 1483, 1492, 1492, 1501, 1501, - 1513, 1514, 1515, 1520, 1521, 1522, 1523, 1524, 1525, 1528, - 1534, 1540, 1546, 1552, 1558, 1567, 1567, 1581, 1582, 1585, - 1586, 1587, 1596, 1596, 1622, 1622, 1633, 1634, 1635, 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, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, - 1694, 1694, 1703, 1703, 1712, 1712, 1721, 1721, 1731, 1731, - 1743, 1743, 1754, 1754, 1765, 1771, 1777, 1783, 1789, 1797, - 1797, 1809, 1810, 1814, 1815, 1816, 1821, 1821, 1829, 1830, - 1831, 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, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1890, - 1890, 1904, 1904, 1913, 1914, 1917, 1918, 1919, 1926, 1926, - 1941, 1941, 1955, 1956, 1959, 1960, 1961, 1966, 1967, 1968, - 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1978, 1980, 1986, - 1988, 1988, 1997, 1997, 2006, 2006, 2015, 2017, 2017, 2026, - 2036, 2036, 2049, 2050, 2055, 2056, 2057, 2064, 2064, 2076, - 2076, 2088, 2089, 2094, 2095, 2096, 2103, 2104, 2105, 2106, - 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2116, 2118, 2118, - 2127, 2129, 2131, 2137, 2143, 2149, 2149, 2163, 2163, 2176, - 2177, 2180, 2181, 2182, 2187, 2187, 2197, 2197, 2207, 2208, - 2209, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, - 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, - 2233, 2234, 2235, 2236, 2237, 2240, 2240, 2249, 2255, 2255, - 2280, 2280, 2310, 2310, 2323, 2324, 2327, 2328, 2329, 2334, - 2334, 2346, 2346, 2358, 2359, 2360, 2365, 2366, 2367, 2368, - 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, - 2381, 2381, 2390, 2396, 2396, 2405, 2411, 2420, 2420, 2431, - 2432, 2435, 2436, 2437, 2442, 2442, 2451, 2451, 2460, 2461, - 2464, 2465, 2466, 2472, 2473, 2474, 2475, 2476, 2477, 2478, - 2479, 2480, 2481, 2482, 2483, 2486, 2486, 2497, 2497, 2508, - 2508, 2519, 2519, 2528, 2528, 2537, 2537, 2546, 2546, 2555, - 2555, 2569, 2569, 2580, 2586, 2586, 2597, 2598, 2599, 2604, - 2604, 2614, 2615, 2618, 2619, 2620, 2625, 2626, 2627, 2628, - 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, - 2639, 2642, 2644, 2644, 2653, 2653, 2663, 2669, 2678, 2678, - 2691, 2692, 2693, 2698, 2699, 2700, 2701, 2702, 2703, 2704, - 2705, 2706, 2709, 2709, 2717, 2718, 2719, 2722, 2728, 2728, - 2737, 2743, 2751, 2759, 2759, 2771, 2771, 2783, 2784, 2787, - 2788, 2789, 2794, 2794, 2802, 2803, 2804, 2809, 2810, 2811, - 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, - 2824, 2824, 2833, 2834, 2835, 2838, 2838, 2848, 2848, 2858, - 2864, 2870, 2870, 2881, 2882, 2885, 2886, 2887, 2892, 2892, - 2900, 2901, 2902, 2907, 2908, 2909, 2910, 2911, 2914, 2914, - 2925, 2925, 2938, 2939, 2940, 2945, 2946, 2947, 2948, 2949, - 2950, 2951, 2954, 2954, 2962, 2965, 2965, 2974, 2974, 2983, - 2983, 2994, 2995, 2998, 2999, 3000, 3005, 3005, 3013, 3014, - 3015, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3029, 3029, - 3038, 3038, 3049, 3049, 3062, 3063, 3064, 3069, 3070, 3071, - 3072, 3073, 3074, 3077, 3083, 3083, 3092, 3098, 3098, 3108, - 3108, 3121, 3121, 3131, 3132, 3133, 3138, 3139, 3140, 3141, - 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3151, 3157, 3157, - 3166, 3172, 3172, 3181, 3187, 3193, 3193, 3202, 3203, 3206, - 3206, 3217, 3217, 3229, 3229, 3239, 3240, 3241, 3247, 3248, - 3251, 3251, 3262, 3270, 3270, 3283, 3284, 3285, 3291, 3291, - 3299, 3300, 3301, 3306, 3307, 3308, 3309, 3310, 3311, 3312, - 3315, 3321, 3321, 3330, 3330, 3341, 3342, 3343, 3348, 3348, - 3356, 3357, 3358, 3363, 3364, 3365, 3366, 3367, 3370, 3370, - 3379, 3385, 3391, 3397, 3397, 3406, 3406, 3417, 3418, 3419, - 3424, 3425, 3428 + 0, 340, 340, 340, 341, 341, 342, 342, 343, 343, + 344, 344, 345, 345, 346, 346, 347, 347, 348, 348, + 349, 349, 350, 350, 351, 351, 352, 352, 353, 353, + 361, 362, 363, 364, 365, 366, 367, 370, 375, 375, + 386, 389, 390, 393, 398, 404, 409, 409, 416, 417, + 420, 424, 428, 434, 434, 441, 442, 445, 449, 453, + 463, 472, 472, 487, 487, 501, 504, 510, 510, 519, + 520, 521, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 602, 602, 612, 618, 624, 630, + 636, 642, 648, 654, 660, 666, 672, 678, 684, 690, + 696, 702, 708, 714, 714, 723, 726, 729, 732, 735, + 741, 741, 750, 750, 759, 768, 778, 778, 787, 790, + 793, 796, 801, 807, 813, 819, 825, 825, 834, 834, + 843, 849, 855, 861, 861, 870, 876, 876, 885, 885, + 894, 900, 906, 912, 912, 924, 924, 933, 934, 935, + 940, 941, 942, 943, 944, 945, 946, 947, 950, 950, + 961, 967, 973, 979, 985, 985, 998, 998, 1011, 1011, + 1022, 1023, 1026, 1027, 1028, 1033, 1033, 1043, 1044, 1045, + 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, 1077, 1077, 1086, 1086, 1095, + 1095, 1104, 1104, 1113, 1119, 1119, 1128, 1134, 1140, 1146, + 1152, 1158, 1164, 1170, 1176, 1176, 1184, 1185, 1186, 1189, + 1195, 1201, 1207, 1207, 1216, 1216, 1225, 1225, 1234, 1234, + 1243, 1243, 1251, 1252, 1253, 1254, 1255, 1258, 1258, 1267, + 1267, 1278, 1279, 1280, 1285, 1286, 1289, 1289, 1308, 1308, + 1326, 1326, 1337, 1338, 1339, 1344, 1345, 1348, 1353, 1358, + 1358, 1369, 1370, 1371, 1376, 1377, 1378, 1381, 1386, 1393, + 1393, 1406, 1406, 1419, 1420, 1421, 1426, 1427, 1428, 1429, + 1430, 1431, 1434, 1440, 1446, 1452, 1452, 1463, 1464, 1467, + 1468, 1469, 1474, 1474, 1484, 1484, 1494, 1495, 1496, 1499, + 1502, 1503, 1506, 1506, 1515, 1515, 1524, 1524, 1536, 1537, + 1538, 1543, 1544, 1545, 1546, 1547, 1548, 1551, 1557, 1563, + 1569, 1575, 1581, 1590, 1590, 1604, 1605, 1608, 1609, 1610, + 1619, 1619, 1645, 1645, 1656, 1657, 1658, 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, 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, 1717, 1717, + 1726, 1726, 1735, 1735, 1744, 1744, 1754, 1754, 1766, 1766, + 1777, 1777, 1788, 1794, 1800, 1806, 1812, 1820, 1820, 1832, + 1833, 1837, 1838, 1839, 1844, 1844, 1852, 1853, 1854, 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, 1913, 1913, 1927, + 1927, 1936, 1937, 1940, 1941, 1942, 1949, 1949, 1964, 1964, + 1978, 1979, 1982, 1983, 1984, 1989, 1990, 1991, 1992, 1993, + 1994, 1995, 1996, 1997, 1998, 2001, 2003, 2009, 2011, 2011, + 2020, 2020, 2029, 2029, 2038, 2040, 2040, 2049, 2059, 2059, + 2072, 2073, 2078, 2079, 2080, 2087, 2087, 2099, 2099, 2111, + 2112, 2117, 2118, 2119, 2126, 2127, 2128, 2129, 2130, 2131, + 2132, 2133, 2134, 2135, 2136, 2139, 2141, 2141, 2150, 2152, + 2154, 2160, 2166, 2172, 2172, 2186, 2186, 2199, 2200, 2203, + 2204, 2205, 2210, 2210, 2220, 2220, 2230, 2231, 2232, 2237, + 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, + 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, + 2258, 2259, 2260, 2263, 2263, 2272, 2278, 2278, 2303, 2303, + 2333, 2333, 2346, 2347, 2350, 2351, 2352, 2357, 2357, 2369, + 2369, 2381, 2382, 2383, 2388, 2389, 2390, 2391, 2392, 2393, + 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2404, 2404, + 2413, 2419, 2419, 2428, 2434, 2443, 2443, 2454, 2455, 2458, + 2459, 2460, 2465, 2465, 2474, 2474, 2483, 2484, 2487, 2488, + 2489, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, + 2504, 2505, 2506, 2509, 2509, 2520, 2520, 2531, 2531, 2542, + 2542, 2551, 2551, 2560, 2560, 2569, 2569, 2578, 2578, 2592, + 2592, 2603, 2609, 2609, 2620, 2621, 2622, 2627, 2627, 2637, + 2638, 2641, 2642, 2643, 2648, 2649, 2650, 2651, 2652, 2653, + 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2665, + 2667, 2667, 2676, 2676, 2686, 2692, 2701, 2701, 2714, 2715, + 2716, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, + 2732, 2732, 2740, 2741, 2742, 2745, 2751, 2751, 2760, 2766, + 2774, 2782, 2782, 2794, 2794, 2806, 2807, 2810, 2811, 2812, + 2817, 2817, 2825, 2826, 2827, 2832, 2833, 2834, 2835, 2836, + 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2847, 2847, + 2856, 2857, 2858, 2861, 2861, 2871, 2871, 2881, 2887, 2893, + 2893, 2904, 2905, 2908, 2909, 2910, 2915, 2915, 2923, 2924, + 2925, 2930, 2931, 2932, 2933, 2934, 2937, 2937, 2948, 2948, + 2961, 2962, 2963, 2968, 2969, 2970, 2971, 2972, 2973, 2974, + 2977, 2977, 2985, 2988, 2988, 2997, 2997, 3006, 3006, 3017, + 3018, 3021, 3022, 3023, 3028, 3028, 3036, 3037, 3038, 3043, + 3044, 3045, 3046, 3047, 3048, 3049, 3052, 3052, 3061, 3061, + 3072, 3072, 3085, 3086, 3087, 3092, 3093, 3094, 3095, 3096, + 3097, 3100, 3106, 3106, 3115, 3121, 3121, 3131, 3131, 3144, + 3144, 3154, 3155, 3156, 3161, 3162, 3163, 3164, 3165, 3166, + 3167, 3168, 3169, 3170, 3171, 3174, 3180, 3180, 3189, 3195, + 3195, 3204, 3210, 3216, 3216, 3225, 3226, 3229, 3229, 3240, + 3240, 3252, 3252, 3262, 3263, 3264, 3270, 3271, 3274, 3274, + 3285, 3293, 3293, 3306, 3307, 3308, 3314, 3314, 3322, 3323, + 3324, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3338, 3344, + 3344, 3353, 3353, 3364, 3365, 3366, 3371, 3371, 3379, 3380, + 3381, 3386, 3387, 3388, 3389, 3390, 3393, 3393, 3402, 3408, + 3414, 3420, 3420, 3429, 3429, 3440, 3441, 3442, 3447, 3448, + 3451 }; void @@ -7099,9 +7190,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 7103 "dhcp6_parser.cc" +#line 7194 "dhcp6_parser.cc" -#line 3434 "dhcp6_parser.yy" +#line 3457 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 1aa1bd01ab..d24d6db617 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -430,6 +430,7 @@ namespace isc { namespace dhcp { // ddns_replace_client_name_value // ddns_conflict_resolution_mode_value // on_fail_mode + // ssl_mode // duid_type // control_socket_type_value // auth_type_value @@ -544,197 +545,203 @@ namespace isc { namespace dhcp { TOKEN_CERT_FILE = 300, // "cert-file" TOKEN_KEY_FILE = 301, // "key-file" TOKEN_KEY_PASSWORD = 302, // "key-password" - TOKEN_CIPHER_LIST = 303, // "cipher-list" - TOKEN_PREFERRED_LIFETIME = 304, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 305, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 306, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 307, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 308, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 309, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 310, // "renew-timer" - TOKEN_REBIND_TIMER = 311, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 312, // "calculate-tee-times" - TOKEN_T1_PERCENT = 313, // "t1-percent" - TOKEN_T2_PERCENT = 314, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 315, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 316, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 317, // "decline-probation-period" - TOKEN_SERVER_TAG = 318, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 319, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 320, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 321, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 322, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 323, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 324, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 325, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 326, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 327, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 328, // "ddns-use-conflict-resolution" - TOKEN_DDNS_TTL_PERCENT = 329, // "ddns-ttl-percent" - TOKEN_DDNS_TTL = 330, // "ddns-ttl" - TOKEN_DDNS_TTL_MIN = 331, // "ddns-ttl-min" - TOKEN_DDNS_TTL_MAX = 332, // "ddns-ttl-mix" - TOKEN_STORE_EXTENDED_INFO = 333, // "store-extended-info" - TOKEN_SUBNET6 = 334, // "subnet6" - TOKEN_OPTION_DEF = 335, // "option-def" - TOKEN_OPTION_DATA = 336, // "option-data" - TOKEN_NAME = 337, // "name" - TOKEN_DATA = 338, // "data" - TOKEN_CODE = 339, // "code" - TOKEN_SPACE = 340, // "space" - TOKEN_CSV_FORMAT = 341, // "csv-format" - TOKEN_ALWAYS_SEND = 342, // "always-send" - TOKEN_NEVER_SEND = 343, // "never-send" - TOKEN_RECORD_TYPES = 344, // "record-types" - TOKEN_ENCAPSULATE = 345, // "encapsulate" - TOKEN_ARRAY = 346, // "array" - TOKEN_PARKED_PACKET_LIMIT = 347, // "parked-packet-limit" - TOKEN_ALLOCATOR = 348, // "allocator" - TOKEN_PD_ALLOCATOR = 349, // "pd-allocator" - TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 350, // "ddns-conflict-resolution-mode" - TOKEN_CHECK_WITH_DHCID = 351, // "check-with-dhcid" - TOKEN_NO_CHECK_WITH_DHCID = 352, // "no-check-with-dhcid" - TOKEN_CHECK_EXISTS_WITH_DHCID = 353, // "check-exists-with-dhcid" - TOKEN_NO_CHECK_WITHOUT_DHCID = 354, // "no-check-without-dhcid" - TOKEN_SHARED_NETWORKS = 355, // "shared-networks" - TOKEN_POOLS = 356, // "pools" - TOKEN_POOL = 357, // "pool" - TOKEN_PD_POOLS = 358, // "pd-pools" - TOKEN_PREFIX = 359, // "prefix" - TOKEN_PREFIX_LEN = 360, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 361, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 362, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 363, // "delegated-len" - TOKEN_USER_CONTEXT = 364, // "user-context" - TOKEN_COMMENT = 365, // "comment" - TOKEN_SUBNET = 366, // "subnet" - TOKEN_INTERFACE = 367, // "interface" - TOKEN_INTERFACE_ID = 368, // "interface-id" - TOKEN_ID = 369, // "id" - TOKEN_RAPID_COMMIT = 370, // "rapid-commit" - TOKEN_RESERVATIONS_GLOBAL = 371, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 372, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 373, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 374, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 375, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 376, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 377, // "sanity-checks" - TOKEN_LEASE_CHECKS = 378, // "lease-checks" - TOKEN_EXTENDED_INFO_CHECKS = 379, // "extended-info-checks" - TOKEN_CLIENT_CLASSES = 380, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 381, // "require-client-classes" - TOKEN_EVALUATE_ADDITIONAL_CLASSES = 382, // "evaluate-additional-classes" - TOKEN_TEST = 383, // "test" - TOKEN_TEMPLATE_TEST = 384, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 385, // "only-if-required" - TOKEN_ONLY_IN_ADDITIONAL_LIST = 386, // "only-in-additional-list" - TOKEN_CLIENT_CLASS = 387, // "client-class" - TOKEN_POOL_ID = 388, // "pool-id" - TOKEN_RESERVATIONS = 389, // "reservations" - TOKEN_IP_ADDRESSES = 390, // "ip-addresses" - TOKEN_PREFIXES = 391, // "prefixes" - TOKEN_EXCLUDED_PREFIXES = 392, // "excluded-prefixes" - TOKEN_DUID = 393, // "duid" - TOKEN_HW_ADDRESS = 394, // "hw-address" - TOKEN_HOSTNAME = 395, // "hostname" - TOKEN_FLEX_ID = 396, // "flex-id" - TOKEN_RELAY = 397, // "relay" - TOKEN_HOOKS_LIBRARIES = 398, // "hooks-libraries" - TOKEN_LIBRARY = 399, // "library" - TOKEN_PARAMETERS = 400, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 401, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 402, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 403, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 404, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 405, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 406, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 407, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 408, // "server-id" - TOKEN_LLT = 409, // "LLT" - TOKEN_EN = 410, // "EN" - TOKEN_LL = 411, // "LL" - TOKEN_IDENTIFIER = 412, // "identifier" - TOKEN_HTYPE = 413, // "htype" - TOKEN_TIME = 414, // "time" - TOKEN_ENTERPRISE_ID = 415, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 416, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 417, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 418, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 419, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 420, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 421, // "control-socket" - TOKEN_CONTROL_SOCKETS = 422, // "control-sockets" - TOKEN_SOCKET_TYPE = 423, // "socket-type" - TOKEN_UNIX = 424, // "unix" - TOKEN_HTTP = 425, // "http" - TOKEN_HTTPS = 426, // "https" - TOKEN_SOCKET_NAME = 427, // "socket-name" - TOKEN_SOCKET_ADDRESS = 428, // "socket-address" - TOKEN_SOCKET_PORT = 429, // "socket-port" - TOKEN_AUTHENTICATION = 430, // "authentication" - TOKEN_BASIC = 431, // "basic" - TOKEN_REALM = 432, // "realm" - TOKEN_DIRECTORY = 433, // "directory" - TOKEN_CLIENTS = 434, // "clients" - TOKEN_USER_FILE = 435, // "user-file" - TOKEN_PASSWORD_FILE = 436, // "password-file" - TOKEN_CERT_REQUIRED = 437, // "cert-required" - TOKEN_HTTP_HEADERS = 438, // "http-headers" - TOKEN_VALUE = 439, // "value" - TOKEN_DHCP_QUEUE_CONTROL = 440, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 441, // "enable-queue" - TOKEN_QUEUE_TYPE = 442, // "queue-type" - TOKEN_CAPACITY = 443, // "capacity" - TOKEN_DHCP_DDNS = 444, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 445, // "enable-updates" - TOKEN_SERVER_IP = 446, // "server-ip" - TOKEN_SERVER_PORT = 447, // "server-port" - TOKEN_SENDER_IP = 448, // "sender-ip" - TOKEN_SENDER_PORT = 449, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 450, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 451, // "ncr-protocol" - TOKEN_NCR_FORMAT = 452, // "ncr-format" - TOKEN_UDP = 453, // "UDP" - TOKEN_TCP = 454, // "TCP" - TOKEN_JSON = 455, // "JSON" - TOKEN_WHEN_PRESENT = 456, // "when-present" - TOKEN_NEVER = 457, // "never" - TOKEN_ALWAYS = 458, // "always" - TOKEN_WHEN_NOT_PRESENT = 459, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 460, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 461, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 462, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 463, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 464, // "reservations-lookup-first" - TOKEN_LOGGERS = 465, // "loggers" - TOKEN_OUTPUT_OPTIONS = 466, // "output-options" - TOKEN_OUTPUT = 467, // "output" - TOKEN_DEBUGLEVEL = 468, // "debuglevel" - TOKEN_SEVERITY = 469, // "severity" - TOKEN_FLUSH = 470, // "flush" - TOKEN_MAXSIZE = 471, // "maxsize" - TOKEN_MAXVER = 472, // "maxver" - TOKEN_PATTERN = 473, // "pattern" - TOKEN_COMPATIBILITY = 474, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 475, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 476, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 477, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 478, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 479, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 480, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 481, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 482, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 483, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 484, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 485, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 486, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 487, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 488, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 489, // SUB_CONFIG_CONTROL - TOKEN_STRING = 490, // "constant string" - TOKEN_INTEGER = 491, // "integer" - TOKEN_FLOAT = 492, // "floating point" - TOKEN_BOOLEAN = 493 // "boolean" + TOKEN_SSL_MODE = 303, // "ssl-mode" + TOKEN_DISABLE = 304, // "disable" + TOKEN_PREFER = 305, // "prefer" + TOKEN_REQUIRE = 306, // "require" + TOKEN_VERIFY_CA = 307, // "verify-ca" + TOKEN_VERIFY_FULL = 308, // "verify-full" + TOKEN_CIPHER_LIST = 309, // "cipher-list" + TOKEN_PREFERRED_LIFETIME = 310, // "preferred-lifetime" + TOKEN_MIN_PREFERRED_LIFETIME = 311, // "min-preferred-lifetime" + TOKEN_MAX_PREFERRED_LIFETIME = 312, // "max-preferred-lifetime" + TOKEN_VALID_LIFETIME = 313, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 314, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 315, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 316, // "renew-timer" + TOKEN_REBIND_TIMER = 317, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 318, // "calculate-tee-times" + TOKEN_T1_PERCENT = 319, // "t1-percent" + TOKEN_T2_PERCENT = 320, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 321, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 322, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 323, // "decline-probation-period" + TOKEN_SERVER_TAG = 324, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 325, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 326, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 327, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 328, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 329, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 330, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 331, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 332, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 333, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 334, // "ddns-use-conflict-resolution" + TOKEN_DDNS_TTL_PERCENT = 335, // "ddns-ttl-percent" + TOKEN_DDNS_TTL = 336, // "ddns-ttl" + TOKEN_DDNS_TTL_MIN = 337, // "ddns-ttl-min" + TOKEN_DDNS_TTL_MAX = 338, // "ddns-ttl-mix" + TOKEN_STORE_EXTENDED_INFO = 339, // "store-extended-info" + TOKEN_SUBNET6 = 340, // "subnet6" + TOKEN_OPTION_DEF = 341, // "option-def" + TOKEN_OPTION_DATA = 342, // "option-data" + TOKEN_NAME = 343, // "name" + TOKEN_DATA = 344, // "data" + TOKEN_CODE = 345, // "code" + TOKEN_SPACE = 346, // "space" + TOKEN_CSV_FORMAT = 347, // "csv-format" + TOKEN_ALWAYS_SEND = 348, // "always-send" + TOKEN_NEVER_SEND = 349, // "never-send" + TOKEN_RECORD_TYPES = 350, // "record-types" + TOKEN_ENCAPSULATE = 351, // "encapsulate" + TOKEN_ARRAY = 352, // "array" + TOKEN_PARKED_PACKET_LIMIT = 353, // "parked-packet-limit" + TOKEN_ALLOCATOR = 354, // "allocator" + TOKEN_PD_ALLOCATOR = 355, // "pd-allocator" + TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 356, // "ddns-conflict-resolution-mode" + TOKEN_CHECK_WITH_DHCID = 357, // "check-with-dhcid" + TOKEN_NO_CHECK_WITH_DHCID = 358, // "no-check-with-dhcid" + TOKEN_CHECK_EXISTS_WITH_DHCID = 359, // "check-exists-with-dhcid" + TOKEN_NO_CHECK_WITHOUT_DHCID = 360, // "no-check-without-dhcid" + TOKEN_SHARED_NETWORKS = 361, // "shared-networks" + TOKEN_POOLS = 362, // "pools" + TOKEN_POOL = 363, // "pool" + TOKEN_PD_POOLS = 364, // "pd-pools" + TOKEN_PREFIX = 365, // "prefix" + TOKEN_PREFIX_LEN = 366, // "prefix-len" + TOKEN_EXCLUDED_PREFIX = 367, // "excluded-prefix" + TOKEN_EXCLUDED_PREFIX_LEN = 368, // "excluded-prefix-len" + TOKEN_DELEGATED_LEN = 369, // "delegated-len" + TOKEN_USER_CONTEXT = 370, // "user-context" + TOKEN_COMMENT = 371, // "comment" + TOKEN_SUBNET = 372, // "subnet" + TOKEN_INTERFACE = 373, // "interface" + TOKEN_INTERFACE_ID = 374, // "interface-id" + TOKEN_ID = 375, // "id" + TOKEN_RAPID_COMMIT = 376, // "rapid-commit" + TOKEN_RESERVATIONS_GLOBAL = 377, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 378, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 379, // "reservations-out-of-pool" + TOKEN_MAC_SOURCES = 380, // "mac-sources" + TOKEN_RELAY_SUPPLIED_OPTIONS = 381, // "relay-supplied-options" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 382, // "host-reservation-identifiers" + TOKEN_SANITY_CHECKS = 383, // "sanity-checks" + TOKEN_LEASE_CHECKS = 384, // "lease-checks" + TOKEN_EXTENDED_INFO_CHECKS = 385, // "extended-info-checks" + TOKEN_CLIENT_CLASSES = 386, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 387, // "require-client-classes" + TOKEN_EVALUATE_ADDITIONAL_CLASSES = 388, // "evaluate-additional-classes" + TOKEN_TEST = 389, // "test" + TOKEN_TEMPLATE_TEST = 390, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 391, // "only-if-required" + TOKEN_ONLY_IN_ADDITIONAL_LIST = 392, // "only-in-additional-list" + TOKEN_CLIENT_CLASS = 393, // "client-class" + TOKEN_POOL_ID = 394, // "pool-id" + TOKEN_RESERVATIONS = 395, // "reservations" + TOKEN_IP_ADDRESSES = 396, // "ip-addresses" + TOKEN_PREFIXES = 397, // "prefixes" + TOKEN_EXCLUDED_PREFIXES = 398, // "excluded-prefixes" + TOKEN_DUID = 399, // "duid" + TOKEN_HW_ADDRESS = 400, // "hw-address" + TOKEN_HOSTNAME = 401, // "hostname" + TOKEN_FLEX_ID = 402, // "flex-id" + TOKEN_RELAY = 403, // "relay" + TOKEN_HOOKS_LIBRARIES = 404, // "hooks-libraries" + TOKEN_LIBRARY = 405, // "library" + TOKEN_PARAMETERS = 406, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 407, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 408, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 409, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 410, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 411, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 412, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 413, // "unwarned-reclaim-cycles" + TOKEN_SERVER_ID = 414, // "server-id" + TOKEN_LLT = 415, // "LLT" + TOKEN_EN = 416, // "EN" + TOKEN_LL = 417, // "LL" + TOKEN_IDENTIFIER = 418, // "identifier" + TOKEN_HTYPE = 419, // "htype" + TOKEN_TIME = 420, // "time" + TOKEN_ENTERPRISE_ID = 421, // "enterprise-id" + TOKEN_DHCP4O6_PORT = 422, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 423, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 424, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 425, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 426, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 427, // "control-socket" + TOKEN_CONTROL_SOCKETS = 428, // "control-sockets" + TOKEN_SOCKET_TYPE = 429, // "socket-type" + TOKEN_UNIX = 430, // "unix" + TOKEN_HTTP = 431, // "http" + TOKEN_HTTPS = 432, // "https" + TOKEN_SOCKET_NAME = 433, // "socket-name" + TOKEN_SOCKET_ADDRESS = 434, // "socket-address" + TOKEN_SOCKET_PORT = 435, // "socket-port" + TOKEN_AUTHENTICATION = 436, // "authentication" + TOKEN_BASIC = 437, // "basic" + TOKEN_REALM = 438, // "realm" + TOKEN_DIRECTORY = 439, // "directory" + TOKEN_CLIENTS = 440, // "clients" + TOKEN_USER_FILE = 441, // "user-file" + TOKEN_PASSWORD_FILE = 442, // "password-file" + TOKEN_CERT_REQUIRED = 443, // "cert-required" + TOKEN_HTTP_HEADERS = 444, // "http-headers" + TOKEN_VALUE = 445, // "value" + TOKEN_DHCP_QUEUE_CONTROL = 446, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 447, // "enable-queue" + TOKEN_QUEUE_TYPE = 448, // "queue-type" + TOKEN_CAPACITY = 449, // "capacity" + TOKEN_DHCP_DDNS = 450, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 451, // "enable-updates" + TOKEN_SERVER_IP = 452, // "server-ip" + TOKEN_SERVER_PORT = 453, // "server-port" + TOKEN_SENDER_IP = 454, // "sender-ip" + TOKEN_SENDER_PORT = 455, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 456, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 457, // "ncr-protocol" + TOKEN_NCR_FORMAT = 458, // "ncr-format" + TOKEN_UDP = 459, // "UDP" + TOKEN_TCP = 460, // "TCP" + TOKEN_JSON = 461, // "JSON" + TOKEN_WHEN_PRESENT = 462, // "when-present" + TOKEN_NEVER = 463, // "never" + TOKEN_ALWAYS = 464, // "always" + TOKEN_WHEN_NOT_PRESENT = 465, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 466, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 467, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 468, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 469, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 470, // "reservations-lookup-first" + TOKEN_LOGGERS = 471, // "loggers" + TOKEN_OUTPUT_OPTIONS = 472, // "output-options" + TOKEN_OUTPUT = 473, // "output" + TOKEN_DEBUGLEVEL = 474, // "debuglevel" + TOKEN_SEVERITY = 475, // "severity" + TOKEN_FLUSH = 476, // "flush" + TOKEN_MAXSIZE = 477, // "maxsize" + TOKEN_MAXVER = 478, // "maxver" + TOKEN_PATTERN = 479, // "pattern" + TOKEN_COMPATIBILITY = 480, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 481, // "lenient-option-parsing" + TOKEN_TOPLEVEL_JSON = 482, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP6 = 483, // TOPLEVEL_DHCP6 + TOKEN_SUB_DHCP6 = 484, // SUB_DHCP6 + TOKEN_SUB_INTERFACES6 = 485, // SUB_INTERFACES6 + TOKEN_SUB_SUBNET6 = 486, // SUB_SUBNET6 + TOKEN_SUB_POOL6 = 487, // SUB_POOL6 + TOKEN_SUB_PD_POOL = 488, // SUB_PD_POOL + TOKEN_SUB_RESERVATION = 489, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 490, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 491, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 492, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 493, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 494, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 495, // SUB_CONFIG_CONTROL + TOKEN_STRING = 496, // "constant string" + TOKEN_INTEGER = 497, // "integer" + TOKEN_FLOAT = 498, // "floating point" + TOKEN_BOOLEAN = 499 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -751,7 +758,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 239, ///< Number of tokens. + YYNTOKENS = 245, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -801,697 +808,705 @@ namespace isc { namespace dhcp { S_CERT_FILE = 45, // "cert-file" S_KEY_FILE = 46, // "key-file" S_KEY_PASSWORD = 47, // "key-password" - S_CIPHER_LIST = 48, // "cipher-list" - S_PREFERRED_LIFETIME = 49, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 50, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 51, // "max-preferred-lifetime" - S_VALID_LIFETIME = 52, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 53, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 54, // "max-valid-lifetime" - S_RENEW_TIMER = 55, // "renew-timer" - S_REBIND_TIMER = 56, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 57, // "calculate-tee-times" - S_T1_PERCENT = 58, // "t1-percent" - S_T2_PERCENT = 59, // "t2-percent" - S_CACHE_THRESHOLD = 60, // "cache-threshold" - S_CACHE_MAX_AGE = 61, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 62, // "decline-probation-period" - S_SERVER_TAG = 63, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 64, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 65, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 66, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 67, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 68, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 69, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 70, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 71, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 72, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 73, // "ddns-use-conflict-resolution" - S_DDNS_TTL_PERCENT = 74, // "ddns-ttl-percent" - S_DDNS_TTL = 75, // "ddns-ttl" - S_DDNS_TTL_MIN = 76, // "ddns-ttl-min" - S_DDNS_TTL_MAX = 77, // "ddns-ttl-mix" - S_STORE_EXTENDED_INFO = 78, // "store-extended-info" - S_SUBNET6 = 79, // "subnet6" - S_OPTION_DEF = 80, // "option-def" - S_OPTION_DATA = 81, // "option-data" - S_NAME = 82, // "name" - S_DATA = 83, // "data" - S_CODE = 84, // "code" - S_SPACE = 85, // "space" - S_CSV_FORMAT = 86, // "csv-format" - S_ALWAYS_SEND = 87, // "always-send" - S_NEVER_SEND = 88, // "never-send" - S_RECORD_TYPES = 89, // "record-types" - S_ENCAPSULATE = 90, // "encapsulate" - S_ARRAY = 91, // "array" - S_PARKED_PACKET_LIMIT = 92, // "parked-packet-limit" - S_ALLOCATOR = 93, // "allocator" - S_PD_ALLOCATOR = 94, // "pd-allocator" - S_DDNS_CONFLICT_RESOLUTION_MODE = 95, // "ddns-conflict-resolution-mode" - S_CHECK_WITH_DHCID = 96, // "check-with-dhcid" - S_NO_CHECK_WITH_DHCID = 97, // "no-check-with-dhcid" - S_CHECK_EXISTS_WITH_DHCID = 98, // "check-exists-with-dhcid" - S_NO_CHECK_WITHOUT_DHCID = 99, // "no-check-without-dhcid" - S_SHARED_NETWORKS = 100, // "shared-networks" - S_POOLS = 101, // "pools" - S_POOL = 102, // "pool" - S_PD_POOLS = 103, // "pd-pools" - S_PREFIX = 104, // "prefix" - S_PREFIX_LEN = 105, // "prefix-len" - S_EXCLUDED_PREFIX = 106, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 107, // "excluded-prefix-len" - S_DELEGATED_LEN = 108, // "delegated-len" - S_USER_CONTEXT = 109, // "user-context" - S_COMMENT = 110, // "comment" - S_SUBNET = 111, // "subnet" - S_INTERFACE = 112, // "interface" - S_INTERFACE_ID = 113, // "interface-id" - S_ID = 114, // "id" - S_RAPID_COMMIT = 115, // "rapid-commit" - S_RESERVATIONS_GLOBAL = 116, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 117, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 118, // "reservations-out-of-pool" - S_MAC_SOURCES = 119, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 120, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 121, // "host-reservation-identifiers" - S_SANITY_CHECKS = 122, // "sanity-checks" - S_LEASE_CHECKS = 123, // "lease-checks" - S_EXTENDED_INFO_CHECKS = 124, // "extended-info-checks" - S_CLIENT_CLASSES = 125, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 126, // "require-client-classes" - S_EVALUATE_ADDITIONAL_CLASSES = 127, // "evaluate-additional-classes" - S_TEST = 128, // "test" - S_TEMPLATE_TEST = 129, // "template-test" - S_ONLY_IF_REQUIRED = 130, // "only-if-required" - S_ONLY_IN_ADDITIONAL_LIST = 131, // "only-in-additional-list" - S_CLIENT_CLASS = 132, // "client-class" - S_POOL_ID = 133, // "pool-id" - S_RESERVATIONS = 134, // "reservations" - S_IP_ADDRESSES = 135, // "ip-addresses" - S_PREFIXES = 136, // "prefixes" - S_EXCLUDED_PREFIXES = 137, // "excluded-prefixes" - S_DUID = 138, // "duid" - S_HW_ADDRESS = 139, // "hw-address" - S_HOSTNAME = 140, // "hostname" - S_FLEX_ID = 141, // "flex-id" - S_RELAY = 142, // "relay" - S_HOOKS_LIBRARIES = 143, // "hooks-libraries" - S_LIBRARY = 144, // "library" - S_PARAMETERS = 145, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 146, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 147, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 148, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 149, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 150, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 151, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 152, // "unwarned-reclaim-cycles" - S_SERVER_ID = 153, // "server-id" - S_LLT = 154, // "LLT" - S_EN = 155, // "EN" - S_LL = 156, // "LL" - S_IDENTIFIER = 157, // "identifier" - S_HTYPE = 158, // "htype" - S_TIME = 159, // "time" - S_ENTERPRISE_ID = 160, // "enterprise-id" - S_DHCP4O6_PORT = 161, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 162, // "multi-threading" - S_ENABLE_MULTI_THREADING = 163, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 164, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 165, // "packet-queue-size" - S_CONTROL_SOCKET = 166, // "control-socket" - S_CONTROL_SOCKETS = 167, // "control-sockets" - S_SOCKET_TYPE = 168, // "socket-type" - S_UNIX = 169, // "unix" - S_HTTP = 170, // "http" - S_HTTPS = 171, // "https" - S_SOCKET_NAME = 172, // "socket-name" - S_SOCKET_ADDRESS = 173, // "socket-address" - S_SOCKET_PORT = 174, // "socket-port" - S_AUTHENTICATION = 175, // "authentication" - S_BASIC = 176, // "basic" - S_REALM = 177, // "realm" - S_DIRECTORY = 178, // "directory" - S_CLIENTS = 179, // "clients" - S_USER_FILE = 180, // "user-file" - S_PASSWORD_FILE = 181, // "password-file" - S_CERT_REQUIRED = 182, // "cert-required" - S_HTTP_HEADERS = 183, // "http-headers" - S_VALUE = 184, // "value" - S_DHCP_QUEUE_CONTROL = 185, // "dhcp-queue-control" - S_ENABLE_QUEUE = 186, // "enable-queue" - S_QUEUE_TYPE = 187, // "queue-type" - S_CAPACITY = 188, // "capacity" - S_DHCP_DDNS = 189, // "dhcp-ddns" - S_ENABLE_UPDATES = 190, // "enable-updates" - S_SERVER_IP = 191, // "server-ip" - S_SERVER_PORT = 192, // "server-port" - S_SENDER_IP = 193, // "sender-ip" - S_SENDER_PORT = 194, // "sender-port" - S_MAX_QUEUE_SIZE = 195, // "max-queue-size" - S_NCR_PROTOCOL = 196, // "ncr-protocol" - S_NCR_FORMAT = 197, // "ncr-format" - S_UDP = 198, // "UDP" - S_TCP = 199, // "TCP" - S_JSON = 200, // "JSON" - S_WHEN_PRESENT = 201, // "when-present" - S_NEVER = 202, // "never" - S_ALWAYS = 203, // "always" - S_WHEN_NOT_PRESENT = 204, // "when-not-present" - S_HOSTNAME_CHAR_SET = 205, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 206, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 207, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 208, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 209, // "reservations-lookup-first" - S_LOGGERS = 210, // "loggers" - S_OUTPUT_OPTIONS = 211, // "output-options" - S_OUTPUT = 212, // "output" - S_DEBUGLEVEL = 213, // "debuglevel" - S_SEVERITY = 214, // "severity" - S_FLUSH = 215, // "flush" - S_MAXSIZE = 216, // "maxsize" - S_MAXVER = 217, // "maxver" - S_PATTERN = 218, // "pattern" - S_COMPATIBILITY = 219, // "compatibility" - S_LENIENT_OPTION_PARSING = 220, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 221, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 222, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 223, // SUB_DHCP6 - S_SUB_INTERFACES6 = 224, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 225, // SUB_SUBNET6 - S_SUB_POOL6 = 226, // SUB_POOL6 - S_SUB_PD_POOL = 227, // SUB_PD_POOL - S_SUB_RESERVATION = 228, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 229, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 230, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 231, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 232, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 233, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 234, // SUB_CONFIG_CONTROL - S_STRING = 235, // "constant string" - S_INTEGER = 236, // "integer" - S_FLOAT = 237, // "floating point" - S_BOOLEAN = 238, // "boolean" - S_YYACCEPT = 239, // $accept - S_start = 240, // start - S_241_1 = 241, // $@1 - S_242_2 = 242, // $@2 - S_243_3 = 243, // $@3 - S_244_4 = 244, // $@4 - S_245_5 = 245, // $@5 - S_246_6 = 246, // $@6 - S_247_7 = 247, // $@7 - S_248_8 = 248, // $@8 - S_249_9 = 249, // $@9 - S_250_10 = 250, // $@10 - S_251_11 = 251, // $@11 - S_252_12 = 252, // $@12 - S_253_13 = 253, // $@13 - S_254_14 = 254, // $@14 - S_value = 255, // value - S_sub_json = 256, // sub_json - S_map2 = 257, // map2 - S_258_15 = 258, // $@15 - S_map_value = 259, // map_value - S_map_content = 260, // map_content - S_not_empty_map = 261, // not_empty_map - S_list_generic = 262, // list_generic - S_263_16 = 263, // $@16 - S_list_content = 264, // list_content - S_not_empty_list = 265, // not_empty_list - S_list_strings = 266, // list_strings - S_267_17 = 267, // $@17 - S_list_strings_content = 268, // list_strings_content - S_not_empty_list_strings = 269, // not_empty_list_strings - S_unknown_map_entry = 270, // unknown_map_entry - S_syntax_map = 271, // syntax_map - S_272_18 = 272, // $@18 - S_global_object = 273, // global_object - S_274_19 = 274, // $@19 - S_global_object_comma = 275, // global_object_comma - S_sub_dhcp6 = 276, // sub_dhcp6 - S_277_20 = 277, // $@20 - S_global_params = 278, // global_params - S_global_param = 279, // global_param - S_data_directory = 280, // data_directory - S_281_21 = 281, // $@21 - S_preferred_lifetime = 282, // preferred_lifetime - S_min_preferred_lifetime = 283, // min_preferred_lifetime - S_max_preferred_lifetime = 284, // max_preferred_lifetime - S_valid_lifetime = 285, // valid_lifetime - S_min_valid_lifetime = 286, // min_valid_lifetime - S_max_valid_lifetime = 287, // max_valid_lifetime - S_renew_timer = 288, // renew_timer - S_rebind_timer = 289, // rebind_timer - S_calculate_tee_times = 290, // calculate_tee_times - S_t1_percent = 291, // t1_percent - S_t2_percent = 292, // t2_percent - S_cache_threshold = 293, // cache_threshold - S_cache_max_age = 294, // cache_max_age - S_decline_probation_period = 295, // decline_probation_period - S_ddns_send_updates = 296, // ddns_send_updates - S_ddns_override_no_update = 297, // ddns_override_no_update - S_ddns_override_client_update = 298, // ddns_override_client_update - S_ddns_replace_client_name = 299, // ddns_replace_client_name - S_300_22 = 300, // $@22 - S_ddns_replace_client_name_value = 301, // ddns_replace_client_name_value - S_ddns_generated_prefix = 302, // ddns_generated_prefix - S_303_23 = 303, // $@23 - S_ddns_qualifying_suffix = 304, // ddns_qualifying_suffix - S_305_24 = 305, // $@24 - S_ddns_update_on_renew = 306, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 307, // ddns_use_conflict_resolution - S_ddns_conflict_resolution_mode = 308, // ddns_conflict_resolution_mode - S_309_25 = 309, // $@25 - S_ddns_conflict_resolution_mode_value = 310, // ddns_conflict_resolution_mode_value - S_ddns_ttl_percent = 311, // ddns_ttl_percent - S_ddns_ttl = 312, // ddns_ttl - S_ddns_ttl_min = 313, // ddns_ttl_min - S_ddns_ttl_max = 314, // ddns_ttl_max - S_hostname_char_set = 315, // hostname_char_set - S_316_26 = 316, // $@26 - S_hostname_char_replacement = 317, // hostname_char_replacement - S_318_27 = 318, // $@27 - S_store_extended_info = 319, // store_extended_info - S_statistic_default_sample_count = 320, // statistic_default_sample_count - S_statistic_default_sample_age = 321, // statistic_default_sample_age - S_server_tag = 322, // server_tag - S_323_28 = 323, // $@28 - S_parked_packet_limit = 324, // parked_packet_limit - S_allocator = 325, // allocator - S_326_29 = 326, // $@29 - S_pd_allocator = 327, // pd_allocator - S_328_30 = 328, // $@30 - S_early_global_reservations_lookup = 329, // early_global_reservations_lookup - S_ip_reservations_unique = 330, // ip_reservations_unique - S_reservations_lookup_first = 331, // reservations_lookup_first - S_interfaces_config = 332, // interfaces_config - S_333_31 = 333, // $@31 - S_sub_interfaces6 = 334, // sub_interfaces6 - S_335_32 = 335, // $@32 - S_interfaces_config_params = 336, // interfaces_config_params - S_interfaces_config_param = 337, // interfaces_config_param - S_interfaces_list = 338, // interfaces_list - S_339_33 = 339, // $@33 - S_re_detect = 340, // re_detect - S_service_sockets_require_all = 341, // service_sockets_require_all - S_service_sockets_retry_wait_time = 342, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 343, // service_sockets_max_retries - S_lease_database = 344, // lease_database - S_345_34 = 345, // $@34 - S_hosts_database = 346, // hosts_database - S_347_35 = 347, // $@35 - S_hosts_databases = 348, // hosts_databases - S_349_36 = 349, // $@36 - S_database_list = 350, // database_list - S_not_empty_database_list = 351, // not_empty_database_list - S_database = 352, // database - S_353_37 = 353, // $@37 - S_database_map_params = 354, // database_map_params - S_database_map_param = 355, // database_map_param - S_database_type = 356, // database_type - S_357_38 = 357, // $@38 - S_user = 358, // user - S_359_39 = 359, // $@39 - S_password = 360, // password - S_361_40 = 361, // $@40 - S_host = 362, // host - S_363_41 = 363, // $@41 - S_port = 364, // port - S_name = 365, // name - S_366_42 = 366, // $@42 - S_persist = 367, // persist - S_lfc_interval = 368, // lfc_interval - S_readonly = 369, // readonly - S_connect_timeout = 370, // connect_timeout - S_read_timeout = 371, // read_timeout - S_write_timeout = 372, // write_timeout - S_tcp_user_timeout = 373, // tcp_user_timeout - S_reconnect_wait_time = 374, // reconnect_wait_time - S_on_fail = 375, // on_fail - S_376_43 = 376, // $@43 - S_on_fail_mode = 377, // on_fail_mode - S_retry_on_startup = 378, // retry_on_startup - S_max_row_errors = 379, // max_row_errors - S_max_reconnect_tries = 380, // max_reconnect_tries - S_trust_anchor = 381, // trust_anchor - S_382_44 = 382, // $@44 - S_cert_file = 383, // cert_file - S_384_45 = 384, // $@45 - S_key_file = 385, // key_file - S_386_46 = 386, // $@46 - S_key_password = 387, // key_password - S_388_47 = 388, // $@47 - S_cipher_list = 389, // cipher_list - S_390_48 = 390, // $@48 - S_sanity_checks = 391, // sanity_checks - S_392_49 = 392, // $@49 - S_sanity_checks_params = 393, // sanity_checks_params - S_sanity_checks_param = 394, // sanity_checks_param - S_lease_checks = 395, // lease_checks - S_396_50 = 396, // $@50 - S_extended_info_checks = 397, // extended_info_checks - S_398_51 = 398, // $@51 - S_mac_sources = 399, // mac_sources - S_400_52 = 400, // $@52 - S_mac_sources_list = 401, // mac_sources_list - S_mac_sources_value = 402, // mac_sources_value - S_duid_id = 403, // duid_id - S_string_id = 404, // string_id - S_host_reservation_identifiers = 405, // host_reservation_identifiers - S_406_53 = 406, // $@53 - S_host_reservation_identifiers_list = 407, // host_reservation_identifiers_list - S_host_reservation_identifier = 408, // host_reservation_identifier - S_hw_address_id = 409, // hw_address_id - S_flex_id = 410, // flex_id - S_relay_supplied_options = 411, // relay_supplied_options - S_412_54 = 412, // $@54 - S_dhcp_multi_threading = 413, // dhcp_multi_threading - S_414_55 = 414, // $@55 - S_multi_threading_params = 415, // multi_threading_params - S_multi_threading_param = 416, // multi_threading_param - S_enable_multi_threading = 417, // enable_multi_threading - S_thread_pool_size = 418, // thread_pool_size - S_packet_queue_size = 419, // packet_queue_size - S_hooks_libraries = 420, // hooks_libraries - S_421_56 = 421, // $@56 - S_hooks_libraries_list = 422, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 423, // not_empty_hooks_libraries_list - S_hooks_library = 424, // hooks_library - S_425_57 = 425, // $@57 - S_sub_hooks_library = 426, // sub_hooks_library - S_427_58 = 427, // $@58 - S_hooks_params = 428, // hooks_params - S_hooks_param = 429, // hooks_param - S_library = 430, // library - S_431_59 = 431, // $@59 - S_parameters = 432, // parameters - S_433_60 = 433, // $@60 - S_expired_leases_processing = 434, // expired_leases_processing - S_435_61 = 435, // $@61 - S_expired_leases_params = 436, // expired_leases_params - S_expired_leases_param = 437, // expired_leases_param - S_reclaim_timer_wait_time = 438, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 439, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 440, // hold_reclaimed_time - S_max_reclaim_leases = 441, // max_reclaim_leases - S_max_reclaim_time = 442, // max_reclaim_time - S_unwarned_reclaim_cycles = 443, // unwarned_reclaim_cycles - S_subnet6_list = 444, // subnet6_list - S_445_62 = 445, // $@62 - S_subnet6_list_content = 446, // subnet6_list_content - S_not_empty_subnet6_list = 447, // not_empty_subnet6_list - S_subnet6 = 448, // subnet6 - S_449_63 = 449, // $@63 - S_sub_subnet6 = 450, // sub_subnet6 - S_451_64 = 451, // $@64 - S_subnet6_params = 452, // subnet6_params - S_subnet6_param = 453, // subnet6_param - S_subnet = 454, // subnet - S_455_65 = 455, // $@65 - S_interface = 456, // interface - S_457_66 = 457, // $@66 - S_interface_id = 458, // interface_id - S_459_67 = 459, // $@67 - S_client_class = 460, // client_class - S_461_68 = 461, // $@68 - S_network_client_classes = 462, // network_client_classes - S_463_69 = 463, // $@69 - S_require_client_classes = 464, // require_client_classes - S_465_70 = 465, // $@70 - S_evaluate_additional_classes = 466, // evaluate_additional_classes - S_467_71 = 467, // $@71 - S_reservations_global = 468, // reservations_global - S_reservations_in_subnet = 469, // reservations_in_subnet - S_reservations_out_of_pool = 470, // reservations_out_of_pool - S_id = 471, // id - S_rapid_commit = 472, // rapid_commit - S_shared_networks = 473, // shared_networks - S_474_72 = 474, // $@72 - S_shared_networks_content = 475, // shared_networks_content - S_shared_networks_list = 476, // shared_networks_list - S_shared_network = 477, // shared_network - S_478_73 = 478, // $@73 - S_shared_network_params = 479, // shared_network_params - S_shared_network_param = 480, // shared_network_param - S_option_def_list = 481, // option_def_list - S_482_74 = 482, // $@74 - S_sub_option_def_list = 483, // sub_option_def_list - S_484_75 = 484, // $@75 - S_option_def_list_content = 485, // option_def_list_content - S_not_empty_option_def_list = 486, // not_empty_option_def_list - S_option_def_entry = 487, // option_def_entry - S_488_76 = 488, // $@76 - S_sub_option_def = 489, // sub_option_def - S_490_77 = 490, // $@77 - S_option_def_params = 491, // option_def_params - S_not_empty_option_def_params = 492, // not_empty_option_def_params - S_option_def_param = 493, // option_def_param - S_option_def_name = 494, // option_def_name - S_code = 495, // code - S_option_def_code = 496, // option_def_code - S_option_def_type = 497, // option_def_type + S_SSL_MODE = 48, // "ssl-mode" + S_DISABLE = 49, // "disable" + S_PREFER = 50, // "prefer" + S_REQUIRE = 51, // "require" + S_VERIFY_CA = 52, // "verify-ca" + S_VERIFY_FULL = 53, // "verify-full" + S_CIPHER_LIST = 54, // "cipher-list" + S_PREFERRED_LIFETIME = 55, // "preferred-lifetime" + S_MIN_PREFERRED_LIFETIME = 56, // "min-preferred-lifetime" + S_MAX_PREFERRED_LIFETIME = 57, // "max-preferred-lifetime" + S_VALID_LIFETIME = 58, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 59, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 60, // "max-valid-lifetime" + S_RENEW_TIMER = 61, // "renew-timer" + S_REBIND_TIMER = 62, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 63, // "calculate-tee-times" + S_T1_PERCENT = 64, // "t1-percent" + S_T2_PERCENT = 65, // "t2-percent" + S_CACHE_THRESHOLD = 66, // "cache-threshold" + S_CACHE_MAX_AGE = 67, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 68, // "decline-probation-period" + S_SERVER_TAG = 69, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 70, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 71, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 72, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 73, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 74, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 75, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 76, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 77, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 78, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 79, // "ddns-use-conflict-resolution" + S_DDNS_TTL_PERCENT = 80, // "ddns-ttl-percent" + S_DDNS_TTL = 81, // "ddns-ttl" + S_DDNS_TTL_MIN = 82, // "ddns-ttl-min" + S_DDNS_TTL_MAX = 83, // "ddns-ttl-mix" + S_STORE_EXTENDED_INFO = 84, // "store-extended-info" + S_SUBNET6 = 85, // "subnet6" + S_OPTION_DEF = 86, // "option-def" + S_OPTION_DATA = 87, // "option-data" + S_NAME = 88, // "name" + S_DATA = 89, // "data" + S_CODE = 90, // "code" + S_SPACE = 91, // "space" + S_CSV_FORMAT = 92, // "csv-format" + S_ALWAYS_SEND = 93, // "always-send" + S_NEVER_SEND = 94, // "never-send" + S_RECORD_TYPES = 95, // "record-types" + S_ENCAPSULATE = 96, // "encapsulate" + S_ARRAY = 97, // "array" + S_PARKED_PACKET_LIMIT = 98, // "parked-packet-limit" + S_ALLOCATOR = 99, // "allocator" + S_PD_ALLOCATOR = 100, // "pd-allocator" + S_DDNS_CONFLICT_RESOLUTION_MODE = 101, // "ddns-conflict-resolution-mode" + S_CHECK_WITH_DHCID = 102, // "check-with-dhcid" + S_NO_CHECK_WITH_DHCID = 103, // "no-check-with-dhcid" + S_CHECK_EXISTS_WITH_DHCID = 104, // "check-exists-with-dhcid" + S_NO_CHECK_WITHOUT_DHCID = 105, // "no-check-without-dhcid" + S_SHARED_NETWORKS = 106, // "shared-networks" + S_POOLS = 107, // "pools" + S_POOL = 108, // "pool" + S_PD_POOLS = 109, // "pd-pools" + S_PREFIX = 110, // "prefix" + S_PREFIX_LEN = 111, // "prefix-len" + S_EXCLUDED_PREFIX = 112, // "excluded-prefix" + S_EXCLUDED_PREFIX_LEN = 113, // "excluded-prefix-len" + S_DELEGATED_LEN = 114, // "delegated-len" + S_USER_CONTEXT = 115, // "user-context" + S_COMMENT = 116, // "comment" + S_SUBNET = 117, // "subnet" + S_INTERFACE = 118, // "interface" + S_INTERFACE_ID = 119, // "interface-id" + S_ID = 120, // "id" + S_RAPID_COMMIT = 121, // "rapid-commit" + S_RESERVATIONS_GLOBAL = 122, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 123, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 124, // "reservations-out-of-pool" + S_MAC_SOURCES = 125, // "mac-sources" + S_RELAY_SUPPLIED_OPTIONS = 126, // "relay-supplied-options" + S_HOST_RESERVATION_IDENTIFIERS = 127, // "host-reservation-identifiers" + S_SANITY_CHECKS = 128, // "sanity-checks" + S_LEASE_CHECKS = 129, // "lease-checks" + S_EXTENDED_INFO_CHECKS = 130, // "extended-info-checks" + S_CLIENT_CLASSES = 131, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 132, // "require-client-classes" + S_EVALUATE_ADDITIONAL_CLASSES = 133, // "evaluate-additional-classes" + S_TEST = 134, // "test" + S_TEMPLATE_TEST = 135, // "template-test" + S_ONLY_IF_REQUIRED = 136, // "only-if-required" + S_ONLY_IN_ADDITIONAL_LIST = 137, // "only-in-additional-list" + S_CLIENT_CLASS = 138, // "client-class" + S_POOL_ID = 139, // "pool-id" + S_RESERVATIONS = 140, // "reservations" + S_IP_ADDRESSES = 141, // "ip-addresses" + S_PREFIXES = 142, // "prefixes" + S_EXCLUDED_PREFIXES = 143, // "excluded-prefixes" + S_DUID = 144, // "duid" + S_HW_ADDRESS = 145, // "hw-address" + S_HOSTNAME = 146, // "hostname" + S_FLEX_ID = 147, // "flex-id" + S_RELAY = 148, // "relay" + S_HOOKS_LIBRARIES = 149, // "hooks-libraries" + S_LIBRARY = 150, // "library" + S_PARAMETERS = 151, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 152, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 153, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 154, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 155, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 156, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 157, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 158, // "unwarned-reclaim-cycles" + S_SERVER_ID = 159, // "server-id" + S_LLT = 160, // "LLT" + S_EN = 161, // "EN" + S_LL = 162, // "LL" + S_IDENTIFIER = 163, // "identifier" + S_HTYPE = 164, // "htype" + S_TIME = 165, // "time" + S_ENTERPRISE_ID = 166, // "enterprise-id" + S_DHCP4O6_PORT = 167, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 168, // "multi-threading" + S_ENABLE_MULTI_THREADING = 169, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 170, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 171, // "packet-queue-size" + S_CONTROL_SOCKET = 172, // "control-socket" + S_CONTROL_SOCKETS = 173, // "control-sockets" + S_SOCKET_TYPE = 174, // "socket-type" + S_UNIX = 175, // "unix" + S_HTTP = 176, // "http" + S_HTTPS = 177, // "https" + S_SOCKET_NAME = 178, // "socket-name" + S_SOCKET_ADDRESS = 179, // "socket-address" + S_SOCKET_PORT = 180, // "socket-port" + S_AUTHENTICATION = 181, // "authentication" + S_BASIC = 182, // "basic" + S_REALM = 183, // "realm" + S_DIRECTORY = 184, // "directory" + S_CLIENTS = 185, // "clients" + S_USER_FILE = 186, // "user-file" + S_PASSWORD_FILE = 187, // "password-file" + S_CERT_REQUIRED = 188, // "cert-required" + S_HTTP_HEADERS = 189, // "http-headers" + S_VALUE = 190, // "value" + S_DHCP_QUEUE_CONTROL = 191, // "dhcp-queue-control" + S_ENABLE_QUEUE = 192, // "enable-queue" + S_QUEUE_TYPE = 193, // "queue-type" + S_CAPACITY = 194, // "capacity" + S_DHCP_DDNS = 195, // "dhcp-ddns" + S_ENABLE_UPDATES = 196, // "enable-updates" + S_SERVER_IP = 197, // "server-ip" + S_SERVER_PORT = 198, // "server-port" + S_SENDER_IP = 199, // "sender-ip" + S_SENDER_PORT = 200, // "sender-port" + S_MAX_QUEUE_SIZE = 201, // "max-queue-size" + S_NCR_PROTOCOL = 202, // "ncr-protocol" + S_NCR_FORMAT = 203, // "ncr-format" + S_UDP = 204, // "UDP" + S_TCP = 205, // "TCP" + S_JSON = 206, // "JSON" + S_WHEN_PRESENT = 207, // "when-present" + S_NEVER = 208, // "never" + S_ALWAYS = 209, // "always" + S_WHEN_NOT_PRESENT = 210, // "when-not-present" + S_HOSTNAME_CHAR_SET = 211, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 212, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 213, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 214, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 215, // "reservations-lookup-first" + S_LOGGERS = 216, // "loggers" + S_OUTPUT_OPTIONS = 217, // "output-options" + S_OUTPUT = 218, // "output" + S_DEBUGLEVEL = 219, // "debuglevel" + S_SEVERITY = 220, // "severity" + S_FLUSH = 221, // "flush" + S_MAXSIZE = 222, // "maxsize" + S_MAXVER = 223, // "maxver" + S_PATTERN = 224, // "pattern" + S_COMPATIBILITY = 225, // "compatibility" + S_LENIENT_OPTION_PARSING = 226, // "lenient-option-parsing" + S_TOPLEVEL_JSON = 227, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP6 = 228, // TOPLEVEL_DHCP6 + S_SUB_DHCP6 = 229, // SUB_DHCP6 + S_SUB_INTERFACES6 = 230, // SUB_INTERFACES6 + S_SUB_SUBNET6 = 231, // SUB_SUBNET6 + S_SUB_POOL6 = 232, // SUB_POOL6 + S_SUB_PD_POOL = 233, // SUB_PD_POOL + S_SUB_RESERVATION = 234, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 235, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 236, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 237, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 238, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 239, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 240, // SUB_CONFIG_CONTROL + S_STRING = 241, // "constant string" + S_INTEGER = 242, // "integer" + S_FLOAT = 243, // "floating point" + S_BOOLEAN = 244, // "boolean" + S_YYACCEPT = 245, // $accept + S_start = 246, // start + S_247_1 = 247, // $@1 + S_248_2 = 248, // $@2 + S_249_3 = 249, // $@3 + S_250_4 = 250, // $@4 + S_251_5 = 251, // $@5 + S_252_6 = 252, // $@6 + S_253_7 = 253, // $@7 + S_254_8 = 254, // $@8 + S_255_9 = 255, // $@9 + S_256_10 = 256, // $@10 + S_257_11 = 257, // $@11 + S_258_12 = 258, // $@12 + S_259_13 = 259, // $@13 + S_260_14 = 260, // $@14 + S_value = 261, // value + S_sub_json = 262, // sub_json + S_map2 = 263, // map2 + S_264_15 = 264, // $@15 + S_map_value = 265, // map_value + S_map_content = 266, // map_content + S_not_empty_map = 267, // not_empty_map + S_list_generic = 268, // list_generic + S_269_16 = 269, // $@16 + S_list_content = 270, // list_content + S_not_empty_list = 271, // not_empty_list + S_list_strings = 272, // list_strings + S_273_17 = 273, // $@17 + S_list_strings_content = 274, // list_strings_content + S_not_empty_list_strings = 275, // not_empty_list_strings + S_unknown_map_entry = 276, // unknown_map_entry + S_syntax_map = 277, // syntax_map + S_278_18 = 278, // $@18 + S_global_object = 279, // global_object + S_280_19 = 280, // $@19 + S_global_object_comma = 281, // global_object_comma + S_sub_dhcp6 = 282, // sub_dhcp6 + S_283_20 = 283, // $@20 + S_global_params = 284, // global_params + S_global_param = 285, // global_param + S_data_directory = 286, // data_directory + S_287_21 = 287, // $@21 + S_preferred_lifetime = 288, // preferred_lifetime + S_min_preferred_lifetime = 289, // min_preferred_lifetime + S_max_preferred_lifetime = 290, // max_preferred_lifetime + S_valid_lifetime = 291, // valid_lifetime + S_min_valid_lifetime = 292, // min_valid_lifetime + S_max_valid_lifetime = 293, // max_valid_lifetime + S_renew_timer = 294, // renew_timer + S_rebind_timer = 295, // rebind_timer + S_calculate_tee_times = 296, // calculate_tee_times + S_t1_percent = 297, // t1_percent + S_t2_percent = 298, // t2_percent + S_cache_threshold = 299, // cache_threshold + S_cache_max_age = 300, // cache_max_age + S_decline_probation_period = 301, // decline_probation_period + S_ddns_send_updates = 302, // ddns_send_updates + S_ddns_override_no_update = 303, // ddns_override_no_update + S_ddns_override_client_update = 304, // ddns_override_client_update + S_ddns_replace_client_name = 305, // ddns_replace_client_name + S_306_22 = 306, // $@22 + S_ddns_replace_client_name_value = 307, // ddns_replace_client_name_value + S_ddns_generated_prefix = 308, // ddns_generated_prefix + S_309_23 = 309, // $@23 + S_ddns_qualifying_suffix = 310, // ddns_qualifying_suffix + S_311_24 = 311, // $@24 + S_ddns_update_on_renew = 312, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 313, // ddns_use_conflict_resolution + S_ddns_conflict_resolution_mode = 314, // ddns_conflict_resolution_mode + S_315_25 = 315, // $@25 + S_ddns_conflict_resolution_mode_value = 316, // ddns_conflict_resolution_mode_value + S_ddns_ttl_percent = 317, // ddns_ttl_percent + S_ddns_ttl = 318, // ddns_ttl + S_ddns_ttl_min = 319, // ddns_ttl_min + S_ddns_ttl_max = 320, // ddns_ttl_max + S_hostname_char_set = 321, // hostname_char_set + S_322_26 = 322, // $@26 + S_hostname_char_replacement = 323, // hostname_char_replacement + S_324_27 = 324, // $@27 + S_store_extended_info = 325, // store_extended_info + S_statistic_default_sample_count = 326, // statistic_default_sample_count + S_statistic_default_sample_age = 327, // statistic_default_sample_age + S_server_tag = 328, // server_tag + S_329_28 = 329, // $@28 + S_parked_packet_limit = 330, // parked_packet_limit + S_allocator = 331, // allocator + S_332_29 = 332, // $@29 + S_pd_allocator = 333, // pd_allocator + S_334_30 = 334, // $@30 + S_early_global_reservations_lookup = 335, // early_global_reservations_lookup + S_ip_reservations_unique = 336, // ip_reservations_unique + S_reservations_lookup_first = 337, // reservations_lookup_first + S_interfaces_config = 338, // interfaces_config + S_339_31 = 339, // $@31 + S_sub_interfaces6 = 340, // sub_interfaces6 + S_341_32 = 341, // $@32 + S_interfaces_config_params = 342, // interfaces_config_params + S_interfaces_config_param = 343, // interfaces_config_param + S_interfaces_list = 344, // interfaces_list + S_345_33 = 345, // $@33 + S_re_detect = 346, // re_detect + S_service_sockets_require_all = 347, // service_sockets_require_all + S_service_sockets_retry_wait_time = 348, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 349, // service_sockets_max_retries + S_lease_database = 350, // lease_database + S_351_34 = 351, // $@34 + S_hosts_database = 352, // hosts_database + S_353_35 = 353, // $@35 + S_hosts_databases = 354, // hosts_databases + S_355_36 = 355, // $@36 + S_database_list = 356, // database_list + S_not_empty_database_list = 357, // not_empty_database_list + S_database = 358, // database + S_359_37 = 359, // $@37 + S_database_map_params = 360, // database_map_params + S_database_map_param = 361, // database_map_param + S_database_type = 362, // database_type + S_363_38 = 363, // $@38 + S_user = 364, // user + S_365_39 = 365, // $@39 + S_password = 366, // password + S_367_40 = 367, // $@40 + S_host = 368, // host + S_369_41 = 369, // $@41 + S_port = 370, // port + S_name = 371, // name + S_372_42 = 372, // $@42 + S_persist = 373, // persist + S_lfc_interval = 374, // lfc_interval + S_readonly = 375, // readonly + S_connect_timeout = 376, // connect_timeout + S_read_timeout = 377, // read_timeout + S_write_timeout = 378, // write_timeout + S_tcp_user_timeout = 379, // tcp_user_timeout + S_reconnect_wait_time = 380, // reconnect_wait_time + S_on_fail = 381, // on_fail + S_382_43 = 382, // $@43 + S_on_fail_mode = 383, // on_fail_mode + S_retry_on_startup = 384, // retry_on_startup + S_max_row_errors = 385, // max_row_errors + S_max_reconnect_tries = 386, // max_reconnect_tries + S_trust_anchor = 387, // trust_anchor + S_388_44 = 388, // $@44 + S_cert_file = 389, // cert_file + S_390_45 = 390, // $@45 + S_key_file = 391, // key_file + S_392_46 = 392, // $@46 + S_key_password = 393, // key_password + S_394_47 = 394, // $@47 + S_ssl_mode = 395, // ssl_mode + S_396_48 = 396, // $@48 + S_cipher_list = 397, // cipher_list + S_398_49 = 398, // $@49 + S_sanity_checks = 399, // sanity_checks + S_400_50 = 400, // $@50 + S_sanity_checks_params = 401, // sanity_checks_params + S_sanity_checks_param = 402, // sanity_checks_param + S_lease_checks = 403, // lease_checks + S_404_51 = 404, // $@51 + S_extended_info_checks = 405, // extended_info_checks + S_406_52 = 406, // $@52 + S_mac_sources = 407, // mac_sources + S_408_53 = 408, // $@53 + S_mac_sources_list = 409, // mac_sources_list + S_mac_sources_value = 410, // mac_sources_value + S_duid_id = 411, // duid_id + S_string_id = 412, // string_id + S_host_reservation_identifiers = 413, // host_reservation_identifiers + S_414_54 = 414, // $@54 + S_host_reservation_identifiers_list = 415, // host_reservation_identifiers_list + S_host_reservation_identifier = 416, // host_reservation_identifier + S_hw_address_id = 417, // hw_address_id + S_flex_id = 418, // flex_id + S_relay_supplied_options = 419, // relay_supplied_options + S_420_55 = 420, // $@55 + S_dhcp_multi_threading = 421, // dhcp_multi_threading + S_422_56 = 422, // $@56 + S_multi_threading_params = 423, // multi_threading_params + S_multi_threading_param = 424, // multi_threading_param + S_enable_multi_threading = 425, // enable_multi_threading + S_thread_pool_size = 426, // thread_pool_size + S_packet_queue_size = 427, // packet_queue_size + S_hooks_libraries = 428, // hooks_libraries + S_429_57 = 429, // $@57 + S_hooks_libraries_list = 430, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 431, // not_empty_hooks_libraries_list + S_hooks_library = 432, // hooks_library + S_433_58 = 433, // $@58 + S_sub_hooks_library = 434, // sub_hooks_library + S_435_59 = 435, // $@59 + S_hooks_params = 436, // hooks_params + S_hooks_param = 437, // hooks_param + S_library = 438, // library + S_439_60 = 439, // $@60 + S_parameters = 440, // parameters + S_441_61 = 441, // $@61 + S_expired_leases_processing = 442, // expired_leases_processing + S_443_62 = 443, // $@62 + S_expired_leases_params = 444, // expired_leases_params + S_expired_leases_param = 445, // expired_leases_param + S_reclaim_timer_wait_time = 446, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 447, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 448, // hold_reclaimed_time + S_max_reclaim_leases = 449, // max_reclaim_leases + S_max_reclaim_time = 450, // max_reclaim_time + S_unwarned_reclaim_cycles = 451, // unwarned_reclaim_cycles + S_subnet6_list = 452, // subnet6_list + S_453_63 = 453, // $@63 + S_subnet6_list_content = 454, // subnet6_list_content + S_not_empty_subnet6_list = 455, // not_empty_subnet6_list + S_subnet6 = 456, // subnet6 + S_457_64 = 457, // $@64 + S_sub_subnet6 = 458, // sub_subnet6 + S_459_65 = 459, // $@65 + S_subnet6_params = 460, // subnet6_params + S_subnet6_param = 461, // subnet6_param + S_subnet = 462, // subnet + S_463_66 = 463, // $@66 + S_interface = 464, // interface + S_465_67 = 465, // $@67 + S_interface_id = 466, // interface_id + S_467_68 = 467, // $@68 + S_client_class = 468, // client_class + S_469_69 = 469, // $@69 + S_network_client_classes = 470, // network_client_classes + S_471_70 = 471, // $@70 + S_require_client_classes = 472, // require_client_classes + S_473_71 = 473, // $@71 + S_evaluate_additional_classes = 474, // evaluate_additional_classes + S_475_72 = 475, // $@72 + S_reservations_global = 476, // reservations_global + S_reservations_in_subnet = 477, // reservations_in_subnet + S_reservations_out_of_pool = 478, // reservations_out_of_pool + S_id = 479, // id + S_rapid_commit = 480, // rapid_commit + S_shared_networks = 481, // shared_networks + S_482_73 = 482, // $@73 + S_shared_networks_content = 483, // shared_networks_content + S_shared_networks_list = 484, // shared_networks_list + S_shared_network = 485, // shared_network + S_486_74 = 486, // $@74 + S_shared_network_params = 487, // shared_network_params + S_shared_network_param = 488, // shared_network_param + S_option_def_list = 489, // option_def_list + S_490_75 = 490, // $@75 + S_sub_option_def_list = 491, // sub_option_def_list + S_492_76 = 492, // $@76 + S_option_def_list_content = 493, // option_def_list_content + S_not_empty_option_def_list = 494, // not_empty_option_def_list + S_option_def_entry = 495, // option_def_entry + S_496_77 = 496, // $@77 + S_sub_option_def = 497, // sub_option_def S_498_78 = 498, // $@78 - S_option_def_record_types = 499, // option_def_record_types - S_500_79 = 500, // $@79 - S_space = 501, // space - S_502_80 = 502, // $@80 - S_option_def_space = 503, // option_def_space - S_option_def_encapsulate = 504, // option_def_encapsulate - S_505_81 = 505, // $@81 - S_option_def_array = 506, // option_def_array - S_option_data_list = 507, // option_data_list - S_508_82 = 508, // $@82 - S_option_data_list_content = 509, // option_data_list_content - S_not_empty_option_data_list = 510, // not_empty_option_data_list - S_option_data_entry = 511, // option_data_entry - S_512_83 = 512, // $@83 - S_sub_option_data = 513, // sub_option_data - S_514_84 = 514, // $@84 - S_option_data_params = 515, // option_data_params - S_not_empty_option_data_params = 516, // not_empty_option_data_params - S_option_data_param = 517, // option_data_param - S_option_data_name = 518, // option_data_name - S_option_data_data = 519, // option_data_data - S_520_85 = 520, // $@85 - S_option_data_code = 521, // option_data_code - S_option_data_space = 522, // option_data_space - S_option_data_csv_format = 523, // option_data_csv_format - S_option_data_always_send = 524, // option_data_always_send - S_option_data_never_send = 525, // option_data_never_send - S_option_data_client_classes = 526, // option_data_client_classes - S_527_86 = 527, // $@86 - S_pools_list = 528, // pools_list - S_529_87 = 529, // $@87 - S_pools_list_content = 530, // pools_list_content - S_not_empty_pools_list = 531, // not_empty_pools_list - S_pool_list_entry = 532, // pool_list_entry - S_533_88 = 533, // $@88 - S_sub_pool6 = 534, // sub_pool6 - S_535_89 = 535, // $@89 - S_pool_params = 536, // pool_params - S_pool_param = 537, // pool_param - S_pool_entry = 538, // pool_entry - S_539_90 = 539, // $@90 - S_pool_id = 540, // pool_id - S_user_context = 541, // user_context - S_542_91 = 542, // $@91 - S_comment = 543, // comment - S_544_92 = 544, // $@92 - S_pd_pools_list = 545, // pd_pools_list - S_546_93 = 546, // $@93 - S_pd_pools_list_content = 547, // pd_pools_list_content - S_not_empty_pd_pools_list = 548, // not_empty_pd_pools_list - S_pd_pool_entry = 549, // pd_pool_entry - S_550_94 = 550, // $@94 - S_sub_pd_pool = 551, // sub_pd_pool - S_552_95 = 552, // $@95 - S_pd_pool_params = 553, // pd_pool_params - S_pd_pool_param = 554, // pd_pool_param - S_pd_prefix = 555, // pd_prefix - S_556_96 = 556, // $@96 - S_pd_prefix_len = 557, // pd_prefix_len - S_excluded_prefix = 558, // excluded_prefix - S_559_97 = 559, // $@97 - S_excluded_prefix_len = 560, // excluded_prefix_len - S_pd_delegated_len = 561, // pd_delegated_len - S_reservations = 562, // reservations - S_563_98 = 563, // $@98 - S_reservations_list = 564, // reservations_list - S_not_empty_reservations_list = 565, // not_empty_reservations_list - S_reservation = 566, // reservation - S_567_99 = 567, // $@99 - S_sub_reservation = 568, // sub_reservation - S_569_100 = 569, // $@100 - S_reservation_params = 570, // reservation_params - S_not_empty_reservation_params = 571, // not_empty_reservation_params - S_reservation_param = 572, // reservation_param - S_ip_addresses = 573, // ip_addresses - S_574_101 = 574, // $@101 - S_prefixes = 575, // prefixes - S_576_102 = 576, // $@102 - S_excluded_prefixes = 577, // excluded_prefixes - S_578_103 = 578, // $@103 - S_duid = 579, // duid - S_580_104 = 580, // $@104 - S_hw_address = 581, // hw_address - S_582_105 = 582, // $@105 - S_hostname = 583, // hostname - S_584_106 = 584, // $@106 - S_flex_id_value = 585, // flex_id_value - S_586_107 = 586, // $@107 - S_reservation_client_classes = 587, // reservation_client_classes - S_588_108 = 588, // $@108 - S_relay = 589, // relay - S_590_109 = 590, // $@109 - S_relay_map = 591, // relay_map - S_client_classes = 592, // client_classes - S_593_110 = 593, // $@110 - S_client_classes_list = 594, // client_classes_list - S_client_class_entry = 595, // client_class_entry - S_596_111 = 596, // $@111 - S_client_class_params = 597, // client_class_params - S_not_empty_client_class_params = 598, // not_empty_client_class_params - S_client_class_param = 599, // client_class_param - S_client_class_name = 600, // client_class_name - S_client_class_test = 601, // client_class_test - S_602_112 = 602, // $@112 - S_client_class_template_test = 603, // client_class_template_test - S_604_113 = 604, // $@113 - S_only_if_required = 605, // only_if_required - S_only_in_additional_list = 606, // only_in_additional_list - S_server_id = 607, // server_id - S_608_114 = 608, // $@114 - S_server_id_params = 609, // server_id_params - S_server_id_param = 610, // server_id_param - S_server_id_type = 611, // server_id_type - S_612_115 = 612, // $@115 - S_duid_type = 613, // duid_type - S_htype = 614, // htype - S_identifier = 615, // identifier - S_616_116 = 616, // $@116 - S_time = 617, // time - S_enterprise_id = 618, // enterprise_id - S_dhcp4o6_port = 619, // dhcp4o6_port - S_control_socket = 620, // control_socket - S_621_117 = 621, // $@117 - S_control_sockets = 622, // control_sockets - S_623_118 = 623, // $@118 - S_control_socket_list = 624, // control_socket_list - S_not_empty_control_socket_list = 625, // not_empty_control_socket_list - S_control_socket_entry = 626, // control_socket_entry - S_627_119 = 627, // $@119 - S_control_socket_params = 628, // control_socket_params - S_control_socket_param = 629, // control_socket_param - S_control_socket_type = 630, // control_socket_type - S_631_120 = 631, // $@120 - S_control_socket_type_value = 632, // control_socket_type_value - S_control_socket_name = 633, // control_socket_name - S_634_121 = 634, // $@121 - S_control_socket_address = 635, // control_socket_address - S_636_122 = 636, // $@122 - S_control_socket_port = 637, // control_socket_port - S_cert_required = 638, // cert_required - S_http_headers = 639, // http_headers - S_640_123 = 640, // $@123 - S_http_header_list = 641, // http_header_list - S_not_empty_http_header_list = 642, // not_empty_http_header_list - S_http_header = 643, // http_header - S_644_124 = 644, // $@124 - S_http_header_params = 645, // http_header_params - S_http_header_param = 646, // http_header_param - S_header_value = 647, // header_value - S_648_125 = 648, // $@125 - S_authentication = 649, // authentication - S_650_126 = 650, // $@126 - S_auth_params = 651, // auth_params - S_auth_param = 652, // auth_param - S_auth_type = 653, // auth_type - S_654_127 = 654, // $@127 - S_auth_type_value = 655, // auth_type_value - S_realm = 656, // realm - S_657_128 = 657, // $@128 - S_directory = 658, // directory - S_659_129 = 659, // $@129 - S_clients = 660, // clients - S_661_130 = 661, // $@130 - S_clients_list = 662, // clients_list - S_not_empty_clients_list = 663, // not_empty_clients_list - S_basic_auth = 664, // basic_auth - S_665_131 = 665, // $@131 - S_clients_params = 666, // clients_params - S_clients_param = 667, // clients_param - S_user_file = 668, // user_file - S_669_132 = 669, // $@132 - S_password_file = 670, // password_file - S_671_133 = 671, // $@133 - S_dhcp_queue_control = 672, // dhcp_queue_control - S_673_134 = 673, // $@134 - S_queue_control_params = 674, // queue_control_params - S_queue_control_param = 675, // queue_control_param - S_enable_queue = 676, // enable_queue - S_queue_type = 677, // queue_type - S_678_135 = 678, // $@135 - S_capacity = 679, // capacity - S_arbitrary_map_entry = 680, // arbitrary_map_entry - S_681_136 = 681, // $@136 - S_dhcp_ddns = 682, // dhcp_ddns - S_683_137 = 683, // $@137 - S_sub_dhcp_ddns = 684, // sub_dhcp_ddns - S_685_138 = 685, // $@138 - S_dhcp_ddns_params = 686, // dhcp_ddns_params - S_dhcp_ddns_param = 687, // dhcp_ddns_param - S_enable_updates = 688, // enable_updates - S_server_ip = 689, // server_ip - S_690_139 = 690, // $@139 - S_server_port = 691, // server_port - S_sender_ip = 692, // sender_ip - S_693_140 = 693, // $@140 - S_sender_port = 694, // sender_port - S_max_queue_size = 695, // max_queue_size - S_ncr_protocol = 696, // ncr_protocol - S_697_141 = 697, // $@141 - S_ncr_protocol_value = 698, // ncr_protocol_value - S_ncr_format = 699, // ncr_format - S_700_142 = 700, // $@142 - S_config_control = 701, // config_control - S_702_143 = 702, // $@143 - S_sub_config_control = 703, // sub_config_control - S_704_144 = 704, // $@144 - S_config_control_params = 705, // config_control_params - S_config_control_param = 706, // config_control_param - S_config_databases = 707, // config_databases - S_708_145 = 708, // $@145 - S_config_fetch_wait_time = 709, // config_fetch_wait_time - S_loggers = 710, // loggers - S_711_146 = 711, // $@146 - S_loggers_entries = 712, // loggers_entries - S_logger_entry = 713, // logger_entry - S_714_147 = 714, // $@147 - S_logger_params = 715, // logger_params - S_logger_param = 716, // logger_param - S_debuglevel = 717, // debuglevel - S_severity = 718, // severity - S_719_148 = 719, // $@148 - S_output_options_list = 720, // output_options_list - S_721_149 = 721, // $@149 - S_output_options_list_content = 722, // output_options_list_content - S_output_entry = 723, // output_entry - S_724_150 = 724, // $@150 - S_output_params_list = 725, // output_params_list - S_output_params = 726, // output_params - S_output = 727, // output - S_728_151 = 728, // $@151 - S_flush = 729, // flush - S_maxsize = 730, // maxsize - S_maxver = 731, // maxver - S_pattern = 732, // pattern - S_733_152 = 733, // $@152 - S_compatibility = 734, // compatibility - S_735_153 = 735, // $@153 - S_compatibility_params = 736, // compatibility_params - S_compatibility_param = 737, // compatibility_param - S_lenient_option_parsing = 738 // lenient_option_parsing + S_option_def_params = 499, // option_def_params + S_not_empty_option_def_params = 500, // not_empty_option_def_params + S_option_def_param = 501, // option_def_param + S_option_def_name = 502, // option_def_name + S_code = 503, // code + S_option_def_code = 504, // option_def_code + S_option_def_type = 505, // option_def_type + S_506_79 = 506, // $@79 + S_option_def_record_types = 507, // option_def_record_types + S_508_80 = 508, // $@80 + S_space = 509, // space + S_510_81 = 510, // $@81 + S_option_def_space = 511, // option_def_space + S_option_def_encapsulate = 512, // option_def_encapsulate + S_513_82 = 513, // $@82 + S_option_def_array = 514, // option_def_array + S_option_data_list = 515, // option_data_list + S_516_83 = 516, // $@83 + S_option_data_list_content = 517, // option_data_list_content + S_not_empty_option_data_list = 518, // not_empty_option_data_list + S_option_data_entry = 519, // option_data_entry + S_520_84 = 520, // $@84 + S_sub_option_data = 521, // sub_option_data + S_522_85 = 522, // $@85 + S_option_data_params = 523, // option_data_params + S_not_empty_option_data_params = 524, // not_empty_option_data_params + S_option_data_param = 525, // option_data_param + S_option_data_name = 526, // option_data_name + S_option_data_data = 527, // option_data_data + S_528_86 = 528, // $@86 + S_option_data_code = 529, // option_data_code + S_option_data_space = 530, // option_data_space + S_option_data_csv_format = 531, // option_data_csv_format + S_option_data_always_send = 532, // option_data_always_send + S_option_data_never_send = 533, // option_data_never_send + S_option_data_client_classes = 534, // option_data_client_classes + S_535_87 = 535, // $@87 + S_pools_list = 536, // pools_list + S_537_88 = 537, // $@88 + S_pools_list_content = 538, // pools_list_content + S_not_empty_pools_list = 539, // not_empty_pools_list + S_pool_list_entry = 540, // pool_list_entry + S_541_89 = 541, // $@89 + S_sub_pool6 = 542, // sub_pool6 + S_543_90 = 543, // $@90 + S_pool_params = 544, // pool_params + S_pool_param = 545, // pool_param + S_pool_entry = 546, // pool_entry + S_547_91 = 547, // $@91 + S_pool_id = 548, // pool_id + S_user_context = 549, // user_context + S_550_92 = 550, // $@92 + S_comment = 551, // comment + S_552_93 = 552, // $@93 + S_pd_pools_list = 553, // pd_pools_list + S_554_94 = 554, // $@94 + S_pd_pools_list_content = 555, // pd_pools_list_content + S_not_empty_pd_pools_list = 556, // not_empty_pd_pools_list + S_pd_pool_entry = 557, // pd_pool_entry + S_558_95 = 558, // $@95 + S_sub_pd_pool = 559, // sub_pd_pool + S_560_96 = 560, // $@96 + S_pd_pool_params = 561, // pd_pool_params + S_pd_pool_param = 562, // pd_pool_param + S_pd_prefix = 563, // pd_prefix + S_564_97 = 564, // $@97 + S_pd_prefix_len = 565, // pd_prefix_len + S_excluded_prefix = 566, // excluded_prefix + S_567_98 = 567, // $@98 + S_excluded_prefix_len = 568, // excluded_prefix_len + S_pd_delegated_len = 569, // pd_delegated_len + S_reservations = 570, // reservations + S_571_99 = 571, // $@99 + S_reservations_list = 572, // reservations_list + S_not_empty_reservations_list = 573, // not_empty_reservations_list + S_reservation = 574, // reservation + S_575_100 = 575, // $@100 + S_sub_reservation = 576, // sub_reservation + S_577_101 = 577, // $@101 + S_reservation_params = 578, // reservation_params + S_not_empty_reservation_params = 579, // not_empty_reservation_params + S_reservation_param = 580, // reservation_param + S_ip_addresses = 581, // ip_addresses + S_582_102 = 582, // $@102 + S_prefixes = 583, // prefixes + S_584_103 = 584, // $@103 + S_excluded_prefixes = 585, // excluded_prefixes + S_586_104 = 586, // $@104 + S_duid = 587, // duid + S_588_105 = 588, // $@105 + S_hw_address = 589, // hw_address + S_590_106 = 590, // $@106 + S_hostname = 591, // hostname + S_592_107 = 592, // $@107 + S_flex_id_value = 593, // flex_id_value + S_594_108 = 594, // $@108 + S_reservation_client_classes = 595, // reservation_client_classes + S_596_109 = 596, // $@109 + S_relay = 597, // relay + S_598_110 = 598, // $@110 + S_relay_map = 599, // relay_map + S_client_classes = 600, // client_classes + S_601_111 = 601, // $@111 + S_client_classes_list = 602, // client_classes_list + S_client_class_entry = 603, // client_class_entry + S_604_112 = 604, // $@112 + S_client_class_params = 605, // client_class_params + S_not_empty_client_class_params = 606, // not_empty_client_class_params + S_client_class_param = 607, // client_class_param + S_client_class_name = 608, // client_class_name + S_client_class_test = 609, // client_class_test + S_610_113 = 610, // $@113 + S_client_class_template_test = 611, // client_class_template_test + S_612_114 = 612, // $@114 + S_only_if_required = 613, // only_if_required + S_only_in_additional_list = 614, // only_in_additional_list + S_server_id = 615, // server_id + S_616_115 = 616, // $@115 + S_server_id_params = 617, // server_id_params + S_server_id_param = 618, // server_id_param + S_server_id_type = 619, // server_id_type + S_620_116 = 620, // $@116 + S_duid_type = 621, // duid_type + S_htype = 622, // htype + S_identifier = 623, // identifier + S_624_117 = 624, // $@117 + S_time = 625, // time + S_enterprise_id = 626, // enterprise_id + S_dhcp4o6_port = 627, // dhcp4o6_port + S_control_socket = 628, // control_socket + S_629_118 = 629, // $@118 + S_control_sockets = 630, // control_sockets + S_631_119 = 631, // $@119 + S_control_socket_list = 632, // control_socket_list + S_not_empty_control_socket_list = 633, // not_empty_control_socket_list + S_control_socket_entry = 634, // control_socket_entry + S_635_120 = 635, // $@120 + S_control_socket_params = 636, // control_socket_params + S_control_socket_param = 637, // control_socket_param + S_control_socket_type = 638, // control_socket_type + S_639_121 = 639, // $@121 + S_control_socket_type_value = 640, // control_socket_type_value + S_control_socket_name = 641, // control_socket_name + S_642_122 = 642, // $@122 + S_control_socket_address = 643, // control_socket_address + S_644_123 = 644, // $@123 + S_control_socket_port = 645, // control_socket_port + S_cert_required = 646, // cert_required + S_http_headers = 647, // http_headers + S_648_124 = 648, // $@124 + S_http_header_list = 649, // http_header_list + S_not_empty_http_header_list = 650, // not_empty_http_header_list + S_http_header = 651, // http_header + S_652_125 = 652, // $@125 + S_http_header_params = 653, // http_header_params + S_http_header_param = 654, // http_header_param + S_header_value = 655, // header_value + S_656_126 = 656, // $@126 + S_authentication = 657, // authentication + S_658_127 = 658, // $@127 + S_auth_params = 659, // auth_params + S_auth_param = 660, // auth_param + S_auth_type = 661, // auth_type + S_662_128 = 662, // $@128 + S_auth_type_value = 663, // auth_type_value + S_realm = 664, // realm + S_665_129 = 665, // $@129 + S_directory = 666, // directory + S_667_130 = 667, // $@130 + S_clients = 668, // clients + S_669_131 = 669, // $@131 + S_clients_list = 670, // clients_list + S_not_empty_clients_list = 671, // not_empty_clients_list + S_basic_auth = 672, // basic_auth + S_673_132 = 673, // $@132 + S_clients_params = 674, // clients_params + S_clients_param = 675, // clients_param + S_user_file = 676, // user_file + S_677_133 = 677, // $@133 + S_password_file = 678, // password_file + S_679_134 = 679, // $@134 + S_dhcp_queue_control = 680, // dhcp_queue_control + S_681_135 = 681, // $@135 + S_queue_control_params = 682, // queue_control_params + S_queue_control_param = 683, // queue_control_param + S_enable_queue = 684, // enable_queue + S_queue_type = 685, // queue_type + S_686_136 = 686, // $@136 + S_capacity = 687, // capacity + S_arbitrary_map_entry = 688, // arbitrary_map_entry + S_689_137 = 689, // $@137 + S_dhcp_ddns = 690, // dhcp_ddns + S_691_138 = 691, // $@138 + S_sub_dhcp_ddns = 692, // sub_dhcp_ddns + S_693_139 = 693, // $@139 + S_dhcp_ddns_params = 694, // dhcp_ddns_params + S_dhcp_ddns_param = 695, // dhcp_ddns_param + S_enable_updates = 696, // enable_updates + S_server_ip = 697, // server_ip + S_698_140 = 698, // $@140 + S_server_port = 699, // server_port + S_sender_ip = 700, // sender_ip + S_701_141 = 701, // $@141 + S_sender_port = 702, // sender_port + S_max_queue_size = 703, // max_queue_size + S_ncr_protocol = 704, // ncr_protocol + S_705_142 = 705, // $@142 + S_ncr_protocol_value = 706, // ncr_protocol_value + S_ncr_format = 707, // ncr_format + S_708_143 = 708, // $@143 + S_config_control = 709, // config_control + S_710_144 = 710, // $@144 + S_sub_config_control = 711, // sub_config_control + S_712_145 = 712, // $@145 + S_config_control_params = 713, // config_control_params + S_config_control_param = 714, // config_control_param + S_config_databases = 715, // config_databases + S_716_146 = 716, // $@146 + S_config_fetch_wait_time = 717, // config_fetch_wait_time + S_loggers = 718, // loggers + S_719_147 = 719, // $@147 + S_loggers_entries = 720, // loggers_entries + S_logger_entry = 721, // logger_entry + S_722_148 = 722, // $@148 + S_logger_params = 723, // logger_params + S_logger_param = 724, // logger_param + S_debuglevel = 725, // debuglevel + S_severity = 726, // severity + S_727_149 = 727, // $@149 + S_output_options_list = 728, // output_options_list + S_729_150 = 729, // $@150 + S_output_options_list_content = 730, // output_options_list_content + S_output_entry = 731, // output_entry + S_732_151 = 732, // $@151 + S_output_params_list = 733, // output_params_list + S_output_params = 734, // output_params + S_output = 735, // output + S_736_152 = 736, // $@152 + S_flush = 737, // flush + S_maxsize = 738, // maxsize + S_maxver = 739, // maxver + S_pattern = 740, // pattern + S_741_153 = 741, // $@153 + S_compatibility = 742, // compatibility + S_743_154 = 743, // $@154 + S_compatibility_params = 744, // compatibility_params + S_compatibility_param = 745, // compatibility_param + S_lenient_option_parsing = 746 // lenient_option_parsing }; }; @@ -1533,6 +1548,7 @@ namespace isc { namespace dhcp { case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -1678,6 +1694,7 @@ switch (yykind) case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -2618,6 +2635,96 @@ switch (yykind) return symbol_type (token::TOKEN_KEY_PASSWORD, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SSL_MODE (location_type l) + { + return symbol_type (token::TOKEN_SSL_MODE, std::move (l)); + } +#else + static + symbol_type + make_SSL_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_SSL_MODE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DISABLE (location_type l) + { + return symbol_type (token::TOKEN_DISABLE, std::move (l)); + } +#else + static + symbol_type + make_DISABLE (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PREFER (location_type l) + { + return symbol_type (token::TOKEN_PREFER, std::move (l)); + } +#else + static + symbol_type + make_PREFER (const location_type& l) + { + return symbol_type (token::TOKEN_PREFER, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_REQUIRE (location_type l) + { + return symbol_type (token::TOKEN_REQUIRE, std::move (l)); + } +#else + static + symbol_type + make_REQUIRE (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_VERIFY_CA (location_type l) + { + return symbol_type (token::TOKEN_VERIFY_CA, std::move (l)); + } +#else + static + symbol_type + make_VERIFY_CA (const location_type& l) + { + return symbol_type (token::TOKEN_VERIFY_CA, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_VERIFY_FULL (location_type l) + { + return symbol_type (token::TOKEN_VERIFY_FULL, std::move (l)); + } +#else + static + symbol_type + make_VERIFY_FULL (const location_type& l) + { + return symbol_type (token::TOKEN_VERIFY_FULL, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5813,8 +5920,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1677, ///< Last index in yytable_. - yynnts_ = 500, ///< Number of nonterminal symbols. + yylast_ = 1785, ///< Last index in yytable_. + yynnts_ = 502, ///< Number of nonterminal symbols. yyfinal_ = 30 ///< Termination state number. }; @@ -5883,10 +5990,10 @@ switch (yykind) 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238 + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244 }; // Last valid token kind. - const int code_max = 493; + const int code_max = 499; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5910,6 +6017,7 @@ switch (yykind) case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -5969,6 +6077,7 @@ switch (yykind) case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value case symbol_kind::S_on_fail_mode: // on_fail_mode + case symbol_kind::S_ssl_mode: // ssl_mode case symbol_kind::S_duid_type: // duid_type case symbol_kind::S_control_socket_type_value: // control_socket_type_value case symbol_kind::S_auth_type_value: // auth_type_value @@ -6059,7 +6168,7 @@ switch (yykind) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 6063 "dhcp6_parser.h" +#line 6172 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index ef981240ba..2cbf0b7868 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -95,6 +95,12 @@ using namespace std; CERT_FILE "cert-file" KEY_FILE "key-file" KEY_PASSWORD "key-password" + SSL_MODE "ssl-mode" + DISABLE "disable" + PREFER "prefer" + REQUIRE "require" + VERIFY_CA "verify-ca" + VERIFY_FULL "verify-full" CIPHER_LIST "cipher-list" PREFERRED_LIFETIME "preferred-lifetime" @@ -314,6 +320,7 @@ using namespace std; %type value %type map_value %type on_fail_mode +%type ssl_mode %type duid_type %type ncr_protocol_value %type ddns_replace_client_name_value @@ -1062,6 +1069,7 @@ database_map_param: database_type | cert_file | key_file | key_password + | ssl_mode | cipher_list | unknown_map_entry ; @@ -1232,6 +1240,21 @@ key_password: KEY_PASSWORD { ctx.leave(); }; +ssl_mode: SSL_MODE { + ctx.unique("ssl-mode", ctx.loc2pos(@1)); + ctx.enter(ctx.SSL_MODE); +} COLON ssl_mode { + ctx.stack_.back()->set("ssl-mode", $4); + ctx.leave(); +}; + +ssl_mode: DISABLE { $$ = ElementPtr(new StringElement("disable", ctx.loc2pos(@1))); } + | PREFER { $$ = ElementPtr(new StringElement("prefer", ctx.loc2pos(@1))); } + | REQUIRE { $$ = ElementPtr(new StringElement("require", ctx.loc2pos(@1))); } + | VERIFY_CA { $$ = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(@1))); } + | VERIFY_FULL { $$ = ElementPtr(new StringElement("verify-full", ctx.loc2pos(@1))); } + ; + cipher_list: CIPHER_LIST { ctx.unique("cipher-list", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); diff --git a/src/bin/dhcp6/parser_context.cc b/src/bin/dhcp6/parser_context.cc index 453c93a03e..ec31d322be 100644 --- a/src/bin/dhcp6/parser_context.cc +++ b/src/bin/dhcp6/parser_context.cc @@ -161,6 +161,8 @@ Parser6Context::contextName() { return ("hosts-database"); case DATABASE_ON_FAIL: return ("database-on-fail"); + case SSL_MODE: + return ("ssl-mode"); case MAC_SOURCES: return ("mac-sources"); case HOST_RESERVATION_IDENTIFIERS: diff --git a/src/bin/dhcp6/parser_context.h b/src/bin/dhcp6/parser_context.h index 6534d45d9d..82c61b399f 100644 --- a/src/bin/dhcp6/parser_context.h +++ b/src/bin/dhcp6/parser_context.h @@ -255,6 +255,9 @@ public: /// Used while parsing Dhcp6/*-database/on-fail. DATABASE_ON_FAIL, + /// Used while parsing Dhcp6/*-database/ssl-mode. + SSL_MODE, + /// Used while parsing Dhcp6/mac-sources structures. MAC_SOURCES, diff --git a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc index 5a367b8b8c..58806c63fb 100644 --- a/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc +++ b/src/bin/dhcp6/tests/dhcp6_srv_unittest.cc @@ -233,7 +233,8 @@ void removeTlsParameters(ConstElementPtr elem) { "trust-anchor", "cert-file", "key-file", - "cipher-list" + "cipher-list", + "ssl-mode" }; for (auto const& parameter : tls_parameters) { mutable_elem->remove(parameter); diff --git a/src/hooks/dhcp/host_cache/tests/meson.build b/src/hooks/dhcp/host_cache/tests/meson.build index 7e62717972..89936eb199 100644 --- a/src/hooks/dhcp/host_cache/tests/meson.build +++ b/src/hooks/dhcp/host_cache/tests/meson.build @@ -20,4 +20,10 @@ dhcp_host_cache_tests = executable( include_directories: [include_directories('.'), include_directories('..')] + INCLUDES, link_with: [dhcp_host_cache_tests_libs] + LIBS_BUILT_SO_FAR, ) -test('dhcp-host-cache-tests', dhcp_host_cache_tests, protocol: 'gtest') +test( + 'dhcp-host-cache-tests', + dhcp_host_cache_tests, + is_parallel: false, + priority: -1, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/lease_cmds/tests/meson.build b/src/hooks/dhcp/lease_cmds/tests/meson.build index a104572e67..2de033b191 100644 --- a/src/hooks/dhcp/lease_cmds/tests/meson.build +++ b/src/hooks/dhcp/lease_cmds/tests/meson.build @@ -12,4 +12,10 @@ dhcp_lease_cmds_lib_tests = executable( include_directories: [include_directories('.'), include_directories('..')] + INCLUDES, link_with: [dhcp_lease_cmds_archive] + LIBS_BUILT_SO_FAR, ) -test('dhcp-lease-cmds-lib-tests', dhcp_lease_cmds_lib_tests, protocol: 'gtest') +test( + 'dhcp-lease-cmds-lib-tests', + dhcp_lease_cmds_lib_tests, + is_parallel: false, + priority: -1, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/mysql/mysql_legal_log.h b/src/hooks/dhcp/mysql/mysql_legal_log.h index 1cc01ba1cd..3a60fdb70d 100644 --- a/src/hooks/dhcp/mysql/mysql_legal_log.h +++ b/src/hooks/dhcp/mysql/mysql_legal_log.h @@ -97,6 +97,7 @@ public: /// - trust-anchor /// - cert-file /// - key-file + /// - ssl-mode /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries diff --git a/src/hooks/dhcp/pgsql/pgsql_legal_log.h b/src/hooks/dhcp/pgsql/pgsql_legal_log.h index 4274e9b165..6c7e4fbdee 100644 --- a/src/hooks/dhcp/pgsql/pgsql_legal_log.h +++ b/src/hooks/dhcp/pgsql/pgsql_legal_log.h @@ -97,6 +97,7 @@ public: /// - cert-file /// - key-file /// - key-password (PostgreSQL only) + /// - ssl-mode /// - reconnect-wait-time /// - max-reconnect-tries /// - on-fail diff --git a/src/lib/database/database_connection.cc b/src/lib/database/database_connection.cc index d73f84c5f6..76e5c33c9d 100644 --- a/src/lib/database/database_connection.cc +++ b/src/lib/database/database_connection.cc @@ -265,6 +265,7 @@ DatabaseConnection::toElement(const ParameterMap& params) { (keyword == "cert-file") || (keyword == "key-file") || (keyword == "key-password") || + (keyword == "ssl-mode") || (keyword == "cipher-list")) { result->set(keyword, isc::data::Element::create(value)); } else { diff --git a/src/lib/database/dbaccess_parser.cc b/src/lib/database/dbaccess_parser.cc index a8c6e6756d..3945466a45 100644 --- a/src/lib/database/dbaccess_parser.cc +++ b/src/lib/database/dbaccess_parser.cc @@ -123,6 +123,7 @@ DbAccessParser::parse(std::string& access_string, // cert-file // key-file // key-password + // ssl-mode // cipher-list values_copy[param.first] = param.second->stringValue(); } diff --git a/src/lib/dhcpsrv/legal_log_mgr.cc b/src/lib/dhcpsrv/legal_log_mgr.cc index e8d220d110..f1608b3956 100644 --- a/src/lib/dhcpsrv/legal_log_mgr.cc +++ b/src/lib/dhcpsrv/legal_log_mgr.cc @@ -67,7 +67,7 @@ LegalLogMgr::parseDatabase(const ConstElementPtr& parameters, DatabaseConnection // Strings for (char const* const& key : { "type", "user", "password", "host", "name", "trust-anchor", - "cert-file", "key-file", "key-password", "cipher-list" }) { + "cert-file", "key-file", "key-password", "ssl-mode", "cipher-list" }) { ConstElementPtr const value(parameters->get(key)); if (value) { db_parameters.emplace(key, value->stringValue()); diff --git a/src/lib/dhcpsrv/legal_log_mgr.h b/src/lib/dhcpsrv/legal_log_mgr.h index 5c43350bac..dde8d8b377 100644 --- a/src/lib/dhcpsrv/legal_log_mgr.h +++ b/src/lib/dhcpsrv/legal_log_mgr.h @@ -106,6 +106,7 @@ public: /// - cert-file (MySQL only) /// - key-file (MySQL only) /// - key-password (PostgreSQL only) + /// - ssl-mode /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries @@ -138,6 +139,7 @@ public: /// - cert-file (MySQL only) /// - key-file (MySQL only) /// - key-password (PostgreSQL only) + /// - ssl-mode /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries diff --git a/src/lib/hooks/tests/meson.build b/src/lib/hooks/tests/meson.build index 6bcadfa4c1..5b8226d484 100644 --- a/src/lib/hooks/tests/meson.build +++ b/src/lib/hooks/tests/meson.build @@ -122,6 +122,8 @@ test( 'kea-hooks-tests', kea_hooks_tests, depends: [nvl, ivl, fxl, bcl, lcl, lecl, ucl, fcl, pcl, acl], + is_parallel: false, + priority: -1, protocol: 'gtest', ) diff --git a/src/lib/mysql/mysql_connection.cc b/src/lib/mysql/mysql_connection.cc index ba7006d64d..cc3476e83b 100644 --- a/src/lib/mysql/mysql_connection.cc +++ b/src/lib/mysql/mysql_connection.cc @@ -131,6 +131,15 @@ MySqlConnection::openDatabase() { isc_throw(DbInvalidTimeout, ex.what()); } + int ssl_mode(SSL_MODE_DISABLED); + string ssslmode; + try { + ssslmode = getParameter("ssl-mode"); + tls_ = true; + } catch (...) { + // No strict ssl mode + } + const char* ca_file(0); const char* ca_dir(0); string sca; @@ -142,6 +151,9 @@ MySqlConnection::openDatabase() { } else { ca_file = sca.c_str(); } + if (ssslmode.empty()) { + ssslmode = "verify-ca"; + } } catch (...) { // No trust anchor } @@ -267,6 +279,27 @@ MySqlConnection::openDatabase() { if (result != 0) { isc_throw(DbOpenError, "unable to set cipher: " << mysql_error(mysql_)); } + + if (ssslmode.empty()) { + ssslmode = "require"; + } + } + + if (ssslmode == "disable") { + ssl_mode = SSL_MODE_DISABLED; + } else if (ssslmode == "prefer") { + ssl_mode = SSL_MODE_PREFERRED; + } else if (ssslmode == "require") { + ssl_mode = SSL_MODE_REQUIRED; + } else if (ssslmode == "verify-ca") { + ssl_mode = SSL_MODE_VERIFY_CA; + } else if (ssslmode == "verify-full") { + ssl_mode = SSL_MODE_VERIFY_IDENTITY; + } + + result = mysql_options(mysql_, MYSQL_OPT_SSL_MODE, &ssl_mode); + if (result != 0) { + isc_throw(DbOpenError, "unable to set SSL mode: " << mysql_error(mysql_)); } // Open the database. @@ -493,7 +526,7 @@ MySqlConnection::toKeaAdminParameters(ParameterMap const& params) { vector result{"mysql"}; for (auto const& p : params) { string const& keyword(p.first); - string const& value(p.second); + string value(p.second); // These Kea parameters are the same as the kea-admin parameters. if (keyword == "user" || @@ -506,6 +539,20 @@ MySqlConnection::toKeaAdminParameters(ParameterMap const& params) { continue; } + if (keyword == "ssl-mode") { + if (value == "disable") { + value = "DISABLED"; + } else if (value == "prefer") { + value = "PREFERRED"; + } else if (value == "require") { + value = "REQUIRED"; + } else if (value == "verify-ca") { + value = "VERIFY_CA"; + } else if (value == "verify-full") { + value = "VERIFY_IDENTITY"; + } + } + // These Kea parameters do not have a direct kea-admin equivalent. // But they do have a mariadb client flag equivalent. // We pass them to kea-admin using the --extra flag. diff --git a/src/lib/pgsql/pgsql_connection.cc b/src/lib/pgsql/pgsql_connection.cc index 15140336d8..ebd6bccc66 100644 --- a/src/lib/pgsql/pgsql_connection.cc +++ b/src/lib/pgsql/pgsql_connection.cc @@ -263,15 +263,30 @@ PgSqlConnection::toKeaAdminParameters(ParameterMap const& params) { continue; } + // These Kea parameters do not have a direct kea-admin equivalent. + // But they do have a psql client flag equivalent. + // We pass them to kea-admin using the --extra flag. + static unordered_map conversions{ + {"cert-file", "sslcert"}, + {"key-file", "sslkey"}, + {"trust-anchor", "sslrootcert"}, + {"key-password", "sslpassword"}, + {"ssl-mode", "sslmode"}, + }; + if (conversions.count(keyword)) { + result.push_back("--extra"); + result.push_back(conversions.at(keyword) + "=" + value); + } + // These Kea parameters do not have a direct kea-admin equivalent. // But they do have a psql client environment variable equivalent. // We pass them to kea-admin. - static unordered_map conversions{ + static unordered_map env_conversions{ {"connect-timeout", "PGCONNECT_TIMEOUT"}, // {"tcp-user-timeout", "N/A"}, }; - if (conversions.count(keyword)) { - vars.push_back(conversions.at(keyword) + "=" + value); + if (env_conversions.count(keyword)) { + vars.push_back(env_conversions.at(keyword) + "=" + value); } } return make_tuple(result, vars); @@ -397,10 +412,21 @@ PgSqlConnection::getConnParametersInternal(bool logging) { bool tls = false; + string ssslmode; + try { + ssslmode = getParameter("ssl-mode"); + tls = true; + } catch (...) { + // No strict ssl mode + } + string sca; try { sca = getParameter("trust-anchor"); tls = true; + if (ssslmode.empty()) { + ssslmode = "verify-ca"; + } dbconnparameters += " sslrootcert = " + sca; } catch (...) { // No trust anchor @@ -430,13 +456,22 @@ PgSqlConnection::getConnParametersInternal(bool logging) { tls = true; dbconnparameters += " sslpassword = " + skeypassword; } catch (...) { - // No password. + // No password } if (tls) { - dbconnparameters += " sslmode = require"; + if (ssslmode.empty()) { + ssslmode = "require"; + } + dbconnparameters += " gssencmode = disable"; + } else { + if (ssslmode.empty()) { + ssslmode = "disable"; + } } + dbconnparameters += " sslmode = " + ssslmode; + return (dbconnparameters); } diff --git a/src/lib/pgsql/tests/pgsql_connection_unittest.cc b/src/lib/pgsql/tests/pgsql_connection_unittest.cc index 35ff2aa02d..91deebbbc3 100644 --- a/src/lib/pgsql/tests/pgsql_connection_unittest.cc +++ b/src/lib/pgsql/tests/pgsql_connection_unittest.cc @@ -927,8 +927,10 @@ TEST_F(PgSqlConnectionTest, toKeaAdminParameters) { kea_admin_parameters = get<0>(tupl); kea_admin_env_vars = get<1>(tupl); EXPECT_EQ(kea_admin_parameters, - vector({"pgsql", "--host", "127.0.0.1", "--name", "keatest", "--password", - "keatest", "--user", "keatest_secure"})); + vector({"pgsql", "--extra", "sslcert=" TEST_CA_DIR "/kea-client.crt", + "--host", "127.0.0.1", "--extra", "sslkey=" TEST_CA_DIR "/kea-client.key", + "--name", "keatest", "--password", "keatest", "--extra", + "sslrootcert=" TEST_CA_DIR "/kea-ca.crt", "--user", "keatest_secure"})); EXPECT_EQ(kea_admin_env_vars, vector({ "PGCONNECT_TIMEOUT=10" })); } diff --git a/src/lib/process/tests/meson.build b/src/lib/process/tests/meson.build index 6b4c95bf1c..9fd2d4c0ec 100644 --- a/src/lib/process/tests/meson.build +++ b/src/lib/process/tests/meson.build @@ -30,4 +30,10 @@ kea_process_tests = executable( include_directories: [include_directories('.')] + INCLUDES, link_with: [kea_util_unittests_lib, libs_testutils] + LIBS_BUILT_SO_FAR, ) -test('kea-process-tests', kea_process_tests, protocol: 'gtest') +test( + 'kea-process-tests', + kea_process_tests, + is_parallel: false, + priority: -1, + protocol: 'gtest' +)