]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#916] Regen flex and bison files
authorFrancis Dupont <fdupont@isc.org>
Fri, 29 May 2020 15:49:27 +0000 (15:49 +0000)
committerFrancis Dupont <fdupont@isc.org>
Wed, 8 Jul 2020 12:32:45 +0000 (14:32 +0200)
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h

index 558e0f7ee4d76bfa0c72a50730cba435ca58aac6..ca6d6055e901b1b67b8b52c9eb7cf56a7abf3b20 100644 (file)
@@ -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 201
-#define YY_END_OF_BUFFER 202
+#define YY_NUM_RULES 197
+#define YY_END_OF_BUFFER 198
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,210 +700,207 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1839] =
+static const flex_int16_t yy_accept[1810] =
     {   0,
-      194,  194,    0,    0,    0,    0,    0,    0,    0,    0,
-      202,  200,   10,   11,  200,    1,  194,  191,  194,  194,
-      200,  193,  192,  200,  200,  200,  200,  200,  187,  188,
-      200,  200,  200,  189,  190,    5,    5,    5,  200,  200,
-      200,   10,   11,    0,    0,  183,    0,    0,    0,    0,
+      190,  190,    0,    0,    0,    0,    0,    0,    0,    0,
+      198,  196,   10,   11,  196,    1,  190,  187,  190,  190,
+      196,  189,  188,  196,  196,  196,  196,  196,  183,  184,
+      196,  196,  196,  185,  186,    5,    5,    5,  196,  196,
+      196,   10,   11,    0,    0,  179,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
-      194,  194,    0,  193,  194,    3,    2,    6,    0,  194,
-        0,    0,    0,    0,    0,    0,    4,    0,    0,    9,
+        0,    0,    0,    0,    0,    0,    0,    1,  190,  190,
+        0,  189,  190,    3,    2,    6,    0,  190,    0,    0,
+        0,    0,    0,    0,    4,    0,    0,    9,    0,  180,
 
-        0,  184,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  186,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  182,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    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,    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,    0,    0,    0,    0,  185,
+        0,    0,    0,  181,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   82,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   82,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  199,  197,
-        0,  196,  195,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  163,    0,  162,    0,    0,   88,    0,
+        0,    0,  195,  193,    0,  192,  191,    0,    0,    0,
+        0,    0,    0,    0,    0,  162,    0,  161,    0,    0,
+       88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   35,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   35,    0,    0,    0,    0,    0,    0,
         0,    0,    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,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   85,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
+        0,   17,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    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,  198,  195,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  164,    0,    0,  166,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
-        0,    0,    0,    0,    0,    0,    0,   74,    0,    0,
-        0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   38,    0,    0,    0,    0,
+       18,    0,    0,    0,    0,  194,  191,    0,    0,    0,
+        0,    0,    0,    0,  163,    0,  165,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   89,    0,    0,
+        0,    0,    0,    0,    0,   74,    0,    0,    0,    0,
+        0,    0,  109,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   38,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   73,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,   73,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   77,    0,   39,    0,    0,    0,    0,    0,
+       77,    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,    0,    0,    0,  107,    0,   31,    0,
-        0,   36,    0,    0,    0,    0,    0,    0,    0,    0,
-       12,  171,    0,  168,    0,  167,    0,    0,    0,  120,
+        0,    0,    0,    0,  106,    0,   31,    0,    0,   36,
+        0,    0,    0,    0,    0,    0,    0,   12,  167,  166,
+        0,    0,    0,  119,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    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,
-       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,   33,    0,    0,
+        0,   33,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   76,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  120,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      115,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    7,    0,    0,  168,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   76,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  121,    0,    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,    7,
-        0,    0,  169,    0,    0,    0,    0,    0,    0,    0,
-
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   87,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   87,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  100,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   96,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  101,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   97,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   80,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   80,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  114,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  126,   95,    0,    0,    0,    0,    0,
-        0,  100,   32,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  102,   40,    0,
+        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
+        0,  125,   94,    0,    0,    0,    0,    0,    0,   99,
+       32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  101,   40,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  172,    0,    0,    0,    0,    0,    0,  145,    0,
+        0,    0,    0,    0,    0,    0,   68,    0,    0,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  144,    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,  115,    0,    0,    0,    0,    0,   43,
+        0,    0,    0,    0,    0,    0,    0,   84,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  114,
+        0,    0,    0,    0,    0,   43,    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,   30,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   37,    0,    0,    0,    0,   30,    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,  103,    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,  145,    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,    0,    0,    0,  146,
+        0,    0,   81,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   81,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,  150,    0,    0,    0,  148,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  151,
-        0,    0,    0,  149,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  172,    0,    0,    0,
+        0,    0,    0,  112,    0,    0,    0,    0,    0,    0,
+        0,    0,  116,    0,    0,    0,    0,    0,   97,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  176,    0,    0,    0,    0,    0,    0,    0,  113,
-        0,    0,    0,    0,    0,    0,    0,    0,  117,    0,
-        0,    0,    0,    0,   98,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  110,   22,    0,  121,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  111,   22,    0,  122,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,  155,    0,
-        0,    0,    0,   71,    0,    0,    0,    0,    0,    0,
-      125,   34,    0,  144,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   59,
-        0,    0,    0,    0,    0,   92,   93,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   75,    0,
-        0,    0,    0,    0,    0,    0,    0,   44,    0,    0,
+        0,    0,  154,    0,    0,    0,    0,   71,    0,    0,
+        0,    0,    0,    0,  124,   34,    0,  143,    0,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  119,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   59,    0,    0,    0,    0,    0,   92,
+       93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   75,    0,    0,    0,    0,    0,    0,    0,    0,
+       44,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  118,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
+        0,   72,   86,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   56,    0,    0,    0,    0,    0,    0,
+
+        0,  151,    0,    0,  149,    0,  140,  139,    0,    0,
+        0,   49,    0,    0,   21,    0,    0,    0,    0,  164,
+        0,    0,    0,  105,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  133,
+        0,    0,  142,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  122,   15,    0,   41,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  153,    0,    0,    0,
+        0,    0,    0,    0,   57,    0,    0,  117,    0,    0,
+        0,    0,  108,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   78,    0,  170,    0,    0,  175,    0,
 
-        0,    0,    0,    0,    0,    0,  180,    0,   72,   86,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       56,    0,    0,    0,    0,    0,    0,    0,  152,    0,
-        0,  150,    0,  141,  140,    0,    0,    0,   49,    0,
-        0,   21,    0,    0,    0,    0,    0,  165,    0,    0,
-        0,  106,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  134,    0,    0,
-      143,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  123,   15,    0,   41,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  154,    0,    0,    0,    0,    0,
-
-        0,    0,   57,    0,    0,  118,    0,    0,    0,    0,
-      109,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   78,    0,  174,    0,  173,    0,  179,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   14,    0,    0,    0,    0,    0,   48,    0,    0,
-        0,    0,    0,  182,    0,  104,   27,    0,    0,    0,
+        0,    0,   14,    0,    0,    0,    0,    0,   48,    0,
+        0,    0,    0,    0,  178,    0,  103,   27,    0,    0,
+        0,   50,  138,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  173,    0,  146,    0,    0,    0,    0,    0,
+        0,    0,    0,   25,    0,    0,   24,    0,  152,    0,
 
-       50,  139,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  177,    0,  147,    0,    0,    0,    0,    0,    0,
-        0,    0,   25,    0,    0,   24,    0,  153,    0,    0,
-        0,   52,    0,    0,    0,    0,    0,   96,    0,    0,
+        0,    0,   52,    0,    0,    0,    0,    0,   95,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   53,    0,    0,    0,
-        0,    0,   42,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  124,    0,    0,
-        0,   26,    0,  178,    0,    0,    0,    0,    0,  135,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   47,
-
-        0,    0,   20,    0,  181,   70,    0,    0,    0,    0,
-      175,  170,    0,   28,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   16,    0,    0,    0,  159,    0,    0,
-        0,    0,    0,    0,  132,    0,    0,    0,  108,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   83,    0,
-        0,    0,  137,    0,    0,    0,    0,    0,    0,    0,
-        0,   62,    0,    0,    0,    0,    0,    0,    0,    0,
-      160,   13,    0,    0,    0,    0,    0,    0,    0,  138,
-      148,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  142,    0,    0,
-
-        0,    0,    0,    0,  131,    0,   55,   54,   19,    0,
-      156,    0,    0,    0,    0,   45,    0,    0,    0,   91,
+        0,    0,    0,    0,    0,    0,    0,   53,    0,    0,
+        0,    0,    0,   42,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  123,    0,
+        0,    0,   26,    0,  174,    0,    0,    0,    0,    0,
+      134,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       47,    0,    0,   20,    0,  177,   70,    0,    0,    0,
+        0,  171,  169,    0,   28,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   16,    0,    0,    0,  158,    0,
+
+        0,    0,    0,    0,    0,  131,    0,    0,    0,  107,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   83,
+        0,    0,    0,  136,    0,    0,    0,    0,    0,    0,
+        0,    0,   62,    0,    0,    0,    0,    0,    0,    0,
+        0,  159,   13,    0,    0,    0,    0,    0,    0,    0,
+      137,  147,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  141,    0,
+        0,    0,    0,    0,    0,  130,    0,   55,   54,   19,
+        0,  155,    0,    0,    0,    0,   45,    0,    0,    0,
+       91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,  129,    0,    0,   51,    0,    0,   46,  157,    0,
+        0,   69,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      130,    0,    0,   51,    0,    0,   46,  158,    0,    0,
-       69,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       66,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   29,    0,    0,   67,
-        0,    0,  136,    0,    0,    0,    0,  157,    0,  105,
-        0,    0,    0,   63,    0,    0,    0,    0,    0,    0,
-
-      128,    0,  133,    0,   65,   58,    0,    0,    0,    0,
-        0,    0,  127,    0,    0,  161,    0,    0,    0,    0,
-        0,    0,    0,   64,    0,    0,    0,    0,    0,   90,
-       61,    0,    0,    0,    0,   60,  129,    0
+        0,   66,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   29,    0,    0,
+       67,    0,    0,  135,    0,    0,    0,    0,  156,    0,
+      104,    0,    0,    0,   63,    0,    0,    0,    0,    0,
+        0,  127,    0,  132,    0,   65,   58,    0,    0,    0,
+        0,    0,    0,  126,    0,    0,  160,    0,    0,    0,
+        0,    0,    0,    0,   64,    0,    0,    0,    0,    0,
+
+       90,   61,    0,    0,    0,    0,   60,  128,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -950,581 +947,577 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1851] =
+static const flex_int16_t yy_base[1822] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2239, 2240,   34, 2235,  145,    0,  207, 2240,  214,  221,
-       13,  228, 2240, 2215,  118,   25,    2,    6, 2240, 2240,
-       73,   11,   17, 2240, 2240, 2240,  104, 2223, 2176,    0,
-     2213,  108, 2230,   24,  262, 2240, 2172,   67, 2171, 2177,
-       84,   75, 2169,   88,  226,   91,   89,  290,  196, 2168,
-      206,  285,  206,  210,  219,   60,  223, 2177,  247,  294,
-      315,  307,  231, 2160,  286,  325,  354,  328, 2179,    0,
-      366,  382,  397,  411,  404, 2240,    0, 2240,  419,  425,
-      216,  249,  220,  315,  319,  329, 2240, 2176, 2217, 2240,
-
-      404, 2240,  438, 2204,  390, 2162, 2172,  331,   10, 2167,
-      406,  414,  408,  415,  428, 2212,    0,  491,  412, 2154,
-     2151, 2155,  286, 2151, 2159,  246, 2155, 2144, 2145, 2150,
-       78, 2160, 2143, 2152, 2152,   95, 2143,  400, 2144, 2142,
-      396, 2190, 2194, 2134, 2187, 2127, 2150, 2147, 2147, 2141,
-      336, 2134, 2132, 2133, 2125, 2130, 2124,  423, 2135, 2128,
-     2119, 2118, 2132,  419, 2118,  408,  413, 2112,  487,  191,
-      428, 2133, 2130, 2131,  299, 2129, 2164, 2163,  452, 2109,
-     2109, 2110,  459, 2102, 2119, 2111,    0,  458,  439,  438,
-      463,  469,  452, 2110, 2240,    0, 2155,  501, 2100, 2103,
-
-      489,  491, 2111,  502, 2156,  504, 2155,  496, 2154, 2240,
-      542, 2153,  538, 2112, 2104, 2091, 2107, 2108, 2105, 2102,
-     2101, 2092,  512, 2143, 2137, 2101, 2082, 2079, 2087, 2082,
-     2096, 2092, 2080, 2092, 2092, 2083, 2067, 2071, 2084, 2086,
-     2083, 2075, 2065, 2083, 2240, 2078, 2081, 2062, 2061, 2113,
-     2060, 2070, 2073,  519, 2069, 2108, 2053, 2055, 2066, 2104,
-     2049, 2107, 2042, 2057,  534, 2047, 2053, 2062, 2043, 2041,
-     2041, 2047, 2038, 2037, 2044, 2034, 2093, 2049, 2048, 2042,
-      515, 2049, 2044, 2036, 2026, 2041, 2040, 2035, 2039,  410,
-     2037, 2023, 2029, 2036, 2018, 2019, 2022, 2019, 2018,  346,
-
-     2013, 2027, 2026, 2069, 2028,  499, 2019,  537, 2240, 2240,
-      546, 2240, 2240, 2006,    0,  457,  533, 2008,  580,  551,
-     2064, 2015,  544, 2240, 2062, 2240, 2056,  594, 2240,  544,
-     1996, 2005, 2053, 1997, 2014, 1995, 2001, 2053, 2008, 2003,
-     2006, 2001,  536, 2240, 2003, 2047, 2041, 1999, 1996,  583,
-     2002, 2042, 2036, 1989, 1984, 1981, 2032, 1989, 1978, 1994,
-     2028, 1974,  617, 1988, 1973, 1986, 1973, 1983, 1978, 1985,
-     1980, 1976,  562, 1974, 1977, 1972, 1958, 1970, 1966, 2016,
-      554, 2010, 2240, 2009, 1959, 1958, 1957, 1950, 1952, 1964,
-     1955, 1944, 1961, 1956,  574, 2003, 1956, 1953, 1956, 2240,
-
-     1955, 1944, 1944, 1956,  473, 1931, 1932, 1953,  576, 1935,
-     1986, 1931, 1945, 1948, 1943, 1929, 1941, 1940, 1939, 1934,
-     1937, 1936, 1935, 1934,  557, 1977, 1936, 1975, 2240, 1917,
-     1916,  621, 1929, 2240, 2240, 1928,    0, 1917, 1909,  595,
-     1914, 1967, 1966, 1922, 1964, 2240, 1910, 1962, 2240,  601,
-      668,  600, 1961, 1903, 1914, 1907, 1909, 1908, 1896, 2240,
-     1901, 1907, 1910, 1893, 1908, 1895, 1894, 2240,  587, 1896,
-     1893,  599, 1891, 1893, 2240, 1901, 1898, 1883, 1896, 1891,
-      646, 1898, 1886, 1879, 1930, 2240, 1877, 1893, 1927, 1888,
-     1885, 1886, 1888, 1922, 1873, 1868, 1867, 1918, 1862,  596,
-
-     1881, 1855, 1862, 1867, 1877, 1911, 1915, 2240, 1860, 1856,
-     1854, 1863, 1857, 1864, 1848, 1848, 1858, 1846, 1860, 1849,
-     1845, 1843, 2240, 1900, 2240, 1842, 1853, 1892, 1837, 1842,
-     1851, 1845, 1839, 1848, 1890, 1884, 1846, 1829, 1829, 1824,
-     1844, 1819, 1825, 1830, 1823, 1831, 1835, 1818, 1876, 1817,
-     1869, 1814, 1815, 1814, 1826, 1815, 2240, 1825, 2240, 1814,
-     1812, 2240, 1823, 1859, 1819,    0, 1803, 1820, 1860, 1808,
-     2240, 2240, 1805, 2240, 1811, 2240,  620,  602,  660, 2240,
-     1808, 1807, 1814, 1794, 1793, 1846, 1791, 1844, 1789, 1788,
-     1787, 1794, 1787, 1799, 1781, 1781, 1796, 1795, 1794, 1793,
-
-     1793, 1775, 1780, 1821, 1788, 1780, 1825, 1769, 1785, 1784,
-     2240, 1769, 1766, 1824, 1779, 1771, 1777, 1768, 1776, 1761,
-     1777, 1759, 1773,  606, 1755, 1749, 1754, 1769, 1766, 1767,
-     1746, 1756, 1762, 1805, 1760, 1752, 1743, 2240, 1744, 1746,
-     1755, 1753, 1792, 1791, 1742,   16, 1751, 1788, 1733, 1734,
-     1737, 1730, 2240, 1744, 1723, 1727, 1741, 1733, 1778, 1730,
-     1737, 1775, 2240, 1720, 1734, 1718, 1732, 1735, 1716, 1768,
-     1767, 1766, 1765, 1710, 1763, 1762, 2240, 1707, 1721,  652,
-     1722, 1721, 1718, 1718, 1755, 1715, 1698, 1703, 1705, 2240,
-     1711, 1701, 2240, 1748, 1694, 1751,  633,  640, 1692, 1690,
-
-     1697, 1688, 1682, 1740,  620, 1744,  624, 1738, 1698, 1736,
-     1735, 1687, 1685, 1693, 1696, 1680,  161,  216,  392,  398,
-      462,  495,  591,  555,  580,  639,  620,  667,  673,  637,
-      638, 2240,  641,  645,  636,  652,  657,  654,  658,  657,
-      658,  656,  664,  661,  706,  707,  663,  655,  665,  712,
-      670,  720, 2240,  721,  674,  676,  672,  666,  669,  722,
-      685,  674,  687, 2240,  677,  688,  677,  690,  692,  736,
-      737,  680,  691,  676,  699,  678,  684,  739,  703,  687,
-      699,  743,  744,  745,  692,  747,  711,  706,  713,  709,
-      694,  706,  707,  714,  700, 2240,  765,  723,  725,  715,
-
-      727,  717,  730,  715,  722,  728,  720,  734,  739,  780,
-     2240,  776,  752,  739,  744,  741,  742,  787,  740,  738,
-      747, 2240,  737,  752,  749,  735,  742,  741,  739,  758,
-      755,  743,  750,  751,  760,  760,  750,  748,  747,  758,
-      754,  811,  768,  753,  754,  760,  776,  766, 2240,  776,
-      776,  769,  780,  778,  823,  765,  767,  782,  769,  829,
-      786,  772,  775, 2240, 2240,  785,  790,  795,  783,  793,
-      795, 2240, 2240,  796,  783,  801,  788,  782,  787,  805,
-      792,  842,  793,  845,  791,  795,  853, 2240, 2240,  798,
-      802,  801,  798,  858,  811,  801,  802,  798,  811,  822,
-
-      806,  824,  819,  820,  822,  815,  817,  818,  819,  819,
-      821,  836,  877,  834,  839,  816,  839,  823, 2240,  830,
-      831,  845,  835,  833,  883,  841,  831,  846,  847,  834,
-      848, 2240,  867,  875,  844,  839,  894,  895, 2240,  858,
-      862,  903,  851,  846,  847,  859,  866,  855,  856,  852,
-      855,  856,  866,  875,  911,  866,  861,  920,  877,  879,
-      870, 2240,  872,  875,  883,  885,  870,  886,  880,  927,
-      893,  877,  878, 2240,  894,  897,  880,  939,  882, 2240,
-      899,  902,  882,  900,  940,  898,  894,  891,  944,  945,
-      907,  893,  911,  910,  911,  897,  912,  904,  911,  901,
-
-      919,  918,  905, 2240,  913,  919,  922,  967, 2240,  916,
-      921,  965,  916,  929,  923,  927,  925,  923,  925,  935,
-      980,  924,  929,  925,  984,  928,  940, 2240,  928,  936,
-      934,  985,  947,  933,  934,  943,  955,  942,  941,  946,
-      956,  957,  962, 1003,  960,  976,  981,  963,  960,  956,
-      951, 1011,  954, 2240,  954,  974,  973,  964,  953,  970,
-      977, 1020,  981,  974,  978,  982,  965, 1026,  973, 2240,
-     1023,  970,  973,  972,  973,  975,  996,  993,  998,  999,
-      985,  993, 1002,  982,  997, 1004, 1046, 2240, 1047, 1048,
-      999, 1009, 1011, 1000,  996, 1003, 1012, 1000, 1007, 1008,
-
-     1020, 1061, 1008, 1006, 1008, 1025, 1066, 1016, 1015, 1021,
-     1019, 1017, 1012, 1073, 1074, 1070, 1076, 2240, 1033, 1026,
-     1017, 1036, 1024, 1034, 1031, 1036, 1032, 1045, 1045, 2240,
-     1029, 1031, 1031, 2240, 1032, 1093, 1032, 1051, 1052, 1054,
-     1045, 1099, 1100, 1053, 1038, 1052, 1060, 1059, 1043, 1048,
-     1066, 2240, 1056, 1089, 1080, 1112, 1052, 1074, 1071, 2240,
-     1058, 1060, 1077, 1072, 1076, 1121, 1069, 1073, 2240, 1065,
-     1082, 1062, 1083, 1073, 2240, 1088, 1088, 1126, 1073, 1129,
-     1087, 1092, 1078, 1138, 1082, 1093, 1085, 1091, 1087, 1105,
-     1106, 1107, 2240, 2240, 1106, 2240, 1091, 1092, 1111, 1101,
-
-     1094, 1106, 1150, 1114, 1103, 1110, 1111, 1117, 2240, 1110,
-     1162, 1103, 1164, 2240, 1165, 1107, 1113, 1120, 1164, 1126,
-     2240, 2240, 1113, 2240, 1115, 1129, 1134, 1117, 1176, 1133,
-     1134, 1135, 1175, 1127, 1132, 1183, 1136, 1132, 1186, 2240,
-     1133, 1188, 1189, 1146, 1148, 2240, 2240, 1131, 1193, 1189,
-     1153, 1196, 1138, 1150, 1155, 1141, 1171, 1202, 2240, 1159,
-     1152, 1161, 1206, 1153, 1168, 1204, 1156, 2240, 1152, 1168,
-     1169, 1170, 1167, 1211, 1174, 1178, 1165, 1161, 1221, 1174,
-     1218, 1224, 1181, 2240, 1182, 1175, 1184, 1186, 1183, 1173,
-     1177, 1177, 1182, 1237, 1238, 1181, 1240, 1236, 1177, 1192,
-
-     1185, 1188, 1201, 1202, 1200, 1249, 2240, 1204, 2240, 2240,
-     1209, 1201, 1211, 1196, 1252, 1198, 1259, 1203, 1213, 1262,
-     2240, 1210, 1210, 1212, 1214, 1267, 1208, 1211, 2240, 1212,
-     1231, 2240, 1215, 2240, 2240, 1228, 1230, 1231, 2240, 1218,
-     1226, 2240, 1278, 1227, 1280, 1281, 1261, 2240, 1283, 1240,
-     1281, 2240, 1229, 1237, 1231, 1228, 1231, 1234, 1234, 1251,
-     1290, 1243, 1255, 1258, 1240, 1247, 1237, 2240, 1259, 1244,
-     2240, 1246, 1248, 1263, 1263, 1266, 1266, 1263, 1307, 1269,
-     1261, 2240, 2240, 1271, 2240, 1268, 1273, 1274, 1271, 1315,
-     1263, 1278, 1279, 1271, 2240, 1268, 1269, 1269, 1275, 1274,
-
-     1272, 1286, 2240, 1327, 1274, 2240, 1275, 1275, 1277, 1283,
-     2240, 1285, 1339, 1281, 1289, 1292, 1303, 1301, 1345, 1298,
-     1307, 2240, 1304, 2240, 1301, 2240, 1324, 2240, 1351, 1293,
-     1353, 1354, 1311, 1316, 1298, 1358, 1359, 1355, 1319, 1316,
-     1312, 1305, 1317, 1307, 1312, 1368, 1322, 1370, 1366, 1330,
-     1326, 1370, 1318, 1324, 1322, 1381, 1337, 1383, 1341, 1385,
-     1346, 1335, 1329, 1389, 1331, 1332, 1346, 1349, 1349, 1395,
-     1337, 1354, 1350, 1354, 1338, 1396, 1397, 1344, 1399, 1362,
-     1363, 2240, 1363, 1364, 1351, 1350, 1406, 2240, 1347, 1365,
-     1414, 1372, 1385, 2240, 1369, 2240, 2240, 1360, 1371, 1420,
-
-     2240, 2240, 1366, 1371, 1369, 1419, 1377, 1382, 1373, 1371,
-     1385, 2240, 1373, 2240, 1376, 1427, 1370, 1375, 1435, 1383,
-     1393, 1394, 2240, 1440, 1393, 2240, 1442, 2240, 1385, 1401,
-     1389, 2240, 1399, 1400, 1449, 1407, 1411, 2240, 1447, 1413,
-     1389, 1407, 1416, 1398, 1405, 1459, 1418, 1417, 1462, 1410,
-     1464, 1465, 1415, 1419, 1424, 1417, 2240, 1470, 1471, 1420,
-     1473, 1415, 2240, 1418, 1428, 1472, 1420, 1435, 1422, 1428,
-     1428, 1483, 1440, 1428, 1427, 1487, 1440, 2240, 1484, 1435,
-     1432, 2240, 1446, 2240, 1449, 1494, 1447, 1444, 1445, 2240,
-     1498, 1457, 1440, 1442, 1458, 1440, 1456, 1457, 1466, 2240,
-
-     1456, 1508, 2240, 1467, 2240, 2240, 1451, 1458, 1512, 1508,
-     2240, 2240, 1470, 2240, 1510, 1472, 1473, 1458, 1459, 1467,
-     1521, 1517, 1472, 2240, 1484, 1471, 1478, 2240, 1475, 1480,
-     1478, 1530, 1531, 1474, 2240, 1489, 1490, 1491, 2240, 1492,
-     1482, 1494, 1539, 1540, 1482, 1490, 1491, 1504, 2240, 1481,
-     1541, 1502, 2240, 1506, 1491, 1491, 1506, 1499, 1498, 1509,
-     1496, 2240, 1501, 1557, 1515, 1517, 1508, 1517, 1519, 1523,
-     2240, 2240, 1564, 1507, 1566, 1567, 1568, 1526, 1570, 2240,
-     2240, 1566, 1528, 1529, 1516, 1575, 1518, 1523, 1514, 1579,
-     1532, 1533, 1523, 1540, 1539, 1580, 1542, 2240, 1539, 1544,
-
-     1545, 1590, 1547, 1550, 2240, 1593, 2240, 2240, 2240, 1554,
-     2240, 1536, 1596, 1597, 1540, 2240, 1559, 1600, 1559, 2240,
-     1550, 1540, 1599, 1565, 1558, 1554, 1551, 1556, 1552, 1554,
-     2240, 1559, 1569, 2240, 1555, 1567, 2240, 2240, 1572, 1565,
-     2240, 1567, 1575, 1620, 1561, 1563, 1560, 1584, 1577, 1580,
-     1569, 1623, 1570, 1578, 1587, 1580, 1575, 1579, 1591, 1636,
-     2240, 1582, 1594, 1639, 1588, 1587, 1642, 1595, 1582, 1597,
-     1602, 1647, 1604, 1649, 1599, 1593, 2240, 1609, 1653, 2240,
-     1610, 1612, 2240, 1603, 1617, 1613, 1606, 2240, 1660, 2240,
-     1617, 1662, 1623, 2240, 1664, 1665, 1620, 1619, 1620, 1610,
-
-     2240, 1665, 2240, 1612, 2240, 2240, 1672, 1614, 1630, 1675,
-     1636, 1633, 2240, 1674, 1623, 2240, 1635, 1628, 1683, 1625,
-     1627, 1642, 1627, 2240, 1640, 1689, 1690, 1638, 1640, 2240,
-     2240, 1634, 1650, 1695, 1696, 2240, 2240, 2240, 1702, 1707,
-     1712, 1717, 1722, 1727, 1732, 1735, 1709, 1714, 1716, 1729
+     2210, 2211,   34, 2206,  145,    0,  207, 2211,  214,  221,
+       13,  228, 2211, 2186,  118,   25,    2,    6, 2211, 2211,
+       73,   11,   17, 2211, 2211, 2211,  104, 2194, 2147,    0,
+     2184,  108, 2201,   24,  262, 2211, 2143,   67, 2149,   84,
+       75,   88,  224,   91,   89,  290,  220, 2141,  206,  285,
+      206,  204,  212,   60,  232, 2150,  247,  294,  315,  307,
+      286, 2133,  230,  325,  354,  328, 2152,    0,  366,  382,
+      397,  411,  404, 2211,    0, 2211,  419,  425,  216,  225,
+      229,  227,  319,  329, 2211, 2149, 2190, 2211,  300, 2211,
+
+      438, 2177,  390, 2146,  331,   10,  406,  311,  408,  414,
+      420, 2187,    0,  491,  409, 2129, 2126, 2130,  344, 2126,
+     2134,  401, 2130, 2119, 2120, 2125,   78, 2135, 2118, 2127,
+     2127,   95, 2118,  239, 2119, 2117,  405, 2165, 2169, 2109,
+     2162, 2102, 2125, 2122, 2122, 2116,  387, 2109, 2107, 2108,
+     2100, 2105, 2099,  424, 2110, 2103, 2094, 2093, 2107,  419,
+     2093,  408,  407, 2087,  465,  420,  427, 2108, 2105, 2106,
+      442, 2104, 2139, 2138,  462, 2084, 2084, 2085,  464, 2077,
+     2094, 2086,    0,  428,  464,  460,  464,  489,  503, 2085,
+     2211,    0, 2130,  508, 2079,  496,  502,  506, 2133,  508,
+
+     2132,  504, 2131, 2211,  550, 2130,  524, 2089, 2081, 2068,
+     2084, 2085, 2082, 2079, 2078, 2069,  520, 2120, 2114, 2078,
+     2059, 2056, 2064, 2059, 2073, 2069, 2057, 2069, 2069, 2060,
+     2044, 2048, 2061, 2063, 2060, 2052, 2042, 2060, 2211, 2055,
+     2058, 2039, 2038, 2090, 2037, 2047, 2050,  488, 2046, 2085,
+     2030, 2032, 2043, 2081, 2026, 2084, 2019, 2034,  533, 2024,
+     2030, 2039, 2020, 2018, 2018, 2024, 2015, 2014, 2021, 2011,
+     2070, 2026, 2025, 2019,  488, 2026, 2021, 2013, 2003, 2018,
+     2017, 2012, 2016,  166, 2014, 2000, 2006, 2013, 1995, 1996,
+     1999, 1996, 1995,  341, 1990, 2004, 2003, 2046, 2005,  392,
+
+     1996,  522, 2211, 2211,  532, 2211, 2211, 1983,    0,  527,
+      516, 2031,  542, 2041,  527, 2211, 2040, 2211, 2034,  588,
+     2211,  547, 1974, 1983, 2031, 1975, 1992, 1973, 1979, 2031,
+     1986, 1981, 1984, 1979,  547, 2211, 1981, 2025, 2019, 1977,
+     1974,  572, 1980, 2020, 2014, 1967, 1962, 1959, 2010, 1967,
+     1956, 1972, 2006, 1952,  612, 1966, 1951, 1964, 1951, 1961,
+     1956, 1963, 1958, 1954,  557, 1952, 1955, 1950, 1936, 1948,
+     1944, 1994,  570, 1988, 2211, 1987, 1937, 1936, 1935, 1928,
+     1930, 1942, 1933, 1922, 1939, 1934,  544, 1981, 1934, 1931,
+     1934, 2211, 1933, 1922, 1922, 1934,  563, 1909, 1910, 1931,
+
+      575, 1913, 1964, 1909, 1923, 1926, 1921, 1907, 1919, 1918,
+     1917, 1912, 1915, 1914, 1913, 1912,  571, 1955, 1914, 1953,
+     2211, 1895, 1894,  622, 1907, 2211, 2211, 1906,    0, 1895,
+     1887,  596, 1946, 1945, 2211, 1944, 2211,  608,  663,  608,
+     1943, 1885, 1896, 1889, 1891, 1890, 1878, 2211, 1883, 1889,
+     1892, 1875, 1890, 1877, 1876, 2211,  589, 1878, 1875,  594,
+     1873, 1875, 2211, 1883, 1880, 1865, 1878, 1873,  639, 1880,
+     1868, 1861, 1912, 2211, 1859, 1875, 1909, 1870, 1867, 1868,
+     1870, 1904, 1855, 1850, 1849, 1900, 1844,  597, 1863, 1837,
+     1844, 1849, 1859, 1893, 1897, 2211, 1842, 1838, 1836, 1845,
+
+     1839, 1846, 1830, 1830, 1840, 1828, 1842, 1831, 1827, 1825,
+     2211, 1882, 2211, 1824, 1835, 1874, 1819, 1824, 1833, 1827,
+     1821, 1830, 1872, 1866, 1828, 1811, 1811, 1806, 1826, 1801,
+     1807, 1812, 1805, 1813, 1817, 1800, 1858, 1799, 1851, 1796,
+     1797, 1796, 1808, 1797, 2211, 1807, 2211, 1796, 1794, 2211,
+     1805, 1841, 1801,    0, 1785, 1802, 1842, 2211, 2211, 2211,
+      613,  619,  653, 2211, 1793, 1792, 1799, 1779, 1778, 1831,
+     1776, 1829, 1774, 1773, 1772, 1779, 1772, 1784, 1766, 1766,
+     1781, 1780, 1779, 1778, 1778, 1760, 1765, 1806, 1773, 1765,
+     1810, 1754, 1770, 1769, 2211, 1754, 1751, 1809, 1764, 1756,
+
+     1762, 1753, 1761, 1746, 1762, 1744, 1758,  613, 1740, 1734,
+     1739, 1754, 1751, 1752, 1731, 1741, 1747, 1790, 1745, 1737,
+     1728, 2211, 1729, 1731, 1740, 1738, 1777, 1776, 1727,   16,
+     1736, 1773, 1718, 1719, 1722, 1715, 2211, 1729, 1708, 1712,
+     1726, 1718, 1763, 1715, 1722, 1760, 2211, 1705, 1719, 1703,
+     1717, 1720, 1701, 1753, 1752, 1751, 1750, 1695, 1748, 1747,
+     2211, 1692, 1706,  649, 1707, 1706, 1703, 1703, 1740, 1700,
+     1683, 1688, 1690, 2211, 1696, 1686, 2211,  628,  647, 1680,
+     1678, 1685, 1676, 1670, 1728,  644, 1732,  651, 1726, 1686,
+     1724, 1723, 1675, 1673, 1681, 1684, 1668, 1669, 1660, 1715,
+
+     1666, 1674, 1675, 1711, 1672, 1666,  657, 1662, 1707, 1711,
+     1666, 1665, 2211, 1666, 1659, 1648,  203,  228,  254,  309,
+      309,  360,  427,  497,  501,  581,  589,  550,  543,  644,
+      637,  609,  662, 2211,  664,  621,  630,  626,  620,  631,
+      684,  647,  642,  656, 2211,  646,  657,  646,  666,  668,
+      712,  714,  657,  668,  654,  677,  656,  662,  717,  681,
+      665,  677,  721,  722,  723,  670,  725,  689,  684,  691,
+      687,  672,  684,  685,  692,  678, 2211,  743,  701,  703,
+      693,  705,  695,  708,  693,  700,  706,  698,  712,  752,
+      728,  715,  720,  717,  718,  763,  716,  714,  723, 2211,
+
+      713,  728,  725,  711,  718,  717,  715,  734,  731,  719,
+      726,  727,  736,  736,  726,  724,  723,  734,  730,  787,
+      744,  729,  730,  736,  752,  742, 2211,  752,  752,  745,
+      756,  754,  799,  741,  743,  758,  745,  805,  762,  748,
+      751, 2211, 2211,  761,  766,  771,  759,  769,  771, 2211,
+     2211,  772,  759,  777,  764,  758,  763,  781,  768,  818,
+      769,  821,  767,  771,  829, 2211, 2211,  774,  778,  777,
+      774,  834,  787,  777,  778,  774,  787,  798,  782,  800,
+      795,  796,  798,  791,  793,  794,  795,  795,  797,  812,
+      853,  810,  815,  792,  815,  799, 2211,  806,  807,  821,
+
+      811,  809,  859,  817,  807,  822,  823,  810,  842,  850,
+      819,  814,  869,  870, 2211,  833,  837,  878,  826,  821,
+      822,  834,  841,  830,  831,  827,  830,  831,  841,  850,
+      886,  841,  836,  895,  852,  854,  845, 2211,  847,  850,
+      858,  860,  845,  861,  855,  902,  868,  852,  853, 2211,
+      869,  872,  855,  914,  857, 2211,  874,  877,  857,  875,
+      915,  873,  869,  866,  919,  920,  882,  868,  886,  885,
+      886,  872,  887,  879,  886,  876,  894,  893,  880, 2211,
+      888,  894,  897,  942, 2211,  891,  896,  940,  891,  904,
+      898,  902,  900,  898,  900,  910,  955,  899,  904,  900,
+
+      959,  903,  915, 2211,  903,  911,  909,  960,  922,  908,
+      909,  918,  930,  917,  916,  921,  931,  932,  937,  978,
+      950,  955,  937,  934,  930,  925,  985,  928, 2211,  928,
+      948,  947,  938,  927,  944,  951,  994,  955,  948,  952,
+      956,  939, 1000,  947, 2211,  997,  944,  947,  946,  947,
+      949,  970,  967,  972,  973,  959,  967,  976,  956,  971,
+      978, 1020, 2211, 1021, 1022,  973,  983,  985,  974,  970,
+      977,  986,  974,  981,  982,  994, 1035,  982,  980,  982,
+      999, 1040,  990,  989,  995,  993,  991,  986, 1047, 1048,
+     1044, 1050, 2211, 1007, 1000,  991, 1010,  998, 1008, 1005,
+
+     1010, 1006, 1019, 1019, 2211, 1003, 1005, 1005, 2211, 1006,
+     1067, 1006, 1025, 1026, 1028, 1019, 1073, 1074, 1027, 1012,
+     1026, 1034, 1033, 1017, 1022, 1040, 2211, 1062, 1053, 1085,
+     1025, 1047, 1044, 2211, 1031, 1033, 1050, 1045, 1049, 1094,
+     1042, 1046, 2211, 1038, 1055, 1035, 1056, 1046, 2211, 1061,
+     1061, 1099, 1046, 1102, 1060, 1065, 1051, 1111, 1055, 1066,
+     1058, 1064, 1060, 1078, 1079, 1080, 2211, 2211, 1079, 2211,
+     1064, 1065, 1084, 1074, 1067, 1079, 1123, 1087, 1076, 1083,
+     1084, 1090, 2211, 1083, 1135, 1076, 1137, 2211, 1138, 1080,
+     1086, 1093, 1137, 1099, 2211, 2211, 1086, 2211, 1088, 1102,
+
+     1107, 1090, 1149, 1106, 1107, 1108, 1148, 1100, 1105, 1156,
+     1109, 1105, 1159, 2211, 1106, 1161, 1162, 1119, 1121, 2211,
+     2211, 1104, 1166, 1162, 1126, 1169, 1111, 1123, 1128, 1143,
+     1174, 2211, 1131, 1124, 1133, 1178, 1125, 1140, 1176, 1128,
+     2211, 1124, 1140, 1141, 1142, 1139, 1183, 1146, 1150, 1137,
+     1133, 1193, 1146, 1190, 1196, 1153, 2211, 1154, 1147, 1156,
+     1158, 1155, 1145, 1148, 1149, 1154, 1209, 1210, 1153, 1212,
+     1208, 1149, 1164, 1157, 1160, 1173, 1174, 1172, 1221, 2211,
+     1176, 2211, 2211, 1181, 1173, 1183, 1168, 1224, 1170, 1231,
+     1175, 1185, 1234, 2211, 1182, 1182, 1184, 1186, 1239, 1180,
+
+     1183, 2211, 1184, 1203, 2211, 1187, 2211, 2211, 1200, 1202,
+     1203, 2211, 1190, 1198, 2211, 1250, 1199, 1252, 1232, 2211,
+     1254, 1211, 1251, 2211, 1200, 1208, 1202, 1199, 1202, 1205,
+     1205, 1222, 1261, 1214, 1226, 1229, 1211, 1218, 1208, 2211,
+     1230, 1215, 2211, 1217, 1219, 1234, 1234, 1237, 1237, 1234,
+     1278, 1240, 1232, 2211, 2211, 1242, 2211, 1239, 1244, 1245,
+     1242, 1286, 1234, 1249, 1250, 1242, 2211, 1239, 1240, 1240,
+     1246, 1245, 1243, 1257, 2211, 1298, 1245, 2211, 1246, 1246,
+     1248, 1254, 2211, 1256, 1310, 1252, 1260, 1263, 1274, 1272,
+     1316, 1269, 1278, 2211, 1275, 2211, 1272, 1295, 2211, 1322,
+
+     1264, 1324, 1325, 1282, 1287, 1269, 1329, 1330, 1326, 1290,
+     1287, 1283, 1276, 1288, 1278, 1283, 1339, 1293, 1341, 1337,
+     1301, 1297, 1341, 1289, 1295, 1293, 1352, 1308, 1354, 1312,
+     1356, 1317, 1306, 1300, 1360, 1302, 1303, 1317, 1320, 1320,
+     1366, 1308, 1325, 1321, 1325, 1309, 1367, 1368, 1315, 1370,
+     1333, 1334, 2211, 1334, 1335, 1322, 1321, 1377, 2211, 1318,
+     1336, 1385, 1343, 1356, 2211, 1340, 2211, 2211, 1331, 1342,
+     1391, 2211, 2211, 1337, 1342, 1340, 1390, 1348, 1353, 1344,
+     1342, 1356, 2211, 1344, 2211, 1347, 1398, 1341, 1346, 1406,
+     1354, 1364, 1365, 2211, 1411, 1364, 2211, 1413, 2211, 1356,
+
+     1372, 1360, 2211, 1370, 1371, 1420, 1378, 1382, 2211, 1418,
+     1384, 1360, 1378, 1387, 1369, 1376, 1430, 1389, 1388, 1433,
+     1381, 1435, 1436, 1386, 1390, 1395, 1388, 2211, 1441, 1442,
+     1391, 1444, 1386, 2211, 1389, 1399, 1443, 1391, 1406, 1393,
+     1399, 1399, 1454, 1411, 1399, 1398, 1458, 1411, 2211, 1455,
+     1406, 1403, 2211, 1417, 2211, 1420, 1465, 1418, 1415, 1416,
+     2211, 1469, 1428, 1411, 1413, 1429, 1411, 1427, 1428, 1437,
+     2211, 1427, 1479, 2211, 1438, 2211, 2211, 1422, 1429, 1483,
+     1479, 2211, 2211, 1441, 2211, 1481, 1443, 1444, 1429, 1430,
+     1438, 1492, 1488, 1443, 2211, 1455, 1442, 1449, 2211, 1446,
+
+     1451, 1449, 1501, 1502, 1445, 2211, 1460, 1461, 1462, 2211,
+     1463, 1453, 1465, 1510, 1511, 1453, 1461, 1462, 1475, 2211,
+     1452, 1512, 1473, 2211, 1477, 1462, 1462, 1477, 1470, 1469,
+     1480, 1467, 2211, 1472, 1528, 1486, 1488, 1479, 1488, 1490,
+     1494, 2211, 2211, 1535, 1478, 1537, 1538, 1539, 1497, 1541,
+     2211, 2211, 1537, 1499, 1500, 1487, 1546, 1489, 1494, 1485,
+     1550, 1503, 1504, 1494, 1511, 1510, 1551, 1513, 2211, 1510,
+     1515, 1516, 1561, 1518, 1521, 2211, 1564, 2211, 2211, 2211,
+     1525, 2211, 1507, 1567, 1568, 1511, 2211, 1530, 1571, 1530,
+     2211, 1521, 1511, 1570, 1536, 1529, 1525, 1522, 1527, 1523,
+
+     1525, 2211, 1530, 1540, 2211, 1526, 1538, 2211, 2211, 1543,
+     1536, 2211, 1538, 1546, 1591, 1532, 1534, 1531, 1555, 1548,
+     1551, 1540, 1594, 1541, 1549, 1558, 1551, 1546, 1550, 1562,
+     1607, 2211, 1553, 1565, 1610, 1559, 1558, 1613, 1566, 1553,
+     1568, 1573, 1618, 1575, 1620, 1570, 1564, 2211, 1580, 1624,
+     2211, 1581, 1583, 2211, 1574, 1588, 1584, 1577, 2211, 1631,
+     2211, 1588, 1633, 1594, 2211, 1635, 1636, 1591, 1590, 1591,
+     1581, 2211, 1636, 2211, 1583, 2211, 2211, 1643, 1585, 1601,
+     1646, 1607, 1604, 2211, 1645, 1594, 2211, 1606, 1599, 1654,
+     1596, 1598, 1613, 1598, 2211, 1611, 1660, 1661, 1609, 1611,
+
+     2211, 2211, 1605, 1621, 1666, 1667, 2211, 2211, 2211, 1673,
+     1678, 1683, 1688, 1693, 1698, 1703, 1706, 1680, 1685, 1687,
+     1700
     } ;
 
-static const flex_int16_t yy_def[1851] =
+static const flex_int16_t yy_def[1822] =
     {   0,
-     1839, 1839, 1840, 1840, 1839, 1839, 1839, 1839, 1839, 1839,
-     1838, 1838, 1838, 1838, 1838, 1841, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1842,
-     1838, 1838, 1838, 1843,   15, 1838,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1844,   45,   45,
+     1810, 1810, 1811, 1811, 1810, 1810, 1810, 1810, 1810, 1810,
+     1809, 1809, 1809, 1809, 1809, 1812, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1813,
+     1809, 1809, 1809, 1814,   15, 1809,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1815,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1841,
-     1838, 1838, 1838, 1838, 1838, 1838, 1845, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1842, 1838,
+       45,   45,   45,   45,   45,   45,   45, 1812, 1809, 1809,
+     1809, 1809, 1809, 1809, 1816, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1813, 1809, 1814, 1809,
 
-     1843, 1838, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1846,   45, 1844,   45,   45,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1817,   45, 1815,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1845, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1847,   45,   45,   45,   45,
+       45,   45, 1816, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1818,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 1846, 1838,
-     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1817, 1809, 1815,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1809,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1838,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1848,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45, 1838,   45, 1844, 1838,   45,
+       45, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1819,   45,
+       45,   45,   45,   45,   45, 1809,   45, 1809,   45, 1815,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1809,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
+       45, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45,   45,   45, 1838, 1838, 1838, 1849,   45,   45,   45,
-       45,   45,   45,   45,   45, 1838,   45,   45, 1838,   45,
-     1844,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45,   45,   45,   45, 1838,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1838,   45,   45,   45,   45,
+     1809,   45,   45,   45,   45, 1809, 1809, 1809, 1820,   45,
+       45,   45,   45,   45, 1809,   45, 1809,   45, 1815,   45,
+       45,   45,   45,   45,   45,   45,   45, 1809,   45,   45,
+       45,   45,   45,   45,   45, 1809,   45,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1809,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45, 1838,   45,   45,   45,   45,   45,
+     1809,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1838,   45, 1838,   45,
-       45, 1838,   45,   45, 1838, 1850,   45,   45,   45,   45,
-     1838, 1838,   45, 1838,   45, 1838,   45,   45,   45, 1838,
+       45,   45,   45,   45, 1809,   45, 1809,   45,   45, 1809,
+       45,   45, 1809, 1821,   45,   45,   45, 1809, 1809, 1809,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
+       45, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1838,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1838,   45,   45,   45,   45,
-
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838, 1838,   45,   45,   45,   45,   45,
-       45, 1838, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838, 1838,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
+       45, 1809, 1809,   45,   45,   45,   45,   45,   45, 1809,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1809, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45, 1838,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45, 1838,
+       45,   45,   45,   45,   45,   45,   45, 1809,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+       45,   45,   45,   45,   45, 1809,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1838,   45,   45,   45,   45, 1838,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1809,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45, 1809,   45,   45,   45, 1809,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45, 1809,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45, 1838,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45,   45,   45,   45, 1838,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809, 1809,   45, 1809,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838, 1838,   45, 1838,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
-     1838, 1838,   45, 1838,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
-       45,   45,   45,   45,   45, 1838, 1838,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45, 1809,   45,   45,
+       45,   45,   45,   45, 1809, 1809,   45, 1809,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45, 1809,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+       45, 1809, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+
+       45, 1809,   45,   45, 1809,   45, 1809, 1809,   45,   45,
+       45, 1809,   45,   45, 1809,   45,   45,   45,   45, 1809,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809, 1809,   45, 1809,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1809,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45, 1809,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45, 1809,   45,   45, 1809,   45,
 
-       45,   45,   45,   45,   45,   45, 1838,   45, 1838, 1838,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45, 1838,   45, 1838, 1838,   45,   45,   45, 1838,   45,
-       45, 1838,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838, 1838,   45, 1838,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1838,   45,   45,   45,   45,   45,
-
-       45,   45, 1838,   45,   45, 1838,   45,   45,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45, 1838,   45, 1838,   45, 1838,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45,   45,   45, 1838,   45, 1838, 1838,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45, 1809,   45,
+       45,   45,   45,   45, 1809,   45, 1809, 1809,   45,   45,
+       45, 1809, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1809,   45, 1809,   45,   45,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45, 1809,   45, 1809,   45,
 
-     1838, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45, 1838,   45,   45,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45, 1838,   45, 1838,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1838,   45,   45,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
-       45, 1838,   45, 1838,   45,   45,   45,   45,   45, 1838,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1838,
-
-       45,   45, 1838,   45, 1838, 1838,   45,   45,   45,   45,
-     1838, 1838,   45, 1838,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45, 1838,   45,   45,
-       45,   45,   45,   45, 1838,   45,   45,   45, 1838,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1838,   45,
-       45,   45, 1838,   45,   45,   45,   45,   45,   45,   45,
-       45, 1838,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838, 1838,   45,   45,   45,   45,   45,   45,   45, 1838,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1838,   45,   45,
-
-       45,   45,   45,   45, 1838,   45, 1838, 1838, 1838,   45,
-     1838,   45,   45,   45,   45, 1838,   45,   45,   45, 1838,
+       45,   45, 1809,   45,   45,   45,   45,   45, 1809,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838,   45,   45, 1838,   45,   45, 1838, 1838,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1809,   45,   45,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1809,   45,
+       45,   45, 1809,   45, 1809,   45,   45,   45,   45,   45,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1809,   45,   45, 1809,   45, 1809, 1809,   45,   45,   45,
+       45, 1809, 1809,   45, 1809,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45, 1809,   45,
+
+       45,   45,   45,   45,   45, 1809,   45,   45,   45, 1809,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1809,
+       45,   45,   45, 1809,   45,   45,   45,   45,   45,   45,
+       45,   45, 1809,   45,   45,   45,   45,   45,   45,   45,
+       45, 1809, 1809,   45,   45,   45,   45,   45,   45,   45,
+     1809, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1809,   45,
+       45,   45,   45,   45,   45, 1809,   45, 1809, 1809, 1809,
+       45, 1809,   45,   45,   45,   45, 1809,   45,   45,   45,
+     1809,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45, 1809,   45,   45, 1809,   45,   45, 1809, 1809,   45,
+       45, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1838,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1838,   45,   45, 1838,
-       45,   45, 1838,   45,   45,   45,   45, 1838,   45, 1838,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45,   45,
-
-     1838,   45, 1838,   45, 1838, 1838,   45,   45,   45,   45,
-       45,   45, 1838,   45,   45, 1838,   45,   45,   45,   45,
-       45,   45,   45, 1838,   45,   45,   45,   45,   45, 1838,
-     1838,   45,   45,   45,   45, 1838, 1838,    0, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838
+       45, 1809,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1809,   45,   45,
+     1809,   45,   45, 1809,   45,   45,   45,   45, 1809,   45,
+     1809,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
+       45, 1809,   45, 1809,   45, 1809, 1809,   45,   45,   45,
+       45,   45,   45, 1809,   45,   45, 1809,   45,   45,   45,
+       45,   45,   45,   45, 1809,   45,   45,   45,   45,   45,
+
+     1809, 1809,   45,   45,   45,   45, 1809, 1809,    0, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809
     } ;
 
-static const flex_int16_t yy_nxt[2314] =
+static const flex_int16_t yy_nxt[2285] =
     {   0,
-     1838,   13,   14,   13, 1838,   15,   16, 1838,   17,   18,
+     1809,   13,   14,   13, 1809,   15,   16, 1809,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       86,  764,   37,   14,   37,   87,   25,   26,   38,  102,
-     1838,   27,   37,   14,   37,   42,   28,   42,   38,   92,
-       93,   29,  202,   30,   13,   14,   13,   91,   92,   25,
-       31,   93,   13,   14,   13,   13,   14,   13,   32,   40,
-      765,   13,   14,   13,   33,   40,  103,   92,   93,  202,
-       91,   34,   35,   13,   14,   13,   95,   15,   16,   96,
+       84,  745,   37,   14,   37,   85,   25,   26,   38,  100,
+     1809,   27,   37,   14,   37,   42,   28,   42,   38,   90,
+       91,   29,  197,   30,   13,   14,   13,   89,   90,   25,
+       31,   91,   13,   14,   13,   13,   14,   13,   32,   40,
+      746,   13,   14,   13,   33,   40,  101,   90,   91,  197,
+       89,   34,   35,   13,   14,   13,   93,   15,   16,   94,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
-       23,   24,   13,   14,   13,   91,   39,  105,   25,   26,
+       23,   24,   13,   14,   13,   89,   39,  103,   25,   26,
 
-       13,   14,   13,   27,   39,   42,  108,   42,   28,   42,
-      109,   42,   41,   29,  111,   30,  114,  115,   94,  141,
-       41,   25,   31,  105,  228,  229,   89,  142,   89,  108,
-       32,   90,   90,   90,   90,   90,   33,  111,  109,  114,
-      234,  115,  235,   34,   35,   44,   44,   44,   45,   45,
+       13,   14,   13,   27,   39,   42,  105,   42,   28,   42,
+      106,   42,   41,   29,  107,   30,  110,  111,   92,  137,
+       41,   25,   31,  103,  222,  223,   87,  138,   87,  105,
+       32,   88,   88,   88,   88,   88,   33,  107,  106,  110,
+      228,  111,  229,   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,   52,   53,   54,   45,   45,   45,
-       45,   55,   56,   45,   57,   45,   45,   58,   45,   45,
-       59,   60,   61,   62,   63,   64,   65,   66,   67,   52,
-
-       68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
-       78,   79,   57,   45,   45,   45,   45,   45,   81,  835,
-       82,   82,   82,   82,   82,   81,  105,   84,   84,   84,
-       84,   84,  108,   83,   85,   85,   85,   85,   85,   81,
-       83,   84,   84,   84,   84,   84,  188,   83,  287,  288,
-      112,  123,  119,  135,   83,  108,   83,  190,  120,  124,
-      113,  121,  125,   83,  136,  126,  138,  127,  139,  128,
-       83,  143,  188,  112,  137,  140,  164,   83,   45,  189,
-      165,  144,  836,  145,   45,  190,   45,   45,  113,   45,
-      166,   45,   45,   45,  221,  117,  147,  148,   45,   45,
-
-      149,   45,   45,  222,  223,  189,  150,   45,   45,   45,
+       45,   47,   45,   45,   45,   45,   45,   48,   45,   45,
+       49,   45,   50,   45,   51,   45,   52,   45,   45,   45,
+       45,   53,   54,   45,   55,   45,   45,   56,   45,   45,
+       57,   58,   59,   60,   61,   62,   63,   64,   65,   51,
+
+       66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
+       76,   77,   55,   45,   45,   45,   45,   45,   79,  406,
+       80,   80,   80,   80,   80,   79,  105,   82,   82,   82,
+       82,   82,  407,   81,   83,   83,   83,   83,   83,   79,
+       81,   82,   82,   82,   82,   82,  184,   81,  108,  105,
+      103,  119,  833,  131,   81,  185,   81,  184,  109,  120,
+      134,  135,  121,   81,  132,  122,  186,  123,  136,  124,
+       81,  108,  184,  834,  133,  164,  115,   81,   45,  165,
+      139,  185,  116,  187,   45,  117,  109,   45,  231,   45,
+      140,   45,  141,   45,  186,  113,  143,  144,   45,   45,
+
+      145,   45,   45,  835,  232,  100,  146,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      129,  168,   45,  130,  131,  169,   45,  132,  133,  151,
-       45,  111,  217,  152,  295,  188,  218,  153,   45,  189,
-      134,  324,   45,  114,   45,  118,  425,  159,  296,  154,
-      156,  201,  157,  155,  158,  160,  190,  161,  177,  178,
-      170,  191,  162,  163,  171,  192,  183,  172,  112,   85,
-       85,   85,   85,   85,  173,  174,  184,  201,  113,  175,
-      176,  185,   83,   81,  193,   82,   82,   82,   82,   82,
-
-      253,  179,  837,  180,  254,   89,  181,   89,   83,  102,
-       90,   90,   90,   90,   90,   83,  113,   85,   85,   85,
-       85,   85,   81,  182,   84,   84,   84,   84,   84,  198,
-       83,   83,   90,   90,   90,   90,   90,   83,   90,   90,
-       90,   90,   90,  101,  204,  206,  103,  205,  207,  237,
-      101,  198,  241,   83,  208,  242,  838,  198,  275,  243,
-       83,  204,  276,  414,  310,  238,  267,  272,  212,  309,
-      273,  274,  204,  206,  205,  207,  415,  208,  310,  213,
-      101,  268,  269,  270,  101,  205,  289,  310,  101,  204,
-      290,  261,  207,  308,  291,  309,  101,  278,  308,  309,
-
-      101,  313,  101,  196,  211,  211,  211,  211,  211,  431,
-      438,  839,  300,  211,  211,  211,  211,  211,  211,  304,
-      439,  308,  321,  317,  320,  312,  311,  327,  323,  373,
-      325,  533,  279,  280,  281,  534,  211,  211,  211,  211,
-      211,  211,  840,  282,  386,  283,  317,  284,  285,  321,
-      286,  323,  320,  325,  327,  328,  328,  328,  328,  328,
-      317,  432,  340,  434,  328,  328,  328,  328,  328,  328,
-      341,  404,  434,  440,  405,  342,  343,  445,  448,  523,
-      387,  465,  374,  330,  440,  375,  434,  328,  328,  328,
-      328,  328,  328,  472,  388,  435,  442,  443,  466,  473,
-
-      445,  841,  440,  842,  509,  444,  448,  451,  451,  451,
-      451,  451,  555,  452,  510,  556,  451,  451,  451,  451,
-      451,  451,  486,  499,  500,  538,  562,  487,  501,  539,
-      569,  563,  577,  843,  578,  569,  698,  524,  594,  451,
-      451,  451,  451,  451,  451,  630,  595,  601,  596,  597,
-      598,  611,  697,  742,  743,  631,  612,  796,  569,  577,
-      602,  578,  603,  579,  698,  693,  813,  820,  797,  812,
-      699,  823,  824,  821,  825,  488,  847,  848,  849,  697,
-      489,   45,   45,   45,   45,   45,  850,  851,  852,  813,
-       45,   45,   45,   45,   45,   45,  844,  812,  853,  854,
-
-      845,  855,  856,  857,  846,  858,  859,  860,  861,  862,
-      863,  864,  865,   45,   45,   45,   45,   45,   45,  866,
-      867,  868,  870,  871,  869,  872,  873,  874,  875,  876,
-      877,  878,  879,  880,  881,  882,  883,  884,  885,  886,
-      887,  888,  889,  890,  891,  892,  893,  894,  895,  896,
-      897,  898,  899,  900,  901,  902,  903,  904,  905,  906,
-      908,  909,  910,  913,  914,  915,  907,  917,  918,  911,
-      919,  916,  920,  912,  921,  922,  923,  924,  925,  926,
+      125,  160,   45,  126,  127,  161,   45,  128,  129,  147,
+       45,  107,  101,  148,  199,  162,  316,  149,   45,  185,
+      130,  417,   45,  110,   45,  114,  836,  155,  837,  150,
+      152,  196,  153,  151,  154,  156,  186,  157,  173,  174,
+      166,  199,  158,  159,  167,  188,  179,  168,  108,   83,
+       83,   83,   83,   83,  169,  170,  180,  196,  109,  171,
+      172,  181,   81,   79,  189,   80,   80,   80,   80,   80,
+
+      211,  175,  423,  176,  212,   87,  177,   87,   81,  838,
+       88,   88,   88,   88,   88,   81,  109,   83,   83,   83,
+       83,   83,   79,  178,   82,   82,   82,   82,   82,  194,
+       81,   81,   88,   88,   88,   88,   88,   81,   88,   88,
+       88,   88,   88,   99,  198,  200,  202,  201,  194,  215,
+       99,  247,  269,   81,  424,  248,  270,  194,  216,  217,
+       81,  235,  198,  302,  236,  206,  261,  266,  237,  202,
+      267,  268,  198,  200,  201,  272,  207,  281,  282,  839,
+       99,  262,  263,  264,   99,  283,  304,  289,   99,  284,
+      198,  302,  255,  285,  303,  199,   99,  201,  365,  302,
+
+       99,  290,   99,  192,  205,  205,  205,  205,  205,  304,
+      273,  274,  275,  205,  205,  205,  205,  205,  205,  303,
+      303,  276,  294,  277,  298,  278,  279,  305,  280,  304,
+      311,  313,  315,  314,  317,  319,  205,  205,  205,  205,
+      205,  205,  840,  378,  396,  306,  311,  397,  426,  511,
+      841,  366,  307,  311,  367,  315,  432,  317,  426,  313,
+      314,  436,  319,  320,  320,  320,  320,  320,  434,  322,
+      332,  426,  320,  320,  320,  320,  320,  320,  333,  379,
+      430,  427,  460,  334,  335,  432,  842,  432,  461,  436,
+      431,  434,  453,  380,  843,  320,  320,  320,  320,  320,
+
+      320,  439,  439,  439,  439,  439,  844,  512,  845,  454,
+      439,  439,  439,  439,  439,  439,  440,  474,  487,  488,
+      497,  521,  475,  489,  526,  522,  543,  550,  527,  544,
+      498,  557,  551,  439,  439,  439,  439,  439,  439,  561,
+      578,  562,  585,  557,  595,  678,  614,  848,  579,  596,
+      580,  581,  582,  679,  777,  586,  615,  587,  677,  557,
+      723,  724,  849,  680,  790,  778,  561,  850,  562,  851,
+      476,  563,  678,  791,  852,  477,   45,   45,   45,   45,
+       45,  679,  853,  854,  855,   45,   45,   45,   45,   45,
+       45,  798,  790,  856,  857,  858,  791,  799,  801,  802,
+
+      846,  803,  859,  847,  860,  861,  862,  863,   45,   45,
+       45,   45,   45,   45,  822,  864,  865,  866,  823,  867,
+      868,  869,  824,  870,  871,  872,  873,  874,  875,  876,
+      877,  878,  879,  880,  881,  882,  883,  884,  886,  887,
+      888,  891,  892,  893,  885,  895,  896,  889,  897,  894,
+      898,  890,  899,  900,  901,  902,  903,  904,  905,  906,
+      907,  908,  909,  910,  911,  912,  913,  914,  915,  916,
+      917,  918,  919,  920,  921,  922,  923,  924,  925,  926,
       927,  928,  929,  930,  931,  932,  933,  934,  935,  936,
-      937,  938,  939,  940,  941,  942,  943,  944,  945,  946,
+      937,  910,  938,  939,  940,  941,  942,  943,  944,  945,
 
-      947,  948,  949,  950,  951,  952,  953,  954,  955,  956,
-      957,  958,  959,  960,  961,  934,  962,  963,  964,  965,
-      966,  967,  968,  969,  970,  971,  972,  973,  974,  976,
-      977,  978,  979,  975,  980,  981,  982,  983,  984,  985,
+      946,  947,  948,  949,  950,  952,  953,  954,  955,  951,
+      956,  957,  958,  959,  960,  961,  962,  963,  964,  965,
+      966,  967,  968,  969,  970,  971,  972,  974,  975,  976,
+      973,  977,  978,  979,  980,  981,  982,  983,  984,  985,
       986,  987,  988,  989,  990,  991,  992,  993,  994,  995,
-      996,  998,  999, 1000,  997, 1001, 1002, 1003, 1004, 1005,
+      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, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
-     1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
-
-     1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
-     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
-     1066, 1067, 1068, 1069, 1047, 1070, 1071, 1046, 1072, 1073,
-     1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
-     1084, 1085, 1086, 1087, 1088, 1090, 1091, 1092, 1093, 1094,
-     1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
-     1105, 1106, 1107, 1108, 1109, 1110, 1111, 1113, 1114, 1115,
-     1116, 1117, 1118, 1119, 1120, 1121, 1122, 1112, 1123, 1124,
-     1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
-     1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
-
-     1145, 1146, 1089, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
-     1154, 1156, 1155, 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, 1154, 1155,
-     1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
-     1192, 1193, 1194, 1196, 1198, 1199, 1200, 1195, 1201, 1202,
+     1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1022,
+
+     1045, 1046, 1021, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
+     1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
+     1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+     1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
+     1085, 1086, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
+     1096, 1097, 1087, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
+     1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
+     1115, 1116, 1117, 1118, 1119, 1120, 1121, 1064, 1122, 1123,
+     1124, 1125, 1126, 1127, 1128, 1130, 1129, 1131, 1132, 1133,
+     1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
+
+     1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
+     1154, 1155, 1128, 1129, 1156, 1157, 1158, 1159, 1160, 1161,
+     1162, 1163, 1164, 1165, 1166, 1167, 1168, 1170, 1172, 1173,
+     1174, 1169, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
+     1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
+     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, 1220, 1221, 1222,
-     1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
-     1233, 1234, 1235, 1236, 1237, 1238, 1239, 1197, 1240, 1241,
+     1213, 1171, 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, 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, 1257, 1280,
-     1281, 1282, 1283, 1284, 1258, 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, 1327, 1328, 1329, 1330,
-     1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
-
-     1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
-     1351, 1352, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361,
-     1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
-     1372, 1373, 1374, 1375, 1347, 1376, 1377, 1378, 1326, 1379,
-     1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1390,
-     1391, 1392, 1393, 1394, 1395, 1353, 1389, 1396, 1397, 1398,
-     1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
+     1252, 1230, 1253, 1254, 1255, 1256, 1257, 1231, 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, 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, 1326, 1327, 1328, 1329, 1330, 1331,
+     1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
+
+     1342, 1343, 1344, 1345, 1346, 1347, 1319, 1348, 1349, 1350,
+     1351, 1299, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
+     1360, 1362, 1363, 1364, 1365, 1366, 1367, 1325, 1361, 1368,
+     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, 1394, 1395, 1396, 1398, 1399,
+     1400, 1401, 1397, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
      1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
-     1419, 1420, 1421, 1422, 1423, 1424, 1426, 1427, 1428, 1429,
-     1425, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
+     1419, 1398, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
+     1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437,
 
-     1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448,
-     1427, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457,
+     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, 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, 1506, 1507, 1508,
-     1509, 1510, 1511, 1512, 1513, 1514, 1515, 1505, 1516, 1517,
-     1518, 1519, 1493, 1520, 1521, 1522, 1523, 1525, 1526, 1527,
+     1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1477, 1478,
+     1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1476, 1487,
+     1488, 1489, 1490, 1464, 1491, 1492, 1493, 1494, 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, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577,
-     1578, 1579, 1580, 1581, 1524, 1582, 1583, 1584, 1585, 1559,
+     1548, 1549, 1550, 1551, 1552, 1495, 1553, 1554, 1555, 1556,
+     1530, 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, 1595,
      1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
      1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
@@ -1547,100 +1540,96 @@ static const flex_int16_t yy_nxt[2314] =
      1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
      1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
      1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
-     1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
+     1786, 1787, 1788, 1790, 1789, 1791, 1792, 1793, 1794, 1795,
      1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
-     1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
-     1816, 1817, 1819, 1818, 1820, 1821, 1822, 1823, 1824, 1825,
-     1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835,
-
-     1836, 1837,   12,   12,   12,   12,   12,   36,   36,   36,
-       36,   36,   80,  315,   80,   80,   80,   99,  437,   99,
-      566,   99,  101,  101,  101,  101,  101,  116,  116,  116,
-      116,  116,  187,  101,  187,  187,  187,  209,  209,  209,
-      834,  833,  832,  831,  830,  829,  828,  827,  826,  822,
-      819,  818,  817,  816,  815,  814,  811,  810,  809,  808,
-      807,  806,  805,  804,  803,  802,  801,  800,  799,  798,
-      795,  794,  793,  792,  791,  790,  789,  788,  787,  786,
-      785,  784,  783,  782,  781,  780,  779,  778,  777,  776,
-      775,  774,  773,  772,  771,  770,  769,  768,  767,  766,
-
-      763,  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,  708,  707,  706,  705,  704,  703,  702,
-      701,  700,  696,  695,  694,  693,  692,  691,  690,  689,
-      688,  687,  686,  685,  684,  683,  682,  681,  680,  679,
-      678,  677,  676,  675,  674,  673,  672,  671,  670,  669,
-      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
-
-      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
-      648,  647,  646,  645,  644,  643,  642,  641,  640,  639,
-      638,  637,  636,  635,  634,  633,  632,  629,  628,  627,
-      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
-      616,  615,  614,  613,  610,  609,  608,  607,  606,  605,
-      604,  600,  599,  593,  592,  591,  590,  589,  588,  587,
-      586,  585,  584,  583,  582,  581,  580,  576,  575,  574,
-      573,  572,  571,  570,  568,  567,  565,  564,  561,  560,
-      559,  558,  557,  554,  553,  552,  551,  550,  549,  548,
-      547,  546,  545,  544,  543,  542,  541,  540,  537,  536,
-
-      535,  532,  531,  530,  529,  528,  527,  526,  525,  522,
-      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
-      511,  508,  507,  506,  505,  504,  503,  502,  498,  497,
-      496,  495,  494,  493,  492,  491,  490,  485,  484,  483,
-      482,  481,  480,  479,  478,  477,  476,  475,  474,  471,
-      470,  469,  468,  467,  464,  463,  462,  461,  460,  459,
-      458,  457,  456,  455,  454,  453,  450,  449,  447,  446,
-      441,  436,  433,  430,  429,  428,  427,  426,  424,  423,
-      422,  421,  420,  419,  418,  417,  416,  413,  412,  411,
-      410,  409,  408,  407,  406,  403,  402,  401,  400,  399,
-
-      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
-      385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
-      372,  371,  370,  369,  368,  367,  366,  365,  364,  363,
-      362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
-      352,  351,  350,  349,  348,  347,  346,  345,  344,  339,
-      338,  337,  336,  335,  334,  333,  332,  331,  329,  210,
-      326,  324,  322,  319,  318,  316,  314,  307,  306,  305,
-      303,  302,  301,  299,  298,  297,  294,  293,  292,  277,
-      271,  266,  265,  264,  263,  262,  260,  259,  258,  257,
-      256,  255,  252,  251,  250,  249,  248,  247,  246,  245,
-
-      244,  240,  239,  236,  233,  232,  231,  230,  227,  226,
-      225,  224,  220,  219,  216,  215,  214,  210,  203,  200,
-      199,  197,  195,  194,  186,  167,  146,  122,  110,  107,
-      106,  104,   43,  100,   98,   97,   88,   43, 1838,   11,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838
+     1806, 1807, 1808,   12,   12,   12,   12,   12,   36,   36,
+       36,   36,   36,   78,  309,   78,   78,   78,   97,  429,
+       97,  554,   97,   99,   99,   99,   99,   99,  112,  112,
+
+      112,  112,  112,  183,   99,  183,  183,  183,  203,  203,
+      203,  832,  831,  830,  829,  828,  827,  826,  825,  821,
+      820,  819,  818,  817,  816,  815,  814,  813,  812,  811,
+      810,  809,  808,  807,  806,  805,  804,  800,  797,  796,
+      795,  794,  793,  792,  789,  788,  787,  786,  785,  784,
+      783,  782,  781,  780,  779,  776,  775,  774,  773,  772,
+      771,  770,  769,  768,  767,  766,  765,  764,  763,  762,
+      761,  760,  759,  758,  757,  756,  755,  754,  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,  726,  725,  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,  692,  691,  690,  689,  688,
+      687,  686,  685,  684,  683,  682,  681,  677,  676,  675,
+      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
+      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
+      654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
+      644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
+      634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
+
+      624,  623,  622,  621,  620,  619,  618,  617,  616,  613,
+      612,  611,  610,  609,  608,  607,  606,  605,  604,  603,
+      602,  601,  600,  599,  598,  597,  594,  593,  592,  591,
+      590,  589,  588,  584,  583,  577,  576,  575,  574,  573,
+      572,  571,  570,  569,  568,  567,  566,  565,  564,  560,
+      559,  558,  556,  555,  553,  552,  549,  548,  547,  546,
+      545,  542,  541,  540,  539,  538,  537,  536,  535,  534,
+      533,  532,  531,  530,  529,  528,  525,  524,  523,  520,
+      519,  518,  517,  516,  515,  514,  513,  510,  509,  508,
+      507,  506,  505,  504,  503,  502,  501,  500,  499,  496,
+
+      495,  494,  493,  492,  491,  490,  486,  485,  484,  483,
+      482,  481,  480,  479,  478,  473,  472,  471,  470,  469,
+      468,  467,  466,  465,  464,  463,  462,  459,  458,  457,
+      456,  455,  452,  451,  450,  449,  448,  447,  446,  445,
+      444,  443,  442,  441,  438,  437,  435,  433,  428,  425,
+      422,  421,  420,  419,  418,  416,  415,  414,  413,  412,
+      411,  410,  409,  408,  405,  404,  403,  402,  401,  400,
+      399,  398,  395,  394,  393,  392,  391,  390,  389,  388,
+      387,  386,  385,  384,  383,  382,  381,  377,  376,  375,
+      374,  373,  372,  371,  370,  369,  368,  364,  363,  362,
+
+      361,  360,  359,  358,  357,  356,  355,  354,  353,  352,
+      351,  350,  349,  348,  347,  346,  345,  344,  343,  342,
+      341,  340,  339,  338,  337,  336,  331,  330,  329,  328,
+      327,  326,  325,  324,  323,  321,  204,  318,  316,  312,
+      310,  308,  301,  300,  299,  297,  296,  295,  293,  292,
+      291,  288,  287,  286,  271,  265,  260,  259,  258,  257,
+      256,  254,  253,  252,  251,  250,  249,  246,  245,  244,
+      243,  242,  241,  240,  239,  238,  234,  233,  230,  227,
+      226,  225,  224,  221,  220,  219,  218,  214,  213,  210,
+      209,  208,  204,  195,  193,  191,  190,  182,  163,  142,
+
+      118,  104,  102,   43,   98,   96,   95,   86,   43, 1809,
+       11, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809
     } ;
 
-static const flex_int16_t yy_chk[2314] =
+static const flex_int16_t yy_chk[2285] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  646,    3,    3,    3,   21,    1,    1,    3,   44,
+       21,  630,    3,    3,    3,   21,    1,    1,    3,   44,
         0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
-       28,    1,  109,    1,    5,    5,    5,   26,   32,    1,
+       28,    1,  106,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      646,    8,    8,    8,    1,    8,   44,   27,   28,  109,
+      630,    8,    8,    8,    1,    8,   44,   27,   28,  106,
        26,    1,    1,    2,    2,    2,   32,    2,    2,   33,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    9,    9,    9,   31,    5,   48,    2,    2,
 
-       10,   10,   10,    2,    6,   37,   51,   37,    2,   42,
-       52,   42,    9,    2,   54,    2,   56,   57,   31,   66,
-       10,    2,    2,   48,  131,  131,   25,   66,   25,   51,
-        2,   25,   25,   25,   25,   25,    2,   54,   52,   56,
-      136,   57,  136,    2,    2,   15,   15,   15,   15,   15,
+       10,   10,   10,    2,    6,   37,   50,   37,    2,   42,
+       51,   42,    9,    2,   52,    2,   54,   55,   31,   64,
+       10,    2,    2,   48,  127,  127,   25,   64,   25,   50,
+        2,   25,   25,   25,   25,   25,    2,   52,   51,   54,
+      132,   55,  132,    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,   15,   15,   15,   15,   15,   15,
@@ -1648,238 +1637,234 @@ static const flex_int16_t yy_chk[2314] =
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
 
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   15,   15,   15,   15,   17,  717,
-       17,   17,   17,   17,   17,   19,   59,   19,   19,   19,
-       19,   19,   64,   17,   20,   20,   20,   20,   20,   22,
-       19,   22,   22,   22,   22,   22,   91,   20,  170,  170,
-       55,   61,   59,   63,   22,   64,   17,   93,   59,   61,
-       55,   59,   61,   19,   63,   61,   64,   61,   65,   61,
-       20,   67,   91,   55,   63,   65,   73,   22,   45,   92,
-       73,   67,  718,   67,   45,   93,   45,   45,   55,   45,
-       73,   45,   45,   45,  126,   58,   69,   69,   45,   45,
-
-       69,   45,   58,  126,  126,   92,   69,   45,   45,   45,
+       15,   15,   15,   15,   15,   15,   15,   15,   17,  284,
+       17,   17,   17,   17,   17,   19,   62,   19,   19,   19,
+       19,   19,  284,   17,   20,   20,   20,   20,   20,   22,
+       19,   22,   22,   22,   22,   22,   89,   20,   53,   62,
+       57,   59,  717,   61,   22,   90,   17,   92,   53,   59,
+       62,   63,   59,   19,   61,   59,   91,   59,   63,   59,
+       20,   53,   89,  718,   61,   73,   57,   22,   45,   73,
+       65,   90,   57,   92,   45,   57,   53,   45,  134,   45,
+       65,   45,   65,   45,   91,   56,   67,   67,   45,   45,
+
+       67,   45,   56,  719,  134,   99,   67,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       62,   75,   58,   62,   62,   75,   58,   62,   62,   70,
-       58,   71,  123,   70,  175,   94,  123,   70,   58,   95,
-       62,  300,   58,   78,   58,   58,  300,   72,  175,   70,
-       71,  108,   71,   70,   71,   72,   96,   72,   77,   77,
-       76,   94,   72,   72,   76,   95,   78,   76,   77,   81,
-       81,   81,   81,   81,   76,   76,   78,  108,   77,   76,
-       76,   78,   81,   82,   96,   82,   82,   82,   82,   82,
-
-      151,   77,  719,   77,  151,   83,   77,   83,   82,  101,
-       83,   83,   83,   83,   83,   81,   77,   85,   85,   85,
-       85,   85,   84,   77,   84,   84,   84,   84,   84,  105,
-       85,   82,   89,   89,   89,   89,   89,   84,   90,   90,
-       90,   90,   90,  103,  111,  113,  101,  112,  114,  138,
-      103,  119,  141,   85,  115,  141,  720,  105,  167,  141,
-       84,  158,  167,  290,  190,  138,  164,  166,  119,  189,
-      166,  166,  111,  113,  112,  114,  290,  115,  193,  119,
-      103,  164,  164,  164,  103,  179,  171,  190,  103,  158,
-      171,  158,  183,  188,  171,  189,  103,  169,  191,  192,
-
-      103,  193,  103,  103,  118,  118,  118,  118,  118,  306,
-      316,  721,  179,  118,  118,  118,  118,  118,  118,  183,
-      316,  188,  202,  198,  201,  192,  191,  208,  204,  254,
-      206,  405,  169,  169,  169,  405,  118,  118,  118,  118,
-      118,  118,  722,  169,  265,  169,  198,  169,  169,  202,
-      169,  204,  201,  206,  208,  211,  211,  211,  211,  211,
-      213,  306,  223,  308,  211,  211,  211,  211,  211,  211,
-      223,  281,  311,  317,  281,  223,  223,  320,  323,  395,
-      265,  343,  254,  213,  330,  254,  308,  211,  211,  211,
-      211,  211,  211,  350,  265,  311,  319,  319,  343,  350,
-
-      320,  723,  317,  724,  381,  319,  323,  328,  328,  328,
-      328,  328,  425,  330,  381,  425,  328,  328,  328,  328,
-      328,  328,  363,  373,  373,  409,  432,  363,  373,  409,
-      440,  432,  450,  725,  450,  452,  578,  395,  469,  328,
-      328,  328,  328,  328,  328,  500,  469,  472,  469,  469,
-      469,  481,  577,  624,  624,  500,  481,  680,  440,  450,
-      472,  450,  472,  452,  578,  579,  698,  705,  680,  697,
-      579,  707,  707,  705,  707,  363,  727,  728,  729,  577,
-      363,  451,  451,  451,  451,  451,  730,  731,  733,  698,
-      451,  451,  451,  451,  451,  451,  726,  697,  734,  735,
-
-      726,  736,  737,  738,  726,  739,  740,  741,  742,  743,
-      744,  745,  746,  451,  451,  451,  451,  451,  451,  747,
-      748,  749,  750,  751,  749,  752,  754,  755,  756,  757,
-      758,  759,  760,  761,  762,  763,  765,  766,  767,  768,
-      769,  770,  771,  772,  773,  774,  775,  776,  777,  778,
-      779,  780,  781,  782,  783,  784,  785,  786,  787,  788,
-      789,  790,  790,  791,  792,  793,  788,  794,  795,  790,
-      797,  793,  798,  790,  799,  800,  801,  802,  803,  804,
-      805,  806,  807,  808,  809,  810,  812,  813,  814,  815,
-      816,  817,  818,  819,  820,  821,  823,  824,  825,  826,
-
-      827,  828,  829,  830,  831,  832,  833,  834,  835,  836,
-      837,  838,  839,  840,  841,  813,  842,  843,  844,  845,
-      846,  847,  848,  850,  851,  852,  853,  854,  855,  856,
-      857,  858,  859,  855,  860,  861,  862,  863,  866,  867,
-      868,  869,  870,  871,  874,  875,  876,  877,  878,  879,
-      880,  881,  882,  883,  880,  884,  885,  886,  887,  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,  915,  916,  917,  918,  920,  921,
-      922,  923,  924,  925,  926,  927,  928,  929,  930,  931,
-
-      933,  934,  935,  936,  937,  938,  940,  941,  942,  943,
-      944,  945,  946,  947,  948,  949,  950,  951,  952,  953,
-      954,  955,  956,  957,  934,  958,  959,  933,  960,  961,
-      963,  964,  965,  966,  967,  968,  969,  970,  971,  972,
-      973,  975,  976,  977,  978,  979,  981,  982,  983,  984,
-      985,  986,  987,  988,  989,  990,  991,  992,  993,  994,
-      995,  996,  997,  998,  999, 1000, 1001, 1002, 1003, 1005,
-     1006, 1007, 1008, 1010, 1011, 1012, 1013, 1001, 1014, 1015,
-     1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
-     1026, 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
-
-     1037, 1038,  978, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
-     1046, 1048, 1047, 1049, 1050, 1051, 1052, 1053, 1055, 1056,
-     1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
-     1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1046, 1047,
-     1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
-     1086, 1087, 1089, 1090, 1091, 1092, 1093, 1089, 1094, 1095,
-     1096, 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, 1123, 1124, 1125, 1126,
-     1127, 1128, 1129, 1131, 1132, 1133, 1135, 1090, 1136, 1137,
-
-     1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
-     1148, 1149, 1150, 1151, 1153, 1154, 1155, 1156, 1157, 1158,
-     1159, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1170,
-     1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1154, 1180,
-     1181, 1182, 1183, 1184, 1155, 1185, 1186, 1187, 1188, 1189,
-     1190, 1191, 1192, 1195, 1197, 1198, 1199, 1200, 1201, 1202,
-     1203, 1204, 1205, 1206, 1207, 1208, 1210, 1211, 1212, 1213,
-     1215, 1216, 1217, 1218, 1219, 1220, 1223, 1225, 1226, 1227,
-     1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237,
-     1238, 1239, 1241, 1242, 1243, 1244, 1245, 1248, 1249, 1250,
-
-     1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1260, 1261,
-     1262, 1263, 1264, 1265, 1266, 1267, 1269, 1270, 1271, 1272,
-     1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282,
-     1283, 1285, 1286, 1287, 1257, 1288, 1289, 1290, 1233, 1291,
-     1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
-     1302, 1303, 1304, 1305, 1306, 1263, 1300, 1308, 1311, 1312,
-     1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323,
-     1324, 1325, 1326, 1327, 1328, 1330, 1331, 1333, 1336, 1337,
-     1338, 1340, 1341, 1343, 1344, 1345, 1346, 1347, 1349, 1350,
-     1345, 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
-
-     1361, 1362, 1363, 1364, 1365, 1366, 1367, 1369, 1370, 1372,
-     1347, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
-     1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
-     1396, 1397, 1398, 1399, 1400, 1401, 1402, 1404, 1405, 1407,
-     1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
-     1419, 1420, 1421, 1423, 1425, 1427, 1429, 1430, 1431, 1432,
-     1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442,
-     1443, 1444, 1445, 1446, 1447, 1448, 1449, 1439, 1450, 1451,
-     1452, 1453, 1427, 1454, 1455, 1455, 1456, 1457, 1458, 1459,
-     1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469,
-
-     1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
-     1480, 1481, 1483, 1484, 1485, 1486, 1487, 1489, 1490, 1491,
-     1492, 1493, 1495, 1498, 1499, 1500, 1503, 1504, 1505, 1506,
-     1507, 1508, 1509, 1510, 1511, 1513, 1515, 1516, 1517, 1518,
-     1519, 1520, 1521, 1522, 1456, 1524, 1525, 1527, 1529, 1493,
-     1530, 1531, 1533, 1534, 1535, 1536, 1537, 1539, 1540, 1541,
-     1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
-     1552, 1553, 1554, 1555, 1556, 1558, 1559, 1560, 1561, 1562,
-     1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
-     1574, 1575, 1576, 1577, 1579, 1580, 1581, 1583, 1585, 1586,
-
-     1587, 1588, 1589, 1591, 1592, 1593, 1594, 1595, 1596, 1597,
-     1598, 1599, 1601, 1602, 1604, 1607, 1608, 1609, 1610, 1613,
-     1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1625,
-     1626, 1627, 1629, 1630, 1631, 1632, 1633, 1634, 1636, 1637,
-     1638, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
-     1650, 1651, 1652, 1654, 1655, 1656, 1657, 1658, 1659, 1660,
-     1661, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1673,
-     1674, 1675, 1676, 1677, 1678, 1679, 1682, 1683, 1684, 1685,
-     1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
-     1696, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1706, 1710,
-
-     1712, 1713, 1714, 1715, 1717, 1718, 1719, 1721, 1722, 1723,
-     1724, 1725, 1726, 1727, 1728, 1729, 1730, 1732, 1733, 1735,
-     1736, 1739, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748,
-     1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
-     1759, 1760, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
-     1770, 1771, 1772, 1773, 1774, 1775, 1776, 1778, 1779, 1781,
-     1782, 1784, 1785, 1786, 1787, 1789, 1791, 1792, 1793, 1795,
-     1796, 1797, 1798, 1799, 1800, 1802, 1804, 1807, 1808, 1809,
-     1810, 1811, 1812, 1811, 1814, 1815, 1817, 1818, 1819, 1820,
-     1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829, 1832, 1833,
-
-     1834, 1835, 1839, 1839, 1839, 1839, 1839, 1840, 1840, 1840,
-     1840, 1840, 1841, 1847, 1841, 1841, 1841, 1842, 1848, 1842,
-     1849, 1842, 1843, 1843, 1843, 1843, 1843, 1844, 1844, 1844,
-     1844, 1844, 1845, 1850, 1845, 1845, 1845, 1846, 1846, 1846,
-      716,  715,  714,  713,  712,  711,  710,  709,  708,  706,
-      704,  703,  702,  701,  700,  699,  696,  695,  694,  692,
-      691,  689,  688,  687,  686,  685,  684,  683,  682,  681,
-      679,  678,  676,  675,  674,  673,  672,  671,  670,  669,
-      668,  667,  666,  665,  664,  662,  661,  660,  659,  658,
-      657,  656,  655,  654,  652,  651,  650,  649,  648,  647,
-
-      645,  644,  643,  642,  641,  640,  639,  637,  636,  635,
-      634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
-      623,  622,  621,  620,  619,  618,  617,  616,  615,  614,
-      613,  612,  610,  609,  608,  607,  606,  605,  604,  603,
-      602,  601,  600,  599,  598,  597,  596,  595,  594,  593,
-      592,  591,  590,  589,  588,  587,  586,  585,  584,  583,
-      582,  581,  575,  573,  570,  569,  568,  567,  565,  564,
-      563,  561,  560,  558,  556,  555,  554,  553,  552,  551,
-      550,  549,  548,  547,  546,  545,  544,  543,  542,  541,
+       60,   71,   56,   60,   60,   71,   56,   60,   60,   68,
+       56,   69,   99,   68,  108,   71,  294,   68,   56,   93,
+       60,  294,   56,   76,   56,   56,  720,   70,  721,   68,
+       69,  105,   69,   68,   69,   70,   94,   70,   75,   75,
+       74,  108,   70,   70,   74,   93,   76,   74,   75,   79,
+       79,   79,   79,   79,   74,   74,   76,  105,   75,   74,
+       74,   76,   79,   80,   94,   80,   80,   80,   80,   80,
+
+      119,   75,  300,   75,  119,   81,   75,   81,   80,  722,
+       81,   81,   81,   81,   81,   79,   75,   83,   83,   83,
+       83,   83,   82,   75,   82,   82,   82,   82,   82,  103,
+       83,   80,   87,   87,   87,   87,   87,   82,   88,   88,
+       88,   88,   88,  101,  107,  109,  111,  110,  115,  122,
+      101,  147,  163,   83,  300,  147,  163,  103,  122,  122,
+       82,  137,  154,  184,  137,  115,  160,  162,  137,  111,
+      162,  162,  107,  109,  110,  165,  115,  166,  166,  723,
+      101,  160,  160,  160,  101,  167,  186,  171,  101,  167,
+      154,  184,  154,  167,  185,  175,  101,  179,  248,  187,
+
+      101,  171,  101,  101,  114,  114,  114,  114,  114,  186,
+      165,  165,  165,  114,  114,  114,  114,  114,  114,  188,
+      185,  165,  175,  165,  179,  165,  165,  187,  165,  189,
+      194,  196,  198,  197,  200,  202,  114,  114,  114,  114,
+      114,  114,  724,  259,  275,  188,  207,  275,  302,  387,
+      725,  248,  189,  194,  248,  198,  311,  200,  305,  196,
+      197,  315,  202,  205,  205,  205,  205,  205,  313,  207,
+      217,  302,  205,  205,  205,  205,  205,  205,  217,  259,
+      310,  305,  342,  217,  217,  311,  726,  322,  342,  315,
+      310,  313,  335,  259,  727,  205,  205,  205,  205,  205,
+
+      205,  320,  320,  320,  320,  320,  728,  387,  729,  335,
+      320,  320,  320,  320,  320,  320,  322,  355,  365,  365,
+      373,  397,  355,  365,  401,  397,  417,  424,  401,  417,
+      373,  432,  424,  320,  320,  320,  320,  320,  320,  438,
+      457,  438,  460,  440,  469,  561,  488,  731,  457,  469,
+      457,  457,  457,  562,  664,  460,  488,  460,  563,  432,
+      608,  608,  732,  563,  678,  664,  438,  733,  438,  735,
+      355,  440,  561,  679,  736,  355,  439,  439,  439,  439,
+      439,  562,  737,  738,  739,  439,  439,  439,  439,  439,
+      439,  686,  678,  740,  741,  742,  679,  686,  688,  688,
+
+      730,  688,  743,  730,  744,  746,  747,  748,  439,  439,
+      439,  439,  439,  439,  707,  749,  750,  751,  707,  752,
+      753,  754,  707,  755,  756,  757,  758,  759,  760,  761,
+      762,  763,  764,  765,  766,  767,  768,  769,  770,  771,
+      771,  772,  773,  774,  769,  775,  776,  771,  778,  774,
+      779,  771,  780,  781,  782,  783,  784,  785,  786,  787,
+      788,  789,  790,  791,  792,  793,  794,  795,  796,  797,
+      798,  799,  801,  802,  803,  804,  805,  806,  807,  808,
+      809,  810,  811,  812,  813,  814,  815,  816,  817,  818,
+      819,  791,  820,  821,  822,  823,  824,  825,  826,  828,
+
+      829,  830,  831,  832,  833,  834,  835,  836,  837,  833,
+      838,  839,  840,  841,  844,  845,  846,  847,  848,  849,
+      852,  853,  854,  855,  856,  857,  858,  859,  860,  861,
+      858,  862,  863,  864,  865,  868,  869,  870,  871,  872,
+      873,  874,  875,  876,  877,  878,  879,  880,  881,  882,
+      883,  884,  885,  886,  887,  888,  889,  890,  891,  892,
+      893,  894,  895,  896,  898,  899,  900,  901,  902,  903,
+      904,  905,  906,  907,  908,  909,  910,  911,  912,  913,
+      914,  916,  917,  918,  919,  920,  921,  922,  923,  924,
+      925,  926,  927,  928,  929,  930,  931,  932,  933,  910,
+
+      934,  935,  909,  936,  937,  939,  940,  941,  942,  943,
+      944,  945,  946,  947,  948,  949,  951,  952,  953,  954,
+      955,  957,  958,  959,  960,  961,  962,  963,  964,  965,
+      966,  967,  968,  969,  970,  971,  972,  973,  974,  975,
+      976,  977,  978,  979,  981,  982,  983,  984,  986,  987,
+      988,  989,  977,  990,  991,  992,  993,  994,  995,  996,
+      997,  998,  999, 1000, 1001, 1002, 1003, 1005, 1006, 1007,
+     1008, 1009, 1010, 1011, 1012, 1013, 1014,  954, 1015, 1016,
+     1017, 1018, 1019, 1020, 1021, 1023, 1022, 1024, 1025, 1026,
+     1027, 1028, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+
+     1038, 1039, 1040, 1041, 1042, 1043, 1044, 1046, 1047, 1048,
+     1049, 1050, 1021, 1022, 1051, 1052, 1053, 1054, 1055, 1056,
+     1057, 1058, 1059, 1060, 1061, 1062, 1064, 1065, 1066, 1067,
+     1068, 1064, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076,
+     1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
+     1087, 1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096, 1097,
+     1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107, 1108,
+     1110, 1065, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+     1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1128, 1129,
+     1130, 1131, 1132, 1133, 1135, 1136, 1137, 1138, 1139, 1140,
+
+     1141, 1142, 1144, 1145, 1146, 1147, 1148, 1150, 1151, 1152,
+     1153, 1128, 1154, 1155, 1156, 1157, 1158, 1129, 1159, 1160,
+     1161, 1162, 1163, 1164, 1165, 1166, 1169, 1171, 1172, 1173,
+     1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1184,
+     1185, 1186, 1187, 1189, 1190, 1191, 1192, 1193, 1194, 1197,
+     1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
+     1209, 1210, 1211, 1212, 1213, 1215, 1216, 1217, 1218, 1219,
+     1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
+     1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1242, 1243,
+     1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
+
+     1254, 1255, 1256, 1258, 1259, 1260, 1230, 1261, 1262, 1263,
+     1264, 1207, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
+     1273, 1274, 1275, 1276, 1277, 1278, 1279, 1236, 1273, 1281,
+     1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
+     1295, 1296, 1297, 1298, 1299, 1300, 1301, 1303, 1304, 1306,
+     1309, 1310, 1311, 1313, 1314, 1316, 1317, 1318, 1319, 1321,
+     1322, 1323, 1318, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
+     1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1341, 1342,
+     1344, 1319, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
+     1353, 1356, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
+
+     1366, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1376, 1377,
+     1379, 1380, 1381, 1382, 1384, 1385, 1386, 1387, 1388, 1389,
+     1390, 1391, 1392, 1393, 1395, 1397, 1398, 1400, 1401, 1402,
+     1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
+     1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1410, 1421,
+     1422, 1423, 1424, 1398, 1425, 1426, 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, 1454, 1455, 1456, 1457, 1458, 1460, 1461,
+     1462, 1463, 1464, 1466, 1469, 1470, 1471, 1474, 1475, 1476,
+
+     1477, 1478, 1479, 1480, 1481, 1482, 1484, 1486, 1487, 1488,
+     1489, 1490, 1491, 1492, 1493, 1427, 1495, 1496, 1498, 1500,
+     1464, 1501, 1502, 1504, 1505, 1506, 1507, 1508, 1510, 1511,
+     1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
+     1522, 1523, 1524, 1525, 1526, 1527, 1529, 1530, 1531, 1532,
+     1533, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
+     1544, 1545, 1546, 1547, 1548, 1550, 1551, 1552, 1554, 1556,
+     1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566, 1567,
+     1568, 1569, 1570, 1572, 1573, 1575, 1578, 1579, 1580, 1581,
+     1584, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594,
+
+     1596, 1597, 1598, 1600, 1601, 1602, 1603, 1604, 1605, 1607,
+     1608, 1609, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618,
+     1619, 1621, 1622, 1623, 1625, 1626, 1627, 1628, 1629, 1630,
+     1631, 1632, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641,
+     1644, 1645, 1646, 1647, 1648, 1649, 1650, 1653, 1654, 1655,
+     1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
+     1666, 1667, 1668, 1670, 1671, 1672, 1673, 1674, 1675, 1677,
+     1681, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1692, 1693,
+     1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1703, 1704,
+     1706, 1707, 1710, 1711, 1713, 1714, 1715, 1716, 1717, 1718,
+
+     1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
+     1729, 1730, 1731, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
+     1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1750,
+     1752, 1753, 1755, 1756, 1757, 1758, 1760, 1762, 1763, 1764,
+     1766, 1767, 1768, 1769, 1770, 1771, 1773, 1775, 1778, 1779,
+     1780, 1781, 1782, 1783, 1782, 1785, 1786, 1788, 1789, 1790,
+     1791, 1792, 1793, 1794, 1796, 1797, 1798, 1799, 1800, 1803,
+     1804, 1805, 1806, 1810, 1810, 1810, 1810, 1810, 1811, 1811,
+     1811, 1811, 1811, 1812, 1818, 1812, 1812, 1812, 1813, 1819,
+     1813, 1820, 1813, 1814, 1814, 1814, 1814, 1814, 1815, 1815,
+
+     1815, 1815, 1815, 1816, 1821, 1816, 1816, 1816, 1817, 1817,
+     1817,  716,  715,  714,  712,  711,  710,  709,  708,  706,
+      705,  704,  703,  702,  701,  700,  699,  698,  697,  696,
+      695,  694,  693,  692,  691,  690,  689,  687,  685,  684,
+      683,  682,  681,  680,  676,  675,  673,  672,  671,  670,
+      669,  668,  667,  666,  665,  663,  662,  660,  659,  658,
+      657,  656,  655,  654,  653,  652,  651,  650,  649,  648,
+      646,  645,  644,  643,  642,  641,  640,  639,  638,  636,
+      635,  634,  633,  632,  631,  629,  628,  627,  626,  625,
+      624,  623,  621,  620,  619,  618,  617,  616,  615,  614,
+
+      613,  612,  611,  610,  609,  607,  606,  605,  604,  603,
+      602,  601,  600,  599,  598,  597,  596,  594,  593,  592,
+      591,  590,  589,  588,  587,  586,  585,  584,  583,  582,
+      581,  580,  579,  578,  577,  576,  575,  574,  573,  572,
+      571,  570,  569,  568,  567,  566,  565,  557,  556,  555,
+      553,  552,  551,  549,  548,  546,  544,  543,  542,  541,
       540,  539,  538,  537,  536,  535,  534,  533,  532,  531,
-
-      530,  529,  528,  527,  526,  524,  522,  521,  520,  519,
-      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
-      507,  506,  505,  504,  503,  502,  501,  499,  498,  497,
-      496,  495,  494,  493,  492,  491,  490,  489,  488,  487,
-      485,  484,  483,  482,  480,  479,  478,  477,  476,  474,
-      473,  471,  470,  467,  466,  465,  464,  463,  462,  461,
-      459,  458,  457,  456,  455,  454,  453,  448,  447,  445,
-      444,  443,  442,  441,  439,  438,  436,  433,  431,  430,
-      428,  427,  426,  424,  423,  422,  421,  420,  419,  418,
-      417,  416,  415,  414,  413,  412,  411,  410,  408,  407,
-
-      406,  404,  403,  402,  401,  399,  398,  397,  396,  394,
-      393,  392,  391,  390,  389,  388,  387,  386,  385,  384,
-      382,  380,  379,  378,  377,  376,  375,  374,  372,  371,
-      370,  369,  368,  367,  366,  365,  364,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  349,
-      348,  347,  346,  345,  342,  341,  340,  339,  338,  337,
-      336,  335,  334,  333,  332,  331,  327,  325,  322,  321,
-      318,  314,  307,  305,  304,  303,  302,  301,  299,  298,
-      297,  296,  295,  294,  293,  292,  291,  289,  288,  287,
-      286,  285,  284,  283,  282,  280,  279,  278,  277,  276,
-
-      275,  274,  273,  272,  271,  270,  269,  268,  267,  266,
-      264,  263,  262,  261,  260,  259,  258,  257,  256,  255,
-      253,  252,  251,  250,  249,  248,  247,  246,  244,  243,
-      242,  241,  240,  239,  238,  237,  236,  235,  234,  233,
-      232,  231,  230,  229,  228,  227,  226,  225,  224,  222,
-      221,  220,  219,  218,  217,  216,  215,  214,  212,  209,
-      207,  205,  203,  200,  199,  197,  194,  186,  185,  184,
-      182,  181,  180,  178,  177,  176,  174,  173,  172,  168,
-      165,  163,  162,  161,  160,  159,  157,  156,  155,  154,
-      153,  152,  150,  149,  148,  147,  146,  145,  144,  143,
-
-      142,  140,  139,  137,  135,  134,  133,  132,  130,  129,
-      128,  127,  125,  124,  122,  121,  120,  116,  110,  107,
-      106,  104,   99,   98,   79,   74,   68,   60,   53,   50,
-       49,   47,   43,   41,   39,   38,   24,   14,   11, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-
-     1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
-     1838, 1838, 1838
+      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
+      520,  519,  518,  517,  516,  515,  514,  512,  510,  509,
+      508,  507,  506,  505,  504,  503,  502,  501,  500,  499,
+
+      498,  497,  495,  494,  493,  492,  491,  490,  489,  487,
+      486,  485,  484,  483,  482,  481,  480,  479,  478,  477,
+      476,  475,  473,  472,  471,  470,  468,  467,  466,  465,
+      464,  462,  461,  459,  458,  455,  454,  453,  452,  451,
+      450,  449,  447,  446,  445,  444,  443,  442,  441,  436,
+      434,  433,  431,  430,  428,  425,  423,  422,  420,  419,
+      418,  416,  415,  414,  413,  412,  411,  410,  409,  408,
+      407,  406,  405,  404,  403,  402,  400,  399,  398,  396,
+      395,  394,  393,  391,  390,  389,  388,  386,  385,  384,
+      383,  382,  381,  380,  379,  378,  377,  376,  374,  372,
+
+      371,  370,  369,  368,  367,  366,  364,  363,  362,  361,
+      360,  359,  358,  357,  356,  354,  353,  352,  351,  350,
+      349,  348,  347,  346,  345,  344,  343,  341,  340,  339,
+      338,  337,  334,  333,  332,  331,  330,  329,  328,  327,
+      326,  325,  324,  323,  319,  317,  314,  312,  308,  301,
+      299,  298,  297,  296,  295,  293,  292,  291,  290,  289,
+      288,  287,  286,  285,  283,  282,  281,  280,  279,  278,
+      277,  276,  274,  273,  272,  271,  270,  269,  268,  267,
+      266,  265,  264,  263,  262,  261,  260,  258,  257,  256,
+      255,  254,  253,  252,  251,  250,  249,  247,  246,  245,
+
+      244,  243,  242,  241,  240,  238,  237,  236,  235,  234,
+      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
+      223,  222,  221,  220,  219,  218,  216,  215,  214,  213,
+      212,  211,  210,  209,  208,  206,  203,  201,  199,  195,
+      193,  190,  182,  181,  180,  178,  177,  176,  174,  173,
+      172,  170,  169,  168,  164,  161,  159,  158,  157,  156,
+      155,  153,  152,  151,  150,  149,  148,  146,  145,  144,
+      143,  142,  141,  140,  139,  138,  136,  135,  133,  131,
+      130,  129,  128,  126,  125,  124,  123,  121,  120,  118,
+      117,  116,  112,  104,  102,   97,   96,   77,   72,   66,
+
+       58,   49,   47,   43,   41,   39,   38,   24,   14,   11,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+     1809, 1809, 1809, 1809
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1888,29 +1873,29 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[201] =
+static const flex_int16_t yy_rule_linenum[197] =
     {   0,
-      147,  149,  151,  156,  157,  162,  163,  164,  176,  179,
-      184,  191,  200,  209,  218,  227,  236,  245,  255,  264,
-      273,  282,  291,  300,  309,  318,  327,  336,  345,  354,
-      363,  375,  384,  393,  402,  411,  422,  433,  444,  455,
-      466,  477,  488,  499,  510,  521,  532,  543,  554,  565,
-      576,  587,  596,  607,  618,  629,  640,  651,  660,  669,
-      678,  687,  698,  709,  720,  731,  742,  753,  763,  774,
-      783,  793,  807,  823,  832,  841,  850,  859,  881,  903,
-      912,  922,  931,  942,  951,  960,  969,  978,  987,  997,
-     1006, 1017, 1028, 1040, 1049, 1059, 1068, 1077, 1086, 1095,
-
-     1104, 1113, 1122, 1131, 1141, 1152, 1164, 1173, 1182, 1192,
-     1202, 1212, 1222, 1232, 1242, 1251, 1261, 1270, 1279, 1288,
-     1297, 1307, 1317, 1326, 1336, 1345, 1354, 1363, 1372, 1381,
-     1390, 1399, 1408, 1417, 1426, 1435, 1444, 1453, 1462, 1471,
-     1480, 1489, 1498, 1507, 1516, 1525, 1534, 1543, 1552, 1561,
-     1570, 1579, 1588, 1597, 1606, 1615, 1624, 1633, 1642, 1651,
-     1663, 1675, 1685, 1695, 1705, 1715, 1725, 1735, 1745, 1755,
-     1765, 1774, 1783, 1792, 1801, 1810, 1819, 1828, 1839, 1850,
-     1863, 1876, 1889, 1988, 1993, 1998, 2003, 2004, 2005, 2006,
-     2007, 2008, 2010, 2028, 2041, 2046, 2050, 2052, 2054, 2056
+      145,  147,  149,  154,  155,  160,  161,  162,  174,  177,
+      182,  189,  198,  207,  216,  225,  234,  243,  253,  262,
+      271,  280,  289,  298,  307,  316,  325,  334,  343,  352,
+      361,  373,  382,  391,  400,  409,  420,  431,  442,  453,
+      464,  475,  486,  497,  508,  519,  530,  541,  552,  563,
+      574,  585,  594,  605,  616,  627,  638,  649,  658,  667,
+      676,  685,  696,  707,  718,  729,  740,  751,  761,  772,
+      781,  791,  805,  821,  830,  839,  848,  857,  879,  901,
+      910,  920,  929,  940,  949,  958,  967,  976,  985,  995,
+     1004, 1015, 1026, 1038, 1047, 1056, 1065, 1074, 1083, 1092,
+
+     1101, 1110, 1119, 1129, 1140, 1152, 1161, 1170, 1180, 1190,
+     1200, 1210, 1220, 1230, 1239, 1249, 1258, 1267, 1276, 1285,
+     1295, 1305, 1314, 1324, 1333, 1342, 1351, 1360, 1369, 1378,
+     1387, 1396, 1405, 1414, 1423, 1432, 1441, 1450, 1459, 1468,
+     1477, 1486, 1495, 1504, 1513, 1522, 1531, 1540, 1549, 1558,
+     1567, 1576, 1585, 1594, 1603, 1612, 1621, 1630, 1639, 1651,
+     1663, 1673, 1683, 1693, 1703, 1713, 1723, 1733, 1743, 1753,
+     1762, 1771, 1780, 1789, 1800, 1811, 1824, 1837, 1850, 1949,
+     1954, 1959, 1964, 1965, 1966, 1967, 1968, 1969, 1971, 1989,
+     2002, 2007, 2011, 2013, 2015, 2017
 
     } ;
 
@@ -1964,7 +1949,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1967 "dhcp4_lexer.cc"
+#line 1952 "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
@@ -1990,8 +1975,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 1993 "dhcp4_lexer.cc"
-#line 1994 "dhcp4_lexer.cc"
+#line 1978 "dhcp4_lexer.cc"
+#line 1979 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2315,13 +2300,11 @@ YY_DECL
             return isc::dhcp::Dhcp4Parser::make_SUB_DHCP_DDNS(driver.loc_);
         case Parser4Context::PARSER_CONFIG_CONTROL:
             return isc::dhcp::Dhcp4Parser::make_SUB_CONFIG_CONTROL(driver.loc_);
-        case Parser4Context::PARSER_LOGGING:
-            return isc::dhcp::Dhcp4Parser::make_SUB_LOGGING(driver.loc_);
         }
     }
 
 
-#line 2324 "dhcp4_lexer.cc"
+#line 2307 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2350,13 +2333,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 >= 1839 )
+                               if ( yy_current_state >= 1810 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1838 );
+               while ( yy_current_state != 1809 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2375,13 +2358,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 < 201 )
+                       else if ( yy_act < 197 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 201 )
+                       else if ( yy_act == 197 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 202 )
+                       else if ( yy_act == 198 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2399,17 +2382,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 147 "dhcp4_lexer.ll"
+#line 145 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 149 "dhcp4_lexer.ll"
+#line 147 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 151 "dhcp4_lexer.ll"
+#line 149 "dhcp4_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2417,33 +2400,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 156 "dhcp4_lexer.ll"
+#line 154 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 157 "dhcp4_lexer.ll"
+#line 155 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 158 "dhcp4_lexer.ll"
+#line 156 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 162 "dhcp4_lexer.ll"
+#line 160 "dhcp4_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 163 "dhcp4_lexer.ll"
+#line 161 "dhcp4_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 164 "dhcp4_lexer.ll"
+#line 162 "dhcp4_lexer.ll"
 {
     /* Include directive. */
 
@@ -2457,19 +2440,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 173 "dhcp4_lexer.ll"
+#line 171 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 176 "dhcp4_lexer.ll"
+#line 174 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 179 "dhcp4_lexer.ll"
+#line 177 "dhcp4_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2478,7 +2461,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 184 "dhcp4_lexer.ll"
+#line 182 "dhcp4_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -2487,7 +2470,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 191 "dhcp4_lexer.ll"
+#line 189 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2499,7 +2482,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 200 "dhcp4_lexer.ll"
+#line 198 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2511,7 +2494,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 209 "dhcp4_lexer.ll"
+#line 207 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2523,7 +2506,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 218 "dhcp4_lexer.ll"
+#line 216 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SANITY_CHECKS:
@@ -2535,7 +2518,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 227 "dhcp4_lexer.ll"
+#line 225 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2547,7 +2530,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 236 "dhcp4_lexer.ll"
+#line 234 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2559,7 +2542,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 245 "dhcp4_lexer.ll"
+#line 243 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2572,7 +2555,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 255 "dhcp4_lexer.ll"
+#line 253 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::INTERFACES_CONFIG:
@@ -2584,7 +2567,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 264 "dhcp4_lexer.ll"
+#line 262 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2596,7 +2579,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 273 "dhcp4_lexer.ll"
+#line 271 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2608,7 +2591,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 282 "dhcp4_lexer.ll"
+#line 280 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2620,7 +2603,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 291 "dhcp4_lexer.ll"
+#line 289 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2632,7 +2615,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 300 "dhcp4_lexer.ll"
+#line 298 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2644,7 +2627,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 309 "dhcp4_lexer.ll"
+#line 307 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2656,7 +2639,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 318 "dhcp4_lexer.ll"
+#line 316 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2668,7 +2651,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 327 "dhcp4_lexer.ll"
+#line 325 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2680,7 +2663,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 336 "dhcp4_lexer.ll"
+#line 334 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG_CONTROL:
@@ -2692,7 +2675,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 345 "dhcp4_lexer.ll"
+#line 343 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG_CONTROL:
@@ -2704,7 +2687,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 354 "dhcp4_lexer.ll"
+#line 352 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
@@ -2716,7 +2699,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 363 "dhcp4_lexer.ll"
+#line 361 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2731,7 +2714,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 375 "dhcp4_lexer.ll"
+#line 373 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2743,7 +2726,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 384 "dhcp4_lexer.ll"
+#line 382 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2755,7 +2738,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 393 "dhcp4_lexer.ll"
+#line 391 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2767,7 +2750,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 402 "dhcp4_lexer.ll"
+#line 400 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2779,7 +2762,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 411 "dhcp4_lexer.ll"
+#line 409 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2793,7 +2776,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 422 "dhcp4_lexer.ll"
+#line 420 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2807,7 +2790,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 433 "dhcp4_lexer.ll"
+#line 431 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2821,7 +2804,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 444 "dhcp4_lexer.ll"
+#line 442 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2835,7 +2818,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 455 "dhcp4_lexer.ll"
+#line 453 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2849,7 +2832,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 466 "dhcp4_lexer.ll"
+#line 464 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2863,7 +2846,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 477 "dhcp4_lexer.ll"
+#line 475 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2877,7 +2860,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 488 "dhcp4_lexer.ll"
+#line 486 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2891,7 +2874,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 499 "dhcp4_lexer.ll"
+#line 497 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2905,7 +2888,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 510 "dhcp4_lexer.ll"
+#line 508 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2919,7 +2902,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 521 "dhcp4_lexer.ll"
+#line 519 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2933,7 +2916,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 532 "dhcp4_lexer.ll"
+#line 530 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2947,7 +2930,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 543 "dhcp4_lexer.ll"
+#line 541 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2961,7 +2944,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 554 "dhcp4_lexer.ll"
+#line 552 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2975,7 +2958,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 565 "dhcp4_lexer.ll"
+#line 563 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2989,7 +2972,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 576 "dhcp4_lexer.ll"
+#line 574 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -3003,7 +2986,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 587 "dhcp4_lexer.ll"
+#line 585 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -3015,7 +2998,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 596 "dhcp4_lexer.ll"
+#line 594 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3029,7 +3012,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 607 "dhcp4_lexer.ll"
+#line 605 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3043,7 +3026,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 618 "dhcp4_lexer.ll"
+#line 616 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3057,7 +3040,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 629 "dhcp4_lexer.ll"
+#line 627 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3071,7 +3054,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 640 "dhcp4_lexer.ll"
+#line 638 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3085,7 +3068,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 651 "dhcp4_lexer.ll"
+#line 649 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3097,7 +3080,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 660 "dhcp4_lexer.ll"
+#line 658 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3109,7 +3092,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 669 "dhcp4_lexer.ll"
+#line 667 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3121,7 +3104,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 678 "dhcp4_lexer.ll"
+#line 676 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3133,7 +3116,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 687 "dhcp4_lexer.ll"
+#line 685 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3147,7 +3130,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 698 "dhcp4_lexer.ll"
+#line 696 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3161,7 +3144,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 709 "dhcp4_lexer.ll"
+#line 707 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3175,7 +3158,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 720 "dhcp4_lexer.ll"
+#line 718 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3189,7 +3172,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 731 "dhcp4_lexer.ll"
+#line 729 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3203,7 +3186,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 742 "dhcp4_lexer.ll"
+#line 740 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3217,7 +3200,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 753 "dhcp4_lexer.ll"
+#line 751 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3230,7 +3213,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 763 "dhcp4_lexer.ll"
+#line 761 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3244,7 +3227,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 774 "dhcp4_lexer.ll"
+#line 772 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3256,7 +3239,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 783 "dhcp4_lexer.ll"
+#line 781 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3269,7 +3252,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 793 "dhcp4_lexer.ll"
+#line 791 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3286,7 +3269,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 807 "dhcp4_lexer.ll"
+#line 805 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -3305,7 +3288,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 823 "dhcp4_lexer.ll"
+#line 821 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3317,7 +3300,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 832 "dhcp4_lexer.ll"
+#line 830 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3329,7 +3312,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 841 "dhcp4_lexer.ll"
+#line 839 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3341,7 +3324,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 850 "dhcp4_lexer.ll"
+#line 848 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -3353,7 +3336,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 859 "dhcp4_lexer.ll"
+#line 857 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3378,7 +3361,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 881 "dhcp4_lexer.ll"
+#line 879 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3403,7 +3386,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 903 "dhcp4_lexer.ll"
+#line 901 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3415,7 +3398,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 912 "dhcp4_lexer.ll"
+#line 910 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3428,7 +3411,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 922 "dhcp4_lexer.ll"
+#line 920 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3440,7 +3423,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 931 "dhcp4_lexer.ll"
+#line 929 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3454,7 +3437,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 942 "dhcp4_lexer.ll"
+#line 940 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3466,7 +3449,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 951 "dhcp4_lexer.ll"
+#line 949 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3478,7 +3461,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 960 "dhcp4_lexer.ll"
+#line 958 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3490,7 +3473,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 969 "dhcp4_lexer.ll"
+#line 967 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3502,7 +3485,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 978 "dhcp4_lexer.ll"
+#line 976 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3514,7 +3497,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 987 "dhcp4_lexer.ll"
+#line 985 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3527,7 +3510,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 997 "dhcp4_lexer.ll"
+#line 995 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3539,7 +3522,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 1006 "dhcp4_lexer.ll"
+#line 1004 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3553,7 +3536,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 1017 "dhcp4_lexer.ll"
+#line 1015 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3567,7 +3550,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 1028 "dhcp4_lexer.ll"
+#line 1026 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3581,32 +3564,19 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1040 "dhcp4_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::CONFIG:
-        return isc::dhcp::Dhcp4Parser::make_LOGGING(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp4Parser::make_STRING("Logging", driver.loc_);
-    }
-}
-       YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 1049 "dhcp4_lexer.ll"
+#line 1038 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
-    case isc::dhcp::Parser4Context::LOGGING:
         return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
     default:
         return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
     }
 }
        YY_BREAK
-case 96:
+case 95:
 YY_RULE_SETUP
-#line 1059 "dhcp4_lexer.ll"
+#line 1047 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3616,9 +3586,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 96:
 YY_RULE_SETUP
-#line 1068 "dhcp4_lexer.ll"
+#line 1056 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3628,9 +3598,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 97:
 YY_RULE_SETUP
-#line 1077 "dhcp4_lexer.ll"
+#line 1065 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3640,9 +3610,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 98:
 YY_RULE_SETUP
-#line 1086 "dhcp4_lexer.ll"
+#line 1074 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3652,9 +3622,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 99:
 YY_RULE_SETUP
-#line 1095 "dhcp4_lexer.ll"
+#line 1083 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3664,9 +3634,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 100:
 YY_RULE_SETUP
-#line 1104 "dhcp4_lexer.ll"
+#line 1092 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3676,9 +3646,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 101:
 YY_RULE_SETUP
-#line 1113 "dhcp4_lexer.ll"
+#line 1101 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3688,9 +3658,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 102:
 YY_RULE_SETUP
-#line 1122 "dhcp4_lexer.ll"
+#line 1110 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3700,9 +3670,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 103:
 YY_RULE_SETUP
-#line 1131 "dhcp4_lexer.ll"
+#line 1119 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3713,9 +3683,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 104:
 YY_RULE_SETUP
-#line 1141 "dhcp4_lexer.ll"
+#line 1129 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3727,9 +3697,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 105:
 YY_RULE_SETUP
-#line 1152 "dhcp4_lexer.ll"
+#line 1140 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3742,9 +3712,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 106:
 YY_RULE_SETUP
-#line 1164 "dhcp4_lexer.ll"
+#line 1152 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3754,9 +3724,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 107:
 YY_RULE_SETUP
-#line 1173 "dhcp4_lexer.ll"
+#line 1161 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3766,9 +3736,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 108:
 YY_RULE_SETUP
-#line 1182 "dhcp4_lexer.ll"
+#line 1170 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3779,9 +3749,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 109:
 YY_RULE_SETUP
-#line 1192 "dhcp4_lexer.ll"
+#line 1180 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3792,9 +3762,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 110:
 YY_RULE_SETUP
-#line 1202 "dhcp4_lexer.ll"
+#line 1190 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3805,9 +3775,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 111:
 YY_RULE_SETUP
-#line 1212 "dhcp4_lexer.ll"
+#line 1200 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3818,9 +3788,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 112:
 YY_RULE_SETUP
-#line 1222 "dhcp4_lexer.ll"
+#line 1210 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3831,9 +3801,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 113:
 YY_RULE_SETUP
-#line 1232 "dhcp4_lexer.ll"
+#line 1220 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3844,9 +3814,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 114:
 YY_RULE_SETUP
-#line 1242 "dhcp4_lexer.ll"
+#line 1230 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3856,9 +3826,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 115:
 YY_RULE_SETUP
-#line 1251 "dhcp4_lexer.ll"
+#line 1239 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3869,9 +3839,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 116:
 YY_RULE_SETUP
-#line 1261 "dhcp4_lexer.ll"
+#line 1249 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3881,9 +3851,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 117:
 YY_RULE_SETUP
-#line 1270 "dhcp4_lexer.ll"
+#line 1258 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3893,9 +3863,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 118:
 YY_RULE_SETUP
-#line 1279 "dhcp4_lexer.ll"
+#line 1267 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3905,9 +3875,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 119:
 YY_RULE_SETUP
-#line 1288 "dhcp4_lexer.ll"
+#line 1276 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3917,9 +3887,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 120:
 YY_RULE_SETUP
-#line 1297 "dhcp4_lexer.ll"
+#line 1285 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3930,9 +3900,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 121:
 YY_RULE_SETUP
-#line 1307 "dhcp4_lexer.ll"
+#line 1295 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3943,9 +3913,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 122:
 YY_RULE_SETUP
-#line 1317 "dhcp4_lexer.ll"
+#line 1305 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3955,9 +3925,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 123:
 YY_RULE_SETUP
-#line 1326 "dhcp4_lexer.ll"
+#line 1314 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3967,9 +3937,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 124:
 YY_RULE_SETUP
-#line 1336 "dhcp4_lexer.ll"
+#line 1324 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3979,9 +3949,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 125:
 YY_RULE_SETUP
-#line 1345 "dhcp4_lexer.ll"
+#line 1333 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3991,9 +3961,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 126:
 YY_RULE_SETUP
-#line 1354 "dhcp4_lexer.ll"
+#line 1342 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4003,9 +3973,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 127:
 YY_RULE_SETUP
-#line 1363 "dhcp4_lexer.ll"
+#line 1351 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4015,9 +3985,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 128:
 YY_RULE_SETUP
-#line 1372 "dhcp4_lexer.ll"
+#line 1360 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4027,9 +3997,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 129:
 YY_RULE_SETUP
-#line 1381 "dhcp4_lexer.ll"
+#line 1369 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4039,9 +4009,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 130:
 YY_RULE_SETUP
-#line 1390 "dhcp4_lexer.ll"
+#line 1378 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4051,9 +4021,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 131:
 YY_RULE_SETUP
-#line 1399 "dhcp4_lexer.ll"
+#line 1387 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4063,9 +4033,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 132:
 YY_RULE_SETUP
-#line 1408 "dhcp4_lexer.ll"
+#line 1396 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4075,9 +4045,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 133:
 YY_RULE_SETUP
-#line 1417 "dhcp4_lexer.ll"
+#line 1405 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4087,9 +4057,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 134:
 YY_RULE_SETUP
-#line 1426 "dhcp4_lexer.ll"
+#line 1414 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4099,9 +4069,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 135:
 YY_RULE_SETUP
-#line 1435 "dhcp4_lexer.ll"
+#line 1423 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4111,9 +4081,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 136:
 YY_RULE_SETUP
-#line 1444 "dhcp4_lexer.ll"
+#line 1432 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4123,9 +4093,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 137:
 YY_RULE_SETUP
-#line 1453 "dhcp4_lexer.ll"
+#line 1441 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4135,9 +4105,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 138:
 YY_RULE_SETUP
-#line 1462 "dhcp4_lexer.ll"
+#line 1450 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4147,9 +4117,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 139:
 YY_RULE_SETUP
-#line 1471 "dhcp4_lexer.ll"
+#line 1459 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4159,9 +4129,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 140:
 YY_RULE_SETUP
-#line 1480 "dhcp4_lexer.ll"
+#line 1468 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4171,9 +4141,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 141:
 YY_RULE_SETUP
-#line 1489 "dhcp4_lexer.ll"
+#line 1477 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4183,9 +4153,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 142:
 YY_RULE_SETUP
-#line 1498 "dhcp4_lexer.ll"
+#line 1486 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4195,9 +4165,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 143:
 YY_RULE_SETUP
-#line 1507 "dhcp4_lexer.ll"
+#line 1495 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4207,9 +4177,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 144:
 YY_RULE_SETUP
-#line 1516 "dhcp4_lexer.ll"
+#line 1504 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4219,9 +4189,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 145:
 YY_RULE_SETUP
-#line 1525 "dhcp4_lexer.ll"
+#line 1513 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4231,9 +4201,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 146:
 YY_RULE_SETUP
-#line 1534 "dhcp4_lexer.ll"
+#line 1522 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4243,9 +4213,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 147:
 YY_RULE_SETUP
-#line 1543 "dhcp4_lexer.ll"
+#line 1531 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4255,9 +4225,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 148:
 YY_RULE_SETUP
-#line 1552 "dhcp4_lexer.ll"
+#line 1540 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4267,9 +4237,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 149:
 YY_RULE_SETUP
-#line 1561 "dhcp4_lexer.ll"
+#line 1549 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4279,9 +4249,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 150:
 YY_RULE_SETUP
-#line 1570 "dhcp4_lexer.ll"
+#line 1558 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4291,9 +4261,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 151:
 YY_RULE_SETUP
-#line 1579 "dhcp4_lexer.ll"
+#line 1567 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4303,9 +4273,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 152:
 YY_RULE_SETUP
-#line 1588 "dhcp4_lexer.ll"
+#line 1576 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4315,9 +4285,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 153:
 YY_RULE_SETUP
-#line 1597 "dhcp4_lexer.ll"
+#line 1585 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4327,9 +4297,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 154:
 YY_RULE_SETUP
-#line 1606 "dhcp4_lexer.ll"
+#line 1594 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4339,9 +4309,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 155:
 YY_RULE_SETUP
-#line 1615 "dhcp4_lexer.ll"
+#line 1603 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4351,9 +4321,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 156:
 YY_RULE_SETUP
-#line 1624 "dhcp4_lexer.ll"
+#line 1612 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4363,9 +4333,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 157:
 YY_RULE_SETUP
-#line 1633 "dhcp4_lexer.ll"
+#line 1621 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4375,9 +4345,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 158:
 YY_RULE_SETUP
-#line 1642 "dhcp4_lexer.ll"
+#line 1630 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4387,9 +4357,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 159:
 YY_RULE_SETUP
-#line 1651 "dhcp4_lexer.ll"
+#line 1639 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4402,9 +4372,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 160:
 YY_RULE_SETUP
-#line 1663 "dhcp4_lexer.ll"
+#line 1651 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4417,9 +4387,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 161:
 YY_RULE_SETUP
-#line 1675 "dhcp4_lexer.ll"
+#line 1663 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4430,9 +4400,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 163:
+case 162:
 YY_RULE_SETUP
-#line 1685 "dhcp4_lexer.ll"
+#line 1673 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4443,9 +4413,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 164:
+case 163:
 YY_RULE_SETUP
-#line 1695 "dhcp4_lexer.ll"
+#line 1683 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -4456,9 +4426,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 165:
+case 164:
 YY_RULE_SETUP
-#line 1705 "dhcp4_lexer.ll"
+#line 1693 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4469,9 +4439,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 166:
+case 165:
 YY_RULE_SETUP
-#line 1715 "dhcp4_lexer.ll"
+#line 1703 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4482,9 +4452,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 167:
+case 166:
 YY_RULE_SETUP
-#line 1725 "dhcp4_lexer.ll"
+#line 1713 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4495,9 +4465,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 168:
+case 167:
 YY_RULE_SETUP
-#line 1735 "dhcp4_lexer.ll"
+#line 1723 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4508,9 +4478,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 169:
+case 168:
 YY_RULE_SETUP
-#line 1745 "dhcp4_lexer.ll"
+#line 1733 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4521,9 +4491,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 170:
+case 169:
 YY_RULE_SETUP
-#line 1755 "dhcp4_lexer.ll"
+#line 1743 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4534,45 +4504,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 171:
-YY_RULE_SETUP
-#line 1765 "dhcp4_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::CONFIG:
-        return isc::dhcp::Dhcp4Parser::make_DHCP6(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp6", driver.loc_);
-    }
-}
-       YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 1774 "dhcp4_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::CONFIG:
-        return isc::dhcp::Dhcp4Parser::make_DHCPDDNS(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp4Parser::make_STRING("DhcpDdns", driver.loc_);
-    }
-}
-       YY_BREAK
-case 173:
-YY_RULE_SETUP
-#line 1783 "dhcp4_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::CONFIG:
-        return isc::dhcp::Dhcp4Parser::make_CONTROL_AGENT(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp4Parser::make_STRING("Control-agent", driver.loc_);
-    }
-}
-       YY_BREAK
-case 174:
+case 170:
 YY_RULE_SETUP
-#line 1792 "dhcp4_lexer.ll"
+#line 1753 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4582,9 +4516,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 171:
 YY_RULE_SETUP
-#line 1801 "dhcp4_lexer.ll"
+#line 1762 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4594,9 +4528,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 172:
 YY_RULE_SETUP
-#line 1810 "dhcp4_lexer.ll"
+#line 1771 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4606,9 +4540,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 173:
 YY_RULE_SETUP
-#line 1819 "dhcp4_lexer.ll"
+#line 1780 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4618,9 +4552,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 174:
 YY_RULE_SETUP
-#line 1828 "dhcp4_lexer.ll"
+#line 1789 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4632,9 +4566,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 175:
 YY_RULE_SETUP
-#line 1839 "dhcp4_lexer.ll"
+#line 1800 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4646,9 +4580,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 176:
 YY_RULE_SETUP
-#line 1850 "dhcp4_lexer.ll"
+#line 1811 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4662,9 +4596,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 181:
+case 177:
 YY_RULE_SETUP
-#line 1863 "dhcp4_lexer.ll"
+#line 1824 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4678,9 +4612,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 182:
+case 178:
 YY_RULE_SETUP
-#line 1876 "dhcp4_lexer.ll"
+#line 1837 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4694,9 +4628,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 183:
+case 179:
 YY_RULE_SETUP
-#line 1889 "dhcp4_lexer.ll"
+#line 1850 "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.
@@ -4796,65 +4730,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 184:
-/* rule 184 can match eol */
+case 180:
+/* rule 180 can match eol */
 YY_RULE_SETUP
-#line 1988 "dhcp4_lexer.ll"
+#line 1949 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 185:
-/* rule 185 can match eol */
+case 181:
+/* rule 181 can match eol */
 YY_RULE_SETUP
-#line 1993 "dhcp4_lexer.ll"
+#line 1954 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 186:
+case 182:
 YY_RULE_SETUP
-#line 1998 "dhcp4_lexer.ll"
+#line 1959 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
 }
        YY_BREAK
-case 187:
+case 183:
 YY_RULE_SETUP
-#line 2003 "dhcp4_lexer.ll"
+#line 1964 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 188:
+case 184:
 YY_RULE_SETUP
-#line 2004 "dhcp4_lexer.ll"
+#line 1965 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 189:
+case 185:
 YY_RULE_SETUP
-#line 2005 "dhcp4_lexer.ll"
+#line 1966 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 190:
+case 186:
 YY_RULE_SETUP
-#line 2006 "dhcp4_lexer.ll"
+#line 1967 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 191:
+case 187:
 YY_RULE_SETUP
-#line 2007 "dhcp4_lexer.ll"
+#line 1968 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 192:
+case 188:
 YY_RULE_SETUP
-#line 2008 "dhcp4_lexer.ll"
+#line 1969 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 193:
+case 189:
 YY_RULE_SETUP
-#line 2010 "dhcp4_lexer.ll"
+#line 1971 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4873,9 +4807,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 194:
+case 190:
 YY_RULE_SETUP
-#line 2028 "dhcp4_lexer.ll"
+#line 1989 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4889,43 +4823,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 195:
+case 191:
 YY_RULE_SETUP
-#line 2041 "dhcp4_lexer.ll"
+#line 2002 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 196:
+case 192:
 YY_RULE_SETUP
-#line 2046 "dhcp4_lexer.ll"
+#line 2007 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 197:
+case 193:
 YY_RULE_SETUP
-#line 2050 "dhcp4_lexer.ll"
+#line 2011 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 198:
+case 194:
 YY_RULE_SETUP
-#line 2052 "dhcp4_lexer.ll"
+#line 2013 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 199:
+case 195:
 YY_RULE_SETUP
-#line 2054 "dhcp4_lexer.ll"
+#line 2015 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 200:
+case 196:
 YY_RULE_SETUP
-#line 2056 "dhcp4_lexer.ll"
+#line 2017 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2058 "dhcp4_lexer.ll"
+#line 2019 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4949,12 +4883,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 201:
+case 197:
 YY_RULE_SETUP
-#line 2081 "dhcp4_lexer.ll"
+#line 2042 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4957 "dhcp4_lexer.cc"
+#line 4891 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5273,7 +5207,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 >= 1839 )
+                       if ( yy_current_state >= 1810 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5306,11 +5240,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 >= 1839 )
+               if ( yy_current_state >= 1810 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1838);
+       yy_is_jam = (yy_current_state == 1809);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6059,7 +5993,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2081 "dhcp4_lexer.ll"
+#line 2042 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index 1efc043aed3caaeefc91d6041f87c95de4945612..df0f9d70ee509c968abdf105ccf825f01b4411a5 100644 (file)
@@ -209,30 +209,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -251,30 +251,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -293,30 +293,30 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.copy< ElementPtr > (that.value);
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.copy< bool > (that.value);
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.copy< double > (that.value);
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.copy< int64_t > (that.value);
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.copy< std::string > (that.value);
         break;
 
@@ -334,30 +334,30 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -397,74 +397,74 @@ namespace isc { namespace dhcp {
             << yysym.location << ": ";
         switch (yykind)
     {
-      case 191: // "constant string"
-#line 274 "dhcp4_parser.yy"
+      case 186: // "constant string"
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < std::string > (); }
 #line 404 "dhcp4_parser.cc"
         break;
 
-      case 192: // "integer"
-#line 274 "dhcp4_parser.yy"
+      case 187: // "integer"
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < int64_t > (); }
 #line 410 "dhcp4_parser.cc"
         break;
 
-      case 193: // "floating point"
-#line 274 "dhcp4_parser.yy"
+      case 188: // "floating point"
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < double > (); }
 #line 416 "dhcp4_parser.cc"
         break;
 
-      case 194: // "boolean"
-#line 274 "dhcp4_parser.yy"
+      case 189: // "boolean"
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < bool > (); }
 #line 422 "dhcp4_parser.cc"
         break;
 
-      case 211: // value
-#line 274 "dhcp4_parser.yy"
+      case 205: // value
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 428 "dhcp4_parser.cc"
         break;
 
-      case 215: // map_value
-#line 274 "dhcp4_parser.yy"
+      case 209: // map_value
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 434 "dhcp4_parser.cc"
         break;
 
-      case 256: // ddns_replace_client_name_value
-#line 274 "dhcp4_parser.yy"
+      case 250: // ddns_replace_client_name_value
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 440 "dhcp4_parser.cc"
         break;
 
-      case 278: // socket_type
-#line 274 "dhcp4_parser.yy"
+      case 272: // socket_type
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 446 "dhcp4_parser.cc"
         break;
 
-      case 281: // outbound_interface_value
-#line 274 "dhcp4_parser.yy"
+      case 275: // outbound_interface_value
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 452 "dhcp4_parser.cc"
         break;
 
-      case 303: // db_type
-#line 274 "dhcp4_parser.yy"
+      case 297: // db_type
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 458 "dhcp4_parser.cc"
         break;
 
-      case 397: // hr_mode
-#line 274 "dhcp4_parser.yy"
+      case 391: // hr_mode
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 464 "dhcp4_parser.cc"
         break;
 
-      case 552: // ncr_protocol_value
-#line 274 "dhcp4_parser.yy"
+      case 546: // ncr_protocol_value
+#line 268 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 470 "dhcp4_parser.cc"
         break;
@@ -696,30 +696,30 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -744,280 +744,274 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 283 "dhcp4_parser.yy"
+#line 277 "dhcp4_parser.yy"
                      { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 750 "dhcp4_parser.cc"
     break;
 
   case 4:
-#line 284 "dhcp4_parser.yy"
+#line 278 "dhcp4_parser.yy"
                       { ctx.ctx_ = ctx.CONFIG; }
 #line 756 "dhcp4_parser.cc"
     break;
 
   case 6:
-#line 285 "dhcp4_parser.yy"
+#line 279 "dhcp4_parser.yy"
                  { ctx.ctx_ = ctx.DHCP4; }
 #line 762 "dhcp4_parser.cc"
     break;
 
   case 8:
-#line 286 "dhcp4_parser.yy"
+#line 280 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 768 "dhcp4_parser.cc"
     break;
 
   case 10:
-#line 287 "dhcp4_parser.yy"
+#line 281 "dhcp4_parser.yy"
                    { ctx.ctx_ = ctx.SUBNET4; }
 #line 774 "dhcp4_parser.cc"
     break;
 
   case 12:
-#line 288 "dhcp4_parser.yy"
+#line 282 "dhcp4_parser.yy"
                  { ctx.ctx_ = ctx.POOLS; }
 #line 780 "dhcp4_parser.cc"
     break;
 
   case 14:
-#line 289 "dhcp4_parser.yy"
+#line 283 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 786 "dhcp4_parser.cc"
     break;
 
   case 16:
-#line 290 "dhcp4_parser.yy"
+#line 284 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.DHCP4; }
 #line 792 "dhcp4_parser.cc"
     break;
 
   case 18:
-#line 291 "dhcp4_parser.yy"
+#line 285 "dhcp4_parser.yy"
                       { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 798 "dhcp4_parser.cc"
     break;
 
   case 20:
-#line 292 "dhcp4_parser.yy"
+#line 286 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 804 "dhcp4_parser.cc"
     break;
 
   case 22:
-#line 293 "dhcp4_parser.yy"
+#line 287 "dhcp4_parser.yy"
                          { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 810 "dhcp4_parser.cc"
     break;
 
   case 24:
-#line 294 "dhcp4_parser.yy"
+#line 288 "dhcp4_parser.yy"
                      { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 816 "dhcp4_parser.cc"
     break;
 
   case 26:
-#line 295 "dhcp4_parser.yy"
-                   { ctx.ctx_ = ctx.LOGGING; }
+#line 289 "dhcp4_parser.yy"
+                          { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 822 "dhcp4_parser.cc"
     break;
 
   case 28:
-#line 296 "dhcp4_parser.yy"
-                          { ctx.ctx_ = ctx.CONFIG_CONTROL; }
-#line 828 "dhcp4_parser.cc"
-    break;
-
-  case 30:
-#line 304 "dhcp4_parser.yy"
+#line 297 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 834 "dhcp4_parser.cc"
+#line 828 "dhcp4_parser.cc"
     break;
 
-  case 31:
-#line 305 "dhcp4_parser.yy"
+  case 29:
+#line 298 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 840 "dhcp4_parser.cc"
+#line 834 "dhcp4_parser.cc"
     break;
 
-  case 32:
-#line 306 "dhcp4_parser.yy"
+  case 30:
+#line 299 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 846 "dhcp4_parser.cc"
+#line 840 "dhcp4_parser.cc"
     break;
 
-  case 33:
-#line 307 "dhcp4_parser.yy"
+  case 31:
+#line 300 "dhcp4_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 852 "dhcp4_parser.cc"
+#line 846 "dhcp4_parser.cc"
     break;
 
-  case 34:
-#line 308 "dhcp4_parser.yy"
+  case 32:
+#line 301 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 858 "dhcp4_parser.cc"
+#line 852 "dhcp4_parser.cc"
     break;
 
-  case 35:
-#line 309 "dhcp4_parser.yy"
+  case 33:
+#line 302 "dhcp4_parser.yy"
             { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 864 "dhcp4_parser.cc"
+#line 858 "dhcp4_parser.cc"
     break;
 
-  case 36:
-#line 310 "dhcp4_parser.yy"
+  case 34:
+#line 303 "dhcp4_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 870 "dhcp4_parser.cc"
+#line 864 "dhcp4_parser.cc"
     break;
 
-  case 37:
-#line 313 "dhcp4_parser.yy"
+  case 35:
+#line 306 "dhcp4_parser.yy"
                 {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
 }
-#line 879 "dhcp4_parser.cc"
+#line 873 "dhcp4_parser.cc"
     break;
 
-  case 38:
-#line 318 "dhcp4_parser.yy"
+  case 36:
+#line 311 "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 890 "dhcp4_parser.cc"
+#line 884 "dhcp4_parser.cc"
     break;
 
-  case 39:
-#line 323 "dhcp4_parser.yy"
+  case 37:
+#line 316 "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 900 "dhcp4_parser.cc"
+#line 894 "dhcp4_parser.cc"
     break;
 
-  case 40:
-#line 329 "dhcp4_parser.yy"
+  case 38:
+#line 322 "dhcp4_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 906 "dhcp4_parser.cc"
+#line 900 "dhcp4_parser.cc"
     break;
 
-  case 43:
-#line 336 "dhcp4_parser.yy"
+  case 41:
+#line 329 "dhcp4_parser.yy"
                                   {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 915 "dhcp4_parser.cc"
+#line 909 "dhcp4_parser.cc"
     break;
 
-  case 44:
-#line 340 "dhcp4_parser.yy"
+  case 42:
+#line 333 "dhcp4_parser.yy"
                                                       {
                   // map consisting of a shorter map followed by
                   // comma and string:value
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 925 "dhcp4_parser.cc"
+#line 919 "dhcp4_parser.cc"
     break;
 
-  case 45:
-#line 347 "dhcp4_parser.yy"
+  case 43:
+#line 340 "dhcp4_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
 }
-#line 934 "dhcp4_parser.cc"
+#line 928 "dhcp4_parser.cc"
     break;
 
-  case 46:
-#line 350 "dhcp4_parser.yy"
+  case 44:
+#line 343 "dhcp4_parser.yy"
                                {
     // list parsing complete. Put any sanity checking here
 }
-#line 942 "dhcp4_parser.cc"
+#line 936 "dhcp4_parser.cc"
     break;
 
-  case 49:
-#line 358 "dhcp4_parser.yy"
+  case 47:
+#line 351 "dhcp4_parser.yy"
                       {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 951 "dhcp4_parser.cc"
+#line 945 "dhcp4_parser.cc"
     break;
 
-  case 50:
-#line 362 "dhcp4_parser.yy"
+  case 48:
+#line 355 "dhcp4_parser.yy"
                                            {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 960 "dhcp4_parser.cc"
+#line 954 "dhcp4_parser.cc"
     break;
 
-  case 51:
-#line 369 "dhcp4_parser.yy"
+  case 49:
+#line 362 "dhcp4_parser.yy"
                               {
     // List parsing about to start
 }
-#line 968 "dhcp4_parser.cc"
+#line 962 "dhcp4_parser.cc"
     break;
 
-  case 52:
-#line 371 "dhcp4_parser.yy"
+  case 50:
+#line 364 "dhcp4_parser.yy"
                                        {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
 }
-#line 977 "dhcp4_parser.cc"
+#line 971 "dhcp4_parser.cc"
     break;
 
-  case 55:
-#line 380 "dhcp4_parser.yy"
+  case 53:
+#line 373 "dhcp4_parser.yy"
                                {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 986 "dhcp4_parser.cc"
+#line 980 "dhcp4_parser.cc"
     break;
 
-  case 56:
-#line 384 "dhcp4_parser.yy"
+  case 54:
+#line 377 "dhcp4_parser.yy"
                                                             {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 995 "dhcp4_parser.cc"
+#line 989 "dhcp4_parser.cc"
     break;
 
-  case 57:
-#line 395 "dhcp4_parser.yy"
+  case 55:
+#line 388 "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 1006 "dhcp4_parser.cc"
+#line 1000 "dhcp4_parser.cc"
     break;
 
-  case 58:
-#line 405 "dhcp4_parser.yy"
+  case 56:
+#line 397 "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 1017 "dhcp4_parser.cc"
+#line 1011 "dhcp4_parser.cc"
     break;
 
-  case 59:
-#line 410 "dhcp4_parser.yy"
+  case 57:
+#line 402 "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
@@ -1026,544 +1020,546 @@ namespace isc { namespace dhcp {
     // Dhcp4 is required
     ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 1030 "dhcp4_parser.cc"
+#line 1024 "dhcp4_parser.cc"
     break;
 
-  case 68:
-#line 434 "dhcp4_parser.yy"
+  case 61:
+#line 420 "dhcp4_parser.yy"
                     {
     // This code is executed when we're about to start parsing
     // the content of the map
+    // Prevent against duplicate.
+    ctx.unique("Dhcp4", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Dhcp4", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP4);
 }
-#line 1043 "dhcp4_parser.cc"
+#line 1039 "dhcp4_parser.cc"
     break;
 
-  case 69:
-#line 441 "dhcp4_parser.yy"
+  case 62:
+#line 429 "dhcp4_parser.yy"
                                                     {
     // No global parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1053 "dhcp4_parser.cc"
+#line 1049 "dhcp4_parser.cc"
     break;
 
-  case 70:
-#line 449 "dhcp4_parser.yy"
+  case 63:
+#line 437 "dhcp4_parser.yy"
                           {
     // Parse the Dhcp4 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1063 "dhcp4_parser.cc"
+#line 1059 "dhcp4_parser.cc"
     break;
 
-  case 71:
-#line 453 "dhcp4_parser.yy"
+  case 64:
+#line 441 "dhcp4_parser.yy"
                                {
     // No global parameter is required
     // parsing completed
 }
-#line 1072 "dhcp4_parser.cc"
+#line 1068 "dhcp4_parser.cc"
     break;
 
-  case 126:
-#line 518 "dhcp4_parser.yy"
+  case 119:
+#line 506 "dhcp4_parser.yy"
                                              {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
 }
-#line 1081 "dhcp4_parser.cc"
+#line 1077 "dhcp4_parser.cc"
     break;
 
-  case 127:
-#line 523 "dhcp4_parser.yy"
+  case 120:
+#line 511 "dhcp4_parser.yy"
                                                      {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("min-valid-lifetime", prf);
 }
-#line 1090 "dhcp4_parser.cc"
+#line 1086 "dhcp4_parser.cc"
     break;
 
-  case 128:
-#line 528 "dhcp4_parser.yy"
+  case 121:
+#line 516 "dhcp4_parser.yy"
                                                      {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-valid-lifetime", prf);
 }
-#line 1099 "dhcp4_parser.cc"
+#line 1095 "dhcp4_parser.cc"
     break;
 
-  case 129:
-#line 533 "dhcp4_parser.yy"
+  case 122:
+#line 521 "dhcp4_parser.yy"
                                        {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
 }
-#line 1108 "dhcp4_parser.cc"
+#line 1104 "dhcp4_parser.cc"
     break;
 
-  case 130:
-#line 538 "dhcp4_parser.yy"
+  case 123:
+#line 526 "dhcp4_parser.yy"
                                          {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
 }
-#line 1117 "dhcp4_parser.cc"
+#line 1113 "dhcp4_parser.cc"
     break;
 
-  case 131:
-#line 543 "dhcp4_parser.yy"
+  case 124:
+#line 531 "dhcp4_parser.yy"
                                                        {
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("calculate-tee-times", ctt);
 }
-#line 1126 "dhcp4_parser.cc"
+#line 1122 "dhcp4_parser.cc"
     break;
 
-  case 132:
-#line 548 "dhcp4_parser.yy"
+  case 125:
+#line 536 "dhcp4_parser.yy"
                                    {
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t1-percent", t1);
 }
-#line 1135 "dhcp4_parser.cc"
+#line 1131 "dhcp4_parser.cc"
     break;
 
-  case 133:
-#line 553 "dhcp4_parser.yy"
+  case 126:
+#line 541 "dhcp4_parser.yy"
                                    {
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t2-percent", t2);
 }
-#line 1144 "dhcp4_parser.cc"
+#line 1140 "dhcp4_parser.cc"
     break;
 
-  case 134:
-#line 558 "dhcp4_parser.yy"
+  case 127:
+#line 546 "dhcp4_parser.yy"
                                                                  {
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
 }
-#line 1153 "dhcp4_parser.cc"
+#line 1149 "dhcp4_parser.cc"
     break;
 
-  case 135:
-#line 563 "dhcp4_parser.yy"
+  case 128:
+#line 551 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1161 "dhcp4_parser.cc"
+#line 1157 "dhcp4_parser.cc"
     break;
 
-  case 136:
-#line 565 "dhcp4_parser.yy"
+  case 129:
+#line 553 "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 1171 "dhcp4_parser.cc"
+#line 1167 "dhcp4_parser.cc"
     break;
 
-  case 137:
-#line 571 "dhcp4_parser.yy"
+  case 130:
+#line 559 "dhcp4_parser.yy"
                                              {
     ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("echo-client-id", echo);
 }
-#line 1180 "dhcp4_parser.cc"
+#line 1176 "dhcp4_parser.cc"
     break;
 
-  case 138:
-#line 576 "dhcp4_parser.yy"
+  case 131:
+#line 564 "dhcp4_parser.yy"
                                                {
     ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("match-client-id", match);
 }
-#line 1189 "dhcp4_parser.cc"
+#line 1185 "dhcp4_parser.cc"
     break;
 
-  case 139:
-#line 581 "dhcp4_parser.yy"
+  case 132:
+#line 569 "dhcp4_parser.yy"
                                            {
     ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("authoritative", prf);
 }
-#line 1198 "dhcp4_parser.cc"
+#line 1194 "dhcp4_parser.cc"
     break;
 
-  case 140:
-#line 586 "dhcp4_parser.yy"
+  case 133:
+#line 574 "dhcp4_parser.yy"
                                                    {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-send-updates", b);
 }
-#line 1207 "dhcp4_parser.cc"
+#line 1203 "dhcp4_parser.cc"
     break;
 
-  case 141:
-#line 591 "dhcp4_parser.yy"
+  case 134:
+#line 579 "dhcp4_parser.yy"
                                                                {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-override-no-update", b);
 }
-#line 1216 "dhcp4_parser.cc"
+#line 1212 "dhcp4_parser.cc"
     break;
 
-  case 142:
-#line 596 "dhcp4_parser.yy"
+  case 135:
+#line 584 "dhcp4_parser.yy"
                                                                        {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-override-client-update", b);
 }
-#line 1225 "dhcp4_parser.cc"
+#line 1221 "dhcp4_parser.cc"
     break;
 
-  case 143:
-#line 601 "dhcp4_parser.yy"
+  case 136:
+#line 589 "dhcp4_parser.yy"
                                                    {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 1233 "dhcp4_parser.cc"
+#line 1229 "dhcp4_parser.cc"
     break;
 
-  case 144:
-#line 603 "dhcp4_parser.yy"
+  case 137:
+#line 591 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1242 "dhcp4_parser.cc"
+#line 1238 "dhcp4_parser.cc"
     break;
 
-  case 145:
-#line 609 "dhcp4_parser.yy"
+  case 138:
+#line 597 "dhcp4_parser.yy"
                  {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1250 "dhcp4_parser.cc"
+#line 1246 "dhcp4_parser.cc"
     break;
 
-  case 146:
-#line 612 "dhcp4_parser.yy"
+  case 139:
+#line 600 "dhcp4_parser.yy"
           {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1258 "dhcp4_parser.cc"
+#line 1254 "dhcp4_parser.cc"
     break;
 
-  case 147:
-#line 615 "dhcp4_parser.yy"
+  case 140:
+#line 603 "dhcp4_parser.yy"
            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1266 "dhcp4_parser.cc"
+#line 1262 "dhcp4_parser.cc"
     break;
 
-  case 148:
-#line 618 "dhcp4_parser.yy"
+  case 141:
+#line 606 "dhcp4_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1274 "dhcp4_parser.cc"
+#line 1270 "dhcp4_parser.cc"
     break;
 
-  case 149:
-#line 621 "dhcp4_parser.yy"
+  case 142:
+#line 609 "dhcp4_parser.yy"
             {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 1283 "dhcp4_parser.cc"
+#line 1279 "dhcp4_parser.cc"
     break;
 
-  case 150:
-#line 627 "dhcp4_parser.yy"
+  case 143:
+#line 615 "dhcp4_parser.yy"
                                              {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1291 "dhcp4_parser.cc"
+#line 1287 "dhcp4_parser.cc"
     break;
 
-  case 151:
-#line 629 "dhcp4_parser.yy"
+  case 144:
+#line 617 "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 1301 "dhcp4_parser.cc"
+#line 1297 "dhcp4_parser.cc"
     break;
 
-  case 152:
-#line 635 "dhcp4_parser.yy"
+  case 145:
+#line 623 "dhcp4_parser.yy"
                                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1309 "dhcp4_parser.cc"
+#line 1305 "dhcp4_parser.cc"
     break;
 
-  case 153:
-#line 637 "dhcp4_parser.yy"
+  case 146:
+#line 625 "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 1319 "dhcp4_parser.cc"
+#line 1315 "dhcp4_parser.cc"
     break;
 
-  case 154:
-#line 643 "dhcp4_parser.yy"
+  case 147:
+#line 631 "dhcp4_parser.yy"
                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1327 "dhcp4_parser.cc"
+#line 1323 "dhcp4_parser.cc"
     break;
 
-  case 155:
-#line 645 "dhcp4_parser.yy"
+  case 148:
+#line 633 "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 1337 "dhcp4_parser.cc"
+#line 1333 "dhcp4_parser.cc"
     break;
 
-  case 156:
-#line 651 "dhcp4_parser.yy"
+  case 149:
+#line 639 "dhcp4_parser.yy"
                                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1345 "dhcp4_parser.cc"
+#line 1341 "dhcp4_parser.cc"
     break;
 
-  case 157:
-#line 653 "dhcp4_parser.yy"
+  case 150:
+#line 641 "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 1355 "dhcp4_parser.cc"
+#line 1351 "dhcp4_parser.cc"
     break;
 
-  case 158:
-#line 659 "dhcp4_parser.yy"
+  case 151:
+#line 647 "dhcp4_parser.yy"
                                                        {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("store-extended-info", b);
 }
-#line 1364 "dhcp4_parser.cc"
+#line 1360 "dhcp4_parser.cc"
     break;
 
-  case 159:
-#line 664 "dhcp4_parser.yy"
+  case 152:
+#line 652 "dhcp4_parser.yy"
                                                                              {
     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 1373 "dhcp4_parser.cc"
+#line 1369 "dhcp4_parser.cc"
     break;
 
-  case 160:
-#line 669 "dhcp4_parser.yy"
+  case 153:
+#line 657 "dhcp4_parser.yy"
                                                                          {
     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 1382 "dhcp4_parser.cc"
+#line 1378 "dhcp4_parser.cc"
     break;
 
-  case 161:
-#line 674 "dhcp4_parser.yy"
+  case 154:
+#line 662 "dhcp4_parser.yy"
                                      {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.INTERFACES_CONFIG);
 }
-#line 1393 "dhcp4_parser.cc"
+#line 1389 "dhcp4_parser.cc"
     break;
 
-  case 162:
-#line 679 "dhcp4_parser.yy"
+  case 155:
+#line 667 "dhcp4_parser.yy"
                                                                {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1403 "dhcp4_parser.cc"
+#line 1399 "dhcp4_parser.cc"
     break;
 
-  case 172:
-#line 698 "dhcp4_parser.yy"
+  case 165:
+#line 686 "dhcp4_parser.yy"
                                 {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1413 "dhcp4_parser.cc"
+#line 1409 "dhcp4_parser.cc"
     break;
 
-  case 173:
-#line 702 "dhcp4_parser.yy"
+  case 166:
+#line 690 "dhcp4_parser.yy"
                                           {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1422 "dhcp4_parser.cc"
+#line 1418 "dhcp4_parser.cc"
     break;
 
-  case 174:
-#line 707 "dhcp4_parser.yy"
+  case 167:
+#line 695 "dhcp4_parser.yy"
                             {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1433 "dhcp4_parser.cc"
+#line 1429 "dhcp4_parser.cc"
     break;
 
-  case 175:
-#line 712 "dhcp4_parser.yy"
+  case 168:
+#line 700 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1442 "dhcp4_parser.cc"
+#line 1438 "dhcp4_parser.cc"
     break;
 
-  case 176:
-#line 717 "dhcp4_parser.yy"
+  case 169:
+#line 705 "dhcp4_parser.yy"
                                    {
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
 }
-#line 1450 "dhcp4_parser.cc"
+#line 1446 "dhcp4_parser.cc"
     break;
 
-  case 177:
-#line 719 "dhcp4_parser.yy"
+  case 170:
+#line 707 "dhcp4_parser.yy"
                     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1459 "dhcp4_parser.cc"
+#line 1455 "dhcp4_parser.cc"
     break;
 
-  case 178:
-#line 724 "dhcp4_parser.yy"
+  case 171:
+#line 712 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
-#line 1465 "dhcp4_parser.cc"
+#line 1461 "dhcp4_parser.cc"
     break;
 
-  case 179:
-#line 725 "dhcp4_parser.yy"
+  case 172:
+#line 713 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
-#line 1471 "dhcp4_parser.cc"
+#line 1467 "dhcp4_parser.cc"
     break;
 
-  case 180:
-#line 728 "dhcp4_parser.yy"
+  case 173:
+#line 716 "dhcp4_parser.yy"
                                        {
     ctx.enter(ctx.OUTBOUND_INTERFACE);
 }
-#line 1479 "dhcp4_parser.cc"
+#line 1475 "dhcp4_parser.cc"
     break;
 
-  case 181:
-#line 730 "dhcp4_parser.yy"
+  case 174:
+#line 718 "dhcp4_parser.yy"
                                  {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1488 "dhcp4_parser.cc"
+#line 1484 "dhcp4_parser.cc"
     break;
 
-  case 182:
-#line 735 "dhcp4_parser.yy"
+  case 175:
+#line 723 "dhcp4_parser.yy"
                                           {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
-#line 1496 "dhcp4_parser.cc"
+#line 1492 "dhcp4_parser.cc"
     break;
 
-  case 183:
-#line 737 "dhcp4_parser.yy"
+  case 176:
+#line 725 "dhcp4_parser.yy"
                 {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
-#line 1504 "dhcp4_parser.cc"
+#line 1500 "dhcp4_parser.cc"
     break;
 
-  case 184:
-#line 741 "dhcp4_parser.yy"
+  case 177:
+#line 729 "dhcp4_parser.yy"
                                    {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1513 "dhcp4_parser.cc"
+#line 1509 "dhcp4_parser.cc"
     break;
 
-  case 185:
-#line 747 "dhcp4_parser.yy"
+  case 178:
+#line 735 "dhcp4_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.LEASE_DATABASE);
 }
-#line 1524 "dhcp4_parser.cc"
+#line 1520 "dhcp4_parser.cc"
     break;
 
-  case 186:
-#line 752 "dhcp4_parser.yy"
+  case 179:
+#line 740 "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 1535 "dhcp4_parser.cc"
+#line 1531 "dhcp4_parser.cc"
     break;
 
-  case 187:
-#line 759 "dhcp4_parser.yy"
+  case 180:
+#line 747 "dhcp4_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SANITY_CHECKS);
 }
-#line 1546 "dhcp4_parser.cc"
+#line 1542 "dhcp4_parser.cc"
     break;
 
-  case 188:
-#line 764 "dhcp4_parser.yy"
+  case 181:
+#line 752 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1555 "dhcp4_parser.cc"
+#line 1551 "dhcp4_parser.cc"
     break;
 
-  case 192:
-#line 774 "dhcp4_parser.yy"
+  case 185:
+#line 762 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1563 "dhcp4_parser.cc"
+#line 1559 "dhcp4_parser.cc"
     break;
 
-  case 193:
-#line 776 "dhcp4_parser.yy"
+  case 186:
+#line 764 "dhcp4_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1579,671 +1575,671 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1583 "dhcp4_parser.cc"
+#line 1579 "dhcp4_parser.cc"
     break;
 
-  case 194:
-#line 792 "dhcp4_parser.yy"
+  case 187:
+#line 780 "dhcp4_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1594 "dhcp4_parser.cc"
+#line 1590 "dhcp4_parser.cc"
     break;
 
-  case 195:
-#line 797 "dhcp4_parser.yy"
+  case 188:
+#line 785 "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 1605 "dhcp4_parser.cc"
+#line 1601 "dhcp4_parser.cc"
     break;
 
-  case 196:
-#line 804 "dhcp4_parser.yy"
+  case 189:
+#line 792 "dhcp4_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1616 "dhcp4_parser.cc"
+#line 1612 "dhcp4_parser.cc"
     break;
 
-  case 197:
-#line 809 "dhcp4_parser.yy"
+  case 190:
+#line 797 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1625 "dhcp4_parser.cc"
+#line 1621 "dhcp4_parser.cc"
     break;
 
-  case 202:
-#line 822 "dhcp4_parser.yy"
+  case 195:
+#line 810 "dhcp4_parser.yy"
                          {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1635 "dhcp4_parser.cc"
+#line 1631 "dhcp4_parser.cc"
     break;
 
-  case 203:
-#line 826 "dhcp4_parser.yy"
+  case 196:
+#line 814 "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 1645 "dhcp4_parser.cc"
+#line 1641 "dhcp4_parser.cc"
     break;
 
-  case 227:
-#line 859 "dhcp4_parser.yy"
+  case 220:
+#line 847 "dhcp4_parser.yy"
                     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1653 "dhcp4_parser.cc"
+#line 1649 "dhcp4_parser.cc"
     break;
 
-  case 228:
-#line 861 "dhcp4_parser.yy"
+  case 221:
+#line 849 "dhcp4_parser.yy"
                 {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1662 "dhcp4_parser.cc"
+#line 1658 "dhcp4_parser.cc"
     break;
 
-  case 229:
-#line 866 "dhcp4_parser.yy"
+  case 222:
+#line 854 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1668 "dhcp4_parser.cc"
+#line 1664 "dhcp4_parser.cc"
     break;
 
-  case 230:
-#line 867 "dhcp4_parser.yy"
+  case 223:
+#line 855 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1674 "dhcp4_parser.cc"
+#line 1670 "dhcp4_parser.cc"
     break;
 
-  case 231:
-#line 868 "dhcp4_parser.yy"
+  case 224:
+#line 856 "dhcp4_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1680 "dhcp4_parser.cc"
+#line 1676 "dhcp4_parser.cc"
     break;
 
-  case 232:
-#line 869 "dhcp4_parser.yy"
+  case 225:
+#line 857 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1686 "dhcp4_parser.cc"
+#line 1682 "dhcp4_parser.cc"
     break;
 
-  case 233:
-#line 872 "dhcp4_parser.yy"
+  case 226:
+#line 860 "dhcp4_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1694 "dhcp4_parser.cc"
+#line 1690 "dhcp4_parser.cc"
     break;
 
-  case 234:
-#line 874 "dhcp4_parser.yy"
+  case 227:
+#line 862 "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 1704 "dhcp4_parser.cc"
+#line 1700 "dhcp4_parser.cc"
     break;
 
-  case 235:
-#line 880 "dhcp4_parser.yy"
+  case 228:
+#line 868 "dhcp4_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1712 "dhcp4_parser.cc"
+#line 1708 "dhcp4_parser.cc"
     break;
 
-  case 236:
-#line 882 "dhcp4_parser.yy"
+  case 229:
+#line 870 "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 1722 "dhcp4_parser.cc"
+#line 1718 "dhcp4_parser.cc"
     break;
 
-  case 237:
-#line 888 "dhcp4_parser.yy"
+  case 230:
+#line 876 "dhcp4_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1730 "dhcp4_parser.cc"
+#line 1726 "dhcp4_parser.cc"
     break;
 
-  case 238:
-#line 890 "dhcp4_parser.yy"
+  case 231:
+#line 878 "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 1740 "dhcp4_parser.cc"
+#line 1736 "dhcp4_parser.cc"
     break;
 
-  case 239:
-#line 896 "dhcp4_parser.yy"
+  case 232:
+#line 884 "dhcp4_parser.yy"
                          {
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1749 "dhcp4_parser.cc"
+#line 1745 "dhcp4_parser.cc"
     break;
 
-  case 240:
-#line 901 "dhcp4_parser.yy"
+  case 233:
+#line 889 "dhcp4_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1757 "dhcp4_parser.cc"
+#line 1753 "dhcp4_parser.cc"
     break;
 
-  case 241:
-#line 903 "dhcp4_parser.yy"
+  case 234:
+#line 891 "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 1767 "dhcp4_parser.cc"
+#line 1763 "dhcp4_parser.cc"
     break;
 
-  case 242:
-#line 909 "dhcp4_parser.yy"
+  case 235:
+#line 897 "dhcp4_parser.yy"
                                {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1776 "dhcp4_parser.cc"
+#line 1772 "dhcp4_parser.cc"
     break;
 
-  case 243:
-#line 914 "dhcp4_parser.yy"
+  case 236:
+#line 902 "dhcp4_parser.yy"
                                          {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1785 "dhcp4_parser.cc"
+#line 1781 "dhcp4_parser.cc"
     break;
 
-  case 244:
-#line 919 "dhcp4_parser.yy"
+  case 237:
+#line 907 "dhcp4_parser.yy"
                                  {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1794 "dhcp4_parser.cc"
+#line 1790 "dhcp4_parser.cc"
     break;
 
-  case 245:
-#line 924 "dhcp4_parser.yy"
+  case 238:
+#line 912 "dhcp4_parser.yy"
                                                {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1803 "dhcp4_parser.cc"
+#line 1799 "dhcp4_parser.cc"
     break;
 
-  case 246:
-#line 929 "dhcp4_parser.yy"
+  case 239:
+#line 917 "dhcp4_parser.yy"
                                                {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
 }
-#line 1812 "dhcp4_parser.cc"
+#line 1808 "dhcp4_parser.cc"
     break;
 
-  case 247:
-#line 934 "dhcp4_parser.yy"
+  case 240:
+#line 922 "dhcp4_parser.yy"
                                            {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
 }
-#line 1821 "dhcp4_parser.cc"
+#line 1817 "dhcp4_parser.cc"
     break;
 
-  case 248:
-#line 939 "dhcp4_parser.yy"
+  case 241:
+#line 927 "dhcp4_parser.yy"
                                        {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
 }
-#line 1830 "dhcp4_parser.cc"
+#line 1826 "dhcp4_parser.cc"
     break;
 
-  case 249:
-#line 944 "dhcp4_parser.yy"
+  case 242:
+#line 932 "dhcp4_parser.yy"
                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1838 "dhcp4_parser.cc"
+#line 1834 "dhcp4_parser.cc"
     break;
 
-  case 250:
-#line 946 "dhcp4_parser.yy"
+  case 243:
+#line 934 "dhcp4_parser.yy"
                {
     ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1848 "dhcp4_parser.cc"
+#line 1844 "dhcp4_parser.cc"
     break;
 
-  case 251:
-#line 952 "dhcp4_parser.yy"
+  case 244:
+#line 940 "dhcp4_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1856 "dhcp4_parser.cc"
+#line 1852 "dhcp4_parser.cc"
     break;
 
-  case 252:
-#line 954 "dhcp4_parser.yy"
+  case 245:
+#line 942 "dhcp4_parser.yy"
                {
     ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1866 "dhcp4_parser.cc"
+#line 1862 "dhcp4_parser.cc"
     break;
 
-  case 253:
-#line 960 "dhcp4_parser.yy"
+  case 246:
+#line 948 "dhcp4_parser.yy"
                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1874 "dhcp4_parser.cc"
+#line 1870 "dhcp4_parser.cc"
     break;
 
-  case 254:
-#line 962 "dhcp4_parser.yy"
+  case 247:
+#line 950 "dhcp4_parser.yy"
                {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("consistency", c);
     ctx.leave();
 }
-#line 1884 "dhcp4_parser.cc"
+#line 1880 "dhcp4_parser.cc"
     break;
 
-  case 255:
-#line 968 "dhcp4_parser.yy"
+  case 248:
+#line 956 "dhcp4_parser.yy"
                                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1892 "dhcp4_parser.cc"
+#line 1888 "dhcp4_parser.cc"
     break;
 
-  case 256:
-#line 970 "dhcp4_parser.yy"
+  case 249:
+#line 958 "dhcp4_parser.yy"
                {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("serial-consistency", c);
     ctx.leave();
 }
-#line 1902 "dhcp4_parser.cc"
+#line 1898 "dhcp4_parser.cc"
     break;
 
-  case 257:
-#line 976 "dhcp4_parser.yy"
+  case 250:
+#line 964 "dhcp4_parser.yy"
                                                        {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
 }
-#line 1911 "dhcp4_parser.cc"
+#line 1907 "dhcp4_parser.cc"
     break;
 
-  case 258:
-#line 981 "dhcp4_parser.yy"
+  case 251:
+#line 969 "dhcp4_parser.yy"
                                                        {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
 }
-#line 1920 "dhcp4_parser.cc"
+#line 1916 "dhcp4_parser.cc"
     break;
 
-  case 259:
-#line 986 "dhcp4_parser.yy"
+  case 252:
+#line 974 "dhcp4_parser.yy"
                                              {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-row-errors", n);
 }
-#line 1929 "dhcp4_parser.cc"
+#line 1925 "dhcp4_parser.cc"
     break;
 
-  case 260:
-#line 992 "dhcp4_parser.yy"
+  case 253:
+#line 980 "dhcp4_parser.yy"
                                                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1940 "dhcp4_parser.cc"
+#line 1936 "dhcp4_parser.cc"
     break;
 
-  case 261:
-#line 997 "dhcp4_parser.yy"
+  case 254:
+#line 985 "dhcp4_parser.yy"
                                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1949 "dhcp4_parser.cc"
+#line 1945 "dhcp4_parser.cc"
     break;
 
-  case 269:
-#line 1013 "dhcp4_parser.yy"
+  case 262:
+#line 1001 "dhcp4_parser.yy"
                {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1958 "dhcp4_parser.cc"
+#line 1954 "dhcp4_parser.cc"
     break;
 
-  case 270:
-#line 1018 "dhcp4_parser.yy"
+  case 263:
+#line 1006 "dhcp4_parser.yy"
                            {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1967 "dhcp4_parser.cc"
+#line 1963 "dhcp4_parser.cc"
     break;
 
-  case 271:
-#line 1023 "dhcp4_parser.yy"
+  case 264:
+#line 1011 "dhcp4_parser.yy"
                         {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
 }
-#line 1976 "dhcp4_parser.cc"
+#line 1972 "dhcp4_parser.cc"
     break;
 
-  case 272:
-#line 1028 "dhcp4_parser.yy"
+  case 265:
+#line 1016 "dhcp4_parser.yy"
                       {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
 }
-#line 1985 "dhcp4_parser.cc"
+#line 1981 "dhcp4_parser.cc"
     break;
 
-  case 273:
-#line 1033 "dhcp4_parser.yy"
+  case 266:
+#line 1021 "dhcp4_parser.yy"
                  {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1994 "dhcp4_parser.cc"
+#line 1990 "dhcp4_parser.cc"
     break;
 
-  case 274:
-#line 1040 "dhcp4_parser.yy"
+  case 267:
+#line 1028 "dhcp4_parser.yy"
                                            {
     ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("multi-threading", mt);
     ctx.stack_.push_back(mt);
     ctx.enter(ctx.DHCP_MULTI_THREADING);
 }
-#line 2005 "dhcp4_parser.cc"
+#line 2001 "dhcp4_parser.cc"
     break;
 
-  case 275:
-#line 1045 "dhcp4_parser.yy"
+  case 268:
+#line 1033 "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 2016 "dhcp4_parser.cc"
+#line 2012 "dhcp4_parser.cc"
     break;
 
-  case 284:
-#line 1064 "dhcp4_parser.yy"
+  case 277:
+#line 1052 "dhcp4_parser.yy"
                                                              {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-multi-threading", b);
 }
-#line 2025 "dhcp4_parser.cc"
+#line 2021 "dhcp4_parser.cc"
     break;
 
-  case 285:
-#line 1069 "dhcp4_parser.yy"
+  case 278:
+#line 1057 "dhcp4_parser.yy"
                                                  {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("thread-pool-size", prf);
 }
-#line 2034 "dhcp4_parser.cc"
+#line 2030 "dhcp4_parser.cc"
     break;
 
-  case 286:
-#line 1074 "dhcp4_parser.yy"
+  case 279:
+#line 1062 "dhcp4_parser.yy"
                                                    {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("packet-queue-size", prf);
 }
-#line 2043 "dhcp4_parser.cc"
+#line 2039 "dhcp4_parser.cc"
     break;
 
-  case 287:
-#line 1079 "dhcp4_parser.yy"
+  case 280:
+#line 1067 "dhcp4_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 2054 "dhcp4_parser.cc"
+#line 2050 "dhcp4_parser.cc"
     break;
 
-  case 288:
-#line 1084 "dhcp4_parser.yy"
+  case 281:
+#line 1072 "dhcp4_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2063 "dhcp4_parser.cc"
+#line 2059 "dhcp4_parser.cc"
     break;
 
-  case 293:
-#line 1097 "dhcp4_parser.yy"
+  case 286:
+#line 1085 "dhcp4_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2073 "dhcp4_parser.cc"
+#line 2069 "dhcp4_parser.cc"
     break;
 
-  case 294:
-#line 1101 "dhcp4_parser.yy"
+  case 287:
+#line 1089 "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 2083 "dhcp4_parser.cc"
+#line 2079 "dhcp4_parser.cc"
     break;
 
-  case 295:
-#line 1107 "dhcp4_parser.yy"
+  case 288:
+#line 1095 "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 2093 "dhcp4_parser.cc"
+#line 2089 "dhcp4_parser.cc"
     break;
 
-  case 296:
-#line 1111 "dhcp4_parser.yy"
+  case 289:
+#line 1099 "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 2103 "dhcp4_parser.cc"
+#line 2099 "dhcp4_parser.cc"
     break;
 
-  case 302:
-#line 1126 "dhcp4_parser.yy"
+  case 295:
+#line 1114 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2111 "dhcp4_parser.cc"
+#line 2107 "dhcp4_parser.cc"
     break;
 
-  case 303:
-#line 1128 "dhcp4_parser.yy"
+  case 296:
+#line 1116 "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 2121 "dhcp4_parser.cc"
+#line 2117 "dhcp4_parser.cc"
     break;
 
-  case 304:
-#line 1134 "dhcp4_parser.yy"
+  case 297:
+#line 1122 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2129 "dhcp4_parser.cc"
+#line 2125 "dhcp4_parser.cc"
     break;
 
-  case 305:
-#line 1136 "dhcp4_parser.yy"
+  case 298:
+#line 1124 "dhcp4_parser.yy"
               {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2138 "dhcp4_parser.cc"
+#line 2134 "dhcp4_parser.cc"
     break;
 
-  case 306:
-#line 1142 "dhcp4_parser.yy"
+  case 299:
+#line 1130 "dhcp4_parser.yy"
                                                      {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 2149 "dhcp4_parser.cc"
+#line 2145 "dhcp4_parser.cc"
     break;
 
-  case 307:
-#line 1147 "dhcp4_parser.yy"
+  case 300:
+#line 1135 "dhcp4_parser.yy"
                                                             {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2159 "dhcp4_parser.cc"
+#line 2155 "dhcp4_parser.cc"
     break;
 
-  case 316:
-#line 1165 "dhcp4_parser.yy"
+  case 309:
+#line 1153 "dhcp4_parser.yy"
                                                                {
     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 2168 "dhcp4_parser.cc"
+#line 2164 "dhcp4_parser.cc"
     break;
 
-  case 317:
-#line 1170 "dhcp4_parser.yy"
+  case 310:
+#line 1158 "dhcp4_parser.yy"
                                                                                {
     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 2177 "dhcp4_parser.cc"
+#line 2173 "dhcp4_parser.cc"
     break;
 
-  case 318:
-#line 1175 "dhcp4_parser.yy"
+  case 311:
+#line 1163 "dhcp4_parser.yy"
                                                        {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 2186 "dhcp4_parser.cc"
+#line 2182 "dhcp4_parser.cc"
     break;
 
-  case 319:
-#line 1180 "dhcp4_parser.yy"
+  case 312:
+#line 1168 "dhcp4_parser.yy"
                                                      {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 2195 "dhcp4_parser.cc"
+#line 2191 "dhcp4_parser.cc"
     break;
 
-  case 320:
-#line 1185 "dhcp4_parser.yy"
+  case 313:
+#line 1173 "dhcp4_parser.yy"
                                                  {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 2204 "dhcp4_parser.cc"
+#line 2200 "dhcp4_parser.cc"
     break;
 
-  case 321:
-#line 1190 "dhcp4_parser.yy"
+  case 314:
+#line 1178 "dhcp4_parser.yy"
                                                                {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 2213 "dhcp4_parser.cc"
+#line 2209 "dhcp4_parser.cc"
     break;
 
-  case 322:
-#line 1198 "dhcp4_parser.yy"
+  case 315:
+#line 1186 "dhcp4_parser.yy"
                       {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet4", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET4);
 }
-#line 2224 "dhcp4_parser.cc"
+#line 2220 "dhcp4_parser.cc"
     break;
 
-  case 323:
-#line 1203 "dhcp4_parser.yy"
+  case 316:
+#line 1191 "dhcp4_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2233 "dhcp4_parser.cc"
+#line 2229 "dhcp4_parser.cc"
     break;
 
-  case 328:
-#line 1223 "dhcp4_parser.yy"
+  case 321:
+#line 1211 "dhcp4_parser.yy"
                         {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2243 "dhcp4_parser.cc"
+#line 2239 "dhcp4_parser.cc"
     break;
 
-  case 329:
-#line 1227 "dhcp4_parser.yy"
+  case 322:
+#line 1215 "dhcp4_parser.yy"
                                 {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2265,294 +2261,294 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2269 "dhcp4_parser.cc"
+#line 2265 "dhcp4_parser.cc"
     break;
 
-  case 330:
-#line 1249 "dhcp4_parser.yy"
+  case 323:
+#line 1237 "dhcp4_parser.yy"
                             {
     // Parse the subnet4 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2279 "dhcp4_parser.cc"
+#line 2275 "dhcp4_parser.cc"
     break;
 
-  case 331:
-#line 1253 "dhcp4_parser.yy"
+  case 324:
+#line 1241 "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 2289 "dhcp4_parser.cc"
+#line 2285 "dhcp4_parser.cc"
     break;
 
-  case 372:
-#line 1305 "dhcp4_parser.yy"
+  case 365:
+#line 1293 "dhcp4_parser.yy"
                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2297 "dhcp4_parser.cc"
+#line 2293 "dhcp4_parser.cc"
     break;
 
-  case 373:
-#line 1307 "dhcp4_parser.yy"
+  case 366:
+#line 1295 "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 2307 "dhcp4_parser.cc"
+#line 2303 "dhcp4_parser.cc"
     break;
 
-  case 374:
-#line 1313 "dhcp4_parser.yy"
+  case 367:
+#line 1301 "dhcp4_parser.yy"
                                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2315 "dhcp4_parser.cc"
+#line 2311 "dhcp4_parser.cc"
     break;
 
-  case 375:
-#line 1315 "dhcp4_parser.yy"
+  case 368:
+#line 1303 "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 2325 "dhcp4_parser.cc"
+#line 2321 "dhcp4_parser.cc"
     break;
 
-  case 376:
-#line 1321 "dhcp4_parser.yy"
+  case 369:
+#line 1309 "dhcp4_parser.yy"
                                                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2333 "dhcp4_parser.cc"
+#line 2329 "dhcp4_parser.cc"
     break;
 
-  case 377:
-#line 1323 "dhcp4_parser.yy"
+  case 370:
+#line 1311 "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 2343 "dhcp4_parser.cc"
+#line 2339 "dhcp4_parser.cc"
     break;
 
-  case 378:
-#line 1329 "dhcp4_parser.yy"
+  case 371:
+#line 1317 "dhcp4_parser.yy"
                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2351 "dhcp4_parser.cc"
+#line 2347 "dhcp4_parser.cc"
     break;
 
-  case 379:
-#line 1331 "dhcp4_parser.yy"
+  case 372:
+#line 1319 "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 2361 "dhcp4_parser.cc"
+#line 2357 "dhcp4_parser.cc"
     break;
 
-  case 380:
-#line 1337 "dhcp4_parser.yy"
+  case 373:
+#line 1325 "dhcp4_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2369 "dhcp4_parser.cc"
+#line 2365 "dhcp4_parser.cc"
     break;
 
-  case 381:
-#line 1339 "dhcp4_parser.yy"
+  case 374:
+#line 1327 "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 2379 "dhcp4_parser.cc"
+#line 2375 "dhcp4_parser.cc"
     break;
 
-  case 382:
-#line 1345 "dhcp4_parser.yy"
+  case 375:
+#line 1333 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2387 "dhcp4_parser.cc"
+#line 2383 "dhcp4_parser.cc"
     break;
 
-  case 383:
-#line 1347 "dhcp4_parser.yy"
+  case 376:
+#line 1335 "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 2397 "dhcp4_parser.cc"
+#line 2393 "dhcp4_parser.cc"
     break;
 
-  case 384:
-#line 1353 "dhcp4_parser.yy"
+  case 377:
+#line 1341 "dhcp4_parser.yy"
                                                {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2408 "dhcp4_parser.cc"
+#line 2404 "dhcp4_parser.cc"
     break;
 
-  case 385:
-#line 1358 "dhcp4_parser.yy"
+  case 378:
+#line 1346 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2417 "dhcp4_parser.cc"
+#line 2413 "dhcp4_parser.cc"
     break;
 
-  case 386:
-#line 1363 "dhcp4_parser.yy"
+  case 379:
+#line 1351 "dhcp4_parser.yy"
                                    {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2425 "dhcp4_parser.cc"
+#line 2421 "dhcp4_parser.cc"
     break;
 
-  case 387:
-#line 1365 "dhcp4_parser.yy"
+  case 380:
+#line 1353 "dhcp4_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2434 "dhcp4_parser.cc"
+#line 2430 "dhcp4_parser.cc"
     break;
 
-  case 388:
-#line 1370 "dhcp4_parser.yy"
+  case 381:
+#line 1358 "dhcp4_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2440 "dhcp4_parser.cc"
+#line 2436 "dhcp4_parser.cc"
     break;
 
-  case 389:
-#line 1371 "dhcp4_parser.yy"
+  case 382:
+#line 1359 "dhcp4_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2446 "dhcp4_parser.cc"
+#line 2442 "dhcp4_parser.cc"
     break;
 
-  case 390:
-#line 1372 "dhcp4_parser.yy"
+  case 383:
+#line 1360 "dhcp4_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2452 "dhcp4_parser.cc"
+#line 2448 "dhcp4_parser.cc"
     break;
 
-  case 391:
-#line 1373 "dhcp4_parser.yy"
+  case 384:
+#line 1361 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2458 "dhcp4_parser.cc"
+#line 2454 "dhcp4_parser.cc"
     break;
 
-  case 392:
-#line 1376 "dhcp4_parser.yy"
+  case 385:
+#line 1364 "dhcp4_parser.yy"
                      {
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 2467 "dhcp4_parser.cc"
+#line 2463 "dhcp4_parser.cc"
     break;
 
-  case 393:
-#line 1383 "dhcp4_parser.yy"
+  case 386:
+#line 1371 "dhcp4_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 2478 "dhcp4_parser.cc"
+#line 2474 "dhcp4_parser.cc"
     break;
 
-  case 394:
-#line 1388 "dhcp4_parser.yy"
+  case 387:
+#line 1376 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2487 "dhcp4_parser.cc"
+#line 2483 "dhcp4_parser.cc"
     break;
 
-  case 399:
-#line 1403 "dhcp4_parser.yy"
+  case 392:
+#line 1391 "dhcp4_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2497 "dhcp4_parser.cc"
+#line 2493 "dhcp4_parser.cc"
     break;
 
-  case 400:
-#line 1407 "dhcp4_parser.yy"
+  case 393:
+#line 1395 "dhcp4_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
-#line 2505 "dhcp4_parser.cc"
+#line 2501 "dhcp4_parser.cc"
     break;
 
-  case 436:
-#line 1454 "dhcp4_parser.yy"
+  case 429:
+#line 1442 "dhcp4_parser.yy"
                             {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 2516 "dhcp4_parser.cc"
+#line 2512 "dhcp4_parser.cc"
     break;
 
-  case 437:
-#line 1459 "dhcp4_parser.yy"
+  case 430:
+#line 1447 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2525 "dhcp4_parser.cc"
+#line 2521 "dhcp4_parser.cc"
     break;
 
-  case 438:
-#line 1467 "dhcp4_parser.yy"
+  case 431:
+#line 1455 "dhcp4_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2534 "dhcp4_parser.cc"
+#line 2530 "dhcp4_parser.cc"
     break;
 
-  case 439:
-#line 1470 "dhcp4_parser.yy"
+  case 432:
+#line 1458 "dhcp4_parser.yy"
                                  {
     // parsing completed
 }
-#line 2542 "dhcp4_parser.cc"
+#line 2538 "dhcp4_parser.cc"
     break;
 
-  case 444:
-#line 1486 "dhcp4_parser.yy"
+  case 437:
+#line 1474 "dhcp4_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2552 "dhcp4_parser.cc"
+#line 2548 "dhcp4_parser.cc"
     break;
 
-  case 445:
-#line 1490 "dhcp4_parser.yy"
+  case 438:
+#line 1478 "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));
@@ -2560,21 +2556,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2564 "dhcp4_parser.cc"
+#line 2560 "dhcp4_parser.cc"
     break;
 
-  case 446:
-#line 1501 "dhcp4_parser.yy"
+  case 439:
+#line 1489 "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 2574 "dhcp4_parser.cc"
+#line 2570 "dhcp4_parser.cc"
     break;
 
-  case 447:
-#line 1505 "dhcp4_parser.yy"
+  case 440:
+#line 1493 "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));
@@ -2582,281 +2578,281 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2586 "dhcp4_parser.cc"
+#line 2582 "dhcp4_parser.cc"
     break;
 
-  case 463:
-#line 1537 "dhcp4_parser.yy"
+  case 456:
+#line 1525 "dhcp4_parser.yy"
                          {
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 2595 "dhcp4_parser.cc"
+#line 2591 "dhcp4_parser.cc"
     break;
 
-  case 465:
-#line 1544 "dhcp4_parser.yy"
+  case 458:
+#line 1532 "dhcp4_parser.yy"
                       {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2603 "dhcp4_parser.cc"
+#line 2599 "dhcp4_parser.cc"
     break;
 
-  case 466:
-#line 1546 "dhcp4_parser.yy"
+  case 459:
+#line 1534 "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 2613 "dhcp4_parser.cc"
+#line 2609 "dhcp4_parser.cc"
     break;
 
-  case 467:
-#line 1552 "dhcp4_parser.yy"
+  case 460:
+#line 1540 "dhcp4_parser.yy"
                                       {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2621 "dhcp4_parser.cc"
+#line 2617 "dhcp4_parser.cc"
     break;
 
-  case 468:
-#line 1554 "dhcp4_parser.yy"
+  case 461:
+#line 1542 "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 2631 "dhcp4_parser.cc"
+#line 2627 "dhcp4_parser.cc"
     break;
 
-  case 469:
-#line 1560 "dhcp4_parser.yy"
+  case 462:
+#line 1548 "dhcp4_parser.yy"
              {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2639 "dhcp4_parser.cc"
+#line 2635 "dhcp4_parser.cc"
     break;
 
-  case 470:
-#line 1562 "dhcp4_parser.yy"
+  case 463:
+#line 1550 "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 2649 "dhcp4_parser.cc"
+#line 2645 "dhcp4_parser.cc"
     break;
 
-  case 472:
-#line 1570 "dhcp4_parser.yy"
+  case 465:
+#line 1558 "dhcp4_parser.yy"
                                     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2657 "dhcp4_parser.cc"
+#line 2653 "dhcp4_parser.cc"
     break;
 
-  case 473:
-#line 1572 "dhcp4_parser.yy"
+  case 466:
+#line 1560 "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 2667 "dhcp4_parser.cc"
+#line 2663 "dhcp4_parser.cc"
     break;
 
-  case 474:
-#line 1578 "dhcp4_parser.yy"
+  case 467:
+#line 1566 "dhcp4_parser.yy"
                                       {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2676 "dhcp4_parser.cc"
+#line 2672 "dhcp4_parser.cc"
     break;
 
-  case 475:
-#line 1587 "dhcp4_parser.yy"
+  case 468:
+#line 1575 "dhcp4_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2687 "dhcp4_parser.cc"
+#line 2683 "dhcp4_parser.cc"
     break;
 
-  case 476:
-#line 1592 "dhcp4_parser.yy"
+  case 469:
+#line 1580 "dhcp4_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2696 "dhcp4_parser.cc"
+#line 2692 "dhcp4_parser.cc"
     break;
 
-  case 481:
-#line 1611 "dhcp4_parser.yy"
+  case 474:
+#line 1599 "dhcp4_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2706 "dhcp4_parser.cc"
+#line 2702 "dhcp4_parser.cc"
     break;
 
-  case 482:
-#line 1615 "dhcp4_parser.yy"
+  case 475:
+#line 1603 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2715 "dhcp4_parser.cc"
+#line 2711 "dhcp4_parser.cc"
     break;
 
-  case 483:
-#line 1623 "dhcp4_parser.yy"
+  case 476:
+#line 1611 "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 2725 "dhcp4_parser.cc"
+#line 2721 "dhcp4_parser.cc"
     break;
 
-  case 484:
-#line 1627 "dhcp4_parser.yy"
+  case 477:
+#line 1615 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2734 "dhcp4_parser.cc"
+#line 2730 "dhcp4_parser.cc"
     break;
 
-  case 499:
-#line 1660 "dhcp4_parser.yy"
+  case 492:
+#line 1648 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2742 "dhcp4_parser.cc"
+#line 2738 "dhcp4_parser.cc"
     break;
 
-  case 500:
-#line 1662 "dhcp4_parser.yy"
+  case 493:
+#line 1650 "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 2752 "dhcp4_parser.cc"
+#line 2748 "dhcp4_parser.cc"
     break;
 
-  case 503:
-#line 1672 "dhcp4_parser.yy"
+  case 496:
+#line 1660 "dhcp4_parser.yy"
                                                  {
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2761 "dhcp4_parser.cc"
+#line 2757 "dhcp4_parser.cc"
     break;
 
-  case 504:
-#line 1677 "dhcp4_parser.yy"
+  case 497:
+#line 1665 "dhcp4_parser.yy"
                                                    {
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2770 "dhcp4_parser.cc"
+#line 2766 "dhcp4_parser.cc"
     break;
 
-  case 505:
-#line 1685 "dhcp4_parser.yy"
+  case 498:
+#line 1673 "dhcp4_parser.yy"
                   {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2781 "dhcp4_parser.cc"
+#line 2777 "dhcp4_parser.cc"
     break;
 
-  case 506:
-#line 1690 "dhcp4_parser.yy"
+  case 499:
+#line 1678 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2790 "dhcp4_parser.cc"
+#line 2786 "dhcp4_parser.cc"
     break;
 
-  case 511:
-#line 1705 "dhcp4_parser.yy"
+  case 504:
+#line 1693 "dhcp4_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2800 "dhcp4_parser.cc"
+#line 2796 "dhcp4_parser.cc"
     break;
 
-  case 512:
-#line 1709 "dhcp4_parser.yy"
+  case 505:
+#line 1697 "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 2810 "dhcp4_parser.cc"
+#line 2806 "dhcp4_parser.cc"
     break;
 
-  case 513:
-#line 1715 "dhcp4_parser.yy"
+  case 506:
+#line 1703 "dhcp4_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2820 "dhcp4_parser.cc"
+#line 2816 "dhcp4_parser.cc"
     break;
 
-  case 514:
-#line 1719 "dhcp4_parser.yy"
+  case 507:
+#line 1707 "dhcp4_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2830 "dhcp4_parser.cc"
+#line 2826 "dhcp4_parser.cc"
     break;
 
-  case 524:
-#line 1738 "dhcp4_parser.yy"
+  case 517:
+#line 1726 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2838 "dhcp4_parser.cc"
+#line 2834 "dhcp4_parser.cc"
     break;
 
-  case 525:
-#line 1740 "dhcp4_parser.yy"
+  case 518:
+#line 1728 "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 2848 "dhcp4_parser.cc"
+#line 2844 "dhcp4_parser.cc"
     break;
 
-  case 526:
-#line 1746 "dhcp4_parser.yy"
+  case 519:
+#line 1734 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2856 "dhcp4_parser.cc"
+#line 2852 "dhcp4_parser.cc"
     break;
 
-  case 527:
-#line 1748 "dhcp4_parser.yy"
+  case 520:
+#line 1736 "dhcp4_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2879,19 +2875,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2883 "dhcp4_parser.cc"
+#line 2879 "dhcp4_parser.cc"
     break;
 
-  case 528:
-#line 1771 "dhcp4_parser.yy"
+  case 521:
+#line 1759 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2891 "dhcp4_parser.cc"
+#line 2887 "dhcp4_parser.cc"
     break;
 
-  case 529:
-#line 1773 "dhcp4_parser.yy"
+  case 522:
+#line 1761 "dhcp4_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2916,1108 +2912,1019 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2920 "dhcp4_parser.cc"
+#line 2916 "dhcp4_parser.cc"
     break;
 
-  case 530:
-#line 1801 "dhcp4_parser.yy"
+  case 523:
+#line 1789 "dhcp4_parser.yy"
                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 2931 "dhcp4_parser.cc"
+#line 2927 "dhcp4_parser.cc"
     break;
 
-  case 531:
-#line 1806 "dhcp4_parser.yy"
+  case 524:
+#line 1794 "dhcp4_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2940 "dhcp4_parser.cc"
+#line 2936 "dhcp4_parser.cc"
     break;
 
-  case 536:
-#line 1819 "dhcp4_parser.yy"
+  case 529:
+#line 1807 "dhcp4_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2950 "dhcp4_parser.cc"
+#line 2946 "dhcp4_parser.cc"
     break;
 
-  case 537:
-#line 1823 "dhcp4_parser.yy"
+  case 530:
+#line 1811 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2959 "dhcp4_parser.cc"
+#line 2955 "dhcp4_parser.cc"
     break;
 
-  case 538:
-#line 1828 "dhcp4_parser.yy"
+  case 531:
+#line 1816 "dhcp4_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2969 "dhcp4_parser.cc"
+#line 2965 "dhcp4_parser.cc"
     break;
 
-  case 539:
-#line 1832 "dhcp4_parser.yy"
+  case 532:
+#line 1820 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2978 "dhcp4_parser.cc"
+#line 2974 "dhcp4_parser.cc"
     break;
 
-  case 559:
-#line 1863 "dhcp4_parser.yy"
+  case 552:
+#line 1851 "dhcp4_parser.yy"
                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2986 "dhcp4_parser.cc"
+#line 2982 "dhcp4_parser.cc"
     break;
 
-  case 560:
-#line 1865 "dhcp4_parser.yy"
+  case 553:
+#line 1853 "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 2996 "dhcp4_parser.cc"
+#line 2992 "dhcp4_parser.cc"
     break;
 
-  case 561:
-#line 1871 "dhcp4_parser.yy"
+  case 554:
+#line 1859 "dhcp4_parser.yy"
                                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3004 "dhcp4_parser.cc"
+#line 3000 "dhcp4_parser.cc"
     break;
 
-  case 562:
-#line 1873 "dhcp4_parser.yy"
+  case 555:
+#line 1861 "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 3014 "dhcp4_parser.cc"
+#line 3010 "dhcp4_parser.cc"
     break;
 
-  case 563:
-#line 1879 "dhcp4_parser.yy"
+  case 556:
+#line 1867 "dhcp4_parser.yy"
                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3022 "dhcp4_parser.cc"
+#line 3018 "dhcp4_parser.cc"
     break;
 
-  case 564:
-#line 1881 "dhcp4_parser.yy"
+  case 557:
+#line 1869 "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 3032 "dhcp4_parser.cc"
+#line 3028 "dhcp4_parser.cc"
     break;
 
-  case 565:
-#line 1887 "dhcp4_parser.yy"
+  case 558:
+#line 1875 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3040 "dhcp4_parser.cc"
+#line 3036 "dhcp4_parser.cc"
     break;
 
-  case 566:
-#line 1889 "dhcp4_parser.yy"
+  case 559:
+#line 1877 "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 3050 "dhcp4_parser.cc"
+#line 3046 "dhcp4_parser.cc"
     break;
 
-  case 567:
-#line 1895 "dhcp4_parser.yy"
+  case 560:
+#line 1883 "dhcp4_parser.yy"
                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3061 "dhcp4_parser.cc"
+#line 3057 "dhcp4_parser.cc"
     break;
 
-  case 568:
-#line 1900 "dhcp4_parser.yy"
+  case 561:
+#line 1888 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3070 "dhcp4_parser.cc"
+#line 3066 "dhcp4_parser.cc"
     break;
 
-  case 569:
-#line 1905 "dhcp4_parser.yy"
+  case 562:
+#line 1893 "dhcp4_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3078 "dhcp4_parser.cc"
+#line 3074 "dhcp4_parser.cc"
     break;
 
-  case 570:
-#line 1907 "dhcp4_parser.yy"
+  case 563:
+#line 1895 "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 3088 "dhcp4_parser.cc"
+#line 3084 "dhcp4_parser.cc"
     break;
 
-  case 571:
-#line 1913 "dhcp4_parser.yy"
+  case 564:
+#line 1901 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3096 "dhcp4_parser.cc"
+#line 3092 "dhcp4_parser.cc"
     break;
 
-  case 572:
-#line 1915 "dhcp4_parser.yy"
+  case 565:
+#line 1903 "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 3106 "dhcp4_parser.cc"
+#line 3102 "dhcp4_parser.cc"
     break;
 
-  case 573:
-#line 1921 "dhcp4_parser.yy"
+  case 566:
+#line 1909 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3114 "dhcp4_parser.cc"
+#line 3110 "dhcp4_parser.cc"
     break;
 
-  case 574:
-#line 1923 "dhcp4_parser.yy"
+  case 567:
+#line 1911 "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 3124 "dhcp4_parser.cc"
+#line 3120 "dhcp4_parser.cc"
     break;
 
-  case 575:
-#line 1929 "dhcp4_parser.yy"
+  case 568:
+#line 1917 "dhcp4_parser.yy"
                              {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3132 "dhcp4_parser.cc"
+#line 3128 "dhcp4_parser.cc"
     break;
 
-  case 576:
-#line 1931 "dhcp4_parser.yy"
+  case 569:
+#line 1919 "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 3142 "dhcp4_parser.cc"
+#line 3138 "dhcp4_parser.cc"
     break;
 
-  case 577:
-#line 1937 "dhcp4_parser.yy"
+  case 570:
+#line 1925 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3150 "dhcp4_parser.cc"
+#line 3146 "dhcp4_parser.cc"
     break;
 
-  case 578:
-#line 1939 "dhcp4_parser.yy"
+  case 571:
+#line 1927 "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 3160 "dhcp4_parser.cc"
+#line 3156 "dhcp4_parser.cc"
     break;
 
-  case 579:
-#line 1945 "dhcp4_parser.yy"
+  case 572:
+#line 1933 "dhcp4_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3168 "dhcp4_parser.cc"
+#line 3164 "dhcp4_parser.cc"
     break;
 
-  case 580:
-#line 1947 "dhcp4_parser.yy"
+  case 573:
+#line 1935 "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 3178 "dhcp4_parser.cc"
+#line 3174 "dhcp4_parser.cc"
     break;
 
-  case 581:
-#line 1953 "dhcp4_parser.yy"
+  case 574:
+#line 1941 "dhcp4_parser.yy"
                                            {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3189 "dhcp4_parser.cc"
+#line 3185 "dhcp4_parser.cc"
     break;
 
-  case 582:
-#line 1958 "dhcp4_parser.yy"
+  case 575:
+#line 1946 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3198 "dhcp4_parser.cc"
+#line 3194 "dhcp4_parser.cc"
     break;
 
-  case 583:
-#line 1966 "dhcp4_parser.yy"
+  case 576:
+#line 1954 "dhcp4_parser.yy"
              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 3209 "dhcp4_parser.cc"
+#line 3205 "dhcp4_parser.cc"
     break;
 
-  case 584:
-#line 1971 "dhcp4_parser.yy"
+  case 577:
+#line 1959 "dhcp4_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3218 "dhcp4_parser.cc"
+#line 3214 "dhcp4_parser.cc"
     break;
 
-  case 587:
-#line 1983 "dhcp4_parser.yy"
+  case 580:
+#line 1971 "dhcp4_parser.yy"
                                {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 3229 "dhcp4_parser.cc"
+#line 3225 "dhcp4_parser.cc"
     break;
 
-  case 588:
-#line 1988 "dhcp4_parser.yy"
+  case 581:
+#line 1976 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3238 "dhcp4_parser.cc"
+#line 3234 "dhcp4_parser.cc"
     break;
 
-  case 591:
-#line 1997 "dhcp4_parser.yy"
+  case 584:
+#line 1985 "dhcp4_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3248 "dhcp4_parser.cc"
+#line 3244 "dhcp4_parser.cc"
     break;
 
-  case 592:
-#line 2001 "dhcp4_parser.yy"
+  case 585:
+#line 1989 "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 3258 "dhcp4_parser.cc"
+#line 3254 "dhcp4_parser.cc"
     break;
 
-  case 609:
-#line 2030 "dhcp4_parser.yy"
+  case 602:
+#line 2018 "dhcp4_parser.yy"
                         {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3266 "dhcp4_parser.cc"
+#line 3262 "dhcp4_parser.cc"
     break;
 
-  case 610:
-#line 2032 "dhcp4_parser.yy"
+  case 603:
+#line 2020 "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 3276 "dhcp4_parser.cc"
+#line 3272 "dhcp4_parser.cc"
     break;
 
-  case 611:
-#line 2038 "dhcp4_parser.yy"
+  case 604:
+#line 2026 "dhcp4_parser.yy"
                                                  {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 3285 "dhcp4_parser.cc"
+#line 3281 "dhcp4_parser.cc"
     break;
 
-  case 612:
-#line 2045 "dhcp4_parser.yy"
+  case 605:
+#line 2033 "dhcp4_parser.yy"
                                          {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 3294 "dhcp4_parser.cc"
+#line 3290 "dhcp4_parser.cc"
     break;
 
-  case 613:
-#line 2052 "dhcp4_parser.yy"
+  case 606:
+#line 2040 "dhcp4_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 3305 "dhcp4_parser.cc"
+#line 3301 "dhcp4_parser.cc"
     break;
 
-  case 614:
-#line 2057 "dhcp4_parser.yy"
+  case 607:
+#line 2045 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3314 "dhcp4_parser.cc"
+#line 3310 "dhcp4_parser.cc"
     break;
 
-  case 622:
-#line 2073 "dhcp4_parser.yy"
+  case 615:
+#line 2061 "dhcp4_parser.yy"
                                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3322 "dhcp4_parser.cc"
+#line 3318 "dhcp4_parser.cc"
     break;
 
-  case 623:
-#line 2075 "dhcp4_parser.yy"
+  case 616:
+#line 2063 "dhcp4_parser.yy"
                {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 3332 "dhcp4_parser.cc"
+#line 3328 "dhcp4_parser.cc"
     break;
 
-  case 624:
-#line 2081 "dhcp4_parser.yy"
+  case 617:
+#line 2069 "dhcp4_parser.yy"
                                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3340 "dhcp4_parser.cc"
+#line 3336 "dhcp4_parser.cc"
     break;
 
-  case 625:
-#line 2083 "dhcp4_parser.yy"
+  case 618:
+#line 2071 "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 3350 "dhcp4_parser.cc"
+#line 3346 "dhcp4_parser.cc"
     break;
 
-  case 626:
-#line 2092 "dhcp4_parser.yy"
+  case 619:
+#line 2080 "dhcp4_parser.yy"
                                        {
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-queue-control", qc);
     ctx.stack_.push_back(qc);
     ctx.enter(ctx.DHCP_QUEUE_CONTROL);
 }
-#line 3361 "dhcp4_parser.cc"
+#line 3357 "dhcp4_parser.cc"
     break;
 
-  case 627:
-#line 2097 "dhcp4_parser.yy"
+  case 620:
+#line 2085 "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 3372 "dhcp4_parser.cc"
+#line 3368 "dhcp4_parser.cc"
     break;
 
-  case 636:
-#line 2116 "dhcp4_parser.yy"
+  case 629:
+#line 2104 "dhcp4_parser.yy"
                                          {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-queue", b);
 }
-#line 3381 "dhcp4_parser.cc"
+#line 3377 "dhcp4_parser.cc"
     break;
 
-  case 637:
-#line 2121 "dhcp4_parser.yy"
+  case 630:
+#line 2109 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3389 "dhcp4_parser.cc"
+#line 3385 "dhcp4_parser.cc"
     break;
 
-  case 638:
-#line 2123 "dhcp4_parser.yy"
+  case 631:
+#line 2111 "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 3399 "dhcp4_parser.cc"
+#line 3395 "dhcp4_parser.cc"
     break;
 
-  case 639:
-#line 2129 "dhcp4_parser.yy"
+  case 632:
+#line 2117 "dhcp4_parser.yy"
                                  {
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("capacity", c);
 }
-#line 3408 "dhcp4_parser.cc"
+#line 3404 "dhcp4_parser.cc"
     break;
 
-  case 640:
-#line 2134 "dhcp4_parser.yy"
+  case 633:
+#line 2122 "dhcp4_parser.yy"
                             {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3416 "dhcp4_parser.cc"
+#line 3412 "dhcp4_parser.cc"
     break;
 
-  case 641:
-#line 2136 "dhcp4_parser.yy"
+  case 634:
+#line 2124 "dhcp4_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3425 "dhcp4_parser.cc"
+#line 3421 "dhcp4_parser.cc"
     break;
 
-  case 642:
-#line 2143 "dhcp4_parser.yy"
+  case 635:
+#line 2131 "dhcp4_parser.yy"
                      {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 3436 "dhcp4_parser.cc"
+#line 3432 "dhcp4_parser.cc"
     break;
 
-  case 643:
-#line 2148 "dhcp4_parser.yy"
+  case 636:
+#line 2136 "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 3447 "dhcp4_parser.cc"
+#line 3443 "dhcp4_parser.cc"
     break;
 
-  case 644:
-#line 2155 "dhcp4_parser.yy"
+  case 637:
+#line 2143 "dhcp4_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3457 "dhcp4_parser.cc"
+#line 3453 "dhcp4_parser.cc"
     break;
 
-  case 645:
-#line 2159 "dhcp4_parser.yy"
+  case 638:
+#line 2147 "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 3467 "dhcp4_parser.cc"
+#line 3463 "dhcp4_parser.cc"
     break;
 
-  case 666:
-#line 2189 "dhcp4_parser.yy"
+  case 659:
+#line 2177 "dhcp4_parser.yy"
                                              {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 3476 "dhcp4_parser.cc"
+#line 3472 "dhcp4_parser.cc"
     break;
 
-  case 667:
-#line 2194 "dhcp4_parser.yy"
+  case 660:
+#line 2182 "dhcp4_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3484 "dhcp4_parser.cc"
+#line 3480 "dhcp4_parser.cc"
     break;
 
-  case 668:
-#line 2196 "dhcp4_parser.yy"
+  case 661:
+#line 2184 "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 3494 "dhcp4_parser.cc"
+#line 3490 "dhcp4_parser.cc"
     break;
 
-  case 669:
-#line 2202 "dhcp4_parser.yy"
+  case 662:
+#line 2190 "dhcp4_parser.yy"
                                        {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 3503 "dhcp4_parser.cc"
+#line 3499 "dhcp4_parser.cc"
     break;
 
-  case 670:
-#line 2207 "dhcp4_parser.yy"
+  case 663:
+#line 2195 "dhcp4_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3511 "dhcp4_parser.cc"
+#line 3507 "dhcp4_parser.cc"
     break;
 
-  case 671:
-#line 2209 "dhcp4_parser.yy"
+  case 664:
+#line 2197 "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 3521 "dhcp4_parser.cc"
+#line 3517 "dhcp4_parser.cc"
     break;
 
-  case 672:
-#line 2215 "dhcp4_parser.yy"
+  case 665:
+#line 2203 "dhcp4_parser.yy"
                                        {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 3530 "dhcp4_parser.cc"
+#line 3526 "dhcp4_parser.cc"
     break;
 
-  case 673:
-#line 2220 "dhcp4_parser.yy"
+  case 666:
+#line 2208 "dhcp4_parser.yy"
                                              {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 3539 "dhcp4_parser.cc"
+#line 3535 "dhcp4_parser.cc"
     break;
 
-  case 674:
-#line 2225 "dhcp4_parser.yy"
+  case 667:
+#line 2213 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3547 "dhcp4_parser.cc"
+#line 3543 "dhcp4_parser.cc"
     break;
 
-  case 675:
-#line 2227 "dhcp4_parser.yy"
+  case 668:
+#line 2215 "dhcp4_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3556 "dhcp4_parser.cc"
+#line 3552 "dhcp4_parser.cc"
     break;
 
-  case 676:
-#line 2233 "dhcp4_parser.yy"
+  case 669:
+#line 2221 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3562 "dhcp4_parser.cc"
+#line 3558 "dhcp4_parser.cc"
     break;
 
-  case 677:
-#line 2234 "dhcp4_parser.yy"
+  case 670:
+#line 2222 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3568 "dhcp4_parser.cc"
+#line 3564 "dhcp4_parser.cc"
     break;
 
-  case 678:
-#line 2237 "dhcp4_parser.yy"
+  case 671:
+#line 2225 "dhcp4_parser.yy"
                        {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3576 "dhcp4_parser.cc"
+#line 3572 "dhcp4_parser.cc"
     break;
 
-  case 679:
-#line 2239 "dhcp4_parser.yy"
+  case 672:
+#line 2227 "dhcp4_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3586 "dhcp4_parser.cc"
+#line 3582 "dhcp4_parser.cc"
     break;
 
-  case 680:
-#line 2246 "dhcp4_parser.yy"
+  case 673:
+#line 2234 "dhcp4_parser.yy"
                                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3594 "dhcp4_parser.cc"
+#line 3590 "dhcp4_parser.cc"
     break;
 
-  case 681:
-#line 2248 "dhcp4_parser.yy"
+  case 674:
+#line 2236 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 3604 "dhcp4_parser.cc"
+#line 3600 "dhcp4_parser.cc"
     break;
 
-  case 682:
-#line 2255 "dhcp4_parser.yy"
+  case 675:
+#line 2243 "dhcp4_parser.yy"
                                                          {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3613 "dhcp4_parser.cc"
+#line 3609 "dhcp4_parser.cc"
     break;
 
-  case 683:
-#line 2261 "dhcp4_parser.yy"
+  case 676:
+#line 2249 "dhcp4_parser.yy"
                                                                  {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3622 "dhcp4_parser.cc"
+#line 3618 "dhcp4_parser.cc"
     break;
 
-  case 684:
-#line 2267 "dhcp4_parser.yy"
+  case 677:
+#line 2255 "dhcp4_parser.yy"
                                              {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3630 "dhcp4_parser.cc"
+#line 3626 "dhcp4_parser.cc"
     break;
 
-  case 685:
-#line 2269 "dhcp4_parser.yy"
+  case 678:
+#line 2257 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3639 "dhcp4_parser.cc"
+#line 3635 "dhcp4_parser.cc"
     break;
 
-  case 686:
-#line 2275 "dhcp4_parser.yy"
+  case 679:
+#line 2263 "dhcp4_parser.yy"
                                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3647 "dhcp4_parser.cc"
+#line 3643 "dhcp4_parser.cc"
     break;
 
-  case 687:
-#line 2277 "dhcp4_parser.yy"
+  case 680:
+#line 2265 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3657 "dhcp4_parser.cc"
+#line 3653 "dhcp4_parser.cc"
     break;
 
-  case 688:
-#line 2284 "dhcp4_parser.yy"
+  case 681:
+#line 2272 "dhcp4_parser.yy"
                                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3665 "dhcp4_parser.cc"
+#line 3661 "dhcp4_parser.cc"
     break;
 
-  case 689:
-#line 2286 "dhcp4_parser.yy"
+  case 682:
+#line 2274 "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 3675 "dhcp4_parser.cc"
+#line 3671 "dhcp4_parser.cc"
     break;
 
-  case 690:
-#line 2293 "dhcp4_parser.yy"
+  case 683:
+#line 2281 "dhcp4_parser.yy"
                                                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3683 "dhcp4_parser.cc"
+#line 3679 "dhcp4_parser.cc"
     break;
 
-  case 691:
-#line 2295 "dhcp4_parser.yy"
+  case 684:
+#line 2283 "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 3693 "dhcp4_parser.cc"
-    break;
-
-  case 692:
-#line 2304 "dhcp4_parser.yy"
-                         {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3701 "dhcp4_parser.cc"
-    break;
-
-  case 693:
-#line 2306 "dhcp4_parser.yy"
-              {
-    ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3710 "dhcp4_parser.cc"
-    break;
-
-  case 694:
-#line 2311 "dhcp4_parser.yy"
-                               {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3718 "dhcp4_parser.cc"
-    break;
-
-  case 695:
-#line 2313 "dhcp4_parser.yy"
-              {
-    ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3727 "dhcp4_parser.cc"
-    break;
-
-  case 696:
-#line 2318 "dhcp4_parser.yy"
-                                         {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3735 "dhcp4_parser.cc"
-    break;
-
-  case 697:
-#line 2320 "dhcp4_parser.yy"
-              {
-    ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3744 "dhcp4_parser.cc"
+#line 3689 "dhcp4_parser.cc"
     break;
 
-  case 698:
-#line 2327 "dhcp4_parser.yy"
+  case 685:
+#line 2292 "dhcp4_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 3755 "dhcp4_parser.cc"
+#line 3700 "dhcp4_parser.cc"
     break;
 
-  case 699:
-#line 2332 "dhcp4_parser.yy"
+  case 686:
+#line 2297 "dhcp4_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3765 "dhcp4_parser.cc"
+#line 3710 "dhcp4_parser.cc"
     break;
 
-  case 700:
-#line 2338 "dhcp4_parser.yy"
+  case 687:
+#line 2303 "dhcp4_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3775 "dhcp4_parser.cc"
+#line 3720 "dhcp4_parser.cc"
     break;
 
-  case 701:
-#line 2342 "dhcp4_parser.yy"
+  case 688:
+#line 2307 "dhcp4_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
 }
-#line 3784 "dhcp4_parser.cc"
+#line 3729 "dhcp4_parser.cc"
     break;
 
-  case 706:
-#line 2357 "dhcp4_parser.yy"
+  case 693:
+#line 2322 "dhcp4_parser.yy"
                                    {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 3795 "dhcp4_parser.cc"
+#line 3740 "dhcp4_parser.cc"
     break;
 
-  case 707:
-#line 2362 "dhcp4_parser.yy"
+  case 694:
+#line 2327 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3804 "dhcp4_parser.cc"
+#line 3749 "dhcp4_parser.cc"
     break;
 
-  case 708:
-#line 2367 "dhcp4_parser.yy"
+  case 695:
+#line 2332 "dhcp4_parser.yy"
                                                              {
     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 3813 "dhcp4_parser.cc"
-    break;
-
-  case 709:
-#line 2377 "dhcp4_parser.yy"
-                        {
-    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("Logging", m);
-    ctx.stack_.push_back(m);
-    ctx.enter(ctx.LOGGING);
-}
-#line 3824 "dhcp4_parser.cc"
-    break;
-
-  case 710:
-#line 2382 "dhcp4_parser.yy"
-                                                     {
-    ctx.stack_.pop_back();
-    ctx.leave();
-}
-#line 3833 "dhcp4_parser.cc"
-    break;
-
-  case 711:
-#line 2387 "dhcp4_parser.yy"
-                            {
-    // Parse the Logging map
-    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.push_back(m);
-}
-#line 3843 "dhcp4_parser.cc"
-    break;
-
-  case 712:
-#line 2391 "dhcp4_parser.yy"
-                                {
-    // parsing completed
-}
-#line 3851 "dhcp4_parser.cc"
+#line 3758 "dhcp4_parser.cc"
     break;
 
-  case 716:
-#line 2407 "dhcp4_parser.yy"
+  case 696:
+#line 2339 "dhcp4_parser.yy"
                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3862 "dhcp4_parser.cc"
+#line 3769 "dhcp4_parser.cc"
     break;
 
-  case 717:
-#line 2412 "dhcp4_parser.yy"
+  case 697:
+#line 2344 "dhcp4_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3871 "dhcp4_parser.cc"
+#line 3778 "dhcp4_parser.cc"
     break;
 
-  case 720:
-#line 2424 "dhcp4_parser.yy"
+  case 700:
+#line 2356 "dhcp4_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3881 "dhcp4_parser.cc"
+#line 3788 "dhcp4_parser.cc"
     break;
 
-  case 721:
-#line 2428 "dhcp4_parser.yy"
+  case 701:
+#line 2360 "dhcp4_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
-#line 3889 "dhcp4_parser.cc"
+#line 3796 "dhcp4_parser.cc"
     break;
 
-  case 731:
-#line 2445 "dhcp4_parser.yy"
+  case 711:
+#line 2377 "dhcp4_parser.yy"
                                      {
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3898 "dhcp4_parser.cc"
+#line 3805 "dhcp4_parser.cc"
     break;
 
-  case 732:
-#line 2450 "dhcp4_parser.yy"
+  case 712:
+#line 2382 "dhcp4_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3906 "dhcp4_parser.cc"
+#line 3813 "dhcp4_parser.cc"
     break;
 
-  case 733:
-#line 2452 "dhcp4_parser.yy"
+  case 713:
+#line 2384 "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 3916 "dhcp4_parser.cc"
+#line 3823 "dhcp4_parser.cc"
     break;
 
-  case 734:
-#line 2458 "dhcp4_parser.yy"
+  case 714:
+#line 2390 "dhcp4_parser.yy"
                                     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 3927 "dhcp4_parser.cc"
+#line 3834 "dhcp4_parser.cc"
     break;
 
-  case 735:
-#line 2463 "dhcp4_parser.yy"
+  case 715:
+#line 2395 "dhcp4_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3936 "dhcp4_parser.cc"
+#line 3843 "dhcp4_parser.cc"
     break;
 
-  case 738:
-#line 2472 "dhcp4_parser.yy"
+  case 718:
+#line 2404 "dhcp4_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3946 "dhcp4_parser.cc"
+#line 3853 "dhcp4_parser.cc"
     break;
 
-  case 739:
-#line 2476 "dhcp4_parser.yy"
+  case 719:
+#line 2408 "dhcp4_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
-#line 3954 "dhcp4_parser.cc"
+#line 3861 "dhcp4_parser.cc"
     break;
 
-  case 747:
-#line 2491 "dhcp4_parser.yy"
+  case 727:
+#line 2423 "dhcp4_parser.yy"
                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3962 "dhcp4_parser.cc"
+#line 3869 "dhcp4_parser.cc"
     break;
 
-  case 748:
-#line 2493 "dhcp4_parser.yy"
+  case 728:
+#line 2425 "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 3972 "dhcp4_parser.cc"
+#line 3879 "dhcp4_parser.cc"
     break;
 
-  case 749:
-#line 2499 "dhcp4_parser.yy"
+  case 729:
+#line 2431 "dhcp4_parser.yy"
                            {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3981 "dhcp4_parser.cc"
+#line 3888 "dhcp4_parser.cc"
     break;
 
-  case 750:
-#line 2504 "dhcp4_parser.yy"
+  case 730:
+#line 2436 "dhcp4_parser.yy"
                                {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3990 "dhcp4_parser.cc"
+#line 3897 "dhcp4_parser.cc"
     break;
 
-  case 751:
-#line 2509 "dhcp4_parser.yy"
+  case 731:
+#line 2441 "dhcp4_parser.yy"
                              {
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3999 "dhcp4_parser.cc"
+#line 3906 "dhcp4_parser.cc"
     break;
 
-  case 752:
-#line 2514 "dhcp4_parser.yy"
+  case 732:
+#line 2446 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4007 "dhcp4_parser.cc"
+#line 3914 "dhcp4_parser.cc"
     break;
 
-  case 753:
-#line 2516 "dhcp4_parser.yy"
+  case 733:
+#line 2448 "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 4017 "dhcp4_parser.cc"
+#line 3924 "dhcp4_parser.cc"
     break;
 
 
-#line 4021 "dhcp4_parser.cc"
+#line 3928 "dhcp4_parser.cc"
 
             default:
               break;
@@ -4366,843 +4273,792 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -939;
+  const short Dhcp4Parser::yypact_ninf_ = -895;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     370,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,    32,    43,    33,    50,    67,
-      69,    71,    83,    90,   112,   121,   127,   129,   157,   171,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,    43,  -162,
-      24,   200,   107,   637,    -8,    54,   -33,    91,    58,   -67,
-     223,  -112,   134,  -939,   178,    62,   191,   189,   209,  -939,
-    -939,  -939,  -939,  -939,   216,  -939,    35,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,   218,   220,   240,  -939,
-    -939,  -939,  -939,  -939,  -939,   242,   250,   252,   273,   275,
-     283,   285,   309,   332,  -939,   336,   339,   360,   378,   385,
-    -939,  -939,  -939,   392,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,   399,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,    48,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,   401,  -939,    59,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,   409,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,    72,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,    85,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,   412,   418,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,   414,  -939,  -939,
-     419,  -939,  -939,  -939,   421,  -939,  -939,   422,   424,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,   425,   428,  -939,  -939,  -939,  -939,   426,   430,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,   113,  -939,  -939,  -939,   431,  -939,  -939,   433,
-    -939,   439,   442,  -939,  -939,   444,   445,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,   174,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,   244,  -939,  -939,  -939,   446,   245,  -939,  -939,  -939,
-    -939,    43,    43,  -939,   262,   455,   456,   458,   459,   460,
-    -939,    24,  -939,   461,   463,   465,   276,   279,   281,   472,
-     477,   479,   480,   481,   483,   296,   297,   299,   302,   307,
-     301,   310,   314,   318,   498,   320,   321,   312,   324,   327,
-     510,   511,   516,   331,   524,   525,   526,   528,   529,   530,
-     531,   532,   533,   534,   535,   537,   350,   539,   557,   558,
-     559,   560,   561,   562,   200,  -939,   563,   564,   565,   377,
-     107,  -939,   566,   568,   569,   570,   571,   572,   386,   573,
-     575,   576,   637,  -939,   577,    -8,  -939,   578,   579,   580,
-     581,   582,   583,   584,   585,  -939,    54,  -939,   586,   587,
-     400,   590,   591,   592,   403,  -939,    91,   594,   406,   407,
-    -939,    58,   598,   599,   204,  -939,   410,   602,   603,   416,
-     605,   420,   427,   606,   607,   423,   429,   609,   610,   612,
-     614,   223,  -939,  -112,  -939,   616,   432,   134,  -939,  -939,
-    -939,   617,   615,   618,    43,    43,    43,  -939,   619,   620,
-     621,  -939,  -939,  -939,   438,   440,   441,   623,   628,   632,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   447,
-    -939,  -939,  -939,  -939,  -939,     2,   448,   450,  -939,   638,
-     639,   640,   641,   635,   457,     3,   642,   648,   649,   651,
-     650,  -939,   652,   653,   654,   661,   467,   478,   665,  -939,
-     666,   363,   398,  -939,  -939,   482,   484,   485,   667,   486,
-     487,  -939,   666,   488,   673,  -939,   490,  -939,   666,   491,
-     492,   493,   494,   495,   496,   497,  -939,   502,   512,  -939,
-     513,   514,   522,  -939,  -939,   536,  -939,  -939,  -939,   546,
-      43,  -939,  -939,   547,   548,  -939,   549,  -939,  -939,    31,
-     517,  -939,  -939,     2,   550,   551,   553,  -939,  -939,   697,
-    -939,  -939,    43,   200,  -112,  -939,  -939,  -939,   134,   107,
-     693,  -939,  -939,  -939,   305,   305,   712,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,   713,   714,   715,   716,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   172,   717,
-     718,   719,   114,    60,    14,    17,   223,  -939,  -939,   721,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,   723,  -939,  -939,  -939,  -939,   292,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,   712,  -939,   247,   293,   294,
-     300,  -939,   303,  -939,  -939,  -939,  -939,  -939,  -939,   741,
-     744,   745,   746,   747,  -939,  -939,  -939,  -939,   748,   749,
-     751,   752,   753,   754,  -939,   304,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,   306,  -939,   755,
-     756,  -939,  -939,   757,   759,  -939,  -939,   758,   762,  -939,
-    -939,   760,   764,  -939,  -939,   763,   765,  -939,  -939,  -939,
-    -939,  -939,  -939,    38,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,    88,  -939,  -939,   766,   767,  -939,  -939,   768,   770,
-    -939,   771,   772,   773,   774,   775,   776,   313,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,   777,   778,   779,  -939,   316,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,   319,  -939,  -939,  -939,   780,  -939,   781,  -939,  -939,
-    -939,   325,  -939,  -939,  -939,  -939,  -939,   326,  -939,   168,
-    -939,   595,  -939,   782,   784,  -939,  -939,  -939,  -939,   783,
-     786,  -939,  -939,  -939,  -939,   785,   693,  -939,   789,   790,
-     791,   792,   611,   596,   613,   604,   622,   793,   797,   798,
-     800,   624,   625,   626,   627,   629,   630,   305,  -939,  -939,
-     305,  -939,   712,   637,  -939,   713,    91,  -939,   714,    58,
-    -939,   715,  1166,  -939,   716,   172,  -939,   109,   717,  -939,
-      54,  -939,   718,   -67,  -939,   719,   633,   634,   643,   644,
-     645,   646,   114,  -939,   636,   647,   655,    60,  -939,   802,
-     803,    14,  -939,   656,   804,   657,   805,    17,  -939,  -939,
-     124,   721,  -939,  -939,   806,   807,    -8,  -939,   723,   809,
-    -939,  -939,   660,  -939,   371,   662,   663,   664,  -939,  -939,
-    -939,  -939,  -939,   668,   669,   670,   671,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,   329,  -939,   376,  -939,   812,  -939,
-     813,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   380,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-     811,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-     816,   808,  -939,  -939,  -939,  -939,  -939,   819,  -939,   387,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,   672,   674,  -939,  -939,   675,  -939,    43,  -939,
-    -939,   825,  -939,  -939,  -939,  -939,  -939,   389,  -939,  -939,
-    -939,  -939,  -939,  -939,   676,   390,  -939,   666,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  1166,  -939,   827,   658,  -939,
-     109,  -939,  -939,  -939,  -939,  -939,  -939,   828,   677,   829,
-     124,  -939,  -939,  -939,  -939,  -939,   679,  -939,  -939,   835,
-    -939,   680,  -939,  -939,   834,  -939,  -939,   207,  -939,   -40,
-     834,  -939,  -939,   830,   838,   839,  -939,   396,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,   840,   678,   682,   683,   841,
-     -40,  -939,   686,  -939,  -939,  -939,   687,  -939,  -939,  -939
+     374,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,    39,    41,    72,   101,   111,   131,
+     133,   157,   159,   166,   169,   173,   176,   189,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,    41,  -139,    71,   174,    67,   572,
+      84,   229,   -29,   269,    65,   -79,   383,    18,  -895,   151,
+     167,    83,   190,   212,  -895,    58,  -895,  -895,  -895,  -895,
+    -895,   214,   248,   258,  -895,  -895,  -895,  -895,  -895,  -895,
+     259,   260,   267,   268,   276,   277,   279,   294,   295,  -895,
+     296,   307,   311,   325,   331,  -895,  -895,  -895,   335,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,   342,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   344,
+    -895,    82,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,   345,  -895,    89,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,   367,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,    97,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,   138,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   310,
+     349,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,   364,  -895,  -895,   371,  -895,  -895,  -895,
+     384,  -895,  -895,   379,   386,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   387,   388,
+    -895,  -895,  -895,  -895,   382,   390,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   150,  -895,
+    -895,  -895,   391,  -895,  -895,   392,  -895,   396,   397,  -895,
+    -895,   398,   399,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+     164,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   400,   181,
+    -895,  -895,  -895,  -895,    41,    41,  -895,   219,   403,    71,
+    -895,   405,   407,   408,   225,   227,   228,   415,   421,   424,
+     426,   427,   428,   254,   255,   257,   262,   264,   246,   270,
+     275,   265,   441,   280,   282,   281,   284,   287,   442,   443,
+     452,   292,   453,   461,   462,   467,   480,   481,   484,   485,
+     488,   490,   491,   492,   313,   493,   498,   499,   503,   506,
+     507,   508,  -895,   174,  -895,   510,   511,   512,   328,    67,
+    -895,   514,   515,   516,   517,   518,   520,   338,   535,   536,
+     537,   572,  -895,   538,    84,  -895,   539,   540,   556,   558,
+     559,   560,   561,   562,  -895,   229,  -895,   563,   567,   385,
+     569,   570,   571,   389,  -895,   269,   573,   394,   395,  -895,
+      65,   575,   576,    73,  -895,   401,   577,   581,   402,   583,
+     404,   406,   584,   588,   414,   417,   590,   591,   592,   593,
+     383,  -895,   604,   422,    18,  -895,  -895,  -895,   606,   605,
+    -895,   607,   608,   609,  -895,  -895,  -895,   425,   431,   432,
+     612,   617,   620,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,   451,  -895,  -895,  -895,  -895,  -895,  -105,   454,
+     466,  -895,   622,   623,   633,   634,   641,   468,   278,   650,
+     651,   652,   653,   658,  -895,   670,   672,   673,   676,   473,
+     500,   679,  -895,   680,    93,   188,  -895,  -895,   501,   502,
+     504,   686,   509,   513,  -895,   680,   525,   685,  -895,   526,
+    -895,   680,   527,   528,   543,   544,   545,   546,   547,  -895,
+     550,   551,  -895,   552,   553,   564,  -895,  -895,   565,  -895,
+    -895,  -895,   568,    41,  -895,  -895,   574,   578,  -895,   579,
+    -895,  -895,    15,   419,  -895,  -895,  -105,   580,   582,   585,
+    -895,   688,  -895,  -895,    41,   174,    18,    67,   589,  -895,
+    -895,  -895,    81,    81,   687,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,   689,   690,   691,   693,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,   -39,   694,   695,   716,
+     163,    80,   191,   180,   383,  -895,  -895,   717,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   718,
+    -895,  -895,  -895,  -895,   107,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,   687,  -895,   183,   184,   208,  -895,   216,
+    -895,  -895,  -895,  -895,  -895,  -895,   722,   738,   740,   742,
+     743,  -895,  -895,  -895,  -895,   744,   745,   749,   752,   753,
+     755,  -895,   253,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,   274,  -895,   756,   758,  -895,  -895,
+     761,   766,  -895,  -895,   764,   769,  -895,  -895,   767,   771,
+    -895,  -895,   770,   772,  -895,  -895,  -895,  -895,  -895,  -895,
+      34,  -895,  -895,  -895,  -895,  -895,  -895,  -895,    46,  -895,
+    -895,   773,   774,  -895,  -895,   775,   777,  -895,   778,   779,
+     780,   781,   782,   783,   298,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,   784,   785,   786,  -895,   299,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   305,  -895,
+    -895,  -895,   787,  -895,   788,  -895,  -895,  -895,   314,  -895,
+    -895,  -895,  -895,  -895,   322,  -895,    61,  -895,   610,  -895,
+     789,   790,  -895,  -895,  -895,  -895,   791,   792,  -895,  -895,
+    -895,   793,   589,  -895,   796,   797,   798,   799,   618,   615,
+     619,   621,   624,   803,   808,   809,   810,   628,   629,   630,
+     631,   632,   635,    81,  -895,  -895,    81,  -895,   687,   572,
+    -895,   689,   269,  -895,   690,    65,  -895,   691,   646,  -895,
+     693,   -39,  -895,    74,   694,  -895,   229,  -895,   695,   -79,
+    -895,   716,   636,   637,   638,   639,   640,   642,   163,  -895,
+     644,   643,   647,    80,  -895,   815,   816,   191,  -895,   648,
+     824,   649,   827,   180,  -895,  -895,   128,   717,  -895,  -895,
+     829,   835,    84,  -895,   718,   836,  -895,  -895,   655,  -895,
+     348,   657,   660,   661,  -895,  -895,  -895,  -895,  -895,   664,
+     671,   684,   696,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+     323,  -895,   347,  -895,   831,  -895,   857,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,   353,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,   840,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,   858,   883,  -895,  -895,
+    -895,  -895,  -895,   879,  -895,   359,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,   713,   714,
+    -895,  -895,   720,  -895,    41,  -895,  -895,   899,  -895,  -895,
+    -895,  -895,  -895,   362,  -895,  -895,  -895,  -895,  -895,  -895,
+     727,   365,  -895,   680,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,   646,  -895,   910,   732,  -895,    74,  -895,  -895,  -895,
+    -895,  -895,  -895,   918,   737,   955,   128,  -895,  -895,  -895,
+    -895,  -895,   794,  -895,  -895,   959,  -895,   795,  -895,  -895,
+     953,  -895,  -895,    90,  -895,   -27,   953,  -895,  -895,   964,
+     965,   966,  -895,   366,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,   967,   800,   801,   804,   968,   -27,  -895,   806,  -895,
+    -895,  -895,   807,  -895,  -895,  -895
   };
 
   const short
   Dhcp4Parser::yydefact_[] =
   {
        0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
-      20,    22,    24,    26,    28,     0,     0,     0,     0,     0,
+      20,    22,    24,    26,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     1,    43,
+      36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
+      56,     5,    63,     7,   165,     9,   323,    11,   506,    13,
+     531,    15,   431,    17,   439,    19,   476,    21,   288,    23,
+     637,    25,   687,    27,    45,    39,     0,     0,     0,     0,
+       0,   533,     0,   441,   478,     0,     0,     0,    47,     0,
+      46,     0,     0,    40,    61,     0,    58,    60,   685,   154,
+     180,     0,     0,     0,   552,   554,   556,   178,   187,   189,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   128,
+       0,     0,     0,     0,     0,   136,   143,   145,     0,   315,
+     429,   468,   386,   519,   521,   379,   253,   580,   523,   280,
+     299,     0,   267,   606,   619,   635,   147,   149,   696,     0,
+     118,     0,    65,    67,    68,    69,    70,    71,   102,   103,
+     104,    72,   100,    89,    90,    91,   108,   109,   110,   111,
+     112,   113,   106,   107,   114,   115,   116,    75,    76,    97,
+      77,    78,    79,   117,    83,    84,    73,   101,    74,    81,
+      82,    95,    96,    98,    92,    93,    94,    80,    85,    86,
+      87,    88,    99,   105,   167,   169,   173,     0,   164,     0,
+     156,   158,   159,   160,   161,   162,   163,   367,   369,   371,
+     498,   365,   373,     0,   377,   375,   576,   364,   327,   328,
+     329,   330,   331,   352,   353,   354,   342,   343,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,     0,   325,   334,
+     347,   348,   349,   335,   337,   338,   340,   336,   332,   333,
+     350,   351,   339,   344,   345,   346,   341,   517,   516,   512,
+     513,   511,     0,   508,   510,   514,   515,   574,   562,   564,
+     568,   566,   572,   570,   558,   551,   545,   549,   550,     0,
+     534,   535,   546,   547,   548,   542,   537,   543,   539,   540,
+     541,   544,   538,     0,   458,   233,     0,   462,   460,   465,
+       0,   454,   455,     0,   442,   443,   445,   457,   446,   447,
+     448,   464,   449,   450,   451,   452,   453,   492,     0,     0,
+     490,   491,   494,   495,     0,   479,   480,   482,   483,   484,
+     485,   486,   487,   488,   489,   295,   297,   292,     0,   290,
+     293,   294,     0,   673,   660,     0,   663,     0,     0,   667,
+     671,     0,     0,   677,   679,   681,   683,   658,   656,   657,
+       0,   639,   641,   642,   643,   644,   645,   646,   647,   648,
+     653,   649,   650,   651,   652,   654,   655,   693,     0,     0,
+     689,   691,   692,    44,     0,     0,    37,     0,     0,     0,
+      57,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
-      35,    36,    58,     5,    70,     7,   172,     9,   330,    11,
-     513,    13,   538,    15,   438,    17,   446,    19,   483,    21,
-     295,    23,   644,    25,   711,    27,   700,    29,    47,    41,
-       0,     0,     0,     0,     0,   540,     0,   448,   485,     0,
-       0,     0,     0,    49,     0,    48,     0,     0,    42,    68,
-     709,   692,   694,   696,     0,    67,     0,    60,    62,    64,
-      65,    66,    63,   698,   161,   187,     0,     0,     0,   559,
-     561,   563,   185,   194,   196,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   135,     0,     0,     0,     0,     0,
-     143,   150,   152,     0,   322,   436,   475,   393,   526,   528,
-     386,   260,   587,   530,   287,   306,     0,   274,   613,   626,
-     642,   154,   156,   716,   125,     0,    72,    74,    75,    76,
-      77,    78,   109,   110,   111,    79,   107,    96,    97,    98,
-     115,   116,   117,   118,   119,   120,   113,   114,   121,   122,
-     123,    82,    83,   104,    84,    85,    86,   124,    90,    91,
-      80,   108,    81,    88,    89,   102,   103,   105,    99,   100,
-     101,    87,    92,    93,    94,    95,   106,   112,   174,   176,
-     180,     0,   171,     0,   163,   165,   166,   167,   168,   169,
-     170,   374,   376,   378,   505,   372,   380,     0,   384,   382,
-     583,   371,   334,   335,   336,   337,   338,   359,   360,   361,
-     349,   350,   362,   363,   364,   365,   366,   367,   368,   369,
-     370,     0,   332,   341,   354,   355,   356,   342,   344,   345,
-     347,   343,   339,   340,   357,   358,   346,   351,   352,   353,
-     348,   524,   523,   519,   520,   518,     0,   515,   517,   521,
-     522,   581,   569,   571,   575,   573,   579,   577,   565,   558,
-     552,   556,   557,     0,   541,   542,   553,   554,   555,   549,
-     544,   550,   546,   547,   548,   551,   545,     0,   465,   240,
-       0,   469,   467,   472,     0,   461,   462,     0,   449,   450,
-     452,   464,   453,   454,   455,   471,   456,   457,   458,   459,
-     460,   499,     0,     0,   497,   498,   501,   502,     0,   486,
-     487,   489,   490,   491,   492,   493,   494,   495,   496,   302,
-     304,   299,     0,   297,   300,   301,     0,   680,   667,     0,
-     670,     0,     0,   674,   678,     0,     0,   684,   686,   688,
-     690,   665,   663,   664,     0,   646,   648,   649,   650,   651,
-     652,   653,   654,   655,   660,   656,   657,   658,   659,   661,
-     662,     0,   713,   715,   706,     0,     0,   702,   704,   705,
-      46,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-      57,     0,    59,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    55,     0,    64,     0,     0,     0,     0,     0,
+     166,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   324,     0,     0,   507,     0,     0,     0,     0,
+       0,     0,     0,     0,   532,     0,   432,     0,     0,     0,
+       0,     0,     0,     0,   440,     0,     0,     0,     0,   477,
+       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    71,     0,     0,     0,     0,
-       0,   173,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   331,     0,     0,   514,     0,     0,     0,
-       0,     0,     0,     0,     0,   539,     0,   439,     0,     0,
-       0,     0,     0,     0,     0,   447,     0,     0,     0,     0,
-     484,     0,     0,     0,     0,   296,     0,     0,     0,     0,
+       0,   638,     0,     0,     0,   688,    48,    41,     0,     0,
+      59,     0,     0,     0,   130,   131,   132,     0,     0,     0,
+       0,     0,     0,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,     0,   152,   153,   133,   134,   135,     0,     0,
+       0,   151,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   605,     0,     0,     0,     0,     0,
+       0,     0,    66,     0,     0,     0,   177,   157,     0,     0,
+       0,     0,     0,     0,   385,     0,     0,     0,   326,     0,
+     509,     0,     0,     0,     0,     0,     0,     0,     0,   536,
+       0,     0,   456,     0,     0,     0,   467,   444,     0,   496,
+     497,   481,     0,     0,   291,   659,     0,     0,   662,     0,
+     665,   666,     0,     0,   675,   676,     0,     0,     0,     0,
+     640,     0,   695,   690,     0,     0,     0,     0,     0,   553,
+     555,   557,     0,     0,   191,   129,   138,   139,   140,   141,
+     142,   137,   144,   146,   317,   433,   470,   388,    38,   520,
+     522,   381,   382,   383,   384,   380,     0,     0,   525,   282,
+       0,     0,     0,     0,     0,   148,   150,     0,    49,   168,
+     171,   172,   170,   175,   176,   174,   368,   370,   372,   500,
+     366,   374,   378,   376,     0,   518,   575,   563,   565,   569,
+     567,   573,   571,   559,   459,   234,   463,   461,   466,   493,
+     296,   298,   674,   661,   664,   669,   670,   668,   672,   678,
+     680,   682,   684,   191,    42,     0,     0,     0,   185,     0,
+     182,   184,   220,   226,   228,   230,     0,     0,     0,     0,
+       0,   242,   244,   246,   248,     0,     0,     0,     0,     0,
+       0,   219,     0,   197,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   212,   213,   214,   209,   215,   216,
+     217,   210,   211,   218,     0,   195,     0,   192,   193,   321,
+       0,   318,   319,   437,     0,   434,   435,   474,     0,   471,
+     472,   392,     0,   389,   390,   262,   263,   264,   265,   266,
+       0,   255,   257,   258,   259,   260,   261,   584,     0,   582,
+     529,     0,   526,   527,   286,     0,   283,   284,     0,     0,
+       0,     0,     0,     0,     0,   301,   303,   304,   305,   306,
+     307,   308,     0,     0,     0,   276,     0,   269,   271,   272,
+     273,   274,   275,   615,   617,   614,   612,   613,     0,   608,
+     610,   611,     0,   630,     0,   633,   626,   627,     0,   621,
+     623,   624,   625,   628,     0,   700,     0,   698,    51,   504,
+       0,   501,   502,   560,   578,   579,     0,     0,    62,   686,
+     155,     0,     0,   181,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   645,     0,   712,     0,     0,     0,   701,    50,
-      43,     0,     0,     0,     0,     0,     0,    61,     0,     0,
-       0,   137,   138,   139,     0,     0,     0,     0,     0,     0,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,     0,
-     159,   160,   140,   141,   142,     0,     0,     0,   158,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   612,     0,     0,     0,     0,     0,     0,     0,    73,
-       0,     0,     0,   184,   164,     0,     0,     0,     0,     0,
-       0,   392,     0,     0,     0,   333,     0,   516,     0,     0,
-       0,     0,     0,     0,     0,     0,   543,     0,     0,   463,
-       0,     0,     0,   474,   451,     0,   503,   504,   488,     0,
-       0,   298,   666,     0,     0,   669,     0,   672,   673,     0,
-       0,   682,   683,     0,     0,     0,     0,   647,   714,     0,
-     708,   703,     0,     0,     0,   693,   695,   697,     0,     0,
-       0,   560,   562,   564,     0,     0,   198,   136,   145,   146,
-     147,   148,   149,   144,   151,   153,   324,   440,   477,   395,
-      40,   527,   529,   388,   389,   390,   391,   387,     0,     0,
-     532,   289,     0,     0,     0,     0,     0,   155,   157,     0,
-      51,   175,   178,   179,   177,   182,   183,   181,   375,   377,
-     379,   507,   373,   381,   385,   383,     0,   525,   582,   570,
-     572,   576,   574,   580,   578,   566,   466,   241,   470,   468,
-     473,   500,   303,   305,   681,   668,   671,   676,   677,   675,
-     679,   685,   687,   689,   691,   198,    44,     0,     0,     0,
-       0,   192,     0,   189,   191,   227,   233,   235,   237,     0,
-       0,     0,     0,     0,   249,   251,   253,   255,     0,     0,
-       0,     0,     0,     0,   226,     0,   204,   206,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,   219,   220,   221,
-     216,   222,   223,   224,   217,   218,   225,     0,   202,     0,
-     199,   200,   328,     0,   325,   326,   444,     0,   441,   442,
-     481,     0,   478,   479,   399,     0,   396,   397,   269,   270,
-     271,   272,   273,     0,   262,   264,   265,   266,   267,   268,
-     591,     0,   589,   536,     0,   533,   534,   293,     0,   290,
-     291,     0,     0,     0,     0,     0,     0,     0,   308,   310,
-     311,   312,   313,   314,   315,     0,     0,     0,   283,     0,
-     276,   278,   279,   280,   281,   282,   622,   624,   621,   619,
-     620,     0,   615,   617,   618,     0,   637,     0,   640,   633,
-     634,     0,   628,   630,   631,   632,   635,     0,   720,     0,
-     718,    53,   511,     0,   508,   509,   567,   585,   586,     0,
-       0,    69,   710,   699,   162,     0,     0,   188,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   186,   195,
-       0,   197,     0,     0,   323,     0,   448,   437,     0,   485,
-     476,     0,     0,   394,     0,     0,   261,   593,     0,   588,
-     540,   531,     0,     0,   288,     0,     0,     0,     0,     0,
-       0,     0,     0,   307,     0,     0,     0,     0,   275,     0,
-       0,     0,   614,     0,     0,     0,     0,     0,   627,   643,
-       0,     0,   717,    55,     0,    54,     0,   506,     0,     0,
-     584,   707,     0,   190,     0,     0,     0,     0,   239,   242,
-     243,   244,   245,     0,     0,     0,     0,   257,   258,   246,
-     247,   248,   259,   205,     0,   201,     0,   327,     0,   443,
-       0,   480,   435,   418,   419,   420,   406,   407,   423,   424,
-     425,   409,   410,   426,   427,   428,   429,   430,   431,   432,
-     433,   434,   403,   404,   405,   416,   417,   415,     0,   401,
-     408,   421,   422,   411,   412,   413,   414,   398,   263,   609,
-       0,   607,   608,   600,   601,   605,   606,   602,   603,   604,
-       0,   594,   595,   597,   598,   599,   590,     0,   535,     0,
-     292,   316,   317,   318,   319,   320,   321,   309,   284,   285,
-     286,   277,     0,     0,   616,   636,     0,   639,     0,   629,
-     734,     0,   732,   730,   724,   728,   729,     0,   722,   726,
-     727,   725,   719,    52,     0,     0,   510,     0,   193,   229,
-     230,   231,   232,   228,   234,   236,   238,   250,   252,   254,
-     256,   203,   329,   445,   482,     0,   400,     0,     0,   592,
-       0,   537,   294,   623,   625,   638,   641,     0,     0,     0,
-       0,   721,    56,   512,   568,   402,     0,   611,   596,     0,
-     731,     0,   723,   610,     0,   733,   738,     0,   736,     0,
-       0,   735,   747,     0,     0,     0,   752,     0,   740,   742,
-     743,   744,   745,   746,   737,     0,     0,     0,     0,     0,
-       0,   739,     0,   749,   750,   751,     0,   741,   748,   753
+       0,     0,     0,     0,   179,   188,     0,   190,     0,     0,
+     316,     0,   441,   430,     0,   478,   469,     0,     0,   387,
+       0,     0,   254,   586,     0,   581,   533,   524,     0,     0,
+     281,     0,     0,     0,     0,     0,     0,     0,     0,   300,
+       0,     0,     0,     0,   268,     0,     0,     0,   607,     0,
+       0,     0,     0,     0,   620,   636,     0,     0,   697,    53,
+       0,    52,     0,   499,     0,     0,   577,   694,     0,   183,
+       0,     0,     0,     0,   232,   235,   236,   237,   238,     0,
+       0,     0,     0,   250,   251,   239,   240,   241,   252,   198,
+       0,   194,     0,   320,     0,   436,     0,   473,   428,   411,
+     412,   413,   399,   400,   416,   417,   418,   402,   403,   419,
+     420,   421,   422,   423,   424,   425,   426,   427,   396,   397,
+     398,   409,   410,   408,     0,   394,   401,   414,   415,   404,
+     405,   406,   407,   391,   256,   602,     0,   600,   601,   593,
+     594,   598,   599,   595,   596,   597,     0,   587,   588,   590,
+     591,   592,   583,     0,   528,     0,   285,   309,   310,   311,
+     312,   313,   314,   302,   277,   278,   279,   270,     0,     0,
+     609,   629,     0,   632,     0,   622,   714,     0,   712,   710,
+     704,   708,   709,     0,   702,   706,   707,   705,   699,    50,
+       0,     0,   503,     0,   186,   222,   223,   224,   225,   221,
+     227,   229,   231,   243,   245,   247,   249,   196,   322,   438,
+     475,     0,   393,     0,     0,   585,     0,   530,   287,   616,
+     618,   631,   634,     0,     0,     0,     0,   701,    54,   505,
+     561,   395,     0,   604,   589,     0,   711,     0,   703,   603,
+       0,   713,   718,     0,   716,     0,     0,   715,   727,     0,
+       0,     0,   732,     0,   720,   722,   723,   724,   725,   726,
+     717,     0,     0,     0,     0,     0,     0,   719,     0,   729,
+     730,   731,     0,   721,   728,   733
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,     0,  -939,   177,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -587,  -939,  -939,
-    -939,   -70,  -939,  -939,  -939,   435,  -939,  -939,  -939,  -939,
-     108,   384,   -43,   -31,   -27,    -4,    -2,     8,    16,    19,
-    -939,  -939,  -939,  -939,    22,    23,    26,    27,    29,    34,
-    -939,   203,    37,  -939,    40,  -939,    41,  -939,    42,  -939,
-      44,  -939,  -939,  -939,  -939,   188,   388,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,   -52,  -939,  -939,  -939,  -939,  -939,  -939,
-     126,  -939,   -74,  -939,  -662,   -41,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,   -66,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   -42,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   -89,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,   -64,  -939,  -939,  -939,
-     -46,   383,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   -35,
-    -939,  -939,  -939,  -939,  -939,  -939,  -938,  -939,  -939,  -939,
-     -15,  -939,  -939,  -939,   -25,   449,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -936,  -939,   -68,  -939,    46,  -939,
-      45,  -939,  -939,  -939,  -939,  -939,  -939,  -939,   -20,  -939,
-    -939,  -201,   -49,  -939,  -939,  -939,  -939,  -939,     5,  -939,
-    -939,  -939,    -1,  -939,   489,  -939,   -45,  -939,  -939,  -939,
-    -939,  -939,   -39,  -939,  -939,  -939,  -939,  -939,   -38,  -939,
-    -939,  -939,     1,  -939,  -939,  -939,     6,  -939,   499,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-      -7,  -939,  -939,  -939,    -6,   515,  -939,  -939,   -54,  -939,
-     -14,  -939,   -28,  -939,  -939,  -939,    39,  -939,  -939,  -939,
-      47,  -939,   503,   -58,  -939,    -3,  -939,     4,  -939,   277,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -924,  -939,  -939,
-    -939,  -939,  -939,    51,  -939,  -939,  -939,  -148,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,    25,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,    18,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,   298,   500,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,  -939,   340,   474,  -939,  -939,  -939,  -939,  -939,  -939,
-    -939,   348,   501,   -59,  -939,  -939,    28,  -939,  -939,  -147,
-    -939,  -939,  -939,  -939,  -939,  -939,  -166,  -939,  -939,  -185,
-    -939,  -939,  -939,  -939,  -939,  -939,  -939
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,   -52,  -895,   222,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -570,  -895,  -895,  -895,
+     -67,  -895,  -895,  -895,   586,  -895,  -895,  -895,  -895,   339,
+     351,   -40,   -28,   -24,    -1,     1,    11,    19,    22,  -895,
+    -895,  -895,  -895,    25,    26,    29,    30,    32,    37,  -895,
+     350,    40,  -895,    43,  -895,    44,  -895,    45,  -895,    47,
+    -895,  -895,  -895,  -895,   336,   529,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,    95,  -895,  -895,  -895,  -895,  -895,  -895,   256,
+    -895,    75,  -895,  -630,    79,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,   -63,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,    63,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,    42,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,    55,  -895,  -895,  -895,    66,
+     494,  -895,  -895,  -895,  -895,  -895,  -895,  -895,    52,  -895,
+    -895,  -895,  -895,  -895,  -895,  -894,  -895,  -895,  -895,    85,
+    -895,  -895,  -895,    88,   533,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -891,  -895,   -65,  -895,    49,  -895,    48,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,    78,  -895,  -895,
+    -112,   -46,  -895,  -895,  -895,  -895,  -895,    86,  -895,  -895,
+    -895,    91,  -895,   519,  -895,   -42,  -895,  -895,  -895,  -895,
+    -895,   -36,  -895,  -895,  -895,  -895,  -895,   -35,  -895,  -895,
+    -895,    92,  -895,  -895,  -895,    87,  -895,   522,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,    50,
+    -895,  -895,  -895,    51,   541,  -895,  -895,   -51,  -895,   -11,
+    -895,   -25,  -895,  -895,  -895,    96,  -895,  -895,  -895,    94,
+    -895,   531,   -55,  -895,     0,  -895,     7,  -895,   316,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -890,  -895,  -895,  -895,
+    -895,  -895,    77,  -895,  -895,  -895,  -109,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,    68,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,    64,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,   334,   521,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895,  -895,   380,   505,  -895,  -895,  -895,
+    -895,  -895,  -895,    69,  -895,  -895,  -108,  -895,  -895,  -895,
+    -895,  -895,  -895,  -125,  -895,  -895,  -143,  -895,  -895,  -895,
+    -895,  -895,  -895,  -895
   };
 
   const short
   Dhcp4Parser::yydefgoto_[] =
   {
-      -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    38,    39,    40,    69,
-     691,    87,    88,    41,    68,    84,    85,   711,   901,   994,
-     995,   784,    43,    70,    96,    97,    98,   405,    45,    71,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   434,   167,   168,   169,   170,   171,   172,   173,
-     440,   683,   174,   441,   175,   442,   176,   461,   177,   462,
-     178,   179,   180,   181,   414,   213,   214,    47,    72,   215,
-     466,   216,   467,   714,   217,   468,   717,   218,   182,   422,
-     183,   415,   762,   763,   764,   915,   184,   423,   185,   424,
-     809,   810,   811,   940,   785,   786,   787,   918,  1133,   788,
-     919,   789,   920,   790,   921,   791,   792,   499,   793,   794,
-     795,   796,   797,   798,   799,   800,   927,   801,   928,   802,
-     929,   803,   930,   804,   805,   806,   186,   451,   833,   834,
-     835,   836,   837,   838,   839,   187,   457,   869,   870,   871,
-     872,   873,   188,   454,   848,   849,   850,   963,    61,    79,
-     352,   353,   354,   512,   355,   513,   189,   455,   857,   858,
-     859,   860,   861,   862,   863,   864,   190,   444,   813,   814,
-     815,   943,    49,    73,   251,   252,   253,   476,   254,   472,
-     255,   473,   256,   474,   257,   477,   258,   480,   259,   479,
-     191,   450,   697,   261,   192,   447,   825,   826,   827,   952,
-    1058,  1059,   193,   445,    55,    76,   817,   818,   819,   946,
-      57,    77,   317,   318,   319,   320,   321,   322,   323,   498,
-     324,   502,   325,   501,   326,   327,   503,   328,   194,   446,
-     821,   822,   823,   949,    59,    78,   338,   339,   340,   341,
-     342,   507,   343,   344,   345,   346,   263,   475,   903,   904,
-     905,   996,    51,    74,   276,   277,   278,   484,   195,   448,
-     196,   449,   197,   453,   844,   845,   846,   960,    53,    75,
-     293,   294,   295,   198,   419,   199,   420,   200,   421,   299,
-     494,   908,   999,   300,   488,   301,   489,   302,   491,   303,
-     490,   304,   493,   305,   492,   306,   487,   270,   481,   909,
-     201,   452,   841,   842,   957,  1080,  1081,  1082,  1083,  1084,
-    1147,  1085,   202,   203,   458,   881,   882,   883,   979,   884,
-     980,   204,   459,   891,   892,   893,   894,   984,   895,   896,
-     986,   205,   460,    63,    80,   374,   375,   376,   377,   518,
-     378,   379,   520,   380,   381,   382,   523,   749,   383,   524,
-     384,   517,   385,   386,   387,   527,   388,   528,   389,   529,
-     390,   530,    99,   407,   100,   408,   101,   409,   206,   413,
-      67,    82,   396,   397,   398,   535,   399,   102,   406,    65,
-      81,   391,   392,   207,   463,   899,   900,   990,  1117,  1118,
-    1119,  1120,  1159,  1121,  1157,  1177,  1178,  1179,  1187,  1188,
-    1189,  1195,  1190,  1191,  1192,  1193,  1199
+      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    36,    37,    38,    65,   659,
+      82,    83,    39,    64,    79,    80,   679,   868,   960,   961,
+     751,    41,    66,    85,    86,    87,   388,    43,    67,   141,
+     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
+     152,   412,   153,   154,   155,   156,   157,   158,   159,   418,
+     651,   160,   419,   161,   420,   162,   439,   163,   440,   164,
+     165,   166,   167,   392,   199,   200,    45,    68,   201,   445,
+     202,   446,   682,   203,   447,   685,   204,   168,   400,   169,
+     393,   729,   730,   731,   881,   170,   401,   171,   402,   776,
+     777,   778,   906,   752,   753,   754,   884,  1099,   755,   885,
+     756,   886,   757,   887,   758,   759,   478,   760,   761,   762,
+     763,   764,   765,   766,   767,   893,   768,   894,   769,   895,
+     770,   896,   771,   772,   773,   172,   429,   800,   801,   802,
+     803,   804,   805,   806,   173,   435,   836,   837,   838,   839,
+     840,   174,   432,   815,   816,   817,   929,    59,    75,   338,
+     339,   340,   491,   341,   492,   175,   433,   824,   825,   826,
+     827,   828,   829,   830,   831,   176,   422,   780,   781,   782,
+     909,    47,    69,   237,   238,   239,   455,   240,   451,   241,
+     452,   242,   453,   243,   456,   244,   459,   245,   458,   177,
+     428,   665,   247,   178,   425,   792,   793,   794,   918,  1024,
+    1025,   179,   423,    53,    72,   784,   785,   786,   912,    55,
+      73,   303,   304,   305,   306,   307,   308,   309,   477,   310,
+     481,   311,   480,   312,   313,   482,   314,   180,   424,   788,
+     789,   790,   915,    57,    74,   324,   325,   326,   327,   328,
+     486,   329,   330,   331,   332,   249,   454,   870,   871,   872,
+     962,    49,    70,   262,   263,   264,   463,   181,   426,   182,
+     427,   183,   431,   811,   812,   813,   926,    51,    71,   279,
+     280,   281,   184,   397,   185,   398,   186,   399,   285,   473,
+     875,   965,   286,   467,   287,   468,   288,   470,   289,   469,
+     290,   472,   291,   471,   292,   466,   256,   460,   876,   187,
+     430,   808,   809,   923,  1046,  1047,  1048,  1049,  1050,  1113,
+    1051,   188,   189,   436,   848,   849,   850,   945,   851,   946,
+     190,   437,   858,   859,   860,   861,   950,   862,   863,   952,
+     191,   438,    61,    76,   360,   361,   362,   363,   497,   364,
+     365,   499,   366,   367,   368,   502,   717,   369,   503,   370,
+     496,   371,   372,   373,   506,   374,   507,   375,   508,   376,
+     509,   192,   391,    63,    77,   379,   380,   381,   512,   382,
+     193,   441,   866,   867,   956,  1083,  1084,  1085,  1086,  1125,
+    1087,  1123,  1143,  1144,  1145,  1153,  1154,  1155,  1161,  1156,
+    1157,  1158,  1159,  1165
   };
 
   const short
   Dhcp4Parser::yytable_[] =
   {
-      95,   154,   212,   231,   272,   289,   273,   315,   334,   351,
-     371,   316,   335,   807,  1053,   267,  1054,   296,   219,   264,
-     279,   291,   393,   329,   347,   724,   372,   307,  1066,    86,
-     232,   728,    30,   336,    89,   262,   275,   290,   411,   337,
-      42,   955,   233,   412,   956,   266,   234,   135,    31,   747,
-      32,   464,    33,   153,   349,   350,   465,    44,   220,   265,
-     280,   292,   470,   330,   348,   401,   373,   471,    83,   235,
-     268,   236,   297,   136,    46,   482,    48,   269,    50,   298,
-     483,   237,   109,   110,   111,   271,   138,   139,   485,   238,
-      52,   958,   239,   486,   959,   240,   241,    54,   228,   242,
-     243,   229,   244,   693,   694,   695,   696,   245,   138,   139,
-     246,   138,   139,   247,   248,   249,   514,   250,   260,    56,
-     274,   515,   208,   209,    94,   308,   210,  1182,    58,   211,
-    1183,  1184,  1185,  1186,    60,   136,    62,   109,   110,   111,
-     309,   331,   310,   311,   332,   333,   394,   395,   138,   139,
-     876,   877,   138,   139,   138,   139,   885,   886,   887,   281,
-     678,   679,   680,   681,    64,   282,   283,   284,   285,   286,
-     287,   991,   288,   309,   992,   310,   311,   531,    66,   312,
-     313,   314,   532,    94,   400,   138,   139,   748,    90,   135,
-     136,   309,   865,   866,   867,   402,   682,   403,    91,    92,
-      93,   138,   139,   138,   139,    94,   309,  1053,   888,  1054,
-    1180,   103,   404,  1181,   104,    94,  1069,  1070,   138,   139,
-     410,  1066,   416,   105,   417,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,    34,    35,    36,    37,   851,   852,
-     853,   854,   855,   856,   418,    94,   425,   533,   537,    94,
-     464,    94,   534,   538,   426,   911,   427,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   428,  1024,   429,
-     135,   136,    94,   828,   829,   830,   831,   430,   832,   431,
-    1110,   137,  1111,  1112,   138,   139,   533,   537,    94,   140,
-      94,   912,   913,   470,   141,   142,   916,   937,   914,   937,
-     143,   917,   938,   432,   939,    94,   972,   138,   139,   977,
-     144,   973,   981,   145,   978,   349,   350,   982,   987,   531,
-     146,   147,   937,   988,   989,   148,   433,  1141,   149,   765,
-     435,    95,   150,   436,   766,   767,   768,   769,   770,   771,
-     772,   773,   774,   775,   776,   777,   778,   779,   780,   781,
-     782,   783,   151,   152,   437,   153,   356,   357,   358,   359,
-     360,   361,   362,   363,   364,   365,   366,   367,   368,   482,
-     712,   713,   438,  1145,  1142,   369,   370,   309,  1146,   439,
-     514,    94,  1160,   485,   154,  1152,   443,  1161,  1163,  1200,
-     212,   539,   540,   456,  1201,   469,  1129,  1130,  1131,  1132,
-     288,   906,   231,   478,    94,   272,   219,   273,   715,   716,
-     495,   496,   497,   500,   267,   504,   289,   506,   264,   508,
-     505,   279,   509,   511,   510,   516,   315,   519,   296,   232,
-     316,   334,   291,   521,   262,   335,   522,   275,   525,   526,
-     536,   233,   329,   541,   266,   234,   220,   347,   290,   542,
-     543,   371,   544,   545,   546,   548,   336,   549,   265,   550,
-     551,   280,   337,   552,   393,   553,   554,   372,   235,   268,
-     236,   555,   292,   556,   557,   558,   269,   559,   560,   561,
-     237,   562,   330,   297,   563,   565,    94,   348,   238,   564,
-     298,   239,   569,   566,   240,   241,   572,   567,   242,   243,
-     568,   244,   570,   571,   575,   576,   245,   373,   573,   246,
-     577,   574,   247,   248,   249,   578,   250,   260,   579,   580,
-     581,   274,   582,   583,   584,   585,   586,   587,   588,   589,
-    1164,   590,   591,   592,   665,   666,   667,     1,     2,     3,
+     140,   198,   217,   258,   275,   259,   301,   320,   337,   357,
+     302,   321,    78,   774,   253,   692,   282,   205,   250,   265,
+     277,   696,   315,   333,  1019,   358,   293,  1020,  1032,   218,
+     377,   378,   322,   715,   248,   261,   276,   921,   323,    28,
+     922,   219,   335,   336,   252,   220,    29,    81,    30,   924,
+      31,   120,   925,   646,   647,   648,   649,   206,   251,   266,
+     278,   389,   316,   334,   957,   359,   390,   958,   221,   254,
+     222,   283,   795,   796,   797,   798,   255,   799,   284,    40,
+     223,    84,   194,   195,   650,   443,   196,   385,   224,   197,
+     444,   225,   449,  1146,   226,   227,  1147,   450,   228,   229,
+     461,   230,    94,    95,    96,   462,   231,   139,    42,   232,
+     680,   681,   233,   234,   235,   732,   236,   246,    44,   260,
+     733,   734,   735,   736,   737,   738,   739,   740,   741,   742,
+     743,   744,   745,   746,   747,   748,   749,   750,    46,  1148,
+      48,   464,  1149,  1150,  1151,  1152,   465,   295,   317,   296,
+     297,   318,   319,   493,   120,   121,   295,   383,   494,   123,
+     124,   123,   124,   295,    50,   121,    52,   510,   123,   124,
+     384,   716,   511,    54,   123,   124,    56,   257,   123,   124,
+      58,  1035,  1036,    60,   514,    88,   443,   514,    89,   515,
+     214,   878,   879,   215,   335,   336,    62,    90,   386,    91,
+      92,    93,    94,    95,    96,    97,    98,    99,   683,   684,
+     295,   449,   832,   833,   834,   387,   880,  1019,   394,   882,
+    1020,  1032,   123,   124,   883,   274,   873,    32,    33,    34,
+      35,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   139,   395,   139,   120,   121,   903,    94,    95,    96,
+     139,   904,   396,   403,   404,   122,   139,   139,   123,   124,
+     139,   405,   406,   125,   123,   124,   990,   903,   126,   127,
+     407,   408,   905,   409,   128,   123,   124,   818,   819,   820,
+     821,   822,   823,  1076,   129,  1077,  1078,   130,   410,   411,
+     413,   938,   943,   294,   131,   132,   939,   944,   947,   133,
+     121,   414,   134,   948,   139,   415,   135,   953,   474,   852,
+     853,   854,   954,   123,   124,   510,   903,   843,   844,   416,
+     955,  1107,   516,   517,   267,   417,   136,   137,   138,   421,
+     268,   269,   270,   271,   272,   273,   434,   274,   442,   448,
+     461,   295,   475,   296,   297,  1108,  1111,   298,   299,   300,
+     139,  1112,   493,   123,   124,  1126,   855,  1118,   464,  1166,
+    1127,   457,   476,  1129,  1167,   479,   140,   139,   661,   662,
+     663,   664,   198,  1095,  1096,  1097,  1098,   484,   483,   485,
+     489,   487,   488,   490,   217,   495,   498,   258,   205,   259,
+     500,   501,   504,   505,   513,   518,   253,   519,   275,   521,
+     250,   522,   523,   265,   524,   139,   525,   526,   301,   527,
+     282,   218,   302,   320,   277,   528,   248,   321,   529,   261,
+     530,   531,   532,   219,   315,   538,   252,   220,   206,   333,
+     276,   533,   534,   357,   535,   542,   548,   549,   322,   536,
+     251,   537,   541,   266,   323,   139,   550,   552,   539,   358,
+     221,   254,   222,   540,   278,   553,   554,   543,   255,   544,
+     545,   555,   223,   546,   316,   283,   547,   123,   124,   334,
+     224,   551,   284,   225,   556,   557,   226,   227,   558,   559,
+     228,   229,   560,   230,   561,   562,   563,   565,   231,   359,
+     564,   232,   566,   567,   233,   234,   235,   568,   236,   246,
+     569,   570,   571,   260,   573,   574,   575,   576,   578,   579,
+     580,   581,   582,  1130,   583,   584,   342,   343,   344,   345,
+     346,   347,   348,   349,   350,   351,   352,   353,   354,   585,
+     586,   587,   589,   591,   592,   355,   356,     1,     2,     3,
        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,   593,   594,   595,   596,   597,   598,   600,   601,   602,
-     605,   603,   606,   607,   608,   609,   610,   612,   611,   613,
-     614,   616,   618,   619,   620,   621,   622,   623,   624,   625,
-     627,   628,   629,   154,   630,   631,   632,   633,   635,   212,
-     636,   637,   639,   640,   642,   393,   643,   644,   645,   646,
-     649,   650,   647,   653,   654,   219,   655,   651,   656,   648,
-     659,   662,   663,   652,   660,   664,   668,   669,   670,   671,
-     674,   672,   673,   868,   878,   675,   371,   676,   677,   684,
-     743,   685,    32,   686,   687,   688,   689,   698,   692,   874,
-     879,   889,   372,   699,   700,   220,   701,   702,   707,   703,
-     704,   705,   756,   107,   108,   109,   110,   111,   706,   708,
-     709,   710,   721,   718,   750,   719,   720,   722,   723,   725,
-     726,   727,   729,   730,   731,   732,   733,   734,   735,   875,
-     880,   890,   373,   736,   115,   116,   117,   118,   119,   120,
-     121,   122,   755,   737,   738,   739,   127,   128,   129,   130,
-     131,   132,   133,   740,   221,   222,   223,   761,   136,   808,
-     812,   816,   820,   824,   840,   843,   847,   741,   898,   224,
-     902,   138,   139,   225,   226,   227,   140,   742,   744,   745,
-     746,   752,   753,   228,   754,   922,   229,   143,   923,   924,
-     925,   926,   931,   932,   230,   933,   934,   935,   936,   942,
-     690,   941,   945,   944,   947,   948,   950,   951,   954,   953,
-     962,   757,   961,   965,   964,   966,   967,   968,   969,   970,
-     971,   974,   975,   976,   983,   985,   993,   998,   997,  1002,
-    1009,  1000,  1001,  1004,  1005,  1006,  1007,  1013,  1011,   151,
-     152,  1014,  1015,  1008,  1016,  1010,  1102,  1103,  1106,  1108,
-    1124,  1150,  1123,  1127,  1012,  1148,  1017,  1018,  1019,  1020,
-    1143,  1144,  1022,  1021,  1149,  1091,  1092,  1151,    94,  1158,
-    1098,  1166,  1169,  1171,  1196,  1093,  1094,  1095,  1096,  1099,
-    1174,  1176,  1197,  1198,  1202,  1206,   547,  1100,   599,  1107,
-    1105,  1128,  1167,  1134,  1135,  1136,   751,   760,   604,  1137,
-    1138,  1139,  1140,  1153,  1003,  1154,  1155,  1162,  1025,  1170,
-    1173,  1175,  1203,   231,  1204,  1205,   315,  1208,  1209,   334,
-     316,   910,  1032,   335,  1055,   267,  1052,  1071,  1101,   264,
-     289,  1072,   329,   351,  1063,   347,  1023,   641,  1061,  1077,
-     232,  1090,   296,  1075,   336,   262,   291,   868,  1073,  1033,
-     337,   878,   233,  1068,  1060,   266,   234,  1089,  1026,  1074,
-    1113,  1034,   290,   874,  1114,  1035,   272,   879,   273,   265,
-    1027,   615,   330,   889,  1067,   348,  1115,  1097,  1062,   235,
-     268,   236,   279,  1076,  1165,  1028,   292,   269,  1036,  1064,
-    1037,   237,  1031,  1029,  1078,  1030,  1065,   297,   275,   238,
-    1038,  1079,   239,   875,   298,   240,   241,   880,  1039,   242,
-     243,  1040,   244,   890,  1041,  1042,  1116,   245,  1043,  1044,
-     246,  1045,   280,   247,   248,   249,  1046,   250,   260,  1047,
-    1125,  1126,  1048,  1049,  1050,   634,  1051,  1057,  1056,   626,
-     617,  1088,  1168,   907,   897,  1109,  1104,  1087,   759,  1086,
-     638,   661,   758,  1172,  1194,  1207,     0,     0,     0,  1122,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   657,     0,     0,   658,     0,     0,     0,     0,     0,
-       0,     0,   274,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1032,     0,  1055,     0,  1052,
-    1071,     0,     0,     0,  1072,     0,     0,  1063,     0,     0,
-    1113,  1061,  1077,     0,  1114,     0,  1075,     0,     0,     0,
-       0,  1073,  1033,     0,     0,     0,  1115,  1060,  1156,     0,
-       0,     0,  1074,     0,  1034,     0,     0,     0,  1035,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1062,     0,     0,     0,     0,  1076,     0,     0,     0,
-       0,  1036,  1064,  1037,     0,     0,  1116,  1078,     0,  1065,
-       0,     0,     0,  1038,  1079,     0,     0,     0,     0,     0,
-       0,  1039,     0,     0,  1040,     0,     0,  1041,  1042,     0,
-       0,  1043,  1044,     0,  1045,     0,     0,     0,     0,  1046,
-       0,     0,  1047,     0,     0,  1048,  1049,  1050,     0,  1051,
-    1057,  1056,   107,   108,   109,   110,   111,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   115,   116,   117,   118,   119,   120,   121,
-     122,     0,     0,     0,     0,   127,   128,   129,   130,   131,
-     132,   133,   134,     0,     0,     0,     0,   136,   309,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     138,   139,     0,   226,     0,   140,     0,     0,     0,     0,
-       0,     0,   228,     0,     0,   229,     0,     0,     0,     0,
-       0,     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,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   151,   152,
+     593,   711,   594,   595,   596,   597,   598,   600,   140,   139,
+     198,   601,   602,   603,   604,   605,   718,   608,   606,   612,
+     613,   616,   724,   609,   610,   617,   205,   619,   622,   618,
+     615,   620,   623,   621,   626,   627,   628,   629,    92,    93,
+      94,    95,    96,   624,   835,   845,   625,   357,   631,   632,
+     634,   639,   635,   728,   636,   637,   638,   640,   641,   642,
+     841,   846,   856,   358,   643,   644,   206,   654,   655,   100,
+     101,   102,   103,   104,   105,   106,   107,   645,   656,   657,
+     652,   112,   113,   114,   115,   116,   117,   118,    30,   207,
+     208,   209,   653,   121,   660,   666,   667,   668,   669,   675,
+     842,   847,   857,   359,   210,   670,   123,   124,   211,   212,
+     213,   125,    92,    93,    94,    95,    96,   671,   214,   672,
+     673,   215,   128,   674,   677,   678,   676,   686,   687,   216,
+     688,   689,   694,   723,   775,   690,   779,   783,   787,   691,
+     791,   807,   810,   100,   101,   102,   103,   104,   105,   106,
+     107,   693,   695,   697,   698,   112,   113,   114,   115,   116,
+     117,   118,   119,   814,   865,   869,   888,   121,   295,   699,
+     700,   701,   702,   703,   136,   137,   704,   705,   706,   707,
+     123,   124,   889,   212,   890,   125,   891,   892,   897,   898,
+     708,   709,   214,   899,   710,   215,   900,   901,   139,   902,
+     712,   908,   907,   216,   713,   714,   720,   910,   721,   911,
+     913,   722,   914,   916,   917,   920,   919,   928,   658,   927,
+     931,   930,   932,   933,   934,   935,   936,   937,   940,   941,
+     942,   949,   951,   964,   572,   963,   959,   968,   967,   966,
+     970,   971,   972,   973,   975,   974,   976,   979,   136,   137,
+     977,   978,   980,   981,   982,   983,   984,   985,   986,  1068,
+    1069,   987,   988,  1057,  1058,  1059,  1060,  1061,  1072,  1062,
+    1065,  1074,   139,  1064,  1066,  1089,  1073,  1071,  1090,  1109,
+    1093,  1094,   217,  1100,  1114,   301,  1101,  1102,   320,   302,
+    1103,   998,   321,  1021,   253,  1018,  1037,  1104,   250,   275,
+    1038,   315,   337,  1029,   333,  1110,  1115,  1027,  1043,   218,
+    1105,   282,  1041,   322,   248,   277,   835,  1039,   999,   323,
+     845,   219,  1106,  1026,   252,   220,  1116,  1117,  1040,  1079,
+    1000,   276,   841,  1080,  1001,   258,   846,   259,   251,  1119,
+    1120,   316,   856,  1124,   334,  1081,  1121,  1028,   221,   254,
+     222,   265,  1042,  1128,  1132,   278,   255,  1002,  1030,  1003,
+     223,  1133,  1135,  1044,  1136,  1031,   283,   261,   224,  1004,
+    1045,   225,   842,   284,   226,   227,   847,  1005,   228,   229,
+    1006,   230,   857,  1007,  1008,  1082,   231,  1009,  1010,   232,
+    1011,   266,   233,   234,   235,  1012,   236,   246,  1013,  1137,
+    1142,  1014,  1015,  1016,  1140,  1017,  1023,  1022,  1162,  1163,
+    1164,  1168,  1172,   727,   725,   520,   719,   969,   577,   877,
+    1139,  1141,   989,   991,  1034,  1067,  1056,   614,  1170,  1169,
+    1063,  1171,  1174,  1175,   588,  1055,   993,   992,  1033,  1131,
+     995,  1052,   996,   994,   607,   590,   599,  1134,   864,   997,
+     874,   260,   611,  1091,  1092,  1070,   726,  1075,  1138,   633,
+    1053,  1160,  1122,  1173,  1054,     0,  1088,     0,     0,     0,
+       0,   630,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   998,     0,  1021,     0,  1018,  1037,
+       0,     0,     0,  1038,     0,     0,  1029,     0,     0,  1079,
+    1027,  1043,     0,  1080,     0,  1041,     0,     0,     0,     0,
+    1039,   999,     0,     0,     0,  1081,  1026,     0,     0,     0,
+       0,  1040,     0,  1000,     0,     0,     0,  1001,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    94
+    1028,     0,     0,     0,     0,  1042,     0,     0,     0,     0,
+    1002,  1030,  1003,     0,     0,  1082,  1044,     0,  1031,     0,
+       0,     0,  1004,  1045,     0,     0,     0,     0,     0,     0,
+    1005,     0,     0,  1006,     0,     0,  1007,  1008,     0,     0,
+    1009,  1010,     0,  1011,     0,     0,     0,     0,  1012,     0,
+       0,  1013,     0,     0,  1014,  1015,  1016,     0,  1017,  1023,
+    1022
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
-      70,    71,    72,    73,    74,    75,    74,    77,    78,    79,
-      80,    77,    78,   675,   952,    73,   952,    75,    72,    73,
-      74,    75,    81,    77,    78,   612,    80,    76,   952,   191,
-      73,   618,     0,    78,    10,    73,    74,    75,     3,    78,
-       7,     3,    73,     8,     6,    73,    73,    80,     5,    18,
-       7,     3,     9,   165,   121,   122,     8,     7,    72,    73,
-      74,    75,     3,    77,    78,     3,    80,     8,    68,    73,
-      73,    73,    75,    81,     7,     3,     7,    73,     7,    75,
-       8,    73,    28,    29,    30,    93,    94,    95,     3,    73,
-       7,     3,    73,     8,     6,    73,    73,     7,   106,    73,
-      73,   109,    73,   100,   101,   102,   103,    73,    94,    95,
-      73,    94,    95,    73,    73,    73,     3,    73,    73,     7,
-      74,     8,    15,    16,   191,    34,    19,   167,     7,    22,
-     170,   171,   172,   173,     7,    81,     7,    28,    29,    30,
-      82,    83,    84,    85,    86,    87,    12,    13,    94,    95,
-     136,   137,    94,    95,    94,    95,   139,   140,   141,   105,
-     158,   159,   160,   161,     7,   111,   112,   113,   114,   115,
-     116,     3,   118,    82,     6,    84,    85,     3,     7,    88,
-      89,    90,     8,   191,     6,    94,    95,   156,   164,    80,
-      81,    82,   132,   133,   134,     4,   194,     8,   174,   175,
-     176,    94,    95,    94,    95,   191,    82,  1145,   191,  1145,
-       3,    11,     3,     6,    14,   191,   107,   108,    94,    95,
-       4,  1145,     4,    23,     4,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,   191,   192,   193,   194,   124,   125,
-     126,   127,   128,   129,     4,   191,     4,     3,     3,   191,
-       3,   191,     8,     8,     4,     8,     4,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,     4,   940,     4,
-      80,    81,   191,   111,   112,   113,   114,     4,   116,     4,
-     166,    91,   168,   169,    94,    95,     3,     3,   191,    99,
-     191,     8,     8,     3,   104,   105,     3,     3,     8,     3,
-     110,     8,     8,     4,     8,   191,     3,    94,    95,     3,
-     120,     8,     3,   123,     8,   121,   122,     8,     3,     3,
-     130,   131,     3,     8,     8,   135,     4,     8,   138,    34,
-       4,   411,   142,     4,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,   162,   163,     4,   165,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,     3,
-      17,    18,     4,     3,     8,   162,   163,    82,     8,     4,
-       3,   191,     3,     3,   464,     8,     4,     8,     8,     3,
-     470,   401,   402,     4,     8,     4,    35,    36,    37,    38,
-     118,   119,   482,     4,   191,   485,   470,   485,    20,    21,
-       8,     3,     8,     4,   482,     4,   496,     3,   482,     4,
-       8,   485,     4,     3,     8,     4,   506,     4,   496,   482,
-     506,   511,   496,     4,   482,   511,     4,   485,     4,     4,
-       4,   482,   506,   191,   482,   482,   470,   511,   496,     4,
-       4,   531,     4,     4,     4,     4,   511,     4,   482,     4,
-     194,   485,   511,   194,   533,   194,     4,   531,   482,   482,
-     482,     4,   496,     4,     4,     4,   482,     4,   192,   192,
-     482,   192,   506,   496,   192,   194,   191,   511,   482,   192,
-     496,   482,     4,   193,   482,   482,   194,   193,   482,   482,
-     192,   482,   192,   192,     4,     4,   482,   531,   194,   482,
-       4,   194,   482,   482,   482,   194,   482,   482,     4,     4,
-       4,   485,     4,     4,     4,     4,     4,     4,     4,     4,
-    1127,     4,   192,     4,   544,   545,   546,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   194,     4,     4,     4,     4,     4,     4,   192,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,   192,   663,     4,     4,     4,   194,     4,   669,
-     194,   194,     4,     4,   194,   664,     4,     4,   192,     4,
-       4,     4,   192,     4,     4,   669,     4,   194,     4,   192,
-       4,     4,     7,   194,   192,     7,     7,     7,     7,   191,
-       7,   191,   191,   703,   704,     7,   706,     5,   191,   191,
-     640,   191,     7,     5,     5,     5,     5,     5,   191,   703,
-     704,   705,   706,     5,     5,   669,     5,     7,   191,     7,
-       7,     7,   662,    26,    27,    28,    29,    30,     7,   191,
-       5,     5,     5,   191,   157,   191,   191,   191,   191,   191,
-       7,   191,   191,   191,   191,   191,   191,   191,   191,   703,
-     704,   705,   706,   191,    57,    58,    59,    60,    61,    62,
-      63,    64,     5,   191,   191,   191,    69,    70,    71,    72,
-      73,    74,    75,   191,    77,    78,    79,    24,    81,     7,
-       7,     7,     7,     7,     7,     7,     7,   191,     7,    92,
-       7,    94,    95,    96,    97,    98,    99,   191,   191,   191,
-     191,   191,   191,   106,   191,     4,   109,   110,     4,     4,
-       4,     4,     4,     4,   117,     4,     4,     4,     4,     3,
-     583,     6,     3,     6,     6,     3,     6,     3,     3,     6,
-       3,   663,     6,     3,     6,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,   191,     3,     6,     4,
-     194,     8,     6,     4,     4,     4,     4,     4,   194,   162,
-     163,     4,     4,   192,     4,   192,     4,     4,     4,     4,
-       3,     3,     6,     4,   192,     4,   192,   192,   192,   192,
-       8,     8,   192,   194,     8,   192,   192,     8,   191,     4,
-     194,     4,     4,     4,     4,   192,   192,   192,   192,   192,
-       5,     7,     4,     4,     4,     4,   411,   192,   464,   192,
-     194,   191,   194,   191,   191,   191,   653,   669,   470,   191,
-     191,   191,   191,   191,   916,   191,   191,   191,   942,   192,
-     191,   191,   194,   943,   192,   192,   946,   191,   191,   949,
-     946,   755,   952,   949,   952,   943,   952,   957,   977,   943,
-     960,   957,   946,   963,   952,   949,   937,   514,   952,   957,
-     943,   965,   960,   957,   949,   943,   960,   977,   957,   952,
-     949,   981,   943,   955,   952,   943,   943,   963,   943,   957,
-     990,   952,   960,   977,   990,   952,   996,   981,   996,   943,
-     945,   482,   946,   987,   954,   949,   990,   972,   952,   943,
-     943,   943,   996,   957,  1145,   946,   960,   943,   952,   952,
-     952,   943,   951,   948,   957,   949,   952,   960,   996,   943,
-     952,   957,   943,   977,   960,   943,   943,   981,   952,   943,
-     943,   952,   943,   987,   952,   952,   990,   943,   952,   952,
-     943,   952,   996,   943,   943,   943,   952,   943,   943,   952,
-     996,   998,   952,   952,   952,   506,   952,   952,   952,   496,
-     485,   962,  1150,   726,   706,   987,   981,   960,   668,   958,
-     511,   537,   664,  1160,  1180,  1200,    -1,    -1,    -1,   991,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   531,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   996,    -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,  1145,    -1,  1145,    -1,  1145,
-    1150,    -1,    -1,    -1,  1150,    -1,    -1,  1145,    -1,    -1,
-    1160,  1145,  1150,    -1,  1160,    -1,  1150,    -1,    -1,    -1,
-      -1,  1150,  1145,    -1,    -1,    -1,  1160,  1145,  1108,    -1,
-      -1,    -1,  1150,    -1,  1145,    -1,    -1,    -1,  1145,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1145,    -1,    -1,    -1,    -1,  1150,    -1,    -1,    -1,
-      -1,  1145,  1145,  1145,    -1,    -1,  1160,  1150,    -1,  1145,
-      -1,    -1,    -1,  1145,  1150,    -1,    -1,    -1,    -1,    -1,
-      -1,  1145,    -1,    -1,  1145,    -1,    -1,  1145,  1145,    -1,
-      -1,  1145,  1145,    -1,  1145,    -1,    -1,    -1,    -1,  1145,
-      -1,    -1,  1145,    -1,    -1,  1145,  1145,  1145,    -1,  1145,
-    1145,  1145,    26,    27,    28,    29,    30,    -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,    57,    58,    59,    60,    61,    62,    63,
-      64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    73,
-      74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,    -1,    -1,
-      -1,    -1,   106,    -1,    -1,   109,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,
+      67,    68,    69,    70,    71,    70,    73,    74,    75,    76,
+      73,    74,    64,   643,    69,   585,    71,    68,    69,    70,
+      71,   591,    73,    74,   918,    76,    72,   918,   918,    69,
+      12,    13,    74,    18,    69,    70,    71,     3,    74,     0,
+       6,    69,   121,   122,    69,    69,     5,   186,     7,     3,
+       9,    80,     6,   158,   159,   160,   161,    68,    69,    70,
+      71,     3,    73,    74,     3,    76,     8,     6,    69,    69,
+      69,    71,   111,   112,   113,   114,    69,   116,    71,     7,
+      69,    10,    15,    16,   189,     3,    19,     4,    69,    22,
+       8,    69,     3,     3,    69,    69,     6,     8,    69,    69,
+       3,    69,    28,    29,    30,     8,    69,   186,     7,    69,
+      17,    18,    69,    69,    69,    34,    69,    69,     7,    70,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,     7,   166,
+       7,     3,   169,   170,   171,   172,     8,    82,    83,    84,
+      85,    86,    87,     3,    80,    81,    82,     6,     8,    94,
+      95,    94,    95,    82,     7,    81,     7,     3,    94,    95,
+       3,   156,     8,     7,    94,    95,     7,    93,    94,    95,
+       7,   107,   108,     7,     3,    11,     3,     3,    14,     8,
+     106,     8,     8,   109,   121,   122,     7,    23,     8,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    20,    21,
+      82,     3,   132,   133,   134,     3,     8,  1111,     4,     3,
+    1111,  1111,    94,    95,     8,   118,   119,   186,   187,   188,
+     189,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,   186,     4,   186,    80,    81,     3,    28,    29,    30,
+     186,     8,     4,     4,     4,    91,   186,   186,    94,    95,
+     186,     4,     4,    99,    94,    95,   906,     3,   104,   105,
+       4,     4,     8,     4,   110,    94,    95,   124,   125,   126,
+     127,   128,   129,   165,   120,   167,   168,   123,     4,     4,
+       4,     3,     3,    34,   130,   131,     8,     8,     3,   135,
+      81,     4,   138,     8,   186,     4,   142,     3,     8,   139,
+     140,   141,     8,    94,    95,     3,     3,   136,   137,     4,
+       8,     8,   384,   385,   105,     4,   162,   163,   164,     4,
+     111,   112,   113,   114,   115,   116,     4,   118,     4,     4,
+       3,    82,     3,    84,    85,     8,     3,    88,    89,    90,
+     186,     8,     3,    94,    95,     3,   186,     8,     3,     3,
+       8,     4,     8,     8,     8,     4,   443,   186,   100,   101,
+     102,   103,   449,    35,    36,    37,    38,     8,     4,     3,
+       8,     4,     4,     3,   461,     4,     4,   464,   449,   464,
+       4,     4,     4,     4,     4,   186,   461,     4,   475,     4,
+     461,     4,     4,   464,   189,   186,   189,   189,   485,     4,
+     475,   461,   485,   490,   475,     4,   461,   490,     4,   464,
+       4,     4,     4,   461,   485,   189,   461,   461,   449,   490,
+     475,   187,   187,   510,   187,     4,     4,     4,   490,   187,
+     461,   187,   187,   464,   490,   186,     4,     4,   188,   510,
+     461,   461,   461,   188,   475,     4,     4,   187,   461,   187,
+     189,     4,   461,   189,   485,   475,   189,    94,    95,   490,
+     461,   189,   475,   461,     4,     4,   461,   461,     4,     4,
+     461,   461,     4,   461,     4,     4,     4,     4,   461,   510,
+     187,   461,     4,     4,   461,   461,   461,     4,   461,   461,
+       4,     4,     4,   464,     4,     4,     4,   189,     4,     4,
+       4,     4,     4,  1093,     4,   187,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,   152,   153,   154,   155,     4,
+       4,     4,     4,     4,     4,   162,   163,   173,   174,   175,
+     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+       4,   613,     4,     4,     4,     4,     4,     4,   635,   186,
+     637,     4,   187,     4,     4,     4,   157,     4,   189,     4,
+       4,     4,   634,   189,   189,     4,   637,     4,     4,   187,
+     189,   187,     4,   187,     4,     4,     4,     4,    26,    27,
+      28,    29,    30,   189,   671,   672,   189,   674,     4,   187,
+       4,   186,     7,    24,     7,     7,     7,   186,   186,     7,
+     671,   672,   673,   674,     7,     5,   637,     5,     5,    57,
+      58,    59,    60,    61,    62,    63,    64,   186,     5,     5,
+     186,    69,    70,    71,    72,    73,    74,    75,     7,    77,
+      78,    79,   186,    81,   186,     5,     5,     5,     5,   186,
+     671,   672,   673,   674,    92,     7,    94,    95,    96,    97,
+      98,    99,    26,    27,    28,    29,    30,     7,   106,     7,
+       7,   109,   110,     7,     5,     5,   186,   186,   186,   117,
+     186,     5,     7,     5,     7,   186,     7,     7,     7,   186,
+       7,     7,     7,    57,    58,    59,    60,    61,    62,    63,
+      64,   186,   186,   186,   186,    69,    70,    71,    72,    73,
+      74,    75,    76,     7,     7,     7,     4,    81,    82,   186,
+     186,   186,   186,   186,   162,   163,   186,   186,   186,   186,
+      94,    95,     4,    97,     4,    99,     4,     4,     4,     4,
+     186,   186,   106,     4,   186,   109,     4,     4,   186,     4,
+     186,     3,     6,   117,   186,   186,   186,     6,   186,     3,
+       6,   186,     3,     6,     3,     3,     6,     3,   556,     6,
+       3,     6,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     3,   443,     6,   186,     4,     6,     8,
+       4,     4,     4,     4,   189,   187,   187,     4,   162,   163,
+     189,   187,     4,     4,     4,   187,   187,   187,   187,     4,
+       4,   189,   187,   187,   187,   187,   187,   187,     4,   187,
+     187,     4,   186,   189,   187,     6,   187,   189,     3,     8,
+       4,   186,   909,   186,     4,   912,   186,   186,   915,   912,
+     186,   918,   915,   918,   909,   918,   923,   186,   909,   926,
+     923,   912,   929,   918,   915,     8,     8,   918,   923,   909,
+     186,   926,   923,   915,   909,   926,   943,   923,   918,   915,
+     947,   909,   186,   918,   909,   909,     3,     8,   923,   956,
+     918,   926,   943,   956,   918,   962,   947,   962,   909,   186,
+     186,   912,   953,     4,   915,   956,   186,   918,   909,   909,
+     909,   962,   923,   186,     4,   926,   909,   918,   918,   918,
+     909,   189,     4,   923,   187,   918,   926,   962,   909,   918,
+     923,   909,   943,   926,   909,   909,   947,   918,   909,   909,
+     918,   909,   953,   918,   918,   956,   909,   918,   918,   909,
+     918,   962,   909,   909,   909,   918,   909,   909,   918,     4,
+       7,   918,   918,   918,     5,   918,   918,   918,     4,     4,
+       4,     4,     4,   637,   635,   389,   626,   882,   449,   723,
+     186,   186,   903,   908,   921,   943,   931,   493,   187,   189,
+     938,   187,   186,   186,   461,   929,   911,   909,   920,  1111,
+     914,   924,   915,   912,   485,   464,   475,  1116,   674,   917,
+     694,   962,   490,   962,   964,   947,   636,   953,  1126,   514,
+     926,  1146,  1074,  1166,   928,    -1,   957,    -1,    -1,    -1,
+      -1,   510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  1111,    -1,  1111,    -1,  1111,  1116,
+      -1,    -1,    -1,  1116,    -1,    -1,  1111,    -1,    -1,  1126,
+    1111,  1116,    -1,  1126,    -1,  1116,    -1,    -1,    -1,    -1,
+    1116,  1111,    -1,    -1,    -1,  1126,  1111,    -1,    -1,    -1,
+      -1,  1116,    -1,  1111,    -1,    -1,    -1,  1111,    -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,   162,   163,
-      -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,   191
+    1111,    -1,    -1,    -1,    -1,  1116,    -1,    -1,    -1,    -1,
+    1111,  1111,  1111,    -1,    -1,  1126,  1116,    -1,  1111,    -1,
+      -1,    -1,  1111,  1116,    -1,    -1,    -1,    -1,    -1,    -1,
+    1111,    -1,    -1,  1111,    -1,    -1,  1111,  1111,    -1,    -1,
+    1111,  1111,    -1,  1111,    -1,    -1,    -1,    -1,  1111,    -1,
+      -1,  1111,    -1,    -1,  1111,  1111,  1111,    -1,  1111,  1111,
+    1111
   };
 
   const short
   Dhcp4Parser::yystos_[] =
   {
-       0,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
-       0,     5,     7,     9,   191,   192,   193,   194,   211,   212,
-     213,   218,     7,   227,     7,   233,     7,   272,     7,   377,
-       7,   457,     7,   473,     7,   409,     7,   415,     7,   439,
-       7,   353,     7,   538,     7,   584,     7,   575,   219,   214,
-     228,   234,   273,   378,   458,   474,   410,   416,   440,   354,
-     539,   585,   576,   211,   220,   221,   191,   216,   217,    10,
-     164,   174,   175,   176,   191,   226,   229,   230,   231,   567,
-     569,   571,   582,    11,    14,    23,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    80,    81,    91,    94,    95,
-      99,   104,   105,   110,   120,   123,   130,   131,   135,   138,
-     142,   162,   163,   165,   226,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   248,   249,   250,
-     251,   252,   253,   254,   257,   259,   261,   263,   265,   266,
-     267,   268,   283,   285,   291,   293,   331,   340,   347,   361,
-     371,   395,   399,   407,   433,   463,   465,   467,   478,   480,
-     482,   505,   517,   518,   526,   536,   573,   588,    15,    16,
-      19,    22,   226,   270,   271,   274,   276,   279,   282,   463,
-     465,    77,    78,    79,    92,    96,    97,    98,   106,   109,
-     117,   226,   237,   238,   239,   240,   241,   242,   243,   244,
-     249,   250,   251,   252,   253,   254,   257,   259,   261,   263,
-     265,   379,   380,   381,   383,   385,   387,   389,   391,   393,
-     395,   398,   433,   451,   463,   465,   467,   478,   480,   482,
-     502,    93,   226,   391,   393,   433,   459,   460,   461,   463,
-     465,   105,   111,   112,   113,   114,   115,   116,   118,   226,
-     433,   463,   465,   475,   476,   477,   478,   480,   482,   484,
-     488,   490,   492,   494,   496,   498,   500,   407,    34,    82,
-      84,    85,    88,    89,    90,   226,   311,   417,   418,   419,
-     420,   421,   422,   423,   425,   427,   429,   430,   432,   463,
-     465,    83,    86,    87,   226,   311,   421,   427,   441,   442,
-     443,   444,   445,   447,   448,   449,   450,   463,   465,   121,
-     122,   226,   355,   356,   357,   359,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   162,
-     163,   226,   463,   465,   540,   541,   542,   543,   545,   546,
-     548,   549,   550,   553,   555,   557,   558,   559,   561,   563,
-     565,   586,   587,   588,    12,    13,   577,   578,   579,   581,
-       6,     3,     4,     8,     3,   232,   583,   568,   570,   572,
-       4,     3,     8,   574,   269,   286,     4,     4,     4,   479,
-     481,   483,   284,   292,   294,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,   247,     4,     4,     4,     4,     4,
-     255,   258,   260,     4,   372,   408,   434,   400,   464,   466,
-     396,   332,   506,   468,   348,   362,     4,   341,   519,   527,
-     537,   262,   264,   589,     3,     8,   275,   277,   280,     4,
-       3,     8,   384,   386,   388,   452,   382,   390,     4,   394,
-     392,   503,     3,     8,   462,     3,     8,   501,   489,   491,
-     495,   493,   499,   497,   485,     8,     3,     8,   424,   312,
-       4,   428,   426,   431,     4,     8,     3,   446,     4,     4,
-       8,     3,   358,   360,     3,     8,     4,   556,   544,     4,
-     547,     4,     4,   551,   554,     4,     4,   560,   562,   564,
-     566,     3,     8,     3,     8,   580,     4,     3,     8,   211,
-     211,   191,     4,     4,     4,     4,     4,   230,     4,     4,
-       4,   194,   194,   194,     4,     4,     4,     4,     4,     4,
-     192,   192,   192,   192,   192,   194,   193,   193,   192,     4,
-     192,   192,   194,   194,   194,     4,     4,     4,   194,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   192,     4,     4,     4,     4,     4,     4,     4,   236,
-       4,     4,     4,   194,   271,     4,     4,     4,     4,     4,
-       4,   192,     4,     4,     4,   380,     4,   460,     4,     4,
-       4,     4,     4,     4,     4,     4,   477,     4,     4,   192,
-       4,     4,     4,   194,   419,     4,   194,   194,   443,     4,
-       4,   356,   194,     4,     4,   192,     4,   192,   192,     4,
-       4,   194,   194,     4,     4,     4,     4,   541,   587,     4,
-     192,   578,     4,     7,     7,   211,   211,   211,     7,     7,
-       7,   191,   191,   191,     7,     7,     5,   191,   158,   159,
-     160,   161,   194,   256,   191,   191,     5,     5,     5,     5,
-     213,   215,   191,   100,   101,   102,   103,   397,     5,     5,
-       5,     5,     7,     7,     7,     7,     7,   191,   191,     5,
-       5,   222,    17,    18,   278,    20,    21,   281,   191,   191,
-     191,     5,   191,   191,   222,   191,     7,   191,   222,   191,
-     191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
-     191,   191,   191,   211,   191,   191,   191,    18,   156,   552,
-     157,   256,   191,   191,   191,     5,   211,   235,   586,   577,
-     270,    24,   287,   288,   289,    34,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,   226,   299,   300,   301,   304,   306,
-     308,   310,   311,   313,   314,   315,   316,   317,   318,   319,
-     320,   322,   324,   326,   328,   329,   330,   299,     7,   295,
-     296,   297,     7,   373,   374,   375,     7,   411,   412,   413,
-       7,   435,   436,   437,     7,   401,   402,   403,   111,   112,
-     113,   114,   116,   333,   334,   335,   336,   337,   338,   339,
-       7,   507,   508,     7,   469,   470,   471,     7,   349,   350,
-     351,   124,   125,   126,   127,   128,   129,   363,   364,   365,
-     366,   367,   368,   369,   370,   132,   133,   134,   226,   342,
-     343,   344,   345,   346,   463,   465,   136,   137,   226,   463,
-     465,   520,   521,   522,   524,   139,   140,   141,   191,   463,
-     465,   528,   529,   530,   531,   533,   534,   540,     7,   590,
-     591,   223,     7,   453,   454,   455,   119,   484,   486,   504,
-     295,     8,     8,     8,     8,   290,     3,     8,   302,   305,
-     307,   309,     4,     4,     4,     4,     4,   321,   323,   325,
-     327,     4,     4,     4,     4,     4,     4,     3,     8,     8,
-     298,     6,     3,   376,     6,     3,   414,     6,     3,   438,
-       6,     3,   404,     6,     3,     3,     6,   509,     3,     6,
-     472,     6,     3,   352,     6,     3,     4,     4,     4,     4,
-       4,     4,     3,     8,     4,     4,     4,     3,     8,   523,
-     525,     3,     8,     4,   532,     4,   535,     3,     8,     8,
-     592,     3,     6,   191,   224,   225,   456,     6,     3,   487,
-       8,     6,     4,   288,     4,     4,     4,     4,   192,   194,
-     192,   194,   192,     4,     4,     4,     4,   192,   192,   192,
-     192,   194,   192,   300,   299,   297,   379,   375,   417,   413,
-     441,   437,   226,   237,   238,   239,   240,   241,   242,   243,
-     244,   249,   250,   251,   252,   253,   254,   257,   259,   261,
-     263,   265,   311,   371,   389,   391,   393,   395,   405,   406,
-     433,   463,   465,   478,   480,   482,   502,   403,   334,   107,
-     108,   226,   311,   407,   433,   463,   465,   478,   480,   482,
-     510,   511,   512,   513,   514,   516,   508,   475,   471,   355,
-     351,   192,   192,   192,   192,   192,   192,   364,   194,   192,
-     192,   343,     4,     4,   521,   194,     4,   192,     4,   529,
-     166,   168,   169,   226,   311,   463,   465,   593,   594,   595,
-     596,   598,   591,     6,     3,   459,   455,     4,   191,    35,
-      36,    37,    38,   303,   191,   191,   191,   191,   191,   191,
-     191,     8,     8,     8,     8,     3,     8,   515,     4,     8,
-       3,     8,     8,   191,   191,   191,   211,   599,     4,   597,
-       3,     8,   191,     8,   222,   406,     4,   194,   512,     4,
-     192,     4,   594,   191,     5,   191,     7,   600,   601,   602,
-       3,     6,   167,   170,   171,   172,   173,   603,   604,   605,
-     607,   608,   609,   610,   601,   606,     4,     4,     4,   611,
-       3,     8,     4,   194,   192,   192,     4,   604,   191,   191
+       0,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+     182,   183,   184,   185,   191,   192,   193,   194,   195,   196,
+     197,   198,   199,   200,   201,   202,   203,   204,     0,     5,
+       7,     9,   186,   187,   188,   189,   205,   206,   207,   212,
+       7,   221,     7,   227,     7,   266,     7,   371,     7,   451,
+       7,   467,     7,   403,     7,   409,     7,   433,     7,   347,
+       7,   532,     7,   563,   213,   208,   222,   228,   267,   372,
+     452,   468,   404,   410,   434,   348,   533,   564,   205,   214,
+     215,   186,   210,   211,    10,   223,   224,   225,    11,    14,
+      23,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      80,    81,    91,    94,    95,    99,   104,   105,   110,   120,
+     123,   130,   131,   135,   138,   142,   162,   163,   164,   186,
+     220,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   242,   243,   244,   245,   246,   247,   248,
+     251,   253,   255,   257,   259,   260,   261,   262,   277,   279,
+     285,   287,   325,   334,   341,   355,   365,   389,   393,   401,
+     427,   457,   459,   461,   472,   474,   476,   499,   511,   512,
+     520,   530,   561,   570,    15,    16,    19,    22,   220,   264,
+     265,   268,   270,   273,   276,   457,   459,    77,    78,    79,
+      92,    96,    97,    98,   106,   109,   117,   220,   231,   232,
+     233,   234,   235,   236,   237,   238,   243,   244,   245,   246,
+     247,   248,   251,   253,   255,   257,   259,   373,   374,   375,
+     377,   379,   381,   383,   385,   387,   389,   392,   427,   445,
+     457,   459,   461,   472,   474,   476,   496,    93,   220,   385,
+     387,   427,   453,   454,   455,   457,   459,   105,   111,   112,
+     113,   114,   115,   116,   118,   220,   427,   457,   459,   469,
+     470,   471,   472,   474,   476,   478,   482,   484,   486,   488,
+     490,   492,   494,   401,    34,    82,    84,    85,    88,    89,
+      90,   220,   305,   411,   412,   413,   414,   415,   416,   417,
+     419,   421,   423,   424,   426,   457,   459,    83,    86,    87,
+     220,   305,   415,   421,   435,   436,   437,   438,   439,   441,
+     442,   443,   444,   457,   459,   121,   122,   220,   349,   350,
+     351,   353,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   162,   163,   220,   457,   459,
+     534,   535,   536,   537,   539,   540,   542,   543,   544,   547,
+     549,   551,   552,   553,   555,   557,   559,    12,    13,   565,
+     566,   567,   569,     6,     3,     4,     8,     3,   226,     3,
+       8,   562,   263,   280,     4,     4,     4,   473,   475,   477,
+     278,   286,   288,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,   241,     4,     4,     4,     4,     4,   249,   252,
+     254,     4,   366,   402,   428,   394,   458,   460,   390,   326,
+     500,   462,   342,   356,     4,   335,   513,   521,   531,   256,
+     258,   571,     4,     3,     8,   269,   271,   274,     4,     3,
+       8,   378,   380,   382,   446,   376,   384,     4,   388,   386,
+     497,     3,     8,   456,     3,     8,   495,   483,   485,   489,
+     487,   493,   491,   479,     8,     3,     8,   418,   306,     4,
+     422,   420,   425,     4,     8,     3,   440,     4,     4,     8,
+       3,   352,   354,     3,     8,     4,   550,   538,     4,   541,
+       4,     4,   545,   548,     4,     4,   554,   556,   558,   560,
+       3,     8,   568,     4,     3,     8,   205,   205,   186,     4,
+     224,     4,     4,     4,   189,   189,   189,     4,     4,     4,
+       4,     4,     4,   187,   187,   187,   187,   187,   189,   188,
+     188,   187,     4,   187,   187,   189,   189,   189,     4,     4,
+       4,   189,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   187,     4,     4,     4,     4,     4,
+       4,     4,   230,     4,     4,     4,   189,   265,     4,     4,
+       4,     4,     4,     4,   187,     4,     4,     4,   374,     4,
+     454,     4,     4,     4,     4,     4,     4,     4,     4,   471,
+       4,     4,   187,     4,     4,     4,   189,   413,     4,   189,
+     189,   437,     4,     4,   350,   189,     4,     4,   187,     4,
+     187,   187,     4,     4,   189,   189,     4,     4,     4,     4,
+     535,     4,   187,   566,     4,     7,     7,     7,     7,   186,
+     186,   186,     7,     7,     5,   186,   158,   159,   160,   161,
+     189,   250,   186,   186,     5,     5,     5,     5,   207,   209,
+     186,   100,   101,   102,   103,   391,     5,     5,     5,     5,
+       7,     7,     7,     7,     7,   186,   186,     5,     5,   216,
+      17,    18,   272,    20,    21,   275,   186,   186,   186,     5,
+     186,   186,   216,   186,     7,   186,   216,   186,   186,   186,
+     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
+     186,   205,   186,   186,   186,    18,   156,   546,   157,   250,
+     186,   186,   186,     5,   205,   229,   565,   264,    24,   281,
+     282,   283,    34,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,   220,   293,   294,   295,   298,   300,   302,   304,   305,
+     307,   308,   309,   310,   311,   312,   313,   314,   316,   318,
+     320,   322,   323,   324,   293,     7,   289,   290,   291,     7,
+     367,   368,   369,     7,   405,   406,   407,     7,   429,   430,
+     431,     7,   395,   396,   397,   111,   112,   113,   114,   116,
+     327,   328,   329,   330,   331,   332,   333,     7,   501,   502,
+       7,   463,   464,   465,     7,   343,   344,   345,   124,   125,
+     126,   127,   128,   129,   357,   358,   359,   360,   361,   362,
+     363,   364,   132,   133,   134,   220,   336,   337,   338,   339,
+     340,   457,   459,   136,   137,   220,   457,   459,   514,   515,
+     516,   518,   139,   140,   141,   186,   457,   459,   522,   523,
+     524,   525,   527,   528,   534,     7,   572,   573,   217,     7,
+     447,   448,   449,   119,   478,   480,   498,   289,     8,     8,
+       8,   284,     3,     8,   296,   299,   301,   303,     4,     4,
+       4,     4,     4,   315,   317,   319,   321,     4,     4,     4,
+       4,     4,     4,     3,     8,     8,   292,     6,     3,   370,
+       6,     3,   408,     6,     3,   432,     6,     3,   398,     6,
+       3,     3,     6,   503,     3,     6,   466,     6,     3,   346,
+       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
+       4,     4,     4,     3,     8,   517,   519,     3,     8,     4,
+     526,     4,   529,     3,     8,     8,   574,     3,     6,   186,
+     218,   219,   450,     6,     3,   481,     8,     6,     4,   282,
+       4,     4,     4,     4,   187,   189,   187,   189,   187,     4,
+       4,     4,     4,   187,   187,   187,   187,   189,   187,   294,
+     293,   291,   373,   369,   411,   407,   435,   431,   220,   231,
+     232,   233,   234,   235,   236,   237,   238,   243,   244,   245,
+     246,   247,   248,   251,   253,   255,   257,   259,   305,   365,
+     383,   385,   387,   389,   399,   400,   427,   457,   459,   472,
+     474,   476,   496,   397,   328,   107,   108,   220,   305,   401,
+     427,   457,   459,   472,   474,   476,   504,   505,   506,   507,
+     508,   510,   502,   469,   465,   349,   345,   187,   187,   187,
+     187,   187,   187,   358,   189,   187,   187,   337,     4,     4,
+     515,   189,     4,   187,     4,   523,   165,   167,   168,   220,
+     305,   457,   459,   575,   576,   577,   578,   580,   573,     6,
+       3,   453,   449,     4,   186,    35,    36,    37,    38,   297,
+     186,   186,   186,   186,   186,   186,   186,     8,     8,     8,
+       8,     3,     8,   509,     4,     8,     3,     8,     8,   186,
+     186,   186,   205,   581,     4,   579,     3,     8,   186,     8,
+     216,   400,     4,   189,   506,     4,   187,     4,   576,   186,
+       5,   186,     7,   582,   583,   584,     3,     6,   166,   169,
+     170,   171,   172,   585,   586,   587,   589,   590,   591,   592,
+     583,   588,     4,     4,     4,   593,     3,     8,     4,   189,
+     187,   187,     4,   586,   186,   186
   };
 
   const short
   Dhcp4Parser::yyr1_[] =
   {
-       0,   195,   197,   196,   198,   196,   199,   196,   200,   196,
-     201,   196,   202,   196,   203,   196,   204,   196,   205,   196,
-     206,   196,   207,   196,   208,   196,   209,   196,   210,   196,
-     211,   211,   211,   211,   211,   211,   211,   212,   214,   213,
-     215,   216,   216,   217,   217,   219,   218,   220,   220,   221,
-     221,   223,   222,   224,   224,   225,   225,   226,   228,   227,
-     229,   229,   230,   230,   230,   230,   230,   230,   232,   231,
-     234,   233,   235,   235,   236,   236,   236,   236,   236,   236,
-     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
-     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
-     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
-     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
-     236,   236,   236,   236,   236,   236,   237,   238,   239,   240,
-     241,   242,   243,   244,   245,   247,   246,   248,   249,   250,
-     251,   252,   253,   255,   254,   256,   256,   256,   256,   256,
-     258,   257,   260,   259,   262,   261,   264,   263,   265,   266,
-     267,   269,   268,   270,   270,   271,   271,   271,   271,   271,
-     271,   271,   273,   272,   275,   274,   277,   276,   278,   278,
-     280,   279,   281,   281,   282,   284,   283,   286,   285,   287,
-     287,   288,   290,   289,   292,   291,   294,   293,   295,   295,
-     296,   296,   298,   297,   299,   299,   300,   300,   300,   300,
-     300,   300,   300,   300,   300,   300,   300,   300,   300,   300,
-     300,   300,   300,   300,   300,   300,   300,   302,   301,   303,
-     303,   303,   303,   305,   304,   307,   306,   309,   308,   310,
-     312,   311,   313,   314,   315,   316,   317,   318,   319,   321,
-     320,   323,   322,   325,   324,   327,   326,   328,   329,   330,
-     332,   331,   333,   333,   334,   334,   334,   334,   334,   335,
-     336,   337,   338,   339,   341,   340,   342,   342,   343,   343,
-     343,   343,   343,   343,   344,   345,   346,   348,   347,   349,
-     349,   350,   350,   352,   351,   354,   353,   355,   355,   355,
-     356,   356,   358,   357,   360,   359,   362,   361,   363,   363,
-     364,   364,   364,   364,   364,   364,   365,   366,   367,   368,
-     369,   370,   372,   371,   373,   373,   374,   374,   376,   375,
-     378,   377,   379,   379,   380,   380,   380,   380,   380,   380,
-     380,   380,   380,   380,   380,   380,   380,   380,   380,   380,
-     380,   380,   380,   380,   380,   380,   380,   380,   380,   380,
-     380,   380,   380,   380,   380,   380,   380,   380,   380,   380,
-     380,   380,   382,   381,   384,   383,   386,   385,   388,   387,
-     390,   389,   392,   391,   394,   393,   396,   395,   397,   397,
-     397,   397,   398,   400,   399,   401,   401,   402,   402,   404,
-     403,   405,   405,   406,   406,   406,   406,   406,   406,   406,
-     406,   406,   406,   406,   406,   406,   406,   406,   406,   406,
-     406,   406,   406,   406,   406,   406,   406,   406,   406,   406,
-     406,   406,   406,   406,   406,   406,   408,   407,   410,   409,
-     411,   411,   412,   412,   414,   413,   416,   415,   417,   417,
-     418,   418,   419,   419,   419,   419,   419,   419,   419,   419,
-     419,   419,   420,   421,   422,   424,   423,   426,   425,   428,
-     427,   429,   431,   430,   432,   434,   433,   435,   435,   436,
-     436,   438,   437,   440,   439,   441,   441,   442,   442,   443,
-     443,   443,   443,   443,   443,   443,   443,   443,   444,   446,
-     445,   447,   448,   449,   450,   452,   451,   453,   453,   454,
-     454,   456,   455,   458,   457,   459,   459,   460,   460,   460,
-     460,   460,   460,   460,   462,   461,   464,   463,   466,   465,
-     468,   467,   469,   469,   470,   470,   472,   471,   474,   473,
-     475,   475,   476,   476,   477,   477,   477,   477,   477,   477,
-     477,   477,   477,   477,   477,   477,   477,   477,   477,   479,
-     478,   481,   480,   483,   482,   485,   484,   487,   486,   489,
-     488,   491,   490,   493,   492,   495,   494,   497,   496,   499,
-     498,   501,   500,   503,   502,   504,   504,   506,   505,   507,
-     507,   509,   508,   510,   510,   511,   511,   512,   512,   512,
-     512,   512,   512,   512,   512,   512,   512,   512,   513,   515,
-     514,   516,   517,   519,   518,   520,   520,   521,   521,   521,
-     521,   521,   523,   522,   525,   524,   527,   526,   528,   528,
-     529,   529,   529,   529,   529,   529,   530,   532,   531,   533,
-     535,   534,   537,   536,   539,   538,   540,   540,   541,   541,
-     541,   541,   541,   541,   541,   541,   541,   541,   541,   541,
-     541,   541,   541,   541,   541,   541,   542,   544,   543,   545,
-     547,   546,   548,   549,   551,   550,   552,   552,   554,   553,
-     556,   555,   557,   558,   560,   559,   562,   561,   564,   563,
-     566,   565,   568,   567,   570,   569,   572,   571,   574,   573,
-     576,   575,   577,   577,   578,   578,   580,   579,   581,   583,
-     582,   585,   584,   586,   586,   587,   589,   588,   590,   590,
-     592,   591,   593,   593,   594,   594,   594,   594,   594,   594,
-     594,   595,   597,   596,   599,   598,   600,   600,   602,   601,
-     603,   603,   604,   604,   604,   604,   604,   606,   605,   607,
-     608,   609,   611,   610
+       0,   190,   192,   191,   193,   191,   194,   191,   195,   191,
+     196,   191,   197,   191,   198,   191,   199,   191,   200,   191,
+     201,   191,   202,   191,   203,   191,   204,   191,   205,   205,
+     205,   205,   205,   205,   205,   206,   208,   207,   209,   210,
+     210,   211,   211,   213,   212,   214,   214,   215,   215,   217,
+     216,   218,   218,   219,   219,   220,   222,   221,   223,   223,
+     224,   226,   225,   228,   227,   229,   229,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   231,
+     232,   233,   234,   235,   236,   237,   238,   239,   241,   240,
+     242,   243,   244,   245,   246,   247,   249,   248,   250,   250,
+     250,   250,   250,   252,   251,   254,   253,   256,   255,   258,
+     257,   259,   260,   261,   263,   262,   264,   264,   265,   265,
+     265,   265,   265,   265,   265,   267,   266,   269,   268,   271,
+     270,   272,   272,   274,   273,   275,   275,   276,   278,   277,
+     280,   279,   281,   281,   282,   284,   283,   286,   285,   288,
+     287,   289,   289,   290,   290,   292,   291,   293,   293,   294,
+     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
+     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
+     296,   295,   297,   297,   297,   297,   299,   298,   301,   300,
+     303,   302,   304,   306,   305,   307,   308,   309,   310,   311,
+     312,   313,   315,   314,   317,   316,   319,   318,   321,   320,
+     322,   323,   324,   326,   325,   327,   327,   328,   328,   328,
+     328,   328,   329,   330,   331,   332,   333,   335,   334,   336,
+     336,   337,   337,   337,   337,   337,   337,   338,   339,   340,
+     342,   341,   343,   343,   344,   344,   346,   345,   348,   347,
+     349,   349,   349,   350,   350,   352,   351,   354,   353,   356,
+     355,   357,   357,   358,   358,   358,   358,   358,   358,   359,
+     360,   361,   362,   363,   364,   366,   365,   367,   367,   368,
+     368,   370,   369,   372,   371,   373,   373,   374,   374,   374,
+     374,   374,   374,   374,   374,   374,   374,   374,   374,   374,
+     374,   374,   374,   374,   374,   374,   374,   374,   374,   374,
+     374,   374,   374,   374,   374,   374,   374,   374,   374,   374,
+     374,   374,   374,   374,   374,   376,   375,   378,   377,   380,
+     379,   382,   381,   384,   383,   386,   385,   388,   387,   390,
+     389,   391,   391,   391,   391,   392,   394,   393,   395,   395,
+     396,   396,   398,   397,   399,   399,   400,   400,   400,   400,
+     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
+     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
+     400,   400,   400,   400,   400,   400,   400,   400,   400,   402,
+     401,   404,   403,   405,   405,   406,   406,   408,   407,   410,
+     409,   411,   411,   412,   412,   413,   413,   413,   413,   413,
+     413,   413,   413,   413,   413,   414,   415,   416,   418,   417,
+     420,   419,   422,   421,   423,   425,   424,   426,   428,   427,
+     429,   429,   430,   430,   432,   431,   434,   433,   435,   435,
+     436,   436,   437,   437,   437,   437,   437,   437,   437,   437,
+     437,   438,   440,   439,   441,   442,   443,   444,   446,   445,
+     447,   447,   448,   448,   450,   449,   452,   451,   453,   453,
+     454,   454,   454,   454,   454,   454,   454,   456,   455,   458,
+     457,   460,   459,   462,   461,   463,   463,   464,   464,   466,
+     465,   468,   467,   469,   469,   470,   470,   471,   471,   471,
+     471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
+     471,   471,   473,   472,   475,   474,   477,   476,   479,   478,
+     481,   480,   483,   482,   485,   484,   487,   486,   489,   488,
+     491,   490,   493,   492,   495,   494,   497,   496,   498,   498,
+     500,   499,   501,   501,   503,   502,   504,   504,   505,   505,
+     506,   506,   506,   506,   506,   506,   506,   506,   506,   506,
+     506,   507,   509,   508,   510,   511,   513,   512,   514,   514,
+     515,   515,   515,   515,   515,   517,   516,   519,   518,   521,
+     520,   522,   522,   523,   523,   523,   523,   523,   523,   524,
+     526,   525,   527,   529,   528,   531,   530,   533,   532,   534,
+     534,   535,   535,   535,   535,   535,   535,   535,   535,   535,
+     535,   535,   535,   535,   535,   535,   535,   535,   535,   536,
+     538,   537,   539,   541,   540,   542,   543,   545,   544,   546,
+     546,   548,   547,   550,   549,   551,   552,   554,   553,   556,
+     555,   558,   557,   560,   559,   562,   561,   564,   563,   565,
+     565,   566,   566,   568,   567,   569,   571,   570,   572,   572,
+     574,   573,   575,   575,   576,   576,   576,   576,   576,   576,
+     576,   577,   579,   578,   581,   580,   582,   582,   584,   583,
+     585,   585,   586,   586,   586,   586,   586,   588,   587,   589,
+     590,   591,   593,   592
   };
 
   const signed char
@@ -5210,76 +5066,74 @@ namespace isc { namespace dhcp {
   {
        0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       1,     0,     1,     3,     5,     0,     4,     0,     1,     1,
-       3,     0,     4,     0,     1,     1,     3,     2,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     0,     6,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
+       0,     3,     0,     3,     0,     3,     0,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     1,     0,
+       1,     3,     5,     0,     4,     0,     1,     1,     3,     0,
+       4,     0,     1,     1,     3,     2,     0,     4,     1,     3,
+       1,     0,     6,     0,     4,     1,     3,     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,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     0,     4,     3,     3,     3,
-       3,     3,     3,     0,     4,     1,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     4,     0,     4,     3,     3,
-       3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     0,     4,     0,     4,     0,     4,     1,     1,
-       0,     4,     1,     1,     3,     0,     6,     0,     6,     1,
-       3,     1,     0,     4,     0,     6,     0,     6,     0,     1,
-       1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     0,     4,
+       3,     3,     3,     3,     3,     3,     0,     4,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       4,     3,     3,     3,     0,     6,     1,     3,     1,     1,
+       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
+       4,     1,     1,     0,     4,     1,     1,     3,     0,     6,
+       0,     6,     1,     3,     1,     0,     4,     0,     6,     0,
+       6,     0,     1,     1,     3,     0,     4,     1,     3,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
-       1,     1,     1,     0,     4,     0,     4,     0,     4,     3,
-       0,     4,     3,     3,     3,     3,     3,     3,     3,     0,
-       4,     0,     4,     0,     4,     0,     4,     3,     3,     3,
-       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     6,     1,     3,     1,     1,
-       1,     1,     1,     1,     3,     3,     3,     0,     6,     0,
-       1,     1,     3,     0,     4,     0,     4,     1,     3,     1,
-       1,     1,     0,     4,     0,     4,     0,     6,     1,     3,
-       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
-       3,     3,     0,     6,     0,     1,     1,     3,     0,     4,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     4,     1,     1,     1,     1,     0,     4,     0,     4,
+       0,     4,     3,     0,     4,     3,     3,     3,     3,     3,
+       3,     3,     0,     4,     0,     4,     0,     4,     0,     4,
+       3,     3,     3,     0,     6,     1,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     6,     1,
+       3,     1,     1,     1,     1,     1,     1,     3,     3,     3,
+       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
+       1,     3,     1,     1,     1,     0,     4,     0,     4,     0,
+       6,     1,     3,     1,     1,     1,     1,     1,     1,     3,
+       3,     3,     3,     3,     3,     0,     6,     0,     1,     1,
+       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     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,     1,     1,
-       1,     1,     3,     0,     6,     0,     1,     1,     3,     0,
-       4,     1,     3,     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,     1,     1,     1,     1,     3,     0,     6,     0,     1,
+       1,     3,     0,     4,     1,     3,     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,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       6,     0,     4,     0,     1,     1,     3,     0,     4,     0,
+       4,     0,     1,     1,     3,     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,     0,     4,     0,     4,     0,     1,
        1,     3,     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,     0,     4,     0,     4,     0,     1,     1,     3,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     1,     1,     3,     3,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       0,     1,     1,     3,     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,     1,     0,     6,     1,
-       3,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     3,     3,     0,     6,     1,     3,     1,     1,     1,
-       1,     1,     0,     4,     0,     4,     0,     6,     1,     3,
-       1,     1,     1,     1,     1,     1,     3,     0,     4,     3,
-       0,     4,     0,     6,     0,     4,     1,     3,     1,     1,
+       1,     1,     0,     4,     1,     1,     3,     3,     0,     6,
+       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
+       1,     1,     1,     1,     1,     1,     1,     0,     4,     0,
+       4,     0,     4,     0,     6,     0,     1,     1,     3,     0,
+       4,     0,     4,     0,     1,     1,     3,     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,     1,
+       0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
        1,     1,     1,     1,     1,     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,     4,     3,     3,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     6,
-       0,     4,     1,     3,     1,     1,     0,     6,     3,     0,
-       6,     0,     4,     1,     3,     1,     0,     6,     1,     3,
+       1,     1,     0,     4,     3,     3,     0,     6,     1,     3,
+       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
+       6,     1,     3,     1,     1,     1,     1,     1,     1,     3,
+       0,     4,     3,     0,     4,     0,     6,     0,     4,     1,
+       3,     1,     1,     1,     1,     1,     1,     1,     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,     4,     3,     3,     0,     4,     0,
+       4,     0,     4,     0,     4,     0,     6,     0,     4,     1,
+       3,     1,     1,     0,     6,     3,     0,     6,     1,     3,
        0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
        1,     3,     0,     4,     0,     6,     1,     3,     0,     4,
        1,     3,     1,     1,     1,     1,     1,     0,     4,     3,
@@ -5344,115 +5198,112 @@ namespace isc { namespace dhcp {
   "\"override-no-update\"", "\"override-client-update\"",
   "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"",
   "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"",
-  "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"",
-  "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
-  "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"",
-  "\"Dhcp6\"", "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON",
+  "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"loggers\"",
+  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
+  "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON",
   "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4",
   "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
-  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING",
+  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS",
   "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"",
   "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2",
   "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12",
-  "$@13", "$@14", "value", "sub_json", "map2", "$@15", "map_value",
-  "map_content", "not_empty_map", "list_generic", "$@16", "list_content",
-  "not_empty_list", "list_strings", "$@17", "list_strings_content",
-  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@18",
-  "global_objects", "global_object", "dhcp4_object", "$@19", "sub_dhcp4",
-  "$@20", "global_params", "global_param", "valid_lifetime",
+  "$@13", "value", "sub_json", "map2", "$@14", "map_value", "map_content",
+  "not_empty_map", "list_generic", "$@15", "list_content",
+  "not_empty_list", "list_strings", "$@16", "list_strings_content",
+  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@17",
+  "global_objects", "global_object", "dhcp4_object", "$@18", "sub_dhcp4",
+  "$@19", "global_params", "global_param", "valid_lifetime",
   "min_valid_lifetime", "max_valid_lifetime", "renew_timer",
   "rebind_timer", "calculate_tee_times", "t1_percent", "t2_percent",
-  "decline_probation_period", "server_tag", "$@21", "echo_client_id",
+  "decline_probation_period", "server_tag", "$@20", "echo_client_id",
   "match_client_id", "authoritative", "ddns_send_updates",
   "ddns_override_no_update", "ddns_override_client_update",
-  "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value",
-  "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24",
-  "hostname_char_set", "$@25", "hostname_char_replacement", "$@26",
+  "ddns_replace_client_name", "$@21", "ddns_replace_client_name_value",
+  "ddns_generated_prefix", "$@22", "ddns_qualifying_suffix", "$@23",
+  "hostname_char_set", "$@24", "hostname_char_replacement", "$@25",
   "store_extended_info", "statistic_default_sample_count",
-  "statistic_default_sample_age", "interfaces_config", "$@27",
+  "statistic_default_sample_age", "interfaces_config", "$@26",
   "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
-  "$@28", "interfaces_list", "$@29", "dhcp_socket_type", "$@30",
-  "socket_type", "outbound_interface", "$@31", "outbound_interface_value",
-  "re_detect", "lease_database", "$@32", "sanity_checks", "$@33",
-  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@34",
-  "hosts_database", "$@35", "hosts_databases", "$@36", "database_list",
-  "not_empty_database_list", "database", "$@37", "database_map_params",
-  "database_map_param", "database_type", "$@38", "db_type", "user", "$@39",
-  "password", "$@40", "host", "$@41", "port", "name", "$@42", "persist",
+  "$@27", "interfaces_list", "$@28", "dhcp_socket_type", "$@29",
+  "socket_type", "outbound_interface", "$@30", "outbound_interface_value",
+  "re_detect", "lease_database", "$@31", "sanity_checks", "$@32",
+  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@33",
+  "hosts_database", "$@34", "hosts_databases", "$@35", "database_list",
+  "not_empty_database_list", "database", "$@36", "database_map_params",
+  "database_map_param", "database_type", "$@37", "db_type", "user", "$@38",
+  "password", "$@39", "host", "$@40", "port", "name", "$@41", "persist",
   "lfc_interval", "readonly", "connect_timeout", "request_timeout",
-  "tcp_keepalive", "tcp_nodelay", "contact_points", "$@43", "keyspace",
-  "$@44", "consistency", "$@45", "serial_consistency", "$@46",
+  "tcp_keepalive", "tcp_nodelay", "contact_points", "$@42", "keyspace",
+  "$@43", "consistency", "$@44", "serial_consistency", "$@45",
   "max_reconnect_tries", "reconnect_wait_time", "max_row_errors",
-  "host_reservation_identifiers", "$@47",
+  "host_reservation_identifiers", "$@46",
   "host_reservation_identifiers_list", "host_reservation_identifier",
   "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id",
-  "dhcp_multi_threading", "$@48", "multi_threading_params",
+  "dhcp_multi_threading", "$@47", "multi_threading_params",
   "multi_threading_param", "enable_multi_threading", "thread_pool_size",
-  "packet_queue_size", "hooks_libraries", "$@49", "hooks_libraries_list",
-  "not_empty_hooks_libraries_list", "hooks_library", "$@50",
-  "sub_hooks_library", "$@51", "hooks_params", "hooks_param", "library",
-  "$@52", "parameters", "$@53", "expired_leases_processing", "$@54",
+  "packet_queue_size", "hooks_libraries", "$@48", "hooks_libraries_list",
+  "not_empty_hooks_libraries_list", "hooks_library", "$@49",
+  "sub_hooks_library", "$@50", "hooks_params", "hooks_param", "library",
+  "$@51", "parameters", "$@52", "expired_leases_processing", "$@53",
   "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", "$@55",
-  "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@56",
-  "sub_subnet4", "$@57", "subnet4_params", "subnet4_param", "subnet",
-  "$@58", "subnet_4o6_interface", "$@59", "subnet_4o6_interface_id",
-  "$@60", "subnet_4o6_subnet", "$@61", "interface", "$@62", "client_class",
-  "$@63", "require_client_classes", "$@64", "reservation_mode", "$@65",
-  "hr_mode", "id", "shared_networks", "$@66", "shared_networks_content",
-  "shared_networks_list", "shared_network", "$@67",
+  "unwarned_reclaim_cycles", "subnet4_list", "$@54",
+  "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@55",
+  "sub_subnet4", "$@56", "subnet4_params", "subnet4_param", "subnet",
+  "$@57", "subnet_4o6_interface", "$@58", "subnet_4o6_interface_id",
+  "$@59", "subnet_4o6_subnet", "$@60", "interface", "$@61", "client_class",
+  "$@62", "require_client_classes", "$@63", "reservation_mode", "$@64",
+  "hr_mode", "id", "shared_networks", "$@65", "shared_networks_content",
+  "shared_networks_list", "shared_network", "$@66",
   "shared_network_params", "shared_network_param", "option_def_list",
-  "$@68", "sub_option_def_list", "$@69", "option_def_list_content",
-  "not_empty_option_def_list", "option_def_entry", "$@70",
-  "sub_option_def", "$@71", "option_def_params",
+  "$@67", "sub_option_def_list", "$@68", "option_def_list_content",
+  "not_empty_option_def_list", "option_def_entry", "$@69",
+  "sub_option_def", "$@70", "option_def_params",
   "not_empty_option_def_params", "option_def_param", "option_def_name",
-  "code", "option_def_code", "option_def_type", "$@72",
-  "option_def_record_types", "$@73", "space", "$@74", "option_def_space",
-  "option_def_encapsulate", "$@75", "option_def_array", "option_data_list",
-  "$@76", "option_data_list_content", "not_empty_option_data_list",
-  "option_data_entry", "$@77", "sub_option_data", "$@78",
+  "code", "option_def_code", "option_def_type", "$@71",
+  "option_def_record_types", "$@72", "space", "$@73", "option_def_space",
+  "option_def_encapsulate", "$@74", "option_def_array", "option_data_list",
+  "$@75", "option_data_list_content", "not_empty_option_data_list",
+  "option_data_entry", "$@76", "sub_option_data", "$@77",
   "option_data_params", "not_empty_option_data_params",
-  "option_data_param", "option_data_name", "option_data_data", "$@79",
+  "option_data_param", "option_data_name", "option_data_data", "$@78",
   "option_data_code", "option_data_space", "option_data_csv_format",
-  "option_data_always_send", "pools_list", "$@80", "pools_list_content",
-  "not_empty_pools_list", "pool_list_entry", "$@81", "sub_pool4", "$@82",
-  "pool_params", "pool_param", "pool_entry", "$@83", "user_context",
-  "$@84", "comment", "$@85", "reservations", "$@86", "reservations_list",
-  "not_empty_reservations_list", "reservation", "$@87", "sub_reservation",
-  "$@88", "reservation_params", "not_empty_reservation_params",
-  "reservation_param", "next_server", "$@89", "server_hostname", "$@90",
-  "boot_file_name", "$@91", "ip_address", "$@92", "ip_addresses", "$@93",
-  "duid", "$@94", "hw_address", "$@95", "client_id_value", "$@96",
-  "circuit_id_value", "$@97", "flex_id_value", "$@98", "hostname", "$@99",
-  "reservation_client_classes", "$@100", "relay", "$@101", "relay_map",
-  "client_classes", "$@102", "client_classes_list", "client_class_entry",
-  "$@103", "client_class_params", "not_empty_client_class_params",
-  "client_class_param", "client_class_name", "client_class_test", "$@104",
-  "only_if_required", "dhcp4o6_port", "control_socket", "$@105",
+  "option_data_always_send", "pools_list", "$@79", "pools_list_content",
+  "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool4", "$@81",
+  "pool_params", "pool_param", "pool_entry", "$@82", "user_context",
+  "$@83", "comment", "$@84", "reservations", "$@85", "reservations_list",
+  "not_empty_reservations_list", "reservation", "$@86", "sub_reservation",
+  "$@87", "reservation_params", "not_empty_reservation_params",
+  "reservation_param", "next_server", "$@88", "server_hostname", "$@89",
+  "boot_file_name", "$@90", "ip_address", "$@91", "ip_addresses", "$@92",
+  "duid", "$@93", "hw_address", "$@94", "client_id_value", "$@95",
+  "circuit_id_value", "$@96", "flex_id_value", "$@97", "hostname", "$@98",
+  "reservation_client_classes", "$@99", "relay", "$@100", "relay_map",
+  "client_classes", "$@101", "client_classes_list", "client_class_entry",
+  "$@102", "client_class_params", "not_empty_client_class_params",
+  "client_class_param", "client_class_name", "client_class_test", "$@103",
+  "only_if_required", "dhcp4o6_port", "control_socket", "$@104",
   "control_socket_params", "control_socket_param", "control_socket_type",
-  "$@106", "control_socket_name", "$@107", "dhcp_queue_control", "$@108",
+  "$@105", "control_socket_name", "$@106", "dhcp_queue_control", "$@107",
   "queue_control_params", "queue_control_param", "enable_queue",
-  "queue_type", "$@109", "capacity", "arbitrary_map_entry", "$@110",
-  "dhcp_ddns", "$@111", "sub_dhcp_ddns", "$@112", "dhcp_ddns_params",
-  "dhcp_ddns_param", "enable_updates", "server_ip", "$@113", "server_port",
-  "sender_ip", "$@114", "sender_port", "max_queue_size", "ncr_protocol",
-  "$@115", "ncr_protocol_value", "ncr_format", "$@116",
-  "dep_qualifying_suffix", "$@117", "dep_override_no_update",
-  "dep_override_client_update", "dep_replace_client_name", "$@118",
-  "dep_generated_prefix", "$@119", "dep_hostname_char_set", "$@120",
-  "dep_hostname_char_replacement", "$@121", "dhcp6_json_object", "$@122",
-  "dhcpddns_json_object", "$@123", "control_agent_json_object", "$@124",
-  "config_control", "$@125", "sub_config_control", "$@126",
-  "config_control_params", "config_control_param", "config_databases",
-  "$@127", "config_fetch_wait_time", "logging_object", "$@128",
-  "sub_logging", "$@129", "logging_params", "logging_param", "loggers",
-  "$@130", "loggers_entries", "logger_entry", "$@131", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@132", "output_options_list",
-  "$@133", "output_options_list_content", "output_entry", "$@134",
-  "output_params_list", "output_params", "output", "$@135", "flush",
-  "maxsize", "maxver", "pattern", "$@136", YY_NULLPTR
+  "queue_type", "$@108", "capacity", "arbitrary_map_entry", "$@109",
+  "dhcp_ddns", "$@110", "sub_dhcp_ddns", "$@111", "dhcp_ddns_params",
+  "dhcp_ddns_param", "enable_updates", "server_ip", "$@112", "server_port",
+  "sender_ip", "$@113", "sender_port", "max_queue_size", "ncr_protocol",
+  "$@114", "ncr_protocol_value", "ncr_format", "$@115",
+  "dep_qualifying_suffix", "$@116", "dep_override_no_update",
+  "dep_override_client_update", "dep_replace_client_name", "$@117",
+  "dep_generated_prefix", "$@118", "dep_hostname_char_set", "$@119",
+  "dep_hostname_char_replacement", "$@120", "config_control", "$@121",
+  "sub_config_control", "$@122", "config_control_params",
+  "config_control_param", "config_databases", "$@123",
+  "config_fetch_wait_time", "loggers", "$@124", "loggers_entries",
+  "logger_entry", "$@125", "logger_params", "logger_param", "debuglevel",
+  "severity", "$@126", "output_options_list", "$@127",
+  "output_options_list_content", "output_entry", "$@128",
+  "output_params_list", "output_params", "output", "$@129", "flush",
+  "maxsize", "maxver", "pattern", "$@130", YY_NULLPTR
   };
 #endif
 
@@ -5461,82 +5312,80 @@ namespace isc { namespace dhcp {
   const short
   Dhcp4Parser::yyrline_[] =
   {
-       0,   283,   283,   283,   284,   284,   285,   285,   286,   286,
-     287,   287,   288,   288,   289,   289,   290,   290,   291,   291,
-     292,   292,   293,   293,   294,   294,   295,   295,   296,   296,
-     304,   305,   306,   307,   308,   309,   310,   313,   318,   318,
-     329,   332,   333,   336,   340,   347,   347,   354,   355,   358,
-     362,   369,   369,   376,   377,   380,   384,   395,   405,   405,
-     421,   422,   426,   427,   428,   429,   430,   431,   434,   434,
-     449,   449,   458,   459,   464,   465,   466,   467,   468,   469,
-     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
-     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
-     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
-     500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
-     510,   511,   512,   513,   514,   515,   518,   523,   528,   533,
-     538,   543,   548,   553,   558,   563,   563,   571,   576,   581,
-     586,   591,   596,   601,   601,   609,   612,   615,   618,   621,
-     627,   627,   635,   635,   643,   643,   651,   651,   659,   664,
-     669,   674,   674,   685,   686,   689,   690,   691,   692,   693,
-     694,   695,   698,   698,   707,   707,   717,   717,   724,   725,
-     728,   728,   735,   737,   741,   747,   747,   759,   759,   769,
-     770,   772,   774,   774,   792,   792,   804,   804,   814,   815,
-     818,   819,   822,   822,   832,   833,   836,   837,   838,   839,
-     840,   841,   842,   843,   844,   845,   846,   847,   848,   849,
-     850,   851,   852,   853,   854,   855,   856,   859,   859,   866,
-     867,   868,   869,   872,   872,   880,   880,   888,   888,   896,
-     901,   901,   909,   914,   919,   924,   929,   934,   939,   944,
-     944,   952,   952,   960,   960,   968,   968,   976,   981,   986,
-     992,   992,  1002,  1003,  1006,  1007,  1008,  1009,  1010,  1013,
-    1018,  1023,  1028,  1033,  1040,  1040,  1052,  1053,  1056,  1057,
-    1058,  1059,  1060,  1061,  1064,  1069,  1074,  1079,  1079,  1089,
-    1090,  1093,  1094,  1097,  1097,  1107,  1107,  1117,  1118,  1119,
-    1122,  1123,  1126,  1126,  1134,  1134,  1142,  1142,  1153,  1154,
-    1157,  1158,  1159,  1160,  1161,  1162,  1165,  1170,  1175,  1180,
-    1185,  1190,  1198,  1198,  1211,  1212,  1215,  1216,  1223,  1223,
-    1249,  1249,  1260,  1261,  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,  1302,  1305,  1305,  1313,  1313,  1321,  1321,  1329,  1329,
-    1337,  1337,  1345,  1345,  1353,  1353,  1363,  1363,  1370,  1371,
-    1372,  1373,  1376,  1383,  1383,  1394,  1395,  1399,  1400,  1403,
-    1403,  1411,  1412,  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,  1454,  1454,  1467,  1467,
-    1476,  1477,  1480,  1481,  1486,  1486,  1501,  1501,  1515,  1516,
-    1519,  1520,  1523,  1524,  1525,  1526,  1527,  1528,  1529,  1530,
-    1531,  1532,  1535,  1537,  1542,  1544,  1544,  1552,  1552,  1560,
-    1560,  1568,  1570,  1570,  1578,  1587,  1587,  1599,  1600,  1605,
-    1606,  1611,  1611,  1623,  1623,  1635,  1636,  1641,  1642,  1647,
-    1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,  1658,  1660,
-    1660,  1668,  1670,  1672,  1677,  1685,  1685,  1697,  1698,  1701,
-    1702,  1705,  1705,  1715,  1715,  1725,  1726,  1729,  1730,  1731,
-    1732,  1733,  1734,  1735,  1738,  1738,  1746,  1746,  1771,  1771,
-    1801,  1801,  1811,  1812,  1815,  1816,  1819,  1819,  1828,  1828,
-    1837,  1838,  1841,  1842,  1846,  1847,  1848,  1849,  1850,  1851,
-    1852,  1853,  1854,  1855,  1856,  1857,  1858,  1859,  1860,  1863,
-    1863,  1871,  1871,  1879,  1879,  1887,  1887,  1895,  1895,  1905,
-    1905,  1913,  1913,  1921,  1921,  1929,  1929,  1937,  1937,  1945,
-    1945,  1953,  1953,  1966,  1966,  1976,  1977,  1983,  1983,  1993,
-    1994,  1997,  1997,  2007,  2008,  2011,  2012,  2015,  2016,  2017,
-    2018,  2019,  2020,  2021,  2022,  2023,  2024,  2025,  2028,  2030,
-    2030,  2038,  2045,  2052,  2052,  2062,  2063,  2066,  2067,  2068,
-    2069,  2070,  2073,  2073,  2081,  2081,  2092,  2092,  2104,  2105,
-    2108,  2109,  2110,  2111,  2112,  2113,  2116,  2121,  2121,  2129,
-    2134,  2134,  2143,  2143,  2155,  2155,  2165,  2166,  2169,  2170,
-    2171,  2172,  2173,  2174,  2175,  2176,  2177,  2178,  2179,  2180,
-    2181,  2182,  2183,  2184,  2185,  2186,  2189,  2194,  2194,  2202,
-    2207,  2207,  2215,  2220,  2225,  2225,  2233,  2234,  2237,  2237,
-    2246,  2246,  2255,  2261,  2267,  2267,  2275,  2275,  2284,  2284,
-    2293,  2293,  2304,  2304,  2311,  2311,  2318,  2318,  2327,  2327,
-    2338,  2338,  2348,  2349,  2353,  2354,  2357,  2357,  2367,  2377,
-    2377,  2387,  2387,  2398,  2399,  2403,  2407,  2407,  2419,  2420,
-    2424,  2424,  2432,  2433,  2436,  2437,  2438,  2439,  2440,  2441,
-    2442,  2445,  2450,  2450,  2458,  2458,  2468,  2469,  2472,  2472,
-    2480,  2481,  2484,  2485,  2486,  2487,  2488,  2491,  2491,  2499,
-    2504,  2509,  2514,  2514
+       0,   277,   277,   277,   278,   278,   279,   279,   280,   280,
+     281,   281,   282,   282,   283,   283,   284,   284,   285,   285,
+     286,   286,   287,   287,   288,   288,   289,   289,   297,   298,
+     299,   300,   301,   302,   303,   306,   311,   311,   322,   325,
+     326,   329,   333,   340,   340,   347,   348,   351,   355,   362,
+     362,   369,   370,   373,   377,   388,   397,   397,   412,   413,
+     417,   420,   420,   437,   437,   446,   447,   452,   453,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
+     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
+     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
+     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
+     495,   496,   497,   498,   499,   500,   501,   502,   503,   506,
+     511,   516,   521,   526,   531,   536,   541,   546,   551,   551,
+     559,   564,   569,   574,   579,   584,   589,   589,   597,   600,
+     603,   606,   609,   615,   615,   623,   623,   631,   631,   639,
+     639,   647,   652,   657,   662,   662,   673,   674,   677,   678,
+     679,   680,   681,   682,   683,   686,   686,   695,   695,   705,
+     705,   712,   713,   716,   716,   723,   725,   729,   735,   735,
+     747,   747,   757,   758,   760,   762,   762,   780,   780,   792,
+     792,   802,   803,   806,   807,   810,   810,   820,   821,   824,
+     825,   826,   827,   828,   829,   830,   831,   832,   833,   834,
+     835,   836,   837,   838,   839,   840,   841,   842,   843,   844,
+     847,   847,   854,   855,   856,   857,   860,   860,   868,   868,
+     876,   876,   884,   889,   889,   897,   902,   907,   912,   917,
+     922,   927,   932,   932,   940,   940,   948,   948,   956,   956,
+     964,   969,   974,   980,   980,   990,   991,   994,   995,   996,
+     997,   998,  1001,  1006,  1011,  1016,  1021,  1028,  1028,  1040,
+    1041,  1044,  1045,  1046,  1047,  1048,  1049,  1052,  1057,  1062,
+    1067,  1067,  1077,  1078,  1081,  1082,  1085,  1085,  1095,  1095,
+    1105,  1106,  1107,  1110,  1111,  1114,  1114,  1122,  1122,  1130,
+    1130,  1141,  1142,  1145,  1146,  1147,  1148,  1149,  1150,  1153,
+    1158,  1163,  1168,  1173,  1178,  1186,  1186,  1199,  1200,  1203,
+    1204,  1211,  1211,  1237,  1237,  1248,  1249,  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,  1293,  1293,  1301,  1301,  1309,
+    1309,  1317,  1317,  1325,  1325,  1333,  1333,  1341,  1341,  1351,
+    1351,  1358,  1359,  1360,  1361,  1364,  1371,  1371,  1382,  1383,
+    1387,  1388,  1391,  1391,  1399,  1400,  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,  1442,
+    1442,  1455,  1455,  1464,  1465,  1468,  1469,  1474,  1474,  1489,
+    1489,  1503,  1504,  1507,  1508,  1511,  1512,  1513,  1514,  1515,
+    1516,  1517,  1518,  1519,  1520,  1523,  1525,  1530,  1532,  1532,
+    1540,  1540,  1548,  1548,  1556,  1558,  1558,  1566,  1575,  1575,
+    1587,  1588,  1593,  1594,  1599,  1599,  1611,  1611,  1623,  1624,
+    1629,  1630,  1635,  1636,  1637,  1638,  1639,  1640,  1641,  1642,
+    1643,  1646,  1648,  1648,  1656,  1658,  1660,  1665,  1673,  1673,
+    1685,  1686,  1689,  1690,  1693,  1693,  1703,  1703,  1713,  1714,
+    1717,  1718,  1719,  1720,  1721,  1722,  1723,  1726,  1726,  1734,
+    1734,  1759,  1759,  1789,  1789,  1799,  1800,  1803,  1804,  1807,
+    1807,  1816,  1816,  1825,  1826,  1829,  1830,  1834,  1835,  1836,
+    1837,  1838,  1839,  1840,  1841,  1842,  1843,  1844,  1845,  1846,
+    1847,  1848,  1851,  1851,  1859,  1859,  1867,  1867,  1875,  1875,
+    1883,  1883,  1893,  1893,  1901,  1901,  1909,  1909,  1917,  1917,
+    1925,  1925,  1933,  1933,  1941,  1941,  1954,  1954,  1964,  1965,
+    1971,  1971,  1981,  1982,  1985,  1985,  1995,  1996,  1999,  2000,
+    2003,  2004,  2005,  2006,  2007,  2008,  2009,  2010,  2011,  2012,
+    2013,  2016,  2018,  2018,  2026,  2033,  2040,  2040,  2050,  2051,
+    2054,  2055,  2056,  2057,  2058,  2061,  2061,  2069,  2069,  2080,
+    2080,  2092,  2093,  2096,  2097,  2098,  2099,  2100,  2101,  2104,
+    2109,  2109,  2117,  2122,  2122,  2131,  2131,  2143,  2143,  2153,
+    2154,  2157,  2158,  2159,  2160,  2161,  2162,  2163,  2164,  2165,
+    2166,  2167,  2168,  2169,  2170,  2171,  2172,  2173,  2174,  2177,
+    2182,  2182,  2190,  2195,  2195,  2203,  2208,  2213,  2213,  2221,
+    2222,  2225,  2225,  2234,  2234,  2243,  2249,  2255,  2255,  2263,
+    2263,  2272,  2272,  2281,  2281,  2292,  2292,  2303,  2303,  2313,
+    2314,  2318,  2319,  2322,  2322,  2332,  2339,  2339,  2351,  2352,
+    2356,  2356,  2364,  2365,  2368,  2369,  2370,  2371,  2372,  2373,
+    2374,  2377,  2382,  2382,  2390,  2390,  2400,  2401,  2404,  2404,
+    2412,  2413,  2416,  2417,  2418,  2419,  2420,  2423,  2423,  2431,
+    2436,  2441,  2446,  2446
   };
 
   void
@@ -5569,9 +5418,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 5573 "dhcp4_parser.cc"
+#line 5422 "dhcp4_parser.cc"
 
-#line 2522 "dhcp4_parser.yy"
+#line 2454 "dhcp4_parser.yy"
 
 
 void
index c991310509d54d2fe70e5621f40165b0f85fdcd6..d899400533ddf36338e89e85ee1a84c022ac87a5 100644 (file)
@@ -647,37 +647,32 @@ namespace isc { namespace dhcp {
     TOKEN_WHEN_NOT_PRESENT = 416,  // "when-not-present"
     TOKEN_HOSTNAME_CHAR_SET = 417, // "hostname-char-set"
     TOKEN_HOSTNAME_CHAR_REPLACEMENT = 418, // "hostname-char-replacement"
-    TOKEN_LOGGING = 419,           // "Logging"
-    TOKEN_LOGGERS = 420,           // "loggers"
-    TOKEN_OUTPUT_OPTIONS = 421,    // "output_options"
-    TOKEN_OUTPUT = 422,            // "output"
-    TOKEN_DEBUGLEVEL = 423,        // "debuglevel"
-    TOKEN_SEVERITY = 424,          // "severity"
-    TOKEN_FLUSH = 425,             // "flush"
-    TOKEN_MAXSIZE = 426,           // "maxsize"
-    TOKEN_MAXVER = 427,            // "maxver"
-    TOKEN_PATTERN = 428,           // "pattern"
-    TOKEN_DHCP6 = 429,             // "Dhcp6"
-    TOKEN_DHCPDDNS = 430,          // "DhcpDdns"
-    TOKEN_CONTROL_AGENT = 431,     // "Control-agent"
-    TOKEN_TOPLEVEL_JSON = 432,     // TOPLEVEL_JSON
-    TOKEN_TOPLEVEL_DHCP4 = 433,    // TOPLEVEL_DHCP4
-    TOKEN_SUB_DHCP4 = 434,         // SUB_DHCP4
-    TOKEN_SUB_INTERFACES4 = 435,   // SUB_INTERFACES4
-    TOKEN_SUB_SUBNET4 = 436,       // SUB_SUBNET4
-    TOKEN_SUB_POOL4 = 437,         // SUB_POOL4
-    TOKEN_SUB_RESERVATION = 438,   // SUB_RESERVATION
-    TOKEN_SUB_OPTION_DEFS = 439,   // SUB_OPTION_DEFS
-    TOKEN_SUB_OPTION_DEF = 440,    // SUB_OPTION_DEF
-    TOKEN_SUB_OPTION_DATA = 441,   // SUB_OPTION_DATA
-    TOKEN_SUB_HOOKS_LIBRARY = 442, // SUB_HOOKS_LIBRARY
-    TOKEN_SUB_DHCP_DDNS = 443,     // SUB_DHCP_DDNS
-    TOKEN_SUB_LOGGING = 444,       // SUB_LOGGING
-    TOKEN_SUB_CONFIG_CONTROL = 445, // SUB_CONFIG_CONTROL
-    TOKEN_STRING = 446,            // "constant string"
-    TOKEN_INTEGER = 447,           // "integer"
-    TOKEN_FLOAT = 448,             // "floating point"
-    TOKEN_BOOLEAN = 449            // "boolean"
+    TOKEN_LOGGERS = 419,           // "loggers"
+    TOKEN_OUTPUT_OPTIONS = 420,    // "output_options"
+    TOKEN_OUTPUT = 421,            // "output"
+    TOKEN_DEBUGLEVEL = 422,        // "debuglevel"
+    TOKEN_SEVERITY = 423,          // "severity"
+    TOKEN_FLUSH = 424,             // "flush"
+    TOKEN_MAXSIZE = 425,           // "maxsize"
+    TOKEN_MAXVER = 426,            // "maxver"
+    TOKEN_PATTERN = 427,           // "pattern"
+    TOKEN_TOPLEVEL_JSON = 428,     // TOPLEVEL_JSON
+    TOKEN_TOPLEVEL_DHCP4 = 429,    // TOPLEVEL_DHCP4
+    TOKEN_SUB_DHCP4 = 430,         // SUB_DHCP4
+    TOKEN_SUB_INTERFACES4 = 431,   // SUB_INTERFACES4
+    TOKEN_SUB_SUBNET4 = 432,       // SUB_SUBNET4
+    TOKEN_SUB_POOL4 = 433,         // SUB_POOL4
+    TOKEN_SUB_RESERVATION = 434,   // SUB_RESERVATION
+    TOKEN_SUB_OPTION_DEFS = 435,   // SUB_OPTION_DEFS
+    TOKEN_SUB_OPTION_DEF = 436,    // SUB_OPTION_DEF
+    TOKEN_SUB_OPTION_DATA = 437,   // SUB_OPTION_DATA
+    TOKEN_SUB_HOOKS_LIBRARY = 438, // SUB_HOOKS_LIBRARY
+    TOKEN_SUB_DHCP_DDNS = 439,     // SUB_DHCP_DDNS
+    TOKEN_SUB_CONFIG_CONTROL = 440, // SUB_CONFIG_CONTROL
+    TOKEN_STRING = 441,            // "constant string"
+    TOKEN_INTEGER = 442,           // "integer"
+    TOKEN_FLOAT = 443,             // "floating point"
+    TOKEN_BOOLEAN = 444            // "boolean"
       };
       /// Backward compatibility alias (Bison 3.6).
       typedef token_kind_type yytokentype;
@@ -694,7 +689,7 @@ namespace isc { namespace dhcp {
     {
       enum symbol_kind_type
       {
-        YYNTOKENS = 195, ///< Number of tokens.
+        YYNTOKENS = 190, ///< Number of tokens.
         S_YYEMPTY = -2,
         S_YYEOF = 0,                             // "end of file"
         S_YYerror = 1,                           // error
@@ -860,454 +855,436 @@ namespace isc { namespace dhcp {
         S_WHEN_NOT_PRESENT = 161,                // "when-not-present"
         S_HOSTNAME_CHAR_SET = 162,               // "hostname-char-set"
         S_HOSTNAME_CHAR_REPLACEMENT = 163,       // "hostname-char-replacement"
-        S_LOGGING = 164,                         // "Logging"
-        S_LOGGERS = 165,                         // "loggers"
-        S_OUTPUT_OPTIONS = 166,                  // "output_options"
-        S_OUTPUT = 167,                          // "output"
-        S_DEBUGLEVEL = 168,                      // "debuglevel"
-        S_SEVERITY = 169,                        // "severity"
-        S_FLUSH = 170,                           // "flush"
-        S_MAXSIZE = 171,                         // "maxsize"
-        S_MAXVER = 172,                          // "maxver"
-        S_PATTERN = 173,                         // "pattern"
-        S_DHCP6 = 174,                           // "Dhcp6"
-        S_DHCPDDNS = 175,                        // "DhcpDdns"
-        S_CONTROL_AGENT = 176,                   // "Control-agent"
-        S_TOPLEVEL_JSON = 177,                   // TOPLEVEL_JSON
-        S_TOPLEVEL_DHCP4 = 178,                  // TOPLEVEL_DHCP4
-        S_SUB_DHCP4 = 179,                       // SUB_DHCP4
-        S_SUB_INTERFACES4 = 180,                 // SUB_INTERFACES4
-        S_SUB_SUBNET4 = 181,                     // SUB_SUBNET4
-        S_SUB_POOL4 = 182,                       // SUB_POOL4
-        S_SUB_RESERVATION = 183,                 // SUB_RESERVATION
-        S_SUB_OPTION_DEFS = 184,                 // SUB_OPTION_DEFS
-        S_SUB_OPTION_DEF = 185,                  // SUB_OPTION_DEF
-        S_SUB_OPTION_DATA = 186,                 // SUB_OPTION_DATA
-        S_SUB_HOOKS_LIBRARY = 187,               // SUB_HOOKS_LIBRARY
-        S_SUB_DHCP_DDNS = 188,                   // SUB_DHCP_DDNS
-        S_SUB_LOGGING = 189,                     // SUB_LOGGING
-        S_SUB_CONFIG_CONTROL = 190,              // SUB_CONFIG_CONTROL
-        S_STRING = 191,                          // "constant string"
-        S_INTEGER = 192,                         // "integer"
-        S_FLOAT = 193,                           // "floating point"
-        S_BOOLEAN = 194,                         // "boolean"
-        S_YYACCEPT = 195,                        // $accept
-        S_start = 196,                           // start
-        S_197_1 = 197,                           // $@1
-        S_198_2 = 198,                           // $@2
-        S_199_3 = 199,                           // $@3
-        S_200_4 = 200,                           // $@4
-        S_201_5 = 201,                           // $@5
-        S_202_6 = 202,                           // $@6
-        S_203_7 = 203,                           // $@7
-        S_204_8 = 204,                           // $@8
-        S_205_9 = 205,                           // $@9
-        S_206_10 = 206,                          // $@10
-        S_207_11 = 207,                          // $@11
-        S_208_12 = 208,                          // $@12
-        S_209_13 = 209,                          // $@13
-        S_210_14 = 210,                          // $@14
-        S_value = 211,                           // value
-        S_sub_json = 212,                        // sub_json
-        S_map2 = 213,                            // map2
-        S_214_15 = 214,                          // $@15
-        S_map_value = 215,                       // map_value
-        S_map_content = 216,                     // map_content
-        S_not_empty_map = 217,                   // not_empty_map
-        S_list_generic = 218,                    // list_generic
-        S_219_16 = 219,                          // $@16
-        S_list_content = 220,                    // list_content
-        S_not_empty_list = 221,                  // not_empty_list
-        S_list_strings = 222,                    // list_strings
-        S_223_17 = 223,                          // $@17
-        S_list_strings_content = 224,            // list_strings_content
-        S_not_empty_list_strings = 225,          // not_empty_list_strings
-        S_unknown_map_entry = 226,               // unknown_map_entry
-        S_syntax_map = 227,                      // syntax_map
-        S_228_18 = 228,                          // $@18
-        S_global_objects = 229,                  // global_objects
-        S_global_object = 230,                   // global_object
-        S_dhcp4_object = 231,                    // dhcp4_object
-        S_232_19 = 232,                          // $@19
-        S_sub_dhcp4 = 233,                       // sub_dhcp4
-        S_234_20 = 234,                          // $@20
-        S_global_params = 235,                   // global_params
-        S_global_param = 236,                    // global_param
-        S_valid_lifetime = 237,                  // valid_lifetime
-        S_min_valid_lifetime = 238,              // min_valid_lifetime
-        S_max_valid_lifetime = 239,              // max_valid_lifetime
-        S_renew_timer = 240,                     // renew_timer
-        S_rebind_timer = 241,                    // rebind_timer
-        S_calculate_tee_times = 242,             // calculate_tee_times
-        S_t1_percent = 243,                      // t1_percent
-        S_t2_percent = 244,                      // t2_percent
-        S_decline_probation_period = 245,        // decline_probation_period
-        S_server_tag = 246,                      // server_tag
-        S_247_21 = 247,                          // $@21
-        S_echo_client_id = 248,                  // echo_client_id
-        S_match_client_id = 249,                 // match_client_id
-        S_authoritative = 250,                   // authoritative
-        S_ddns_send_updates = 251,               // ddns_send_updates
-        S_ddns_override_no_update = 252,         // ddns_override_no_update
-        S_ddns_override_client_update = 253,     // ddns_override_client_update
-        S_ddns_replace_client_name = 254,        // ddns_replace_client_name
-        S_255_22 = 255,                          // $@22
-        S_ddns_replace_client_name_value = 256,  // ddns_replace_client_name_value
-        S_ddns_generated_prefix = 257,           // ddns_generated_prefix
-        S_258_23 = 258,                          // $@23
-        S_ddns_qualifying_suffix = 259,          // ddns_qualifying_suffix
-        S_260_24 = 260,                          // $@24
-        S_hostname_char_set = 261,               // hostname_char_set
-        S_262_25 = 262,                          // $@25
-        S_hostname_char_replacement = 263,       // hostname_char_replacement
-        S_264_26 = 264,                          // $@26
-        S_store_extended_info = 265,             // store_extended_info
-        S_statistic_default_sample_count = 266,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 267,    // statistic_default_sample_age
-        S_interfaces_config = 268,               // interfaces_config
-        S_269_27 = 269,                          // $@27
-        S_interfaces_config_params = 270,        // interfaces_config_params
-        S_interfaces_config_param = 271,         // interfaces_config_param
-        S_sub_interfaces4 = 272,                 // sub_interfaces4
-        S_273_28 = 273,                          // $@28
-        S_interfaces_list = 274,                 // interfaces_list
-        S_275_29 = 275,                          // $@29
-        S_dhcp_socket_type = 276,                // dhcp_socket_type
-        S_277_30 = 277,                          // $@30
-        S_socket_type = 278,                     // socket_type
-        S_outbound_interface = 279,              // outbound_interface
-        S_280_31 = 280,                          // $@31
-        S_outbound_interface_value = 281,        // outbound_interface_value
-        S_re_detect = 282,                       // re_detect
-        S_lease_database = 283,                  // lease_database
-        S_284_32 = 284,                          // $@32
-        S_sanity_checks = 285,                   // sanity_checks
-        S_286_33 = 286,                          // $@33
-        S_sanity_checks_params = 287,            // sanity_checks_params
-        S_sanity_checks_param = 288,             // sanity_checks_param
-        S_lease_checks = 289,                    // lease_checks
-        S_290_34 = 290,                          // $@34
-        S_hosts_database = 291,                  // hosts_database
-        S_292_35 = 292,                          // $@35
-        S_hosts_databases = 293,                 // hosts_databases
-        S_294_36 = 294,                          // $@36
-        S_database_list = 295,                   // database_list
-        S_not_empty_database_list = 296,         // not_empty_database_list
-        S_database = 297,                        // database
-        S_298_37 = 298,                          // $@37
-        S_database_map_params = 299,             // database_map_params
-        S_database_map_param = 300,              // database_map_param
-        S_database_type = 301,                   // database_type
-        S_302_38 = 302,                          // $@38
-        S_db_type = 303,                         // db_type
-        S_user = 304,                            // user
-        S_305_39 = 305,                          // $@39
-        S_password = 306,                        // password
-        S_307_40 = 307,                          // $@40
-        S_host = 308,                            // host
-        S_309_41 = 309,                          // $@41
-        S_port = 310,                            // port
-        S_name = 311,                            // name
-        S_312_42 = 312,                          // $@42
-        S_persist = 313,                         // persist
-        S_lfc_interval = 314,                    // lfc_interval
-        S_readonly = 315,                        // readonly
-        S_connect_timeout = 316,                 // connect_timeout
-        S_request_timeout = 317,                 // request_timeout
-        S_tcp_keepalive = 318,                   // tcp_keepalive
-        S_tcp_nodelay = 319,                     // tcp_nodelay
-        S_contact_points = 320,                  // contact_points
-        S_321_43 = 321,                          // $@43
-        S_keyspace = 322,                        // keyspace
-        S_323_44 = 323,                          // $@44
-        S_consistency = 324,                     // consistency
-        S_325_45 = 325,                          // $@45
-        S_serial_consistency = 326,              // serial_consistency
-        S_327_46 = 327,                          // $@46
-        S_max_reconnect_tries = 328,             // max_reconnect_tries
-        S_reconnect_wait_time = 329,             // reconnect_wait_time
-        S_max_row_errors = 330,                  // max_row_errors
-        S_host_reservation_identifiers = 331,    // host_reservation_identifiers
-        S_332_47 = 332,                          // $@47
-        S_host_reservation_identifiers_list = 333, // host_reservation_identifiers_list
-        S_host_reservation_identifier = 334,     // host_reservation_identifier
-        S_duid_id = 335,                         // duid_id
-        S_hw_address_id = 336,                   // hw_address_id
-        S_circuit_id = 337,                      // circuit_id
-        S_client_id = 338,                       // client_id
-        S_flex_id = 339,                         // flex_id
-        S_dhcp_multi_threading = 340,            // dhcp_multi_threading
-        S_341_48 = 341,                          // $@48
-        S_multi_threading_params = 342,          // multi_threading_params
-        S_multi_threading_param = 343,           // multi_threading_param
-        S_enable_multi_threading = 344,          // enable_multi_threading
-        S_thread_pool_size = 345,                // thread_pool_size
-        S_packet_queue_size = 346,               // packet_queue_size
-        S_hooks_libraries = 347,                 // hooks_libraries
-        S_348_49 = 348,                          // $@49
-        S_hooks_libraries_list = 349,            // hooks_libraries_list
-        S_not_empty_hooks_libraries_list = 350,  // not_empty_hooks_libraries_list
-        S_hooks_library = 351,                   // hooks_library
-        S_352_50 = 352,                          // $@50
-        S_sub_hooks_library = 353,               // sub_hooks_library
-        S_354_51 = 354,                          // $@51
-        S_hooks_params = 355,                    // hooks_params
-        S_hooks_param = 356,                     // hooks_param
-        S_library = 357,                         // library
-        S_358_52 = 358,                          // $@52
-        S_parameters = 359,                      // parameters
-        S_360_53 = 360,                          // $@53
-        S_expired_leases_processing = 361,       // expired_leases_processing
-        S_362_54 = 362,                          // $@54
-        S_expired_leases_params = 363,           // expired_leases_params
-        S_expired_leases_param = 364,            // expired_leases_param
-        S_reclaim_timer_wait_time = 365,         // reclaim_timer_wait_time
-        S_flush_reclaimed_timer_wait_time = 366, // flush_reclaimed_timer_wait_time
-        S_hold_reclaimed_time = 367,             // hold_reclaimed_time
-        S_max_reclaim_leases = 368,              // max_reclaim_leases
-        S_max_reclaim_time = 369,                // max_reclaim_time
-        S_unwarned_reclaim_cycles = 370,         // unwarned_reclaim_cycles
-        S_subnet4_list = 371,                    // subnet4_list
-        S_372_55 = 372,                          // $@55
-        S_subnet4_list_content = 373,            // subnet4_list_content
-        S_not_empty_subnet4_list = 374,          // not_empty_subnet4_list
-        S_subnet4 = 375,                         // subnet4
-        S_376_56 = 376,                          // $@56
-        S_sub_subnet4 = 377,                     // sub_subnet4
-        S_378_57 = 378,                          // $@57
-        S_subnet4_params = 379,                  // subnet4_params
-        S_subnet4_param = 380,                   // subnet4_param
-        S_subnet = 381,                          // subnet
-        S_382_58 = 382,                          // $@58
-        S_subnet_4o6_interface = 383,            // subnet_4o6_interface
-        S_384_59 = 384,                          // $@59
-        S_subnet_4o6_interface_id = 385,         // subnet_4o6_interface_id
-        S_386_60 = 386,                          // $@60
-        S_subnet_4o6_subnet = 387,               // subnet_4o6_subnet
-        S_388_61 = 388,                          // $@61
-        S_interface = 389,                       // interface
-        S_390_62 = 390,                          // $@62
-        S_client_class = 391,                    // client_class
-        S_392_63 = 392,                          // $@63
-        S_require_client_classes = 393,          // require_client_classes
-        S_394_64 = 394,                          // $@64
-        S_reservation_mode = 395,                // reservation_mode
-        S_396_65 = 396,                          // $@65
-        S_hr_mode = 397,                         // hr_mode
-        S_id = 398,                              // id
-        S_shared_networks = 399,                 // shared_networks
-        S_400_66 = 400,                          // $@66
-        S_shared_networks_content = 401,         // shared_networks_content
-        S_shared_networks_list = 402,            // shared_networks_list
-        S_shared_network = 403,                  // shared_network
-        S_404_67 = 404,                          // $@67
-        S_shared_network_params = 405,           // shared_network_params
-        S_shared_network_param = 406,            // shared_network_param
-        S_option_def_list = 407,                 // option_def_list
-        S_408_68 = 408,                          // $@68
-        S_sub_option_def_list = 409,             // sub_option_def_list
-        S_410_69 = 410,                          // $@69
-        S_option_def_list_content = 411,         // option_def_list_content
-        S_not_empty_option_def_list = 412,       // not_empty_option_def_list
-        S_option_def_entry = 413,                // option_def_entry
-        S_414_70 = 414,                          // $@70
-        S_sub_option_def = 415,                  // sub_option_def
-        S_416_71 = 416,                          // $@71
-        S_option_def_params = 417,               // option_def_params
-        S_not_empty_option_def_params = 418,     // not_empty_option_def_params
-        S_option_def_param = 419,                // option_def_param
-        S_option_def_name = 420,                 // option_def_name
-        S_code = 421,                            // code
-        S_option_def_code = 422,                 // option_def_code
-        S_option_def_type = 423,                 // option_def_type
-        S_424_72 = 424,                          // $@72
-        S_option_def_record_types = 425,         // option_def_record_types
-        S_426_73 = 426,                          // $@73
-        S_space = 427,                           // space
-        S_428_74 = 428,                          // $@74
-        S_option_def_space = 429,                // option_def_space
-        S_option_def_encapsulate = 430,          // option_def_encapsulate
-        S_431_75 = 431,                          // $@75
-        S_option_def_array = 432,                // option_def_array
-        S_option_data_list = 433,                // option_data_list
-        S_434_76 = 434,                          // $@76
-        S_option_data_list_content = 435,        // option_data_list_content
-        S_not_empty_option_data_list = 436,      // not_empty_option_data_list
-        S_option_data_entry = 437,               // option_data_entry
-        S_438_77 = 438,                          // $@77
-        S_sub_option_data = 439,                 // sub_option_data
+        S_LOGGERS = 164,                         // "loggers"
+        S_OUTPUT_OPTIONS = 165,                  // "output_options"
+        S_OUTPUT = 166,                          // "output"
+        S_DEBUGLEVEL = 167,                      // "debuglevel"
+        S_SEVERITY = 168,                        // "severity"
+        S_FLUSH = 169,                           // "flush"
+        S_MAXSIZE = 170,                         // "maxsize"
+        S_MAXVER = 171,                          // "maxver"
+        S_PATTERN = 172,                         // "pattern"
+        S_TOPLEVEL_JSON = 173,                   // TOPLEVEL_JSON
+        S_TOPLEVEL_DHCP4 = 174,                  // TOPLEVEL_DHCP4
+        S_SUB_DHCP4 = 175,                       // SUB_DHCP4
+        S_SUB_INTERFACES4 = 176,                 // SUB_INTERFACES4
+        S_SUB_SUBNET4 = 177,                     // SUB_SUBNET4
+        S_SUB_POOL4 = 178,                       // SUB_POOL4
+        S_SUB_RESERVATION = 179,                 // SUB_RESERVATION
+        S_SUB_OPTION_DEFS = 180,                 // SUB_OPTION_DEFS
+        S_SUB_OPTION_DEF = 181,                  // SUB_OPTION_DEF
+        S_SUB_OPTION_DATA = 182,                 // SUB_OPTION_DATA
+        S_SUB_HOOKS_LIBRARY = 183,               // SUB_HOOKS_LIBRARY
+        S_SUB_DHCP_DDNS = 184,                   // SUB_DHCP_DDNS
+        S_SUB_CONFIG_CONTROL = 185,              // SUB_CONFIG_CONTROL
+        S_STRING = 186,                          // "constant string"
+        S_INTEGER = 187,                         // "integer"
+        S_FLOAT = 188,                           // "floating point"
+        S_BOOLEAN = 189,                         // "boolean"
+        S_YYACCEPT = 190,                        // $accept
+        S_start = 191,                           // start
+        S_192_1 = 192,                           // $@1
+        S_193_2 = 193,                           // $@2
+        S_194_3 = 194,                           // $@3
+        S_195_4 = 195,                           // $@4
+        S_196_5 = 196,                           // $@5
+        S_197_6 = 197,                           // $@6
+        S_198_7 = 198,                           // $@7
+        S_199_8 = 199,                           // $@8
+        S_200_9 = 200,                           // $@9
+        S_201_10 = 201,                          // $@10
+        S_202_11 = 202,                          // $@11
+        S_203_12 = 203,                          // $@12
+        S_204_13 = 204,                          // $@13
+        S_value = 205,                           // value
+        S_sub_json = 206,                        // sub_json
+        S_map2 = 207,                            // map2
+        S_208_14 = 208,                          // $@14
+        S_map_value = 209,                       // map_value
+        S_map_content = 210,                     // map_content
+        S_not_empty_map = 211,                   // not_empty_map
+        S_list_generic = 212,                    // list_generic
+        S_213_15 = 213,                          // $@15
+        S_list_content = 214,                    // list_content
+        S_not_empty_list = 215,                  // not_empty_list
+        S_list_strings = 216,                    // list_strings
+        S_217_16 = 217,                          // $@16
+        S_list_strings_content = 218,            // list_strings_content
+        S_not_empty_list_strings = 219,          // not_empty_list_strings
+        S_unknown_map_entry = 220,               // unknown_map_entry
+        S_syntax_map = 221,                      // syntax_map
+        S_222_17 = 222,                          // $@17
+        S_global_objects = 223,                  // global_objects
+        S_global_object = 224,                   // global_object
+        S_dhcp4_object = 225,                    // dhcp4_object
+        S_226_18 = 226,                          // $@18
+        S_sub_dhcp4 = 227,                       // sub_dhcp4
+        S_228_19 = 228,                          // $@19
+        S_global_params = 229,                   // global_params
+        S_global_param = 230,                    // global_param
+        S_valid_lifetime = 231,                  // valid_lifetime
+        S_min_valid_lifetime = 232,              // min_valid_lifetime
+        S_max_valid_lifetime = 233,              // max_valid_lifetime
+        S_renew_timer = 234,                     // renew_timer
+        S_rebind_timer = 235,                    // rebind_timer
+        S_calculate_tee_times = 236,             // calculate_tee_times
+        S_t1_percent = 237,                      // t1_percent
+        S_t2_percent = 238,                      // t2_percent
+        S_decline_probation_period = 239,        // decline_probation_period
+        S_server_tag = 240,                      // server_tag
+        S_241_20 = 241,                          // $@20
+        S_echo_client_id = 242,                  // echo_client_id
+        S_match_client_id = 243,                 // match_client_id
+        S_authoritative = 244,                   // authoritative
+        S_ddns_send_updates = 245,               // ddns_send_updates
+        S_ddns_override_no_update = 246,         // ddns_override_no_update
+        S_ddns_override_client_update = 247,     // ddns_override_client_update
+        S_ddns_replace_client_name = 248,        // ddns_replace_client_name
+        S_249_21 = 249,                          // $@21
+        S_ddns_replace_client_name_value = 250,  // ddns_replace_client_name_value
+        S_ddns_generated_prefix = 251,           // ddns_generated_prefix
+        S_252_22 = 252,                          // $@22
+        S_ddns_qualifying_suffix = 253,          // ddns_qualifying_suffix
+        S_254_23 = 254,                          // $@23
+        S_hostname_char_set = 255,               // hostname_char_set
+        S_256_24 = 256,                          // $@24
+        S_hostname_char_replacement = 257,       // hostname_char_replacement
+        S_258_25 = 258,                          // $@25
+        S_store_extended_info = 259,             // store_extended_info
+        S_statistic_default_sample_count = 260,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 261,    // statistic_default_sample_age
+        S_interfaces_config = 262,               // interfaces_config
+        S_263_26 = 263,                          // $@26
+        S_interfaces_config_params = 264,        // interfaces_config_params
+        S_interfaces_config_param = 265,         // interfaces_config_param
+        S_sub_interfaces4 = 266,                 // sub_interfaces4
+        S_267_27 = 267,                          // $@27
+        S_interfaces_list = 268,                 // interfaces_list
+        S_269_28 = 269,                          // $@28
+        S_dhcp_socket_type = 270,                // dhcp_socket_type
+        S_271_29 = 271,                          // $@29
+        S_socket_type = 272,                     // socket_type
+        S_outbound_interface = 273,              // outbound_interface
+        S_274_30 = 274,                          // $@30
+        S_outbound_interface_value = 275,        // outbound_interface_value
+        S_re_detect = 276,                       // re_detect
+        S_lease_database = 277,                  // lease_database
+        S_278_31 = 278,                          // $@31
+        S_sanity_checks = 279,                   // sanity_checks
+        S_280_32 = 280,                          // $@32
+        S_sanity_checks_params = 281,            // sanity_checks_params
+        S_sanity_checks_param = 282,             // sanity_checks_param
+        S_lease_checks = 283,                    // lease_checks
+        S_284_33 = 284,                          // $@33
+        S_hosts_database = 285,                  // hosts_database
+        S_286_34 = 286,                          // $@34
+        S_hosts_databases = 287,                 // hosts_databases
+        S_288_35 = 288,                          // $@35
+        S_database_list = 289,                   // database_list
+        S_not_empty_database_list = 290,         // not_empty_database_list
+        S_database = 291,                        // database
+        S_292_36 = 292,                          // $@36
+        S_database_map_params = 293,             // database_map_params
+        S_database_map_param = 294,              // database_map_param
+        S_database_type = 295,                   // database_type
+        S_296_37 = 296,                          // $@37
+        S_db_type = 297,                         // db_type
+        S_user = 298,                            // user
+        S_299_38 = 299,                          // $@38
+        S_password = 300,                        // password
+        S_301_39 = 301,                          // $@39
+        S_host = 302,                            // host
+        S_303_40 = 303,                          // $@40
+        S_port = 304,                            // port
+        S_name = 305,                            // name
+        S_306_41 = 306,                          // $@41
+        S_persist = 307,                         // persist
+        S_lfc_interval = 308,                    // lfc_interval
+        S_readonly = 309,                        // readonly
+        S_connect_timeout = 310,                 // connect_timeout
+        S_request_timeout = 311,                 // request_timeout
+        S_tcp_keepalive = 312,                   // tcp_keepalive
+        S_tcp_nodelay = 313,                     // tcp_nodelay
+        S_contact_points = 314,                  // contact_points
+        S_315_42 = 315,                          // $@42
+        S_keyspace = 316,                        // keyspace
+        S_317_43 = 317,                          // $@43
+        S_consistency = 318,                     // consistency
+        S_319_44 = 319,                          // $@44
+        S_serial_consistency = 320,              // serial_consistency
+        S_321_45 = 321,                          // $@45
+        S_max_reconnect_tries = 322,             // max_reconnect_tries
+        S_reconnect_wait_time = 323,             // reconnect_wait_time
+        S_max_row_errors = 324,                  // max_row_errors
+        S_host_reservation_identifiers = 325,    // host_reservation_identifiers
+        S_326_46 = 326,                          // $@46
+        S_host_reservation_identifiers_list = 327, // host_reservation_identifiers_list
+        S_host_reservation_identifier = 328,     // host_reservation_identifier
+        S_duid_id = 329,                         // duid_id
+        S_hw_address_id = 330,                   // hw_address_id
+        S_circuit_id = 331,                      // circuit_id
+        S_client_id = 332,                       // client_id
+        S_flex_id = 333,                         // flex_id
+        S_dhcp_multi_threading = 334,            // dhcp_multi_threading
+        S_335_47 = 335,                          // $@47
+        S_multi_threading_params = 336,          // multi_threading_params
+        S_multi_threading_param = 337,           // multi_threading_param
+        S_enable_multi_threading = 338,          // enable_multi_threading
+        S_thread_pool_size = 339,                // thread_pool_size
+        S_packet_queue_size = 340,               // packet_queue_size
+        S_hooks_libraries = 341,                 // hooks_libraries
+        S_342_48 = 342,                          // $@48
+        S_hooks_libraries_list = 343,            // hooks_libraries_list
+        S_not_empty_hooks_libraries_list = 344,  // not_empty_hooks_libraries_list
+        S_hooks_library = 345,                   // hooks_library
+        S_346_49 = 346,                          // $@49
+        S_sub_hooks_library = 347,               // sub_hooks_library
+        S_348_50 = 348,                          // $@50
+        S_hooks_params = 349,                    // hooks_params
+        S_hooks_param = 350,                     // hooks_param
+        S_library = 351,                         // library
+        S_352_51 = 352,                          // $@51
+        S_parameters = 353,                      // parameters
+        S_354_52 = 354,                          // $@52
+        S_expired_leases_processing = 355,       // expired_leases_processing
+        S_356_53 = 356,                          // $@53
+        S_expired_leases_params = 357,           // expired_leases_params
+        S_expired_leases_param = 358,            // expired_leases_param
+        S_reclaim_timer_wait_time = 359,         // reclaim_timer_wait_time
+        S_flush_reclaimed_timer_wait_time = 360, // flush_reclaimed_timer_wait_time
+        S_hold_reclaimed_time = 361,             // hold_reclaimed_time
+        S_max_reclaim_leases = 362,              // max_reclaim_leases
+        S_max_reclaim_time = 363,                // max_reclaim_time
+        S_unwarned_reclaim_cycles = 364,         // unwarned_reclaim_cycles
+        S_subnet4_list = 365,                    // subnet4_list
+        S_366_54 = 366,                          // $@54
+        S_subnet4_list_content = 367,            // subnet4_list_content
+        S_not_empty_subnet4_list = 368,          // not_empty_subnet4_list
+        S_subnet4 = 369,                         // subnet4
+        S_370_55 = 370,                          // $@55
+        S_sub_subnet4 = 371,                     // sub_subnet4
+        S_372_56 = 372,                          // $@56
+        S_subnet4_params = 373,                  // subnet4_params
+        S_subnet4_param = 374,                   // subnet4_param
+        S_subnet = 375,                          // subnet
+        S_376_57 = 376,                          // $@57
+        S_subnet_4o6_interface = 377,            // subnet_4o6_interface
+        S_378_58 = 378,                          // $@58
+        S_subnet_4o6_interface_id = 379,         // subnet_4o6_interface_id
+        S_380_59 = 380,                          // $@59
+        S_subnet_4o6_subnet = 381,               // subnet_4o6_subnet
+        S_382_60 = 382,                          // $@60
+        S_interface = 383,                       // interface
+        S_384_61 = 384,                          // $@61
+        S_client_class = 385,                    // client_class
+        S_386_62 = 386,                          // $@62
+        S_require_client_classes = 387,          // require_client_classes
+        S_388_63 = 388,                          // $@63
+        S_reservation_mode = 389,                // reservation_mode
+        S_390_64 = 390,                          // $@64
+        S_hr_mode = 391,                         // hr_mode
+        S_id = 392,                              // id
+        S_shared_networks = 393,                 // shared_networks
+        S_394_65 = 394,                          // $@65
+        S_shared_networks_content = 395,         // shared_networks_content
+        S_shared_networks_list = 396,            // shared_networks_list
+        S_shared_network = 397,                  // shared_network
+        S_398_66 = 398,                          // $@66
+        S_shared_network_params = 399,           // shared_network_params
+        S_shared_network_param = 400,            // shared_network_param
+        S_option_def_list = 401,                 // option_def_list
+        S_402_67 = 402,                          // $@67
+        S_sub_option_def_list = 403,             // sub_option_def_list
+        S_404_68 = 404,                          // $@68
+        S_option_def_list_content = 405,         // option_def_list_content
+        S_not_empty_option_def_list = 406,       // not_empty_option_def_list
+        S_option_def_entry = 407,                // option_def_entry
+        S_408_69 = 408,                          // $@69
+        S_sub_option_def = 409,                  // sub_option_def
+        S_410_70 = 410,                          // $@70
+        S_option_def_params = 411,               // option_def_params
+        S_not_empty_option_def_params = 412,     // not_empty_option_def_params
+        S_option_def_param = 413,                // option_def_param
+        S_option_def_name = 414,                 // option_def_name
+        S_code = 415,                            // code
+        S_option_def_code = 416,                 // option_def_code
+        S_option_def_type = 417,                 // option_def_type
+        S_418_71 = 418,                          // $@71
+        S_option_def_record_types = 419,         // option_def_record_types
+        S_420_72 = 420,                          // $@72
+        S_space = 421,                           // space
+        S_422_73 = 422,                          // $@73
+        S_option_def_space = 423,                // option_def_space
+        S_option_def_encapsulate = 424,          // option_def_encapsulate
+        S_425_74 = 425,                          // $@74
+        S_option_def_array = 426,                // option_def_array
+        S_option_data_list = 427,                // option_data_list
+        S_428_75 = 428,                          // $@75
+        S_option_data_list_content = 429,        // option_data_list_content
+        S_not_empty_option_data_list = 430,      // not_empty_option_data_list
+        S_option_data_entry = 431,               // option_data_entry
+        S_432_76 = 432,                          // $@76
+        S_sub_option_data = 433,                 // sub_option_data
+        S_434_77 = 434,                          // $@77
+        S_option_data_params = 435,              // option_data_params
+        S_not_empty_option_data_params = 436,    // not_empty_option_data_params
+        S_option_data_param = 437,               // option_data_param
+        S_option_data_name = 438,                // option_data_name
+        S_option_data_data = 439,                // option_data_data
         S_440_78 = 440,                          // $@78
-        S_option_data_params = 441,              // option_data_params
-        S_not_empty_option_data_params = 442,    // not_empty_option_data_params
-        S_option_data_param = 443,               // option_data_param
-        S_option_data_name = 444,                // option_data_name
-        S_option_data_data = 445,                // option_data_data
+        S_option_data_code = 441,                // option_data_code
+        S_option_data_space = 442,               // option_data_space
+        S_option_data_csv_format = 443,          // option_data_csv_format
+        S_option_data_always_send = 444,         // option_data_always_send
+        S_pools_list = 445,                      // pools_list
         S_446_79 = 446,                          // $@79
-        S_option_data_code = 447,                // option_data_code
-        S_option_data_space = 448,               // option_data_space
-        S_option_data_csv_format = 449,          // option_data_csv_format
-        S_option_data_always_send = 450,         // option_data_always_send
-        S_pools_list = 451,                      // pools_list
-        S_452_80 = 452,                          // $@80
-        S_pools_list_content = 453,              // pools_list_content
-        S_not_empty_pools_list = 454,            // not_empty_pools_list
-        S_pool_list_entry = 455,                 // pool_list_entry
-        S_456_81 = 456,                          // $@81
-        S_sub_pool4 = 457,                       // sub_pool4
-        S_458_82 = 458,                          // $@82
-        S_pool_params = 459,                     // pool_params
-        S_pool_param = 460,                      // pool_param
-        S_pool_entry = 461,                      // pool_entry
-        S_462_83 = 462,                          // $@83
-        S_user_context = 463,                    // user_context
-        S_464_84 = 464,                          // $@84
-        S_comment = 465,                         // comment
-        S_466_85 = 466,                          // $@85
-        S_reservations = 467,                    // reservations
-        S_468_86 = 468,                          // $@86
-        S_reservations_list = 469,               // reservations_list
-        S_not_empty_reservations_list = 470,     // not_empty_reservations_list
-        S_reservation = 471,                     // reservation
-        S_472_87 = 472,                          // $@87
-        S_sub_reservation = 473,                 // sub_reservation
-        S_474_88 = 474,                          // $@88
-        S_reservation_params = 475,              // reservation_params
-        S_not_empty_reservation_params = 476,    // not_empty_reservation_params
-        S_reservation_param = 477,               // reservation_param
-        S_next_server = 478,                     // next_server
-        S_479_89 = 479,                          // $@89
-        S_server_hostname = 480,                 // server_hostname
-        S_481_90 = 481,                          // $@90
-        S_boot_file_name = 482,                  // boot_file_name
-        S_483_91 = 483,                          // $@91
-        S_ip_address = 484,                      // ip_address
-        S_485_92 = 485,                          // $@92
-        S_ip_addresses = 486,                    // ip_addresses
-        S_487_93 = 487,                          // $@93
-        S_duid = 488,                            // duid
-        S_489_94 = 489,                          // $@94
-        S_hw_address = 490,                      // hw_address
-        S_491_95 = 491,                          // $@95
-        S_client_id_value = 492,                 // client_id_value
-        S_493_96 = 493,                          // $@96
-        S_circuit_id_value = 494,                // circuit_id_value
-        S_495_97 = 495,                          // $@97
-        S_flex_id_value = 496,                   // flex_id_value
-        S_497_98 = 497,                          // $@98
-        S_hostname = 498,                        // hostname
-        S_499_99 = 499,                          // $@99
-        S_reservation_client_classes = 500,      // reservation_client_classes
-        S_501_100 = 501,                         // $@100
-        S_relay = 502,                           // relay
-        S_503_101 = 503,                         // $@101
-        S_relay_map = 504,                       // relay_map
-        S_client_classes = 505,                  // client_classes
-        S_506_102 = 506,                         // $@102
-        S_client_classes_list = 507,             // client_classes_list
-        S_client_class_entry = 508,              // client_class_entry
+        S_pools_list_content = 447,              // pools_list_content
+        S_not_empty_pools_list = 448,            // not_empty_pools_list
+        S_pool_list_entry = 449,                 // pool_list_entry
+        S_450_80 = 450,                          // $@80
+        S_sub_pool4 = 451,                       // sub_pool4
+        S_452_81 = 452,                          // $@81
+        S_pool_params = 453,                     // pool_params
+        S_pool_param = 454,                      // pool_param
+        S_pool_entry = 455,                      // pool_entry
+        S_456_82 = 456,                          // $@82
+        S_user_context = 457,                    // user_context
+        S_458_83 = 458,                          // $@83
+        S_comment = 459,                         // comment
+        S_460_84 = 460,                          // $@84
+        S_reservations = 461,                    // reservations
+        S_462_85 = 462,                          // $@85
+        S_reservations_list = 463,               // reservations_list
+        S_not_empty_reservations_list = 464,     // not_empty_reservations_list
+        S_reservation = 465,                     // reservation
+        S_466_86 = 466,                          // $@86
+        S_sub_reservation = 467,                 // sub_reservation
+        S_468_87 = 468,                          // $@87
+        S_reservation_params = 469,              // reservation_params
+        S_not_empty_reservation_params = 470,    // not_empty_reservation_params
+        S_reservation_param = 471,               // reservation_param
+        S_next_server = 472,                     // next_server
+        S_473_88 = 473,                          // $@88
+        S_server_hostname = 474,                 // server_hostname
+        S_475_89 = 475,                          // $@89
+        S_boot_file_name = 476,                  // boot_file_name
+        S_477_90 = 477,                          // $@90
+        S_ip_address = 478,                      // ip_address
+        S_479_91 = 479,                          // $@91
+        S_ip_addresses = 480,                    // ip_addresses
+        S_481_92 = 481,                          // $@92
+        S_duid = 482,                            // duid
+        S_483_93 = 483,                          // $@93
+        S_hw_address = 484,                      // hw_address
+        S_485_94 = 485,                          // $@94
+        S_client_id_value = 486,                 // client_id_value
+        S_487_95 = 487,                          // $@95
+        S_circuit_id_value = 488,                // circuit_id_value
+        S_489_96 = 489,                          // $@96
+        S_flex_id_value = 490,                   // flex_id_value
+        S_491_97 = 491,                          // $@97
+        S_hostname = 492,                        // hostname
+        S_493_98 = 493,                          // $@98
+        S_reservation_client_classes = 494,      // reservation_client_classes
+        S_495_99 = 495,                          // $@99
+        S_relay = 496,                           // relay
+        S_497_100 = 497,                         // $@100
+        S_relay_map = 498,                       // relay_map
+        S_client_classes = 499,                  // client_classes
+        S_500_101 = 500,                         // $@101
+        S_client_classes_list = 501,             // client_classes_list
+        S_client_class_entry = 502,              // client_class_entry
+        S_503_102 = 503,                         // $@102
+        S_client_class_params = 504,             // client_class_params
+        S_not_empty_client_class_params = 505,   // not_empty_client_class_params
+        S_client_class_param = 506,              // client_class_param
+        S_client_class_name = 507,               // client_class_name
+        S_client_class_test = 508,               // client_class_test
         S_509_103 = 509,                         // $@103
-        S_client_class_params = 510,             // client_class_params
-        S_not_empty_client_class_params = 511,   // not_empty_client_class_params
-        S_client_class_param = 512,              // client_class_param
-        S_client_class_name = 513,               // client_class_name
-        S_client_class_test = 514,               // client_class_test
-        S_515_104 = 515,                         // $@104
-        S_only_if_required = 516,                // only_if_required
-        S_dhcp4o6_port = 517,                    // dhcp4o6_port
-        S_control_socket = 518,                  // control_socket
-        S_519_105 = 519,                         // $@105
-        S_control_socket_params = 520,           // control_socket_params
-        S_control_socket_param = 521,            // control_socket_param
-        S_control_socket_type = 522,             // control_socket_type
-        S_523_106 = 523,                         // $@106
-        S_control_socket_name = 524,             // control_socket_name
-        S_525_107 = 525,                         // $@107
-        S_dhcp_queue_control = 526,              // dhcp_queue_control
-        S_527_108 = 527,                         // $@108
-        S_queue_control_params = 528,            // queue_control_params
-        S_queue_control_param = 529,             // queue_control_param
-        S_enable_queue = 530,                    // enable_queue
-        S_queue_type = 531,                      // queue_type
-        S_532_109 = 532,                         // $@109
-        S_capacity = 533,                        // capacity
-        S_arbitrary_map_entry = 534,             // arbitrary_map_entry
-        S_535_110 = 535,                         // $@110
-        S_dhcp_ddns = 536,                       // dhcp_ddns
-        S_537_111 = 537,                         // $@111
-        S_sub_dhcp_ddns = 538,                   // sub_dhcp_ddns
-        S_539_112 = 539,                         // $@112
-        S_dhcp_ddns_params = 540,                // dhcp_ddns_params
-        S_dhcp_ddns_param = 541,                 // dhcp_ddns_param
-        S_enable_updates = 542,                  // enable_updates
-        S_server_ip = 543,                       // server_ip
-        S_544_113 = 544,                         // $@113
-        S_server_port = 545,                     // server_port
-        S_sender_ip = 546,                       // sender_ip
-        S_547_114 = 547,                         // $@114
-        S_sender_port = 548,                     // sender_port
-        S_max_queue_size = 549,                  // max_queue_size
-        S_ncr_protocol = 550,                    // ncr_protocol
-        S_551_115 = 551,                         // $@115
-        S_ncr_protocol_value = 552,              // ncr_protocol_value
-        S_ncr_format = 553,                      // ncr_format
-        S_554_116 = 554,                         // $@116
-        S_dep_qualifying_suffix = 555,           // dep_qualifying_suffix
-        S_556_117 = 556,                         // $@117
-        S_dep_override_no_update = 557,          // dep_override_no_update
-        S_dep_override_client_update = 558,      // dep_override_client_update
-        S_dep_replace_client_name = 559,         // dep_replace_client_name
-        S_560_118 = 560,                         // $@118
-        S_dep_generated_prefix = 561,            // dep_generated_prefix
-        S_562_119 = 562,                         // $@119
-        S_dep_hostname_char_set = 563,           // dep_hostname_char_set
-        S_564_120 = 564,                         // $@120
-        S_dep_hostname_char_replacement = 565,   // dep_hostname_char_replacement
-        S_566_121 = 566,                         // $@121
-        S_dhcp6_json_object = 567,               // dhcp6_json_object
-        S_568_122 = 568,                         // $@122
-        S_dhcpddns_json_object = 569,            // dhcpddns_json_object
-        S_570_123 = 570,                         // $@123
-        S_control_agent_json_object = 571,       // control_agent_json_object
-        S_572_124 = 572,                         // $@124
-        S_config_control = 573,                  // config_control
+        S_only_if_required = 510,                // only_if_required
+        S_dhcp4o6_port = 511,                    // dhcp4o6_port
+        S_control_socket = 512,                  // control_socket
+        S_513_104 = 513,                         // $@104
+        S_control_socket_params = 514,           // control_socket_params
+        S_control_socket_param = 515,            // control_socket_param
+        S_control_socket_type = 516,             // control_socket_type
+        S_517_105 = 517,                         // $@105
+        S_control_socket_name = 518,             // control_socket_name
+        S_519_106 = 519,                         // $@106
+        S_dhcp_queue_control = 520,              // dhcp_queue_control
+        S_521_107 = 521,                         // $@107
+        S_queue_control_params = 522,            // queue_control_params
+        S_queue_control_param = 523,             // queue_control_param
+        S_enable_queue = 524,                    // enable_queue
+        S_queue_type = 525,                      // queue_type
+        S_526_108 = 526,                         // $@108
+        S_capacity = 527,                        // capacity
+        S_arbitrary_map_entry = 528,             // arbitrary_map_entry
+        S_529_109 = 529,                         // $@109
+        S_dhcp_ddns = 530,                       // dhcp_ddns
+        S_531_110 = 531,                         // $@110
+        S_sub_dhcp_ddns = 532,                   // sub_dhcp_ddns
+        S_533_111 = 533,                         // $@111
+        S_dhcp_ddns_params = 534,                // dhcp_ddns_params
+        S_dhcp_ddns_param = 535,                 // dhcp_ddns_param
+        S_enable_updates = 536,                  // enable_updates
+        S_server_ip = 537,                       // server_ip
+        S_538_112 = 538,                         // $@112
+        S_server_port = 539,                     // server_port
+        S_sender_ip = 540,                       // sender_ip
+        S_541_113 = 541,                         // $@113
+        S_sender_port = 542,                     // sender_port
+        S_max_queue_size = 543,                  // max_queue_size
+        S_ncr_protocol = 544,                    // ncr_protocol
+        S_545_114 = 545,                         // $@114
+        S_ncr_protocol_value = 546,              // ncr_protocol_value
+        S_ncr_format = 547,                      // ncr_format
+        S_548_115 = 548,                         // $@115
+        S_dep_qualifying_suffix = 549,           // dep_qualifying_suffix
+        S_550_116 = 550,                         // $@116
+        S_dep_override_no_update = 551,          // dep_override_no_update
+        S_dep_override_client_update = 552,      // dep_override_client_update
+        S_dep_replace_client_name = 553,         // dep_replace_client_name
+        S_554_117 = 554,                         // $@117
+        S_dep_generated_prefix = 555,            // dep_generated_prefix
+        S_556_118 = 556,                         // $@118
+        S_dep_hostname_char_set = 557,           // dep_hostname_char_set
+        S_558_119 = 558,                         // $@119
+        S_dep_hostname_char_replacement = 559,   // dep_hostname_char_replacement
+        S_560_120 = 560,                         // $@120
+        S_config_control = 561,                  // config_control
+        S_562_121 = 562,                         // $@121
+        S_sub_config_control = 563,              // sub_config_control
+        S_564_122 = 564,                         // $@122
+        S_config_control_params = 565,           // config_control_params
+        S_config_control_param = 566,            // config_control_param
+        S_config_databases = 567,                // config_databases
+        S_568_123 = 568,                         // $@123
+        S_config_fetch_wait_time = 569,          // config_fetch_wait_time
+        S_loggers = 570,                         // loggers
+        S_571_124 = 571,                         // $@124
+        S_loggers_entries = 572,                 // loggers_entries
+        S_logger_entry = 573,                    // logger_entry
         S_574_125 = 574,                         // $@125
-        S_sub_config_control = 575,              // sub_config_control
-        S_576_126 = 576,                         // $@126
-        S_config_control_params = 577,           // config_control_params
-        S_config_control_param = 578,            // config_control_param
-        S_config_databases = 579,                // config_databases
-        S_580_127 = 580,                         // $@127
-        S_config_fetch_wait_time = 581,          // config_fetch_wait_time
-        S_logging_object = 582,                  // logging_object
-        S_583_128 = 583,                         // $@128
-        S_sub_logging = 584,                     // sub_logging
-        S_585_129 = 585,                         // $@129
-        S_logging_params = 586,                  // logging_params
-        S_logging_param = 587,                   // logging_param
-        S_loggers = 588,                         // loggers
-        S_589_130 = 589,                         // $@130
-        S_loggers_entries = 590,                 // loggers_entries
-        S_logger_entry = 591,                    // logger_entry
-        S_592_131 = 592,                         // $@131
-        S_logger_params = 593,                   // logger_params
-        S_logger_param = 594,                    // logger_param
-        S_debuglevel = 595,                      // debuglevel
-        S_severity = 596,                        // severity
-        S_597_132 = 597,                         // $@132
-        S_output_options_list = 598,             // output_options_list
-        S_599_133 = 599,                         // $@133
-        S_output_options_list_content = 600,     // output_options_list_content
-        S_output_entry = 601,                    // output_entry
-        S_602_134 = 602,                         // $@134
-        S_output_params_list = 603,              // output_params_list
-        S_output_params = 604,                   // output_params
-        S_output = 605,                          // output
-        S_606_135 = 606,                         // $@135
-        S_flush = 607,                           // flush
-        S_maxsize = 608,                         // maxsize
-        S_maxver = 609,                          // maxver
-        S_pattern = 610,                         // pattern
-        S_611_136 = 611                          // $@136
+        S_logger_params = 575,                   // logger_params
+        S_logger_param = 576,                    // logger_param
+        S_debuglevel = 577,                      // debuglevel
+        S_severity = 578,                        // severity
+        S_579_126 = 579,                         // $@126
+        S_output_options_list = 580,             // output_options_list
+        S_581_127 = 581,                         // $@127
+        S_output_options_list_content = 582,     // output_options_list_content
+        S_output_entry = 583,                    // output_entry
+        S_584_128 = 584,                         // $@128
+        S_output_params_list = 585,              // output_params_list
+        S_output_params = 586,                   // output_params
+        S_output = 587,                          // output
+        S_588_129 = 588,                         // $@129
+        S_flush = 589,                           // flush
+        S_maxsize = 590,                         // maxsize
+        S_maxver = 591,                          // maxver
+        S_pattern = 592,                         // pattern
+        S_593_130 = 593                          // $@130
       };
     };
 
@@ -1344,30 +1321,30 @@ namespace isc { namespace dhcp {
       {
         switch (this->kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -1481,30 +1458,30 @@ namespace isc { namespace dhcp {
         // Value type destructor.
 switch (yykind)
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1598,13 +1575,13 @@ switch (yykind)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -4167,21 +4144,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_LOGGING (location_type l)
-      {
-        return symbol_type (token::TOKEN_LOGGING, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_LOGGING (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_LOGGING, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4317,51 +4279,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_PATTERN, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_DHCP6 (location_type l)
-      {
-        return symbol_type (token::TOKEN_DHCP6, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_DHCP6 (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_DHCP6, l);
-      }
-#endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_DHCPDDNS (location_type l)
-      {
-        return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_DHCPDDNS (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_DHCPDDNS, l);
-      }
-#endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_CONTROL_AGENT (location_type l)
-      {
-        return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_CONTROL_AGENT (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_CONTROL_AGENT, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4542,21 +4459,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_SUB_LOGGING (location_type l)
-      {
-        return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_SUB_LOGGING (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_SUB_LOGGING, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4962,9 +4864,9 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1357,     ///< Last index in yytable_.
-      yynnts_ = 417,  ///< Number of nonterminal symbols.
-      yyfinal_ = 30 ///< Termination state number.
+      yylast_ = 1160,     ///< Last index in yytable_.
+      yynnts_ = 404,  ///< Number of nonterminal symbols.
+      yyfinal_ = 28 ///< Termination state number.
     };
 
 
@@ -5027,9 +4929,9 @@ switch (yykind)
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194
+     185,   186,   187,   188,   189
     };
-    const int user_token_number_max_ = 449;
+    const int user_token_number_max_ = 444;
 
     if (t <= 0)
       return symbol_kind::S_YYEOF;
@@ -5048,30 +4950,30 @@ switch (yykind)
   {
     switch (this->kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -5104,30 +5006,30 @@ switch (yykind)
     super_type::move (s);
     switch (this->kind ())
     {
-      case 211: // value
-      case 215: // map_value
-      case 256: // ddns_replace_client_name_value
-      case 278: // socket_type
-      case 281: // outbound_interface_value
-      case 303: // db_type
-      case 397: // hr_mode
-      case 552: // ncr_protocol_value
+      case 205: // value
+      case 209: // map_value
+      case 250: // ddns_replace_client_name_value
+      case 272: // socket_type
+      case 275: // outbound_interface_value
+      case 297: // db_type
+      case 391: // hr_mode
+      case 546: // ncr_protocol_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 194: // "boolean"
+      case 189: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 193: // "floating point"
+      case 188: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 192: // "integer"
+      case 187: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 191: // "constant string"
+      case 186: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -5194,7 +5096,7 @@ switch (yykind)
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 5198 "dhcp4_parser.h"
+#line 5100 "dhcp4_parser.h"
 
 
 
index 01810729cecc6a4dd830922a717718198b97a7cf..08fd5df2acb1200488b4dbfc5067b674d283b85b 100644 (file)
@@ -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 208
-#define YY_END_OF_BUFFER 209
+#define YY_NUM_RULES 204
+#define YY_END_OF_BUFFER 205
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,214 +700,211 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1873] =
+static const flex_int16_t yy_accept[1845] =
     {   0,
-      201,  201,    0,    0,    0,    0,    0,    0,    0,    0,
-      209,  207,   10,   11,  207,    1,  201,  198,  201,  201,
-      207,  200,  199,  207,  207,  207,  207,  207,  194,  195,
-      207,  207,  207,  196,  197,    5,    5,    5,  207,  207,
-      207,   10,   11,    0,    0,  190,    0,    0,    0,    0,
+      197,  197,    0,    0,    0,    0,    0,    0,    0,    0,
+      205,  203,   10,   11,  203,    1,  197,  194,  197,  197,
+      203,  196,  195,  203,  203,  203,  203,  203,  190,  191,
+      203,  203,  203,  192,  193,    5,    5,    5,  203,  203,
+      203,   10,   11,    0,    0,  186,    0,    0,    0,    0,
         0,    0,    0,    0,    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,  201,
-      201,    0,  200,  201,    3,    2,    6,    0,  201,    0,
-        0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
+        0,    0,    0,    0,    0,    0,    0,    1,  197,  197,
+        0,  196,  197,    3,    2,    6,    0,  197,    0,    0,
+        0,    0,    0,    0,    4,    0,    0,    9,    0,  187,
 
-      191,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  193,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  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,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    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,  161,    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,  160,    0,    0,  161,    0,    0,
 
-        0,  162,    0,    0,    0,    0,    0,    0,    0,    0,
-      192,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  188,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    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,
+      112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,    0,    0,  202,  200,    0,  199,
+      198,    0,    0,    0,    0,    0,    0,  159,    0,   28,
+        0,   27,    0,    0,  119,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   55,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  206,  204,    0,  203,  202,    0,    0,    0,    0,
-        0,    0,    0,  160,    0,    0,   28,    0,   27,    0,
-        0,  119,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   55,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    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,    0,  116,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  201,
+      198,    0,    0,    0,    0,    0,   29,    0,   31,    0,
+        0,    0,    0,    0,    0,    0,  120,    0,    0,    0,
+        0,    0,    0,    0,   97,    0,    0,    0,    0,    0,
+        0,    0,    0,  144,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   58,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  205,  202,    0,    0,
-        0,    0,    0,    0,    0,    0,   29,    0,    0,   31,
-        0,    0,    0,    0,    0,    0,    0,  120,    0,    0,
-        0,    0,    0,    0,    0,   97,    0,    0,    0,    0,
-        0,    0,    0,    0,  145,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   58,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,   96,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  106,    0,   59,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   96,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  106,    0,   59,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  139,    0,  164,   51,    0,   56,    0,    0,
+        0,    0,    0,   37,   34,   33,    0,    0,    0,  152,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  140,    0,  165,   51,    0,   56,    0,
-        0,    0,    0,    0,    0,  187,   37,    0,   34,    0,
-       33,    0,    0,    0,  153,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
 
+        0,    0,    0,    0,    0,    0,    0,    0,  163,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  131,    0,    0,    0,    0,    0,
-        0,    0,    0,  164,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   53,    0,    0,   32,    0,
+       53,    0,    0,   32,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  153,    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,    7,   35,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  154,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  149,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
 
-       35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
+      118,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  132,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  129,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  101,    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,  130,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  101,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  109,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  109,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  127,    0,    0,    0,    0,    0,    0,  108,    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,    0,
-        0,    0,    0,    0,    0,    0,    0,  148,    0,    0,
+        0,    0,    0,    0,    0,    0,  147,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  158,  128,    0,    0,    0,    0,    0,
-        0,    0,  132,   52,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  134,    0,   60,
-
+        0,    0,  157,  127,    0,    0,    0,    0,    0,    0,
+        0,  131,   52,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  133,    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,   91,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  188,    0,    0,    0,    0,  185,    0,    0,
+        0,   91,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  184,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  115,
+        0,    0,    0,    0,    0,    0,  115,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
+        0,    0,    0,    0,    0,    0,   63,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  147,    0,    0,    0,    0,    0,    0,   63,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       57,  100,    0,    0,    0,  143,    0,    0,    0,    0,
 
+       50,    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,    0,   57,  100,    0,    0,    0,  144,    0,
-        0,    0,    0,   50,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  136,    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,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  186,
+        0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    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,    0,    0,    0,    0,    0,   41,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       16,    0,    0,  158,   14,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   41,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   16,    0,    0,  159,   14,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  149,    0,    0,    0,    0,    0,    0,  134,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  150,    0,    0,
-        0,    0,    0,    0,  135,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  145,  162,
+        0,   40,    0,  154,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   20,    0,
+
+        0,    0,   94,    0,    0,    0,    0,    0,  156,   54,
+        0,  102,    0,  183,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
+        0,    0,    0,    0,    0,  125,  126,    0,    0,    0,
+        0,    0,    0,    0,    0,   98,    0,    0,    0,    0,
+        0,    0,   64,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  151,    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,   95,  117,    0,
 
-        0,    0,    0,  146,  163,    0,   40,    0,  155,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   20,    0,    0,    0,   94,    0,    0,
-        0,    0,    0,  157,   54,    0,  102,    0,  184,    0,
+        0,   79,    0,    0,    0,    0,    0,    0,   17,    0,
+       15,    0,  180,  179,    0,    0,    0,   69,    0,    0,
+        0,    0,    0,   30,    0,  138,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   82,    0,    0,    0,    0,    0,
-      125,  126,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   98,    0,    0,    0,    0,    0,    0,   64,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  152,    0,    0,    0,    0,    0,
+        0,    0,  173,    0,  182,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  111,    0,  142,   43,
+        0,   61,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   19,    0,    0,    0,    0,    0,    0,    0,
+      113,   80,    0,    0,  150,    0,    0,    0,    0,    0,
 
+      141,    0,    0,    0,    0,    0,    0,    0,    0,  107,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  121,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   95,  117,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
-        0,    0,    0,    0,   17,    0,   15,    0,  181,  180,
-        0,    0,    0,   69,    0,    0,    0,    0,    0,    0,
-       30,    0,  139,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  174,
-        0,  183,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  111,    0,  143,   43,    0,   61,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   19,
-        0,    0,    0,    0,    0,    0,    0,  113,   80,    0,
-        0,  151,    0,    0,    0,    0,    0,  142,    0,    0,
-        0,    0,    0,    0,    0,    0,  107,    0,  189,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  105,    0,    0,    0,  166,
+        0,    0,    0,    0,    0,    0,    0,  105,    0,    0,
+        0,  165,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   42,    0,    0,
+        0,    0,   68,    0,    0,    0,    0,    0,  136,   47,
+        0,    0,    0,   70,  178,   38,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,   45,    0,    0,   44,    0,
+       18,    0,    0,    0,   72,    0,    0,    0,    0,    0,
+      128,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   76,
+        0,    0,    0,    0,   62,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  103,    0,    0,    0,    0,    0,
+      155,    0,    0,    0,   46,    0,    0,    0,    0,    0,
+        0,    0,    0,  174,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   67,    0,    0,    0,   93,    0,
+        0,    0,    0,   36,    0,   48,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   24,
+        0,    0,    0,    0,    0,    0,    0,  171,    0,    0,
+        0,    0,  140,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  114,    0,    0,    0,  176,    0,    0,
+        0,    0,    0,    0,    0,    0,   85,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   25,   39,    0,    0,
+        0,    0,    0,    0,    0,    0,  177,    0,   13,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   42,    0,    0,    0,    0,
-
-       68,    0,    0,    0,    0,    0,  137,   47,    0,    0,
-        0,   70,  179,   38,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   12,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   45,    0,    0,   44,    0,   18,    0,
-        0,    0,   72,    0,    0,    0,    0,    0,  129,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   76,    0,    0,
-        0,    0,   62,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  103,    0,    0,    0,    0,    0,  156,    0,
-        0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
-
-        0,  175,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   67,    0,    0,    0,   93,    0,    0,    0,
-        0,   36,    0,   48,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   24,    0,    0,
-        0,    0,    0,    0,    0,  172,    0,    0,    0,    0,
-      141,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  114,    0,    0,    0,  177,    0,    0,    0,    0,
-        0,    0,    0,    0,   85,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   25,   39,    0,    0,    0,    0,
-        0,    0,    0,    0,  178,    0,   13,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  181,    0,    0,    0,
+        0,    0,    0,    0,    0,  170,    0,   78,    0,   77,
 
+        0,   21,   73,    0,    0,    0,    0,    0,   65,    0,
+        0,    0,  124,    0,    0,    0,    0,    0,    0,    0,
+        0,  104,    0,    0,  169,    0,    0,    0,   71,    0,
+        0,    0,   66,    0,   23,    0,    0,   92,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  182,    0,    0,    0,    0,    0,
-        0,    0,    0,  171,    0,   78,    0,   77,    0,   21,
-       73,    0,    0,    0,    0,    0,   65,    0,    0,    0,
-      124,    0,    0,    0,    0,    0,    0,    0,    0,  104,
-        0,    0,  170,    0,    0,    0,   71,    0,    0,    0,
-       66,    0,   23,    0,    0,   92,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   89,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,   49,    0,    0,
-       90,    0,    0,  176,    0,    0,    0,    0,   75,   74,
-       22,    0,  122,  138,    0,    0,    0,   86,    0,    0,
-        0,    0,    0,    0,  168,    0,  173,    0,   88,   81,
-        0,    0,    0,    0,    0,    0,  167,    0,    0,   26,
-        0,    0,    0,    0,    0,    0,    0,   87,    0,    0,
-        0,    0,    0,  123,   84,    0,    0,    0,    0,   83,
-      169,    0
+       89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   49,
+        0,    0,   90,    0,    0,  175,    0,    0,    0,    0,
+       75,   74,   22,    0,  122,  137,    0,    0,    0,   86,
+
+        0,    0,    0,    0,    0,    0,  167,    0,  172,    0,
+       88,   81,    0,    0,    0,    0,    0,    0,  166,    0,
+        0,   26,    0,    0,    0,    0,    0,    0,    0,   87,
+        0,    0,    0,    0,    0,  123,   84,    0,    0,    0,
+        0,   83,  168,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -954,591 +951,585 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1885] =
+static const flex_int16_t yy_base[1857] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2274, 2275,   34, 2270,  145,    0,  207, 2275,  214,  221,
-       13,  228, 2275, 2250,  118,   25,    2,    6, 2275, 2275,
-       73,   11,   17, 2275, 2275, 2275,  104, 2258, 2211,    0,
-     2248,  108, 2265,   24,  256, 2275,   67, 2207, 2213, 2233,
-       84,   75,  189,   88,  226,   91,   89,  284,  196,  206,
-      279,  191,  210,  197,   60,  216, 2214,  241,  288,  309,
-      301,  315, 2197,  212,  320,  367,  320, 2216,    0,  373,
-      381,  395,  424,  429, 2275,    0, 2275,  410,  443,  241,
-      242,  306,  269,  299,  310, 2275, 2213, 2254, 2275,  297,
-
-     2275,  442,  337, 2200, 2210, 2251,  306,   10,  395, 2204,
-      355,  373,  397,  415,  324, 2249,    0,  495,  410, 2191,
-      219, 2199,  413, 2195, 2184, 2185, 2190,  418, 2200, 2183,
-     2192,  368,  416,  219, 2186, 2184,  423, 2173, 2231,  423,
-     2176, 2229, 2169, 2192, 2189, 2189, 2183,  421, 2176, 2174,
-     2175, 2167, 2172, 2166,  414, 2177, 2170, 2161, 2160, 2174,
-      434, 2212, 2159,  428, 2171,  450, 2159,  491, 2160,  465,
-     2172, 2169, 2170,  293, 2168, 2203, 2202,  434, 2148, 2148,
-     2152, 2148, 2140, 2157, 2149,    0,  450,  472,  467,  470,
-      473,  499, 2148, 2275,    0,  508, 2139, 2142, 2275,  497,
-
-      503, 2275, 2196, 2149,  509, 2194,  513, 2193,  515, 2192,
-     2275,  561, 2191,  534, 2150, 2147, 2148, 2143, 2142, 2133,
-      505, 2184, 2178, 2142, 2123, 2120, 2128, 2134, 2122, 2136,
-     2132, 2133, 2133, 2128, 2120, 2122, 2106, 2110, 2123, 2125,
-     2122, 2114, 2104, 2107, 2121, 2275, 2107, 2115, 2118, 2099,
-     2098, 2150, 2097, 2107, 2147,  504, 2106, 2145, 2090, 2092,
-     2103, 2141,  531, 2145, 2080, 2095,  505, 2085, 2091, 2100,
-     2081, 2079, 2082, 2078, 2084, 2075, 2074, 2087, 2080, 2070,
-     2081, 2085, 2084, 2078,  533, 2085, 2080, 2072, 2062, 2077,
-     2072, 2076,  506, 2074, 2060, 2066, 2073, 2055, 2056, 2059,
-
-     2056, 2055,  561, 2050, 2064, 2063, 2062, 2065, 2047, 2055,
-      555, 2275, 2275,  556, 2275, 2275, 2042,    0,  524, 2044,
-      574,  568, 2100, 2275, 2051,  561, 2275, 2098, 2275, 2092,
-      611, 2275,  560, 2032, 2035, 2052, 2040, 2092, 2047, 2042,
-     2045, 2040,   80, 2275, 2042,  591, 2081, 2039, 2036, 2037,
-      587, 2041, 2081, 2029, 2024, 2021, 2017, 2019, 2070, 2027,
-     2016, 2032, 2066, 2012,  608, 2025, 2025, 2008, 2009, 2022,
-     2009, 2019, 2014, 2021, 2016, 2001,  554, 2010, 2013, 2008,
-      579, 2007, 2003, 2053,  552,  585, 2275, 2047, 1997, 1996,
-     1989, 1991, 2003, 1994, 1983, 2000, 1989, 1994,  616, 2041,
-
-     1994,  591, 1991, 1994, 1994, 1992, 1981, 1981, 1993,  584,
-     1968, 1969, 1990,  599, 1972, 1969, 1983, 1986, 1981, 1967,
-     1979, 1978, 1977, 1972, 1975, 1974, 1973, 1972,  595, 2015,
-     1974, 2013, 2012, 1954,  644, 1967, 2275, 2275, 1966,    0,
-      606, 1954, 2007, 2006, 1962, 2004, 2275, 1950, 2002, 2275,
-      631,  679,  620, 2001, 1949, 1951, 1939, 2275, 1944, 1950,
-     1953, 1936, 1951, 1938, 1937, 2275, 1947,  614, 1938, 1935,
-     1947,  582, 1932, 1934, 2275, 1940, 1925, 1927, 1938, 1936,
-     1931,  658, 1938, 1926, 1919, 1970, 2275, 1917, 1933, 1967,
-     1971, 1927, 1921, 1923, 1924, 1926, 1960, 1911, 1906, 1905,
-
-     1907, 1903, 1899,  573, 1918, 1892, 1899, 1904, 1897, 1913,
-     1947, 1951, 2275, 1896, 1892, 1948, 1899, 1893, 1900, 1885,
-     1895, 1883, 1897, 1886, 1882, 1884, 1879, 2275, 1936, 2275,
-     1878, 1877, 1870, 1887, 1926, 1925, 1870, 1875, 1884, 1878,
-     1872, 1881,  662, 1918, 1880, 1863, 1863, 1858, 1854, 1860,
-     1865, 1858, 1866, 1870, 1853, 1911, 1852, 1904, 1849, 1850,
-     1849, 1861, 1850, 2275, 1860, 2275, 2275, 1849, 2275, 1859,
-     1895, 1855,    0, 1898, 1846, 2275, 2275, 1843, 2275, 1849,
-     2275,  619,  636,  675, 2275, 1854, 1834, 1887, 1832, 1885,
-     1830, 1829, 1828, 1835, 1828, 1836, 1839, 1821, 1821, 1836,
-
-     1835, 1834, 1833, 1817, 1832, 1814, 1861, 1828, 1866, 1810,
-     1812, 1824, 1824, 1823, 2275, 1808, 1805, 1863, 1818, 1810,
-     1816, 1807, 1815, 2275, 1800, 1811, 1815, 1797, 1811,  370,
-     1793, 1787, 1792, 1789, 1804, 1803, 1804, 1783, 1793, 1799,
-     1842, 1797, 1796, 1788, 1779, 2275, 1780, 1782, 2275, 1790,
-     1829, 1828,   16, 1789, 1826, 1771, 1772, 1775, 1776, 1767,
-     2275, 1781, 1767,  702, 1759, 1763, 1779, 1776, 1768, 1813,
-     1765, 1772, 1810, 2275, 1756, 1754, 1768, 1752, 1766, 1769,
-     1803, 1802, 1801, 1800, 1745, 1798, 1797, 2275, 1742, 1756,
-      669, 1757, 1756, 1753, 1753, 1790, 1750, 1739, 1741, 2275,
-
-     2275, 1786, 1732, 1789,  645,  661, 1730, 1728, 1722, 1743,
-     1784,  666, 1778, 1738, 1776, 1775, 1727, 1721, 1724, 1732,
-     1735, 1719, 1720, 1711, 1766, 1726,   82,  291,  360,  354,
-      654,  395,  400,  421,  473,  519,  477,  501, 2275,  551,
-      578,  619,  635,  643,  641,  644,  652,  651,  659,  665,
-      673,  671,  716,  717,  661,  680,  666,  676,  723,  681,
-      731, 2275,  732,  688,  686,  688,  684,  678,  733,  696,
-      685, 2275,  687,  698,  687,  700,  702,  747,  690,  749,
-      692,  707, 2275,  701,  695,  706,  691,  702,  715,  694,
-      700,  755,  719,  703,  703,  716,  760,  761,  762,  709,
-
-      727,  722,  729,  724,  709,  721,  722,  728,  715, 2275,
-      780,  738,  740,  730,  742,  732,  745,  736,  742,  751,
-      792, 2275,  788,  764,  751,  752,  797,  747, 2275,  745,
-      760,  757,  743,  750,  749,  747,  766,  763,  764,  752,
-      759,  760,  769,  769,  759,  772,  758,  757,  763,  819,
-      760,  761,  768,  784,  767,  821,  776, 2275,  786,  786,
-      779,  790,  788,  833,  775,  777,  792,  793,  781,  840,
-      797,  783,  786, 2275, 2275,  802,  801,  802,  807,  795,
-      805,  807, 2275, 2275,  807,  809,  796,  814,  801,  799,
-      817,  804,  804,  855,  802,  806,  864, 2275,  865, 2275,
-
-      810,  824,  824,  869,  817,  816,  820,  814,  874,  827,
-      817,  818,  814,  824,  828,  839,  823,  841,  836,  838,
-      831,  833,  834,  846,  836,  851,  892,  849,  854,  831,
-      854,  838, 2275,  845,  846,  860,  851,  849,  899,  846,
-      861,  861, 2275,  880,  888,  857,  906, 2275,  872,  860,
-      855,  856,  868,  875,  864,  865,  861,  879,  865,  866,
-      876,  885,  921,  876,  871,  924,  930,  887,  879, 2275,
-      883,  892,  894,  879,  895,  885,  897,  891,  938,  904,
-      888,  889, 2275,  905,  908,  891,  893,  951,  894, 2275,
-      911,  914,  894,  913,  901,  954,  912,  908,  905,  958,
-
-      907,  960,  922,  908,  926,  925,  911,  926,  918,  914,
-      932,  931,  918, 2275, 2275,  926,  973,  926, 2275,  934,
-      937,  930,  983, 2275,  932,  938,  982,  933,  934,  946,
-      940,  944,  942,  940,  951,  996,  940,  945,  999, 1000,
-      944,  956, 2275,  944,  952,  950, 1001,  963,  949,  951,
-      960,  972,  959,  957,  971,  972,  973,  989,  994,  976,
-      962,  964,  964,  984,  983,  974,  963,  980,  987, 1030,
-      972,  992,  985,  989,  993,  976, 1037,  984,  988, 2275,
-     1035,  984,  983,  983, 1004, 1001, 1043,  992, 1010, 1011,
-      997, 1005, 1014,  994, 1009, 1016, 1058, 1059, 2275, 1012,
-
-     1061, 1062, 1013, 1023, 1025, 1009, 1011, 1011, 1018, 1027,
-     1015, 1022, 1017, 1024, 1036, 1077, 1024, 1023, 1040, 1081,
-     1031, 1035, 1033, 1031, 1026, 1087, 1088, 1038, 1090, 1086,
-     1092, 1045, 2275, 1050, 1043, 1034, 1053, 1047, 1042, 1052,
-     1049, 1054, 1050, 1062, 2275, 1046, 1049, 2275, 2275, 1049,
-     1109, 1048, 1067, 1068, 1070, 1061, 1115, 1116, 1069, 1054,
-     1068, 1076, 1058, 1063, 1070, 1103, 1094, 1126, 1083, 1070,
-     1072, 1089, 1084, 1088, 1133, 1081, 1085, 2275, 1082, 1078,
-     1095, 1075, 1096, 1086, 2275, 1101, 1099, 1102, 1086, 1098,
-     1104, 1090, 1150, 1103, 1108, 1096, 1107, 1099, 1105, 1101,
-
-     1119, 1120, 1121, 2275, 2275, 1119, 2275, 1121, 2275, 1106,
-     1107, 1126, 1116, 1168, 1125, 1122, 1166, 1130, 1119, 1126,
-     1131, 1128, 1134, 2275, 1127, 1119, 1180, 2275, 1181, 1128,
-     1135, 1179, 1141, 2275, 2275, 1138, 2275, 1129, 2275, 1129,
-     1132, 1146, 1151, 1134, 1145, 1194, 1151, 1152, 1153, 1193,
-     1149, 1200, 1153, 1202, 2275, 1149, 1204, 1205, 1162, 1164,
-     2275, 2275, 1147, 1209, 1205, 1169, 1153, 1165, 1155, 1185,
-     1216, 2275, 1173, 1218, 1165, 1180, 1216, 1168, 2275, 1164,
-     1180, 1168, 1182, 1183, 1180, 1224, 1187, 1191, 1179, 1179,
-     1234, 1230, 1236, 1193, 2275, 1195, 1194, 1196, 1189, 1198,
-
-     1200, 1197, 1187, 1190, 1190, 1249, 1196, 1252, 1253, 1196,
-     1255, 2275, 1213, 1192, 1207, 1200, 1203, 1216, 1220, 1219,
-     1217, 1267, 1220, 2275, 2275, 1216, 1226, 1211, 1267, 1228,
-     1214, 1275, 1276, 1220, 1230, 1279, 1236, 2275, 1228, 1228,
-     1230, 1232, 1285, 1228, 2275, 1229, 2275, 1231, 2275, 2275,
-     1244, 1246, 1247, 2275, 1234, 1242, 1294, 1243, 1296, 1276,
-     2275, 1293, 2275, 1241, 1249, 1243, 1240, 1243, 1246, 1246,
-     1242, 1264, 1303, 1256, 1268, 1271, 1253, 1313, 1261, 2275,
-     1256, 2275, 1258, 1317, 1270, 1261, 1277, 1277, 1280, 1280,
-     1277, 1321, 1283, 2275, 1275, 2275, 2275, 1285, 2275, 1325,
-
-     1287, 1288, 1285, 1329, 1277, 1292, 1332, 1294, 1286, 2275,
-     1283, 1283, 1289, 1288, 1286, 1301, 1301, 2275, 2275, 1342,
-     1289, 2275, 1306, 1291, 1291, 1293, 1299, 2275, 1354, 1296,
-     1306, 1317, 1315, 1359, 1312, 1321, 2275, 1318, 2275, 1337,
-     1305, 1365, 1366, 1323, 1328, 1310, 1370, 1371, 1372, 1368,
-     1332, 1329, 1325, 1318, 1330, 2275, 1320, 1333, 1381, 2275,
-     1319, 1378, 1341, 1338, 1382, 1330, 1335, 1334, 1393, 1349,
-     1395, 1345, 1397, 1358, 1347, 1341, 1401, 1343, 1352, 1345,
-     1359, 1362, 1407, 1349, 1366, 1362, 1352, 1367, 1351, 1409,
-     1410, 1411, 1358, 1413, 1376, 2275, 1376, 1363, 1362, 1418,
-
-     2275, 1359, 1377, 1426, 1396, 1380, 2275, 2275, 1371, 1382,
-     1431, 2275, 2275, 2275, 1377, 1382, 1380, 1430, 1388, 1393,
-     1384, 1382, 1383, 2275, 1441, 1387, 1438, 1381, 1386, 1447,
-     1395, 1405, 1406, 2275, 1452, 1405, 2275, 1406, 2275, 1398,
-     1413, 1401, 2275, 1411, 1412, 1413, 1462, 1420, 2275, 1459,
-     1425, 1401, 1419, 1420, 1429, 1411, 1417, 1419, 1473, 1432,
-     1431, 1423, 1477, 1427, 1431, 1436, 1429, 2275, 1482, 1431,
-     1484, 1426, 2275, 1429, 1439, 1483, 1431, 1446, 1433, 1439,
-     1439, 1450, 2275, 1444, 1439, 1438, 1498, 1451, 2275, 1495,
-     1446, 1443, 2275, 1457, 1459, 1461, 1506, 1459, 1456, 1464,
-
-     1458, 2275, 1511, 1452, 1454, 1470, 1463, 1453, 1469, 1470,
-     1464, 1480, 2275, 1470, 1522, 1481, 2275, 1465, 1472, 1526,
-     1522, 2275, 1484, 2275, 1524, 1486, 1487, 1472, 1473, 1481,
-     1535, 1531, 1486, 1498, 1495, 1486, 1493, 2275, 1490, 1495,
-     1493, 1545, 1546, 1503, 1490, 2275, 1505, 1506, 1507, 1508,
-     2275, 1498, 1510, 1555, 1512, 1557, 1499, 1507, 1501, 1509,
-     1522, 2275, 1499, 1559, 1520, 2275, 1524, 1509, 1509, 1524,
-     1517, 1516, 1527, 1514, 2275, 1519, 1575, 1533, 1524, 1536,
-     1527, 1536, 1538, 1542, 2275, 2275, 1524, 1584, 1527, 1586,
-     1528, 1588, 1546, 1590, 2275, 1591, 2275, 1587, 1549, 1546,
-
-     1551, 1538, 1597, 1540, 1545, 1536, 1601, 1554, 1555, 1545,
-     1562, 1561, 1602, 1564, 2275, 1561, 1610, 1567, 1568, 1613,
-     1570, 1573, 1568, 2275, 1617, 2275, 1570, 2275, 1579, 2275,
-     2275, 1561, 1621, 1568, 1623, 1566, 2275, 1585, 1626, 1585,
-     2275, 1576, 1566, 1625, 1591, 1584, 1580, 1577, 1582, 2275,
-     1578, 1580, 2275, 1585, 1595, 1588, 2275, 1589, 1583, 1595,
-     2275, 1591, 2275, 1601, 1594, 2275, 1596, 1604, 1649, 1590,
-     1592, 1589, 1613, 1606, 1609, 1598, 1652, 1599, 1607, 1616,
-     1617, 1618, 1611, 1606, 1607, 1611, 1623, 1668, 2275, 1614,
-     1626, 1671, 1620, 1619, 1674, 1627, 1614, 1629, 1634, 1679,
-
-     1680, 1681, 1638, 1683, 1684, 1634, 1628, 2275, 1644, 1688,
-     2275, 1645, 1647, 2275, 1638, 1652, 1648, 1641, 2275, 2275,
-     2275, 1695, 2275, 2275, 1652, 1697, 1658, 2275, 1699, 1700,
-     1655, 1654, 1655, 1645, 2275, 1700, 2275, 1647, 2275, 2275,
-     1707, 1649, 1665, 1710, 1671, 1668, 2275, 1709, 1658, 2275,
-     1670, 1663, 1718, 1660, 1662, 1677, 1662, 2275, 1675, 1724,
-     1725, 1673, 1675, 2275, 2275, 1669, 1685, 1730, 1731, 2275,
-     2275, 2275, 1737, 1742, 1747, 1752, 1757, 1762, 1767, 1770,
-     1744, 1749, 1751, 1764
+     2246, 2247,   34, 2242,  145,    0,  207, 2247,  214,  221,
+       13,  228, 2247, 2222,  118,   25,    2,    6, 2247, 2247,
+       73,   11,   17, 2247, 2247, 2247,  104, 2230, 2183,    0,
+     2220,  108, 2237,   24,  256, 2247,   67, 2186, 2206,   84,
+       75, 2206,   88,  226,   91,   89,  284,  196,  203,  279,
+      193,  224,  216,   60,  242, 2186,  286,  288,  314,  300,
+      319, 2169,  204,  324,  356,  329, 2188,    0,  380,  400,
+      420,  427,  406, 2247,    0, 2247,  385,  443,  238,  241,
+      310,  269,  299,  314, 2247, 2185, 2226, 2247,  405, 2247,
+
+      419,  400, 2183, 2224,  326,   10,  262,  407,  224,  409,
+      352,  206, 2223,    0,  472,  412, 2165,  219, 2173,  406,
+     2169, 2158, 2159, 2164,  424, 2174, 2157, 2166,  327,  415,
+      401, 2160, 2158,  444, 2147, 2205,  399, 2150, 2203, 2143,
+     2166, 2163, 2163, 2157,  339, 2150, 2148, 2149, 2141, 2146,
+     2140,  440, 2151, 2144, 2135, 2134, 2148,  446, 2186, 2133,
+      442, 2145,  466, 2133,  480, 2134,  466, 2146, 2143, 2144,
+      293, 2142, 2177, 2176,  469, 2122, 2122, 2126, 2122, 2114,
+     2131, 2123,    0,  479,  483,  486,  481,  493,  504, 2122,
+     2247,    0,  509, 2117, 2247,  498,  506, 2247, 2171,  508,
+
+     2170,  519, 2169,  515, 2168, 2247,  561, 2167,  525, 2126,
+     2123, 2124, 2119, 2118, 2109,  502, 2160, 2154, 2118, 2099,
+     2096, 2104, 2110, 2098, 2112, 2108, 2109, 2109, 2104, 2096,
+     2098, 2082, 2086, 2099, 2101, 2098, 2090, 2080, 2083, 2097,
+     2247, 2083, 2091, 2094, 2075, 2074, 2126, 2073, 2083, 2123,
+      538, 2082, 2121, 2066, 2068, 2079, 2117,  530, 2121, 2056,
+     2071,  540, 2061, 2067, 2076, 2057, 2055, 2058, 2054, 2060,
+     2051, 2050, 2063, 2056, 2046, 2057, 2061, 2060, 2054,  499,
+     2061, 2056, 2048, 2038, 2053, 2048, 2052,  506, 2050, 2036,
+     2042, 2049, 2031, 2032, 2035, 2032, 2031,  557, 2026, 2040,
+
+     2039, 2038, 2041, 2023, 2031,  543, 2247, 2247,  545, 2247,
+     2247, 2018,    0,  511, 2065,  556, 2076, 2247,  529, 2247,
+     2075, 2247, 2069,  599, 2247,  549, 2009, 2012, 2029, 2017,
+     2069, 2024, 2019, 2022, 2017,   80, 2247, 2019,  585, 2058,
+     2016, 2013, 2014,  583, 2018, 2058, 2006, 2001, 1998, 1994,
+     1996, 2047, 2004, 1993, 2009, 2043, 1989,  592, 2002, 2002,
+     1985, 1986, 1999, 1986, 1996, 1991, 1998, 1993, 1978,  567,
+     1987, 1990, 1985,  570, 1984, 1980, 2030,  422,  569, 2247,
+     2024, 1974, 1973, 1966, 1968, 1980, 1971, 1960, 1977, 1966,
+     1971,  576, 2018, 1971,  585, 1968, 1971, 1971, 1969, 1958,
+
+     1958, 1970,  579, 1945, 1946, 1967,  603, 1949, 1946, 1960,
+     1963, 1958, 1944, 1956, 1955, 1954, 1949, 1952, 1951, 1950,
+     1949,  562, 1992, 1951, 1990, 1989, 1931,  630, 1944, 2247,
+     2247, 1943,    0,  597, 1985, 1984, 2247, 1983, 2247,  620,
+      668,  607, 1982, 1930, 1932, 1920, 2247, 1925, 1931, 1934,
+     1917, 1932, 1919, 1918, 2247, 1928,  603, 1919, 1916, 1928,
+      610, 1913, 1915, 2247, 1921, 1906, 1908, 1919, 1917, 1912,
+      658, 1919, 1907, 1900, 1951, 2247, 1898, 1914, 1948, 1952,
+     1908, 1902, 1904, 1905, 1907, 1941, 1892, 1887, 1886, 1888,
+     1884, 1880,  608, 1899, 1873, 1880, 1885, 1878, 1894, 1928,
+
+     1932, 2247, 1877, 1873, 1929, 1880, 1874, 1881, 1866, 1876,
+     1864, 1878, 1867, 1863, 1865, 1860, 2247, 1917, 2247, 1859,
+     1858, 1851, 1868, 1907, 1906, 1851, 1856, 1865, 1859, 1853,
+     1862,  664, 1899, 1861, 1844, 1844, 1839, 1835, 1841, 1846,
+     1839, 1847, 1851, 1834, 1892, 1833, 1885, 1830, 1831, 1830,
+     1842, 1831, 2247, 1841, 2247, 2247, 1830, 2247, 1840, 1876,
+     1836,    0, 1879, 2247, 2247, 2247,  627,  627,  667, 2247,
+     1838, 1818, 1871, 1816, 1869, 1814, 1813, 1812, 1819, 1812,
+     1820, 1823, 1805, 1805, 1820, 1819, 1818, 1817, 1801, 1816,
+     1798, 1845, 1812, 1850, 1794, 1796, 1808, 1808, 1807, 2247,
+
+     1792, 1789, 1847, 1802, 1794, 1800, 1791, 1799, 2247, 1784,
+     1795, 1799, 1781, 1795,  444, 1777, 1771, 1776, 1773, 1788,
+     1787, 1788, 1767, 1777, 1783, 1826, 1781, 1780, 1772, 1763,
+     2247, 1764, 1766, 2247, 1774, 1813, 1812,   16, 1773, 1810,
+     1755, 1756, 1759, 1760, 1751, 2247, 1765, 1751,  691, 1743,
+     1747, 1763, 1760, 1752, 1797, 1749, 1756, 1794, 2247, 1740,
+     1738, 1752, 1736, 1750, 1753, 1787, 1786, 1785, 1784, 1729,
+     1782, 1781, 2247, 1726, 1740,  670, 1741, 1740, 1737, 1737,
+     1774, 1734, 1723, 1725, 2247, 2247,  640,  570, 1717, 1715,
+     1709, 1730, 1771,  650, 1765, 1725, 1763, 1762, 1714, 1708,
+
+     1711, 1719, 1722, 1706, 1707, 1698, 1753, 1713, 1703, 1711,
+     1749, 1710,  642, 1701, 1703, 1707, 1744, 1748, 1703, 1702,
+     2247, 1703, 1696, 1685, 1698,   95,  170,  221,  229,  242,
+      294,  310,  382,  403,  593,  638,  611,  629,  623,  646,
+      696,  655,  704, 2247,  705,  661,  659,  667,  663,  657,
+      712,  675,  664, 2247,  666,  677,  666,  679,  681,  725,
+      668,  727,  670,  685, 2247,  679,  673,  684,  669,  680,
+      694,  673,  679,  734,  698,  682,  682,  695,  739,  740,
+      741,  688,  706,  701,  708,  703,  688,  700,  701,  707,
+      694, 2247,  759,  717,  719,  709,  721,  711,  724,  715,
+
+      721,  765,  741,  728,  729,  774,  724, 2247,  722,  737,
+      734,  720,  727,  726,  724,  743,  740,  741,  729,  736,
+      737,  746,  746,  736,  749,  735,  734,  740,  796,  737,
+      738,  745,  761,  744,  798,  753, 2247,  763,  763,  756,
+      767,  765,  810,  752,  754,  769,  770,  758,  817,  774,
+      760,  763, 2247, 2247,  779,  778,  779,  784,  772,  782,
+      784, 2247, 2247,  784,  786,  773,  791,  778,  776,  794,
+      781,  781,  832,  779,  783,  841, 2247,  842, 2247,  787,
+      801,  801,  846,  794,  793,  797,  791,  851,  804,  794,
+      795,  791,  801,  805,  816,  800,  818,  813,  815,  808,
+
+      810,  811,  823,  813,  828,  869,  826,  831,  808,  831,
+      815, 2247,  822,  823,  837,  828,  826,  876,  823,  838,
+      856,  864,  833,  882, 2247,  848,  836,  831,  832,  844,
+      851,  840,  841,  837,  855,  841,  842,  852,  861,  897,
+      852,  847,  900,  906,  863,  855, 2247,  859,  868,  870,
+      855,  871,  861,  873,  867,  914,  880,  864,  865, 2247,
+      881,  884,  867,  869,  927,  870, 2247,  887,  890,  870,
+      889,  877,  930,  888,  884,  881,  934,  883,  936,  898,
+      884,  902,  901,  887,  902,  894,  890,  908,  907,  894,
+     2247, 2247,  902,  949,  902, 2247,  910,  913,  906,  959,
+
+     2247,  908,  914,  958,  909,  910,  922,  916,  920,  918,
+      916,  927,  972,  916,  921,  975,  976,  920,  932, 2247,
+      920,  928,  926,  977,  939,  925,  927,  936,  948,  935,
+      933,  947,  948,  964,  969,  951,  937,  939,  939,  959,
+      958,  949,  938,  955,  962, 1005,  947,  967,  960,  964,
+      968,  951, 1012,  959,  963, 2247, 1010,  959,  958,  958,
+      979,  976, 1018,  967,  985,  986,  972,  980,  989,  969,
+      984,  991, 1033, 1034, 2247,  987, 1036, 1037,  988,  998,
+     1000,  984,  986,  986,  993, 1002,  990,  997,  992,  999,
+     1011, 1052,  999,  998, 1015, 1056, 1006, 1010, 1008, 1006,
+
+     1001, 1062, 1063, 1013, 1065, 1061, 1067, 1020, 2247, 1025,
+     1018, 1009, 1028, 1022, 1017, 1027, 1024, 1029, 1025, 1037,
+     2247, 1021, 1024, 2247, 2247, 1024, 1084, 1023, 1042, 1043,
+     1045, 1036, 1090, 1091, 1044, 1029, 1043, 1051, 1033, 1038,
+     1077, 1068, 1100, 1057, 1044, 1046, 1063, 1058, 1062, 1107,
+     1055, 1059, 2247, 1056, 1052, 1069, 1049, 1070, 1060, 2247,
+     1075, 1073, 1076, 1060, 1072, 1078, 1064, 1124, 1077, 1082,
+     1070, 1081, 1073, 1079, 1075, 1093, 1094, 1095, 2247, 2247,
+     1093, 2247, 1095, 2247, 1080, 1081, 1100, 1090, 1142, 1099,
+     1096, 1140, 1104, 1093, 1100, 1105, 1102, 1108, 2247, 1101,
+
+     1093, 1154, 2247, 1155, 1102, 1109, 1153, 1115, 2247, 2247,
+     1112, 2247, 1103, 2247, 1103, 1106, 1120, 1125, 1108, 1119,
+     1168, 1125, 1126, 1127, 1167, 1123, 1174, 1127, 1176, 2247,
+     1123, 1178, 1179, 1136, 1138, 2247, 2247, 1121, 1183, 1179,
+     1143, 1127, 1139, 1158, 1189, 2247, 1146, 1191, 1138, 1153,
+     1189, 1141, 2247, 1137, 1153, 1141, 1155, 1156, 1153, 1197,
+     1160, 1164, 1152, 1152, 1207, 1203, 1209, 1166, 2247, 1168,
+     1167, 1169, 1162, 1171, 1173, 1170, 1160, 1163, 1163, 1222,
+     1169, 1224, 1226, 1169, 1228, 2247, 1186, 1165, 1180, 1173,
+     1176, 1189, 1193, 1192, 1190, 1240, 1193, 2247, 2247, 1189,
+
+     1199, 1184, 1240, 1201, 1187, 1248, 1249, 1193, 1203, 1252,
+     1209, 2247, 1201, 1201, 1203, 1205, 1258, 1201, 2247, 1202,
+     2247, 1204, 2247, 2247, 1217, 1219, 1220, 2247, 1207, 1215,
+     1267, 1216, 1248, 2247, 1265, 2247, 1213, 1221, 1215, 1212,
+     1215, 1218, 1218, 1214, 1236, 1275, 1228, 1240, 1243, 1225,
+     1285, 1233, 2247, 1228, 2247, 1230, 1289, 1242, 1233, 1249,
+     1249, 1252, 1252, 1249, 1293, 1255, 2247, 1247, 2247, 2247,
+     1257, 2247, 1297, 1259, 1260, 1257, 1301, 1249, 1264, 1304,
+     1266, 1258, 2247, 1255, 1255, 1261, 1260, 1258, 1273, 1273,
+     2247, 2247, 1314, 1261, 2247, 1278, 1263, 1263, 1265, 1271,
+
+     2247, 1326, 1268, 1278, 1289, 1287, 1331, 1284, 1293, 2247,
+     1290, 1309, 1277, 1337, 1338, 1295, 1300, 1282, 1342, 1343,
+     1344, 1340, 1304, 1301, 1297, 1290, 1302, 2247, 1292, 1305,
+     1353, 2247, 1291, 1350, 1313, 1310, 1354, 1302, 1307, 1306,
+     1365, 1321, 1367, 1317, 1369, 1330, 1319, 1313, 1373, 1315,
+     1324, 1317, 1331, 1334, 1379, 1321, 1338, 1334, 1324, 1339,
+     1323, 1381, 1382, 1383, 1330, 1385, 1348, 2247, 1348, 1335,
+     1334, 1390, 2247, 1331, 1349, 1398, 1368, 1352, 2247, 2247,
+     1343, 1354, 1403, 2247, 2247, 2247, 1349, 1354, 1352, 1402,
+     1360, 1365, 1356, 1354, 1355, 2247, 1413, 1359, 1410, 1353,
+
+     1358, 1419, 1367, 1377, 1378, 2247, 1424, 1377, 2247, 1378,
+     2247, 1370, 1385, 1373, 2247, 1383, 1384, 1385, 1434, 1392,
+     2247, 1431, 1397, 1373, 1391, 1392, 1401, 1383, 1389, 1391,
+     1445, 1404, 1403, 1395, 1449, 1399, 1403, 1408, 1401, 2247,
+     1454, 1403, 1456, 1398, 2247, 1401, 1411, 1455, 1403, 1418,
+     1405, 1411, 1411, 1422, 2247, 1416, 1411, 1410, 1470, 1423,
+     2247, 1467, 1418, 1415, 2247, 1429, 1431, 1433, 1478, 1431,
+     1428, 1436, 1430, 2247, 1483, 1424, 1426, 1442, 1435, 1425,
+     1441, 1442, 1436, 1452, 2247, 1442, 1494, 1453, 2247, 1437,
+     1444, 1498, 1494, 2247, 1456, 2247, 1496, 1458, 1459, 1444,
+
+     1445, 1453, 1507, 1503, 1458, 1470, 1467, 1458, 1465, 2247,
+     1462, 1467, 1465, 1517, 1518, 1475, 1462, 2247, 1477, 1478,
+     1479, 1480, 2247, 1470, 1482, 1527, 1484, 1529, 1471, 1479,
+     1473, 1481, 1494, 2247, 1471, 1531, 1492, 2247, 1496, 1481,
+     1481, 1496, 1489, 1488, 1499, 1486, 2247, 1491, 1547, 1505,
+     1496, 1508, 1499, 1508, 1510, 1514, 2247, 2247, 1496, 1556,
+     1499, 1558, 1500, 1560, 1518, 1562, 2247, 1563, 2247, 1559,
+     1521, 1518, 1523, 1510, 1569, 1512, 1517, 1508, 1573, 1526,
+     1527, 1517, 1534, 1533, 1574, 1536, 2247, 1533, 1582, 1539,
+     1540, 1585, 1542, 1545, 1540, 2247, 1589, 2247, 1542, 2247,
+
+     1551, 2247, 2247, 1533, 1593, 1540, 1595, 1538, 2247, 1557,
+     1598, 1557, 2247, 1548, 1538, 1597, 1563, 1556, 1552, 1549,
+     1554, 2247, 1550, 1552, 2247, 1557, 1567, 1560, 2247, 1561,
+     1555, 1567, 2247, 1563, 2247, 1573, 1566, 2247, 1568, 1576,
+     1621, 1562, 1564, 1561, 1585, 1578, 1581, 1570, 1624, 1571,
+     1579, 1588, 1589, 1590, 1583, 1578, 1579, 1583, 1595, 1640,
+     2247, 1586, 1598, 1643, 1592, 1591, 1646, 1599, 1586, 1601,
+     1606, 1651, 1652, 1653, 1610, 1655, 1656, 1606, 1600, 2247,
+     1616, 1660, 2247, 1617, 1619, 2247, 1610, 1624, 1620, 1613,
+     2247, 2247, 2247, 1667, 2247, 2247, 1624, 1669, 1630, 2247,
+
+     1671, 1672, 1627, 1626, 1627, 1617, 2247, 1672, 2247, 1619,
+     2247, 2247, 1679, 1621, 1637, 1682, 1643, 1640, 2247, 1681,
+     1630, 2247, 1642, 1635, 1690, 1632, 1634, 1649, 1634, 2247,
+     1647, 1696, 1697, 1645, 1647, 2247, 2247, 1641, 1657, 1702,
+     1703, 2247, 2247, 2247, 1709, 1714, 1719, 1724, 1729, 1734,
+     1739, 1742, 1716, 1721, 1723, 1736
     } ;
 
-static const flex_int16_t yy_def[1885] =
+static const flex_int16_t yy_def[1857] =
     {   0,
-     1873, 1873, 1874, 1874, 1873, 1873, 1873, 1873, 1873, 1873,
-     1872, 1872, 1872, 1872, 1872, 1875, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1876,
-     1872, 1872, 1872, 1877,   15, 1872,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1878,   45,   45,
+     1845, 1845, 1846, 1846, 1845, 1845, 1845, 1845, 1845, 1845,
+     1844, 1844, 1844, 1844, 1844, 1847, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1848,
+     1844, 1844, 1844, 1849,   15, 1844,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1850,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1875, 1872,
-     1872, 1872, 1872, 1872, 1872, 1879, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1876, 1872, 1877,
+       45,   45,   45,   45,   45,   45,   45, 1847, 1844, 1844,
+     1844, 1844, 1844, 1844, 1851, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1848, 1844, 1849, 1844,
 
-     1872, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1880,   45, 1878,   45,   45,
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1852,   45, 1850,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1879, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1881,   45,   45,   45, 1872,   45,
+       45,   45, 1851, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1853,   45,   45, 1844,   45,   45, 1844,   45,   45,
 
-       45, 1872,   45,   45,   45,   45,   45,   45,   45, 1880,
-     1872, 1878,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1852, 1844, 1850,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45,   45,   45,
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45,   45, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1854,   45,   45,   45,   45, 1844,   45, 1844,
+       45, 1844,   45, 1850, 1844,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1882,   45,   45,
-       45,   45,   45, 1872,   45,   45, 1872,   45, 1872,   45,
-     1878, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1872,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+     1844, 1844, 1855,   45,   45,   45, 1844,   45, 1844,   45,
+     1850,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
+       45,   45,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1872, 1872, 1872, 1883,
-       45,   45,   45,   45,   45,   45, 1872,   45,   45, 1872,
-       45, 1878,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1872,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45, 1844,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45, 1872,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1844,   45, 1844, 1844,   45, 1844,   45,   45,
+     1844, 1856,   45, 1844, 1844, 1844,   45,   45,   45, 1844,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45, 1872, 1872,   45, 1872,   45,
-       45, 1872, 1884,   45,   45, 1872, 1872,   45, 1872,   45,
-     1872,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
 
+       45,   45,   45,   45,   45,   45,   45,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45, 1872,   45,
+     1844,   45,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1844,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1844, 1844,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1872,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
 
-     1872,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1872,   45,
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1844,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45,   45,   45,   45, 1872,   45,
+       45,   45,   45,   45,   45,   45,   45, 1844,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872, 1872,   45,   45,   45,   45,   45,
-       45,   45, 1872, 1872,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45, 1872,
-
+       45,   45, 1844, 1844,   45,   45,   45,   45,   45,   45,
+       45, 1844, 1844,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45, 1872,   45,   45,
+       45, 1844,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45, 1872,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1844, 1844,   45,   45,   45, 1844,   45,   45,   45,   45,
 
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872, 1872,   45,   45,   45, 1872,   45,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1872,   45,
-
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1844,   45,   45, 1844, 1844,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45, 1872, 1872,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45, 1844,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1844, 1844,
+       45, 1844,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1844,   45,
+
+       45,   45, 1844,   45,   45,   45,   45,   45, 1844, 1844,
+       45, 1844,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45,   45,   45,   45, 1844, 1844,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1844, 1844,   45,
 
-       45,   45,   45, 1872, 1872,   45, 1872,   45, 1872,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45, 1872, 1872,   45, 1872,   45, 1872,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
-     1872, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45,   45,   45,   45, 1872,   45,
+       45, 1844,   45,   45,   45,   45,   45,   45, 1844,   45,
+     1844,   45, 1844, 1844,   45,   45,   45, 1844,   45,   45,
+       45,   45,   45, 1844,   45, 1844,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
+       45,   45, 1844,   45, 1844,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45, 1844, 1844,
+       45, 1844,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45,   45,
+     1844, 1844,   45,   45, 1844,   45,   45,   45,   45,   45,
 
+     1844,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872, 1872,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45, 1872,   45, 1872,   45, 1872, 1872,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
-     1872,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
-       45, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45, 1872, 1872,   45, 1872,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
-       45,   45,   45,   45,   45,   45,   45, 1872, 1872,   45,
-       45, 1872,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45,   45,   45, 1872,   45, 1872,   45,
+       45,   45,   45,   45,   45,   45,   45, 1844,   45,   45,
+       45, 1844,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45,   45, 1872,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1844,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45, 1844, 1844,
+       45,   45,   45, 1844, 1844, 1844,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45, 1844,   45,   45, 1844,   45,
+     1844,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
+     1844,   45,   45,   45, 1844,   45,   45,   45,   45,   45,
+       45,   45,   45, 1844,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1844,   45,   45,   45, 1844,   45,
+       45,   45,   45, 1844,   45, 1844,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45,   45,   45,   45,   45,   45, 1844,   45,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1844,   45,   45,   45, 1844,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844, 1844,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45, 1844,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45,   45,   45,
-
-     1872,   45,   45,   45,   45,   45, 1872, 1872,   45,   45,
-       45, 1872, 1872, 1872,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45,   45, 1872,   45, 1872,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45, 1872,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45, 1872,   45,
-       45,   45, 1872,   45,   45,   45,   45,   45,   45,   45,
-
-       45, 1872,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1872,   45,   45,   45, 1872,   45,   45,   45,
-       45, 1872,   45, 1872,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45,   45, 1872,   45,   45,   45,   45,
-     1872,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1872,   45,   45,   45, 1872,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872, 1872,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45, 1872,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1844,   45,   45,   45,
+       45,   45,   45,   45,   45, 1844,   45, 1844,   45, 1844,
 
+       45, 1844, 1844,   45,   45,   45,   45,   45, 1844,   45,
+       45,   45, 1844,   45,   45,   45,   45,   45,   45,   45,
+       45, 1844,   45,   45, 1844,   45,   45,   45, 1844,   45,
+       45,   45, 1844,   45, 1844,   45,   45, 1844,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1872,   45,   45,   45,   45,   45,
-       45,   45,   45, 1872,   45, 1872,   45, 1872,   45, 1872,
-     1872,   45,   45,   45,   45,   45, 1872,   45,   45,   45,
-     1872,   45,   45,   45,   45,   45,   45,   45,   45, 1872,
-       45,   45, 1872,   45,   45,   45, 1872,   45,   45,   45,
-     1872,   45, 1872,   45,   45, 1872,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1872,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-     1872,   45,   45, 1872,   45,   45,   45,   45, 1872, 1872,
-     1872,   45, 1872, 1872,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45,   45, 1872,   45, 1872,   45, 1872, 1872,
-       45,   45,   45,   45,   45,   45, 1872,   45,   45, 1872,
-       45,   45,   45,   45,   45,   45,   45, 1872,   45,   45,
-       45,   45,   45, 1872, 1872,   45,   45,   45,   45, 1872,
-     1872,    0, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872
+     1844,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45, 1844,   45,   45, 1844,   45,   45,   45,   45,
+     1844, 1844, 1844,   45, 1844, 1844,   45,   45,   45, 1844,
+
+       45,   45,   45,   45,   45,   45, 1844,   45, 1844,   45,
+     1844, 1844,   45,   45,   45,   45,   45,   45, 1844,   45,
+       45, 1844,   45,   45,   45,   45,   45,   45,   45, 1844,
+       45,   45,   45,   45,   45, 1844, 1844,   45,   45,   45,
+       45, 1844, 1844,    0, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844
     } ;
 
-static const flex_int16_t yy_nxt[2349] =
+static const flex_int16_t yy_nxt[2321] =
     {   0,
-     1872,   13,   14,   13, 1872,   15,   16, 1872,   17,   18,
+     1844,   13,   14,   13, 1844,   15,   16, 1844,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       85,  772,   37,   14,   37,   86,   25,   26,   38,  101,
-     1872,   27,   37,   14,   37,   42,   28,   42,   38,   91,
-       92,   29,  201,   30,   13,   14,   13,   90,   91,   25,
-       31,   92,   13,   14,   13,   13,   14,   13,   32,   40,
-      773,   13,   14,   13,   33,   40,  102,   91,   92,  201,
-       90,   34,   35,   13,   14,   13,   94,   15,   16,   95,
+       84,  754,   37,   14,   37,   85,   25,   26,   38,  100,
+     1844,   27,   37,   14,   37,   42,   28,   42,   38,   90,
+       91,   29,  197,   30,   13,   14,   13,   89,   90,   25,
+       31,   91,   13,   14,   13,   13,   14,   13,   32,   40,
+      755,   13,   14,   13,   33,   40,  101,   90,   91,  197,
+       89,   34,   35,   13,   14,   13,   93,   15,   16,   94,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
-       23,   24,   13,   14,   13,   90,   39,  103,   25,   26,
+       23,   24,   13,   14,   13,   89,   39,  102,   25,   26,
 
-       13,   14,   13,   27,   39,   42,  107,   42,   28,   42,
-      108,   42,   41,   29,  111,   30,  114,  115,   93,  137,
-       41,   25,   31,  103,  138,  463,   88,  139,   88,  107,
-       32,   89,   89,   89,   89,   89,   33,  111,  108,  114,
-      847,  115,  464,   34,   35,   44,   44,   44,   45,   45,
+       13,   14,   13,   27,   39,   42,  105,   42,   28,   42,
+      106,   42,   41,   29,  108,   30,  111,  112,   92,  134,
+       41,   25,   31,  102,  135,  452,   87,  136,   87,  105,
+       32,   88,   88,   88,   88,   88,   33,  108,  106,  111,
+      844,  112,  453,   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,   52,   53,   54,   45,   45,   45,
-       45,   55,   56,   45,   57,   45,   45,   58,   45,   45,
-       59,   45,   60,   61,   62,   63,   64,   65,   66,   52,
-
-       67,   68,   69,   70,   71,   72,   73,   74,   75,   76,
-       77,   78,   57,   45,   45,   45,   45,   45,   80,  109,
-       81,   81,   81,   81,   81,   80,  103,   83,   83,   83,
-       83,   83,  107,   82,   84,   84,   84,   84,   84,   80,
-       82,   83,   83,   83,   83,   83,  135,   82,  110,  132,
-      112,  121,  119,  136,   82,  107,   82,  167,  120,  133,
-      113,  168,  122,   82,  140,  123,  134,  124,  237,  125,
-       82,  187,  188,  112,  141,  216,  142,   82,   45,  217,
-       45,   45,   45,   45,  238,   45,   45,   45,  113,  117,
-      144,  145,   45,   45,  146,   45,   45,  187,  188,  187,
-
-      147,   45,  101,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   47,   45,   45,
+       48,   49,   50,   45,   51,   52,   53,   45,   45,   45,
+       45,   54,   55,   45,   56,   45,   45,   57,   45,   45,
+       58,   45,   59,   60,   61,   62,   63,   64,   65,   51,
+
+       66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
+       76,   77,   56,   45,   45,   45,   45,   45,   79,  845,
+       80,   80,   80,   80,   80,   79,  102,   82,   82,   82,
+       82,   82,  204,   81,   83,   83,   83,   83,   83,   79,
+       81,   82,   82,   82,   82,   82,  105,   81,  118,  164,
+      109,  129,  116,  165,   81,  204,   81,  201,  117,  119,
+      110,  130,  120,   81,  121,  132,  122,  198,  184,  105,
+       81,  185,  133,  109,  846,  211,  847,   81,   45,  212,
+      131,   45,   45,   45,  201,   45,   45,   45,  110,  114,
+      137,  848,   45,   45,  184,   45,   45,  185,  199,  184,
+
+      138,   45,  139,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,  126,  190,   45,  127,  128,  188,
-       45,  129,  130,  148,   45,  111,  200,  149,  298,  102,
-      848,  150,   45,  189,  131,  114,   45,  189,   45,  118,
-      209,  156,  299,  151,  153,  191,  154,  152,  155,  157,
-      161,  158,  200,  162,  163,  169,  159,  160,  114,  170,
-      849,  189,  171,  209,  164,  192,  196,  165,  183,  172,
-      173,  176,  177,  184,  174,  175,   84,   84,   84,   84,
-       84,  112,   80,  205,   81,   81,   81,   81,   81,   82,
-
-      202,  113,  850,   88,  196,   88,  206,   82,   89,   89,
-       89,   89,   89,  232,  178,  233,  179,  750,  751,  180,
-      181,  205,   82,   89,   89,   89,   89,   89,  246,  113,
-       82,  203,  234,  206,  207,   80,  182,   83,   83,   83,
-       83,   83,   84,   84,   84,   84,   84,  100,  208,  196,
-       82,  854,  205,  855,  100,   82,   89,   89,   89,   89,
-       89,  219,  207,  235,  226,  227,  213,  206,  255,  856,
-      220,  221,  247,   82,  228,  208,  236,  214,   82,  241,
-      263,  269,  242,  857,  100,  311,  243,  275,  100,  256,
-      276,  277,  100,  313,  303,  279,  270,  271,  272,  280,
-
-      100,  282,  312,  312,  100,  311,  100,  195,  212,  212,
-      212,  212,  212,  311,  377,  390,  313,  212,  212,  212,
-      212,  212,  212,  292,  858,  313,  859,  293,  312,  315,
-      319,  294,  322,  314,  323,  326,  283,  284,  285,  328,
-      212,  212,  212,  212,  212,  212,  330,  286,  316,  287,
-      860,  288,  289,  319,  290,  340,  319,  326,  326,  418,
-      322,  323,  328,  341,  441,  391,  327,  378,  342,  343,
-      379,  429,  419,  330,  331,  331,  331,  331,  331,  333,
-      386,  437,  437,  331,  331,  331,  331,  331,  331,  409,
-      443,  444,  410,  441,  446,  449,  466,  472,  861,  445,
-
-      441,  467,  514,  473,  437,  438,  331,  331,  331,  331,
-      331,  331,  515,  487,  502,  503,  504,  446,  488,  449,
-      505,  528,  637,  449,  452,  452,  452,  452,  452,  453,
-      605,  862,  638,  452,  452,  452,  452,  452,  452,  509,
-      532,  574,  541,  606,  533,  510,  542,  516,  546,  569,
-      562,  705,  547,  563,  570,  574,  452,  452,  452,  452,
-      452,  452,  582,  615,  583,  597,  489,  674,  616,  574,
-      706,  490,  675,  598,  810,  599,  600,  601,  705,  529,
-      701,  823,  863,  584,  864,  707,  811,  824,  865,  582,
-      866,  583,   45,   45,   45,   45,   45,  867,  706,  868,
-
-      869,   45,   45,   45,   45,   45,   45,  783,  870,  823,
-      824,  851,  784,  830,  831,  852,  832,  871,  872,  853,
-      873,  874,  875,  876,   45,   45,   45,   45,   45,   45,
-      877,  878,  879,  881,  882,  880,  883,  884,  885,  886,
-      887,  888,  889,  890,  891,  892,  893,  894,  895,  896,
-      897,  785,  898,  899,  900,  901,  902,  903,  904,  905,
-      906,  907,  908,  909,  910,  911,  912,  913,  914,  915,
-      916,  917,  918,  919,  920,  921,  923,  924,  927,  928,
-      929,  931,  922,  932,  925,  933,  930,  934,  926,  935,
+       45,   45,   45,   45,  123,  187,   45,  124,  125,  185,
+       45,  126,  127,  145,   45,  141,  142,  146,  293,  143,
+      108,  147,   45,  849,  128,  144,   45,  186,   45,  115,
+      153,  186,  294,  148,  111,  188,  196,  149,  154,  150,
+      155,  151,  850,  152,  158,  156,  157,  159,  160,  166,
+      173,  174,  227,  167,  228,  186,  168,  111,  161,  189,
+      109,  162,  196,  169,  170,  203,  250,  180,  171,  172,
+      110,  229,  181,   83,   83,   83,   83,   83,   88,   88,
+
+       88,   88,   88,  175,  241,  176,   81,  251,  177,  178,
+      100,   79,  203,   80,   80,   80,   80,   80,  110,   83,
+       83,   83,   83,   83,   99,  179,   81,  851,   87,   81,
+       87,   99,   81,   88,   88,   88,   88,   88,   79,  193,
+       82,   82,   82,   82,   82,  200,  202,  101,  242,   81,
+      232,  193,  852,   81,  214,   81,   88,   88,   88,   88,
+       88,   99,  230,  215,  216,   99,  233,  193,  208,   99,
+      221,  222,  503,  200,  202,  231,   81,   99,  200,  209,
+      223,   99,  504,   99,  192,  207,  207,  207,  207,  207,
+      277,  732,  733,  264,  207,  207,  207,  207,  207,  207,
+
+      236,  270,  201,  237,  271,  272,  258,  238,  265,  266,
+      267,  274,  308,  307,  306,  275,  306,  207,  207,  207,
+      207,  207,  207,  307,  287,  278,  279,  280,  288,  298,
+      308,  314,  289,  316,  319,  308,  281,  317,  282,  307,
+      283,  284,  306,  285,  309,  321,  323,  314,  370,  310,
+      383,  434,  333,  311,  314,  402,  319,  319,  403,  411,
+      334,  316,  320,  438,  317,  335,  336,  422,  321,  430,
+      326,  430,  412,  323,  324,  324,  324,  324,  324,  379,
+      434,  517,  436,  324,  324,  324,  324,  324,  324,  434,
+      455,  438,  430,  461,  431,  456,  803,  476,  853,  462,
+
+      384,  371,  477,  438,  372,  436,  324,  324,  324,  324,
+      324,  324,  441,  441,  441,  441,  441,  551,  442,  803,
+      552,  441,  441,  441,  441,  441,  441,  491,  492,  493,
+      498,  505,  563,  494,  521,  558,  499,  530,  522,  518,
+      559,  531,  563,  854,  441,  441,  441,  441,  441,  441,
+      478,  567,  535,  568,  582,  479,  536,  622,  590,  687,
+      563,  688,  583,  600,  584,  585,  586,  623,  601,  659,
+      569,  591,  686,  855,  660,  792,  802,  689,  567,  856,
+      568,   45,   45,   45,   45,   45,  687,  793,  857,  688,
+       45,   45,   45,   45,   45,   45,  765,  809,  810,  830,
+
+      811,  766,  858,  831,  802,  859,  860,  832,  861,  862,
+      863,  864,  865,   45,   45,   45,   45,   45,   45,  866,
+      867,  868,  869,  870,  871,  872,  873,  874,  875,  876,
+      877,  878,  879,  880,  881,  882,  883,  884,  885,  886,
+      767,  887,  888,  889,  890,  891,  892,  893,  894,  895,
+      896,  897,  898,  899,  900,  902,  903,  906,  907,  908,
+      910,  901,  911,  904,  912,  909,  913,  905,  914,  915,
+      916,  917,  918,  919,  920,  921,  922,  923,  924,  925,
+      926,  927,  928,  929,  930,  931,  932,  933,  934,  935,
       936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
 
-      946,  947,  948,  949,  950,  951,  952,  953,  954,  955,
-      956,  957,  958,  959,  960,  961,  962,  963,  964,  965,
-      966,  967,  968,  969,  970,  971,  972,  945,  973,  974,
-      975,  976,  977,  978,  979,  980,  981,  982,  983,  985,
-      986,  987,  988,  984,  989,  990,  991,  992,  993,  994,
+      946,  947,  948,  949,  922,  950,  951,  952,  953,  954,
+      955,  956,  957,  958,  959,  960,  962,  963,  964,  965,
+      961,  966,  967,  968,  969,  970,  971,  972,  973,  974,
+      975,  976,  977,  978,  979,  980,  981,  982,  983,  984,
+      986,  987,  988,  985,  989,  990,  991,  992,  993,  994,
       995,  996,  997,  998,  999, 1000, 1001, 1002, 1003, 1004,
-     1005, 1006, 1007, 1009, 1010, 1011, 1008, 1012, 1013, 1014,
-     1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
-     1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
-     1035, 1036, 1037, 1038, 1039, 1041, 1042, 1043, 1044, 1045,
-
-     1046, 1047, 1048, 1049, 1050, 1051, 1040, 1052, 1053, 1054,
-     1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
-     1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
-     1075, 1076, 1077, 1078, 1079, 1080, 1081, 1059, 1082, 1083,
-     1058, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
-     1093, 1094, 1095, 1096, 1097, 1098, 1099, 1102, 1103, 1104,
-     1105, 1100, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
+     1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
+     1015, 1016, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
+     1026, 1027, 1028, 1017, 1029, 1030, 1031, 1032, 1033, 1034,
+     1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
+
+     1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
+     1055, 1056, 1057, 1035, 1058, 1059, 1034, 1060, 1061, 1062,
+     1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072,
+     1073, 1074, 1075, 1078, 1079, 1080, 1081, 1076, 1082, 1083,
+     1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
+     1094, 1095, 1096, 1097, 1098, 1099, 1101, 1102, 1103, 1104,
+     1105, 1106, 1107, 1108, 1109, 1110, 1100, 1111, 1112, 1113,
      1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
-     1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
-     1124, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
-
-     1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
-     1154, 1155, 1156, 1157, 1101, 1158, 1159, 1160, 1161, 1162,
-     1163, 1164, 1165, 1166, 1168, 1167, 1169, 1170, 1171, 1172,
-     1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
-     1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
-     1193, 1166, 1167, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
-     1201, 1202, 1203, 1204, 1205, 1206, 1207, 1209, 1211, 1212,
-     1213, 1208, 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, 1241,
-
-     1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
-     1252, 1210, 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, 1270, 1293, 1294, 1295, 1296, 1297, 1271, 1298,
+     1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
+     1077, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1143,
+
+     1142, 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, 1141, 1142, 1169, 1170,
+     1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
+     1181, 1182, 1184, 1186, 1187, 1188, 1183, 1189, 1190, 1191,
+     1192, 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, 1220, 1221,
+     1222, 1223, 1224, 1225, 1226, 1227, 1185, 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, 1256, 1257, 1258, 1259, 1260,
+     1261, 1262, 1263, 1264, 1265, 1266, 1244, 1267, 1268, 1269,
+     1270, 1271, 1245, 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, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
-     1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
-     1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
-     1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
-
-     1339, 1340, 1341, 1342, 1344, 1345, 1346, 1347, 1348, 1349,
-     1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
-     1360, 1361, 1362, 1363, 1365, 1366, 1367, 1368, 1369, 1370,
-     1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380,
-     1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1360, 1389,
-     1390, 1391, 1392, 1393, 1394, 1395, 1343, 1396, 1397, 1398,
-     1399, 1400, 1401, 1402, 1404, 1405, 1406, 1364, 1407, 1408,
-     1409, 1403, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
+     1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1318, 1319,
+     1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
+     1330, 1331, 1332, 1333, 1334, 1335, 1336, 1338, 1339, 1340,
+
+     1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
+     1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
+     1361, 1333, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
+     1317, 1370, 1371, 1372, 1373, 1374, 1375, 1377, 1378, 1379,
+     1337, 1380, 1381, 1382, 1376, 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,
+     1428, 1429, 1430, 1431, 1432, 1433, 1434, 1412, 1435, 1436,
 
-     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, 1440, 1463, 1464, 1465, 1466,
+     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,
      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,
-     1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
-     1517, 1528, 1529, 1530, 1531, 1505, 1532, 1533, 1534, 1536,
+     1487, 1488, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497,
+     1498, 1499, 1489, 1500, 1501, 1502, 1503, 1477, 1504, 1505,
+     1506, 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, 1585, 1586, 1587,
-     1588, 1584, 1589, 1590, 1591, 1592, 1535, 1593, 1594, 1595,
-     1569, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604,
+     1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1557,
+     1558, 1559, 1560, 1556, 1561, 1562, 1563, 1564, 1507, 1565,
+     1566, 1567, 1541, 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,
+     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, 1630, 1631, 1632, 1633, 1634,
@@ -1562,100 +1553,97 @@ static const flex_int16_t yy_nxt[2349] =
      1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794,
      1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804,
      1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814,
-     1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824,
-     1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834,
-
-     1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844,
-     1845, 1846, 1847, 1848, 1849, 1850, 1851, 1853, 1852, 1854,
-     1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864,
-     1865, 1866, 1867, 1868, 1869, 1870, 1871,   12,   12,   12,
-       12,   12,   36,   36,   36,   36,   36,   79,  318,   79,
-       79,   79,   98,  440,   98,  573,   98,  100,  100,  100,
-      100,  100,  116,  116,  116,  116,  116,  186,  100,  186,
-      186,  186,  210,  210,  210,  846,  845,  844,  843,  842,
-      841,  840,  839,  838,  837,  836,  835,  834,  833,  829,
-      828,  827,  826,  825,  822,  821,  820,  819,  818,  817,
-
-      816,  815,  814,  813,  812,  809,  808,  807,  806,  805,
-      804,  803,  802,  801,  800,  799,  798,  797,  796,  795,
-      794,  793,  792,  791,  790,  789,  788,  787,  786,  782,
-      781,  780,  779,  778,  777,  776,  775,  774,  771,  770,
-      769,  768,  767,  766,  765,  764,  763,  762,  761,  760,
-      759,  758,  757,  756,  755,  754,  753,  752,  749,  748,
-      747,  746,  745,  744,  743,  742,  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,  708,
-
-      704,  703,  702,  701,  700,  699,  698,  697,  696,  695,
-      694,  693,  692,  691,  690,  689,  688,  687,  686,  685,
-      684,  683,  682,  681,  680,  679,  678,  677,  676,  673,
-      672,  671,  670,  669,  668,  667,  666,  665,  664,  663,
-      662,  661,  660,  659,  658,  657,  656,  655,  654,  653,
-      652,  651,  650,  649,  648,  647,  646,  645,  644,  643,
-      642,  641,  640,  639,  636,  635,  634,  633,  632,  631,
-      630,  629,  628,  627,  626,  625,  624,  623,  622,  621,
-      620,  619,  618,  617,  614,  613,  612,  611,  610,  609,
-      608,  607,  604,  603,  602,  596,  595,  594,  593,  592,
-
-      591,  590,  589,  588,  587,  586,  585,  581,  580,  579,
-      578,  577,  576,  575,  572,  571,  568,  567,  566,  565,
-      564,  561,  560,  559,  558,  557,  556,  555,  554,  553,
-      552,  551,  550,  549,  548,  545,  544,  543,  540,  539,
-      538,  537,  536,  535,  534,  531,  530,  527,  526,  525,
-      524,  523,  522,  521,  520,  519,  518,  517,  513,  512,
-      511,  508,  507,  506,  501,  500,  499,  498,  497,  496,
-      495,  494,  493,  492,  491,  486,  485,  484,  483,  482,
-      481,  480,  479,  478,  477,  476,  475,  474,  471,  470,
-      469,  468,  465,  462,  461,  460,  459,  458,  457,  456,
-
-      455,  454,  451,  450,  448,  447,  442,  439,  436,  435,
-      434,  433,  432,  431,  430,  428,  427,  426,  425,  424,
-      423,  422,  421,  420,  417,  416,  415,  414,  413,  412,
-      411,  408,  407,  406,  405,  404,  403,  402,  401,  400,
-      399,  398,  397,  396,  395,  394,  393,  392,  389,  388,
-      387,  385,  384,  383,  382,  381,  380,  376,  375,  374,
-      373,  372,  371,  370,  369,  368,  367,  366,  365,  364,
-      363,  362,  361,  360,  359,  358,  357,  356,  355,  354,
-      353,  352,  351,  350,  349,  348,  347,  346,  345,  344,
-      339,  338,  337,  336,  335,  334,  332,  211,  329,  327,
-
-      325,  324,  321,  320,  317,  310,  309,  308,  307,  306,
-      305,  304,  302,  301,  300,  297,  296,  295,  291,  281,
-      278,  274,  273,  268,  267,  266,  265,  264,  262,  261,
-      260,  259,  258,  257,  254,  253,  252,  251,  250,  249,
-      248,  245,  244,  240,  239,  231,  230,  229,  225,  224,
-      223,  222,  218,  215,  211,  204,  199,  198,  197,  194,
-      193,  185,  166,  143,  106,  105,  104,   43,   99,   97,
-       96,   87,   43, 1872,   11, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872
+     1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1825,
+     1824, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834,
+
+     1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843,   12,
+       12,   12,   12,   12,   36,   36,   36,   36,   36,   78,
+      313,   78,   78,   78,   97,  433,   97,  562,   97,   99,
+       99,   99,   99,   99,  113,  113,  113,  113,  113,  183,
+       99,  183,  183,  183,  205,  205,  205,  843,  842,  841,
+      840,  839,  838,  837,  836,  835,  834,  833,  829,  828,
+      827,  826,  825,  824,  823,  822,  821,  820,  819,  818,
+      817,  816,  815,  814,  813,  812,  808,  807,  806,  805,
+      804,  801,  800,  799,  798,  797,  796,  795,  794,  791,
+      790,  789,  788,  787,  786,  785,  784,  783,  782,  781,
+
+      780,  779,  778,  777,  776,  775,  774,  773,  772,  771,
+      770,  769,  768,  764,  763,  762,  761,  760,  759,  758,
+      757,  756,  753,  752,  751,  750,  749,  748,  747,  746,
+      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
+      735,  734,  731,  730,  729,  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,  702,  701,  700,  699,  698,  697,  696,  695,  694,
+      693,  692,  691,  690,  686,  685,  684,  683,  682,  681,
+      680,  679,  678,  677,  676,  675,  674,  673,  672,  671,
+
+      670,  669,  668,  667,  666,  665,  664,  663,  662,  661,
+      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
+      648,  647,  646,  645,  644,  643,  642,  641,  640,  639,
+      638,  637,  636,  635,  634,  633,  632,  631,  630,  629,
+      628,  627,  626,  625,  624,  621,  620,  619,  618,  617,
+      616,  615,  614,  613,  612,  611,  610,  609,  608,  607,
+      606,  605,  604,  603,  602,  599,  598,  597,  596,  595,
+      594,  593,  592,  589,  588,  587,  581,  580,  579,  578,
+      577,  576,  575,  574,  573,  572,  571,  570,  566,  565,
+      564,  561,  560,  557,  556,  555,  554,  553,  550,  549,
+
+      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
+      538,  537,  534,  533,  532,  529,  528,  527,  526,  525,
+      524,  523,  520,  519,  516,  515,  514,  513,  512,  511,
+      510,  509,  508,  507,  506,  502,  501,  500,  497,  496,
+      495,  490,  489,  488,  487,  486,  485,  484,  483,  482,
+      481,  480,  475,  474,  473,  472,  471,  470,  469,  468,
+      467,  466,  465,  464,  463,  460,  459,  458,  457,  454,
+      451,  450,  449,  448,  447,  446,  445,  444,  443,  440,
+      439,  437,  435,  432,  429,  428,  427,  426,  425,  424,
+      423,  421,  420,  419,  418,  417,  416,  415,  414,  413,
+
+      410,  409,  408,  407,  406,  405,  404,  401,  400,  399,
+      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
+      388,  387,  386,  385,  382,  381,  380,  378,  377,  376,
+      375,  374,  373,  369,  368,  367,  366,  365,  364,  363,
+      362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
+      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
+      342,  341,  340,  339,  338,  337,  332,  331,  330,  329,
+      328,  327,  325,  206,  322,  320,  318,  315,  312,  305,
+      304,  303,  302,  301,  300,  299,  297,  296,  295,  292,
+      291,  290,  286,  276,  273,  269,  268,  263,  262,  261,
+
+      260,  259,  257,  256,  255,  254,  253,  252,  249,  248,
+      247,  246,  245,  244,  243,  240,  239,  235,  234,  226,
+      225,  224,  220,  219,  218,  217,  213,  210,  206,  195,
+      194,  191,  190,  182,  163,  140,  107,  104,  103,   43,
+       98,   96,   95,   86,   43, 1844,   11, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844
     } ;
 
-static const flex_int16_t yy_chk[2349] =
+static const flex_int16_t yy_chk[2321] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  653,    3,    3,    3,   21,    1,    1,    3,   44,
+       21,  638,    3,    3,    3,   21,    1,    1,    3,   44,
         0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
-       28,    1,  108,    1,    5,    5,    5,   26,   32,    1,
+       28,    1,  106,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      653,    8,    8,    8,    1,    8,   44,   27,   28,  108,
+      638,    8,    8,    8,    1,    8,   44,   27,   28,  106,
        26,    1,    1,    2,    2,    2,   32,    2,    2,   33,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    9,    9,    9,   31,    5,   47,    2,    2,
 
-       10,   10,   10,    2,    6,   37,   51,   37,    2,   42,
-       52,   42,    9,    2,   54,    2,   56,   57,   31,   65,
-       10,    2,    2,   47,   65,  343,   25,   65,   25,   51,
-        2,   25,   25,   25,   25,   25,    2,   54,   52,   56,
-      727,   57,  343,    2,    2,   15,   15,   15,   15,   15,
+       10,   10,   10,    2,    6,   37,   50,   37,    2,   42,
+       51,   42,    9,    2,   53,    2,   55,   56,   31,   64,
+       10,    2,    2,   47,   64,  336,   25,   64,   25,   50,
+        2,   25,   25,   25,   25,   25,    2,   53,   51,   55,
+      726,   56,  336,    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,   15,   15,   15,   15,   15,   15,
@@ -1663,241 +1651,238 @@ static const flex_int16_t yy_chk[2349] =
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
 
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   15,   15,   15,   15,   17,   53,
-       17,   17,   17,   17,   17,   19,   59,   19,   19,   19,
-       19,   19,   63,   17,   20,   20,   20,   20,   20,   22,
-       19,   22,   22,   22,   22,   22,   64,   20,   53,   62,
-       55,   60,   59,   64,   22,   63,   17,   74,   59,   62,
-       55,   74,   60,   19,   66,   60,   63,   60,  134,   60,
-       20,   90,   91,   55,   66,  121,   66,   22,   45,  121,
-       45,   45,   45,   45,  134,   45,   45,   45,   55,   58,
-       68,   68,   45,   45,   68,   45,   58,   90,   91,   93,
-
-       68,   45,  100,   45,   45,   45,   45,   45,   45,   45,
+       15,   15,   15,   15,   15,   15,   15,   15,   17,  727,
+       17,   17,   17,   17,   17,   19,   58,   19,   19,   19,
+       19,   19,  112,   17,   20,   20,   20,   20,   20,   22,
+       19,   22,   22,   22,   22,   22,   62,   20,   59,   73,
+       54,   61,   58,   73,   22,  112,   17,  109,   58,   59,
+       54,   61,   59,   19,   59,   63,   59,  107,   89,   62,
+       20,   90,   63,   54,  728,  118,  729,   22,   45,  118,
+       62,   45,   45,   45,  109,   45,   45,   45,   54,   57,
+       65,  730,   45,   45,   89,   45,   57,   90,  107,   92,
+
+       65,   45,   65,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   61,   93,   58,   61,   61,   94,
-       58,   61,   61,   69,   58,   70,  107,   69,  174,  100,
-      728,   69,   58,   92,   61,   77,   58,   95,   58,   58,
-      115,   71,  174,   69,   70,   94,   70,   69,   70,   71,
-       72,   71,  107,   72,   72,   75,   71,   71,   77,   75,
-      729,   92,   75,  115,   72,   95,  103,   72,   77,   75,
-       75,   76,   76,   77,   75,   75,   80,   80,   80,   80,
-       80,   76,   81,  111,   81,   81,   81,   81,   81,   80,
-
-      109,   76,  730,   82,  103,   82,  112,   81,   82,   82,
-       82,   82,   82,  132,   76,  132,   76,  630,  630,   76,
-       76,  111,   80,   88,   88,   88,   88,   88,  140,   76,
-       81,  109,  132,  112,  113,   83,   76,   83,   83,   83,
-       83,   83,   84,   84,   84,   84,   84,  102,  114,  119,
-       83,  732,  155,  733,  102,   84,   89,   89,   89,   89,
-       89,  123,  113,  133,  128,  128,  119,  178,  148,  734,
-      123,  123,  140,   83,  128,  114,  133,  119,   84,  137,
-      155,  161,  137,  735,  102,  187,  137,  164,  102,  148,
-      164,  164,  102,  189,  178,  166,  161,  161,  161,  166,
-
-      102,  168,  188,  191,  102,  190,  102,  102,  118,  118,
-      118,  118,  118,  187,  256,  267,  189,  118,  118,  118,
-      118,  118,  118,  170,  736,  192,  737,  170,  188,  191,
-      196,  170,  200,  190,  201,  205,  168,  168,  168,  207,
-      118,  118,  118,  118,  118,  118,  209,  168,  192,  168,
-      738,  168,  168,  196,  168,  221,  214,  263,  205,  293,
-      200,  201,  207,  221,  319,  267,  303,  256,  221,  221,
-      256,  303,  293,  209,  212,  212,  212,  212,  212,  214,
-      263,  311,  314,  212,  212,  212,  212,  212,  212,  285,
-      321,  321,  285,  319,  322,  326,  346,  351,  740,  321,
-
-      333,  346,  385,  351,  311,  314,  212,  212,  212,  212,
-      212,  212,  385,  365,  377,  377,  377,  322,  365,  386,
-      377,  399,  504,  326,  331,  331,  331,  331,  331,  333,
-      472,  741,  504,  331,  331,  331,  331,  331,  331,  381,
-      402,  441,  410,  472,  402,  381,  410,  386,  414,  435,
-      429,  582,  414,  429,  435,  453,  331,  331,  331,  331,
-      331,  331,  451,  482,  451,  468,  365,  543,  482,  441,
-      583,  365,  543,  468,  691,  468,  468,  468,  582,  399,
-      584,  705,  742,  453,  743,  584,  691,  706,  744,  451,
-      745,  451,  452,  452,  452,  452,  452,  746,  583,  747,
-
-      748,  452,  452,  452,  452,  452,  452,  664,  749,  705,
-      706,  731,  664,  712,  712,  731,  712,  750,  751,  731,
-      752,  753,  754,  755,  452,  452,  452,  452,  452,  452,
-      756,  757,  758,  759,  760,  758,  761,  763,  764,  765,
-      766,  767,  768,  769,  770,  771,  773,  774,  775,  776,
-      777,  664,  778,  779,  780,  781,  782,  784,  785,  786,
-      787,  788,  789,  790,  791,  792,  793,  794,  795,  796,
+       45,   45,   45,   45,   60,   92,   57,   60,   60,   93,
+       57,   60,   60,   68,   57,   67,   67,   68,  171,   67,
+       69,   68,   57,  731,   60,   67,   57,   91,   57,   57,
+       70,   94,  171,   68,   76,   93,  105,   68,   70,   69,
+       70,   69,  732,   69,   71,   70,   70,   71,   71,   74,
+       75,   75,  129,   74,  129,   91,   74,   76,   71,   94,
+       75,   71,  105,   74,   74,  111,  145,   76,   74,   74,
+       75,  129,   76,   79,   79,   79,   79,   79,   87,   87,
+
+       87,   87,   87,   75,  137,   75,   79,  145,   75,   75,
+       99,   80,  111,   80,   80,   80,   80,   80,   75,   83,
+       83,   83,   83,   83,  101,   75,   80,  733,   81,   79,
+       81,  101,   83,   81,   81,   81,   81,   81,   82,  102,
+       82,   82,   82,   82,   82,  108,  110,   99,  137,   80,
+      131,  116,  734,   82,  120,   83,   88,   88,   88,   88,
+       88,  101,  130,  120,  120,  101,  131,  102,  116,  101,
+      125,  125,  378,  108,  110,  130,   82,  101,  152,  116,
+      125,  101,  378,  101,  101,  115,  115,  115,  115,  115,
+      165,  615,  615,  158,  115,  115,  115,  115,  115,  115,
+
+      134,  161,  175,  134,  161,  161,  152,  134,  158,  158,
+      158,  163,  186,  185,  184,  163,  187,  115,  115,  115,
+      115,  115,  115,  188,  167,  165,  165,  165,  167,  175,
+      189,  193,  167,  196,  200,  186,  165,  197,  165,  185,
+      165,  165,  184,  165,  187,  202,  204,  209,  251,  188,
+      262,  314,  216,  189,  193,  280,  258,  200,  280,  288,
+      216,  196,  298,  319,  197,  216,  216,  298,  202,  306,
+      209,  309,  288,  204,  207,  207,  207,  207,  207,  258,
+      314,  392,  316,  207,  207,  207,  207,  207,  207,  326,
+      339,  319,  306,  344,  309,  339,  688,  358,  735,  344,
+
+      262,  251,  358,  379,  251,  316,  207,  207,  207,  207,
+      207,  207,  324,  324,  324,  324,  324,  422,  326,  688,
+      422,  324,  324,  324,  324,  324,  324,  370,  370,  370,
+      374,  379,  434,  370,  395,  428,  374,  403,  395,  392,
+      428,  403,  442,  736,  324,  324,  324,  324,  324,  324,
+      358,  440,  407,  440,  457,  358,  407,  493,  461,  567,
+      434,  568,  457,  471,  457,  457,  457,  493,  471,  532,
+      442,  461,  569,  737,  532,  676,  687,  569,  440,  738,
+      440,  441,  441,  441,  441,  441,  567,  676,  739,  568,
+      441,  441,  441,  441,  441,  441,  649,  694,  694,  713,
+
+      694,  649,  740,  713,  687,  740,  741,  713,  742,  743,
+      745,  746,  747,  441,  441,  441,  441,  441,  441,  748,
+      749,  750,  751,  752,  753,  755,  756,  757,  758,  759,
+      760,  761,  762,  763,  764,  766,  767,  768,  769,  770,
+      649,  771,  772,  773,  774,  775,  776,  777,  778,  779,
+      780,  781,  782,  783,  784,  785,  786,  787,  788,  789,
+      790,  784,  791,  786,  793,  789,  794,  786,  795,  796,
       797,  798,  799,  800,  801,  802,  803,  804,  805,  806,
-      807,  808,  802,  809,  804,  811,  807,  812,  804,  813,
-      814,  815,  816,  817,  818,  819,  820,  821,  823,  824,
-
-      825,  826,  827,  828,  830,  831,  832,  833,  834,  835,
-      836,  837,  838,  839,  840,  841,  842,  843,  844,  845,
-      846,  847,  848,  849,  850,  851,  852,  824,  853,  854,
-      855,  856,  857,  859,  860,  861,  862,  863,  864,  865,
-      866,  867,  868,  864,  869,  870,  871,  872,  873,  876,
-      877,  878,  879,  880,  881,  882,  885,  886,  887,  888,
-      889,  890,  891,  892,  893,  894,  891,  895,  896,  897,
-      899,  901,  902,  903,  904,  905,  906,  907,  908,  909,
-      910,  911,  912,  913,  914,  915,  916,  917,  918,  919,
-      920,  921,  922,  923,  924,  925,  926,  927,  928,  929,
-
-      930,  931,  932,  934,  935,  936,  924,  937,  938,  939,
-      940,  941,  942,  944,  945,  946,  947,  949,  950,  951,
-      952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
-      962,  963,  964,  965,  966,  967,  968,  945,  969,  971,
-      944,  972,  973,  974,  975,  976,  977,  978,  979,  980,
-      981,  982,  984,  985,  986,  987,  988,  989,  991,  992,
-      993,  988,  994,  995,  996,  997,  998,  999, 1000, 1001,
-     1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
-     1012, 1013, 1016, 1017, 1018, 1020, 1021, 1022, 1023, 1025,
-     1011, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
-
-     1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1044, 1045,
-     1046, 1047, 1048, 1049,  988, 1050, 1051, 1052, 1053, 1054,
-     1055, 1056, 1057, 1058, 1060, 1059, 1061, 1062, 1063, 1064,
+      807,  809,  810,  811,  812,  813,  814,  815,  816,  817,
+      818,  819,  820,  821,  822,  823,  824,  825,  826,  827,
+
+      828,  829,  830,  831,  803,  832,  833,  834,  835,  836,
+      838,  839,  840,  841,  842,  843,  844,  845,  846,  847,
+      843,  848,  849,  850,  851,  852,  855,  856,  857,  858,
+      859,  860,  861,  864,  865,  866,  867,  868,  869,  870,
+      871,  872,  873,  870,  874,  875,  876,  878,  880,  881,
+      882,  883,  884,  885,  886,  887,  888,  889,  890,  891,
+      892,  893,  894,  895,  896,  897,  898,  899,  900,  901,
+      902,  903,  904,  905,  906,  907,  908,  909,  910,  911,
+      913,  914,  915,  903,  916,  917,  918,  919,  920,  921,
+      922,  923,  924,  926,  927,  928,  929,  930,  931,  932,
+
+      933,  934,  935,  936,  937,  938,  939,  940,  941,  942,
+      943,  944,  945,  922,  946,  948,  921,  949,  950,  951,
+      952,  953,  954,  955,  956,  957,  958,  959,  961,  962,
+      963,  964,  965,  966,  968,  969,  970,  965,  971,  972,
+      973,  974,  975,  976,  977,  978,  979,  980,  981,  982,
+      983,  984,  985,  986,  987,  988,  989,  990,  993,  994,
+      995,  997,  998,  999, 1000, 1002,  988, 1003, 1004, 1005,
+     1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
+     1016, 1017, 1018, 1019, 1021, 1022, 1023, 1024, 1025, 1026,
+      965, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1036,
+
+     1035, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
+     1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
+     1057, 1058, 1059, 1060, 1061, 1062, 1034, 1035, 1063, 1064,
      1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
-     1075, 1076, 1077, 1078, 1079, 1081, 1082, 1083, 1084, 1085,
-     1086, 1058, 1059, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
-     1094, 1095, 1096, 1097, 1098, 1100, 1101, 1102, 1103, 1104,
-     1105, 1101, 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, 1131, 1132, 1134,
-
-     1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
-     1146, 1102, 1147, 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, 1179, 1180, 1181, 1182, 1183, 1184, 1186, 1187, 1188,
-     1189, 1190, 1166, 1191, 1192, 1193, 1194, 1195, 1167, 1196,
-     1197, 1198, 1199, 1200, 1201, 1202, 1203, 1206, 1208, 1210,
-     1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
-     1221, 1222, 1223, 1225, 1226, 1227, 1229, 1230, 1231, 1232,
-     1233, 1236, 1238, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
-
-     1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1256, 1257,
-     1258, 1259, 1260, 1263, 1264, 1265, 1266, 1267, 1268, 1269,
-     1270, 1271, 1273, 1274, 1275, 1276, 1277, 1278, 1280, 1281,
-     1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
-     1292, 1293, 1294, 1296, 1297, 1298, 1299, 1300, 1270, 1301,
-     1302, 1303, 1304, 1305, 1306, 1307, 1250, 1308, 1309, 1310,
-     1311, 1313, 1314, 1315, 1316, 1317, 1318, 1274, 1319, 1320,
-     1321, 1315, 1322, 1323, 1326, 1327, 1328, 1329, 1330, 1331,
-     1332, 1333, 1334, 1335, 1336, 1337, 1339, 1340, 1341, 1342,
-     1343, 1344, 1346, 1348, 1351, 1352, 1353, 1355, 1356, 1357,
-
-     1358, 1359, 1360, 1362, 1364, 1365, 1366, 1367, 1368, 1369,
-     1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379,
-     1381, 1383, 1384, 1385, 1386, 1360, 1387, 1388, 1389, 1390,
-     1391, 1392, 1393, 1395, 1398, 1400, 1401, 1402, 1403, 1404,
-     1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1415,
-     1416, 1417, 1420, 1421, 1423, 1424, 1425, 1426, 1427, 1429,
-     1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1440, 1441,
-     1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
-     1452, 1453, 1454, 1455, 1457, 1458, 1459, 1461, 1462, 1463,
-     1451, 1464, 1465, 1466, 1467, 1440, 1468, 1468, 1469, 1470,
-
-     1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
-     1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490,
-     1491, 1492, 1493, 1494, 1495, 1497, 1498, 1499, 1500, 1502,
-     1503, 1504, 1505, 1506, 1509, 1510, 1511, 1515, 1516, 1517,
-     1518, 1519, 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528,
-     1529, 1525, 1530, 1531, 1532, 1533, 1469, 1535, 1536, 1538,
-     1505, 1540, 1541, 1542, 1544, 1545, 1546, 1547, 1548, 1550,
-     1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
-     1561, 1562, 1563, 1564, 1565, 1566, 1567, 1569, 1570, 1571,
-     1572, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
-
-     1584, 1585, 1586, 1587, 1588, 1590, 1591, 1592, 1594, 1595,
-     1596, 1597, 1598, 1599, 1600, 1601, 1603, 1604, 1605, 1606,
-     1607, 1608, 1609, 1610, 1611, 1612, 1614, 1615, 1616, 1618,
-     1619, 1620, 1621, 1623, 1625, 1626, 1627, 1628, 1629, 1630,
-     1631, 1632, 1633, 1634, 1635, 1636, 1637, 1639, 1640, 1641,
-     1642, 1643, 1644, 1645, 1647, 1648, 1649, 1650, 1652, 1653,
-     1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1663, 1664,
-     1665, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1676,
-     1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1687, 1688,
-     1689, 1690, 1691, 1692, 1693, 1694, 1696, 1698, 1699, 1700,
-
-     1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
-     1711, 1712, 1713, 1714, 1716, 1717, 1718, 1719, 1720, 1721,
-     1722, 1723, 1725, 1727, 1729, 1732, 1733, 1734, 1735, 1736,
-     1738, 1739, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748,
-     1749, 1751, 1752, 1754, 1755, 1756, 1758, 1759, 1760, 1762,
-     1764, 1765, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
-     1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784,
-     1785, 1786, 1787, 1788, 1790, 1791, 1792, 1793, 1794, 1795,
-     1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
-     1806, 1807, 1809, 1810, 1812, 1813, 1815, 1816, 1817, 1818,
-
-     1822, 1825, 1826, 1827, 1829, 1830, 1831, 1832, 1833, 1834,
-     1836, 1838, 1841, 1842, 1843, 1844, 1845, 1846, 1845, 1848,
-     1849, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859, 1860,
-     1861, 1862, 1863, 1866, 1867, 1868, 1869, 1873, 1873, 1873,
-     1873, 1873, 1874, 1874, 1874, 1874, 1874, 1875, 1881, 1875,
-     1875, 1875, 1876, 1882, 1876, 1883, 1876, 1877, 1877, 1877,
-     1877, 1877, 1878, 1878, 1878, 1878, 1878, 1879, 1884, 1879,
-     1879, 1879, 1880, 1880, 1880,  726,  725,  724,  723,  722,
-      721,  720,  719,  718,  717,  716,  715,  714,  713,  711,
-      710,  709,  708,  707,  704,  703,  702,  699,  698,  697,
-
-      696,  695,  694,  693,  692,  690,  689,  687,  686,  685,
-      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
-      673,  672,  671,  670,  669,  668,  667,  666,  665,  663,
-      662,  660,  659,  658,  657,  656,  655,  654,  652,  651,
-      650,  648,  647,  645,  644,  643,  642,  641,  640,  639,
-      638,  637,  636,  635,  634,  633,  632,  631,  629,  628,
-      627,  626,  625,  623,  622,  621,  620,  619,  618,  617,
-      616,  614,  613,  612,  611,  610,  609,  608,  607,  606,
-      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
-      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
-
-      580,  578,  575,  574,  572,  571,  570,  568,  565,  563,
-      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
-      552,  551,  550,  549,  548,  547,  546,  545,  544,  542,
-      541,  540,  539,  538,  537,  536,  535,  534,  533,  532,
-      531,  529,  527,  526,  525,  524,  523,  522,  521,  520,
-      519,  518,  517,  516,  515,  514,  512,  511,  510,  509,
-      508,  507,  506,  505,  503,  502,  501,  500,  499,  498,
-      497,  496,  495,  494,  493,  492,  491,  490,  489,  488,
-      486,  485,  484,  483,  481,  480,  479,  478,  477,  476,
-      474,  473,  471,  470,  469,  467,  465,  464,  463,  462,
-
-      461,  460,  459,  457,  456,  455,  454,  449,  448,  446,
-      445,  444,  443,  442,  439,  436,  434,  433,  432,  431,
-      430,  428,  427,  426,  425,  424,  423,  422,  421,  420,
-      419,  418,  417,  416,  415,  413,  412,  411,  409,  408,
-      407,  406,  405,  404,  403,  401,  400,  398,  397,  396,
-      395,  394,  393,  392,  391,  390,  389,  388,  384,  383,
-      382,  380,  379,  378,  376,  375,  374,  373,  372,  371,
-      370,  369,  368,  367,  366,  364,  363,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  350,  349,
-      348,  347,  345,  342,  341,  340,  339,  338,  337,  336,
-
-      335,  334,  330,  328,  325,  323,  320,  317,  310,  309,
-      308,  307,  306,  305,  304,  302,  301,  300,  299,  298,
-      297,  296,  295,  294,  292,  291,  290,  289,  288,  287,
-      286,  284,  283,  282,  281,  280,  279,  278,  277,  276,
-      275,  274,  273,  272,  271,  270,  269,  268,  266,  265,
-      264,  262,  261,  260,  259,  258,  257,  255,  254,  253,
-      252,  251,  250,  249,  248,  247,  245,  244,  243,  242,
-      241,  240,  239,  238,  237,  236,  235,  234,  233,  232,
-      231,  230,  229,  228,  227,  226,  225,  224,  223,  222,
-      220,  219,  218,  217,  216,  215,  213,  210,  208,  206,
-
-      204,  203,  198,  197,  193,  185,  184,  183,  182,  181,
-      180,  179,  177,  176,  175,  173,  172,  171,  169,  167,
-      165,  163,  162,  160,  159,  158,  157,  156,  154,  153,
-      152,  151,  150,  149,  147,  146,  145,  144,  143,  142,
-      141,  139,  138,  136,  135,  131,  130,  129,  127,  126,
-      125,  124,  122,  120,  116,  110,  106,  105,  104,   98,
-       97,   78,   73,   67,   50,   49,   48,   43,   41,   39,
-       38,   24,   14,   11, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872,
-     1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872
+     1076, 1077, 1078, 1079, 1080, 1081, 1077, 1082, 1083, 1084,
+     1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
+     1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
+     1105, 1106, 1107, 1108, 1110, 1111, 1112, 1113, 1114, 1115,
+     1116, 1117, 1118, 1119, 1120, 1122, 1078, 1123, 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, 1151, 1152, 1154, 1155, 1156, 1157, 1158,
+     1159, 1161, 1162, 1163, 1164, 1165, 1141, 1166, 1167, 1168,
+     1169, 1170, 1142, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
+     1178, 1181, 1183, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
+     1192, 1193, 1194, 1195, 1196, 1197, 1198, 1200, 1201, 1202,
+     1204, 1205, 1206, 1207, 1208, 1211, 1213, 1215, 1216, 1217,
+     1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
+     1228, 1229, 1231, 1232, 1233, 1234, 1235, 1238, 1239, 1240,
+     1241, 1242, 1243, 1244, 1245, 1247, 1248, 1249, 1250, 1251,
+
+     1252, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
+     1263, 1264, 1265, 1266, 1267, 1268, 1270, 1271, 1272, 1273,
+     1274, 1244, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282,
+     1225, 1283, 1284, 1285, 1287, 1288, 1289, 1290, 1291, 1292,
+     1248, 1293, 1294, 1295, 1289, 1296, 1297, 1300, 1301, 1302,
+     1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1313,
+     1314, 1315, 1316, 1317, 1318, 1320, 1322, 1325, 1326, 1327,
+     1329, 1330, 1331, 1332, 1333, 1335, 1337, 1338, 1339, 1340,
+     1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
+     1351, 1352, 1354, 1356, 1357, 1358, 1359, 1333, 1360, 1361,
+
+     1362, 1363, 1364, 1365, 1366, 1368, 1371, 1373, 1374, 1375,
+     1376, 1377, 1378, 1379, 1380, 1381, 1382, 1384, 1385, 1386,
+     1387, 1388, 1389, 1390, 1393, 1394, 1396, 1397, 1398, 1399,
+     1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1411,
+     1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
+     1422, 1423, 1424, 1425, 1426, 1427, 1429, 1430, 1431, 1433,
+     1434, 1435, 1423, 1436, 1437, 1438, 1439, 1412, 1440, 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, 1469, 1470, 1471,
+
+     1472, 1474, 1475, 1476, 1477, 1478, 1481, 1482, 1483, 1487,
+     1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1497, 1498,
+     1499, 1500, 1501, 1497, 1502, 1503, 1504, 1505, 1441, 1507,
+     1508, 1510, 1477, 1512, 1513, 1514, 1516, 1517, 1518, 1519,
+     1520, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
+     1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1541,
+     1542, 1543, 1544, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
+     1553, 1554, 1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564,
+     1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1575, 1576,
+     1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1586, 1587,
+
+     1588, 1590, 1591, 1592, 1593, 1595, 1597, 1598, 1599, 1600,
+     1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1611,
+     1612, 1613, 1614, 1615, 1616, 1617, 1619, 1620, 1621, 1622,
+     1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
+     1635, 1636, 1637, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
+     1646, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656,
+     1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668, 1670,
+     1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
+     1681, 1682, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1691,
+     1692, 1693, 1694, 1695, 1697, 1699, 1701, 1704, 1705, 1706,
+
+     1707, 1708, 1710, 1711, 1712, 1714, 1715, 1716, 1717, 1718,
+     1719, 1720, 1721, 1723, 1724, 1726, 1727, 1728, 1730, 1731,
+     1732, 1734, 1736, 1737, 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,
+     1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
+     1776, 1777, 1778, 1779, 1781, 1782, 1784, 1785, 1787, 1788,
+     1789, 1790, 1794, 1797, 1798, 1799, 1801, 1802, 1803, 1804,
+     1805, 1806, 1808, 1810, 1813, 1814, 1815, 1816, 1817, 1818,
+     1817, 1820, 1821, 1823, 1824, 1825, 1826, 1827, 1828, 1829,
+
+     1831, 1832, 1833, 1834, 1835, 1838, 1839, 1840, 1841, 1845,
+     1845, 1845, 1845, 1845, 1846, 1846, 1846, 1846, 1846, 1847,
+     1853, 1847, 1847, 1847, 1848, 1854, 1848, 1855, 1848, 1849,
+     1849, 1849, 1849, 1849, 1850, 1850, 1850, 1850, 1850, 1851,
+     1856, 1851, 1851, 1851, 1852, 1852, 1852,  725,  724,  723,
+      722,  720,  719,  718,  717,  716,  715,  714,  712,  711,
+      710,  709,  708,  707,  706,  705,  704,  703,  702,  701,
+      700,  699,  698,  697,  696,  695,  693,  692,  691,  690,
+      689,  684,  683,  682,  681,  680,  679,  678,  677,  675,
+      674,  672,  671,  670,  669,  668,  667,  666,  665,  664,
+
+      663,  662,  661,  660,  658,  657,  656,  655,  654,  653,
+      652,  651,  650,  648,  647,  645,  644,  643,  642,  641,
+      640,  639,  637,  636,  635,  633,  632,  630,  629,  628,
+      627,  626,  625,  624,  623,  622,  621,  620,  619,  618,
+      617,  616,  614,  613,  612,  611,  610,  608,  607,  606,
+      605,  604,  603,  602,  601,  599,  598,  597,  596,  595,
+      594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
+      584,  583,  582,  581,  580,  579,  578,  577,  576,  575,
+      574,  573,  572,  571,  563,  561,  560,  559,  557,  554,
+      552,  551,  550,  549,  548,  547,  546,  545,  544,  543,
+
+      542,  541,  540,  539,  538,  537,  536,  535,  534,  533,
+      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
+      521,  520,  518,  516,  515,  514,  513,  512,  511,  510,
+      509,  508,  507,  506,  505,  504,  503,  501,  500,  499,
+      498,  497,  496,  495,  494,  492,  491,  490,  489,  488,
+      487,  486,  485,  484,  483,  482,  481,  480,  479,  478,
+      477,  475,  474,  473,  472,  470,  469,  468,  467,  466,
+      465,  463,  462,  460,  459,  458,  456,  454,  453,  452,
+      451,  450,  449,  448,  446,  445,  444,  443,  438,  436,
+      435,  432,  429,  427,  426,  425,  424,  423,  421,  420,
+
+      419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
+      409,  408,  406,  405,  404,  402,  401,  400,  399,  398,
+      397,  396,  394,  393,  391,  390,  389,  388,  387,  386,
+      385,  384,  383,  382,  381,  377,  376,  375,  373,  372,
+      371,  369,  368,  367,  366,  365,  364,  363,  362,  361,
+      360,  359,  357,  356,  355,  354,  353,  352,  351,  350,
+      349,  348,  347,  346,  345,  343,  342,  341,  340,  338,
+      335,  334,  333,  332,  331,  330,  329,  328,  327,  323,
+      321,  317,  315,  312,  305,  304,  303,  302,  301,  300,
+      299,  297,  296,  295,  294,  293,  292,  291,  290,  289,
+
+      287,  286,  285,  284,  283,  282,  281,  279,  278,  277,
+      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
+      266,  265,  264,  263,  261,  260,  259,  257,  256,  255,
+      254,  253,  252,  250,  249,  248,  247,  246,  245,  244,
+      243,  242,  240,  239,  238,  237,  236,  235,  234,  233,
+      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
+      222,  221,  220,  219,  218,  217,  215,  214,  213,  212,
+      211,  210,  208,  205,  203,  201,  199,  194,  190,  182,
+      181,  180,  179,  178,  177,  176,  174,  173,  172,  170,
+      169,  168,  166,  164,  162,  160,  159,  157,  156,  155,
+
+      154,  153,  151,  150,  149,  148,  147,  146,  144,  143,
+      142,  141,  140,  139,  138,  136,  135,  133,  132,  128,
+      127,  126,  124,  123,  122,  121,  119,  117,  113,  104,
+      103,   97,   96,   77,   72,   66,   52,   49,   48,   43,
+       41,   39,   38,   24,   14,   11, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+     1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1906,31 +1891,31 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[208] =
+static const flex_int16_t yy_rule_linenum[204] =
     {   0,
-      149,  151,  153,  158,  159,  164,  165,  166,  178,  181,
-      186,  193,  202,  211,  220,  229,  238,  247,  256,  265,
-      274,  283,  292,  301,  310,  322,  334,  344,  354,  364,
-      374,  384,  393,  403,  413,  423,  433,  442,  451,  460,
-      469,  478,  487,  496,  505,  514,  523,  532,  541,  550,
-      559,  572,  581,  590,  599,  608,  619,  630,  641,  652,
-      664,  675,  686,  697,  708,  719,  730,  741,  752,  763,
-      774,  785,  794,  805,  816,  827,  838,  849,  860,  871,
-      882,  891,  900,  909,  918,  929,  940,  951,  962,  973,
-      984,  994, 1005, 1014, 1023, 1038, 1054, 1063, 1072, 1081,
-
-     1090, 1099, 1108, 1117, 1126, 1135, 1144, 1168, 1192, 1201,
-     1211, 1221, 1230, 1240, 1251, 1260, 1269, 1278, 1287, 1296,
-     1306, 1315, 1324, 1333, 1344, 1355, 1366, 1375, 1385, 1394,
-     1403, 1412, 1421, 1430, 1439, 1448, 1457, 1467, 1479, 1492,
-     1501, 1510, 1520, 1530, 1539, 1550, 1560, 1569, 1579, 1589,
-     1598, 1607, 1616, 1625, 1635, 1644, 1653, 1662, 1671, 1680,
-     1689, 1698, 1707, 1716, 1725, 1734, 1743, 1752, 1761, 1770,
-     1779, 1788, 1797, 1806, 1815, 1824, 1833, 1842, 1851, 1860,
-     1869, 1878, 1887, 1896, 1905, 1914, 1923, 1932, 1941, 1950,
-     2049, 2054, 2059, 2064, 2065, 2066, 2067, 2068, 2069, 2071,
-
-     2089, 2102, 2107, 2111, 2113, 2115, 2117
+      147,  149,  151,  156,  157,  162,  163,  164,  176,  179,
+      184,  191,  200,  209,  218,  227,  236,  245,  254,  263,
+      272,  281,  290,  299,  308,  320,  332,  342,  352,  362,
+      372,  382,  391,  401,  411,  421,  431,  440,  449,  458,
+      467,  476,  485,  494,  503,  512,  521,  530,  539,  548,
+      557,  570,  579,  588,  597,  606,  617,  628,  639,  650,
+      662,  673,  684,  695,  706,  717,  728,  739,  750,  761,
+      772,  783,  792,  803,  814,  825,  836,  847,  858,  869,
+      880,  889,  898,  907,  916,  927,  938,  949,  960,  971,
+      982,  992, 1003, 1012, 1021, 1036, 1052, 1061, 1070, 1079,
+
+     1088, 1097, 1106, 1115, 1124, 1133, 1142, 1166, 1190, 1199,
+     1209, 1219, 1228, 1238, 1249, 1258, 1267, 1276, 1285, 1294,
+     1304, 1313, 1322, 1331, 1342, 1353, 1364, 1373, 1382, 1391,
+     1400, 1409, 1418, 1427, 1436, 1445, 1455, 1467, 1480, 1489,
+     1498, 1508, 1518, 1527, 1538, 1548, 1557, 1567, 1577, 1586,
+     1595, 1604, 1613, 1623, 1632, 1641, 1650, 1659, 1668, 1677,
+     1686, 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758, 1767,
+     1776, 1785, 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857,
+     1866, 1875, 1884, 1893, 1902, 1911, 2010, 2015, 2020, 2025,
+     2026, 2027, 2028, 2029, 2030, 2032, 2050, 2063, 2068, 2072,
+
+     2074, 2076, 2078
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1983,7 +1968,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1986 "dhcp6_lexer.cc"
+#line 1971 "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
@@ -2009,8 +1994,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 2012 "dhcp6_lexer.cc"
-#line 2013 "dhcp6_lexer.cc"
+#line 1997 "dhcp6_lexer.cc"
+#line 1998 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2336,13 +2321,11 @@ YY_DECL
             return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
         case Parser6Context::PARSER_CONFIG_CONTROL:
             return isc::dhcp::Dhcp6Parser::make_SUB_CONFIG_CONTROL(driver.loc_);
-        case Parser6Context::PARSER_LOGGING:
-            return isc::dhcp::Dhcp6Parser::make_SUB_LOGGING(driver.loc_);
         }
     }
 
 
-#line 2345 "dhcp6_lexer.cc"
+#line 2328 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2371,13 +2354,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 >= 1873 )
+                               if ( yy_current_state >= 1845 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1872 );
+               while ( yy_current_state != 1844 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2396,13 +2379,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 < 208 )
+                       else if ( yy_act < 204 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 208 )
+                       else if ( yy_act == 204 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 209 )
+                       else if ( yy_act == 205 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2420,17 +2403,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 149 "dhcp6_lexer.ll"
+#line 147 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 151 "dhcp6_lexer.ll"
+#line 149 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 153 "dhcp6_lexer.ll"
+#line 151 "dhcp6_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2438,33 +2421,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 158 "dhcp6_lexer.ll"
+#line 156 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 159 "dhcp6_lexer.ll"
+#line 157 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 160 "dhcp6_lexer.ll"
+#line 158 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 164 "dhcp6_lexer.ll"
+#line 162 "dhcp6_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 165 "dhcp6_lexer.ll"
+#line 163 "dhcp6_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 166 "dhcp6_lexer.ll"
+#line 164 "dhcp6_lexer.ll"
 {
     /* Include directive. */
 
@@ -2478,19 +2461,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 175 "dhcp6_lexer.ll"
+#line 173 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 178 "dhcp6_lexer.ll"
+#line 176 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 181 "dhcp6_lexer.ll"
+#line 179 "dhcp6_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2499,7 +2482,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 186 "dhcp6_lexer.ll"
+#line 184 "dhcp6_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -2508,7 +2491,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 193 "dhcp6_lexer.ll"
+#line 191 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2520,7 +2503,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 202 "dhcp6_lexer.ll"
+#line 200 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2532,7 +2515,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 211 "dhcp6_lexer.ll"
+#line 209 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2544,7 +2527,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 220 "dhcp6_lexer.ll"
+#line 218 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2556,7 +2539,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 229 "dhcp6_lexer.ll"
+#line 227 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2568,7 +2551,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 238 "dhcp6_lexer.ll"
+#line 236 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2580,7 +2563,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 247 "dhcp6_lexer.ll"
+#line 245 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2592,7 +2575,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 256 "dhcp6_lexer.ll"
+#line 254 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2604,7 +2587,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 265 "dhcp6_lexer.ll"
+#line 263 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2616,7 +2599,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 274 "dhcp6_lexer.ll"
+#line 272 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2628,7 +2611,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 283 "dhcp6_lexer.ll"
+#line 281 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2640,7 +2623,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 292 "dhcp6_lexer.ll"
+#line 290 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2652,7 +2635,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 301 "dhcp6_lexer.ll"
+#line 299 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2664,7 +2647,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 310 "dhcp6_lexer.ll"
+#line 308 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2679,7 +2662,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 322 "dhcp6_lexer.ll"
+#line 320 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2694,7 +2677,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 334 "dhcp6_lexer.ll"
+#line 332 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
@@ -2707,7 +2690,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 344 "dhcp6_lexer.ll"
+#line 342 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
@@ -2720,7 +2703,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 354 "dhcp6_lexer.ll"
+#line 352 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
@@ -2733,7 +2716,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 364 "dhcp6_lexer.ll"
+#line 362 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2746,7 +2729,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 374 "dhcp6_lexer.ll"
+#line 372 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2759,7 +2742,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 384 "dhcp6_lexer.ll"
+#line 382 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME:
@@ -2771,7 +2754,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 393 "dhcp6_lexer.ll"
+#line 391 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2784,7 +2767,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 403 "dhcp6_lexer.ll"
+#line 401 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2797,7 +2780,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 413 "dhcp6_lexer.ll"
+#line 411 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2810,7 +2793,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 423 "dhcp6_lexer.ll"
+#line 421 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2823,7 +2806,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 433 "dhcp6_lexer.ll"
+#line 431 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -2835,7 +2818,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 442 "dhcp6_lexer.ll"
+#line 440 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2847,7 +2830,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 451 "dhcp6_lexer.ll"
+#line 449 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2859,7 +2842,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 460 "dhcp6_lexer.ll"
+#line 458 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2871,7 +2854,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 469 "dhcp6_lexer.ll"
+#line 467 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2883,7 +2866,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 478 "dhcp6_lexer.ll"
+#line 476 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2895,7 +2878,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 487 "dhcp6_lexer.ll"
+#line 485 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SANITY_CHECKS:
@@ -2907,7 +2890,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 496 "dhcp6_lexer.ll"
+#line 494 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2919,7 +2902,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 505 "dhcp6_lexer.ll"
+#line 503 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2931,7 +2914,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 514 "dhcp6_lexer.ll"
+#line 512 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2943,7 +2926,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 523 "dhcp6_lexer.ll"
+#line 521 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2955,7 +2938,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 532 "dhcp6_lexer.ll"
+#line 530 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG_CONTROL:
@@ -2967,7 +2950,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 541 "dhcp6_lexer.ll"
+#line 539 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG_CONTROL:
@@ -2979,7 +2962,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 550 "dhcp6_lexer.ll"
+#line 548 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOSTS_DATABASE:
@@ -2991,7 +2974,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 559 "dhcp6_lexer.ll"
+#line 557 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3007,7 +2990,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 572 "dhcp6_lexer.ll"
+#line 570 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -3019,7 +3002,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 581 "dhcp6_lexer.ll"
+#line 579 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -3031,7 +3014,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 590 "dhcp6_lexer.ll"
+#line 588 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -3043,7 +3026,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 599 "dhcp6_lexer.ll"
+#line 597 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -3055,7 +3038,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 608 "dhcp6_lexer.ll"
+#line 606 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3069,7 +3052,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 619 "dhcp6_lexer.ll"
+#line 617 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3083,7 +3066,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 630 "dhcp6_lexer.ll"
+#line 628 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3097,7 +3080,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 641 "dhcp6_lexer.ll"
+#line 639 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3111,7 +3094,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 652 "dhcp6_lexer.ll"
+#line 650 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3126,7 +3109,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 664 "dhcp6_lexer.ll"
+#line 662 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3140,7 +3123,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 675 "dhcp6_lexer.ll"
+#line 673 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3154,7 +3137,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 686 "dhcp6_lexer.ll"
+#line 684 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3168,7 +3151,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 697 "dhcp6_lexer.ll"
+#line 695 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3182,7 +3165,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 708 "dhcp6_lexer.ll"
+#line 706 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3196,7 +3179,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 719 "dhcp6_lexer.ll"
+#line 717 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3210,7 +3193,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 730 "dhcp6_lexer.ll"
+#line 728 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3224,7 +3207,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 741 "dhcp6_lexer.ll"
+#line 739 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3238,7 +3221,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 752 "dhcp6_lexer.ll"
+#line 750 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3252,7 +3235,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 763 "dhcp6_lexer.ll"
+#line 761 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3266,7 +3249,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 774 "dhcp6_lexer.ll"
+#line 772 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3280,7 +3263,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 785 "dhcp6_lexer.ll"
+#line 783 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3292,7 +3275,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 794 "dhcp6_lexer.ll"
+#line 792 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3306,7 +3289,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 805 "dhcp6_lexer.ll"
+#line 803 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3320,7 +3303,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 816 "dhcp6_lexer.ll"
+#line 814 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3334,7 +3317,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 827 "dhcp6_lexer.ll"
+#line 825 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3348,7 +3331,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 838 "dhcp6_lexer.ll"
+#line 836 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3362,7 +3345,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 849 "dhcp6_lexer.ll"
+#line 847 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3376,7 +3359,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 860 "dhcp6_lexer.ll"
+#line 858 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3390,7 +3373,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 871 "dhcp6_lexer.ll"
+#line 869 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3404,7 +3387,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 882 "dhcp6_lexer.ll"
+#line 880 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3416,7 +3399,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 891 "dhcp6_lexer.ll"
+#line 889 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3428,7 +3411,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 900 "dhcp6_lexer.ll"
+#line 898 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3440,7 +3423,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 909 "dhcp6_lexer.ll"
+#line 907 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3452,7 +3435,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 918 "dhcp6_lexer.ll"
+#line 916 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3466,7 +3449,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 929 "dhcp6_lexer.ll"
+#line 927 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3480,7 +3463,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 940 "dhcp6_lexer.ll"
+#line 938 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3494,7 +3477,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 951 "dhcp6_lexer.ll"
+#line 949 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3508,7 +3491,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 962 "dhcp6_lexer.ll"
+#line 960 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3522,7 +3505,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 973 "dhcp6_lexer.ll"
+#line 971 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3536,7 +3519,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 984 "dhcp6_lexer.ll"
+#line 982 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3549,7 +3532,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 994 "dhcp6_lexer.ll"
+#line 992 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3563,7 +3546,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 1005 "dhcp6_lexer.ll"
+#line 1003 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3575,7 +3558,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1014 "dhcp6_lexer.ll"
+#line 1012 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3587,7 +3570,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1023 "dhcp6_lexer.ll"
+#line 1021 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3605,7 +3588,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1038 "dhcp6_lexer.ll"
+#line 1036 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3624,7 +3607,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1054 "dhcp6_lexer.ll"
+#line 1052 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3636,7 +3619,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1063 "dhcp6_lexer.ll"
+#line 1061 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3648,7 +3631,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1072 "dhcp6_lexer.ll"
+#line 1070 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3660,7 +3643,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1081 "dhcp6_lexer.ll"
+#line 1079 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3672,7 +3655,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1090 "dhcp6_lexer.ll"
+#line 1088 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3684,7 +3667,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1099 "dhcp6_lexer.ll"
+#line 1097 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3696,7 +3679,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1108 "dhcp6_lexer.ll"
+#line 1106 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3708,7 +3691,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1117 "dhcp6_lexer.ll"
+#line 1115 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3720,7 +3703,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1126 "dhcp6_lexer.ll"
+#line 1124 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3732,7 +3715,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1135 "dhcp6_lexer.ll"
+#line 1133 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -3744,7 +3727,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1144 "dhcp6_lexer.ll"
+#line 1142 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3771,7 +3754,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1168 "dhcp6_lexer.ll"
+#line 1166 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3798,7 +3781,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1192 "dhcp6_lexer.ll"
+#line 1190 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3810,7 +3793,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1201 "dhcp6_lexer.ll"
+#line 1199 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3823,7 +3806,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1211 "dhcp6_lexer.ll"
+#line 1209 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3836,7 +3819,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1221 "dhcp6_lexer.ll"
+#line 1219 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3848,7 +3831,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1230 "dhcp6_lexer.ll"
+#line 1228 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3861,7 +3844,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1240 "dhcp6_lexer.ll"
+#line 1238 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3875,7 +3858,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1251 "dhcp6_lexer.ll"
+#line 1249 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3887,7 +3870,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1260 "dhcp6_lexer.ll"
+#line 1258 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3899,7 +3882,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1269 "dhcp6_lexer.ll"
+#line 1267 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3911,7 +3894,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1278 "dhcp6_lexer.ll"
+#line 1276 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3923,7 +3906,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1287 "dhcp6_lexer.ll"
+#line 1285 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3935,7 +3918,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1296 "dhcp6_lexer.ll"
+#line 1294 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3948,7 +3931,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1306 "dhcp6_lexer.ll"
+#line 1304 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3960,7 +3943,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1315 "dhcp6_lexer.ll"
+#line 1313 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3972,7 +3955,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1324 "dhcp6_lexer.ll"
+#line 1322 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3984,7 +3967,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1333 "dhcp6_lexer.ll"
+#line 1331 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3998,7 +3981,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1344 "dhcp6_lexer.ll"
+#line 1342 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4012,7 +3995,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1355 "dhcp6_lexer.ll"
+#line 1353 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4026,32 +4009,19 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1366 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::CONFIG:
-        return isc::dhcp::Dhcp6Parser::make_LOGGING(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("Logging", driver.loc_);
-    }
-}
-       YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 1375 "dhcp6_lexer.ll"
+#line 1364 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
-    case isc::dhcp::Parser6Context::LOGGING:
         return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
     default:
         return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
     }
 }
        YY_BREAK
-case 129:
+case 128:
 YY_RULE_SETUP
-#line 1385 "dhcp6_lexer.ll"
+#line 1373 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4061,9 +4031,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 129:
 YY_RULE_SETUP
-#line 1394 "dhcp6_lexer.ll"
+#line 1382 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4073,9 +4043,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 130:
 YY_RULE_SETUP
-#line 1403 "dhcp6_lexer.ll"
+#line 1391 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4085,9 +4055,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 131:
 YY_RULE_SETUP
-#line 1412 "dhcp6_lexer.ll"
+#line 1400 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4097,9 +4067,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 132:
 YY_RULE_SETUP
-#line 1421 "dhcp6_lexer.ll"
+#line 1409 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4109,9 +4079,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 133:
 YY_RULE_SETUP
-#line 1430 "dhcp6_lexer.ll"
+#line 1418 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4121,9 +4091,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 134:
 YY_RULE_SETUP
-#line 1439 "dhcp6_lexer.ll"
+#line 1427 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4133,9 +4103,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 135:
 YY_RULE_SETUP
-#line 1448 "dhcp6_lexer.ll"
+#line 1436 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4145,9 +4115,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 136:
 YY_RULE_SETUP
-#line 1457 "dhcp6_lexer.ll"
+#line 1445 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4158,9 +4128,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 137:
 YY_RULE_SETUP
-#line 1467 "dhcp6_lexer.ll"
+#line 1455 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4173,9 +4143,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 138:
 YY_RULE_SETUP
-#line 1479 "dhcp6_lexer.ll"
+#line 1467 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4189,9 +4159,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 139:
 YY_RULE_SETUP
-#line 1492 "dhcp6_lexer.ll"
+#line 1480 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4201,9 +4171,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 140:
 YY_RULE_SETUP
-#line 1501 "dhcp6_lexer.ll"
+#line 1489 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4213,9 +4183,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 141:
 YY_RULE_SETUP
-#line 1510 "dhcp6_lexer.ll"
+#line 1498 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4226,9 +4196,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 142:
 YY_RULE_SETUP
-#line 1520 "dhcp6_lexer.ll"
+#line 1508 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4239,9 +4209,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 143:
 YY_RULE_SETUP
-#line 1530 "dhcp6_lexer.ll"
+#line 1518 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4251,9 +4221,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 144:
 YY_RULE_SETUP
-#line 1539 "dhcp6_lexer.ll"
+#line 1527 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -4265,9 +4235,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 145:
 YY_RULE_SETUP
-#line 1550 "dhcp6_lexer.ll"
+#line 1538 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4278,9 +4248,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 146:
 YY_RULE_SETUP
-#line 1560 "dhcp6_lexer.ll"
+#line 1548 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4290,9 +4260,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 147:
 YY_RULE_SETUP
-#line 1569 "dhcp6_lexer.ll"
+#line 1557 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4303,9 +4273,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 148:
 YY_RULE_SETUP
-#line 1579 "dhcp6_lexer.ll"
+#line 1567 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4316,9 +4286,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 149:
 YY_RULE_SETUP
-#line 1589 "dhcp6_lexer.ll"
+#line 1577 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -4328,9 +4298,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 150:
 YY_RULE_SETUP
-#line 1598 "dhcp6_lexer.ll"
+#line 1586 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4340,9 +4310,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 151:
 YY_RULE_SETUP
-#line 1607 "dhcp6_lexer.ll"
+#line 1595 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4352,9 +4322,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 152:
 YY_RULE_SETUP
-#line 1616 "dhcp6_lexer.ll"
+#line 1604 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4364,9 +4334,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 153:
 YY_RULE_SETUP
-#line 1625 "dhcp6_lexer.ll"
+#line 1613 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4377,9 +4347,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 154:
 YY_RULE_SETUP
-#line 1635 "dhcp6_lexer.ll"
+#line 1623 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -4389,9 +4359,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 155:
 YY_RULE_SETUP
-#line 1644 "dhcp6_lexer.ll"
+#line 1632 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4401,9 +4371,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 156:
 YY_RULE_SETUP
-#line 1653 "dhcp6_lexer.ll"
+#line 1641 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4413,9 +4383,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 157:
 YY_RULE_SETUP
-#line 1662 "dhcp6_lexer.ll"
+#line 1650 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4425,9 +4395,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 158:
 YY_RULE_SETUP
-#line 1671 "dhcp6_lexer.ll"
+#line 1659 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4437,9 +4407,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 159:
 YY_RULE_SETUP
-#line 1680 "dhcp6_lexer.ll"
+#line 1668 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4449,9 +4419,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 160:
 YY_RULE_SETUP
-#line 1689 "dhcp6_lexer.ll"
+#line 1677 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4461,9 +4431,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 161:
 YY_RULE_SETUP
-#line 1698 "dhcp6_lexer.ll"
+#line 1686 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4473,9 +4443,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 162:
 YY_RULE_SETUP
-#line 1707 "dhcp6_lexer.ll"
+#line 1695 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4485,9 +4455,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 163:
 YY_RULE_SETUP
-#line 1716 "dhcp6_lexer.ll"
+#line 1704 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4497,9 +4467,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 164:
 YY_RULE_SETUP
-#line 1725 "dhcp6_lexer.ll"
+#line 1713 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4509,9 +4479,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 165:
 YY_RULE_SETUP
-#line 1734 "dhcp6_lexer.ll"
+#line 1722 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4521,9 +4491,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 166:
 YY_RULE_SETUP
-#line 1743 "dhcp6_lexer.ll"
+#line 1731 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4533,9 +4503,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 168:
+case 167:
 YY_RULE_SETUP
-#line 1752 "dhcp6_lexer.ll"
+#line 1740 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4545,9 +4515,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 169:
+case 168:
 YY_RULE_SETUP
-#line 1761 "dhcp6_lexer.ll"
+#line 1749 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4557,9 +4527,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 170:
+case 169:
 YY_RULE_SETUP
-#line 1770 "dhcp6_lexer.ll"
+#line 1758 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4569,9 +4539,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 171:
+case 170:
 YY_RULE_SETUP
-#line 1779 "dhcp6_lexer.ll"
+#line 1767 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4581,9 +4551,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 172:
+case 171:
 YY_RULE_SETUP
-#line 1788 "dhcp6_lexer.ll"
+#line 1776 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4593,9 +4563,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 172:
 YY_RULE_SETUP
-#line 1797 "dhcp6_lexer.ll"
+#line 1785 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4605,9 +4575,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 173:
 YY_RULE_SETUP
-#line 1806 "dhcp6_lexer.ll"
+#line 1794 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4617,9 +4587,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 174:
 YY_RULE_SETUP
-#line 1815 "dhcp6_lexer.ll"
+#line 1803 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4629,9 +4599,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 175:
 YY_RULE_SETUP
-#line 1824 "dhcp6_lexer.ll"
+#line 1812 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4641,9 +4611,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 176:
 YY_RULE_SETUP
-#line 1833 "dhcp6_lexer.ll"
+#line 1821 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4653,9 +4623,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 177:
 YY_RULE_SETUP
-#line 1842 "dhcp6_lexer.ll"
+#line 1830 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4665,9 +4635,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 178:
 YY_RULE_SETUP
-#line 1851 "dhcp6_lexer.ll"
+#line 1839 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4677,9 +4647,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 179:
 YY_RULE_SETUP
-#line 1860 "dhcp6_lexer.ll"
+#line 1848 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4689,9 +4659,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 181:
+case 180:
 YY_RULE_SETUP
-#line 1869 "dhcp6_lexer.ll"
+#line 1857 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4701,9 +4671,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 182:
+case 181:
 YY_RULE_SETUP
-#line 1878 "dhcp6_lexer.ll"
+#line 1866 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4713,9 +4683,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 183:
+case 182:
 YY_RULE_SETUP
-#line 1887 "dhcp6_lexer.ll"
+#line 1875 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4725,9 +4695,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 184:
+case 183:
 YY_RULE_SETUP
-#line 1896 "dhcp6_lexer.ll"
+#line 1884 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4737,9 +4707,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 185:
+case 184:
 YY_RULE_SETUP
-#line 1905 "dhcp6_lexer.ll"
+#line 1893 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4749,9 +4719,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 186:
+case 185:
 YY_RULE_SETUP
-#line 1914 "dhcp6_lexer.ll"
+#line 1902 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4761,45 +4731,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 187:
-YY_RULE_SETUP
-#line 1923 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::CONFIG:
-        return isc::dhcp::Dhcp6Parser::make_DHCP4(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp4", driver.loc_);
-    }
-}
-       YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 1932 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::CONFIG:
-        return isc::dhcp::Dhcp6Parser::make_DHCPDDNS(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("DhcpDdns", driver.loc_);
-    }
-}
-       YY_BREAK
-case 189:
-YY_RULE_SETUP
-#line 1941 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::CONFIG:
-        return isc::dhcp::Dhcp6Parser::make_CONTROL_AGENT(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("Control-agent", driver.loc_);
-    }
-}
-       YY_BREAK
-case 190:
+case 186:
 YY_RULE_SETUP
-#line 1950 "dhcp6_lexer.ll"
+#line 1911 "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.
@@ -4899,65 +4833,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 191:
-/* rule 191 can match eol */
+case 187:
+/* rule 187 can match eol */
 YY_RULE_SETUP
-#line 2049 "dhcp6_lexer.ll"
+#line 2010 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 192:
-/* rule 192 can match eol */
+case 188:
+/* rule 188 can match eol */
 YY_RULE_SETUP
-#line 2054 "dhcp6_lexer.ll"
+#line 2015 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 193:
+case 189:
 YY_RULE_SETUP
-#line 2059 "dhcp6_lexer.ll"
+#line 2020 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
 }
        YY_BREAK
-case 194:
+case 190:
 YY_RULE_SETUP
-#line 2064 "dhcp6_lexer.ll"
+#line 2025 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 195:
+case 191:
 YY_RULE_SETUP
-#line 2065 "dhcp6_lexer.ll"
+#line 2026 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 196:
+case 192:
 YY_RULE_SETUP
-#line 2066 "dhcp6_lexer.ll"
+#line 2027 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 197:
+case 193:
 YY_RULE_SETUP
-#line 2067 "dhcp6_lexer.ll"
+#line 2028 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 198:
+case 194:
 YY_RULE_SETUP
-#line 2068 "dhcp6_lexer.ll"
+#line 2029 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 199:
+case 195:
 YY_RULE_SETUP
-#line 2069 "dhcp6_lexer.ll"
+#line 2030 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 200:
+case 196:
 YY_RULE_SETUP
-#line 2071 "dhcp6_lexer.ll"
+#line 2032 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4976,9 +4910,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 201:
+case 197:
 YY_RULE_SETUP
-#line 2089 "dhcp6_lexer.ll"
+#line 2050 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4992,43 +4926,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 202:
+case 198:
 YY_RULE_SETUP
-#line 2102 "dhcp6_lexer.ll"
+#line 2063 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 203:
+case 199:
 YY_RULE_SETUP
-#line 2107 "dhcp6_lexer.ll"
+#line 2068 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 204:
+case 200:
 YY_RULE_SETUP
-#line 2111 "dhcp6_lexer.ll"
+#line 2072 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 205:
+case 201:
 YY_RULE_SETUP
-#line 2113 "dhcp6_lexer.ll"
+#line 2074 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 206:
+case 202:
 YY_RULE_SETUP
-#line 2115 "dhcp6_lexer.ll"
+#line 2076 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 207:
+case 203:
 YY_RULE_SETUP
-#line 2117 "dhcp6_lexer.ll"
+#line 2078 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2119 "dhcp6_lexer.ll"
+#line 2080 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -5052,12 +4986,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 208:
+case 204:
 YY_RULE_SETUP
-#line 2142 "dhcp6_lexer.ll"
+#line 2103 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 5060 "dhcp6_lexer.cc"
+#line 4994 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5376,7 +5310,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 >= 1873 )
+                       if ( yy_current_state >= 1845 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5409,11 +5343,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 >= 1873 )
+               if ( yy_current_state >= 1845 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1872);
+       yy_is_jam = (yy_current_state == 1844);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6162,7 +6096,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2142 "dhcp6_lexer.ll"
+#line 2103 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 333ecdf0e1985f87f9c23bd22a0cd07b06982aa1..cb42d9eeb680062dab62d467367a312a0609038d 100644 (file)
@@ -209,29 +209,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -250,29 +250,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -291,29 +291,29 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.copy< ElementPtr > (that.value);
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.copy< bool > (that.value);
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.copy< double > (that.value);
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.copy< int64_t > (that.value);
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.copy< std::string > (that.value);
         break;
 
@@ -331,29 +331,29 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -393,68 +393,68 @@ namespace isc { namespace dhcp {
             << yysym.location << ": ";
         switch (yykind)
     {
-      case 199: // "constant string"
-#line 280 "dhcp6_parser.yy"
+      case 194: // "constant string"
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < std::string > (); }
 #line 400 "dhcp6_parser.cc"
         break;
 
-      case 200: // "integer"
-#line 280 "dhcp6_parser.yy"
+      case 195: // "integer"
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < int64_t > (); }
 #line 406 "dhcp6_parser.cc"
         break;
 
-      case 201: // "floating point"
-#line 280 "dhcp6_parser.yy"
+      case 196: // "floating point"
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < double > (); }
 #line 412 "dhcp6_parser.cc"
         break;
 
-      case 202: // "boolean"
-#line 280 "dhcp6_parser.yy"
+      case 197: // "boolean"
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < bool > (); }
 #line 418 "dhcp6_parser.cc"
         break;
 
-      case 220: // value
-#line 280 "dhcp6_parser.yy"
+      case 214: // value
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 424 "dhcp6_parser.cc"
         break;
 
-      case 224: // map_value
-#line 280 "dhcp6_parser.yy"
+      case 218: // map_value
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 430 "dhcp6_parser.cc"
         break;
 
-      case 265: // ddns_replace_client_name_value
-#line 280 "dhcp6_parser.yy"
+      case 259: // ddns_replace_client_name_value
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 436 "dhcp6_parser.cc"
         break;
 
-      case 302: // db_type
-#line 280 "dhcp6_parser.yy"
+      case 296: // db_type
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 442 "dhcp6_parser.cc"
         break;
 
-      case 403: // hr_mode
-#line 280 "dhcp6_parser.yy"
+      case 397: // hr_mode
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 448 "dhcp6_parser.cc"
         break;
 
-      case 539: // duid_type
-#line 280 "dhcp6_parser.yy"
+      case 533: // duid_type
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 454 "dhcp6_parser.cc"
         break;
 
-      case 582: // ncr_protocol_value
-#line 280 "dhcp6_parser.yy"
+      case 576: // ncr_protocol_value
+#line 274 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 460 "dhcp6_parser.cc"
         break;
@@ -686,29 +686,29 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -733,286 +733,280 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 289 "dhcp6_parser.yy"
+#line 283 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 739 "dhcp6_parser.cc"
     break;
 
   case 4:
-#line 290 "dhcp6_parser.yy"
+#line 284 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.CONFIG; }
 #line 745 "dhcp6_parser.cc"
     break;
 
   case 6:
-#line 291 "dhcp6_parser.yy"
+#line 285 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.DHCP6; }
 #line 751 "dhcp6_parser.cc"
     break;
 
   case 8:
-#line 292 "dhcp6_parser.yy"
+#line 286 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 757 "dhcp6_parser.cc"
     break;
 
   case 10:
-#line 293 "dhcp6_parser.yy"
+#line 287 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.SUBNET6; }
 #line 763 "dhcp6_parser.cc"
     break;
 
   case 12:
-#line 294 "dhcp6_parser.yy"
+#line 288 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.POOLS; }
 #line 769 "dhcp6_parser.cc"
     break;
 
   case 14:
-#line 295 "dhcp6_parser.yy"
+#line 289 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.PD_POOLS; }
 #line 775 "dhcp6_parser.cc"
     break;
 
   case 16:
-#line 296 "dhcp6_parser.yy"
+#line 290 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 781 "dhcp6_parser.cc"
     break;
 
   case 18:
-#line 297 "dhcp6_parser.yy"
+#line 291 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.DHCP6; }
 #line 787 "dhcp6_parser.cc"
     break;
 
   case 20:
-#line 298 "dhcp6_parser.yy"
+#line 292 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 793 "dhcp6_parser.cc"
     break;
 
   case 22:
-#line 299 "dhcp6_parser.yy"
+#line 293 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 799 "dhcp6_parser.cc"
     break;
 
   case 24:
-#line 300 "dhcp6_parser.yy"
+#line 294 "dhcp6_parser.yy"
                          { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 805 "dhcp6_parser.cc"
     break;
 
   case 26:
-#line 301 "dhcp6_parser.yy"
+#line 295 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 811 "dhcp6_parser.cc"
     break;
 
   case 28:
-#line 302 "dhcp6_parser.yy"
-                   { ctx.ctx_ = ctx.LOGGING; }
+#line 296 "dhcp6_parser.yy"
+                          { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 817 "dhcp6_parser.cc"
     break;
 
   case 30:
-#line 303 "dhcp6_parser.yy"
-                          { ctx.ctx_ = ctx.CONFIG_CONTROL; }
-#line 823 "dhcp6_parser.cc"
-    break;
-
-  case 32:
-#line 311 "dhcp6_parser.yy"
+#line 304 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 829 "dhcp6_parser.cc"
+#line 823 "dhcp6_parser.cc"
     break;
 
-  case 33:
-#line 312 "dhcp6_parser.yy"
+  case 31:
+#line 305 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 835 "dhcp6_parser.cc"
+#line 829 "dhcp6_parser.cc"
     break;
 
-  case 34:
-#line 313 "dhcp6_parser.yy"
+  case 32:
+#line 306 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 841 "dhcp6_parser.cc"
+#line 835 "dhcp6_parser.cc"
     break;
 
-  case 35:
-#line 314 "dhcp6_parser.yy"
+  case 33:
+#line 307 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 847 "dhcp6_parser.cc"
+#line 841 "dhcp6_parser.cc"
     break;
 
-  case 36:
-#line 315 "dhcp6_parser.yy"
+  case 34:
+#line 308 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 853 "dhcp6_parser.cc"
+#line 847 "dhcp6_parser.cc"
     break;
 
-  case 37:
-#line 316 "dhcp6_parser.yy"
+  case 35:
+#line 309 "dhcp6_parser.yy"
             { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 859 "dhcp6_parser.cc"
+#line 853 "dhcp6_parser.cc"
     break;
 
-  case 38:
-#line 317 "dhcp6_parser.yy"
+  case 36:
+#line 310 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 865 "dhcp6_parser.cc"
+#line 859 "dhcp6_parser.cc"
     break;
 
-  case 39:
-#line 320 "dhcp6_parser.yy"
+  case 37:
+#line 313 "dhcp6_parser.yy"
                 {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
 }
-#line 874 "dhcp6_parser.cc"
+#line 868 "dhcp6_parser.cc"
     break;
 
-  case 40:
-#line 325 "dhcp6_parser.yy"
+  case 38:
+#line 318 "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 885 "dhcp6_parser.cc"
+#line 879 "dhcp6_parser.cc"
     break;
 
-  case 41:
-#line 330 "dhcp6_parser.yy"
+  case 39:
+#line 323 "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 895 "dhcp6_parser.cc"
+#line 889 "dhcp6_parser.cc"
     break;
 
-  case 42:
-#line 336 "dhcp6_parser.yy"
+  case 40:
+#line 329 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 901 "dhcp6_parser.cc"
+#line 895 "dhcp6_parser.cc"
     break;
 
-  case 45:
-#line 343 "dhcp6_parser.yy"
+  case 43:
+#line 336 "dhcp6_parser.yy"
                                   {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 910 "dhcp6_parser.cc"
+#line 904 "dhcp6_parser.cc"
     break;
 
-  case 46:
-#line 347 "dhcp6_parser.yy"
+  case 44:
+#line 340 "dhcp6_parser.yy"
                                                       {
                   // map consisting of a shorter map followed by
                   // comma and string:value
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 920 "dhcp6_parser.cc"
+#line 914 "dhcp6_parser.cc"
     break;
 
-  case 47:
-#line 354 "dhcp6_parser.yy"
+  case 45:
+#line 347 "dhcp6_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
 }
-#line 929 "dhcp6_parser.cc"
+#line 923 "dhcp6_parser.cc"
     break;
 
-  case 48:
-#line 357 "dhcp6_parser.yy"
+  case 46:
+#line 350 "dhcp6_parser.yy"
                                {
     // list parsing complete. Put any sanity checking here
 }
-#line 937 "dhcp6_parser.cc"
+#line 931 "dhcp6_parser.cc"
     break;
 
-  case 51:
-#line 365 "dhcp6_parser.yy"
+  case 49:
+#line 358 "dhcp6_parser.yy"
                       {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 946 "dhcp6_parser.cc"
+#line 940 "dhcp6_parser.cc"
     break;
 
-  case 52:
-#line 369 "dhcp6_parser.yy"
+  case 50:
+#line 362 "dhcp6_parser.yy"
                                            {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 955 "dhcp6_parser.cc"
+#line 949 "dhcp6_parser.cc"
     break;
 
-  case 53:
-#line 376 "dhcp6_parser.yy"
+  case 51:
+#line 369 "dhcp6_parser.yy"
                               {
     // List parsing about to start
 }
-#line 963 "dhcp6_parser.cc"
+#line 957 "dhcp6_parser.cc"
     break;
 
-  case 54:
-#line 378 "dhcp6_parser.yy"
+  case 52:
+#line 371 "dhcp6_parser.yy"
                                        {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
 }
-#line 972 "dhcp6_parser.cc"
+#line 966 "dhcp6_parser.cc"
     break;
 
-  case 57:
-#line 387 "dhcp6_parser.yy"
+  case 55:
+#line 380 "dhcp6_parser.yy"
                                {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 981 "dhcp6_parser.cc"
+#line 975 "dhcp6_parser.cc"
     break;
 
-  case 58:
-#line 391 "dhcp6_parser.yy"
+  case 56:
+#line 384 "dhcp6_parser.yy"
                                                             {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 990 "dhcp6_parser.cc"
+#line 984 "dhcp6_parser.cc"
     break;
 
-  case 59:
-#line 402 "dhcp6_parser.yy"
+  case 57:
+#line 395 "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 1001 "dhcp6_parser.cc"
+#line 995 "dhcp6_parser.cc"
     break;
 
-  case 60:
-#line 412 "dhcp6_parser.yy"
+  case 58:
+#line 404 "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 1012 "dhcp6_parser.cc"
+#line 1006 "dhcp6_parser.cc"
     break;
 
-  case 61:
-#line 417 "dhcp6_parser.yy"
+  case 59:
+#line 409 "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
@@ -1021,846 +1015,848 @@ namespace isc { namespace dhcp {
     // Dhcp6 is required
     ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 1025 "dhcp6_parser.cc"
+#line 1019 "dhcp6_parser.cc"
     break;
 
-  case 70:
-#line 441 "dhcp6_parser.yy"
+  case 63:
+#line 427 "dhcp6_parser.yy"
                     {
     // This code is executed when we're about to start parsing
     // the content of the map
+    // Prevent against duplicate.
+    ctx.unique("Dhcp6", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Dhcp6", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP6);
 }
-#line 1038 "dhcp6_parser.cc"
+#line 1034 "dhcp6_parser.cc"
     break;
 
-  case 71:
-#line 448 "dhcp6_parser.yy"
+  case 64:
+#line 436 "dhcp6_parser.yy"
                                                     {
     // No global parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1048 "dhcp6_parser.cc"
+#line 1044 "dhcp6_parser.cc"
     break;
 
-  case 72:
-#line 456 "dhcp6_parser.yy"
+  case 65:
+#line 444 "dhcp6_parser.yy"
                           {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1058 "dhcp6_parser.cc"
+#line 1054 "dhcp6_parser.cc"
     break;
 
-  case 73:
-#line 460 "dhcp6_parser.yy"
+  case 66:
+#line 448 "dhcp6_parser.yy"
                                {
     // No global parameter is required
     // parsing completed
 }
-#line 1067 "dhcp6_parser.cc"
+#line 1063 "dhcp6_parser.cc"
     break;
 
-  case 129:
-#line 526 "dhcp6_parser.yy"
+  case 122:
+#line 514 "dhcp6_parser.yy"
                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1075 "dhcp6_parser.cc"
+#line 1071 "dhcp6_parser.cc"
     break;
 
-  case 130:
-#line 528 "dhcp6_parser.yy"
+  case 123:
+#line 516 "dhcp6_parser.yy"
                {
     ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data-directory", datadir);
     ctx.leave();
 }
-#line 1085 "dhcp6_parser.cc"
+#line 1081 "dhcp6_parser.cc"
     break;
 
-  case 131:
-#line 534 "dhcp6_parser.yy"
+  case 124:
+#line 522 "dhcp6_parser.yy"
                                                      {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("preferred-lifetime", prf);
 }
-#line 1094 "dhcp6_parser.cc"
+#line 1090 "dhcp6_parser.cc"
     break;
 
-  case 132:
-#line 539 "dhcp6_parser.yy"
+  case 125:
+#line 527 "dhcp6_parser.yy"
                                                              {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("min-preferred-lifetime", prf);
 }
-#line 1103 "dhcp6_parser.cc"
+#line 1099 "dhcp6_parser.cc"
     break;
 
-  case 133:
-#line 544 "dhcp6_parser.yy"
+  case 126:
+#line 532 "dhcp6_parser.yy"
                                                              {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-preferred-lifetime", prf);
 }
-#line 1112 "dhcp6_parser.cc"
+#line 1108 "dhcp6_parser.cc"
     break;
 
-  case 134:
-#line 549 "dhcp6_parser.yy"
+  case 127:
+#line 537 "dhcp6_parser.yy"
                                              {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
 }
-#line 1121 "dhcp6_parser.cc"
+#line 1117 "dhcp6_parser.cc"
     break;
 
-  case 135:
-#line 554 "dhcp6_parser.yy"
+  case 128:
+#line 542 "dhcp6_parser.yy"
                                                      {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("min-valid-lifetime", prf);
 }
-#line 1130 "dhcp6_parser.cc"
+#line 1126 "dhcp6_parser.cc"
     break;
 
-  case 136:
-#line 559 "dhcp6_parser.yy"
+  case 129:
+#line 547 "dhcp6_parser.yy"
                                                      {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-valid-lifetime", prf);
 }
-#line 1139 "dhcp6_parser.cc"
+#line 1135 "dhcp6_parser.cc"
     break;
 
-  case 137:
-#line 564 "dhcp6_parser.yy"
+  case 130:
+#line 552 "dhcp6_parser.yy"
                                        {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
 }
-#line 1148 "dhcp6_parser.cc"
+#line 1144 "dhcp6_parser.cc"
     break;
 
-  case 138:
-#line 569 "dhcp6_parser.yy"
+  case 131:
+#line 557 "dhcp6_parser.yy"
                                          {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
 }
-#line 1157 "dhcp6_parser.cc"
+#line 1153 "dhcp6_parser.cc"
     break;
 
-  case 139:
-#line 574 "dhcp6_parser.yy"
+  case 132:
+#line 562 "dhcp6_parser.yy"
                                                        {
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("calculate-tee-times", ctt);
 }
-#line 1166 "dhcp6_parser.cc"
+#line 1162 "dhcp6_parser.cc"
     break;
 
-  case 140:
-#line 579 "dhcp6_parser.yy"
+  case 133:
+#line 567 "dhcp6_parser.yy"
                                    {
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t1-percent", t1);
 }
-#line 1175 "dhcp6_parser.cc"
+#line 1171 "dhcp6_parser.cc"
     break;
 
-  case 141:
-#line 584 "dhcp6_parser.yy"
+  case 134:
+#line 572 "dhcp6_parser.yy"
                                    {
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t2-percent", t2);
 }
-#line 1184 "dhcp6_parser.cc"
+#line 1180 "dhcp6_parser.cc"
     break;
 
-  case 142:
-#line 589 "dhcp6_parser.yy"
+  case 135:
+#line 577 "dhcp6_parser.yy"
                                                                  {
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
 }
-#line 1193 "dhcp6_parser.cc"
+#line 1189 "dhcp6_parser.cc"
     break;
 
-  case 143:
-#line 594 "dhcp6_parser.yy"
+  case 136:
+#line 582 "dhcp6_parser.yy"
                                                    {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-send-updates", b);
 }
-#line 1202 "dhcp6_parser.cc"
+#line 1198 "dhcp6_parser.cc"
     break;
 
-  case 144:
-#line 599 "dhcp6_parser.yy"
+  case 137:
+#line 587 "dhcp6_parser.yy"
                                                                {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-override-no-update", b);
 }
-#line 1211 "dhcp6_parser.cc"
+#line 1207 "dhcp6_parser.cc"
     break;
 
-  case 145:
-#line 604 "dhcp6_parser.yy"
+  case 138:
+#line 592 "dhcp6_parser.yy"
                                                                        {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-override-client-update", b);
 }
-#line 1220 "dhcp6_parser.cc"
+#line 1216 "dhcp6_parser.cc"
     break;
 
-  case 146:
-#line 609 "dhcp6_parser.yy"
+  case 139:
+#line 597 "dhcp6_parser.yy"
                                                    {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 1228 "dhcp6_parser.cc"
+#line 1224 "dhcp6_parser.cc"
     break;
 
-  case 147:
-#line 611 "dhcp6_parser.yy"
+  case 140:
+#line 599 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1237 "dhcp6_parser.cc"
+#line 1233 "dhcp6_parser.cc"
     break;
 
-  case 148:
-#line 617 "dhcp6_parser.yy"
+  case 141:
+#line 605 "dhcp6_parser.yy"
                  {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1245 "dhcp6_parser.cc"
+#line 1241 "dhcp6_parser.cc"
     break;
 
-  case 149:
-#line 620 "dhcp6_parser.yy"
+  case 142:
+#line 608 "dhcp6_parser.yy"
           {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1253 "dhcp6_parser.cc"
+#line 1249 "dhcp6_parser.cc"
     break;
 
-  case 150:
-#line 623 "dhcp6_parser.yy"
+  case 143:
+#line 611 "dhcp6_parser.yy"
            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1261 "dhcp6_parser.cc"
+#line 1257 "dhcp6_parser.cc"
     break;
 
-  case 151:
-#line 626 "dhcp6_parser.yy"
+  case 144:
+#line 614 "dhcp6_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 1269 "dhcp6_parser.cc"
+#line 1265 "dhcp6_parser.cc"
     break;
 
-  case 152:
-#line 629 "dhcp6_parser.yy"
+  case 145:
+#line 617 "dhcp6_parser.yy"
             {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 1278 "dhcp6_parser.cc"
+#line 1274 "dhcp6_parser.cc"
     break;
 
-  case 153:
-#line 635 "dhcp6_parser.yy"
+  case 146:
+#line 623 "dhcp6_parser.yy"
                                              {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1286 "dhcp6_parser.cc"
+#line 1282 "dhcp6_parser.cc"
     break;
 
-  case 154:
-#line 637 "dhcp6_parser.yy"
+  case 147:
+#line 625 "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 1296 "dhcp6_parser.cc"
+#line 1292 "dhcp6_parser.cc"
     break;
 
-  case 155:
-#line 643 "dhcp6_parser.yy"
+  case 148:
+#line 631 "dhcp6_parser.yy"
                                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1304 "dhcp6_parser.cc"
+#line 1300 "dhcp6_parser.cc"
     break;
 
-  case 156:
-#line 645 "dhcp6_parser.yy"
+  case 149:
+#line 633 "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 1314 "dhcp6_parser.cc"
+#line 1310 "dhcp6_parser.cc"
     break;
 
-  case 157:
-#line 651 "dhcp6_parser.yy"
+  case 150:
+#line 639 "dhcp6_parser.yy"
                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1322 "dhcp6_parser.cc"
+#line 1318 "dhcp6_parser.cc"
     break;
 
-  case 158:
-#line 653 "dhcp6_parser.yy"
+  case 151:
+#line 641 "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 1332 "dhcp6_parser.cc"
+#line 1328 "dhcp6_parser.cc"
     break;
 
-  case 159:
-#line 659 "dhcp6_parser.yy"
+  case 152:
+#line 647 "dhcp6_parser.yy"
                                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1340 "dhcp6_parser.cc"
+#line 1336 "dhcp6_parser.cc"
     break;
 
-  case 160:
-#line 661 "dhcp6_parser.yy"
+  case 153:
+#line 649 "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 1350 "dhcp6_parser.cc"
+#line 1346 "dhcp6_parser.cc"
     break;
 
-  case 161:
-#line 667 "dhcp6_parser.yy"
+  case 154:
+#line 655 "dhcp6_parser.yy"
                                                        {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("store-extended-info", b);
 }
-#line 1359 "dhcp6_parser.cc"
+#line 1355 "dhcp6_parser.cc"
     break;
 
-  case 162:
-#line 672 "dhcp6_parser.yy"
+  case 155:
+#line 660 "dhcp6_parser.yy"
                                                                              {
     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 1368 "dhcp6_parser.cc"
+#line 1364 "dhcp6_parser.cc"
     break;
 
-  case 163:
-#line 677 "dhcp6_parser.yy"
+  case 156:
+#line 665 "dhcp6_parser.yy"
                                                                          {
     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 1377 "dhcp6_parser.cc"
+#line 1373 "dhcp6_parser.cc"
     break;
 
-  case 164:
-#line 682 "dhcp6_parser.yy"
+  case 157:
+#line 670 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1385 "dhcp6_parser.cc"
+#line 1381 "dhcp6_parser.cc"
     break;
 
-  case 165:
-#line 684 "dhcp6_parser.yy"
+  case 158:
+#line 672 "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 1395 "dhcp6_parser.cc"
+#line 1391 "dhcp6_parser.cc"
     break;
 
-  case 166:
-#line 690 "dhcp6_parser.yy"
+  case 159:
+#line 678 "dhcp6_parser.yy"
                                      {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.INTERFACES_CONFIG);
 }
-#line 1406 "dhcp6_parser.cc"
+#line 1402 "dhcp6_parser.cc"
     break;
 
-  case 167:
-#line 695 "dhcp6_parser.yy"
+  case 160:
+#line 683 "dhcp6_parser.yy"
                                                                {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1416 "dhcp6_parser.cc"
+#line 1412 "dhcp6_parser.cc"
     break;
 
-  case 168:
-#line 701 "dhcp6_parser.yy"
+  case 161:
+#line 689 "dhcp6_parser.yy"
                                 {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1426 "dhcp6_parser.cc"
+#line 1422 "dhcp6_parser.cc"
     break;
 
-  case 169:
-#line 705 "dhcp6_parser.yy"
+  case 162:
+#line 693 "dhcp6_parser.yy"
                                           {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1435 "dhcp6_parser.cc"
+#line 1431 "dhcp6_parser.cc"
     break;
 
-  case 177:
-#line 721 "dhcp6_parser.yy"
+  case 170:
+#line 709 "dhcp6_parser.yy"
                             {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1446 "dhcp6_parser.cc"
+#line 1442 "dhcp6_parser.cc"
     break;
 
-  case 178:
-#line 726 "dhcp6_parser.yy"
+  case 171:
+#line 714 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1455 "dhcp6_parser.cc"
+#line 1451 "dhcp6_parser.cc"
     break;
 
-  case 179:
-#line 731 "dhcp6_parser.yy"
+  case 172:
+#line 719 "dhcp6_parser.yy"
                                    {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1464 "dhcp6_parser.cc"
+#line 1460 "dhcp6_parser.cc"
     break;
 
-  case 180:
-#line 736 "dhcp6_parser.yy"
+  case 173:
+#line 724 "dhcp6_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.LEASE_DATABASE);
 }
-#line 1475 "dhcp6_parser.cc"
+#line 1471 "dhcp6_parser.cc"
     break;
 
-  case 181:
-#line 741 "dhcp6_parser.yy"
+  case 174:
+#line 729 "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 1486 "dhcp6_parser.cc"
+#line 1482 "dhcp6_parser.cc"
     break;
 
-  case 182:
-#line 748 "dhcp6_parser.yy"
+  case 175:
+#line 736 "dhcp6_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1497 "dhcp6_parser.cc"
+#line 1493 "dhcp6_parser.cc"
     break;
 
-  case 183:
-#line 753 "dhcp6_parser.yy"
+  case 176:
+#line 741 "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 1508 "dhcp6_parser.cc"
+#line 1504 "dhcp6_parser.cc"
     break;
 
-  case 184:
-#line 760 "dhcp6_parser.yy"
+  case 177:
+#line 748 "dhcp6_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1519 "dhcp6_parser.cc"
+#line 1515 "dhcp6_parser.cc"
     break;
 
-  case 185:
-#line 765 "dhcp6_parser.yy"
+  case 178:
+#line 753 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1528 "dhcp6_parser.cc"
+#line 1524 "dhcp6_parser.cc"
     break;
 
-  case 190:
-#line 778 "dhcp6_parser.yy"
+  case 183:
+#line 766 "dhcp6_parser.yy"
                          {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1538 "dhcp6_parser.cc"
+#line 1534 "dhcp6_parser.cc"
     break;
 
-  case 191:
-#line 782 "dhcp6_parser.yy"
+  case 184:
+#line 770 "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 1548 "dhcp6_parser.cc"
+#line 1544 "dhcp6_parser.cc"
     break;
 
-  case 215:
-#line 815 "dhcp6_parser.yy"
+  case 208:
+#line 803 "dhcp6_parser.yy"
                     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1556 "dhcp6_parser.cc"
+#line 1552 "dhcp6_parser.cc"
     break;
 
-  case 216:
-#line 817 "dhcp6_parser.yy"
+  case 209:
+#line 805 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1565 "dhcp6_parser.cc"
+#line 1561 "dhcp6_parser.cc"
     break;
 
-  case 217:
-#line 822 "dhcp6_parser.yy"
+  case 210:
+#line 810 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1571 "dhcp6_parser.cc"
+#line 1567 "dhcp6_parser.cc"
     break;
 
-  case 218:
-#line 823 "dhcp6_parser.yy"
+  case 211:
+#line 811 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1577 "dhcp6_parser.cc"
+#line 1573 "dhcp6_parser.cc"
     break;
 
-  case 219:
-#line 824 "dhcp6_parser.yy"
+  case 212:
+#line 812 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1583 "dhcp6_parser.cc"
+#line 1579 "dhcp6_parser.cc"
     break;
 
-  case 220:
-#line 825 "dhcp6_parser.yy"
+  case 213:
+#line 813 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1589 "dhcp6_parser.cc"
+#line 1585 "dhcp6_parser.cc"
     break;
 
-  case 221:
-#line 828 "dhcp6_parser.yy"
+  case 214:
+#line 816 "dhcp6_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1597 "dhcp6_parser.cc"
+#line 1593 "dhcp6_parser.cc"
     break;
 
-  case 222:
-#line 830 "dhcp6_parser.yy"
+  case 215:
+#line 818 "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 1607 "dhcp6_parser.cc"
+#line 1603 "dhcp6_parser.cc"
     break;
 
-  case 223:
-#line 836 "dhcp6_parser.yy"
+  case 216:
+#line 824 "dhcp6_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1615 "dhcp6_parser.cc"
+#line 1611 "dhcp6_parser.cc"
     break;
 
-  case 224:
-#line 838 "dhcp6_parser.yy"
+  case 217:
+#line 826 "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 1625 "dhcp6_parser.cc"
+#line 1621 "dhcp6_parser.cc"
     break;
 
-  case 225:
-#line 844 "dhcp6_parser.yy"
+  case 218:
+#line 832 "dhcp6_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1633 "dhcp6_parser.cc"
+#line 1629 "dhcp6_parser.cc"
     break;
 
-  case 226:
-#line 846 "dhcp6_parser.yy"
+  case 219:
+#line 834 "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 1643 "dhcp6_parser.cc"
+#line 1639 "dhcp6_parser.cc"
     break;
 
-  case 227:
-#line 852 "dhcp6_parser.yy"
+  case 220:
+#line 840 "dhcp6_parser.yy"
                          {
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1652 "dhcp6_parser.cc"
+#line 1648 "dhcp6_parser.cc"
     break;
 
-  case 228:
-#line 857 "dhcp6_parser.yy"
+  case 221:
+#line 845 "dhcp6_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1660 "dhcp6_parser.cc"
+#line 1656 "dhcp6_parser.cc"
     break;
 
-  case 229:
-#line 859 "dhcp6_parser.yy"
+  case 222:
+#line 847 "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 1670 "dhcp6_parser.cc"
+#line 1666 "dhcp6_parser.cc"
     break;
 
-  case 230:
-#line 865 "dhcp6_parser.yy"
+  case 223:
+#line 853 "dhcp6_parser.yy"
                                {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1679 "dhcp6_parser.cc"
+#line 1675 "dhcp6_parser.cc"
     break;
 
-  case 231:
-#line 870 "dhcp6_parser.yy"
+  case 224:
+#line 858 "dhcp6_parser.yy"
                                          {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1688 "dhcp6_parser.cc"
+#line 1684 "dhcp6_parser.cc"
     break;
 
-  case 232:
-#line 875 "dhcp6_parser.yy"
+  case 225:
+#line 863 "dhcp6_parser.yy"
                                  {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1697 "dhcp6_parser.cc"
+#line 1693 "dhcp6_parser.cc"
     break;
 
-  case 233:
-#line 880 "dhcp6_parser.yy"
+  case 226:
+#line 868 "dhcp6_parser.yy"
                                                {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1706 "dhcp6_parser.cc"
+#line 1702 "dhcp6_parser.cc"
     break;
 
-  case 234:
-#line 885 "dhcp6_parser.yy"
+  case 227:
+#line 873 "dhcp6_parser.yy"
                                                        {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
 }
-#line 1715 "dhcp6_parser.cc"
+#line 1711 "dhcp6_parser.cc"
     break;
 
-  case 235:
-#line 890 "dhcp6_parser.yy"
+  case 228:
+#line 878 "dhcp6_parser.yy"
                                              {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-row-errors", n);
 }
-#line 1724 "dhcp6_parser.cc"
+#line 1720 "dhcp6_parser.cc"
     break;
 
-  case 236:
-#line 895 "dhcp6_parser.yy"
+  case 229:
+#line 883 "dhcp6_parser.yy"
                                                {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
 }
-#line 1733 "dhcp6_parser.cc"
+#line 1729 "dhcp6_parser.cc"
     break;
 
-  case 237:
-#line 900 "dhcp6_parser.yy"
+  case 230:
+#line 888 "dhcp6_parser.yy"
                                            {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
 }
-#line 1742 "dhcp6_parser.cc"
+#line 1738 "dhcp6_parser.cc"
     break;
 
-  case 238:
-#line 905 "dhcp6_parser.yy"
+  case 231:
+#line 893 "dhcp6_parser.yy"
                                        {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
 }
-#line 1751 "dhcp6_parser.cc"
+#line 1747 "dhcp6_parser.cc"
     break;
 
-  case 239:
-#line 910 "dhcp6_parser.yy"
+  case 232:
+#line 898 "dhcp6_parser.yy"
                                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1759 "dhcp6_parser.cc"
+#line 1755 "dhcp6_parser.cc"
     break;
 
-  case 240:
-#line 912 "dhcp6_parser.yy"
+  case 233:
+#line 900 "dhcp6_parser.yy"
                {
     ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1769 "dhcp6_parser.cc"
+#line 1765 "dhcp6_parser.cc"
     break;
 
-  case 241:
-#line 918 "dhcp6_parser.yy"
+  case 234:
+#line 906 "dhcp6_parser.yy"
                                                        {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
 }
-#line 1778 "dhcp6_parser.cc"
+#line 1774 "dhcp6_parser.cc"
     break;
 
-  case 242:
-#line 923 "dhcp6_parser.yy"
+  case 235:
+#line 911 "dhcp6_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1786 "dhcp6_parser.cc"
+#line 1782 "dhcp6_parser.cc"
     break;
 
-  case 243:
-#line 925 "dhcp6_parser.yy"
+  case 236:
+#line 913 "dhcp6_parser.yy"
                {
     ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1796 "dhcp6_parser.cc"
+#line 1792 "dhcp6_parser.cc"
     break;
 
-  case 244:
-#line 931 "dhcp6_parser.yy"
+  case 237:
+#line 919 "dhcp6_parser.yy"
                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1804 "dhcp6_parser.cc"
+#line 1800 "dhcp6_parser.cc"
     break;
 
-  case 245:
-#line 933 "dhcp6_parser.yy"
+  case 238:
+#line 921 "dhcp6_parser.yy"
                {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("consistency", c);
     ctx.leave();
 }
-#line 1814 "dhcp6_parser.cc"
+#line 1810 "dhcp6_parser.cc"
     break;
 
-  case 246:
-#line 939 "dhcp6_parser.yy"
+  case 239:
+#line 927 "dhcp6_parser.yy"
                                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1822 "dhcp6_parser.cc"
+#line 1818 "dhcp6_parser.cc"
     break;
 
-  case 247:
-#line 941 "dhcp6_parser.yy"
+  case 240:
+#line 929 "dhcp6_parser.yy"
                {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("serial-consistency", c);
     ctx.leave();
 }
-#line 1832 "dhcp6_parser.cc"
+#line 1828 "dhcp6_parser.cc"
     break;
 
-  case 248:
-#line 947 "dhcp6_parser.yy"
+  case 241:
+#line 935 "dhcp6_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SANITY_CHECKS);
 }
-#line 1843 "dhcp6_parser.cc"
+#line 1839 "dhcp6_parser.cc"
     break;
 
-  case 249:
-#line 952 "dhcp6_parser.yy"
+  case 242:
+#line 940 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1852 "dhcp6_parser.cc"
+#line 1848 "dhcp6_parser.cc"
     break;
 
-  case 253:
-#line 962 "dhcp6_parser.yy"
+  case 246:
+#line 950 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1860 "dhcp6_parser.cc"
+#line 1856 "dhcp6_parser.cc"
     break;
 
-  case 254:
-#line 964 "dhcp6_parser.yy"
+  case 247:
+#line 952 "dhcp6_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1876,356 +1872,356 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1880 "dhcp6_parser.cc"
+#line 1876 "dhcp6_parser.cc"
     break;
 
-  case 255:
-#line 980 "dhcp6_parser.yy"
+  case 248:
+#line 968 "dhcp6_parser.yy"
                          {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("mac-sources", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.MAC_SOURCES);
 }
-#line 1891 "dhcp6_parser.cc"
+#line 1887 "dhcp6_parser.cc"
     break;
 
-  case 256:
-#line 985 "dhcp6_parser.yy"
+  case 249:
+#line 973 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1900 "dhcp6_parser.cc"
+#line 1896 "dhcp6_parser.cc"
     break;
 
-  case 261:
-#line 998 "dhcp6_parser.yy"
+  case 254:
+#line 986 "dhcp6_parser.yy"
                {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1909 "dhcp6_parser.cc"
+#line 1905 "dhcp6_parser.cc"
     break;
 
-  case 262:
-#line 1003 "dhcp6_parser.yy"
+  case 255:
+#line 991 "dhcp6_parser.yy"
                    {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1918 "dhcp6_parser.cc"
+#line 1914 "dhcp6_parser.cc"
     break;
 
-  case 263:
-#line 1008 "dhcp6_parser.yy"
+  case 256:
+#line 996 "dhcp6_parser.yy"
                                                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1929 "dhcp6_parser.cc"
+#line 1925 "dhcp6_parser.cc"
     break;
 
-  case 264:
-#line 1013 "dhcp6_parser.yy"
+  case 257:
+#line 1001 "dhcp6_parser.yy"
                                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1938 "dhcp6_parser.cc"
+#line 1934 "dhcp6_parser.cc"
     break;
 
-  case 270:
-#line 1027 "dhcp6_parser.yy"
+  case 263:
+#line 1015 "dhcp6_parser.yy"
                            {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1947 "dhcp6_parser.cc"
+#line 1943 "dhcp6_parser.cc"
     break;
 
-  case 271:
-#line 1032 "dhcp6_parser.yy"
+  case 264:
+#line 1020 "dhcp6_parser.yy"
                   {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1956 "dhcp6_parser.cc"
+#line 1952 "dhcp6_parser.cc"
     break;
 
-  case 272:
-#line 1039 "dhcp6_parser.yy"
+  case 265:
+#line 1027 "dhcp6_parser.yy"
                                                {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay-supplied-options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1967 "dhcp6_parser.cc"
+#line 1963 "dhcp6_parser.cc"
     break;
 
-  case 273:
-#line 1044 "dhcp6_parser.yy"
+  case 266:
+#line 1032 "dhcp6_parser.yy"
                                                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1976 "dhcp6_parser.cc"
+#line 1972 "dhcp6_parser.cc"
     break;
 
-  case 274:
-#line 1051 "dhcp6_parser.yy"
+  case 267:
+#line 1039 "dhcp6_parser.yy"
                                            {
     ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("multi-threading", mt);
     ctx.stack_.push_back(mt);
     ctx.enter(ctx.DHCP_MULTI_THREADING);
 }
-#line 1987 "dhcp6_parser.cc"
+#line 1983 "dhcp6_parser.cc"
     break;
 
-  case 275:
-#line 1056 "dhcp6_parser.yy"
+  case 268:
+#line 1044 "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 1998 "dhcp6_parser.cc"
+#line 1994 "dhcp6_parser.cc"
     break;
 
-  case 284:
-#line 1075 "dhcp6_parser.yy"
+  case 277:
+#line 1063 "dhcp6_parser.yy"
                                                              {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-multi-threading", b);
 }
-#line 2007 "dhcp6_parser.cc"
+#line 2003 "dhcp6_parser.cc"
     break;
 
-  case 285:
-#line 1080 "dhcp6_parser.yy"
+  case 278:
+#line 1068 "dhcp6_parser.yy"
                                                  {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("thread-pool-size", prf);
 }
-#line 2016 "dhcp6_parser.cc"
+#line 2012 "dhcp6_parser.cc"
     break;
 
-  case 286:
-#line 1085 "dhcp6_parser.yy"
+  case 279:
+#line 1073 "dhcp6_parser.yy"
                                                    {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("packet-queue-size", prf);
 }
-#line 2025 "dhcp6_parser.cc"
+#line 2021 "dhcp6_parser.cc"
     break;
 
-  case 287:
-#line 1090 "dhcp6_parser.yy"
+  case 280:
+#line 1078 "dhcp6_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 2036 "dhcp6_parser.cc"
+#line 2032 "dhcp6_parser.cc"
     break;
 
-  case 288:
-#line 1095 "dhcp6_parser.yy"
+  case 281:
+#line 1083 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2045 "dhcp6_parser.cc"
+#line 2041 "dhcp6_parser.cc"
     break;
 
-  case 293:
-#line 1108 "dhcp6_parser.yy"
+  case 286:
+#line 1096 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2055 "dhcp6_parser.cc"
+#line 2051 "dhcp6_parser.cc"
     break;
 
-  case 294:
-#line 1112 "dhcp6_parser.yy"
+  case 287:
+#line 1100 "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 2065 "dhcp6_parser.cc"
+#line 2061 "dhcp6_parser.cc"
     break;
 
-  case 295:
-#line 1118 "dhcp6_parser.yy"
+  case 288:
+#line 1106 "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 2075 "dhcp6_parser.cc"
+#line 2071 "dhcp6_parser.cc"
     break;
 
-  case 296:
-#line 1122 "dhcp6_parser.yy"
+  case 289:
+#line 1110 "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 2085 "dhcp6_parser.cc"
+#line 2081 "dhcp6_parser.cc"
     break;
 
-  case 302:
-#line 1137 "dhcp6_parser.yy"
+  case 295:
+#line 1125 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2093 "dhcp6_parser.cc"
+#line 2089 "dhcp6_parser.cc"
     break;
 
-  case 303:
-#line 1139 "dhcp6_parser.yy"
+  case 296:
+#line 1127 "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 2103 "dhcp6_parser.cc"
+#line 2099 "dhcp6_parser.cc"
     break;
 
-  case 304:
-#line 1145 "dhcp6_parser.yy"
+  case 297:
+#line 1133 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2111 "dhcp6_parser.cc"
+#line 2107 "dhcp6_parser.cc"
     break;
 
-  case 305:
-#line 1147 "dhcp6_parser.yy"
+  case 298:
+#line 1135 "dhcp6_parser.yy"
               {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2120 "dhcp6_parser.cc"
+#line 2116 "dhcp6_parser.cc"
     break;
 
-  case 306:
-#line 1153 "dhcp6_parser.yy"
+  case 299:
+#line 1141 "dhcp6_parser.yy"
                                                      {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 2131 "dhcp6_parser.cc"
+#line 2127 "dhcp6_parser.cc"
     break;
 
-  case 307:
-#line 1158 "dhcp6_parser.yy"
+  case 300:
+#line 1146 "dhcp6_parser.yy"
                                                             {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2141 "dhcp6_parser.cc"
+#line 2137 "dhcp6_parser.cc"
     break;
 
-  case 316:
-#line 1176 "dhcp6_parser.yy"
+  case 309:
+#line 1164 "dhcp6_parser.yy"
                                                                {
     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 2150 "dhcp6_parser.cc"
+#line 2146 "dhcp6_parser.cc"
     break;
 
-  case 317:
-#line 1181 "dhcp6_parser.yy"
+  case 310:
+#line 1169 "dhcp6_parser.yy"
                                                                                {
     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 2159 "dhcp6_parser.cc"
+#line 2155 "dhcp6_parser.cc"
     break;
 
-  case 318:
-#line 1186 "dhcp6_parser.yy"
+  case 311:
+#line 1174 "dhcp6_parser.yy"
                                                        {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 2168 "dhcp6_parser.cc"
+#line 2164 "dhcp6_parser.cc"
     break;
 
-  case 319:
-#line 1191 "dhcp6_parser.yy"
+  case 312:
+#line 1179 "dhcp6_parser.yy"
                                                      {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 2177 "dhcp6_parser.cc"
+#line 2173 "dhcp6_parser.cc"
     break;
 
-  case 320:
-#line 1196 "dhcp6_parser.yy"
+  case 313:
+#line 1184 "dhcp6_parser.yy"
                                                  {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 2186 "dhcp6_parser.cc"
+#line 2182 "dhcp6_parser.cc"
     break;
 
-  case 321:
-#line 1201 "dhcp6_parser.yy"
+  case 314:
+#line 1189 "dhcp6_parser.yy"
                                                                {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 2195 "dhcp6_parser.cc"
+#line 2191 "dhcp6_parser.cc"
     break;
 
-  case 322:
-#line 1209 "dhcp6_parser.yy"
+  case 315:
+#line 1197 "dhcp6_parser.yy"
                       {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet6", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET6);
 }
-#line 2206 "dhcp6_parser.cc"
+#line 2202 "dhcp6_parser.cc"
     break;
 
-  case 323:
-#line 1214 "dhcp6_parser.yy"
+  case 316:
+#line 1202 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2215 "dhcp6_parser.cc"
+#line 2211 "dhcp6_parser.cc"
     break;
 
-  case 328:
-#line 1234 "dhcp6_parser.yy"
+  case 321:
+#line 1222 "dhcp6_parser.yy"
                         {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2225 "dhcp6_parser.cc"
+#line 2221 "dhcp6_parser.cc"
     break;
 
-  case 329:
-#line 1238 "dhcp6_parser.yy"
+  case 322:
+#line 1226 "dhcp6_parser.yy"
                                 {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2247,267 +2243,267 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2251 "dhcp6_parser.cc"
+#line 2247 "dhcp6_parser.cc"
     break;
 
-  case 330:
-#line 1260 "dhcp6_parser.yy"
+  case 323:
+#line 1248 "dhcp6_parser.yy"
                             {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2261 "dhcp6_parser.cc"
+#line 2257 "dhcp6_parser.cc"
     break;
 
-  case 331:
-#line 1264 "dhcp6_parser.yy"
+  case 324:
+#line 1252 "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 2271 "dhcp6_parser.cc"
+#line 2267 "dhcp6_parser.cc"
     break;
 
-  case 370:
-#line 1314 "dhcp6_parser.yy"
+  case 363:
+#line 1302 "dhcp6_parser.yy"
                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2279 "dhcp6_parser.cc"
+#line 2275 "dhcp6_parser.cc"
     break;
 
-  case 371:
-#line 1316 "dhcp6_parser.yy"
+  case 364:
+#line 1304 "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 2289 "dhcp6_parser.cc"
+#line 2285 "dhcp6_parser.cc"
     break;
 
-  case 372:
-#line 1322 "dhcp6_parser.yy"
+  case 365:
+#line 1310 "dhcp6_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2297 "dhcp6_parser.cc"
+#line 2293 "dhcp6_parser.cc"
     break;
 
-  case 373:
-#line 1324 "dhcp6_parser.yy"
+  case 366:
+#line 1312 "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 2307 "dhcp6_parser.cc"
+#line 2303 "dhcp6_parser.cc"
     break;
 
-  case 374:
-#line 1330 "dhcp6_parser.yy"
+  case 367:
+#line 1318 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2315 "dhcp6_parser.cc"
+#line 2311 "dhcp6_parser.cc"
     break;
 
-  case 375:
-#line 1332 "dhcp6_parser.yy"
+  case 368:
+#line 1320 "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 2325 "dhcp6_parser.cc"
+#line 2321 "dhcp6_parser.cc"
     break;
 
-  case 376:
-#line 1338 "dhcp6_parser.yy"
+  case 369:
+#line 1326 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2333 "dhcp6_parser.cc"
+#line 2329 "dhcp6_parser.cc"
     break;
 
-  case 377:
-#line 1340 "dhcp6_parser.yy"
+  case 370:
+#line 1328 "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 2343 "dhcp6_parser.cc"
+#line 2339 "dhcp6_parser.cc"
     break;
 
-  case 378:
-#line 1346 "dhcp6_parser.yy"
+  case 371:
+#line 1334 "dhcp6_parser.yy"
                                                {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2354 "dhcp6_parser.cc"
+#line 2350 "dhcp6_parser.cc"
     break;
 
-  case 379:
-#line 1351 "dhcp6_parser.yy"
+  case 372:
+#line 1339 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2363 "dhcp6_parser.cc"
+#line 2359 "dhcp6_parser.cc"
     break;
 
-  case 380:
-#line 1356 "dhcp6_parser.yy"
+  case 373:
+#line 1344 "dhcp6_parser.yy"
                                    {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2371 "dhcp6_parser.cc"
+#line 2367 "dhcp6_parser.cc"
     break;
 
-  case 381:
-#line 1358 "dhcp6_parser.yy"
+  case 374:
+#line 1346 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2380 "dhcp6_parser.cc"
+#line 2376 "dhcp6_parser.cc"
     break;
 
-  case 382:
-#line 1363 "dhcp6_parser.yy"
+  case 375:
+#line 1351 "dhcp6_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2386 "dhcp6_parser.cc"
+#line 2382 "dhcp6_parser.cc"
     break;
 
-  case 383:
-#line 1364 "dhcp6_parser.yy"
+  case 376:
+#line 1352 "dhcp6_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2392 "dhcp6_parser.cc"
+#line 2388 "dhcp6_parser.cc"
     break;
 
-  case 384:
-#line 1365 "dhcp6_parser.yy"
+  case 377:
+#line 1353 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2398 "dhcp6_parser.cc"
+#line 2394 "dhcp6_parser.cc"
     break;
 
-  case 385:
-#line 1366 "dhcp6_parser.yy"
+  case 378:
+#line 1354 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2404 "dhcp6_parser.cc"
+#line 2400 "dhcp6_parser.cc"
     break;
 
-  case 386:
-#line 1369 "dhcp6_parser.yy"
+  case 379:
+#line 1357 "dhcp6_parser.yy"
                      {
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 2413 "dhcp6_parser.cc"
+#line 2409 "dhcp6_parser.cc"
     break;
 
-  case 387:
-#line 1374 "dhcp6_parser.yy"
+  case 380:
+#line 1362 "dhcp6_parser.yy"
                                          {
     ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
 }
-#line 2422 "dhcp6_parser.cc"
+#line 2418 "dhcp6_parser.cc"
     break;
 
-  case 388:
-#line 1381 "dhcp6_parser.yy"
+  case 381:
+#line 1369 "dhcp6_parser.yy"
                                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 2433 "dhcp6_parser.cc"
+#line 2429 "dhcp6_parser.cc"
     break;
 
-  case 389:
-#line 1386 "dhcp6_parser.yy"
+  case 382:
+#line 1374 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2442 "dhcp6_parser.cc"
+#line 2438 "dhcp6_parser.cc"
     break;
 
-  case 394:
-#line 1401 "dhcp6_parser.yy"
+  case 387:
+#line 1389 "dhcp6_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2452 "dhcp6_parser.cc"
+#line 2448 "dhcp6_parser.cc"
     break;
 
-  case 395:
-#line 1405 "dhcp6_parser.yy"
+  case 388:
+#line 1393 "dhcp6_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
-#line 2460 "dhcp6_parser.cc"
+#line 2456 "dhcp6_parser.cc"
     break;
 
-  case 431:
-#line 1452 "dhcp6_parser.yy"
+  case 424:
+#line 1440 "dhcp6_parser.yy"
                             {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 2471 "dhcp6_parser.cc"
+#line 2467 "dhcp6_parser.cc"
     break;
 
-  case 432:
-#line 1457 "dhcp6_parser.yy"
+  case 425:
+#line 1445 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2480 "dhcp6_parser.cc"
+#line 2476 "dhcp6_parser.cc"
     break;
 
-  case 433:
-#line 1465 "dhcp6_parser.yy"
+  case 426:
+#line 1453 "dhcp6_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2489 "dhcp6_parser.cc"
+#line 2485 "dhcp6_parser.cc"
     break;
 
-  case 434:
-#line 1468 "dhcp6_parser.yy"
+  case 427:
+#line 1456 "dhcp6_parser.yy"
                                  {
     // parsing completed
 }
-#line 2497 "dhcp6_parser.cc"
+#line 2493 "dhcp6_parser.cc"
     break;
 
-  case 439:
-#line 1484 "dhcp6_parser.yy"
+  case 432:
+#line 1472 "dhcp6_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2507 "dhcp6_parser.cc"
+#line 2503 "dhcp6_parser.cc"
     break;
 
-  case 440:
-#line 1488 "dhcp6_parser.yy"
+  case 433:
+#line 1476 "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));
@@ -2515,21 +2511,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2519 "dhcp6_parser.cc"
+#line 2515 "dhcp6_parser.cc"
     break;
 
-  case 441:
-#line 1499 "dhcp6_parser.yy"
+  case 434:
+#line 1487 "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 2529 "dhcp6_parser.cc"
+#line 2525 "dhcp6_parser.cc"
     break;
 
-  case 442:
-#line 1503 "dhcp6_parser.yy"
+  case 435:
+#line 1491 "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));
@@ -2537,281 +2533,281 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2541 "dhcp6_parser.cc"
+#line 2537 "dhcp6_parser.cc"
     break;
 
-  case 458:
-#line 1535 "dhcp6_parser.yy"
+  case 451:
+#line 1523 "dhcp6_parser.yy"
                          {
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 2550 "dhcp6_parser.cc"
+#line 2546 "dhcp6_parser.cc"
     break;
 
-  case 460:
-#line 1542 "dhcp6_parser.yy"
+  case 453:
+#line 1530 "dhcp6_parser.yy"
                       {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2558 "dhcp6_parser.cc"
+#line 2554 "dhcp6_parser.cc"
     break;
 
-  case 461:
-#line 1544 "dhcp6_parser.yy"
+  case 454:
+#line 1532 "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 2568 "dhcp6_parser.cc"
+#line 2564 "dhcp6_parser.cc"
     break;
 
-  case 462:
-#line 1550 "dhcp6_parser.yy"
+  case 455:
+#line 1538 "dhcp6_parser.yy"
                                       {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2576 "dhcp6_parser.cc"
+#line 2572 "dhcp6_parser.cc"
     break;
 
-  case 463:
-#line 1552 "dhcp6_parser.yy"
+  case 456:
+#line 1540 "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 2586 "dhcp6_parser.cc"
+#line 2582 "dhcp6_parser.cc"
     break;
 
-  case 464:
-#line 1558 "dhcp6_parser.yy"
+  case 457:
+#line 1546 "dhcp6_parser.yy"
              {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2594 "dhcp6_parser.cc"
+#line 2590 "dhcp6_parser.cc"
     break;
 
-  case 465:
-#line 1560 "dhcp6_parser.yy"
+  case 458:
+#line 1548 "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 2604 "dhcp6_parser.cc"
+#line 2600 "dhcp6_parser.cc"
     break;
 
-  case 467:
-#line 1568 "dhcp6_parser.yy"
+  case 460:
+#line 1556 "dhcp6_parser.yy"
                                     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2612 "dhcp6_parser.cc"
+#line 2608 "dhcp6_parser.cc"
     break;
 
-  case 468:
-#line 1570 "dhcp6_parser.yy"
+  case 461:
+#line 1558 "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 2622 "dhcp6_parser.cc"
+#line 2618 "dhcp6_parser.cc"
     break;
 
-  case 469:
-#line 1576 "dhcp6_parser.yy"
+  case 462:
+#line 1564 "dhcp6_parser.yy"
                                       {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2631 "dhcp6_parser.cc"
+#line 2627 "dhcp6_parser.cc"
     break;
 
-  case 470:
-#line 1585 "dhcp6_parser.yy"
+  case 463:
+#line 1573 "dhcp6_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2642 "dhcp6_parser.cc"
+#line 2638 "dhcp6_parser.cc"
     break;
 
-  case 471:
-#line 1590 "dhcp6_parser.yy"
+  case 464:
+#line 1578 "dhcp6_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2651 "dhcp6_parser.cc"
+#line 2647 "dhcp6_parser.cc"
     break;
 
-  case 476:
-#line 1609 "dhcp6_parser.yy"
+  case 469:
+#line 1597 "dhcp6_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2661 "dhcp6_parser.cc"
+#line 2657 "dhcp6_parser.cc"
     break;
 
-  case 477:
-#line 1613 "dhcp6_parser.yy"
+  case 470:
+#line 1601 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2670 "dhcp6_parser.cc"
+#line 2666 "dhcp6_parser.cc"
     break;
 
-  case 478:
-#line 1621 "dhcp6_parser.yy"
+  case 471:
+#line 1609 "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 2680 "dhcp6_parser.cc"
+#line 2676 "dhcp6_parser.cc"
     break;
 
-  case 479:
-#line 1625 "dhcp6_parser.yy"
+  case 472:
+#line 1613 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2689 "dhcp6_parser.cc"
+#line 2685 "dhcp6_parser.cc"
     break;
 
-  case 494:
-#line 1658 "dhcp6_parser.yy"
+  case 487:
+#line 1646 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2697 "dhcp6_parser.cc"
+#line 2693 "dhcp6_parser.cc"
     break;
 
-  case 495:
-#line 1660 "dhcp6_parser.yy"
+  case 488:
+#line 1648 "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 2707 "dhcp6_parser.cc"
+#line 2703 "dhcp6_parser.cc"
     break;
 
-  case 498:
-#line 1670 "dhcp6_parser.yy"
+  case 491:
+#line 1658 "dhcp6_parser.yy"
                                                  {
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2716 "dhcp6_parser.cc"
+#line 2712 "dhcp6_parser.cc"
     break;
 
-  case 499:
-#line 1675 "dhcp6_parser.yy"
+  case 492:
+#line 1663 "dhcp6_parser.yy"
                                                    {
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2725 "dhcp6_parser.cc"
+#line 2721 "dhcp6_parser.cc"
     break;
 
-  case 500:
-#line 1683 "dhcp6_parser.yy"
+  case 493:
+#line 1671 "dhcp6_parser.yy"
                   {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2736 "dhcp6_parser.cc"
+#line 2732 "dhcp6_parser.cc"
     break;
 
-  case 501:
-#line 1688 "dhcp6_parser.yy"
+  case 494:
+#line 1676 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2745 "dhcp6_parser.cc"
+#line 2741 "dhcp6_parser.cc"
     break;
 
-  case 506:
-#line 1703 "dhcp6_parser.yy"
+  case 499:
+#line 1691 "dhcp6_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2755 "dhcp6_parser.cc"
+#line 2751 "dhcp6_parser.cc"
     break;
 
-  case 507:
-#line 1707 "dhcp6_parser.yy"
+  case 500:
+#line 1695 "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 2765 "dhcp6_parser.cc"
+#line 2761 "dhcp6_parser.cc"
     break;
 
-  case 508:
-#line 1713 "dhcp6_parser.yy"
+  case 501:
+#line 1701 "dhcp6_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2775 "dhcp6_parser.cc"
+#line 2771 "dhcp6_parser.cc"
     break;
 
-  case 509:
-#line 1717 "dhcp6_parser.yy"
+  case 502:
+#line 1705 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2785 "dhcp6_parser.cc"
+#line 2781 "dhcp6_parser.cc"
     break;
 
-  case 519:
-#line 1736 "dhcp6_parser.yy"
+  case 512:
+#line 1724 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2793 "dhcp6_parser.cc"
+#line 2789 "dhcp6_parser.cc"
     break;
 
-  case 520:
-#line 1738 "dhcp6_parser.yy"
+  case 513:
+#line 1726 "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 2803 "dhcp6_parser.cc"
+#line 2799 "dhcp6_parser.cc"
     break;
 
-  case 521:
-#line 1744 "dhcp6_parser.yy"
+  case 514:
+#line 1732 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2811 "dhcp6_parser.cc"
+#line 2807 "dhcp6_parser.cc"
     break;
 
-  case 522:
-#line 1746 "dhcp6_parser.yy"
+  case 515:
+#line 1734 "dhcp6_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2834,19 +2830,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2838 "dhcp6_parser.cc"
+#line 2834 "dhcp6_parser.cc"
     break;
 
-  case 523:
-#line 1769 "dhcp6_parser.yy"
+  case 516:
+#line 1757 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2846 "dhcp6_parser.cc"
+#line 2842 "dhcp6_parser.cc"
     break;
 
-  case 524:
-#line 1771 "dhcp6_parser.yy"
+  case 517:
+#line 1759 "dhcp6_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2871,41 +2867,41 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2875 "dhcp6_parser.cc"
+#line 2871 "dhcp6_parser.cc"
     break;
 
-  case 525:
-#line 1799 "dhcp6_parser.yy"
+  case 518:
+#line 1787 "dhcp6_parser.yy"
                         {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.PD_POOLS);
 }
-#line 2886 "dhcp6_parser.cc"
+#line 2882 "dhcp6_parser.cc"
     break;
 
-  case 526:
-#line 1804 "dhcp6_parser.yy"
+  case 519:
+#line 1792 "dhcp6_parser.yy"
                                                               {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2895 "dhcp6_parser.cc"
+#line 2891 "dhcp6_parser.cc"
     break;
 
-  case 531:
-#line 1819 "dhcp6_parser.yy"
+  case 524:
+#line 1807 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2905 "dhcp6_parser.cc"
+#line 2901 "dhcp6_parser.cc"
     break;
 
-  case 532:
-#line 1823 "dhcp6_parser.yy"
+  case 525:
+#line 1811 "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));
@@ -2913,21 +2909,21 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2917 "dhcp6_parser.cc"
+#line 2913 "dhcp6_parser.cc"
     break;
 
-  case 533:
-#line 1831 "dhcp6_parser.yy"
+  case 526:
+#line 1819 "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 2927 "dhcp6_parser.cc"
+#line 2923 "dhcp6_parser.cc"
     break;
 
-  case 534:
-#line 1835 "dhcp6_parser.yy"
+  case 527:
+#line 1823 "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));
@@ -2935,1203 +2931,1114 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2939 "dhcp6_parser.cc"
+#line 2935 "dhcp6_parser.cc"
     break;
 
-  case 548:
-#line 1860 "dhcp6_parser.yy"
+  case 541:
+#line 1848 "dhcp6_parser.yy"
                   {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2947 "dhcp6_parser.cc"
+#line 2943 "dhcp6_parser.cc"
     break;
 
-  case 549:
-#line 1862 "dhcp6_parser.yy"
+  case 542:
+#line 1850 "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 2957 "dhcp6_parser.cc"
+#line 2953 "dhcp6_parser.cc"
     break;
 
-  case 550:
-#line 1868 "dhcp6_parser.yy"
+  case 543:
+#line 1856 "dhcp6_parser.yy"
                                         {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix-len", prf);
 }
-#line 2966 "dhcp6_parser.cc"
+#line 2962 "dhcp6_parser.cc"
     break;
 
-  case 551:
-#line 1873 "dhcp6_parser.yy"
+  case 544:
+#line 1861 "dhcp6_parser.yy"
                                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2974 "dhcp6_parser.cc"
+#line 2970 "dhcp6_parser.cc"
     break;
 
-  case 552:
-#line 1875 "dhcp6_parser.yy"
+  case 545:
+#line 1863 "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 2984 "dhcp6_parser.cc"
+#line 2980 "dhcp6_parser.cc"
     break;
 
-  case 553:
-#line 1881 "dhcp6_parser.yy"
+  case 546:
+#line 1869 "dhcp6_parser.yy"
                                                        {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix-len", prf);
 }
-#line 2993 "dhcp6_parser.cc"
+#line 2989 "dhcp6_parser.cc"
     break;
 
-  case 554:
-#line 1886 "dhcp6_parser.yy"
+  case 547:
+#line 1874 "dhcp6_parser.yy"
                                               {
     ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("delegated-len", deleg);
 }
-#line 3002 "dhcp6_parser.cc"
+#line 2998 "dhcp6_parser.cc"
     break;
 
-  case 555:
-#line 1894 "dhcp6_parser.yy"
+  case 548:
+#line 1882 "dhcp6_parser.yy"
                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 3013 "dhcp6_parser.cc"
+#line 3009 "dhcp6_parser.cc"
     break;
 
-  case 556:
-#line 1899 "dhcp6_parser.yy"
+  case 549:
+#line 1887 "dhcp6_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3022 "dhcp6_parser.cc"
+#line 3018 "dhcp6_parser.cc"
     break;
 
-  case 561:
-#line 1912 "dhcp6_parser.yy"
+  case 554:
+#line 1900 "dhcp6_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3032 "dhcp6_parser.cc"
+#line 3028 "dhcp6_parser.cc"
     break;
 
-  case 562:
-#line 1916 "dhcp6_parser.yy"
+  case 555:
+#line 1904 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 3041 "dhcp6_parser.cc"
+#line 3037 "dhcp6_parser.cc"
     break;
 
-  case 563:
-#line 1921 "dhcp6_parser.yy"
+  case 556:
+#line 1909 "dhcp6_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3051 "dhcp6_parser.cc"
+#line 3047 "dhcp6_parser.cc"
     break;
 
-  case 564:
-#line 1925 "dhcp6_parser.yy"
+  case 557:
+#line 1913 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 3060 "dhcp6_parser.cc"
+#line 3056 "dhcp6_parser.cc"
     break;
 
-  case 580:
-#line 1952 "dhcp6_parser.yy"
+  case 573:
+#line 1940 "dhcp6_parser.yy"
                            {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3071 "dhcp6_parser.cc"
+#line 3067 "dhcp6_parser.cc"
     break;
 
-  case 581:
-#line 1957 "dhcp6_parser.yy"
+  case 574:
+#line 1945 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3080 "dhcp6_parser.cc"
+#line 3076 "dhcp6_parser.cc"
     break;
 
-  case 582:
-#line 1962 "dhcp6_parser.yy"
+  case 575:
+#line 1950 "dhcp6_parser.yy"
                    {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefixes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3091 "dhcp6_parser.cc"
+#line 3087 "dhcp6_parser.cc"
     break;
 
-  case 583:
-#line 1967 "dhcp6_parser.yy"
+  case 576:
+#line 1955 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3100 "dhcp6_parser.cc"
+#line 3096 "dhcp6_parser.cc"
     break;
 
-  case 584:
-#line 1972 "dhcp6_parser.yy"
+  case 577:
+#line 1960 "dhcp6_parser.yy"
            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3108 "dhcp6_parser.cc"
+#line 3104 "dhcp6_parser.cc"
     break;
 
-  case 585:
-#line 1974 "dhcp6_parser.yy"
+  case 578:
+#line 1962 "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 3118 "dhcp6_parser.cc"
+#line 3114 "dhcp6_parser.cc"
     break;
 
-  case 586:
-#line 1980 "dhcp6_parser.yy"
+  case 579:
+#line 1968 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3126 "dhcp6_parser.cc"
+#line 3122 "dhcp6_parser.cc"
     break;
 
-  case 587:
-#line 1982 "dhcp6_parser.yy"
+  case 580:
+#line 1970 "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 3136 "dhcp6_parser.cc"
+#line 3132 "dhcp6_parser.cc"
     break;
 
-  case 588:
-#line 1988 "dhcp6_parser.yy"
+  case 581:
+#line 1976 "dhcp6_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3144 "dhcp6_parser.cc"
+#line 3140 "dhcp6_parser.cc"
     break;
 
-  case 589:
-#line 1990 "dhcp6_parser.yy"
+  case 582:
+#line 1978 "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 3154 "dhcp6_parser.cc"
+#line 3150 "dhcp6_parser.cc"
     break;
 
-  case 590:
-#line 1996 "dhcp6_parser.yy"
+  case 583:
+#line 1984 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3162 "dhcp6_parser.cc"
+#line 3158 "dhcp6_parser.cc"
     break;
 
-  case 591:
-#line 1998 "dhcp6_parser.yy"
+  case 584:
+#line 1986 "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 3172 "dhcp6_parser.cc"
+#line 3168 "dhcp6_parser.cc"
     break;
 
-  case 592:
-#line 2004 "dhcp6_parser.yy"
+  case 585:
+#line 1992 "dhcp6_parser.yy"
                                            {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3183 "dhcp6_parser.cc"
+#line 3179 "dhcp6_parser.cc"
     break;
 
-  case 593:
-#line 2009 "dhcp6_parser.yy"
+  case 586:
+#line 1997 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3192 "dhcp6_parser.cc"
+#line 3188 "dhcp6_parser.cc"
     break;
 
-  case 594:
-#line 2017 "dhcp6_parser.yy"
+  case 587:
+#line 2005 "dhcp6_parser.yy"
              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 3203 "dhcp6_parser.cc"
+#line 3199 "dhcp6_parser.cc"
     break;
 
-  case 595:
-#line 2022 "dhcp6_parser.yy"
+  case 588:
+#line 2010 "dhcp6_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3212 "dhcp6_parser.cc"
+#line 3208 "dhcp6_parser.cc"
     break;
 
-  case 598:
-#line 2031 "dhcp6_parser.yy"
+  case 591:
+#line 2019 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3220 "dhcp6_parser.cc"
+#line 3216 "dhcp6_parser.cc"
     break;
 
-  case 599:
-#line 2033 "dhcp6_parser.yy"
+  case 592:
+#line 2021 "dhcp6_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 3230 "dhcp6_parser.cc"
+#line 3226 "dhcp6_parser.cc"
     break;
 
-  case 600:
-#line 2042 "dhcp6_parser.yy"
+  case 593:
+#line 2030 "dhcp6_parser.yy"
                                {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 3241 "dhcp6_parser.cc"
+#line 3237 "dhcp6_parser.cc"
     break;
 
-  case 601:
-#line 2047 "dhcp6_parser.yy"
+  case 594:
+#line 2035 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3250 "dhcp6_parser.cc"
+#line 3246 "dhcp6_parser.cc"
     break;
 
-  case 604:
-#line 2056 "dhcp6_parser.yy"
+  case 597:
+#line 2044 "dhcp6_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3260 "dhcp6_parser.cc"
+#line 3256 "dhcp6_parser.cc"
     break;
 
-  case 605:
-#line 2060 "dhcp6_parser.yy"
+  case 598:
+#line 2048 "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 3270 "dhcp6_parser.cc"
+#line 3266 "dhcp6_parser.cc"
     break;
 
-  case 618:
-#line 2085 "dhcp6_parser.yy"
+  case 611:
+#line 2073 "dhcp6_parser.yy"
                         {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3278 "dhcp6_parser.cc"
+#line 3274 "dhcp6_parser.cc"
     break;
 
-  case 619:
-#line 2087 "dhcp6_parser.yy"
+  case 612:
+#line 2075 "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 3288 "dhcp6_parser.cc"
+#line 3284 "dhcp6_parser.cc"
     break;
 
-  case 620:
-#line 2093 "dhcp6_parser.yy"
+  case 613:
+#line 2081 "dhcp6_parser.yy"
                                                  {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 3297 "dhcp6_parser.cc"
+#line 3293 "dhcp6_parser.cc"
     break;
 
-  case 621:
-#line 2101 "dhcp6_parser.yy"
+  case 614:
+#line 2089 "dhcp6_parser.yy"
                      {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-id", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SERVER_ID);
 }
-#line 3308 "dhcp6_parser.cc"
+#line 3304 "dhcp6_parser.cc"
     break;
 
-  case 622:
-#line 2106 "dhcp6_parser.yy"
+  case 615:
+#line 2094 "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 3319 "dhcp6_parser.cc"
+#line 3315 "dhcp6_parser.cc"
     break;
 
-  case 634:
-#line 2128 "dhcp6_parser.yy"
+  case 627:
+#line 2116 "dhcp6_parser.yy"
                      {
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 3327 "dhcp6_parser.cc"
+#line 3323 "dhcp6_parser.cc"
     break;
 
-  case 635:
-#line 2130 "dhcp6_parser.yy"
+  case 628:
+#line 2118 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3336 "dhcp6_parser.cc"
+#line 3332 "dhcp6_parser.cc"
     break;
 
-  case 636:
-#line 2135 "dhcp6_parser.yy"
+  case 629:
+#line 2123 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 3342 "dhcp6_parser.cc"
+#line 3338 "dhcp6_parser.cc"
     break;
 
-  case 637:
-#line 2136 "dhcp6_parser.yy"
+  case 630:
+#line 2124 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 3348 "dhcp6_parser.cc"
+#line 3344 "dhcp6_parser.cc"
     break;
 
-  case 638:
-#line 2137 "dhcp6_parser.yy"
+  case 631:
+#line 2125 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 3354 "dhcp6_parser.cc"
+#line 3350 "dhcp6_parser.cc"
     break;
 
-  case 639:
-#line 2140 "dhcp6_parser.yy"
+  case 632:
+#line 2128 "dhcp6_parser.yy"
                            {
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
 }
-#line 3363 "dhcp6_parser.cc"
+#line 3359 "dhcp6_parser.cc"
     break;
 
-  case 640:
-#line 2145 "dhcp6_parser.yy"
+  case 633:
+#line 2133 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3371 "dhcp6_parser.cc"
+#line 3367 "dhcp6_parser.cc"
     break;
 
-  case 641:
-#line 2147 "dhcp6_parser.yy"
+  case 634:
+#line 2135 "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 3381 "dhcp6_parser.cc"
+#line 3377 "dhcp6_parser.cc"
     break;
 
-  case 642:
-#line 2153 "dhcp6_parser.yy"
+  case 635:
+#line 2141 "dhcp6_parser.yy"
                          {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
 }
-#line 3390 "dhcp6_parser.cc"
+#line 3386 "dhcp6_parser.cc"
     break;
 
-  case 643:
-#line 2158 "dhcp6_parser.yy"
+  case 636:
+#line 2146 "dhcp6_parser.yy"
                                            {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
 }
-#line 3399 "dhcp6_parser.cc"
+#line 3395 "dhcp6_parser.cc"
     break;
 
-  case 644:
-#line 2165 "dhcp6_parser.yy"
+  case 637:
+#line 2153 "dhcp6_parser.yy"
                                          {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 3408 "dhcp6_parser.cc"
+#line 3404 "dhcp6_parser.cc"
     break;
 
-  case 645:
-#line 2172 "dhcp6_parser.yy"
+  case 638:
+#line 2160 "dhcp6_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 3419 "dhcp6_parser.cc"
+#line 3415 "dhcp6_parser.cc"
     break;
 
-  case 646:
-#line 2177 "dhcp6_parser.yy"
+  case 639:
+#line 2165 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3428 "dhcp6_parser.cc"
+#line 3424 "dhcp6_parser.cc"
     break;
 
-  case 654:
-#line 2193 "dhcp6_parser.yy"
+  case 647:
+#line 2181 "dhcp6_parser.yy"
                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3436 "dhcp6_parser.cc"
+#line 3432 "dhcp6_parser.cc"
     break;
 
-  case 655:
-#line 2195 "dhcp6_parser.yy"
+  case 648:
+#line 2183 "dhcp6_parser.yy"
                {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 3446 "dhcp6_parser.cc"
+#line 3442 "dhcp6_parser.cc"
     break;
 
-  case 656:
-#line 2201 "dhcp6_parser.yy"
+  case 649:
+#line 2189 "dhcp6_parser.yy"
                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3454 "dhcp6_parser.cc"
+#line 3450 "dhcp6_parser.cc"
     break;
 
-  case 657:
-#line 2203 "dhcp6_parser.yy"
+  case 650:
+#line 2191 "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 3464 "dhcp6_parser.cc"
+#line 3460 "dhcp6_parser.cc"
     break;
 
-  case 658:
-#line 2212 "dhcp6_parser.yy"
+  case 651:
+#line 2200 "dhcp6_parser.yy"
                                        {
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-queue-control", qc);
     ctx.stack_.push_back(qc);
     ctx.enter(ctx.DHCP_QUEUE_CONTROL);
 }
-#line 3475 "dhcp6_parser.cc"
+#line 3471 "dhcp6_parser.cc"
     break;
 
-  case 659:
-#line 2217 "dhcp6_parser.yy"
+  case 652:
+#line 2205 "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 3486 "dhcp6_parser.cc"
+#line 3482 "dhcp6_parser.cc"
     break;
 
-  case 668:
-#line 2236 "dhcp6_parser.yy"
+  case 661:
+#line 2224 "dhcp6_parser.yy"
                                          {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-queue", b);
 }
-#line 3495 "dhcp6_parser.cc"
+#line 3491 "dhcp6_parser.cc"
     break;
 
-  case 669:
-#line 2241 "dhcp6_parser.yy"
+  case 662:
+#line 2229 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3503 "dhcp6_parser.cc"
+#line 3499 "dhcp6_parser.cc"
     break;
 
-  case 670:
-#line 2243 "dhcp6_parser.yy"
+  case 663:
+#line 2231 "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 3513 "dhcp6_parser.cc"
+#line 3509 "dhcp6_parser.cc"
     break;
 
-  case 671:
-#line 2249 "dhcp6_parser.yy"
+  case 664:
+#line 2237 "dhcp6_parser.yy"
                                  {
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("capacity", c);
 }
-#line 3522 "dhcp6_parser.cc"
+#line 3518 "dhcp6_parser.cc"
     break;
 
-  case 672:
-#line 2254 "dhcp6_parser.yy"
+  case 665:
+#line 2242 "dhcp6_parser.yy"
                             {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3530 "dhcp6_parser.cc"
+#line 3526 "dhcp6_parser.cc"
     break;
 
-  case 673:
-#line 2256 "dhcp6_parser.yy"
+  case 666:
+#line 2244 "dhcp6_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3539 "dhcp6_parser.cc"
+#line 3535 "dhcp6_parser.cc"
     break;
 
-  case 674:
-#line 2263 "dhcp6_parser.yy"
+  case 667:
+#line 2251 "dhcp6_parser.yy"
                      {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 3550 "dhcp6_parser.cc"
+#line 3546 "dhcp6_parser.cc"
     break;
 
-  case 675:
-#line 2268 "dhcp6_parser.yy"
+  case 668:
+#line 2256 "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 3561 "dhcp6_parser.cc"
+#line 3557 "dhcp6_parser.cc"
     break;
 
-  case 676:
-#line 2275 "dhcp6_parser.yy"
+  case 669:
+#line 2263 "dhcp6_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3571 "dhcp6_parser.cc"
+#line 3567 "dhcp6_parser.cc"
     break;
 
-  case 677:
-#line 2279 "dhcp6_parser.yy"
+  case 670:
+#line 2267 "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 3581 "dhcp6_parser.cc"
+#line 3577 "dhcp6_parser.cc"
     break;
 
-  case 698:
-#line 2309 "dhcp6_parser.yy"
+  case 691:
+#line 2297 "dhcp6_parser.yy"
                                              {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 3590 "dhcp6_parser.cc"
+#line 3586 "dhcp6_parser.cc"
     break;
 
-  case 699:
-#line 2314 "dhcp6_parser.yy"
+  case 692:
+#line 2302 "dhcp6_parser.yy"
                                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3598 "dhcp6_parser.cc"
+#line 3594 "dhcp6_parser.cc"
     break;
 
-  case 700:
-#line 2316 "dhcp6_parser.yy"
+  case 693:
+#line 2304 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 3608 "dhcp6_parser.cc"
+#line 3604 "dhcp6_parser.cc"
     break;
 
-  case 701:
-#line 2322 "dhcp6_parser.yy"
+  case 694:
+#line 2310 "dhcp6_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3616 "dhcp6_parser.cc"
+#line 3612 "dhcp6_parser.cc"
     break;
 
-  case 702:
-#line 2324 "dhcp6_parser.yy"
+  case 695:
+#line 2312 "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 3626 "dhcp6_parser.cc"
+#line 3622 "dhcp6_parser.cc"
     break;
 
-  case 703:
-#line 2330 "dhcp6_parser.yy"
+  case 696:
+#line 2318 "dhcp6_parser.yy"
                                        {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 3635 "dhcp6_parser.cc"
+#line 3631 "dhcp6_parser.cc"
     break;
 
-  case 704:
-#line 2335 "dhcp6_parser.yy"
+  case 697:
+#line 2323 "dhcp6_parser.yy"
                      {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3643 "dhcp6_parser.cc"
+#line 3639 "dhcp6_parser.cc"
     break;
 
-  case 705:
-#line 2337 "dhcp6_parser.yy"
+  case 698:
+#line 2325 "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 3653 "dhcp6_parser.cc"
+#line 3649 "dhcp6_parser.cc"
     break;
 
-  case 706:
-#line 2343 "dhcp6_parser.yy"
+  case 699:
+#line 2331 "dhcp6_parser.yy"
                                        {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 3662 "dhcp6_parser.cc"
+#line 3658 "dhcp6_parser.cc"
     break;
 
-  case 707:
-#line 2348 "dhcp6_parser.yy"
+  case 700:
+#line 2336 "dhcp6_parser.yy"
                                              {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 3671 "dhcp6_parser.cc"
+#line 3667 "dhcp6_parser.cc"
     break;
 
-  case 708:
-#line 2353 "dhcp6_parser.yy"
+  case 701:
+#line 2341 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3679 "dhcp6_parser.cc"
+#line 3675 "dhcp6_parser.cc"
     break;
 
-  case 709:
-#line 2355 "dhcp6_parser.yy"
+  case 702:
+#line 2343 "dhcp6_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3688 "dhcp6_parser.cc"
+#line 3684 "dhcp6_parser.cc"
     break;
 
-  case 710:
-#line 2361 "dhcp6_parser.yy"
+  case 703:
+#line 2349 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3694 "dhcp6_parser.cc"
+#line 3690 "dhcp6_parser.cc"
     break;
 
-  case 711:
-#line 2362 "dhcp6_parser.yy"
+  case 704:
+#line 2350 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3700 "dhcp6_parser.cc"
+#line 3696 "dhcp6_parser.cc"
     break;
 
-  case 712:
-#line 2365 "dhcp6_parser.yy"
+  case 705:
+#line 2353 "dhcp6_parser.yy"
                        {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3708 "dhcp6_parser.cc"
+#line 3704 "dhcp6_parser.cc"
     break;
 
-  case 713:
-#line 2367 "dhcp6_parser.yy"
+  case 706:
+#line 2355 "dhcp6_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3718 "dhcp6_parser.cc"
+#line 3714 "dhcp6_parser.cc"
     break;
 
-  case 714:
-#line 2374 "dhcp6_parser.yy"
+  case 707:
+#line 2362 "dhcp6_parser.yy"
                                                          {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3727 "dhcp6_parser.cc"
+#line 3723 "dhcp6_parser.cc"
     break;
 
-  case 715:
-#line 2380 "dhcp6_parser.yy"
+  case 708:
+#line 2368 "dhcp6_parser.yy"
                                                                  {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3736 "dhcp6_parser.cc"
+#line 3732 "dhcp6_parser.cc"
     break;
 
-  case 716:
-#line 2386 "dhcp6_parser.yy"
+  case 709:
+#line 2374 "dhcp6_parser.yy"
                                              {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3744 "dhcp6_parser.cc"
+#line 3740 "dhcp6_parser.cc"
     break;
 
-  case 717:
-#line 2388 "dhcp6_parser.yy"
+  case 710:
+#line 2376 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3753 "dhcp6_parser.cc"
+#line 3749 "dhcp6_parser.cc"
     break;
 
-  case 718:
-#line 2394 "dhcp6_parser.yy"
+  case 711:
+#line 2382 "dhcp6_parser.yy"
                                        {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3761 "dhcp6_parser.cc"
+#line 3757 "dhcp6_parser.cc"
     break;
 
-  case 719:
-#line 2396 "dhcp6_parser.yy"
+  case 712:
+#line 2384 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3771 "dhcp6_parser.cc"
+#line 3767 "dhcp6_parser.cc"
     break;
 
-  case 720:
-#line 2403 "dhcp6_parser.yy"
+  case 713:
+#line 2391 "dhcp6_parser.yy"
                                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3779 "dhcp6_parser.cc"
+#line 3775 "dhcp6_parser.cc"
     break;
 
-  case 721:
-#line 2405 "dhcp6_parser.yy"
+  case 714:
+#line 2393 "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 3789 "dhcp6_parser.cc"
+#line 3785 "dhcp6_parser.cc"
     break;
 
-  case 722:
-#line 2412 "dhcp6_parser.yy"
+  case 715:
+#line 2400 "dhcp6_parser.yy"
                                                          {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3797 "dhcp6_parser.cc"
+#line 3793 "dhcp6_parser.cc"
     break;
 
-  case 723:
-#line 2414 "dhcp6_parser.yy"
+  case 716:
+#line 2402 "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 3807 "dhcp6_parser.cc"
-    break;
-
-  case 724:
-#line 2423 "dhcp6_parser.yy"
-                         {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3815 "dhcp6_parser.cc"
-    break;
-
-  case 725:
-#line 2425 "dhcp6_parser.yy"
-              {
-    ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3824 "dhcp6_parser.cc"
-    break;
-
-  case 726:
-#line 2430 "dhcp6_parser.yy"
-                               {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3832 "dhcp6_parser.cc"
-    break;
-
-  case 727:
-#line 2432 "dhcp6_parser.yy"
-              {
-    ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3841 "dhcp6_parser.cc"
-    break;
-
-  case 728:
-#line 2437 "dhcp6_parser.yy"
-                                         {
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3849 "dhcp6_parser.cc"
-    break;
-
-  case 729:
-#line 2439 "dhcp6_parser.yy"
-              {
-    ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
-    ctx.leave();
-}
-#line 3858 "dhcp6_parser.cc"
+#line 3803 "dhcp6_parser.cc"
     break;
 
-  case 730:
-#line 2446 "dhcp6_parser.yy"
+  case 717:
+#line 2411 "dhcp6_parser.yy"
                                {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 3869 "dhcp6_parser.cc"
+#line 3814 "dhcp6_parser.cc"
     break;
 
-  case 731:
-#line 2451 "dhcp6_parser.yy"
+  case 718:
+#line 2416 "dhcp6_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3879 "dhcp6_parser.cc"
+#line 3824 "dhcp6_parser.cc"
     break;
 
-  case 732:
-#line 2457 "dhcp6_parser.yy"
+  case 719:
+#line 2422 "dhcp6_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3889 "dhcp6_parser.cc"
+#line 3834 "dhcp6_parser.cc"
     break;
 
-  case 733:
-#line 2461 "dhcp6_parser.yy"
+  case 720:
+#line 2426 "dhcp6_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
 }
-#line 3898 "dhcp6_parser.cc"
+#line 3843 "dhcp6_parser.cc"
     break;
 
-  case 738:
-#line 2476 "dhcp6_parser.yy"
+  case 725:
+#line 2441 "dhcp6_parser.yy"
                                    {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 3909 "dhcp6_parser.cc"
+#line 3854 "dhcp6_parser.cc"
     break;
 
-  case 739:
-#line 2481 "dhcp6_parser.yy"
+  case 726:
+#line 2446 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3918 "dhcp6_parser.cc"
+#line 3863 "dhcp6_parser.cc"
     break;
 
-  case 740:
-#line 2486 "dhcp6_parser.yy"
+  case 727:
+#line 2451 "dhcp6_parser.yy"
                                                              {
     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 3927 "dhcp6_parser.cc"
-    break;
-
-  case 741:
-#line 2496 "dhcp6_parser.yy"
-                        {
-    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("Logging", m);
-    ctx.stack_.push_back(m);
-    ctx.enter(ctx.LOGGING);
-}
-#line 3938 "dhcp6_parser.cc"
-    break;
-
-  case 742:
-#line 2501 "dhcp6_parser.yy"
-                                                     {
-    ctx.stack_.pop_back();
-    ctx.leave();
-}
-#line 3947 "dhcp6_parser.cc"
-    break;
-
-  case 743:
-#line 2506 "dhcp6_parser.yy"
-                            {
-    // Parse the Logging map
-    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.push_back(m);
-}
-#line 3957 "dhcp6_parser.cc"
-    break;
-
-  case 744:
-#line 2510 "dhcp6_parser.yy"
-                                {
-    // parsing completed
-}
-#line 3965 "dhcp6_parser.cc"
+#line 3872 "dhcp6_parser.cc"
     break;
 
-  case 748:
-#line 2526 "dhcp6_parser.yy"
+  case 728:
+#line 2458 "dhcp6_parser.yy"
                  {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3976 "dhcp6_parser.cc"
+#line 3883 "dhcp6_parser.cc"
     break;
 
-  case 749:
-#line 2531 "dhcp6_parser.yy"
+  case 729:
+#line 2463 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3985 "dhcp6_parser.cc"
+#line 3892 "dhcp6_parser.cc"
     break;
 
-  case 752:
-#line 2543 "dhcp6_parser.yy"
+  case 732:
+#line 2475 "dhcp6_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3995 "dhcp6_parser.cc"
+#line 3902 "dhcp6_parser.cc"
     break;
 
-  case 753:
-#line 2547 "dhcp6_parser.yy"
+  case 733:
+#line 2479 "dhcp6_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
-#line 4003 "dhcp6_parser.cc"
+#line 3910 "dhcp6_parser.cc"
     break;
 
-  case 763:
-#line 2564 "dhcp6_parser.yy"
+  case 743:
+#line 2496 "dhcp6_parser.yy"
                                      {
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 4012 "dhcp6_parser.cc"
+#line 3919 "dhcp6_parser.cc"
     break;
 
-  case 764:
-#line 2569 "dhcp6_parser.yy"
+  case 744:
+#line 2501 "dhcp6_parser.yy"
                    {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4020 "dhcp6_parser.cc"
+#line 3927 "dhcp6_parser.cc"
     break;
 
-  case 765:
-#line 2571 "dhcp6_parser.yy"
+  case 745:
+#line 2503 "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 4030 "dhcp6_parser.cc"
+#line 3937 "dhcp6_parser.cc"
     break;
 
-  case 766:
-#line 2577 "dhcp6_parser.yy"
+  case 746:
+#line 2509 "dhcp6_parser.yy"
                                     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 4041 "dhcp6_parser.cc"
+#line 3948 "dhcp6_parser.cc"
     break;
 
-  case 767:
-#line 2582 "dhcp6_parser.yy"
+  case 747:
+#line 2514 "dhcp6_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4050 "dhcp6_parser.cc"
+#line 3957 "dhcp6_parser.cc"
     break;
 
-  case 770:
-#line 2591 "dhcp6_parser.yy"
+  case 750:
+#line 2523 "dhcp6_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 4060 "dhcp6_parser.cc"
+#line 3967 "dhcp6_parser.cc"
     break;
 
-  case 771:
-#line 2595 "dhcp6_parser.yy"
+  case 751:
+#line 2527 "dhcp6_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
-#line 4068 "dhcp6_parser.cc"
+#line 3975 "dhcp6_parser.cc"
     break;
 
-  case 779:
-#line 2610 "dhcp6_parser.yy"
+  case 759:
+#line 2542 "dhcp6_parser.yy"
                {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4076 "dhcp6_parser.cc"
+#line 3983 "dhcp6_parser.cc"
     break;
 
-  case 780:
-#line 2612 "dhcp6_parser.yy"
+  case 760:
+#line 2544 "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 4086 "dhcp6_parser.cc"
+#line 3993 "dhcp6_parser.cc"
     break;
 
-  case 781:
-#line 2618 "dhcp6_parser.yy"
+  case 761:
+#line 2550 "dhcp6_parser.yy"
                            {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 4095 "dhcp6_parser.cc"
+#line 4002 "dhcp6_parser.cc"
     break;
 
-  case 782:
-#line 2623 "dhcp6_parser.yy"
+  case 762:
+#line 2555 "dhcp6_parser.yy"
                                {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 4104 "dhcp6_parser.cc"
+#line 4011 "dhcp6_parser.cc"
     break;
 
-  case 783:
-#line 2628 "dhcp6_parser.yy"
+  case 763:
+#line 2560 "dhcp6_parser.yy"
                              {
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 4113 "dhcp6_parser.cc"
+#line 4020 "dhcp6_parser.cc"
     break;
 
-  case 784:
-#line 2633 "dhcp6_parser.yy"
+  case 764:
+#line 2565 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4121 "dhcp6_parser.cc"
+#line 4028 "dhcp6_parser.cc"
     break;
 
-  case 785:
-#line 2635 "dhcp6_parser.yy"
+  case 765:
+#line 2567 "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 4131 "dhcp6_parser.cc"
+#line 4038 "dhcp6_parser.cc"
     break;
 
 
-#line 4135 "dhcp6_parser.cc"
+#line 4042 "dhcp6_parser.cc"
 
             default:
               break;
@@ -4480,851 +4387,825 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -961;
+  const short Dhcp6Parser::yypact_ninf_ = -929;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     403,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,    50,    36,    45,    47,
-      51,    65,    75,   119,   154,   164,   186,   197,   198,   208,
-     259,   279,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,    36,  -155,    26,   685,    31,   209,    91,   105,
-     108,    21,    81,   262,   -25,   205,   -52,    86,  -961,   122,
-     159,   284,   286,   306,  -961,  -961,  -961,  -961,  -961,   308,
-    -961,    43,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,   309,   322,   323,   324,   326,   335,
-     346,   348,   349,   369,   395,   396,  -961,   399,   402,   413,
-     418,   419,  -961,  -961,  -961,   422,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,   428,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,    76,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,   430,  -961,    93,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,   431,
-     432,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,   100,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,   113,  -961,  -961,
-    -961,  -961,  -961,   434,  -961,   435,   438,  -961,  -961,  -961,
-    -961,  -961,  -961,   121,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   333,   340,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   408,  -961,  -961,   439,  -961,  -961,  -961,   440,  -961,
-    -961,   437,   443,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,   445,   446,  -961,  -961,
-    -961,  -961,   444,   459,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,   176,  -961,  -961,  -961,
-     462,  -961,  -961,   464,  -961,   465,   466,  -961,  -961,   474,
-     475,  -961,  -961,  -961,  -961,  -961,  -961,  -961,   203,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,   221,  -961,  -961,  -961,   478,
-     240,  -961,  -961,  -961,  -961,    36,    36,  -961,   264,   479,
-     480,   481,   482,   483,  -961,    26,  -961,   484,   485,   486,
-     490,   491,   493,   298,   299,   300,   301,   302,   304,   312,
-     314,   305,   315,   316,   318,   502,   319,   320,   329,   332,
-     334,   511,   520,   522,   336,   531,   535,   536,   537,   540,
-     541,   542,   543,   547,   548,   549,   550,   551,   552,   568,
-     569,   375,   570,   580,   598,   601,   604,   607,   609,   685,
-    -961,   610,   414,    31,  -961,   613,   614,   616,   617,   619,
-     424,   425,   622,   624,   625,   209,  -961,   626,    91,  -961,
-     627,   436,   628,   441,   442,   105,  -961,   630,   633,   634,
-     635,   636,   639,   640,  -961,   108,  -961,   641,   642,   447,
-     644,   645,   646,   449,  -961,    81,   651,   455,   457,  -961,
-     262,   656,   657,   -54,  -961,   460,   659,   660,   467,   661,
-     473,   476,   662,   670,   477,   487,   671,   673,   674,   677,
-     205,  -961,   -52,  -961,   678,   488,    86,  -961,  -961,  -961,
-     679,   514,   683,    36,    36,    36,  -961,   494,   687,   688,
-     691,   692,   680,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,   503,  -961,  -961,  -961,  -961,
-    -961,  -105,   507,   508,  -961,   696,   703,   704,   705,   512,
-     155,   708,   709,   710,   712,   711,   714,   715,   716,   747,
-     748,  -961,   749,   750,   751,   752,   523,   524,   755,  -961,
-     756,  -961,  -961,   757,   758,   565,   566,   567,  -961,  -961,
-     756,   571,   760,  -961,   574,  -961,   575,  -961,   576,  -961,
-    -961,  -961,   756,   756,   756,   577,   578,   581,   582,  -961,
-     583,   589,  -961,   591,   592,   593,  -961,  -961,   594,  -961,
-    -961,  -961,   596,    36,  -961,  -961,   597,   599,  -961,   600,
-    -961,  -961,   102,   528,  -961,  -961,  -105,   602,   603,   605,
-    -961,  -961,   763,  -961,  -961,    36,   685,   -52,  -961,  -961,
-    -961,  -961,    86,    31,   106,   106,   762,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,   772,   790,   793,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,   798,   -48,    36,
-      70,   706,   800,   801,   803,   245,    68,   145,   195,    94,
-     205,  -961,  -961,   804,  -961,  -961,   805,   807,  -961,  -961,
-    -961,  -961,  -961,   -68,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,   762,  -961,   303,   307,   313,   321,  -961,
-    -961,  -961,  -961,   811,   812,   813,   814,   815,  -961,   816,
-     819,  -961,  -961,  -961,   820,   821,   823,   824,  -961,   337,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   339,  -961,   825,   681,  -961,  -961,   826,   707,  -961,
-    -961,   828,   827,  -961,  -961,   829,   833,  -961,  -961,   831,
-     835,  -961,  -961,  -961,   107,  -961,  -961,  -961,   834,  -961,
-    -961,  -961,   166,  -961,  -961,  -961,  -961,   373,  -961,  -961,
-    -961,   211,  -961,  -961,   836,   838,  -961,  -961,   837,   841,
-    -961,   842,   843,   844,   845,   846,   847,   374,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,   848,   849,   852,
-    -961,  -961,  -961,  -961,   377,  -961,  -961,  -961,  -961,  -961,
-    -961,   854,   855,   856,  -961,   380,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,   381,  -961,  -961,
-    -961,   857,  -961,   858,  -961,  -961,  -961,   383,  -961,  -961,
-    -961,  -961,  -961,   384,  -961,   272,  -961,   664,  -961,   839,
-     861,  -961,  -961,   859,   863,  -961,  -961,  -961,   860,  -961,
-     864,  -961,  -961,  -961,  -961,   865,   867,   868,   869,   667,
-     637,   675,   672,   676,   873,   682,   686,   874,   875,   876,
-     689,   690,   693,   694,   106,  -961,  -961,   106,  -961,   762,
-     209,  -961,   772,    81,  -961,   790,   262,  -961,   793,   517,
-    -961,   798,   -48,  -961,  -961,    70,  -961,   877,   706,  -961,
-      -1,   800,  -961,   108,  -961,   801,   -25,  -961,   803,   697,
-     698,   699,   700,   701,   702,   245,  -961,   879,   881,   713,
-     719,   721,    68,  -961,   722,   730,   735,   145,  -961,   883,
-     884,   195,  -961,   734,   887,   737,   888,    94,  -961,  -961,
-     147,   804,  -961,  -961,   890,   900,    91,  -961,   805,   105,
-    -961,   807,   889,  -961,  -961,   405,   740,   742,   744,  -961,
-    -961,  -961,  -961,  -961,   745,  -961,  -961,   753,   771,   778,
-    -961,  -961,  -961,  -961,  -961,   387,  -961,   390,  -961,   896,
-    -961,   897,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,   393,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   781,  -961,  -961,   903,  -961,  -961,  -961,  -961,  -961,
-     906,   905,  -961,  -961,  -961,  -961,  -961,   938,  -961,   394,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,    97,   784,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,   787,   809,
-    -961,  -961,   840,  -961,    36,  -961,  -961,   907,  -961,  -961,
-    -961,  -961,  -961,   404,  -961,  -961,  -961,  -961,  -961,  -961,
-     850,   410,  -961,   411,  -961,   851,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,   517,  -961,  -961,   946,   759,  -961,    -1,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-     947,   754,   951,   147,  -961,  -961,  -961,  -961,  -961,  -961,
-     853,  -961,  -961,   984,  -961,   862,  -961,  -961,   985,  -961,
-    -961,   273,  -961,   -14,   985,  -961,  -961,   993,   996,  1007,
-    -961,   412,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  1009,
-     830,   866,   870,  1026,   -14,  -961,   872,  -961,  -961,  -961,
-     878,  -961,  -961,  -961
+     427,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,    41,    33,    44,    46,    50,
+      52,    56,    62,    89,    95,   101,   109,   132,   134,   148,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,    33,  -157,
+      61,   116,    27,   487,    51,   186,   261,    59,    71,   206,
+     -65,   592,   119,  -929,   180,   232,   251,   254,   260,  -929,
+      75,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   262,
+     270,   280,   303,   327,   330,   339,   345,   366,   390,   391,
+     398,  -929,   400,   401,   408,   410,   412,  -929,  -929,  -929,
+     414,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,   416,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,   417,  -929,    92,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,   420,  -929,    96,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,   421,   422,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,   112,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,   114,  -929,  -929,  -929,  -929,  -929,   423,
+    -929,   424,   426,  -929,  -929,  -929,  -929,  -929,  -929,   115,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,   289,   350,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,   325,  -929,  -929,
+     432,  -929,  -929,  -929,   436,  -929,  -929,   334,   438,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,   440,   441,  -929,  -929,  -929,  -929,   385,   447,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,   184,  -929,  -929,  -929,   448,  -929,  -929,   452,
+    -929,   453,   456,  -929,  -929,   457,   460,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   192,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,   462,   205,  -929,  -929,  -929,  -929,    33,    33,
+    -929,   273,   464,    61,  -929,   465,   466,   468,   472,   473,
+     476,   288,   291,   294,   298,   301,   305,   306,   308,   284,
+     292,   302,   313,   478,   314,   316,   318,   319,   320,   480,
+     509,   514,   323,   518,   519,   520,   521,   522,   523,   524,
+     525,   538,   539,   540,   541,   549,   550,   552,   553,   363,
+     555,   556,   557,   558,   559,   560,   562,  -929,   116,  -929,
+     564,   372,    27,  -929,   566,   567,   568,   577,   578,   388,
+     387,   581,   582,   584,   487,  -929,   585,    51,  -929,   587,
+     399,   589,   402,   403,   186,  -929,   595,   596,   597,   598,
+     600,   601,   617,  -929,   261,  -929,   618,   624,   434,   626,
+     627,   628,   437,  -929,    71,   629,   439,   449,  -929,   206,
+     631,   633,    74,  -929,   451,   634,   640,   450,   645,   455,
+     458,   647,   648,   461,   463,   650,   651,   655,   657,   592,
+    -929,   659,   469,   119,  -929,  -929,  -929,   661,   673,  -929,
+     496,   686,   687,   693,   694,   697,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   510,  -929,
+    -929,  -929,  -929,  -929,  -100,   511,   512,  -929,   698,   702,
+     703,   704,   526,   272,   709,   712,   713,   714,   715,   716,
+     718,   719,   720,   722,  -929,   723,   725,   726,   727,   531,
+     532,   730,  -929,   731,  -929,  -929,   732,   733,   546,   561,
+     563,  -929,  -929,   731,   565,   747,  -929,   569,  -929,   570,
+    -929,   571,  -929,  -929,  -929,   731,   731,   731,   572,   573,
+     574,   575,  -929,   576,   579,  -929,   580,   583,   586,  -929,
+    -929,   588,  -929,  -929,  -929,   590,    33,  -929,  -929,   591,
+     593,  -929,   594,  -929,  -929,    84,   502,  -929,  -929,  -100,
+     602,   603,   604,  -929,   751,  -929,  -929,    33,   116,  -929,
+     119,    27,   285,   285,   753,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   764,   765,   768,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,   769,   -73,    33,   286,   675,
+     772,   774,   776,   237,    64,    67,   202,   136,   592,  -929,
+    -929,   782,  -929,  -929,   783,   784,  -929,  -929,  -929,  -929,
+    -929,   -61,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,   753,  -929,   216,   223,   235,  -929,  -929,  -929,  -929,
+     754,   790,   791,   795,   796,  -929,   797,   798,  -929,  -929,
+    -929,   799,   800,   801,   802,  -929,   287,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   293,  -929,
+     803,   804,  -929,  -929,   805,   807,  -929,  -929,   806,   810,
+    -929,  -929,   808,   812,  -929,  -929,   813,   815,  -929,  -929,
+    -929,    78,  -929,  -929,  -929,   814,  -929,  -929,  -929,   146,
+    -929,  -929,  -929,  -929,   296,  -929,  -929,  -929,   198,  -929,
+    -929,   816,   818,  -929,  -929,   817,   821,  -929,   822,   823,
+     824,   825,   826,   827,   297,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   828,   829,   830,  -929,  -929,  -929,
+    -929,   300,  -929,  -929,  -929,  -929,  -929,  -929,   831,   832,
+     833,  -929,   329,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   332,  -929,  -929,  -929,   834,  -929,
+     835,  -929,  -929,  -929,   338,  -929,  -929,  -929,  -929,  -929,
+     347,  -929,   233,  -929,   614,  -929,   819,   837,  -929,  -929,
+     836,   838,  -929,  -929,  -929,   839,  -929,   840,  -929,  -929,
+    -929,   841,   844,   845,   846,   621,   646,   649,   654,   658,
+     848,   660,   662,   850,   852,   854,   664,   665,   666,   667,
+     285,  -929,  -929,   285,  -929,   753,   487,  -929,   764,    71,
+    -929,   765,   206,  -929,   768,   623,  -929,   769,   -73,  -929,
+    -929,   286,  -929,   857,   675,  -929,    38,   772,  -929,   261,
+    -929,   774,   -65,  -929,   776,   669,   670,   671,   672,   674,
+     676,   237,  -929,   864,   866,   677,   678,   679,    64,  -929,
+     680,   681,   684,    67,  -929,   876,   879,   202,  -929,   695,
+     886,   707,   889,   136,  -929,  -929,   164,   782,  -929,  -929,
+     902,   906,    51,  -929,   783,   186,  -929,   784,   917,  -929,
+    -929,   386,   736,   742,   755,  -929,  -929,  -929,  -929,  -929,
+     761,  -929,  -929,   767,   771,   775,  -929,  -929,  -929,  -929,
+    -929,   348,  -929,   349,  -929,   916,  -929,   950,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   374,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,   787,  -929,  -929,
+     958,  -929,  -929,  -929,  -929,  -929,   969,   907,  -929,  -929,
+    -929,  -929,  -929,   976,  -929,   375,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,    81,   792,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   794,   809,  -929,  -929,   811,  -929,
+      33,  -929,  -929,   987,  -929,  -929,  -929,  -929,  -929,   376,
+    -929,  -929,  -929,  -929,  -929,  -929,   820,   378,  -929,   382,
+    -929,   842,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   623,  -929,
+    -929,   989,   843,  -929,    38,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,   991,   847,   992,   164,
+    -929,  -929,  -929,  -929,  -929,  -929,   849,  -929,  -929,   994,
+    -929,   851,  -929,  -929,   990,  -929,  -929,   253,  -929,    12,
+     990,  -929,  -929,   996,   997,   998,  -929,   389,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  1002,   856,   853,   859,  1004,
+      12,  -929,   861,  -929,  -929,  -929,   862,  -929,  -929,  -929
   };
 
   const short
   Dhcp6Parser::yydefact_[] =
   {
        0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
-      20,    22,    24,    26,    28,    30,     0,     0,     0,     0,
+      20,    22,    24,    26,    28,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     1,    47,    40,    36,    35,    32,    33,    34,
-      39,     3,    37,    38,    60,     5,    72,     7,   168,     9,
-     330,    11,   508,    13,   533,    15,   563,    17,   433,    19,
-     441,    21,   478,    23,   295,    25,   676,    27,   743,    29,
-     732,    31,    49,    43,     0,     0,     0,     0,     0,     0,
-     565,     0,   443,   480,     0,     0,     0,     0,    51,     0,
-      50,     0,     0,    44,    70,   741,   724,   726,   728,     0,
-      69,     0,    62,    64,    66,    67,    68,    65,   129,   730,
-     166,   180,   182,   184,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   164,     0,     0,     0,
-       0,     0,   146,   153,   155,     0,   322,   431,   470,   521,
-     523,   380,   388,   255,   272,   263,   248,   600,   555,   287,
-     306,   621,     0,   274,   645,   658,   674,   157,   159,   748,
-     128,     0,    74,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,   112,   113,   114,    85,   118,   119,   120,   121,
-     122,   123,   116,   117,   124,   125,   126,   110,    88,    89,
-      90,    91,   107,    92,    94,    93,   127,    98,    99,    86,
-     111,    87,    96,    97,   105,   106,   108,    95,   100,   101,
-     102,   103,   104,   109,   115,   177,     0,   176,     0,   170,
-     172,   173,   174,   175,   500,   525,   370,   372,   374,     0,
-       0,   378,   376,   594,   369,   334,   335,   336,   337,   338,
-     339,   340,   341,   357,   358,   359,   362,   363,   364,   365,
-     366,   367,   360,   361,   368,     0,   332,   345,   346,   347,
-     350,   351,   353,   348,   349,   342,   343,   355,   356,   344,
-     352,   354,   519,   518,   514,   515,   513,     0,   510,   512,
-     516,   517,   548,     0,   551,     0,     0,   547,   541,   542,
-     540,   545,   546,     0,   535,   537,   538,   543,   544,   539,
-     592,   580,   582,   584,   586,   588,   590,   579,   576,   577,
-     578,     0,   566,   567,   571,   572,   569,   573,   574,   575,
-     570,     0,   460,   228,     0,   464,   462,   467,     0,   456,
-     457,     0,   444,   445,   447,   459,   448,   449,   450,   466,
-     451,   452,   453,   454,   455,   494,     0,     0,   492,   493,
-     496,   497,     0,   481,   482,   484,   485,   486,   487,   488,
-     489,   490,   491,   302,   304,   299,     0,   297,   300,   301,
-       0,   699,   701,     0,   704,     0,     0,   708,   712,     0,
-       0,   716,   718,   720,   722,   697,   695,   696,     0,   678,
-     680,   681,   682,   683,   684,   685,   686,   687,   688,   689,
-     690,   691,   692,   693,   694,     0,   745,   747,   738,     0,
-       0,   734,   736,   737,    48,     0,     0,    41,     0,     0,
-       0,     0,     0,     0,    59,     0,    61,     0,     0,     0,
+       1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
+      35,    36,    58,     5,    65,     7,   161,     9,   323,    11,
+     501,    13,   526,    15,   556,    17,   426,    19,   434,    21,
+     471,    23,   288,    25,   669,    27,   719,    29,    47,    41,
+       0,     0,     0,     0,     0,     0,   558,     0,   436,   473,
+       0,     0,     0,    49,     0,    48,     0,     0,    42,    63,
+       0,    60,    62,   122,   717,   159,   173,   175,   177,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   157,     0,     0,     0,     0,     0,   139,   146,   148,
+       0,   315,   424,   463,   514,   516,   373,   381,   248,   265,
+     256,   241,   593,   548,   280,   299,   614,     0,   267,   638,
+     651,   667,   150,   152,   728,     0,   121,     0,    67,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,   105,   106,
+     107,    78,   111,   112,   113,   114,   115,   116,   109,   110,
+     117,   118,   119,   103,    81,    82,    83,    84,   100,    85,
+      87,    86,   120,    91,    92,    79,   104,    80,    89,    90,
+      98,    99,   101,    88,    93,    94,    95,    96,    97,   102,
+     108,   170,     0,   169,     0,   163,   165,   166,   167,   168,
+     493,   518,   363,   365,   367,     0,     0,   371,   369,   587,
+     362,   327,   328,   329,   330,   331,   332,   333,   334,   350,
+     351,   352,   355,   356,   357,   358,   359,   360,   353,   354,
+     361,     0,   325,   338,   339,   340,   343,   344,   346,   341,
+     342,   335,   336,   348,   349,   337,   345,   347,   512,   511,
+     507,   508,   506,     0,   503,   505,   509,   510,   541,     0,
+     544,     0,     0,   540,   534,   535,   533,   538,   539,     0,
+     528,   530,   531,   536,   537,   532,   585,   573,   575,   577,
+     579,   581,   583,   572,   569,   570,   571,     0,   559,   560,
+     564,   565,   562,   566,   567,   568,   563,     0,   453,   221,
+       0,   457,   455,   460,     0,   449,   450,     0,   437,   438,
+     440,   452,   441,   442,   443,   459,   444,   445,   446,   447,
+     448,   487,     0,     0,   485,   486,   489,   490,     0,   474,
+     475,   477,   478,   479,   480,   481,   482,   483,   484,   295,
+     297,   292,     0,   290,   293,   294,     0,   692,   694,     0,
+     697,     0,     0,   701,   705,     0,     0,   709,   711,   713,
+     715,   690,   688,   689,     0,   671,   673,   674,   675,   676,
+     677,   678,   679,   680,   681,   682,   683,   684,   685,   686,
+     687,   725,     0,     0,   721,   723,   724,    46,     0,     0,
+      39,     0,     0,     0,    59,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      73,     0,     0,     0,   169,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   331,     0,     0,   509,
-       0,     0,     0,     0,     0,     0,   534,     0,     0,     0,
-       0,     0,     0,     0,   564,     0,   434,     0,     0,     0,
-       0,     0,     0,     0,   442,     0,     0,     0,     0,   479,
-       0,     0,     0,     0,   296,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    57,     0,    66,
+       0,     0,     0,   162,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   324,     0,     0,   502,     0,
+       0,     0,     0,     0,     0,   527,     0,     0,     0,     0,
+       0,     0,     0,   557,     0,   427,     0,     0,     0,     0,
+       0,     0,     0,   435,     0,     0,     0,     0,   472,     0,
+       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   677,     0,   744,     0,     0,     0,   733,    52,    45,
-       0,     0,     0,     0,     0,     0,    63,     0,     0,     0,
-       0,     0,     0,   131,   132,   133,   134,   135,   136,   137,
-     138,   139,   140,   141,   142,     0,   162,   163,   143,   144,
-     145,     0,     0,     0,   161,     0,     0,     0,     0,     0,
+     670,     0,     0,     0,   720,    50,    43,     0,     0,    61,
+       0,     0,     0,     0,     0,     0,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,     0,   155,
+     156,   136,   137,   138,     0,     0,     0,   154,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   644,     0,     0,     0,     0,     0,     0,     0,    75,
-       0,   179,   171,     0,     0,     0,     0,     0,   386,   387,
-       0,     0,     0,   333,     0,   511,     0,   550,     0,   553,
-     554,   536,     0,     0,     0,     0,     0,     0,     0,   568,
-       0,     0,   458,     0,     0,     0,   469,   446,     0,   498,
-     499,   483,     0,     0,   298,   698,     0,     0,   703,     0,
-     706,   707,     0,     0,   714,   715,     0,     0,     0,     0,
-     679,   746,     0,   740,   735,     0,     0,     0,   725,   727,
-     729,   130,     0,     0,     0,     0,   186,   165,   148,   149,
-     150,   151,   152,   147,   154,   156,   324,   435,   472,    42,
-     522,   524,   382,   383,   384,   385,   381,   390,     0,    49,
-       0,     0,     0,   557,   289,     0,     0,     0,     0,     0,
-       0,   158,   160,     0,    53,   178,   502,   527,   371,   373,
-     375,   379,   377,     0,   520,   549,   552,   593,   581,   583,
-     585,   587,   589,   591,   461,   229,   465,   463,   468,   495,
-     303,   305,   700,   702,   705,   710,   711,   709,   713,   717,
-     719,   721,   723,   186,    46,     0,     0,     0,     0,   215,
-     221,   223,   225,     0,     0,     0,     0,     0,   239,     0,
-       0,   242,   244,   246,     0,     0,     0,     0,   214,     0,
-     192,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   206,   213,   207,   208,   209,   204,   205,   210,   211,
-     212,     0,   190,     0,   187,   188,   328,     0,   325,   326,
-     439,     0,   436,   437,   476,     0,   473,   474,   394,     0,
-     391,   392,   261,   262,     0,   257,   259,   260,     0,   270,
-     271,   267,     0,   265,   268,   269,   253,     0,   250,   252,
-     604,     0,   602,   561,     0,   558,   559,   293,     0,   290,
-     291,     0,     0,     0,     0,     0,     0,     0,   308,   310,
-     311,   312,   313,   314,   315,   634,   640,     0,     0,     0,
-     633,   630,   631,   632,     0,   623,   625,   628,   626,   627,
-     629,     0,     0,     0,   283,     0,   276,   278,   279,   280,
-     281,   282,   654,   656,   653,   651,   652,     0,   647,   649,
-     650,     0,   669,     0,   672,   665,   666,     0,   660,   662,
-     663,   664,   667,     0,   752,     0,   750,    55,   506,     0,
-     503,   504,   531,     0,   528,   529,   598,   597,     0,   596,
-       0,    71,   742,   731,   167,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   637,     0,     0,     0,     0,     0,
+       0,     0,    68,     0,   172,   164,     0,     0,     0,     0,
+       0,   379,   380,     0,     0,     0,   326,     0,   504,     0,
+     543,     0,   546,   547,   529,     0,     0,     0,     0,     0,
+       0,     0,   561,     0,     0,   451,     0,     0,     0,   462,
+     439,     0,   491,   492,   476,     0,     0,   291,   691,     0,
+       0,   696,     0,   699,   700,     0,     0,   707,   708,     0,
+       0,     0,     0,   672,     0,   727,   722,     0,     0,   123,
+       0,     0,     0,     0,   179,   158,   141,   142,   143,   144,
+     145,   140,   147,   149,   317,   428,   465,    40,   515,   517,
+     375,   376,   377,   378,   374,   383,     0,    47,     0,     0,
+       0,   550,   282,     0,     0,     0,     0,     0,     0,   151,
+     153,     0,    51,   171,   495,   520,   364,   366,   368,   372,
+     370,     0,   513,   542,   545,   586,   574,   576,   578,   580,
+     582,   584,   454,   222,   458,   456,   461,   488,   296,   298,
+     693,   695,   698,   703,   704,   702,   706,   710,   712,   714,
+     716,   179,    44,     0,     0,     0,   208,   214,   216,   218,
+       0,     0,     0,     0,     0,   232,     0,     0,   235,   237,
+     239,     0,     0,     0,     0,   207,     0,   185,   187,   188,
+     189,   190,   191,   192,   193,   194,   195,   196,   199,   206,
+     200,   201,   202,   197,   198,   203,   204,   205,     0,   183,
+       0,   180,   181,   321,     0,   318,   319,   432,     0,   429,
+     430,   469,     0,   466,   467,   387,     0,   384,   385,   254,
+     255,     0,   250,   252,   253,     0,   263,   264,   260,     0,
+     258,   261,   262,   246,     0,   243,   245,   597,     0,   595,
+     554,     0,   551,   552,   286,     0,   283,   284,     0,     0,
+       0,     0,     0,     0,     0,   301,   303,   304,   305,   306,
+     307,   308,   627,   633,     0,     0,     0,   626,   623,   624,
+     625,     0,   616,   618,   621,   619,   620,   622,     0,     0,
+       0,   276,     0,   269,   271,   272,   273,   274,   275,   647,
+     649,   646,   644,   645,     0,   640,   642,   643,     0,   662,
+       0,   665,   658,   659,     0,   653,   655,   656,   657,   660,
+       0,   732,     0,   730,    53,   499,     0,   496,   497,   524,
+       0,   521,   522,   591,   590,     0,   589,     0,    64,   718,
+     160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   181,   183,     0,   185,     0,
-       0,   323,     0,   443,   432,     0,   480,   471,     0,     0,
-     389,     0,     0,   256,   273,     0,   264,     0,     0,   249,
-     606,     0,   601,   565,   556,     0,     0,   288,     0,     0,
-       0,     0,     0,     0,     0,     0,   307,     0,     0,     0,
-       0,     0,     0,   622,     0,     0,     0,     0,   275,     0,
-       0,     0,   646,     0,     0,     0,     0,     0,   659,   675,
-       0,     0,   749,    57,     0,    56,     0,   501,     0,     0,
-     526,     0,     0,   595,   739,     0,     0,     0,     0,   227,
-     230,   231,   232,   233,     0,   241,   234,     0,     0,     0,
-     236,   237,   238,   235,   193,     0,   189,     0,   327,     0,
-     438,     0,   475,   430,   409,   410,   411,   413,   414,   415,
-     402,   403,   418,   419,   420,   423,   424,   425,   426,   427,
-     428,   421,   422,   429,   398,   399,   400,   401,   407,   408,
-     406,   412,     0,   396,   404,   416,   417,   405,   393,   258,
-     266,     0,   251,   618,     0,   616,   617,   613,   614,   615,
-       0,   607,   608,   610,   611,   612,   603,     0,   560,     0,
-     292,   316,   317,   318,   319,   320,   321,   309,     0,     0,
-     639,   642,   643,   624,   284,   285,   286,   277,     0,     0,
-     648,   668,     0,   671,     0,   661,   766,     0,   764,   762,
-     756,   760,   761,     0,   754,   758,   759,   757,   751,    54,
-       0,     0,   505,     0,   530,     0,   217,   218,   219,   220,
-     216,   222,   224,   226,   240,   243,   245,   247,   191,   329,
-     440,   477,     0,   395,   254,     0,     0,   605,     0,   562,
-     294,   636,   637,   638,   635,   641,   655,   657,   670,   673,
-       0,     0,     0,     0,   753,    58,   507,   532,   599,   397,
-       0,   620,   609,     0,   763,     0,   755,   619,     0,   765,
-     770,     0,   768,     0,     0,   767,   779,     0,     0,     0,
-     784,     0,   772,   774,   775,   776,   777,   778,   769,     0,
-       0,     0,     0,     0,     0,   771,     0,   781,   782,   783,
-       0,   773,   780,   785
+       0,   174,   176,     0,   178,     0,     0,   316,     0,   436,
+     425,     0,   473,   464,     0,     0,   382,     0,     0,   249,
+     266,     0,   257,     0,     0,   242,   599,     0,   594,   558,
+     549,     0,     0,   281,     0,     0,     0,     0,     0,     0,
+       0,     0,   300,     0,     0,     0,     0,     0,     0,   615,
+       0,     0,     0,     0,   268,     0,     0,     0,   639,     0,
+       0,     0,     0,     0,   652,   668,     0,     0,   729,    55,
+       0,    54,     0,   494,     0,     0,   519,     0,     0,   588,
+     726,     0,     0,     0,     0,   220,   223,   224,   225,   226,
+       0,   234,   227,     0,     0,     0,   229,   230,   231,   228,
+     186,     0,   182,     0,   320,     0,   431,     0,   468,   423,
+     402,   403,   404,   406,   407,   408,   395,   396,   411,   412,
+     413,   416,   417,   418,   419,   420,   421,   414,   415,   422,
+     391,   392,   393,   394,   400,   401,   399,   405,     0,   389,
+     397,   409,   410,   398,   386,   251,   259,     0,   244,   611,
+       0,   609,   610,   606,   607,   608,     0,   600,   601,   603,
+     604,   605,   596,     0,   553,     0,   285,   309,   310,   311,
+     312,   313,   314,   302,     0,     0,   632,   635,   636,   617,
+     277,   278,   279,   270,     0,     0,   641,   661,     0,   664,
+       0,   654,   746,     0,   744,   742,   736,   740,   741,     0,
+     734,   738,   739,   737,   731,    52,     0,     0,   498,     0,
+     523,     0,   210,   211,   212,   213,   209,   215,   217,   219,
+     233,   236,   238,   240,   184,   322,   433,   470,     0,   388,
+     247,     0,     0,   598,     0,   555,   287,   629,   630,   631,
+     628,   634,   648,   650,   663,   666,     0,     0,     0,     0,
+     733,    56,   500,   525,   592,   390,     0,   613,   602,     0,
+     743,     0,   735,   612,     0,   745,   750,     0,   748,     0,
+       0,   747,   759,     0,     0,     0,   764,     0,   752,   754,
+     755,   756,   757,   758,   749,     0,     0,     0,     0,     0,
+       0,   751,     0,   761,   762,   763,     0,   753,   760,   765
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,    -5,  -961,   448,
-    -961,  -961,  -961,  -961,  -961,  -961,   317,  -961,  -573,  -961,
-    -961,  -961,   -74,  -961,  -961,  -961,   615,  -961,  -961,  -961,
-    -961,   356,   555,  -961,  -961,   -62,   -42,   -24,   -22,   -21,
-     -18,    -4,    10,    13,    14,    15,  -961,    16,    27,    30,
-      32,  -961,   367,    34,  -961,    35,  -961,    37,  -961,    38,
-    -961,    42,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-     352,   572,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   275,  -961,    72,  -961,  -669,    79,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,   -66,  -961,  -703,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-      56,  -961,  -961,  -961,  -961,  -961,    64,  -692,  -961,  -961,
-    -961,  -961,    62,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-      33,  -961,  -961,  -961,  -961,  -961,  -961,  -961,    54,  -961,
-    -961,  -961,    53,   525,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,    49,  -961,  -961,  -961,  -961,  -961,  -961,  -960,  -961,
-    -961,  -961,    83,  -961,  -961,  -961,    87,   573,  -961,  -961,
-    -958,  -961,  -957,  -961,    44,  -961,    52,  -961,    48,  -961,
-    -961,  -961,  -956,  -961,  -961,  -961,  -961,    78,  -961,  -961,
-    -139,   991,  -961,  -961,  -961,  -961,  -961,    88,  -961,  -961,
-    -961,    92,  -961,   553,  -961,   -76,  -961,  -961,  -961,  -961,
-    -961,   -70,  -961,  -961,  -961,  -961,  -961,   -40,  -961,  -961,
-    -961,    95,  -961,  -961,  -961,    90,  -961,   544,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,    39,
-    -961,  -961,  -961,    40,   584,  -961,  -961,   -58,  -961,    -2,
-    -961,  -961,  -961,  -961,  -961,    28,  -961,  -961,  -961,    46,
-     579,  -961,  -961,  -961,  -961,  -961,  -961,  -961,   -47,  -961,
-    -961,  -961,    80,  -961,  -961,  -961,    77,  -961,   585,   338,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -955,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,    96,  -961,  -961,  -961,  -120,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,    67,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,    60,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,    55,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,   364,   546,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,  -961,   407,   554,  -961,  -961,  -961,  -961,  -961,  -961,
-    -961,   415,   556,   -72,  -961,  -961,    63,  -961,  -961,  -118,
-    -961,  -961,  -961,  -961,  -961,  -961,  -141,  -961,  -961,  -158,
-    -961,  -961,  -961,  -961,  -961,  -961,  -961
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,   -10,  -929,   444,  -929,
+    -929,  -929,  -929,  -929,  -929,   322,  -929,  -555,  -929,  -929,
+    -929,   -71,  -929,  -929,  -929,   607,  -929,  -929,  -929,  -929,
+     353,   554,  -929,  -929,   -59,   -43,   -42,   -40,   -39,   -28,
+     -27,   -26,   -23,   -21,   -15,  -929,    -9,    -3,    -1,    17,
+    -929,   368,    18,  -929,    20,  -929,    25,  -929,    28,  -929,
+      30,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,   357,
+     599,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+     278,  -929,    76,  -929,  -641,    80,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,   -67,  -929,  -679,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,    58,
+    -929,  -929,  -929,  -929,  -929,    65,  -663,  -929,  -929,  -929,
+    -929,    63,  -929,  -929,  -929,  -929,  -929,  -929,  -929,    34,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,    55,  -929,  -929,
+    -929,    54,   527,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+      49,  -929,  -929,  -929,  -929,  -929,  -929,  -928,  -929,  -929,
+    -929,    83,  -929,  -929,  -929,    86,   605,  -929,  -929,  -927,
+    -929,  -926,  -929,    35,  -929,    37,  -929,    32,  -929,  -929,
+    -929,  -920,  -929,  -929,  -929,  -929,    77,  -929,  -929,  -135,
+     960,  -929,  -929,  -929,  -929,  -929,    87,  -929,  -929,  -929,
+      97,  -929,   537,  -929,   -66,  -929,  -929,  -929,  -929,  -929,
+     -47,  -929,  -929,  -929,  -929,  -929,    13,  -929,  -929,  -929,
+      90,  -929,  -929,  -929,    99,  -929,   548,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,    21,  -929,
+    -929,  -929,    47,   606,  -929,  -929,   -55,  -929,     1,  -929,
+    -929,  -929,  -929,  -929,    43,  -929,  -929,  -929,    48,   608,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,   -57,  -929,  -929,
+    -929,    91,  -929,  -929,  -929,    98,  -929,   610,   354,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -919,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+     102,  -929,  -929,  -929,  -116,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,    82,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,    69,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,    68,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,   370,   535,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929,  -929,   413,   542,  -929,  -929,  -929,
+    -929,  -929,  -929,    70,  -929,  -929,  -117,  -929,  -929,  -929,
+    -929,  -929,  -929,  -136,  -929,  -929,  -154,  -929,  -929,  -929,
+    -929,  -929,  -929,  -929
   };
 
   const short
   Dhcp6Parser::yydefgoto_[] =
   {
-      -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    88,    41,    42,
-      73,   710,    92,    93,    43,    72,    89,    90,   735,   937,
-    1044,  1045,   798,    45,    74,   101,   102,   103,   419,    47,
-      75,   161,   162,   163,   427,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   451,   703,   180,   452,   181,   453,   182,   476,   183,
-     477,   184,   185,   186,   187,   445,   188,   429,    49,    76,
-     218,   219,   220,   481,   221,   189,   430,   190,   431,   191,
-     432,   823,   824,   825,   977,   799,   800,   801,   955,  1190,
-     802,   956,   803,   957,   804,   958,   805,   806,   518,   807,
-     808,   809,   810,   811,   812,   813,   814,   815,   816,   964,
-     817,   818,   967,   819,   968,   820,   969,   192,   465,   857,
-     858,   859,   997,   193,   462,   844,   845,   846,   847,   194,
-     464,   852,   853,   854,   855,   195,   463,   196,   472,   905,
-     906,   907,   908,   909,   197,   468,   868,   869,   870,  1006,
-      65,    84,   366,   367,   368,   531,   369,   532,   198,   469,
-     877,   878,   879,   880,   881,   882,   883,   884,   199,   455,
-     827,   828,   829,   980,    51,    77,   255,   256,   257,   487,
-     258,   488,   259,   489,   260,   493,   261,   492,   200,   460,
-     716,   263,   264,   201,   461,   839,   840,   841,   989,  1112,
-    1113,   202,   456,    59,    81,   831,   832,   833,   983,    61,
-      82,   331,   332,   333,   334,   335,   336,   337,   517,   338,
-     521,   339,   520,   340,   341,   522,   342,   203,   457,   835,
-     836,   837,   986,    63,    83,   352,   353,   354,   355,   356,
-     526,   357,   358,   359,   360,   266,   485,   939,   940,   941,
-    1046,    53,    78,   277,   278,   279,   497,   204,   458,   205,
-     459,   269,   486,   943,   944,   945,  1049,    55,    79,   293,
-     294,   295,   500,   296,   297,   502,   298,   299,   206,   467,
-     864,   865,   866,  1003,    57,    80,   311,   312,   313,   314,
-     508,   315,   509,   316,   510,   317,   511,   318,   512,   319,
-     513,   320,   507,   271,   494,   948,   949,  1052,   207,   466,
-     861,   862,  1000,  1130,  1131,  1132,  1133,  1134,  1205,  1135,
-     208,   470,   894,   895,   896,  1017,  1214,   897,   898,  1018,
-     899,   900,   209,   210,   473,   917,   918,   919,  1029,   920,
-    1030,   211,   474,   927,   928,   929,   930,  1034,   931,   932,
-    1036,   212,   475,    67,    85,   388,   389,   390,   391,   536,
-     392,   537,   393,   394,   539,   395,   396,   397,   542,   767,
-     398,   543,   399,   400,   401,   546,   402,   547,   403,   548,
-     404,   549,   104,   421,   105,   422,   106,   423,   213,   428,
-      71,    87,   410,   411,   412,   554,   413,   107,   420,    69,
-      86,   405,   406,   214,   478,   935,   936,  1040,  1173,  1174,
-    1175,  1176,  1222,  1177,  1220,  1241,  1242,  1243,  1251,  1252,
-    1253,  1259,  1254,  1255,  1256,  1257,  1263
+      -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    83,    39,    40,    69,
+     678,    87,    88,    41,    68,    84,    85,   703,   904,  1010,
+    1011,   765,    43,    70,    90,    91,    92,   402,    45,    71,
+     147,   148,   149,   405,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     429,   671,   166,   430,   167,   431,   168,   454,   169,   455,
+     170,   171,   172,   173,   423,   174,   407,    47,    72,   204,
+     205,   206,   460,   207,   175,   408,   176,   409,   177,   410,
+     790,   791,   792,   943,   766,   767,   768,   921,  1156,   769,
+     922,   770,   923,   771,   924,   772,   773,   497,   774,   775,
+     776,   777,   778,   779,   780,   781,   782,   783,   930,   784,
+     785,   933,   786,   934,   787,   935,   178,   443,   824,   825,
+     826,   963,   179,   440,   811,   812,   813,   814,   180,   442,
+     819,   820,   821,   822,   181,   441,   182,   450,   872,   873,
+     874,   875,   876,   183,   446,   835,   836,   837,   972,    63,
+      80,   352,   353,   354,   510,   355,   511,   184,   447,   844,
+     845,   846,   847,   848,   849,   850,   851,   185,   433,   794,
+     795,   796,   946,    49,    73,   241,   242,   243,   466,   244,
+     467,   245,   468,   246,   472,   247,   471,   186,   438,   684,
+     249,   250,   187,   439,   806,   807,   808,   955,  1078,  1079,
+     188,   434,    57,    77,   798,   799,   800,   949,    59,    78,
+     317,   318,   319,   320,   321,   322,   323,   496,   324,   500,
+     325,   499,   326,   327,   501,   328,   189,   435,   802,   803,
+     804,   952,    61,    79,   338,   339,   340,   341,   342,   505,
+     343,   344,   345,   346,   252,   464,   906,   907,   908,  1012,
+      51,    74,   263,   264,   265,   476,   190,   436,   191,   437,
+     255,   465,   910,   911,   912,  1015,    53,    75,   279,   280,
+     281,   479,   282,   283,   481,   284,   285,   192,   445,   831,
+     832,   833,   969,    55,    76,   297,   298,   299,   300,   487,
+     301,   488,   302,   489,   303,   490,   304,   491,   305,   492,
+     306,   486,   257,   473,   915,   916,  1018,   193,   444,   828,
+     829,   966,  1096,  1097,  1098,  1099,  1100,  1171,  1101,   194,
+     448,   861,   862,   863,   983,  1180,   864,   865,   984,   866,
+     867,   195,   196,   451,   884,   885,   886,   995,   887,   996,
+     197,   452,   894,   895,   896,   897,  1000,   898,   899,  1002,
+     198,   453,    65,    81,   374,   375,   376,   377,   515,   378,
+     516,   379,   380,   518,   381,   382,   383,   521,   735,   384,
+     522,   385,   386,   387,   525,   388,   526,   389,   527,   390,
+     528,   199,   406,    67,    82,   393,   394,   395,   531,   396,
+     200,   456,   902,   903,  1006,  1139,  1140,  1141,  1142,  1188,
+    1143,  1186,  1207,  1208,  1209,  1217,  1218,  1219,  1225,  1220,
+    1221,  1222,  1223,  1229
   };
 
   const short
   Dhcp6Parser::yytable_[] =
   {
-     100,   160,   217,   234,   273,   287,   307,   350,   329,   348,
-     365,   385,    40,   351,   407,   235,   330,   349,   222,   267,
-     280,   291,   309,   891,   343,   361,   821,   386,   851,  1105,
-     270,  1106,  1107,  1111,  1117,   236,    94,   265,   276,   290,
-     308,    33,   301,    34,    91,    35,   425,   215,   216,   946,
-      32,   426,    44,   237,    46,   238,   239,   741,    48,   240,
-     698,   699,   700,   701,   842,   363,   364,   138,   323,   747,
-     748,   749,    50,   241,   223,   268,   281,   292,   310,   479,
-     344,   362,    52,   387,   480,   139,   140,   242,   137,   885,
-     243,   244,   245,   246,   363,   364,   483,   702,   784,   408,
-     409,   484,   322,   495,   247,  1123,  1124,   248,   496,   249,
-     992,   250,   251,   993,   252,   253,   498,   139,   140,   254,
-     159,   499,   274,   288,   505,   262,    54,   779,   414,   506,
-     275,   289,   780,   781,   782,   783,   784,   785,   786,   787,
-     788,   789,   790,   791,   792,   793,   794,   795,   796,   797,
-     323,   843,   324,   325,   139,   140,   326,   327,   328,   138,
-    1246,    56,   415,  1247,  1248,  1249,  1250,   139,   140,   995,
-     272,    58,   996,   138,    99,   323,   138,   139,   140,   533,
-     139,   140,   842,   849,   534,   850,   282,   283,   284,   285,
-     286,   139,   140,    60,   139,   140,   231,    95,    99,   232,
-     886,   887,   888,   889,    62,    64,   550,    96,    97,    98,
-     231,   551,   300,   232,  1001,    66,   323,  1002,   301,   302,
-     303,   304,   305,   306,   552,    99,  1211,  1212,  1213,   553,
-      99,   139,   140,   139,   140,    36,    37,    38,    39,   921,
-     922,   923,  1105,   556,  1106,  1107,  1111,  1117,   557,   712,
-     713,   714,   715,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   765,   766,    68,    99,   129,   130,
-     131,   132,   133,   134,   135,  1041,  1244,   138,  1042,  1245,
-      99,   139,   140,   901,   902,   903,    70,   224,   416,   225,
-      99,   139,   140,   924,   417,   139,   140,   226,   227,   228,
-     229,   230,   141,   851,    99,    99,   479,    99,  1075,   418,
-     552,   951,   424,   433,   231,   952,   556,   232,   148,   891,
-    1166,   953,  1167,  1168,   483,   233,   434,   435,   436,   954,
-     437,   323,   345,   324,   325,   346,   347,   912,   913,   438,
-     974,   514,   974,   515,    99,   975,    99,   976,   139,   140,
-     439,   100,   440,   441,   370,   371,   372,   373,   374,   375,
-     376,   377,   378,   379,   380,   381,   382,   871,   872,   873,
-     874,   875,   876,   442,   383,   384,   998,  1015,   157,   158,
-    1022,   999,  1016,  1027,  1031,  1023,  1037,   550,  1028,  1032,
-     974,  1038,  1039,   495,    99,  1198,  1202,   533,  1199,   443,
-     444,  1203,  1210,   446,    99,   160,   447,  1223,    99,   217,
-     558,   559,  1224,   498,   505,  1264,   516,   448,  1226,  1227,
-    1265,   234,   449,   450,   273,   222,   454,  1186,  1187,  1188,
-    1189,   287,   471,   235,   482,   490,   491,   267,   501,   503,
-     280,   307,   504,   519,   523,   524,   525,   291,   270,   527,
-     528,   329,   529,   236,   350,   265,   348,   309,   276,   330,
-     351,    99,   530,   560,   349,   290,   535,   343,   538,   540,
-     541,   237,   361,   238,   239,   308,   385,   240,   544,   545,
-     407,   223,   555,   561,   562,   563,   564,   565,   567,   568,
-     569,   241,   386,   268,   570,   571,   281,   572,   573,   574,
-     575,   576,   577,   292,   578,   242,   585,   581,   243,   244,
-     245,   246,   579,   310,   580,   591,   582,   583,   584,   586,
-     587,   686,   247,   344,   592,   248,   593,   249,   362,   250,
-     251,   588,   252,   253,   589,   595,   590,   254,   594,   596,
-     597,   598,   274,   262,   599,   600,   601,   602,   387,   288,
-     275,   603,   604,   605,   606,   607,   608,   289,   688,   689,
-     690,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,   609,   610,   612,   611,   129,   130,   131,   132,
-     133,   134,   135,   136,   613,   138,   323,     1,     2,     3,
+     146,   203,   220,   259,   273,   293,    38,   315,   334,   351,
+     371,   316,   335,   336,   221,   858,   256,   208,   253,   266,
+     277,   295,   788,   329,   347,   818,   372,  1071,  1072,  1073,
+     222,   223,   337,   224,   225,  1077,  1083,    86,    31,   809,
+      32,    30,    33,   201,   202,   226,   227,   228,   709,   287,
+     229,    42,   230,    44,   349,   350,   913,    46,   231,    48,
+     715,   716,   717,    50,   232,   666,   667,   668,   669,    52,
+     233,    89,   234,   209,   254,   267,   278,   296,   403,   330,
+     348,   958,   373,   404,   959,   852,   251,   262,   276,   294,
+     235,   236,   308,   237,   751,   458,    54,   670,   238,   462,
+     459,   239,    56,   240,   463,   248,   123,   309,    58,   260,
+     274,   261,   275,   124,   125,   474,    60,   477,   484,   123,
+     475,   810,   478,   485,   124,   125,   122,    93,    94,   145,
+     258,    95,   391,   392,    96,    97,    98,   124,   125,    62,
+     309,    64,   310,   311,  1089,  1090,   312,   313,   314,   961,
+     124,   125,   962,   124,   125,    66,   217,   124,   125,   218,
+      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,  1212,   397,   512,  1213,  1214,
+    1215,  1216,   513,   349,   350,   529,   853,   854,   855,   856,
+     530,   967,   124,   125,   968,   868,   869,   870,   533,   126,
+    1177,  1178,  1179,   534,   127,   128,   129,   130,   131,   458,
+     132,   145,   124,   125,   918,   133,   533,    34,    35,    36,
+      37,   919,   145,   309,   134,   398,  1007,   135,   462,  1008,
+    1071,  1072,  1073,   920,   136,   145,   733,   734,  1077,  1083,
+     124,   125,   137,   138,   123,   399,  1210,   139,   145,  1211,
+     140,   145,   400,   401,   141,   145,   411,   268,   269,   270,
+     271,   272,   124,   125,   412,   309,   331,   310,   311,   332,
+     333,   888,   889,   890,   413,   142,   143,   144,   124,   125,
+     940,   217,   124,   125,   218,   941,   940,   493,   818,   964,
+     981,   942,  1041,   988,   965,   982,   746,   414,   989,   858,
+     145,   747,   748,   749,   750,   751,   752,   753,   754,   755,
+     756,   757,   758,   759,   760,   761,   762,   763,   764,   123,
+     891,   415,   993,   495,   416,   997,  1132,   994,  1133,  1134,
+     998,  1003,   503,   417,   879,   880,  1004,   124,   125,   418,
+     529,   940,   474,   494,   309,  1005,  1164,  1165,   145,   838,
+     839,   840,   841,   842,   843,   286,   680,   681,   682,   683,
+     419,   287,   288,   289,   290,   291,   292,  1168,   512,  1189,
+     145,   477,  1169,  1176,  1190,   484,  1192,   146,   535,   536,
+    1193,   203,  1230,   508,   420,   421,   145,  1231,   809,   816,
+     145,   817,   422,   220,   424,   425,   259,   208,  1152,  1153,
+    1154,  1155,   426,   273,   427,   221,   428,   256,   432,   253,
+     449,   457,   266,   293,   461,   469,   470,   480,   482,   277,
+     483,   222,   223,   315,   224,   225,   498,   316,   334,   295,
+     502,   504,   335,   336,   506,   507,   226,   227,   228,   329,
+     509,   229,   514,   230,   347,   145,   517,   519,   371,   231,
+     520,   523,   337,   209,   524,   232,   532,   537,   538,   540,
+     541,   233,   542,   234,   372,   254,   543,   544,   267,   145,
+     545,   554,   558,   546,   564,   278,   547,   251,   555,   548,
+     262,   235,   236,   549,   237,   296,   550,   276,   556,   238,
+     551,   552,   239,   553,   240,   330,   248,   294,   557,   559,
+     348,   560,   260,   565,   261,   561,   562,   563,   566,   274,
+     567,   275,   568,   569,   570,   571,   572,   573,   574,   575,
+     373,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   576,   577,   578,   579,   114,   115,   116,   117,
+     118,   119,   120,   580,   581,   123,   582,   583,   584,   585,
+     586,   587,   588,   589,   590,   210,   591,   211,   593,   594,
+     596,   597,   598,   124,   125,   212,   213,   214,   215,   216,
+     126,   599,   600,   601,   602,   603,   604,   146,   605,   607,
+     203,   609,   217,   611,   610,   218,   133,   612,   613,   615,
+     616,   617,   618,   219,   619,   620,   208,     1,     2,     3,
        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,   614,   139,   140,   615,   227,   228,   616,   230,
-     141,   617,   160,   618,   620,   407,   621,   623,   624,   217,
-     625,   626,   231,   627,   628,   232,   630,   629,   631,   632,
-     634,   636,   638,   233,   642,   222,   637,   643,   644,   645,
-     646,   639,   640,   647,   648,   650,   651,   652,   653,   654,
-     655,   656,   890,   904,   914,   658,   385,   659,   761,   660,
-     662,   663,   665,   666,   667,   669,   672,   668,   892,   910,
-     915,   925,   386,   670,   673,   676,   671,   677,   678,   674,
-     774,   679,   682,   685,   979,   696,   157,   158,   683,   675,
-     687,   223,   768,   691,   692,   693,   108,   109,   694,   695,
-     110,   706,   697,   111,   112,   113,   704,   705,   707,   708,
-     982,   711,    34,   717,   718,   719,    99,   720,   721,   722,
-     723,   724,   731,   732,   893,   911,   916,   926,   387,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   725,   726,   727,   728,   729,   730,
-     733,   734,   736,   737,   738,   739,   740,   743,   773,   822,
-     742,   139,   140,   744,   745,   746,   750,   751,   141,   826,
-     752,   753,   754,   142,   143,   144,   145,   146,   755,   147,
-     756,   757,   758,   759,   148,   760,   762,   830,   763,   764,
-     834,   770,   771,   149,   772,   838,   150,   860,   863,   856,
-     867,   934,   938,   151,   942,   959,   960,   961,   962,   963,
-     965,   152,   153,   966,   970,   971,   154,   972,   973,   155,
-     985,   978,   981,   156,   984,   987,   988,   990,   991,  1060,
-     994,  1005,  1004,  1007,  1008,  1047,  1009,  1010,  1011,  1012,
-    1013,  1014,  1019,  1020,   157,   158,  1021,   159,  1024,  1025,
-    1026,  1033,  1035,  1043,  1048,  1050,  1051,  1059,  1053,  1055,
-    1054,  1056,  1057,  1058,  1062,  1061,  1063,  1064,  1067,  1068,
-    1069,  1121,  1065,  1148,    99,  1149,  1066,  1158,  1159,  1070,
-    1071,  1162,  1164,  1185,  1073,  1072,  1179,  1141,  1142,  1143,
-    1144,  1145,  1146,  1180,  1200,  1201,   234,  1206,  1208,   329,
-     350,  1221,   348,  1150,  1207,  1083,   351,   330,   235,  1151,
-     349,  1152,   267,  1104,  1154,   343,  1125,  1084,   361,   307,
-    1155,  1115,   365,   270,  1126,  1156,  1161,  1163,   236,  1191,
-     265,  1192,  1128,  1193,  1194,   309,  1209,  1085,   890,  1114,
-    1230,  1233,  1195,   904,  1234,  1235,   237,   914,   238,   239,
-    1127,  1231,   240,   308,   892,  1086,  1169,  1087,  1088,   910,
-    1196,  1089,   273,   915,  1170,   287,   241,  1197,   268,   925,
-    1204,   344,  1171,  1215,   362,  1090,  1216,  1116,   280,  1238,
-     242,   291,  1240,   243,   244,   245,   246,  1260,  1129,  1091,
-    1261,   310,  1092,  1093,  1094,  1095,   276,   247,  1217,   290,
-     248,  1262,   249,  1266,   250,   251,  1096,   252,   253,  1097,
-     893,  1098,   254,  1099,  1100,   911,  1101,  1102,   262,   916,
-    1270,  1103,  1267,  1108,   619,   926,   848,  1110,  1172,  1218,
-     566,  1109,   775,   769,   281,   778,   709,   292,   950,  1225,
-    1228,  1076,  1237,  1074,  1122,   622,  1119,  1120,   664,  1139,
-    1157,  1239,  1140,  1229,  1147,  1078,  1268,  1077,   633,  1118,
-    1269,  1272,   321,  1080,   661,  1079,  1081,  1273,   657,  1184,
-    1137,   947,   635,  1082,   641,  1138,  1181,  1182,  1232,  1153,
-     274,  1160,  1165,   288,   933,  1183,   680,  1136,   275,   777,
-     649,   289,   776,  1258,  1178,  1236,  1271,     0,   681,     0,
-     684,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1083,     0,
-       0,     0,     0,     0,  1125,     0,  1104,     0,     0,     0,
-    1084,     0,  1126,     0,  1115,     0,     0,     0,     0,  1169,
-    1128,     0,     0,     0,     0,     0,     0,  1170,     0,  1219,
-    1085,     0,  1114,     0,     0,  1171,     0,     0,  1127,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1086,     0,
-    1087,  1088,     0,     0,  1089,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1090,     0,
-    1116,     0,     0,     0,     0,     0,  1129,     0,     0,     0,
-       0,     0,  1091,     0,     0,  1092,  1093,  1094,  1095,     0,
-       0,  1172,     0,     0,     0,     0,     0,     0,     0,  1096,
-       0,     0,  1097,     0,  1098,     0,  1099,  1100,     0,  1101,
-    1102,     0,     0,     0,  1103,     0,  1108,     0,     0,     0,
-    1110,     0,     0,     0,  1109
+      14,   621,   623,   857,   871,   881,   729,   371,   624,   625,
+     626,   627,   628,   631,   629,   635,   632,   636,   639,   859,
+     877,   882,   892,   372,   640,   641,   633,   742,   638,   642,
+     643,   645,   646,   644,   649,   650,   142,   143,   647,   651,
+     648,   652,   209,   654,   655,   657,   736,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   124,   125,
+     658,   145,   114,   115,   116,   117,   118,   119,   120,   121,
+     659,   123,   309,   660,   661,   860,   878,   883,   893,   373,
+     662,   663,   664,   674,   665,   672,   673,   675,   676,   124,
+     125,    32,   213,   214,   685,   216,   126,   686,   687,   688,
+     679,   690,   689,   691,   692,   699,   700,   693,   217,   694,
+     695,   218,   696,   697,   698,   701,   702,   704,   705,   219,
+     706,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   711,   707,   741,   708,   925,   710,
+     789,   369,   370,   712,   713,   714,   718,   719,   720,   721,
+     722,   793,   797,   723,   724,   801,   805,   725,   823,   827,
+     726,   830,   727,   834,   728,   730,   145,   731,   732,   901,
+     905,   909,   142,   143,   926,   927,   738,   739,   740,   928,
+     929,   931,   932,   936,   937,   938,   939,   945,  1009,   944,
+     948,   947,   950,   951,   953,   954,  1025,   145,   957,   956,
+     960,   971,   970,   973,   974,  1013,   975,   976,   977,   978,
+     979,   980,   985,   986,   987,   990,   991,   992,   999,  1001,
+    1014,  1017,  1016,  1026,  1027,  1021,  1020,  1019,  1022,  1023,
+    1024,  1028,  1030,  1029,  1033,  1031,  1034,  1032,  1035,  1036,
+    1037,  1087,  1039,  1038,  1107,  1108,  1109,  1110,  1114,  1111,
+    1115,  1112,  1116,  1117,  1118,   220,  1121,  1120,   315,  1122,
+    1124,   334,   316,  1125,  1049,   335,   336,   221,  1070,   256,
+    1128,   253,  1127,  1130,   329,  1091,  1050,   347,   293,  1092,
+    1081,   351,  1129,   222,   223,   337,   224,   225,  1145,  1146,
+    1174,  1094,  1051,  1052,   295,  1053,  1054,   857,   226,   227,
+     228,  1151,   871,   229,  1166,   230,   881,  1055,  1056,  1057,
+    1157,   231,  1058,   859,  1059,  1135,  1158,   232,   877,  1136,
+    1060,   259,   882,   233,   273,   234,  1061,   254,   892,  1159,
+     330,  1137,  1062,   348,  1063,  1160,  1082,   266,  1167,   251,
+     277,  1161,  1172,   235,   236,  1162,   237,  1095,  1080,  1163,
+     296,   238,  1064,  1065,   239,  1066,   240,  1173,   248,  1093,
+    1067,  1170,   294,  1068,  1175,  1069,  1181,  1076,  1182,   860,
+    1074,  1187,  1075,  1196,   878,  1199,  1201,  1206,   883,  1204,
+    1226,  1227,  1228,  1183,   893,  1184,  1232,  1138,  1236,   815,
+     539,   743,   592,   267,  1191,   677,   278,   737,   745,   917,
+    1040,  1042,  1088,  1085,  1086,   262,  1105,  1123,   276,  1106,
+    1113,  1044,  1043,  1195,  1084,  1148,  1194,   307,  1046,   637,
+    1197,   630,  1200,  1203,  1048,  1205,  1045,   260,  1234,   261,
+     274,  1047,   275,  1233,  1235,  1238,  1239,   634,  1198,  1147,
+    1150,   595,  1104,  1149,   653,   914,  1126,  1103,   900,  1102,
+    1119,  1131,  1202,   744,  1224,   656,  1237,  1144,     0,   606,
+       0,     0,     0,   608,     0,     0,     0,     0,     0,     0,
+       0,     0,   614,     0,     0,     0,     0,  1049,     0,     0,
+       0,  1070,     0,  1091,   622,     0,     0,  1092,     0,  1050,
+       0,     0,     0,  1081,     0,     0,     0,     0,  1135,  1094,
+    1185,     0,  1136,     0,     0,  1051,  1052,     0,  1053,  1054,
+       0,     0,     0,     0,  1137,     0,     0,     0,     0,     0,
+    1055,  1056,  1057,     0,     0,  1058,     0,  1059,     0,     0,
+       0,     0,     0,  1060,     0,     0,     0,     0,     0,  1061,
+       0,     0,     0,     0,     0,  1062,     0,  1063,     0,  1082,
+       0,     0,     0,     0,     0,  1095,     0,     0,     0,     0,
+       0,  1080,     0,     0,     0,  1064,  1065,  1093,  1066,     0,
+    1138,     0,     0,  1067,     0,     0,  1068,     0,  1069,     0,
+    1076,     0,     0,  1074,     0,  1075
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
-      74,    75,    76,    77,    78,    79,    80,    83,    82,    83,
-      84,    85,    17,    83,    86,    77,    82,    83,    76,    77,
-      78,    79,    80,   726,    82,    83,   695,    85,   720,   989,
-      77,   989,   989,   989,   989,    77,    10,    77,    78,    79,
-      80,     5,   110,     7,   199,     9,     3,    16,    17,   117,
-       0,     8,     7,    77,     7,    77,    77,   630,     7,    77,
-     165,   166,   167,   168,   112,   119,   120,    68,    69,   642,
-     643,   644,     7,    77,    76,    77,    78,    79,    80,     3,
-      82,    83,     7,    85,     8,    86,    87,    77,    67,    21,
-      77,    77,    77,    77,   119,   120,     3,   202,    30,    13,
-      14,     8,    21,     3,    77,   106,   107,    77,     8,    77,
-       3,    77,    77,     6,    77,    77,     3,    86,    87,    77,
-     172,     8,    78,    79,     3,    77,     7,    21,     6,     8,
-      78,    79,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      69,   199,    71,    72,    86,    87,    75,    76,    77,    68,
-     174,     7,     3,   177,   178,   179,   180,    86,    87,     3,
-      79,     7,     6,    68,   199,    69,    68,    86,    87,     3,
-      86,    87,   112,   113,     8,   115,    81,    82,    83,    84,
-      85,    86,    87,     7,    86,    87,   105,   171,   199,   108,
-     132,   133,   134,   135,     7,     7,     3,   181,   182,   183,
-     105,     8,   104,   108,     3,     7,    69,     6,   110,   111,
-     112,   113,   114,   115,     3,   199,   129,   130,   131,     8,
-     199,    86,    87,    86,    87,   199,   200,   201,   202,   145,
-     146,   147,  1202,     3,  1202,  1202,  1202,  1202,     8,    94,
-      95,    96,    97,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,   162,   163,     7,   199,    59,    60,
-      61,    62,    63,    64,    65,     3,     3,    68,     6,     6,
-     199,    86,    87,   138,   139,   140,     7,    78,     4,    80,
-     199,    86,    87,   199,     8,    86,    87,    88,    89,    90,
-      91,    92,    93,   995,   199,   199,     3,   199,   977,     3,
-       3,     8,     4,     4,   105,     8,     3,   108,   109,  1022,
-     173,     8,   175,   176,     3,   116,     4,     4,     4,     8,
-       4,    69,    70,    71,    72,    73,    74,   142,   143,     4,
-       3,     8,     3,     3,   199,     8,   199,     8,    86,    87,
-       4,   425,     4,     4,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   122,   123,   124,
-     125,   126,   127,     4,   169,   170,     3,     3,   169,   170,
-       3,     8,     8,     3,     3,     8,     3,     3,     8,     8,
-       3,     8,     8,     3,   199,     8,     3,     3,     8,     4,
-       4,     8,     8,     4,   199,   479,     4,     3,   199,   483,
-     415,   416,     8,     3,     3,     3,     8,     4,     8,     8,
-       8,   495,     4,     4,   498,   483,     4,    22,    23,    24,
-      25,   505,     4,   495,     4,     4,     4,   495,     4,     4,
-     498,   515,     4,     4,     4,     8,     3,   505,   495,     4,
-       4,   525,     8,   495,   530,   495,   530,   515,   498,   525,
-     530,   199,     3,   199,   530,   505,     4,   525,     4,     4,
-       4,   495,   530,   495,   495,   515,   550,   495,     4,     4,
-     552,   483,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   495,   550,   495,     4,     4,   498,     4,   200,   200,
-     200,   200,   200,   505,   200,   495,     4,   202,   495,   495,
-     495,   495,   200,   515,   200,     4,   201,   201,   200,   200,
-     200,     7,   495,   525,     4,   495,     4,   495,   530,   495,
-     495,   202,   495,   495,   202,     4,   202,   495,   202,     4,
-       4,     4,   498,   495,     4,     4,     4,     4,   550,   505,
-     498,     4,     4,     4,     4,     4,     4,   505,   563,   564,
-     565,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,     4,     4,     4,   200,    59,    60,    61,    62,
-      63,    64,    65,    66,     4,    68,    69,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,     4,    86,    87,     4,    89,    90,     4,    92,
-      93,     4,   686,     4,     4,   687,   202,     4,     4,   693,
-       4,     4,   105,     4,   200,   108,     4,   202,     4,     4,
-       4,     4,     4,   116,     4,   693,   200,     4,     4,     4,
-       4,   200,   200,     4,     4,     4,     4,   200,     4,     4,
-       4,   202,   726,   727,   728,     4,   730,   202,   663,   202,
-       4,     4,   202,     4,     4,     4,     4,   200,   726,   727,
-     728,   729,   730,   200,     4,     4,   200,     4,     4,   202,
-     685,     4,     4,     4,     3,     5,   169,   170,   200,   202,
-       7,   693,   164,   199,     7,     7,    11,    12,     7,     7,
-      15,     5,   199,    18,    19,    20,   199,   199,     5,     5,
-       3,   199,     7,     5,     5,     5,   199,     5,     7,     5,
-       5,     5,   199,   199,   726,   727,   728,   729,   730,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,     7,     7,     7,     7,     7,     7,
-       5,     5,     5,     5,   199,   199,   199,     7,     5,     7,
-     199,    86,    87,   199,   199,   199,   199,   199,    93,     7,
-     199,   199,   199,    98,    99,   100,   101,   102,   199,   104,
-     199,   199,   199,   199,   109,   199,   199,     7,   199,   199,
-       7,   199,   199,   118,   199,     7,   121,     7,     7,   103,
-       7,     7,     7,   128,     7,     4,     4,     4,     4,     4,
-       4,   136,   137,     4,     4,     4,   141,     4,     4,   144,
-       3,     6,     6,   148,     6,     6,     3,     6,     3,   202,
+      71,    72,    73,    74,    75,    76,    16,    78,    79,    80,
+      81,    78,    79,    79,    73,   694,    73,    72,    73,    74,
+      75,    76,   663,    78,    79,   688,    81,   955,   955,   955,
+      73,    73,    79,    73,    73,   955,   955,   194,     5,   112,
+       7,     0,     9,    16,    17,    73,    73,    73,   603,   110,
+      73,     7,    73,     7,   119,   120,   117,     7,    73,     7,
+     615,   616,   617,     7,    73,   165,   166,   167,   168,     7,
+      73,    10,    73,    72,    73,    74,    75,    76,     3,    78,
+      79,     3,    81,     8,     6,    21,    73,    74,    75,    76,
+      73,    73,    21,    73,    30,     3,     7,   197,    73,     3,
+       8,    73,     7,    73,     8,    73,    68,    69,     7,    74,
+      75,    74,    75,    86,    87,     3,     7,     3,     3,    68,
+       8,   194,     8,     8,    86,    87,    67,    11,    12,   194,
+      79,    15,    13,    14,    18,    19,    20,    86,    87,     7,
+      69,     7,    71,    72,   106,   107,    75,    76,    77,     3,
+      86,    87,     6,    86,    87,     7,   105,    86,    87,   108,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,   173,     6,     3,   176,   177,
+     178,   179,     8,   119,   120,     3,   132,   133,   134,   135,
+       8,     3,    86,    87,     6,   138,   139,   140,     3,    93,
+     129,   130,   131,     8,    98,    99,   100,   101,   102,     3,
+     104,   194,    86,    87,     8,   109,     3,   194,   195,   196,
+     197,     8,   194,    69,   118,     3,     3,   121,     3,     6,
+    1168,  1168,  1168,     8,   128,   194,   162,   163,  1168,  1168,
+      86,    87,   136,   137,    68,     4,     3,   141,   194,     6,
+     144,   194,     8,     3,   148,   194,     4,    81,    82,    83,
+      84,    85,    86,    87,     4,    69,    70,    71,    72,    73,
+      74,   145,   146,   147,     4,   169,   170,   171,    86,    87,
+       3,   105,    86,    87,   108,     8,     3,     8,   961,     3,
+       3,     8,   943,     3,     8,     8,    21,     4,     8,   988,
+     194,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    68,
+     194,     4,     3,     8,     4,     3,   172,     8,   174,   175,
+       8,     3,     8,     4,   142,   143,     8,    86,    87,     4,
+       3,     3,     3,     3,    69,     8,     8,     8,   194,   122,
+     123,   124,   125,   126,   127,   104,    94,    95,    96,    97,
+       4,   110,   111,   112,   113,   114,   115,     3,     3,     3,
+     194,     3,     8,     8,     8,     3,     8,   458,   398,   399,
+       8,   462,     3,     8,     4,     4,   194,     8,   112,   113,
+     194,   115,     4,   474,     4,     4,   477,   462,    22,    23,
+      24,    25,     4,   484,     4,   474,     4,   474,     4,   474,
+       4,     4,   477,   494,     4,     4,     4,     4,     4,   484,
+       4,   474,   474,   504,   474,   474,     4,   504,   509,   494,
+       4,     3,   509,   509,     4,     4,   474,   474,   474,   504,
+       3,   474,     4,   474,   509,   194,     4,     4,   529,   474,
+       4,     4,   509,   462,     4,   474,     4,   194,     4,     4,
+       4,   474,     4,   474,   529,   474,     4,     4,   477,   194,
+       4,   197,     4,   195,     4,   484,   195,   474,   196,   195,
+     477,   474,   474,   195,   474,   494,   195,   484,   196,   474,
+     195,   195,   474,   195,   474,   504,   474,   494,   195,   195,
+     509,   195,   477,     4,   477,   197,   197,   197,     4,   484,
+     197,   484,     4,     4,     4,     4,     4,     4,     4,     4,
+     529,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,     4,     4,     4,     4,    59,    60,    61,    62,
+      63,    64,    65,     4,     4,    68,     4,     4,   195,     4,
+       4,     4,     4,     4,     4,    78,     4,    80,     4,   197,
+       4,     4,     4,    86,    87,    88,    89,    90,    91,    92,
+      93,     4,     4,   195,   197,     4,     4,   658,     4,     4,
+     661,     4,   105,     4,   195,   108,   109,   195,   195,     4,
+       4,     4,     4,   116,     4,     4,   661,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,     4,     4,   694,   695,   696,   636,   698,     4,   195,
+       4,     4,     4,     4,   197,     4,   197,     4,     4,   694,
+     695,   696,   697,   698,     4,   195,   197,   657,   197,     4,
+     195,     4,     4,   195,     4,     4,   169,   170,   197,     4,
+     197,     4,   661,     4,   195,     4,   164,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    86,    87,
+       7,   194,    59,    60,    61,    62,    63,    64,    65,    66,
+     194,    68,    69,     7,     7,   694,   695,   696,   697,   698,
+       7,     7,     5,     5,   194,   194,   194,     5,     5,    86,
+      87,     7,    89,    90,     5,    92,    93,     5,     5,     5,
+     194,     5,     7,     5,     5,   194,   194,     7,   105,     7,
+       7,   108,     7,     7,     7,     5,     5,     5,     5,   116,
+     194,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,     7,   194,     5,   194,     4,   194,
+       7,   169,   170,   194,   194,   194,   194,   194,   194,   194,
+     194,     7,     7,   194,   194,     7,     7,   194,   103,     7,
+     194,     7,   194,     7,   194,   194,   194,   194,   194,     7,
+       7,     7,   169,   170,     4,     4,   194,   194,   194,     4,
+       4,     4,     4,     4,     4,     4,     4,     3,   194,     6,
+       3,     6,     6,     3,     6,     3,   195,   194,     3,     6,
        6,     3,     6,     6,     3,     6,     4,     4,     4,     4,
-       4,     4,     4,     4,   169,   170,     4,   172,     4,     4,
-       4,     4,     4,   199,     3,     6,     3,   200,     8,     4,
-       6,     4,     4,     4,   202,   200,   200,     4,     4,     4,
-       4,     4,   200,     4,   199,     4,   200,     4,     4,   200,
-     200,     4,     4,     4,   200,   202,     6,   200,   200,   200,
-     200,   200,   200,     3,     8,     8,   980,     4,     3,   983,
-     986,     4,   986,   200,     8,   989,   986,   983,   980,   200,
-     986,   200,   980,   989,   202,   983,  1000,   989,   986,  1003,
-     200,   989,  1006,   980,  1000,   200,   202,   200,   980,   199,
-     980,   199,  1000,   199,   199,  1003,     8,   989,  1022,   989,
-       4,     4,   199,  1027,   200,     4,   980,  1031,   980,   980,
-    1000,   202,   980,  1003,  1022,   989,  1040,   989,   989,  1027,
-     199,   989,  1046,  1031,  1040,  1049,   980,   199,   980,  1037,
-     199,   983,  1040,   199,   986,   989,   199,   989,  1046,     5,
-     980,  1049,     7,   980,   980,   980,   980,     4,  1000,   989,
-       4,  1003,   989,   989,   989,   989,  1046,   980,   199,  1049,
-     980,     4,   980,     4,   980,   980,   989,   980,   980,   989,
-    1022,   989,   980,   989,   989,  1027,   989,   989,   980,  1031,
-       4,   989,   202,   989,   479,  1037,   719,   989,  1040,   199,
-     425,   989,   686,   676,  1046,   693,   598,  1049,   773,   199,
-     199,   979,   199,   974,   998,   483,   992,   995,   533,  1006,
-    1027,   199,  1008,  1202,  1015,   982,   200,   980,   495,   991,
-     200,   199,    81,   985,   530,   983,   986,   199,   525,  1051,
-    1003,   743,   498,   988,   505,  1005,  1046,  1048,  1208,  1022,
-    1046,  1031,  1037,  1049,   730,  1049,   550,  1001,  1046,   692,
-     515,  1049,   687,  1244,  1041,  1223,  1264,    -1,   552,    -1,
-     556,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,
-      -1,    -1,    -1,    -1,  1208,    -1,  1202,    -1,    -1,    -1,
-    1202,    -1,  1208,    -1,  1202,    -1,    -1,    -1,    -1,  1223,
-    1208,    -1,    -1,    -1,    -1,    -1,    -1,  1223,    -1,  1164,
-    1202,    -1,  1202,    -1,    -1,  1223,    -1,    -1,  1208,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,
-    1202,  1202,    -1,    -1,  1202,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,
-    1202,    -1,    -1,    -1,    -1,    -1,  1208,    -1,    -1,    -1,
-      -1,    -1,  1202,    -1,    -1,  1202,  1202,  1202,  1202,    -1,
-      -1,  1223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1202,
-      -1,    -1,  1202,    -1,  1202,    -1,  1202,  1202,    -1,  1202,
-    1202,    -1,    -1,    -1,  1202,    -1,  1202,    -1,    -1,    -1,
-    1202,    -1,    -1,    -1,  1202
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       3,     3,     6,   197,   195,     4,     6,     8,     4,     4,
+       4,   197,     4,   195,     4,   195,     4,   195,     4,   195,
+     195,     4,   195,   197,   195,   195,   195,   195,     4,   195,
+       4,   195,   195,   195,   195,   946,   195,   197,   949,   195,
+       4,   952,   949,     4,   955,   952,   952,   946,   955,   946,
+       4,   946,   197,     4,   949,   966,   955,   952,   969,   966,
+     955,   972,   195,   946,   946,   952,   946,   946,     6,     3,
+       3,   966,   955,   955,   969,   955,   955,   988,   946,   946,
+     946,     4,   993,   946,     8,   946,   997,   955,   955,   955,
+     194,   946,   955,   988,   955,  1006,   194,   946,   993,  1006,
+     955,  1012,   997,   946,  1015,   946,   955,   946,  1003,   194,
+     949,  1006,   955,   952,   955,   194,   955,  1012,     8,   946,
+    1015,   194,     4,   946,   946,   194,   946,   966,   955,   194,
+     969,   946,   955,   955,   946,   955,   946,     8,   946,   966,
+     955,   194,   969,   955,     8,   955,   194,   955,   194,   988,
+     955,     4,   955,     4,   993,     4,     4,     7,   997,     5,
+       4,     4,     4,   194,  1003,   194,     4,  1006,     4,   687,
+     403,   658,   458,  1012,   194,   571,  1015,   649,   661,   741,
+     940,   945,   964,   958,   961,  1012,   972,   993,  1015,   974,
+     981,   948,   946,  1168,   957,  1014,   194,    77,   951,   512,
+     197,   504,   195,   194,   954,   194,   949,  1012,   195,  1012,
+    1015,   952,  1015,   197,   195,   194,   194,   509,  1174,  1012,
+    1017,   462,   971,  1015,   529,   711,   997,   969,   698,   967,
+     988,  1003,  1189,   660,  1210,   533,  1230,  1007,    -1,   474,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   484,    -1,    -1,    -1,    -1,  1168,    -1,    -1,
+      -1,  1168,    -1,  1174,   494,    -1,    -1,  1174,    -1,  1168,
+      -1,    -1,    -1,  1168,    -1,    -1,    -1,    -1,  1189,  1174,
+    1130,    -1,  1189,    -1,    -1,  1168,  1168,    -1,  1168,  1168,
+      -1,    -1,    -1,    -1,  1189,    -1,    -1,    -1,    -1,    -1,
+    1168,  1168,  1168,    -1,    -1,  1168,    -1,  1168,    -1,    -1,
+      -1,    -1,    -1,  1168,    -1,    -1,    -1,    -1,    -1,  1168,
+      -1,    -1,    -1,    -1,    -1,  1168,    -1,  1168,    -1,  1168,
+      -1,    -1,    -1,    -1,    -1,  1174,    -1,    -1,    -1,    -1,
+      -1,  1168,    -1,    -1,    -1,  1168,  1168,  1174,  1168,    -1,
+    1189,    -1,    -1,  1168,    -1,    -1,  1168,    -1,  1168,    -1,
+    1168,    -1,    -1,  1168,    -1,  1168
   };
 
   const short
   Dhcp6Parser::yystos_[] =
   {
-       0,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   204,   205,   206,   207,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
-     218,   219,     0,     5,     7,     9,   199,   200,   201,   202,
-     220,   221,   222,   227,     7,   236,     7,   242,     7,   281,
-       7,   387,     7,   464,     7,   480,     7,   497,     7,   416,
-       7,   422,     7,   446,     7,   363,     7,   566,     7,   612,
-       7,   603,   228,   223,   237,   243,   282,   388,   465,   481,
-     498,   417,   423,   447,   364,   567,   613,   604,   220,   229,
-     230,   199,   225,   226,    10,   171,   181,   182,   183,   199,
-     235,   238,   239,   240,   595,   597,   599,   610,    11,    12,
-      15,    18,    19,    20,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    86,
-      87,    93,    98,    99,   100,   101,   102,   104,   109,   118,
-     121,   128,   136,   137,   141,   144,   148,   169,   170,   172,
-     235,   244,   245,   246,   248,   249,   250,   251,   252,   253,
-     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
-     266,   268,   270,   272,   274,   275,   276,   277,   279,   288,
-     290,   292,   330,   336,   342,   348,   350,   357,   371,   381,
-     401,   406,   414,   440,   470,   472,   491,   521,   533,   545,
-     546,   554,   564,   601,   616,    16,    17,   235,   283,   284,
-     285,   287,   470,   472,    78,    80,    88,    89,    90,    91,
-      92,   105,   108,   116,   235,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   260,   261,   262,   263,
-     266,   268,   270,   272,   274,   389,   390,   391,   393,   395,
-     397,   399,   401,   404,   405,   440,   458,   470,   472,   474,
-     491,   516,    79,   235,   397,   399,   440,   466,   467,   468,
-     470,   472,    81,    82,    83,    84,    85,   235,   397,   399,
-     440,   470,   472,   482,   483,   484,   486,   487,   489,   490,
-     104,   110,   111,   112,   113,   114,   115,   235,   440,   470,
-     472,   499,   500,   501,   502,   504,   506,   508,   510,   512,
-     514,   414,    21,    69,    71,    72,    75,    76,    77,   235,
-     310,   424,   425,   426,   427,   428,   429,   430,   432,   434,
-     436,   437,   439,   470,   472,    70,    73,    74,   235,   310,
-     428,   434,   448,   449,   450,   451,   452,   454,   455,   456,
-     457,   470,   472,   119,   120,   235,   365,   366,   367,   369,
-     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   169,   170,   235,   470,   472,   568,   569,
-     570,   571,   573,   575,   576,   578,   579,   580,   583,   585,
-     586,   587,   589,   591,   593,   614,   615,   616,    13,    14,
-     605,   606,   607,   609,     6,     3,     4,     8,     3,   241,
-     611,   596,   598,   600,     4,     3,     8,   247,   602,   280,
-     289,   291,   293,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,   278,     4,     4,     4,     4,
-       4,   264,   267,   269,     4,   382,   415,   441,   471,   473,
-     402,   407,   337,   349,   343,   331,   522,   492,   358,   372,
-     534,     4,   351,   547,   555,   565,   271,   273,   617,     3,
-       8,   286,     4,     3,     8,   459,   475,   392,   394,   396,
-       4,     4,   400,   398,   517,     3,     8,   469,     3,     8,
-     485,     4,   488,     4,     4,     3,     8,   515,   503,   505,
-     507,   509,   511,   513,     8,     3,     8,   431,   311,     4,
-     435,   433,   438,     4,     8,     3,   453,     4,     4,     8,
-       3,   368,   370,     3,     8,     4,   572,   574,     4,   577,
-       4,     4,   581,   584,     4,     4,   588,   590,   592,   594,
-       3,     8,     3,     8,   608,     4,     3,     8,   220,   220,
-     199,     4,     4,     4,     4,     4,   239,     4,     4,     4,
-       4,     4,     4,   200,   200,   200,   200,   200,   200,   200,
-     200,   202,   201,   201,   200,     4,   200,   200,   202,   202,
-     202,     4,     4,     4,   202,     4,     4,     4,     4,     4,
+       0,   180,   181,   182,   183,   184,   185,   186,   187,   188,
+     189,   190,   191,   192,   193,   199,   200,   201,   202,   203,
+     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
+       0,     5,     7,     9,   194,   195,   196,   197,   214,   215,
+     216,   221,     7,   230,     7,   236,     7,   275,     7,   381,
+       7,   458,     7,   474,     7,   491,     7,   410,     7,   416,
+       7,   440,     7,   357,     7,   560,     7,   591,   222,   217,
+     231,   237,   276,   382,   459,   475,   492,   411,   417,   441,
+     358,   561,   592,   214,   223,   224,   194,   219,   220,    10,
+     232,   233,   234,    11,    12,    15,    18,    19,    20,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    86,    87,    93,    98,    99,   100,
+     101,   102,   104,   109,   118,   121,   128,   136,   137,   141,
+     144,   148,   169,   170,   171,   194,   229,   238,   239,   240,
+     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+     252,   253,   254,   255,   256,   257,   260,   262,   264,   266,
+     268,   269,   270,   271,   273,   282,   284,   286,   324,   330,
+     336,   342,   344,   351,   365,   375,   395,   400,   408,   434,
+     464,   466,   485,   515,   527,   539,   540,   548,   558,   589,
+     598,    16,    17,   229,   277,   278,   279,   281,   464,   466,
+      78,    80,    88,    89,    90,    91,    92,   105,   108,   116,
+     229,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     251,   252,   254,   255,   256,   257,   260,   262,   264,   266,
+     268,   383,   384,   385,   387,   389,   391,   393,   395,   398,
+     399,   434,   452,   464,   466,   468,   485,   510,    79,   229,
+     391,   393,   434,   460,   461,   462,   464,   466,    81,    82,
+      83,    84,    85,   229,   391,   393,   434,   464,   466,   476,
+     477,   478,   480,   481,   483,   484,   104,   110,   111,   112,
+     113,   114,   115,   229,   434,   464,   466,   493,   494,   495,
+     496,   498,   500,   502,   504,   506,   508,   408,    21,    69,
+      71,    72,    75,    76,    77,   229,   304,   418,   419,   420,
+     421,   422,   423,   424,   426,   428,   430,   431,   433,   464,
+     466,    70,    73,    74,   229,   304,   422,   428,   442,   443,
+     444,   445,   446,   448,   449,   450,   451,   464,   466,   119,
+     120,   229,   359,   360,   361,   363,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   169,
+     170,   229,   464,   466,   562,   563,   564,   565,   567,   569,
+     570,   572,   573,   574,   577,   579,   580,   581,   583,   585,
+     587,    13,    14,   593,   594,   595,   597,     6,     3,     4,
+       8,     3,   235,     3,     8,   241,   590,   274,   283,   285,
+     287,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,   272,     4,     4,     4,     4,     4,   258,
+     261,   263,     4,   376,   409,   435,   465,   467,   396,   401,
+     331,   343,   337,   325,   516,   486,   352,   366,   528,     4,
+     345,   541,   549,   559,   265,   267,   599,     4,     3,     8,
+     280,     4,     3,     8,   453,   469,   386,   388,   390,     4,
+       4,   394,   392,   511,     3,     8,   463,     3,     8,   479,
+       4,   482,     4,     4,     3,     8,   509,   497,   499,   501,
+     503,   505,   507,     8,     3,     8,   425,   305,     4,   429,
+     427,   432,     4,     8,     3,   447,     4,     4,     8,     3,
+     362,   364,     3,     8,     4,   566,   568,     4,   571,     4,
+       4,   575,   578,     4,     4,   582,   584,   586,   588,     3,
+       8,   596,     4,     3,     8,   214,   214,   194,     4,   233,
+       4,     4,     4,     4,     4,     4,   195,   195,   195,   195,
+     195,   195,   195,   195,   197,   196,   196,   195,     4,   195,
+     195,   197,   197,   197,     4,     4,     4,   197,     4,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   200,     4,     4,     4,     4,     4,     4,     4,   245,
-       4,   202,   284,     4,     4,     4,     4,     4,   200,   202,
-       4,     4,     4,   390,     4,   467,     4,   200,     4,   200,
-     200,   483,     4,     4,     4,     4,     4,     4,     4,   501,
-       4,     4,   200,     4,     4,     4,   202,   426,     4,   202,
-     202,   450,     4,     4,   366,   202,     4,     4,   200,     4,
-     200,   200,     4,     4,   202,   202,     4,     4,     4,     4,
-     569,   615,     4,   200,   606,     4,     7,     7,   220,   220,
-     220,   199,     7,     7,     7,     7,     5,   199,   165,   166,
-     167,   168,   202,   265,   199,   199,     5,     5,     5,   222,
-     224,   199,    94,    95,    96,    97,   403,     5,     5,     5,
-       5,     7,     5,     5,     5,     7,     7,     7,     7,     7,
-       7,   199,   199,     5,     5,   231,     5,     5,   199,   199,
-     199,   231,   199,     7,   199,   199,   199,   231,   231,   231,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   220,   199,   199,   199,   162,   163,   582,   164,   265,
-     199,   199,   199,     5,   220,   244,   614,   605,   283,    21,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,   235,   298,
-     299,   300,   303,   305,   307,   309,   310,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   323,   324,   326,
-     328,   298,     7,   294,   295,   296,     7,   383,   384,   385,
-       7,   418,   419,   420,     7,   442,   443,   444,     7,   408,
-     409,   410,   112,   199,   338,   339,   340,   341,   229,   113,
-     115,   340,   344,   345,   346,   347,   103,   332,   333,   334,
-       7,   523,   524,     7,   493,   494,   495,     7,   359,   360,
-     361,   122,   123,   124,   125,   126,   127,   373,   374,   375,
-     376,   377,   378,   379,   380,    21,   132,   133,   134,   135,
-     235,   312,   470,   472,   535,   536,   537,   540,   541,   543,
-     544,   138,   139,   140,   235,   352,   353,   354,   355,   356,
-     470,   472,   142,   143,   235,   470,   472,   548,   549,   550,
-     552,   145,   146,   147,   199,   470,   472,   556,   557,   558,
-     559,   561,   562,   568,     7,   618,   619,   232,     7,   460,
-     461,   462,     7,   476,   477,   478,   117,   502,   518,   519,
-     294,     8,     8,     8,     8,   301,   304,   306,   308,     4,
-       4,     4,     4,     4,   322,     4,     4,   325,   327,   329,
-       4,     4,     4,     4,     3,     8,     8,   297,     6,     3,
-     386,     6,     3,   421,     6,     3,   445,     6,     3,   411,
-       6,     3,     3,     6,     6,     3,     6,   335,     3,     8,
-     525,     3,     6,   496,     6,     3,   362,     6,     3,     4,
-       4,     4,     4,     4,     4,     3,     8,   538,   542,     4,
-       4,     4,     3,     8,     4,     4,     4,     3,     8,   551,
-     553,     3,     8,     4,   560,     4,   563,     3,     8,     8,
-     620,     3,     6,   199,   233,   234,   463,     6,     3,   479,
-       6,     3,   520,     8,     6,     4,     4,     4,     4,   200,
-     202,   200,   202,   200,     4,   200,   200,     4,     4,     4,
-     200,   200,   202,   200,   299,   298,   296,   389,   385,   424,
-     420,   448,   444,   235,   248,   249,   250,   251,   252,   253,
-     254,   255,   256,   257,   258,   260,   261,   262,   263,   266,
-     268,   270,   272,   274,   310,   381,   393,   395,   397,   399,
-     401,   405,   412,   413,   440,   470,   472,   516,   410,   339,
-     345,     4,   333,   106,   107,   235,   310,   440,   470,   472,
-     526,   527,   528,   529,   530,   532,   524,   499,   495,   365,
-     361,   200,   200,   200,   200,   200,   200,   374,     4,     4,
-     200,   200,   200,   536,   202,   200,   200,   353,     4,     4,
-     549,   202,     4,   200,     4,   557,   173,   175,   176,   235,
-     310,   470,   472,   621,   622,   623,   624,   626,   619,     6,
-       3,   466,   462,   482,   478,     4,    22,    23,    24,    25,
-     302,   199,   199,   199,   199,   199,   199,   199,     8,     8,
-       8,     8,     3,     8,   199,   531,     4,     8,     3,     8,
-       8,   129,   130,   131,   539,   199,   199,   199,   199,   220,
-     627,     4,   625,     3,     8,   199,     8,     8,   199,   413,
-       4,   202,   528,     4,   200,     4,   622,   199,     5,   199,
-       7,   628,   629,   630,     3,     6,   174,   177,   178,   179,
-     180,   631,   632,   633,   635,   636,   637,   638,   629,   634,
-       4,     4,     4,   639,     3,     8,     4,   202,   200,   200,
-       4,   632,   199,   199
+       4,     4,     4,     4,   195,     4,     4,     4,     4,     4,
+       4,     4,   239,     4,   197,   278,     4,     4,     4,     4,
+       4,   195,   197,     4,     4,     4,   384,     4,   461,     4,
+     195,     4,   195,   195,   477,     4,     4,     4,     4,     4,
+       4,     4,   495,     4,     4,   195,     4,     4,     4,   197,
+     420,     4,   197,   197,   444,     4,     4,   360,   197,     4,
+       4,   195,     4,   195,   195,     4,     4,   197,   197,     4,
+       4,     4,     4,   563,     4,   195,   594,     4,     7,   194,
+       7,     7,     7,     7,     5,   194,   165,   166,   167,   168,
+     197,   259,   194,   194,     5,     5,     5,   216,   218,   194,
+      94,    95,    96,    97,   397,     5,     5,     5,     5,     7,
+       5,     5,     5,     7,     7,     7,     7,     7,     7,   194,
+     194,     5,     5,   225,     5,     5,   194,   194,   194,   225,
+     194,     7,   194,   194,   194,   225,   225,   225,   194,   194,
+     194,   194,   194,   194,   194,   194,   194,   194,   194,   214,
+     194,   194,   194,   162,   163,   576,   164,   259,   194,   194,
+     194,     5,   214,   238,   593,   277,    21,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,   229,   292,   293,   294,   297,
+     299,   301,   303,   304,   306,   307,   308,   309,   310,   311,
+     312,   313,   314,   315,   317,   318,   320,   322,   292,     7,
+     288,   289,   290,     7,   377,   378,   379,     7,   412,   413,
+     414,     7,   436,   437,   438,     7,   402,   403,   404,   112,
+     194,   332,   333,   334,   335,   223,   113,   115,   334,   338,
+     339,   340,   341,   103,   326,   327,   328,     7,   517,   518,
+       7,   487,   488,   489,     7,   353,   354,   355,   122,   123,
+     124,   125,   126,   127,   367,   368,   369,   370,   371,   372,
+     373,   374,    21,   132,   133,   134,   135,   229,   306,   464,
+     466,   529,   530,   531,   534,   535,   537,   538,   138,   139,
+     140,   229,   346,   347,   348,   349,   350,   464,   466,   142,
+     143,   229,   464,   466,   542,   543,   544,   546,   145,   146,
+     147,   194,   464,   466,   550,   551,   552,   553,   555,   556,
+     562,     7,   600,   601,   226,     7,   454,   455,   456,     7,
+     470,   471,   472,   117,   496,   512,   513,   288,     8,     8,
+       8,   295,   298,   300,   302,     4,     4,     4,     4,     4,
+     316,     4,     4,   319,   321,   323,     4,     4,     4,     4,
+       3,     8,     8,   291,     6,     3,   380,     6,     3,   415,
+       6,     3,   439,     6,     3,   405,     6,     3,     3,     6,
+       6,     3,     6,   329,     3,     8,   519,     3,     6,   490,
+       6,     3,   356,     6,     3,     4,     4,     4,     4,     4,
+       4,     3,     8,   532,   536,     4,     4,     4,     3,     8,
+       4,     4,     4,     3,     8,   545,   547,     3,     8,     4,
+     554,     4,   557,     3,     8,     8,   602,     3,     6,   194,
+     227,   228,   457,     6,     3,   473,     6,     3,   514,     8,
+       6,     4,     4,     4,     4,   195,   197,   195,   197,   195,
+       4,   195,   195,     4,     4,     4,   195,   195,   197,   195,
+     293,   292,   290,   383,   379,   418,   414,   442,   438,   229,
+     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+     252,   254,   255,   256,   257,   260,   262,   264,   266,   268,
+     304,   375,   387,   389,   391,   393,   395,   399,   406,   407,
+     434,   464,   466,   510,   404,   333,   339,     4,   327,   106,
+     107,   229,   304,   434,   464,   466,   520,   521,   522,   523,
+     524,   526,   518,   493,   489,   359,   355,   195,   195,   195,
+     195,   195,   195,   368,     4,     4,   195,   195,   195,   530,
+     197,   195,   195,   347,     4,     4,   543,   197,     4,   195,
+       4,   551,   172,   174,   175,   229,   304,   464,   466,   603,
+     604,   605,   606,   608,   601,     6,     3,   460,   456,   476,
+     472,     4,    22,    23,    24,    25,   296,   194,   194,   194,
+     194,   194,   194,   194,     8,     8,     8,     8,     3,     8,
+     194,   525,     4,     8,     3,     8,     8,   129,   130,   131,
+     533,   194,   194,   194,   194,   214,   609,     4,   607,     3,
+       8,   194,     8,     8,   194,   407,     4,   197,   522,     4,
+     195,     4,   604,   194,     5,   194,     7,   610,   611,   612,
+       3,     6,   173,   176,   177,   178,   179,   613,   614,   615,
+     617,   618,   619,   620,   611,   616,     4,     4,     4,   621,
+       3,     8,     4,   197,   195,   195,     4,   614,   194,   194
   };
 
   const short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   203,   205,   204,   206,   204,   207,   204,   208,   204,
-     209,   204,   210,   204,   211,   204,   212,   204,   213,   204,
-     214,   204,   215,   204,   216,   204,   217,   204,   218,   204,
-     219,   204,   220,   220,   220,   220,   220,   220,   220,   221,
-     223,   222,   224,   225,   225,   226,   226,   228,   227,   229,
-     229,   230,   230,   232,   231,   233,   233,   234,   234,   235,
-     237,   236,   238,   238,   239,   239,   239,   239,   239,   239,
-     241,   240,   243,   242,   244,   244,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   247,
-     246,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   264,   263,   265,   265,
-     265,   265,   265,   267,   266,   269,   268,   271,   270,   273,
-     272,   274,   275,   276,   278,   277,   280,   279,   282,   281,
-     283,   283,   284,   284,   284,   284,   284,   286,   285,   287,
-     289,   288,   291,   290,   293,   292,   294,   294,   295,   295,
-     297,   296,   298,   298,   299,   299,   299,   299,   299,   299,
-     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
-     299,   299,   299,   299,   299,   301,   300,   302,   302,   302,
-     302,   304,   303,   306,   305,   308,   307,   309,   311,   310,
-     312,   313,   314,   315,   316,   317,   318,   319,   320,   322,
-     321,   323,   325,   324,   327,   326,   329,   328,   331,   330,
-     332,   332,   333,   335,   334,   337,   336,   338,   338,   339,
-     339,   340,   341,   343,   342,   344,   344,   345,   345,   345,
-     346,   347,   349,   348,   351,   350,   352,   352,   353,   353,
-     353,   353,   353,   353,   354,   355,   356,   358,   357,   359,
-     359,   360,   360,   362,   361,   364,   363,   365,   365,   365,
-     366,   366,   368,   367,   370,   369,   372,   371,   373,   373,
-     374,   374,   374,   374,   374,   374,   375,   376,   377,   378,
-     379,   380,   382,   381,   383,   383,   384,   384,   386,   385,
-     388,   387,   389,   389,   390,   390,   390,   390,   390,   390,
-     390,   390,   390,   390,   390,   390,   390,   390,   390,   390,
-     390,   390,   390,   390,   390,   390,   390,   390,   390,   390,
-     390,   390,   390,   390,   390,   390,   390,   390,   390,   390,
-     392,   391,   394,   393,   396,   395,   398,   397,   400,   399,
-     402,   401,   403,   403,   403,   403,   404,   405,   407,   406,
-     408,   408,   409,   409,   411,   410,   412,   412,   413,   413,
-     413,   413,   413,   413,   413,   413,   413,   413,   413,   413,
-     413,   413,   413,   413,   413,   413,   413,   413,   413,   413,
-     413,   413,   413,   413,   413,   413,   413,   413,   413,   413,
-     413,   415,   414,   417,   416,   418,   418,   419,   419,   421,
-     420,   423,   422,   424,   424,   425,   425,   426,   426,   426,
-     426,   426,   426,   426,   426,   426,   426,   427,   428,   429,
-     431,   430,   433,   432,   435,   434,   436,   438,   437,   439,
-     441,   440,   442,   442,   443,   443,   445,   444,   447,   446,
-     448,   448,   449,   449,   450,   450,   450,   450,   450,   450,
-     450,   450,   450,   451,   453,   452,   454,   455,   456,   457,
-     459,   458,   460,   460,   461,   461,   463,   462,   465,   464,
-     466,   466,   467,   467,   467,   467,   467,   467,   467,   469,
-     468,   471,   470,   473,   472,   475,   474,   476,   476,   477,
-     477,   479,   478,   481,   480,   482,   482,   483,   483,   483,
-     483,   483,   483,   483,   483,   483,   483,   483,   485,   484,
-     486,   488,   487,   489,   490,   492,   491,   493,   493,   494,
-     494,   496,   495,   498,   497,   499,   499,   500,   500,   501,
-     501,   501,   501,   501,   501,   501,   501,   501,   501,   501,
-     503,   502,   505,   504,   507,   506,   509,   508,   511,   510,
-     513,   512,   515,   514,   517,   516,   518,   518,   520,   519,
-     522,   521,   523,   523,   525,   524,   526,   526,   527,   527,
-     528,   528,   528,   528,   528,   528,   528,   529,   531,   530,
-     532,   534,   533,   535,   535,   536,   536,   536,   536,   536,
-     536,   536,   536,   536,   538,   537,   539,   539,   539,   540,
-     542,   541,   543,   544,   545,   547,   546,   548,   548,   549,
-     549,   549,   549,   549,   551,   550,   553,   552,   555,   554,
-     556,   556,   557,   557,   557,   557,   557,   557,   558,   560,
-     559,   561,   563,   562,   565,   564,   567,   566,   568,   568,
-     569,   569,   569,   569,   569,   569,   569,   569,   569,   569,
-     569,   569,   569,   569,   569,   569,   569,   569,   570,   572,
-     571,   574,   573,   575,   577,   576,   578,   579,   581,   580,
-     582,   582,   584,   583,   585,   586,   588,   587,   590,   589,
-     592,   591,   594,   593,   596,   595,   598,   597,   600,   599,
-     602,   601,   604,   603,   605,   605,   606,   606,   608,   607,
-     609,   611,   610,   613,   612,   614,   614,   615,   617,   616,
-     618,   618,   620,   619,   621,   621,   622,   622,   622,   622,
-     622,   622,   622,   623,   625,   624,   627,   626,   628,   628,
-     630,   629,   631,   631,   632,   632,   632,   632,   632,   634,
-     633,   635,   636,   637,   639,   638
+       0,   198,   200,   199,   201,   199,   202,   199,   203,   199,
+     204,   199,   205,   199,   206,   199,   207,   199,   208,   199,
+     209,   199,   210,   199,   211,   199,   212,   199,   213,   199,
+     214,   214,   214,   214,   214,   214,   214,   215,   217,   216,
+     218,   219,   219,   220,   220,   222,   221,   223,   223,   224,
+     224,   226,   225,   227,   227,   228,   228,   229,   231,   230,
+     232,   232,   233,   235,   234,   237,   236,   238,   238,   239,
+     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   241,   240,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   258,
+     257,   259,   259,   259,   259,   259,   261,   260,   263,   262,
+     265,   264,   267,   266,   268,   269,   270,   272,   271,   274,
+     273,   276,   275,   277,   277,   278,   278,   278,   278,   278,
+     280,   279,   281,   283,   282,   285,   284,   287,   286,   288,
+     288,   289,   289,   291,   290,   292,   292,   293,   293,   293,
+     293,   293,   293,   293,   293,   293,   293,   293,   293,   293,
+     293,   293,   293,   293,   293,   293,   293,   293,   295,   294,
+     296,   296,   296,   296,   298,   297,   300,   299,   302,   301,
+     303,   305,   304,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   316,   315,   317,   319,   318,   321,   320,   323,
+     322,   325,   324,   326,   326,   327,   329,   328,   331,   330,
+     332,   332,   333,   333,   334,   335,   337,   336,   338,   338,
+     339,   339,   339,   340,   341,   343,   342,   345,   344,   346,
+     346,   347,   347,   347,   347,   347,   347,   348,   349,   350,
+     352,   351,   353,   353,   354,   354,   356,   355,   358,   357,
+     359,   359,   359,   360,   360,   362,   361,   364,   363,   366,
+     365,   367,   367,   368,   368,   368,   368,   368,   368,   369,
+     370,   371,   372,   373,   374,   376,   375,   377,   377,   378,
+     378,   380,   379,   382,   381,   383,   383,   384,   384,   384,
+     384,   384,   384,   384,   384,   384,   384,   384,   384,   384,
+     384,   384,   384,   384,   384,   384,   384,   384,   384,   384,
+     384,   384,   384,   384,   384,   384,   384,   384,   384,   384,
+     384,   384,   384,   386,   385,   388,   387,   390,   389,   392,
+     391,   394,   393,   396,   395,   397,   397,   397,   397,   398,
+     399,   401,   400,   402,   402,   403,   403,   405,   404,   406,
+     406,   407,   407,   407,   407,   407,   407,   407,   407,   407,
+     407,   407,   407,   407,   407,   407,   407,   407,   407,   407,
+     407,   407,   407,   407,   407,   407,   407,   407,   407,   407,
+     407,   407,   407,   407,   409,   408,   411,   410,   412,   412,
+     413,   413,   415,   414,   417,   416,   418,   418,   419,   419,
+     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
+     421,   422,   423,   425,   424,   427,   426,   429,   428,   430,
+     432,   431,   433,   435,   434,   436,   436,   437,   437,   439,
+     438,   441,   440,   442,   442,   443,   443,   444,   444,   444,
+     444,   444,   444,   444,   444,   444,   445,   447,   446,   448,
+     449,   450,   451,   453,   452,   454,   454,   455,   455,   457,
+     456,   459,   458,   460,   460,   461,   461,   461,   461,   461,
+     461,   461,   463,   462,   465,   464,   467,   466,   469,   468,
+     470,   470,   471,   471,   473,   472,   475,   474,   476,   476,
+     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
+     477,   479,   478,   480,   482,   481,   483,   484,   486,   485,
+     487,   487,   488,   488,   490,   489,   492,   491,   493,   493,
+     494,   494,   495,   495,   495,   495,   495,   495,   495,   495,
+     495,   495,   495,   497,   496,   499,   498,   501,   500,   503,
+     502,   505,   504,   507,   506,   509,   508,   511,   510,   512,
+     512,   514,   513,   516,   515,   517,   517,   519,   518,   520,
+     520,   521,   521,   522,   522,   522,   522,   522,   522,   522,
+     523,   525,   524,   526,   528,   527,   529,   529,   530,   530,
+     530,   530,   530,   530,   530,   530,   530,   532,   531,   533,
+     533,   533,   534,   536,   535,   537,   538,   539,   541,   540,
+     542,   542,   543,   543,   543,   543,   543,   545,   544,   547,
+     546,   549,   548,   550,   550,   551,   551,   551,   551,   551,
+     551,   552,   554,   553,   555,   557,   556,   559,   558,   561,
+     560,   562,   562,   563,   563,   563,   563,   563,   563,   563,
+     563,   563,   563,   563,   563,   563,   563,   563,   563,   563,
+     563,   564,   566,   565,   568,   567,   569,   571,   570,   572,
+     573,   575,   574,   576,   576,   578,   577,   579,   580,   582,
+     581,   584,   583,   586,   585,   588,   587,   590,   589,   592,
+     591,   593,   593,   594,   594,   596,   595,   597,   599,   598,
+     600,   600,   602,   601,   603,   603,   604,   604,   604,   604,
+     604,   604,   604,   605,   607,   606,   609,   608,   610,   610,
+     612,   611,   613,   613,   614,   614,   614,   614,   614,   616,
+     615,   617,   618,   619,   621,   620
   };
 
   const signed char
@@ -5333,78 +5214,76 @@ namespace isc { namespace dhcp {
        0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
-       0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     4,     1,     0,     1,     3,     5,     0,     4,     0,
-       1,     1,     3,     0,     4,     0,     1,     1,     3,     2,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
-       0,     6,     0,     4,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       1,     0,     1,     3,     5,     0,     4,     0,     1,     1,
+       3,     0,     4,     0,     1,     1,     3,     2,     0,     4,
+       1,     3,     1,     0,     6,     0,     4,     1,     3,     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,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     0,     4,     1,     1,
-       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
-       4,     3,     3,     3,     0,     4,     0,     6,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     0,     4,     3,
-       0,     6,     0,     6,     0,     6,     0,     1,     1,     3,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     0,     4,     1,     1,     1,
-       1,     0,     4,     0,     4,     0,     4,     3,     0,     4,
+       1,     1,     0,     4,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     0,
-       4,     3,     0,     4,     0,     4,     0,     4,     0,     6,
-       1,     3,     1,     0,     4,     0,     6,     1,     3,     1,
-       1,     1,     1,     0,     6,     1,     3,     1,     1,     1,
-       1,     1,     0,     6,     0,     6,     1,     3,     1,     1,
-       1,     1,     1,     1,     3,     3,     3,     0,     6,     0,
-       1,     1,     3,     0,     4,     0,     4,     1,     3,     1,
-       1,     1,     0,     4,     0,     4,     0,     6,     1,     3,
-       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
-       3,     3,     0,     6,     0,     1,     1,     3,     0,     4,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
+       4,     1,     1,     1,     1,     1,     0,     4,     0,     4,
+       0,     4,     0,     4,     3,     3,     3,     0,     4,     0,
+       6,     0,     4,     1,     3,     1,     1,     1,     1,     1,
+       0,     4,     3,     0,     6,     0,     6,     0,     6,     0,
+       1,     1,     3,     0,     4,     1,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
+       3,     0,     4,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     0,     4,     3,     0,     4,     0,     4,     0,
+       4,     0,     6,     1,     3,     1,     0,     4,     0,     6,
+       1,     3,     1,     1,     1,     1,     0,     6,     1,     3,
+       1,     1,     1,     1,     1,     0,     6,     0,     6,     1,
+       3,     1,     1,     1,     1,     1,     1,     3,     3,     3,
+       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
+       1,     3,     1,     1,     1,     0,     4,     0,     4,     0,
+       6,     1,     3,     1,     1,     1,     1,     1,     1,     3,
+       3,     3,     3,     3,     3,     0,     6,     0,     1,     1,
+       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     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,     1,     1,     1,     1,     3,     3,     0,     6,
-       0,     1,     1,     3,     0,     4,     1,     3,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     4,     1,     1,     1,     1,     3,
+       3,     0,     6,     0,     1,     1,     3,     0,     4,     1,
+       3,     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,     0,     4,     0,     4,     0,     1,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     6,     0,     4,     0,     1,     1,     3,     0,
+       1,     3,     1,     0,     4,     0,     4,     0,     4,     1,
+       0,     4,     3,     0,     6,     0,     1,     1,     3,     0,
        4,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
-       0,     4,     0,     4,     0,     4,     1,     0,     4,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       0,     1,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     1,     1,     3,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     0,     4,     0,     4,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       3,     0,     4,     3,     3,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     0,     1,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
+       1,     3,     3,     0,     6,     0,     1,     1,     3,     0,
+       4,     0,     4,     1,     3,     1,     1,     1,     1,     1,
+       1,     1,     0,     4,     0,     4,     0,     4,     0,     6,
+       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
        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,     6,     1,     1,     0,     4,
-       0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     1,     1,     1,     3,
-       0,     4,     3,     3,     3,     0,     6,     1,     3,     1,
-       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
-       1,     3,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     3,     0,     4,     0,     6,     0,     4,     1,     3,
+       1,     0,     4,     3,     0,     4,     3,     3,     0,     6,
+       0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     4,     0,     4,     0,     6,     1,
+       1,     0,     4,     0,     6,     1,     3,     0,     4,     0,
+       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     3,     0,     6,     1,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
+       1,     1,     3,     0,     4,     3,     3,     3,     0,     6,
+       1,     3,     1,     1,     1,     1,     1,     0,     4,     0,
+       4,     0,     6,     1,     3,     1,     1,     1,     1,     1,
+       1,     3,     0,     4,     3,     0,     4,     0,     6,     0,
+       4,     1,     3,     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,     3,     0,
-       4,     0,     4,     3,     0,     4,     3,     3,     0,     4,
-       1,     1,     0,     4,     3,     3,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     6,     0,     4,     1,     3,     1,     1,     0,     6,
-       3,     0,     6,     0,     4,     1,     3,     1,     0,     6,
+       1,     3,     0,     4,     0,     4,     3,     0,     4,     3,
+       3,     0,     4,     1,     1,     0,     4,     3,     3,     0,
+       4,     0,     4,     0,     4,     0,     4,     0,     6,     0,
+       4,     1,     3,     1,     1,     0,     6,     3,     0,     6,
        1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
        1,     1,     1,     3,     0,     4,     0,     6,     1,     3,
        0,     4,     1,     3,     1,     1,     1,     1,     1,     0,
@@ -5470,120 +5349,118 @@ namespace isc { namespace dhcp {
   "\"replace-client-name\"", "\"generated-prefix\"", "\"UDP\"", "\"TCP\"",
   "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"",
   "\"when-not-present\"", "\"hostname-char-set\"",
-  "\"hostname-char-replacement\"", "\"Logging\"", "\"loggers\"",
-  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
-  "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "\"Dhcp4\"",
-  "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6",
-  "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6",
-  "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
-  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING",
-  "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"",
-  "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2",
-  "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12",
-  "$@13", "$@14", "$@15", "value", "sub_json", "map2", "$@16", "map_value",
-  "map_content", "not_empty_map", "list_generic", "$@17", "list_content",
-  "not_empty_list", "list_strings", "$@18", "list_strings_content",
-  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@19",
-  "global_objects", "global_object", "dhcp6_object", "$@20", "sub_dhcp6",
-  "$@21", "global_params", "global_param", "data_directory", "$@22",
-  "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", "decline_probation_period", "ddns_send_updates",
+  "\"hostname-char-replacement\"", "\"loggers\"", "\"output_options\"",
+  "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"",
+  "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON",
+  "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6",
+  "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS",
+  "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY",
+  "SUB_DHCP_DDNS", "SUB_CONFIG_CONTROL", "\"constant string\"",
+  "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start",
+  "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10",
+  "$@11", "$@12", "$@13", "$@14", "value", "sub_json", "map2", "$@15",
+  "map_value", "map_content", "not_empty_map", "list_generic", "$@16",
+  "list_content", "not_empty_list", "list_strings", "$@17",
+  "list_strings_content", "not_empty_list_strings", "unknown_map_entry",
+  "syntax_map", "$@18", "global_objects", "global_object", "dhcp6_object",
+  "$@19", "sub_dhcp6", "$@20", "global_params", "global_param",
+  "data_directory", "$@21", "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",
+  "decline_probation_period", "ddns_send_updates",
   "ddns_override_no_update", "ddns_override_client_update",
-  "ddns_replace_client_name", "$@23", "ddns_replace_client_name_value",
-  "ddns_generated_prefix", "$@24", "ddns_qualifying_suffix", "$@25",
-  "hostname_char_set", "$@26", "hostname_char_replacement", "$@27",
+  "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value",
+  "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24",
+  "hostname_char_set", "$@25", "hostname_char_replacement", "$@26",
   "store_extended_info", "statistic_default_sample_count",
-  "statistic_default_sample_age", "server_tag", "$@28",
-  "interfaces_config", "$@29", "sub_interfaces6", "$@30",
+  "statistic_default_sample_age", "server_tag", "$@27",
+  "interfaces_config", "$@28", "sub_interfaces6", "$@29",
   "interfaces_config_params", "interfaces_config_param", "interfaces_list",
-  "$@31", "re_detect", "lease_database", "$@32", "hosts_database", "$@33",
-  "hosts_databases", "$@34", "database_list", "not_empty_database_list",
-  "database", "$@35", "database_map_params", "database_map_param",
-  "database_type", "$@36", "db_type", "user", "$@37", "password", "$@38",
-  "host", "$@39", "port", "name", "$@40", "persist", "lfc_interval",
+  "$@30", "re_detect", "lease_database", "$@31", "hosts_database", "$@32",
+  "hosts_databases", "$@33", "database_list", "not_empty_database_list",
+  "database", "$@34", "database_map_params", "database_map_param",
+  "database_type", "$@35", "db_type", "user", "$@36", "password", "$@37",
+  "host", "$@38", "port", "name", "$@39", "persist", "lfc_interval",
   "readonly", "connect_timeout", "reconnect_wait_time", "max_row_errors",
   "request_timeout", "tcp_keepalive", "tcp_nodelay", "contact_points",
-  "$@41", "max_reconnect_tries", "keyspace", "$@42", "consistency", "$@43",
-  "serial_consistency", "$@44", "sanity_checks", "$@45",
-  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@46",
-  "mac_sources", "$@47", "mac_sources_list", "mac_sources_value",
-  "duid_id", "string_id", "host_reservation_identifiers", "$@48",
+  "$@40", "max_reconnect_tries", "keyspace", "$@41", "consistency", "$@42",
+  "serial_consistency", "$@43", "sanity_checks", "$@44",
+  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@45",
+  "mac_sources", "$@46", "mac_sources_list", "mac_sources_value",
+  "duid_id", "string_id", "host_reservation_identifiers", "$@47",
   "host_reservation_identifiers_list", "host_reservation_identifier",
-  "hw_address_id", "flex_id", "relay_supplied_options", "$@49",
-  "dhcp_multi_threading", "$@50", "multi_threading_params",
+  "hw_address_id", "flex_id", "relay_supplied_options", "$@48",
+  "dhcp_multi_threading", "$@49", "multi_threading_params",
   "multi_threading_param", "enable_multi_threading", "thread_pool_size",
-  "packet_queue_size", "hooks_libraries", "$@51", "hooks_libraries_list",
-  "not_empty_hooks_libraries_list", "hooks_library", "$@52",
-  "sub_hooks_library", "$@53", "hooks_params", "hooks_param", "library",
-  "$@54", "parameters", "$@55", "expired_leases_processing", "$@56",
+  "packet_queue_size", "hooks_libraries", "$@50", "hooks_libraries_list",
+  "not_empty_hooks_libraries_list", "hooks_library", "$@51",
+  "sub_hooks_library", "$@52", "hooks_params", "hooks_param", "library",
+  "$@53", "parameters", "$@54", "expired_leases_processing", "$@55",
   "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", "$@57",
-  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@58",
-  "sub_subnet6", "$@59", "subnet6_params", "subnet6_param", "subnet",
-  "$@60", "interface", "$@61", "interface_id", "$@62", "client_class",
-  "$@63", "require_client_classes", "$@64", "reservation_mode", "$@65",
-  "hr_mode", "id", "rapid_commit", "shared_networks", "$@66",
+  "unwarned_reclaim_cycles", "subnet6_list", "$@56",
+  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@57",
+  "sub_subnet6", "$@58", "subnet6_params", "subnet6_param", "subnet",
+  "$@59", "interface", "$@60", "interface_id", "$@61", "client_class",
+  "$@62", "require_client_classes", "$@63", "reservation_mode", "$@64",
+  "hr_mode", "id", "rapid_commit", "shared_networks", "$@65",
   "shared_networks_content", "shared_networks_list", "shared_network",
-  "$@67", "shared_network_params", "shared_network_param",
-  "option_def_list", "$@68", "sub_option_def_list", "$@69",
+  "$@66", "shared_network_params", "shared_network_param",
+  "option_def_list", "$@67", "sub_option_def_list", "$@68",
   "option_def_list_content", "not_empty_option_def_list",
-  "option_def_entry", "$@70", "sub_option_def", "$@71",
+  "option_def_entry", "$@69", "sub_option_def", "$@70",
   "option_def_params", "not_empty_option_def_params", "option_def_param",
-  "option_def_name", "code", "option_def_code", "option_def_type", "$@72",
-  "option_def_record_types", "$@73", "space", "$@74", "option_def_space",
-  "option_def_encapsulate", "$@75", "option_def_array", "option_data_list",
-  "$@76", "option_data_list_content", "not_empty_option_data_list",
-  "option_data_entry", "$@77", "sub_option_data", "$@78",
+  "option_def_name", "code", "option_def_code", "option_def_type", "$@71",
+  "option_def_record_types", "$@72", "space", "$@73", "option_def_space",
+  "option_def_encapsulate", "$@74", "option_def_array", "option_data_list",
+  "$@75", "option_data_list_content", "not_empty_option_data_list",
+  "option_data_entry", "$@76", "sub_option_data", "$@77",
   "option_data_params", "not_empty_option_data_params",
-  "option_data_param", "option_data_name", "option_data_data", "$@79",
+  "option_data_param", "option_data_name", "option_data_data", "$@78",
   "option_data_code", "option_data_space", "option_data_csv_format",
-  "option_data_always_send", "pools_list", "$@80", "pools_list_content",
-  "not_empty_pools_list", "pool_list_entry", "$@81", "sub_pool6", "$@82",
-  "pool_params", "pool_param", "pool_entry", "$@83", "user_context",
-  "$@84", "comment", "$@85", "pd_pools_list", "$@86",
+  "option_data_always_send", "pools_list", "$@79", "pools_list_content",
+  "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool6", "$@81",
+  "pool_params", "pool_param", "pool_entry", "$@82", "user_context",
+  "$@83", "comment", "$@84", "pd_pools_list", "$@85",
   "pd_pools_list_content", "not_empty_pd_pools_list", "pd_pool_entry",
-  "$@87", "sub_pd_pool", "$@88", "pd_pool_params", "pd_pool_param",
-  "pd_prefix", "$@89", "pd_prefix_len", "excluded_prefix", "$@90",
-  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@91",
+  "$@86", "sub_pd_pool", "$@87", "pd_pool_params", "pd_pool_param",
+  "pd_prefix", "$@88", "pd_prefix_len", "excluded_prefix", "$@89",
+  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@90",
   "reservations_list", "not_empty_reservations_list", "reservation",
-  "$@92", "sub_reservation", "$@93", "reservation_params",
+  "$@91", "sub_reservation", "$@92", "reservation_params",
   "not_empty_reservation_params", "reservation_param", "ip_addresses",
-  "$@94", "prefixes", "$@95", "duid", "$@96", "hw_address", "$@97",
-  "hostname", "$@98", "flex_id_value", "$@99",
-  "reservation_client_classes", "$@100", "relay", "$@101", "relay_map",
-  "ip_address", "$@102", "client_classes", "$@103", "client_classes_list",
-  "client_class_entry", "$@104", "client_class_params",
+  "$@93", "prefixes", "$@94", "duid", "$@95", "hw_address", "$@96",
+  "hostname", "$@97", "flex_id_value", "$@98",
+  "reservation_client_classes", "$@99", "relay", "$@100", "relay_map",
+  "ip_address", "$@101", "client_classes", "$@102", "client_classes_list",
+  "client_class_entry", "$@103", "client_class_params",
   "not_empty_client_class_params", "client_class_param",
-  "client_class_name", "client_class_test", "$@105", "only_if_required",
-  "server_id", "$@106", "server_id_params", "server_id_param",
-  "server_id_type", "$@107", "duid_type", "htype", "identifier", "$@108",
-  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@109",
-  "control_socket_params", "control_socket_param", "socket_type", "$@110",
-  "socket_name", "$@111", "dhcp_queue_control", "$@112",
+  "client_class_name", "client_class_test", "$@104", "only_if_required",
+  "server_id", "$@105", "server_id_params", "server_id_param",
+  "server_id_type", "$@106", "duid_type", "htype", "identifier", "$@107",
+  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@108",
+  "control_socket_params", "control_socket_param", "socket_type", "$@109",
+  "socket_name", "$@110", "dhcp_queue_control", "$@111",
   "queue_control_params", "queue_control_param", "enable_queue",
-  "queue_type", "$@113", "capacity", "arbitrary_map_entry", "$@114",
-  "dhcp_ddns", "$@115", "sub_dhcp_ddns", "$@116", "dhcp_ddns_params",
-  "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@117",
-  "server_ip", "$@118", "server_port", "sender_ip", "$@119", "sender_port",
-  "max_queue_size", "ncr_protocol", "$@120", "ncr_protocol_value",
-  "ncr_format", "$@121", "dep_override_no_update",
-  "dep_override_client_update", "dep_replace_client_name", "$@122",
-  "dep_generated_prefix", "$@123", "dep_hostname_char_set", "$@124",
-  "dep_hostname_char_replacement", "$@125", "dhcp4_json_object", "$@126",
-  "dhcpddns_json_object", "$@127", "control_agent_json_object", "$@128",
-  "config_control", "$@129", "sub_config_control", "$@130",
-  "config_control_params", "config_control_param", "config_databases",
-  "$@131", "config_fetch_wait_time", "logging_object", "$@132",
-  "sub_logging", "$@133", "logging_params", "logging_param", "loggers",
-  "$@134", "loggers_entries", "logger_entry", "$@135", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@136", "output_options_list",
-  "$@137", "output_options_list_content", "output_entry", "$@138",
-  "output_params_list", "output_params", "output", "$@139", "flush",
-  "maxsize", "maxver", "pattern", "$@140", YY_NULLPTR
+  "queue_type", "$@112", "capacity", "arbitrary_map_entry", "$@113",
+  "dhcp_ddns", "$@114", "sub_dhcp_ddns", "$@115", "dhcp_ddns_params",
+  "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@116",
+  "server_ip", "$@117", "server_port", "sender_ip", "$@118", "sender_port",
+  "max_queue_size", "ncr_protocol", "$@119", "ncr_protocol_value",
+  "ncr_format", "$@120", "dep_override_no_update",
+  "dep_override_client_update", "dep_replace_client_name", "$@121",
+  "dep_generated_prefix", "$@122", "dep_hostname_char_set", "$@123",
+  "dep_hostname_char_replacement", "$@124", "config_control", "$@125",
+  "sub_config_control", "$@126", "config_control_params",
+  "config_control_param", "config_databases", "$@127",
+  "config_fetch_wait_time", "loggers", "$@128", "loggers_entries",
+  "logger_entry", "$@129", "logger_params", "logger_param", "debuglevel",
+  "severity", "$@130", "output_options_list", "$@131",
+  "output_options_list_content", "output_entry", "$@132",
+  "output_params_list", "output_params", "output", "$@133", "flush",
+  "maxsize", "maxver", "pattern", "$@134", YY_NULLPTR
   };
 #endif
 
@@ -5592,85 +5469,83 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   289,   289,   289,   290,   290,   291,   291,   292,   292,
-     293,   293,   294,   294,   295,   295,   296,   296,   297,   297,
-     298,   298,   299,   299,   300,   300,   301,   301,   302,   302,
-     303,   303,   311,   312,   313,   314,   315,   316,   317,   320,
-     325,   325,   336,   339,   340,   343,   347,   354,   354,   361,
-     362,   365,   369,   376,   376,   383,   384,   387,   391,   402,
-     412,   412,   428,   429,   433,   434,   435,   436,   437,   438,
-     441,   441,   456,   456,   465,   466,   471,   472,   473,   474,
-     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
-     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
-     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
-     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
-     515,   516,   517,   518,   519,   520,   521,   522,   523,   526,
-     526,   534,   539,   544,   549,   554,   559,   564,   569,   574,
-     579,   584,   589,   594,   599,   604,   609,   609,   617,   620,
-     623,   626,   629,   635,   635,   643,   643,   651,   651,   659,
-     659,   667,   672,   677,   682,   682,   690,   690,   701,   701,
-     710,   711,   714,   715,   716,   717,   718,   721,   721,   731,
-     736,   736,   748,   748,   760,   760,   770,   771,   774,   775,
-     778,   778,   788,   789,   792,   793,   794,   795,   796,   797,
-     798,   799,   800,   801,   802,   803,   804,   805,   806,   807,
-     808,   809,   810,   811,   812,   815,   815,   822,   823,   824,
-     825,   828,   828,   836,   836,   844,   844,   852,   857,   857,
-     865,   870,   875,   880,   885,   890,   895,   900,   905,   910,
-     910,   918,   923,   923,   931,   931,   939,   939,   947,   947,
-     957,   958,   960,   962,   962,   980,   980,   990,   991,   994,
-     995,   998,  1003,  1008,  1008,  1018,  1019,  1022,  1023,  1024,
-    1027,  1032,  1039,  1039,  1051,  1051,  1063,  1064,  1067,  1068,
-    1069,  1070,  1071,  1072,  1075,  1080,  1085,  1090,  1090,  1100,
-    1101,  1104,  1105,  1108,  1108,  1118,  1118,  1128,  1129,  1130,
-    1133,  1134,  1137,  1137,  1145,  1145,  1153,  1153,  1164,  1165,
-    1168,  1169,  1170,  1171,  1172,  1173,  1176,  1181,  1186,  1191,
-    1196,  1201,  1209,  1209,  1222,  1223,  1226,  1227,  1234,  1234,
-    1260,  1260,  1271,  1272,  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,
-    1314,  1314,  1322,  1322,  1330,  1330,  1338,  1338,  1346,  1346,
-    1356,  1356,  1363,  1364,  1365,  1366,  1369,  1374,  1381,  1381,
-    1392,  1393,  1397,  1398,  1401,  1401,  1409,  1410,  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,  1452,  1452,  1465,  1465,  1474,  1475,  1478,  1479,  1484,
-    1484,  1499,  1499,  1513,  1514,  1517,  1518,  1521,  1522,  1523,
-    1524,  1525,  1526,  1527,  1528,  1529,  1530,  1533,  1535,  1540,
-    1542,  1542,  1550,  1550,  1558,  1558,  1566,  1568,  1568,  1576,
-    1585,  1585,  1597,  1598,  1603,  1604,  1609,  1609,  1621,  1621,
-    1633,  1634,  1639,  1640,  1645,  1646,  1647,  1648,  1649,  1650,
-    1651,  1652,  1653,  1656,  1658,  1658,  1666,  1668,  1670,  1675,
-    1683,  1683,  1695,  1696,  1699,  1700,  1703,  1703,  1713,  1713,
-    1723,  1724,  1727,  1728,  1729,  1730,  1731,  1732,  1733,  1736,
-    1736,  1744,  1744,  1769,  1769,  1799,  1799,  1811,  1812,  1815,
-    1816,  1819,  1819,  1831,  1831,  1843,  1844,  1847,  1848,  1849,
-    1850,  1851,  1852,  1853,  1854,  1855,  1856,  1857,  1860,  1860,
-    1868,  1873,  1873,  1881,  1886,  1894,  1894,  1904,  1905,  1908,
-    1909,  1912,  1912,  1921,  1921,  1930,  1931,  1934,  1935,  1939,
-    1940,  1941,  1942,  1943,  1944,  1945,  1946,  1947,  1948,  1949,
-    1952,  1952,  1962,  1962,  1972,  1972,  1980,  1980,  1988,  1988,
-    1996,  1996,  2004,  2004,  2017,  2017,  2027,  2028,  2031,  2031,
-    2042,  2042,  2052,  2053,  2056,  2056,  2066,  2067,  2070,  2071,
-    2074,  2075,  2076,  2077,  2078,  2079,  2080,  2083,  2085,  2085,
-    2093,  2101,  2101,  2113,  2114,  2117,  2118,  2119,  2120,  2121,
-    2122,  2123,  2124,  2125,  2128,  2128,  2135,  2136,  2137,  2140,
-    2145,  2145,  2153,  2158,  2165,  2172,  2172,  2182,  2183,  2186,
-    2187,  2188,  2189,  2190,  2193,  2193,  2201,  2201,  2212,  2212,
-    2224,  2225,  2228,  2229,  2230,  2231,  2232,  2233,  2236,  2241,
-    2241,  2249,  2254,  2254,  2263,  2263,  2275,  2275,  2285,  2286,
-    2289,  2290,  2291,  2292,  2293,  2294,  2295,  2296,  2297,  2298,
-    2299,  2300,  2301,  2302,  2303,  2304,  2305,  2306,  2309,  2314,
-    2314,  2322,  2322,  2330,  2335,  2335,  2343,  2348,  2353,  2353,
-    2361,  2362,  2365,  2365,  2374,  2380,  2386,  2386,  2394,  2394,
-    2403,  2403,  2412,  2412,  2423,  2423,  2430,  2430,  2437,  2437,
-    2446,  2446,  2457,  2457,  2467,  2468,  2472,  2473,  2476,  2476,
-    2486,  2496,  2496,  2506,  2506,  2517,  2518,  2522,  2526,  2526,
-    2538,  2539,  2543,  2543,  2551,  2552,  2555,  2556,  2557,  2558,
-    2559,  2560,  2561,  2564,  2569,  2569,  2577,  2577,  2587,  2588,
-    2591,  2591,  2599,  2600,  2603,  2604,  2605,  2606,  2607,  2610,
-    2610,  2618,  2623,  2628,  2633,  2633
+       0,   283,   283,   283,   284,   284,   285,   285,   286,   286,
+     287,   287,   288,   288,   289,   289,   290,   290,   291,   291,
+     292,   292,   293,   293,   294,   294,   295,   295,   296,   296,
+     304,   305,   306,   307,   308,   309,   310,   313,   318,   318,
+     329,   332,   333,   336,   340,   347,   347,   354,   355,   358,
+     362,   369,   369,   376,   377,   380,   384,   395,   404,   404,
+     419,   420,   424,   427,   427,   444,   444,   453,   454,   459,
+     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
+     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
+     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
+     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
+     500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
+     510,   511,   514,   514,   522,   527,   532,   537,   542,   547,
+     552,   557,   562,   567,   572,   577,   582,   587,   592,   597,
+     597,   605,   608,   611,   614,   617,   623,   623,   631,   631,
+     639,   639,   647,   647,   655,   660,   665,   670,   670,   678,
+     678,   689,   689,   698,   699,   702,   703,   704,   705,   706,
+     709,   709,   719,   724,   724,   736,   736,   748,   748,   758,
+     759,   762,   763,   766,   766,   776,   777,   780,   781,   782,
+     783,   784,   785,   786,   787,   788,   789,   790,   791,   792,
+     793,   794,   795,   796,   797,   798,   799,   800,   803,   803,
+     810,   811,   812,   813,   816,   816,   824,   824,   832,   832,
+     840,   845,   845,   853,   858,   863,   868,   873,   878,   883,
+     888,   893,   898,   898,   906,   911,   911,   919,   919,   927,
+     927,   935,   935,   945,   946,   948,   950,   950,   968,   968,
+     978,   979,   982,   983,   986,   991,   996,   996,  1006,  1007,
+    1010,  1011,  1012,  1015,  1020,  1027,  1027,  1039,  1039,  1051,
+    1052,  1055,  1056,  1057,  1058,  1059,  1060,  1063,  1068,  1073,
+    1078,  1078,  1088,  1089,  1092,  1093,  1096,  1096,  1106,  1106,
+    1116,  1117,  1118,  1121,  1122,  1125,  1125,  1133,  1133,  1141,
+    1141,  1152,  1153,  1156,  1157,  1158,  1159,  1160,  1161,  1164,
+    1169,  1174,  1179,  1184,  1189,  1197,  1197,  1210,  1211,  1214,
+    1215,  1222,  1222,  1248,  1248,  1259,  1260,  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,  1302,  1302,  1310,  1310,  1318,  1318,  1326,
+    1326,  1334,  1334,  1344,  1344,  1351,  1352,  1353,  1354,  1357,
+    1362,  1369,  1369,  1380,  1381,  1385,  1386,  1389,  1389,  1397,
+    1398,  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,  1440,  1440,  1453,  1453,  1462,  1463,
+    1466,  1467,  1472,  1472,  1487,  1487,  1501,  1502,  1505,  1506,
+    1509,  1510,  1511,  1512,  1513,  1514,  1515,  1516,  1517,  1518,
+    1521,  1523,  1528,  1530,  1530,  1538,  1538,  1546,  1546,  1554,
+    1556,  1556,  1564,  1573,  1573,  1585,  1586,  1591,  1592,  1597,
+    1597,  1609,  1609,  1621,  1622,  1627,  1628,  1633,  1634,  1635,
+    1636,  1637,  1638,  1639,  1640,  1641,  1644,  1646,  1646,  1654,
+    1656,  1658,  1663,  1671,  1671,  1683,  1684,  1687,  1688,  1691,
+    1691,  1701,  1701,  1711,  1712,  1715,  1716,  1717,  1718,  1719,
+    1720,  1721,  1724,  1724,  1732,  1732,  1757,  1757,  1787,  1787,
+    1799,  1800,  1803,  1804,  1807,  1807,  1819,  1819,  1831,  1832,
+    1835,  1836,  1837,  1838,  1839,  1840,  1841,  1842,  1843,  1844,
+    1845,  1848,  1848,  1856,  1861,  1861,  1869,  1874,  1882,  1882,
+    1892,  1893,  1896,  1897,  1900,  1900,  1909,  1909,  1918,  1919,
+    1922,  1923,  1927,  1928,  1929,  1930,  1931,  1932,  1933,  1934,
+    1935,  1936,  1937,  1940,  1940,  1950,  1950,  1960,  1960,  1968,
+    1968,  1976,  1976,  1984,  1984,  1992,  1992,  2005,  2005,  2015,
+    2016,  2019,  2019,  2030,  2030,  2040,  2041,  2044,  2044,  2054,
+    2055,  2058,  2059,  2062,  2063,  2064,  2065,  2066,  2067,  2068,
+    2071,  2073,  2073,  2081,  2089,  2089,  2101,  2102,  2105,  2106,
+    2107,  2108,  2109,  2110,  2111,  2112,  2113,  2116,  2116,  2123,
+    2124,  2125,  2128,  2133,  2133,  2141,  2146,  2153,  2160,  2160,
+    2170,  2171,  2174,  2175,  2176,  2177,  2178,  2181,  2181,  2189,
+    2189,  2200,  2200,  2212,  2213,  2216,  2217,  2218,  2219,  2220,
+    2221,  2224,  2229,  2229,  2237,  2242,  2242,  2251,  2251,  2263,
+    2263,  2273,  2274,  2277,  2278,  2279,  2280,  2281,  2282,  2283,
+    2284,  2285,  2286,  2287,  2288,  2289,  2290,  2291,  2292,  2293,
+    2294,  2297,  2302,  2302,  2310,  2310,  2318,  2323,  2323,  2331,
+    2336,  2341,  2341,  2349,  2350,  2353,  2353,  2362,  2368,  2374,
+    2374,  2382,  2382,  2391,  2391,  2400,  2400,  2411,  2411,  2422,
+    2422,  2432,  2433,  2437,  2438,  2441,  2441,  2451,  2458,  2458,
+    2470,  2471,  2475,  2475,  2483,  2484,  2487,  2488,  2489,  2490,
+    2491,  2492,  2493,  2496,  2501,  2501,  2509,  2509,  2519,  2520,
+    2523,  2523,  2531,  2532,  2535,  2536,  2537,  2538,  2539,  2542,
+    2542,  2550,  2555,  2560,  2565,  2565
   };
 
   void
@@ -5703,9 +5578,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5707 "dhcp6_parser.cc"
+#line 5582 "dhcp6_parser.cc"
 
-#line 2641 "dhcp6_parser.yy"
+#line 2573 "dhcp6_parser.yy"
 
 
 void
index 797fefc85597498c9b16887e460be4190898d945..599c1fef826855d32b2476a11007523e99cfa221 100644 (file)
@@ -653,38 +653,33 @@ namespace isc { namespace dhcp {
     TOKEN_WHEN_NOT_PRESENT = 423,  // "when-not-present"
     TOKEN_HOSTNAME_CHAR_SET = 424, // "hostname-char-set"
     TOKEN_HOSTNAME_CHAR_REPLACEMENT = 425, // "hostname-char-replacement"
-    TOKEN_LOGGING = 426,           // "Logging"
-    TOKEN_LOGGERS = 427,           // "loggers"
-    TOKEN_OUTPUT_OPTIONS = 428,    // "output_options"
-    TOKEN_OUTPUT = 429,            // "output"
-    TOKEN_DEBUGLEVEL = 430,        // "debuglevel"
-    TOKEN_SEVERITY = 431,          // "severity"
-    TOKEN_FLUSH = 432,             // "flush"
-    TOKEN_MAXSIZE = 433,           // "maxsize"
-    TOKEN_MAXVER = 434,            // "maxver"
-    TOKEN_PATTERN = 435,           // "pattern"
-    TOKEN_DHCP4 = 436,             // "Dhcp4"
-    TOKEN_DHCPDDNS = 437,          // "DhcpDdns"
-    TOKEN_CONTROL_AGENT = 438,     // "Control-agent"
-    TOKEN_TOPLEVEL_JSON = 439,     // TOPLEVEL_JSON
-    TOKEN_TOPLEVEL_DHCP6 = 440,    // TOPLEVEL_DHCP6
-    TOKEN_SUB_DHCP6 = 441,         // SUB_DHCP6
-    TOKEN_SUB_INTERFACES6 = 442,   // SUB_INTERFACES6
-    TOKEN_SUB_SUBNET6 = 443,       // SUB_SUBNET6
-    TOKEN_SUB_POOL6 = 444,         // SUB_POOL6
-    TOKEN_SUB_PD_POOL = 445,       // SUB_PD_POOL
-    TOKEN_SUB_RESERVATION = 446,   // SUB_RESERVATION
-    TOKEN_SUB_OPTION_DEFS = 447,   // SUB_OPTION_DEFS
-    TOKEN_SUB_OPTION_DEF = 448,    // SUB_OPTION_DEF
-    TOKEN_SUB_OPTION_DATA = 449,   // SUB_OPTION_DATA
-    TOKEN_SUB_HOOKS_LIBRARY = 450, // SUB_HOOKS_LIBRARY
-    TOKEN_SUB_DHCP_DDNS = 451,     // SUB_DHCP_DDNS
-    TOKEN_SUB_LOGGING = 452,       // SUB_LOGGING
-    TOKEN_SUB_CONFIG_CONTROL = 453, // SUB_CONFIG_CONTROL
-    TOKEN_STRING = 454,            // "constant string"
-    TOKEN_INTEGER = 455,           // "integer"
-    TOKEN_FLOAT = 456,             // "floating point"
-    TOKEN_BOOLEAN = 457            // "boolean"
+    TOKEN_LOGGERS = 426,           // "loggers"
+    TOKEN_OUTPUT_OPTIONS = 427,    // "output_options"
+    TOKEN_OUTPUT = 428,            // "output"
+    TOKEN_DEBUGLEVEL = 429,        // "debuglevel"
+    TOKEN_SEVERITY = 430,          // "severity"
+    TOKEN_FLUSH = 431,             // "flush"
+    TOKEN_MAXSIZE = 432,           // "maxsize"
+    TOKEN_MAXVER = 433,            // "maxver"
+    TOKEN_PATTERN = 434,           // "pattern"
+    TOKEN_TOPLEVEL_JSON = 435,     // TOPLEVEL_JSON
+    TOKEN_TOPLEVEL_DHCP6 = 436,    // TOPLEVEL_DHCP6
+    TOKEN_SUB_DHCP6 = 437,         // SUB_DHCP6
+    TOKEN_SUB_INTERFACES6 = 438,   // SUB_INTERFACES6
+    TOKEN_SUB_SUBNET6 = 439,       // SUB_SUBNET6
+    TOKEN_SUB_POOL6 = 440,         // SUB_POOL6
+    TOKEN_SUB_PD_POOL = 441,       // SUB_PD_POOL
+    TOKEN_SUB_RESERVATION = 442,   // SUB_RESERVATION
+    TOKEN_SUB_OPTION_DEFS = 443,   // SUB_OPTION_DEFS
+    TOKEN_SUB_OPTION_DEF = 444,    // SUB_OPTION_DEF
+    TOKEN_SUB_OPTION_DATA = 445,   // SUB_OPTION_DATA
+    TOKEN_SUB_HOOKS_LIBRARY = 446, // SUB_HOOKS_LIBRARY
+    TOKEN_SUB_DHCP_DDNS = 447,     // SUB_DHCP_DDNS
+    TOKEN_SUB_CONFIG_CONTROL = 448, // SUB_CONFIG_CONTROL
+    TOKEN_STRING = 449,            // "constant string"
+    TOKEN_INTEGER = 450,           // "integer"
+    TOKEN_FLOAT = 451,             // "floating point"
+    TOKEN_BOOLEAN = 452            // "boolean"
       };
       /// Backward compatibility alias (Bison 3.6).
       typedef token_kind_type yytokentype;
@@ -701,7 +696,7 @@ namespace isc { namespace dhcp {
     {
       enum symbol_kind_type
       {
-        YYNTOKENS = 203, ///< Number of tokens.
+        YYNTOKENS = 198, ///< Number of tokens.
         S_YYEMPTY = -2,
         S_YYEOF = 0,                             // "end of file"
         S_YYerror = 1,                           // error
@@ -874,475 +869,457 @@ namespace isc { namespace dhcp {
         S_WHEN_NOT_PRESENT = 168,                // "when-not-present"
         S_HOSTNAME_CHAR_SET = 169,               // "hostname-char-set"
         S_HOSTNAME_CHAR_REPLACEMENT = 170,       // "hostname-char-replacement"
-        S_LOGGING = 171,                         // "Logging"
-        S_LOGGERS = 172,                         // "loggers"
-        S_OUTPUT_OPTIONS = 173,                  // "output_options"
-        S_OUTPUT = 174,                          // "output"
-        S_DEBUGLEVEL = 175,                      // "debuglevel"
-        S_SEVERITY = 176,                        // "severity"
-        S_FLUSH = 177,                           // "flush"
-        S_MAXSIZE = 178,                         // "maxsize"
-        S_MAXVER = 179,                          // "maxver"
-        S_PATTERN = 180,                         // "pattern"
-        S_DHCP4 = 181,                           // "Dhcp4"
-        S_DHCPDDNS = 182,                        // "DhcpDdns"
-        S_CONTROL_AGENT = 183,                   // "Control-agent"
-        S_TOPLEVEL_JSON = 184,                   // TOPLEVEL_JSON
-        S_TOPLEVEL_DHCP6 = 185,                  // TOPLEVEL_DHCP6
-        S_SUB_DHCP6 = 186,                       // SUB_DHCP6
-        S_SUB_INTERFACES6 = 187,                 // SUB_INTERFACES6
-        S_SUB_SUBNET6 = 188,                     // SUB_SUBNET6
-        S_SUB_POOL6 = 189,                       // SUB_POOL6
-        S_SUB_PD_POOL = 190,                     // SUB_PD_POOL
-        S_SUB_RESERVATION = 191,                 // SUB_RESERVATION
-        S_SUB_OPTION_DEFS = 192,                 // SUB_OPTION_DEFS
-        S_SUB_OPTION_DEF = 193,                  // SUB_OPTION_DEF
-        S_SUB_OPTION_DATA = 194,                 // SUB_OPTION_DATA
-        S_SUB_HOOKS_LIBRARY = 195,               // SUB_HOOKS_LIBRARY
-        S_SUB_DHCP_DDNS = 196,                   // SUB_DHCP_DDNS
-        S_SUB_LOGGING = 197,                     // SUB_LOGGING
-        S_SUB_CONFIG_CONTROL = 198,              // SUB_CONFIG_CONTROL
-        S_STRING = 199,                          // "constant string"
-        S_INTEGER = 200,                         // "integer"
-        S_FLOAT = 201,                           // "floating point"
-        S_BOOLEAN = 202,                         // "boolean"
-        S_YYACCEPT = 203,                        // $accept
-        S_start = 204,                           // start
-        S_205_1 = 205,                           // $@1
-        S_206_2 = 206,                           // $@2
-        S_207_3 = 207,                           // $@3
-        S_208_4 = 208,                           // $@4
-        S_209_5 = 209,                           // $@5
-        S_210_6 = 210,                           // $@6
-        S_211_7 = 211,                           // $@7
-        S_212_8 = 212,                           // $@8
-        S_213_9 = 213,                           // $@9
-        S_214_10 = 214,                          // $@10
-        S_215_11 = 215,                          // $@11
-        S_216_12 = 216,                          // $@12
-        S_217_13 = 217,                          // $@13
-        S_218_14 = 218,                          // $@14
-        S_219_15 = 219,                          // $@15
-        S_value = 220,                           // value
-        S_sub_json = 221,                        // sub_json
-        S_map2 = 222,                            // map2
-        S_223_16 = 223,                          // $@16
-        S_map_value = 224,                       // map_value
-        S_map_content = 225,                     // map_content
-        S_not_empty_map = 226,                   // not_empty_map
-        S_list_generic = 227,                    // list_generic
-        S_228_17 = 228,                          // $@17
-        S_list_content = 229,                    // list_content
-        S_not_empty_list = 230,                  // not_empty_list
-        S_list_strings = 231,                    // list_strings
-        S_232_18 = 232,                          // $@18
-        S_list_strings_content = 233,            // list_strings_content
-        S_not_empty_list_strings = 234,          // not_empty_list_strings
-        S_unknown_map_entry = 235,               // unknown_map_entry
-        S_syntax_map = 236,                      // syntax_map
-        S_237_19 = 237,                          // $@19
-        S_global_objects = 238,                  // global_objects
-        S_global_object = 239,                   // global_object
-        S_dhcp6_object = 240,                    // dhcp6_object
-        S_241_20 = 241,                          // $@20
-        S_sub_dhcp6 = 242,                       // sub_dhcp6
-        S_243_21 = 243,                          // $@21
-        S_global_params = 244,                   // global_params
-        S_global_param = 245,                    // global_param
-        S_data_directory = 246,                  // data_directory
-        S_247_22 = 247,                          // $@22
-        S_preferred_lifetime = 248,              // preferred_lifetime
-        S_min_preferred_lifetime = 249,          // min_preferred_lifetime
-        S_max_preferred_lifetime = 250,          // max_preferred_lifetime
-        S_valid_lifetime = 251,                  // valid_lifetime
-        S_min_valid_lifetime = 252,              // min_valid_lifetime
-        S_max_valid_lifetime = 253,              // max_valid_lifetime
-        S_renew_timer = 254,                     // renew_timer
-        S_rebind_timer = 255,                    // rebind_timer
-        S_calculate_tee_times = 256,             // calculate_tee_times
-        S_t1_percent = 257,                      // t1_percent
-        S_t2_percent = 258,                      // t2_percent
-        S_decline_probation_period = 259,        // decline_probation_period
-        S_ddns_send_updates = 260,               // ddns_send_updates
-        S_ddns_override_no_update = 261,         // ddns_override_no_update
-        S_ddns_override_client_update = 262,     // ddns_override_client_update
-        S_ddns_replace_client_name = 263,        // ddns_replace_client_name
-        S_264_23 = 264,                          // $@23
-        S_ddns_replace_client_name_value = 265,  // ddns_replace_client_name_value
-        S_ddns_generated_prefix = 266,           // ddns_generated_prefix
-        S_267_24 = 267,                          // $@24
-        S_ddns_qualifying_suffix = 268,          // ddns_qualifying_suffix
-        S_269_25 = 269,                          // $@25
-        S_hostname_char_set = 270,               // hostname_char_set
-        S_271_26 = 271,                          // $@26
-        S_hostname_char_replacement = 272,       // hostname_char_replacement
-        S_273_27 = 273,                          // $@27
-        S_store_extended_info = 274,             // store_extended_info
-        S_statistic_default_sample_count = 275,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 276,    // statistic_default_sample_age
-        S_server_tag = 277,                      // server_tag
-        S_278_28 = 278,                          // $@28
-        S_interfaces_config = 279,               // interfaces_config
-        S_280_29 = 280,                          // $@29
-        S_sub_interfaces6 = 281,                 // sub_interfaces6
-        S_282_30 = 282,                          // $@30
-        S_interfaces_config_params = 283,        // interfaces_config_params
-        S_interfaces_config_param = 284,         // interfaces_config_param
-        S_interfaces_list = 285,                 // interfaces_list
-        S_286_31 = 286,                          // $@31
-        S_re_detect = 287,                       // re_detect
-        S_lease_database = 288,                  // lease_database
-        S_289_32 = 289,                          // $@32
-        S_hosts_database = 290,                  // hosts_database
-        S_291_33 = 291,                          // $@33
-        S_hosts_databases = 292,                 // hosts_databases
-        S_293_34 = 293,                          // $@34
-        S_database_list = 294,                   // database_list
-        S_not_empty_database_list = 295,         // not_empty_database_list
-        S_database = 296,                        // database
-        S_297_35 = 297,                          // $@35
-        S_database_map_params = 298,             // database_map_params
-        S_database_map_param = 299,              // database_map_param
-        S_database_type = 300,                   // database_type
-        S_301_36 = 301,                          // $@36
-        S_db_type = 302,                         // db_type
-        S_user = 303,                            // user
-        S_304_37 = 304,                          // $@37
-        S_password = 305,                        // password
-        S_306_38 = 306,                          // $@38
-        S_host = 307,                            // host
-        S_308_39 = 308,                          // $@39
-        S_port = 309,                            // port
-        S_name = 310,                            // name
-        S_311_40 = 311,                          // $@40
-        S_persist = 312,                         // persist
-        S_lfc_interval = 313,                    // lfc_interval
-        S_readonly = 314,                        // readonly
-        S_connect_timeout = 315,                 // connect_timeout
-        S_reconnect_wait_time = 316,             // reconnect_wait_time
-        S_max_row_errors = 317,                  // max_row_errors
-        S_request_timeout = 318,                 // request_timeout
-        S_tcp_keepalive = 319,                   // tcp_keepalive
-        S_tcp_nodelay = 320,                     // tcp_nodelay
-        S_contact_points = 321,                  // contact_points
-        S_322_41 = 322,                          // $@41
-        S_max_reconnect_tries = 323,             // max_reconnect_tries
-        S_keyspace = 324,                        // keyspace
-        S_325_42 = 325,                          // $@42
-        S_consistency = 326,                     // consistency
-        S_327_43 = 327,                          // $@43
-        S_serial_consistency = 328,              // serial_consistency
-        S_329_44 = 329,                          // $@44
-        S_sanity_checks = 330,                   // sanity_checks
-        S_331_45 = 331,                          // $@45
-        S_sanity_checks_params = 332,            // sanity_checks_params
-        S_sanity_checks_param = 333,             // sanity_checks_param
-        S_lease_checks = 334,                    // lease_checks
-        S_335_46 = 335,                          // $@46
-        S_mac_sources = 336,                     // mac_sources
+        S_LOGGERS = 171,                         // "loggers"
+        S_OUTPUT_OPTIONS = 172,                  // "output_options"
+        S_OUTPUT = 173,                          // "output"
+        S_DEBUGLEVEL = 174,                      // "debuglevel"
+        S_SEVERITY = 175,                        // "severity"
+        S_FLUSH = 176,                           // "flush"
+        S_MAXSIZE = 177,                         // "maxsize"
+        S_MAXVER = 178,                          // "maxver"
+        S_PATTERN = 179,                         // "pattern"
+        S_TOPLEVEL_JSON = 180,                   // TOPLEVEL_JSON
+        S_TOPLEVEL_DHCP6 = 181,                  // TOPLEVEL_DHCP6
+        S_SUB_DHCP6 = 182,                       // SUB_DHCP6
+        S_SUB_INTERFACES6 = 183,                 // SUB_INTERFACES6
+        S_SUB_SUBNET6 = 184,                     // SUB_SUBNET6
+        S_SUB_POOL6 = 185,                       // SUB_POOL6
+        S_SUB_PD_POOL = 186,                     // SUB_PD_POOL
+        S_SUB_RESERVATION = 187,                 // SUB_RESERVATION
+        S_SUB_OPTION_DEFS = 188,                 // SUB_OPTION_DEFS
+        S_SUB_OPTION_DEF = 189,                  // SUB_OPTION_DEF
+        S_SUB_OPTION_DATA = 190,                 // SUB_OPTION_DATA
+        S_SUB_HOOKS_LIBRARY = 191,               // SUB_HOOKS_LIBRARY
+        S_SUB_DHCP_DDNS = 192,                   // SUB_DHCP_DDNS
+        S_SUB_CONFIG_CONTROL = 193,              // SUB_CONFIG_CONTROL
+        S_STRING = 194,                          // "constant string"
+        S_INTEGER = 195,                         // "integer"
+        S_FLOAT = 196,                           // "floating point"
+        S_BOOLEAN = 197,                         // "boolean"
+        S_YYACCEPT = 198,                        // $accept
+        S_start = 199,                           // start
+        S_200_1 = 200,                           // $@1
+        S_201_2 = 201,                           // $@2
+        S_202_3 = 202,                           // $@3
+        S_203_4 = 203,                           // $@4
+        S_204_5 = 204,                           // $@5
+        S_205_6 = 205,                           // $@6
+        S_206_7 = 206,                           // $@7
+        S_207_8 = 207,                           // $@8
+        S_208_9 = 208,                           // $@9
+        S_209_10 = 209,                          // $@10
+        S_210_11 = 210,                          // $@11
+        S_211_12 = 211,                          // $@12
+        S_212_13 = 212,                          // $@13
+        S_213_14 = 213,                          // $@14
+        S_value = 214,                           // value
+        S_sub_json = 215,                        // sub_json
+        S_map2 = 216,                            // map2
+        S_217_15 = 217,                          // $@15
+        S_map_value = 218,                       // map_value
+        S_map_content = 219,                     // map_content
+        S_not_empty_map = 220,                   // not_empty_map
+        S_list_generic = 221,                    // list_generic
+        S_222_16 = 222,                          // $@16
+        S_list_content = 223,                    // list_content
+        S_not_empty_list = 224,                  // not_empty_list
+        S_list_strings = 225,                    // list_strings
+        S_226_17 = 226,                          // $@17
+        S_list_strings_content = 227,            // list_strings_content
+        S_not_empty_list_strings = 228,          // not_empty_list_strings
+        S_unknown_map_entry = 229,               // unknown_map_entry
+        S_syntax_map = 230,                      // syntax_map
+        S_231_18 = 231,                          // $@18
+        S_global_objects = 232,                  // global_objects
+        S_global_object = 233,                   // global_object
+        S_dhcp6_object = 234,                    // dhcp6_object
+        S_235_19 = 235,                          // $@19
+        S_sub_dhcp6 = 236,                       // sub_dhcp6
+        S_237_20 = 237,                          // $@20
+        S_global_params = 238,                   // global_params
+        S_global_param = 239,                    // global_param
+        S_data_directory = 240,                  // data_directory
+        S_241_21 = 241,                          // $@21
+        S_preferred_lifetime = 242,              // preferred_lifetime
+        S_min_preferred_lifetime = 243,          // min_preferred_lifetime
+        S_max_preferred_lifetime = 244,          // max_preferred_lifetime
+        S_valid_lifetime = 245,                  // valid_lifetime
+        S_min_valid_lifetime = 246,              // min_valid_lifetime
+        S_max_valid_lifetime = 247,              // max_valid_lifetime
+        S_renew_timer = 248,                     // renew_timer
+        S_rebind_timer = 249,                    // rebind_timer
+        S_calculate_tee_times = 250,             // calculate_tee_times
+        S_t1_percent = 251,                      // t1_percent
+        S_t2_percent = 252,                      // t2_percent
+        S_decline_probation_period = 253,        // decline_probation_period
+        S_ddns_send_updates = 254,               // ddns_send_updates
+        S_ddns_override_no_update = 255,         // ddns_override_no_update
+        S_ddns_override_client_update = 256,     // ddns_override_client_update
+        S_ddns_replace_client_name = 257,        // ddns_replace_client_name
+        S_258_22 = 258,                          // $@22
+        S_ddns_replace_client_name_value = 259,  // ddns_replace_client_name_value
+        S_ddns_generated_prefix = 260,           // ddns_generated_prefix
+        S_261_23 = 261,                          // $@23
+        S_ddns_qualifying_suffix = 262,          // ddns_qualifying_suffix
+        S_263_24 = 263,                          // $@24
+        S_hostname_char_set = 264,               // hostname_char_set
+        S_265_25 = 265,                          // $@25
+        S_hostname_char_replacement = 266,       // hostname_char_replacement
+        S_267_26 = 267,                          // $@26
+        S_store_extended_info = 268,             // store_extended_info
+        S_statistic_default_sample_count = 269,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 270,    // statistic_default_sample_age
+        S_server_tag = 271,                      // server_tag
+        S_272_27 = 272,                          // $@27
+        S_interfaces_config = 273,               // interfaces_config
+        S_274_28 = 274,                          // $@28
+        S_sub_interfaces6 = 275,                 // sub_interfaces6
+        S_276_29 = 276,                          // $@29
+        S_interfaces_config_params = 277,        // interfaces_config_params
+        S_interfaces_config_param = 278,         // interfaces_config_param
+        S_interfaces_list = 279,                 // interfaces_list
+        S_280_30 = 280,                          // $@30
+        S_re_detect = 281,                       // re_detect
+        S_lease_database = 282,                  // lease_database
+        S_283_31 = 283,                          // $@31
+        S_hosts_database = 284,                  // hosts_database
+        S_285_32 = 285,                          // $@32
+        S_hosts_databases = 286,                 // hosts_databases
+        S_287_33 = 287,                          // $@33
+        S_database_list = 288,                   // database_list
+        S_not_empty_database_list = 289,         // not_empty_database_list
+        S_database = 290,                        // database
+        S_291_34 = 291,                          // $@34
+        S_database_map_params = 292,             // database_map_params
+        S_database_map_param = 293,              // database_map_param
+        S_database_type = 294,                   // database_type
+        S_295_35 = 295,                          // $@35
+        S_db_type = 296,                         // db_type
+        S_user = 297,                            // user
+        S_298_36 = 298,                          // $@36
+        S_password = 299,                        // password
+        S_300_37 = 300,                          // $@37
+        S_host = 301,                            // host
+        S_302_38 = 302,                          // $@38
+        S_port = 303,                            // port
+        S_name = 304,                            // name
+        S_305_39 = 305,                          // $@39
+        S_persist = 306,                         // persist
+        S_lfc_interval = 307,                    // lfc_interval
+        S_readonly = 308,                        // readonly
+        S_connect_timeout = 309,                 // connect_timeout
+        S_reconnect_wait_time = 310,             // reconnect_wait_time
+        S_max_row_errors = 311,                  // max_row_errors
+        S_request_timeout = 312,                 // request_timeout
+        S_tcp_keepalive = 313,                   // tcp_keepalive
+        S_tcp_nodelay = 314,                     // tcp_nodelay
+        S_contact_points = 315,                  // contact_points
+        S_316_40 = 316,                          // $@40
+        S_max_reconnect_tries = 317,             // max_reconnect_tries
+        S_keyspace = 318,                        // keyspace
+        S_319_41 = 319,                          // $@41
+        S_consistency = 320,                     // consistency
+        S_321_42 = 321,                          // $@42
+        S_serial_consistency = 322,              // serial_consistency
+        S_323_43 = 323,                          // $@43
+        S_sanity_checks = 324,                   // sanity_checks
+        S_325_44 = 325,                          // $@44
+        S_sanity_checks_params = 326,            // sanity_checks_params
+        S_sanity_checks_param = 327,             // sanity_checks_param
+        S_lease_checks = 328,                    // lease_checks
+        S_329_45 = 329,                          // $@45
+        S_mac_sources = 330,                     // mac_sources
+        S_331_46 = 331,                          // $@46
+        S_mac_sources_list = 332,                // mac_sources_list
+        S_mac_sources_value = 333,               // mac_sources_value
+        S_duid_id = 334,                         // duid_id
+        S_string_id = 335,                       // string_id
+        S_host_reservation_identifiers = 336,    // host_reservation_identifiers
         S_337_47 = 337,                          // $@47
-        S_mac_sources_list = 338,                // mac_sources_list
-        S_mac_sources_value = 339,               // mac_sources_value
-        S_duid_id = 340,                         // duid_id
-        S_string_id = 341,                       // string_id
-        S_host_reservation_identifiers = 342,    // host_reservation_identifiers
+        S_host_reservation_identifiers_list = 338, // host_reservation_identifiers_list
+        S_host_reservation_identifier = 339,     // host_reservation_identifier
+        S_hw_address_id = 340,                   // hw_address_id
+        S_flex_id = 341,                         // flex_id
+        S_relay_supplied_options = 342,          // relay_supplied_options
         S_343_48 = 343,                          // $@48
-        S_host_reservation_identifiers_list = 344, // host_reservation_identifiers_list
-        S_host_reservation_identifier = 345,     // host_reservation_identifier
-        S_hw_address_id = 346,                   // hw_address_id
-        S_flex_id = 347,                         // flex_id
-        S_relay_supplied_options = 348,          // relay_supplied_options
-        S_349_49 = 349,                          // $@49
-        S_dhcp_multi_threading = 350,            // dhcp_multi_threading
-        S_351_50 = 351,                          // $@50
-        S_multi_threading_params = 352,          // multi_threading_params
-        S_multi_threading_param = 353,           // multi_threading_param
-        S_enable_multi_threading = 354,          // enable_multi_threading
-        S_thread_pool_size = 355,                // thread_pool_size
-        S_packet_queue_size = 356,               // packet_queue_size
-        S_hooks_libraries = 357,                 // hooks_libraries
-        S_358_51 = 358,                          // $@51
-        S_hooks_libraries_list = 359,            // hooks_libraries_list
-        S_not_empty_hooks_libraries_list = 360,  // not_empty_hooks_libraries_list
-        S_hooks_library = 361,                   // hooks_library
-        S_362_52 = 362,                          // $@52
-        S_sub_hooks_library = 363,               // sub_hooks_library
-        S_364_53 = 364,                          // $@53
-        S_hooks_params = 365,                    // hooks_params
-        S_hooks_param = 366,                     // hooks_param
-        S_library = 367,                         // library
-        S_368_54 = 368,                          // $@54
-        S_parameters = 369,                      // parameters
-        S_370_55 = 370,                          // $@55
-        S_expired_leases_processing = 371,       // expired_leases_processing
-        S_372_56 = 372,                          // $@56
-        S_expired_leases_params = 373,           // expired_leases_params
-        S_expired_leases_param = 374,            // expired_leases_param
-        S_reclaim_timer_wait_time = 375,         // reclaim_timer_wait_time
-        S_flush_reclaimed_timer_wait_time = 376, // flush_reclaimed_timer_wait_time
-        S_hold_reclaimed_time = 377,             // hold_reclaimed_time
-        S_max_reclaim_leases = 378,              // max_reclaim_leases
-        S_max_reclaim_time = 379,                // max_reclaim_time
-        S_unwarned_reclaim_cycles = 380,         // unwarned_reclaim_cycles
-        S_subnet6_list = 381,                    // subnet6_list
-        S_382_57 = 382,                          // $@57
-        S_subnet6_list_content = 383,            // subnet6_list_content
-        S_not_empty_subnet6_list = 384,          // not_empty_subnet6_list
-        S_subnet6 = 385,                         // subnet6
-        S_386_58 = 386,                          // $@58
-        S_sub_subnet6 = 387,                     // sub_subnet6
-        S_388_59 = 388,                          // $@59
-        S_subnet6_params = 389,                  // subnet6_params
-        S_subnet6_param = 390,                   // subnet6_param
-        S_subnet = 391,                          // subnet
-        S_392_60 = 392,                          // $@60
-        S_interface = 393,                       // interface
-        S_394_61 = 394,                          // $@61
-        S_interface_id = 395,                    // interface_id
-        S_396_62 = 396,                          // $@62
-        S_client_class = 397,                    // client_class
-        S_398_63 = 398,                          // $@63
-        S_require_client_classes = 399,          // require_client_classes
-        S_400_64 = 400,                          // $@64
-        S_reservation_mode = 401,                // reservation_mode
-        S_402_65 = 402,                          // $@65
-        S_hr_mode = 403,                         // hr_mode
-        S_id = 404,                              // id
-        S_rapid_commit = 405,                    // rapid_commit
-        S_shared_networks = 406,                 // shared_networks
-        S_407_66 = 407,                          // $@66
-        S_shared_networks_content = 408,         // shared_networks_content
-        S_shared_networks_list = 409,            // shared_networks_list
-        S_shared_network = 410,                  // shared_network
-        S_411_67 = 411,                          // $@67
-        S_shared_network_params = 412,           // shared_network_params
-        S_shared_network_param = 413,            // shared_network_param
-        S_option_def_list = 414,                 // option_def_list
-        S_415_68 = 415,                          // $@68
-        S_sub_option_def_list = 416,             // sub_option_def_list
-        S_417_69 = 417,                          // $@69
-        S_option_def_list_content = 418,         // option_def_list_content
-        S_not_empty_option_def_list = 419,       // not_empty_option_def_list
-        S_option_def_entry = 420,                // option_def_entry
-        S_421_70 = 421,                          // $@70
-        S_sub_option_def = 422,                  // sub_option_def
-        S_423_71 = 423,                          // $@71
-        S_option_def_params = 424,               // option_def_params
-        S_not_empty_option_def_params = 425,     // not_empty_option_def_params
-        S_option_def_param = 426,                // option_def_param
-        S_option_def_name = 427,                 // option_def_name
-        S_code = 428,                            // code
-        S_option_def_code = 429,                 // option_def_code
-        S_option_def_type = 430,                 // option_def_type
-        S_431_72 = 431,                          // $@72
-        S_option_def_record_types = 432,         // option_def_record_types
-        S_433_73 = 433,                          // $@73
-        S_space = 434,                           // space
-        S_435_74 = 435,                          // $@74
-        S_option_def_space = 436,                // option_def_space
-        S_option_def_encapsulate = 437,          // option_def_encapsulate
-        S_438_75 = 438,                          // $@75
-        S_option_def_array = 439,                // option_def_array
-        S_option_data_list = 440,                // option_data_list
-        S_441_76 = 441,                          // $@76
-        S_option_data_list_content = 442,        // option_data_list_content
-        S_not_empty_option_data_list = 443,      // not_empty_option_data_list
-        S_option_data_entry = 444,               // option_data_entry
-        S_445_77 = 445,                          // $@77
-        S_sub_option_data = 446,                 // sub_option_data
+        S_dhcp_multi_threading = 344,            // dhcp_multi_threading
+        S_345_49 = 345,                          // $@49
+        S_multi_threading_params = 346,          // multi_threading_params
+        S_multi_threading_param = 347,           // multi_threading_param
+        S_enable_multi_threading = 348,          // enable_multi_threading
+        S_thread_pool_size = 349,                // thread_pool_size
+        S_packet_queue_size = 350,               // packet_queue_size
+        S_hooks_libraries = 351,                 // hooks_libraries
+        S_352_50 = 352,                          // $@50
+        S_hooks_libraries_list = 353,            // hooks_libraries_list
+        S_not_empty_hooks_libraries_list = 354,  // not_empty_hooks_libraries_list
+        S_hooks_library = 355,                   // hooks_library
+        S_356_51 = 356,                          // $@51
+        S_sub_hooks_library = 357,               // sub_hooks_library
+        S_358_52 = 358,                          // $@52
+        S_hooks_params = 359,                    // hooks_params
+        S_hooks_param = 360,                     // hooks_param
+        S_library = 361,                         // library
+        S_362_53 = 362,                          // $@53
+        S_parameters = 363,                      // parameters
+        S_364_54 = 364,                          // $@54
+        S_expired_leases_processing = 365,       // expired_leases_processing
+        S_366_55 = 366,                          // $@55
+        S_expired_leases_params = 367,           // expired_leases_params
+        S_expired_leases_param = 368,            // expired_leases_param
+        S_reclaim_timer_wait_time = 369,         // reclaim_timer_wait_time
+        S_flush_reclaimed_timer_wait_time = 370, // flush_reclaimed_timer_wait_time
+        S_hold_reclaimed_time = 371,             // hold_reclaimed_time
+        S_max_reclaim_leases = 372,              // max_reclaim_leases
+        S_max_reclaim_time = 373,                // max_reclaim_time
+        S_unwarned_reclaim_cycles = 374,         // unwarned_reclaim_cycles
+        S_subnet6_list = 375,                    // subnet6_list
+        S_376_56 = 376,                          // $@56
+        S_subnet6_list_content = 377,            // subnet6_list_content
+        S_not_empty_subnet6_list = 378,          // not_empty_subnet6_list
+        S_subnet6 = 379,                         // subnet6
+        S_380_57 = 380,                          // $@57
+        S_sub_subnet6 = 381,                     // sub_subnet6
+        S_382_58 = 382,                          // $@58
+        S_subnet6_params = 383,                  // subnet6_params
+        S_subnet6_param = 384,                   // subnet6_param
+        S_subnet = 385,                          // subnet
+        S_386_59 = 386,                          // $@59
+        S_interface = 387,                       // interface
+        S_388_60 = 388,                          // $@60
+        S_interface_id = 389,                    // interface_id
+        S_390_61 = 390,                          // $@61
+        S_client_class = 391,                    // client_class
+        S_392_62 = 392,                          // $@62
+        S_require_client_classes = 393,          // require_client_classes
+        S_394_63 = 394,                          // $@63
+        S_reservation_mode = 395,                // reservation_mode
+        S_396_64 = 396,                          // $@64
+        S_hr_mode = 397,                         // hr_mode
+        S_id = 398,                              // id
+        S_rapid_commit = 399,                    // rapid_commit
+        S_shared_networks = 400,                 // shared_networks
+        S_401_65 = 401,                          // $@65
+        S_shared_networks_content = 402,         // shared_networks_content
+        S_shared_networks_list = 403,            // shared_networks_list
+        S_shared_network = 404,                  // shared_network
+        S_405_66 = 405,                          // $@66
+        S_shared_network_params = 406,           // shared_network_params
+        S_shared_network_param = 407,            // shared_network_param
+        S_option_def_list = 408,                 // option_def_list
+        S_409_67 = 409,                          // $@67
+        S_sub_option_def_list = 410,             // sub_option_def_list
+        S_411_68 = 411,                          // $@68
+        S_option_def_list_content = 412,         // option_def_list_content
+        S_not_empty_option_def_list = 413,       // not_empty_option_def_list
+        S_option_def_entry = 414,                // option_def_entry
+        S_415_69 = 415,                          // $@69
+        S_sub_option_def = 416,                  // sub_option_def
+        S_417_70 = 417,                          // $@70
+        S_option_def_params = 418,               // option_def_params
+        S_not_empty_option_def_params = 419,     // not_empty_option_def_params
+        S_option_def_param = 420,                // option_def_param
+        S_option_def_name = 421,                 // option_def_name
+        S_code = 422,                            // code
+        S_option_def_code = 423,                 // option_def_code
+        S_option_def_type = 424,                 // option_def_type
+        S_425_71 = 425,                          // $@71
+        S_option_def_record_types = 426,         // option_def_record_types
+        S_427_72 = 427,                          // $@72
+        S_space = 428,                           // space
+        S_429_73 = 429,                          // $@73
+        S_option_def_space = 430,                // option_def_space
+        S_option_def_encapsulate = 431,          // option_def_encapsulate
+        S_432_74 = 432,                          // $@74
+        S_option_def_array = 433,                // option_def_array
+        S_option_data_list = 434,                // option_data_list
+        S_435_75 = 435,                          // $@75
+        S_option_data_list_content = 436,        // option_data_list_content
+        S_not_empty_option_data_list = 437,      // not_empty_option_data_list
+        S_option_data_entry = 438,               // option_data_entry
+        S_439_76 = 439,                          // $@76
+        S_sub_option_data = 440,                 // sub_option_data
+        S_441_77 = 441,                          // $@77
+        S_option_data_params = 442,              // option_data_params
+        S_not_empty_option_data_params = 443,    // not_empty_option_data_params
+        S_option_data_param = 444,               // option_data_param
+        S_option_data_name = 445,                // option_data_name
+        S_option_data_data = 446,                // option_data_data
         S_447_78 = 447,                          // $@78
-        S_option_data_params = 448,              // option_data_params
-        S_not_empty_option_data_params = 449,    // not_empty_option_data_params
-        S_option_data_param = 450,               // option_data_param
-        S_option_data_name = 451,                // option_data_name
-        S_option_data_data = 452,                // option_data_data
+        S_option_data_code = 448,                // option_data_code
+        S_option_data_space = 449,               // option_data_space
+        S_option_data_csv_format = 450,          // option_data_csv_format
+        S_option_data_always_send = 451,         // option_data_always_send
+        S_pools_list = 452,                      // pools_list
         S_453_79 = 453,                          // $@79
-        S_option_data_code = 454,                // option_data_code
-        S_option_data_space = 455,               // option_data_space
-        S_option_data_csv_format = 456,          // option_data_csv_format
-        S_option_data_always_send = 457,         // option_data_always_send
-        S_pools_list = 458,                      // pools_list
-        S_459_80 = 459,                          // $@80
-        S_pools_list_content = 460,              // pools_list_content
-        S_not_empty_pools_list = 461,            // not_empty_pools_list
-        S_pool_list_entry = 462,                 // pool_list_entry
-        S_463_81 = 463,                          // $@81
-        S_sub_pool6 = 464,                       // sub_pool6
-        S_465_82 = 465,                          // $@82
-        S_pool_params = 466,                     // pool_params
-        S_pool_param = 467,                      // pool_param
-        S_pool_entry = 468,                      // pool_entry
-        S_469_83 = 469,                          // $@83
-        S_user_context = 470,                    // user_context
-        S_471_84 = 471,                          // $@84
-        S_comment = 472,                         // comment
-        S_473_85 = 473,                          // $@85
-        S_pd_pools_list = 474,                   // pd_pools_list
-        S_475_86 = 475,                          // $@86
-        S_pd_pools_list_content = 476,           // pd_pools_list_content
-        S_not_empty_pd_pools_list = 477,         // not_empty_pd_pools_list
-        S_pd_pool_entry = 478,                   // pd_pool_entry
-        S_479_87 = 479,                          // $@87
-        S_sub_pd_pool = 480,                     // sub_pd_pool
-        S_481_88 = 481,                          // $@88
-        S_pd_pool_params = 482,                  // pd_pool_params
-        S_pd_pool_param = 483,                   // pd_pool_param
-        S_pd_prefix = 484,                       // pd_prefix
-        S_485_89 = 485,                          // $@89
-        S_pd_prefix_len = 486,                   // pd_prefix_len
-        S_excluded_prefix = 487,                 // excluded_prefix
-        S_488_90 = 488,                          // $@90
-        S_excluded_prefix_len = 489,             // excluded_prefix_len
-        S_pd_delegated_len = 490,                // pd_delegated_len
-        S_reservations = 491,                    // reservations
-        S_492_91 = 492,                          // $@91
-        S_reservations_list = 493,               // reservations_list
-        S_not_empty_reservations_list = 494,     // not_empty_reservations_list
-        S_reservation = 495,                     // reservation
-        S_496_92 = 496,                          // $@92
-        S_sub_reservation = 497,                 // sub_reservation
-        S_498_93 = 498,                          // $@93
-        S_reservation_params = 499,              // reservation_params
-        S_not_empty_reservation_params = 500,    // not_empty_reservation_params
-        S_reservation_param = 501,               // reservation_param
-        S_ip_addresses = 502,                    // ip_addresses
-        S_503_94 = 503,                          // $@94
-        S_prefixes = 504,                        // prefixes
-        S_505_95 = 505,                          // $@95
-        S_duid = 506,                            // duid
-        S_507_96 = 507,                          // $@96
-        S_hw_address = 508,                      // hw_address
-        S_509_97 = 509,                          // $@97
-        S_hostname = 510,                        // hostname
-        S_511_98 = 511,                          // $@98
-        S_flex_id_value = 512,                   // flex_id_value
-        S_513_99 = 513,                          // $@99
-        S_reservation_client_classes = 514,      // reservation_client_classes
-        S_515_100 = 515,                         // $@100
-        S_relay = 516,                           // relay
-        S_517_101 = 517,                         // $@101
-        S_relay_map = 518,                       // relay_map
-        S_ip_address = 519,                      // ip_address
-        S_520_102 = 520,                         // $@102
-        S_client_classes = 521,                  // client_classes
-        S_522_103 = 522,                         // $@103
-        S_client_classes_list = 523,             // client_classes_list
-        S_client_class_entry = 524,              // client_class_entry
+        S_pools_list_content = 454,              // pools_list_content
+        S_not_empty_pools_list = 455,            // not_empty_pools_list
+        S_pool_list_entry = 456,                 // pool_list_entry
+        S_457_80 = 457,                          // $@80
+        S_sub_pool6 = 458,                       // sub_pool6
+        S_459_81 = 459,                          // $@81
+        S_pool_params = 460,                     // pool_params
+        S_pool_param = 461,                      // pool_param
+        S_pool_entry = 462,                      // pool_entry
+        S_463_82 = 463,                          // $@82
+        S_user_context = 464,                    // user_context
+        S_465_83 = 465,                          // $@83
+        S_comment = 466,                         // comment
+        S_467_84 = 467,                          // $@84
+        S_pd_pools_list = 468,                   // pd_pools_list
+        S_469_85 = 469,                          // $@85
+        S_pd_pools_list_content = 470,           // pd_pools_list_content
+        S_not_empty_pd_pools_list = 471,         // not_empty_pd_pools_list
+        S_pd_pool_entry = 472,                   // pd_pool_entry
+        S_473_86 = 473,                          // $@86
+        S_sub_pd_pool = 474,                     // sub_pd_pool
+        S_475_87 = 475,                          // $@87
+        S_pd_pool_params = 476,                  // pd_pool_params
+        S_pd_pool_param = 477,                   // pd_pool_param
+        S_pd_prefix = 478,                       // pd_prefix
+        S_479_88 = 479,                          // $@88
+        S_pd_prefix_len = 480,                   // pd_prefix_len
+        S_excluded_prefix = 481,                 // excluded_prefix
+        S_482_89 = 482,                          // $@89
+        S_excluded_prefix_len = 483,             // excluded_prefix_len
+        S_pd_delegated_len = 484,                // pd_delegated_len
+        S_reservations = 485,                    // reservations
+        S_486_90 = 486,                          // $@90
+        S_reservations_list = 487,               // reservations_list
+        S_not_empty_reservations_list = 488,     // not_empty_reservations_list
+        S_reservation = 489,                     // reservation
+        S_490_91 = 490,                          // $@91
+        S_sub_reservation = 491,                 // sub_reservation
+        S_492_92 = 492,                          // $@92
+        S_reservation_params = 493,              // reservation_params
+        S_not_empty_reservation_params = 494,    // not_empty_reservation_params
+        S_reservation_param = 495,               // reservation_param
+        S_ip_addresses = 496,                    // ip_addresses
+        S_497_93 = 497,                          // $@93
+        S_prefixes = 498,                        // prefixes
+        S_499_94 = 499,                          // $@94
+        S_duid = 500,                            // duid
+        S_501_95 = 501,                          // $@95
+        S_hw_address = 502,                      // hw_address
+        S_503_96 = 503,                          // $@96
+        S_hostname = 504,                        // hostname
+        S_505_97 = 505,                          // $@97
+        S_flex_id_value = 506,                   // flex_id_value
+        S_507_98 = 507,                          // $@98
+        S_reservation_client_classes = 508,      // reservation_client_classes
+        S_509_99 = 509,                          // $@99
+        S_relay = 510,                           // relay
+        S_511_100 = 511,                         // $@100
+        S_relay_map = 512,                       // relay_map
+        S_ip_address = 513,                      // ip_address
+        S_514_101 = 514,                         // $@101
+        S_client_classes = 515,                  // client_classes
+        S_516_102 = 516,                         // $@102
+        S_client_classes_list = 517,             // client_classes_list
+        S_client_class_entry = 518,              // client_class_entry
+        S_519_103 = 519,                         // $@103
+        S_client_class_params = 520,             // client_class_params
+        S_not_empty_client_class_params = 521,   // not_empty_client_class_params
+        S_client_class_param = 522,              // client_class_param
+        S_client_class_name = 523,               // client_class_name
+        S_client_class_test = 524,               // client_class_test
         S_525_104 = 525,                         // $@104
-        S_client_class_params = 526,             // client_class_params
-        S_not_empty_client_class_params = 527,   // not_empty_client_class_params
-        S_client_class_param = 528,              // client_class_param
-        S_client_class_name = 529,               // client_class_name
-        S_client_class_test = 530,               // client_class_test
-        S_531_105 = 531,                         // $@105
-        S_only_if_required = 532,                // only_if_required
-        S_server_id = 533,                       // server_id
-        S_534_106 = 534,                         // $@106
-        S_server_id_params = 535,                // server_id_params
-        S_server_id_param = 536,                 // server_id_param
-        S_server_id_type = 537,                  // server_id_type
-        S_538_107 = 538,                         // $@107
-        S_duid_type = 539,                       // duid_type
-        S_htype = 540,                           // htype
-        S_identifier = 541,                      // identifier
-        S_542_108 = 542,                         // $@108
-        S_time = 543,                            // time
-        S_enterprise_id = 544,                   // enterprise_id
-        S_dhcp4o6_port = 545,                    // dhcp4o6_port
-        S_control_socket = 546,                  // control_socket
-        S_547_109 = 547,                         // $@109
-        S_control_socket_params = 548,           // control_socket_params
-        S_control_socket_param = 549,            // control_socket_param
-        S_socket_type = 550,                     // socket_type
-        S_551_110 = 551,                         // $@110
-        S_socket_name = 552,                     // socket_name
-        S_553_111 = 553,                         // $@111
-        S_dhcp_queue_control = 554,              // dhcp_queue_control
-        S_555_112 = 555,                         // $@112
-        S_queue_control_params = 556,            // queue_control_params
-        S_queue_control_param = 557,             // queue_control_param
-        S_enable_queue = 558,                    // enable_queue
-        S_queue_type = 559,                      // queue_type
-        S_560_113 = 560,                         // $@113
-        S_capacity = 561,                        // capacity
-        S_arbitrary_map_entry = 562,             // arbitrary_map_entry
-        S_563_114 = 563,                         // $@114
-        S_dhcp_ddns = 564,                       // dhcp_ddns
-        S_565_115 = 565,                         // $@115
-        S_sub_dhcp_ddns = 566,                   // sub_dhcp_ddns
-        S_567_116 = 567,                         // $@116
-        S_dhcp_ddns_params = 568,                // dhcp_ddns_params
-        S_dhcp_ddns_param = 569,                 // dhcp_ddns_param
-        S_enable_updates = 570,                  // enable_updates
-        S_qualifying_suffix = 571,               // qualifying_suffix
-        S_572_117 = 572,                         // $@117
-        S_server_ip = 573,                       // server_ip
-        S_574_118 = 574,                         // $@118
-        S_server_port = 575,                     // server_port
-        S_sender_ip = 576,                       // sender_ip
-        S_577_119 = 577,                         // $@119
-        S_sender_port = 578,                     // sender_port
-        S_max_queue_size = 579,                  // max_queue_size
-        S_ncr_protocol = 580,                    // ncr_protocol
-        S_581_120 = 581,                         // $@120
-        S_ncr_protocol_value = 582,              // ncr_protocol_value
-        S_ncr_format = 583,                      // ncr_format
-        S_584_121 = 584,                         // $@121
-        S_dep_override_no_update = 585,          // dep_override_no_update
-        S_dep_override_client_update = 586,      // dep_override_client_update
-        S_dep_replace_client_name = 587,         // dep_replace_client_name
-        S_588_122 = 588,                         // $@122
-        S_dep_generated_prefix = 589,            // dep_generated_prefix
-        S_590_123 = 590,                         // $@123
-        S_dep_hostname_char_set = 591,           // dep_hostname_char_set
-        S_592_124 = 592,                         // $@124
-        S_dep_hostname_char_replacement = 593,   // dep_hostname_char_replacement
-        S_594_125 = 594,                         // $@125
-        S_dhcp4_json_object = 595,               // dhcp4_json_object
-        S_596_126 = 596,                         // $@126
-        S_dhcpddns_json_object = 597,            // dhcpddns_json_object
-        S_598_127 = 598,                         // $@127
-        S_control_agent_json_object = 599,       // control_agent_json_object
-        S_600_128 = 600,                         // $@128
-        S_config_control = 601,                  // config_control
+        S_only_if_required = 526,                // only_if_required
+        S_server_id = 527,                       // server_id
+        S_528_105 = 528,                         // $@105
+        S_server_id_params = 529,                // server_id_params
+        S_server_id_param = 530,                 // server_id_param
+        S_server_id_type = 531,                  // server_id_type
+        S_532_106 = 532,                         // $@106
+        S_duid_type = 533,                       // duid_type
+        S_htype = 534,                           // htype
+        S_identifier = 535,                      // identifier
+        S_536_107 = 536,                         // $@107
+        S_time = 537,                            // time
+        S_enterprise_id = 538,                   // enterprise_id
+        S_dhcp4o6_port = 539,                    // dhcp4o6_port
+        S_control_socket = 540,                  // control_socket
+        S_541_108 = 541,                         // $@108
+        S_control_socket_params = 542,           // control_socket_params
+        S_control_socket_param = 543,            // control_socket_param
+        S_socket_type = 544,                     // socket_type
+        S_545_109 = 545,                         // $@109
+        S_socket_name = 546,                     // socket_name
+        S_547_110 = 547,                         // $@110
+        S_dhcp_queue_control = 548,              // dhcp_queue_control
+        S_549_111 = 549,                         // $@111
+        S_queue_control_params = 550,            // queue_control_params
+        S_queue_control_param = 551,             // queue_control_param
+        S_enable_queue = 552,                    // enable_queue
+        S_queue_type = 553,                      // queue_type
+        S_554_112 = 554,                         // $@112
+        S_capacity = 555,                        // capacity
+        S_arbitrary_map_entry = 556,             // arbitrary_map_entry
+        S_557_113 = 557,                         // $@113
+        S_dhcp_ddns = 558,                       // dhcp_ddns
+        S_559_114 = 559,                         // $@114
+        S_sub_dhcp_ddns = 560,                   // sub_dhcp_ddns
+        S_561_115 = 561,                         // $@115
+        S_dhcp_ddns_params = 562,                // dhcp_ddns_params
+        S_dhcp_ddns_param = 563,                 // dhcp_ddns_param
+        S_enable_updates = 564,                  // enable_updates
+        S_qualifying_suffix = 565,               // qualifying_suffix
+        S_566_116 = 566,                         // $@116
+        S_server_ip = 567,                       // server_ip
+        S_568_117 = 568,                         // $@117
+        S_server_port = 569,                     // server_port
+        S_sender_ip = 570,                       // sender_ip
+        S_571_118 = 571,                         // $@118
+        S_sender_port = 572,                     // sender_port
+        S_max_queue_size = 573,                  // max_queue_size
+        S_ncr_protocol = 574,                    // ncr_protocol
+        S_575_119 = 575,                         // $@119
+        S_ncr_protocol_value = 576,              // ncr_protocol_value
+        S_ncr_format = 577,                      // ncr_format
+        S_578_120 = 578,                         // $@120
+        S_dep_override_no_update = 579,          // dep_override_no_update
+        S_dep_override_client_update = 580,      // dep_override_client_update
+        S_dep_replace_client_name = 581,         // dep_replace_client_name
+        S_582_121 = 582,                         // $@121
+        S_dep_generated_prefix = 583,            // dep_generated_prefix
+        S_584_122 = 584,                         // $@122
+        S_dep_hostname_char_set = 585,           // dep_hostname_char_set
+        S_586_123 = 586,                         // $@123
+        S_dep_hostname_char_replacement = 587,   // dep_hostname_char_replacement
+        S_588_124 = 588,                         // $@124
+        S_config_control = 589,                  // config_control
+        S_590_125 = 590,                         // $@125
+        S_sub_config_control = 591,              // sub_config_control
+        S_592_126 = 592,                         // $@126
+        S_config_control_params = 593,           // config_control_params
+        S_config_control_param = 594,            // config_control_param
+        S_config_databases = 595,                // config_databases
+        S_596_127 = 596,                         // $@127
+        S_config_fetch_wait_time = 597,          // config_fetch_wait_time
+        S_loggers = 598,                         // loggers
+        S_599_128 = 599,                         // $@128
+        S_loggers_entries = 600,                 // loggers_entries
+        S_logger_entry = 601,                    // logger_entry
         S_602_129 = 602,                         // $@129
-        S_sub_config_control = 603,              // sub_config_control
-        S_604_130 = 604,                         // $@130
-        S_config_control_params = 605,           // config_control_params
-        S_config_control_param = 606,            // config_control_param
-        S_config_databases = 607,                // config_databases
-        S_608_131 = 608,                         // $@131
-        S_config_fetch_wait_time = 609,          // config_fetch_wait_time
-        S_logging_object = 610,                  // logging_object
-        S_611_132 = 611,                         // $@132
-        S_sub_logging = 612,                     // sub_logging
-        S_613_133 = 613,                         // $@133
-        S_logging_params = 614,                  // logging_params
-        S_logging_param = 615,                   // logging_param
-        S_loggers = 616,                         // loggers
-        S_617_134 = 617,                         // $@134
-        S_loggers_entries = 618,                 // loggers_entries
-        S_logger_entry = 619,                    // logger_entry
-        S_620_135 = 620,                         // $@135
-        S_logger_params = 621,                   // logger_params
-        S_logger_param = 622,                    // logger_param
-        S_debuglevel = 623,                      // debuglevel
-        S_severity = 624,                        // severity
-        S_625_136 = 625,                         // $@136
-        S_output_options_list = 626,             // output_options_list
-        S_627_137 = 627,                         // $@137
-        S_output_options_list_content = 628,     // output_options_list_content
-        S_output_entry = 629,                    // output_entry
-        S_630_138 = 630,                         // $@138
-        S_output_params_list = 631,              // output_params_list
-        S_output_params = 632,                   // output_params
-        S_output = 633,                          // output
-        S_634_139 = 634,                         // $@139
-        S_flush = 635,                           // flush
-        S_maxsize = 636,                         // maxsize
-        S_maxver = 637,                          // maxver
-        S_pattern = 638,                         // pattern
-        S_639_140 = 639                          // $@140
+        S_logger_params = 603,                   // logger_params
+        S_logger_param = 604,                    // logger_param
+        S_debuglevel = 605,                      // debuglevel
+        S_severity = 606,                        // severity
+        S_607_130 = 607,                         // $@130
+        S_output_options_list = 608,             // output_options_list
+        S_609_131 = 609,                         // $@131
+        S_output_options_list_content = 610,     // output_options_list_content
+        S_output_entry = 611,                    // output_entry
+        S_612_132 = 612,                         // $@132
+        S_output_params_list = 613,              // output_params_list
+        S_output_params = 614,                   // output_params
+        S_output = 615,                          // output
+        S_616_133 = 616,                         // $@133
+        S_flush = 617,                           // flush
+        S_maxsize = 618,                         // maxsize
+        S_maxver = 619,                          // maxver
+        S_pattern = 620,                         // pattern
+        S_621_134 = 621                          // $@134
       };
     };
 
@@ -1379,29 +1356,29 @@ namespace isc { namespace dhcp {
       {
         switch (this->kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -1515,29 +1492,29 @@ namespace isc { namespace dhcp {
         // Value type destructor.
 switch (yykind)
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1631,13 +1608,13 @@ switch (yykind)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -4305,21 +4282,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_LOGGING (location_type l)
-      {
-        return symbol_type (token::TOKEN_LOGGING, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_LOGGING (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_LOGGING, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4455,51 +4417,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_PATTERN, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_DHCP4 (location_type l)
-      {
-        return symbol_type (token::TOKEN_DHCP4, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_DHCP4 (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_DHCP4, l);
-      }
-#endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_DHCPDDNS (location_type l)
-      {
-        return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_DHCPDDNS (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_DHCPDDNS, l);
-      }
-#endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_CONTROL_AGENT (location_type l)
-      {
-        return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_CONTROL_AGENT (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_CONTROL_AGENT, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4695,21 +4612,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_SUB_LOGGING (location_type l)
-      {
-        return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_SUB_LOGGING (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_SUB_LOGGING, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5115,9 +5017,9 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1254,     ///< Last index in yytable_.
-      yynnts_ = 437,  ///< Number of nonterminal symbols.
-      yyfinal_ = 32 ///< Termination state number.
+      yylast_ = 1205,     ///< Last index in yytable_.
+      yynnts_ = 424,  ///< Number of nonterminal symbols.
+      yyfinal_ = 30 ///< Termination state number.
     };
 
 
@@ -5181,9 +5083,9 @@ switch (yykind)
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202
+     195,   196,   197
     };
-    const int user_token_number_max_ = 457;
+    const int user_token_number_max_ = 452;
 
     if (t <= 0)
       return symbol_kind::S_YYEOF;
@@ -5202,29 +5104,29 @@ switch (yykind)
   {
     switch (this->kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -5257,29 +5159,29 @@ switch (yykind)
     super_type::move (s);
     switch (this->kind ())
     {
-      case 220: // value
-      case 224: // map_value
-      case 265: // ddns_replace_client_name_value
-      case 302: // db_type
-      case 403: // hr_mode
-      case 539: // duid_type
-      case 582: // ncr_protocol_value
+      case 214: // value
+      case 218: // map_value
+      case 259: // ddns_replace_client_name_value
+      case 296: // db_type
+      case 397: // hr_mode
+      case 533: // duid_type
+      case 576: // ncr_protocol_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 202: // "boolean"
+      case 197: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 201: // "floating point"
+      case 196: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 200: // "integer"
+      case 195: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 199: // "constant string"
+      case 194: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -5346,7 +5248,7 @@ switch (yykind)
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5350 "dhcp6_parser.h"
+#line 5252 "dhcp6_parser.h"