]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2898] add pool-id to parsers
authorRazvan Becheriu <razvan@isc.org>
Thu, 15 Jun 2023 12:37:05 +0000 (15:37 +0300)
committerRazvan Becheriu <razvan@isc.org>
Thu, 22 Jun 2023 14:52:48 +0000 (14:52 +0000)
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/dhcp6_parser.yy

index b908415cdf2d761498950f6f7499216ca9204293..4163ca92d98e44c3a7b5966137c84d54970026b4 100644 (file)
@@ -1,6 +1,6 @@
-#line 1 "dhcp4_lexer.cc"
+#line 2 "dhcp4_lexer.cc"
 
-#line 3 "dhcp4_lexer.cc"
+#line 4 "dhcp4_lexer.cc"
 
 #define  YY_INT_ALIGNED short int
 
@@ -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 226
-#define YY_END_OF_BUFFER 227
+#define YY_NUM_RULES 227
+#define YY_END_OF_BUFFER 228
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[2239] =
+static const flex_int16_t yy_accept[2243] =
     {   0,
-      219,  219,    0,    0,    0,    0,    0,    0,    0,    0,
-      227,  225,   10,   11,  225,    1,  219,  216,  219,  219,
-      225,  218,  217,  225,  225,  225,  225,  225,  212,  213,
-      225,  225,  225,  214,  215,    5,    5,    5,  225,  225,
-      225,   10,   11,    0,    0,  207,    0,    0,    0,    0,
+      220,  220,    0,    0,    0,    0,    0,    0,    0,    0,
+      228,  226,   10,   11,  226,    1,  220,  217,  220,  220,
+      226,  219,  218,  226,  226,  226,  226,  226,  213,  214,
+      226,  226,  226,  215,  216,    5,    5,    5,  226,  226,
+      226,   10,   11,    0,    0,  208,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    1,  219,
-      219,    0,  218,  219,    3,    2,    6,    0,  219,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    1,  220,
+      220,    0,  219,  220,    3,    2,    6,    0,  220,    0,
         0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
 
-      208,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  210,    0,    0,    0,    0,    0,    0,
+      209,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  211,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -724,11 +724,11 @@ static const flex_int16_t yy_accept[2239] =
         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,  209,  211,    0,
+        0,    0,    0,    0,    0,    0,    0,  210,  212,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   95,    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,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -736,9 +736,9 @@ static const flex_int16_t yy_accept[2239] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  224,
-      222,    0,  221,  220,    0,    0,    0,    0,    0,    0,
-        0,  181,    0,  180,    0,    0,  101,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  225,
+      223,    0,  222,  221,    0,    0,    0,    0,    0,    0,
+        0,  182,    0,  181,    0,    0,  102,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -746,208 +746,209 @@ static const flex_int16_t yy_accept[2239] =
         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,
+       99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   19,    0,    0,    0,    0,    0,  223,  220,    0,
-        0,    0,    0,    0,    0,  182,    0,  184,    0,    0,
+        0,   19,    0,    0,    0,    0,    0,  224,  221,    0,
+        0,    0,    0,    0,    0,  183,    0,  185,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  105,    0,    0,    0,    0,    0,    0,   86,
-        0,    0,    0,    0,    0,    0,  128,    0,    0,    0,
+        0,    0,  106,    0,    0,    0,    0,    0,    0,   86,
+        0,    0,    0,    0,    0,    0,  129,    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,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,   85,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   90,    0,   42,    0,    0,    0,
+        0,    0,    0,    0,   90,    0,    0,   42,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  124,
-        0,    0,   35,    0,    0,   39,    0,    0,    0,    0,
+      125,    0,    0,   35,    0,    0,   39,    0,    0,    0,
 
-        0,    0,    0,   12,  186,  185,    0,    0,    0,    0,
-      138,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   12,  187,  186,    0,    0,    0,
+        0,  139,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    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,  117,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   37,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   37,
         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,   89,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  139,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  134,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    7,    0,
-        0,  187,    0,    0,    0,    0,    0,    0,    0,    0,
+      140,    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,    0,    0,
+        7,    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,    0,    0,    0,    0,  100,    0,    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,    0,    0,
-        0,  118,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  114,    0,    0,    0,    0,
+        0,    0,    0,  119,    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,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       92,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   93,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  132,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  133,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  144,  112,    0,    0,    0,    0,    0,    0,  117,
-       36,    0,    0,    0,    0,    0,    0,    0,   50,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  119,
-       43,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  145,  113,    0,    0,    0,    0,
+        0,    0,  118,   36,    0,    0,    0,    0,    0,    0,
+        0,   50,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  120,   43,   91,    0,    0,    0,    0,    0,
         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,   80,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  163,    0,    0,    0,    0,
+        0,    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,    0,   97,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  133,    0,    0,
-        0,    0,    0,    0,    0,    0,   58,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   98,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  134,    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,    0,    0,    0,   40,    0,    0,    0,    0,    0,
-       34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
+        0,    0,    0,    0,    0,    0,    0,    0,   40,    0,
+        0,    0,    0,    0,   34,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  121,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   68,    0,    0,    0,    0,    0,    0,   57,    0,
-        0,    0,  130,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   68,    0,    0,    0,    0,
+        0,    0,   57,    0,    0,    0,  131,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      164,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  165,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      169,    0,    0,    0,  167,    0,    0,    0,    0,    0,
+        0,    0,   24,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  170,    0,    0,    0,  168,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  191,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  131,    0,    0,    0,
-        0,    0,    0,    0,  135,    0,    0,    0,    0,    0,
-
-        0,    0,    0,  115,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  129,    0,    0,   23,    0,  140,
+      192,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      132,    0,    0,    0,    0,    0,    0,    0,  136,    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,  173,    0,   88,    0,    0,    0,
-        0,   83,    0,    0,    0,    0,    0,    0,  143,    0,
-       38,    0,  162,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   66,    0,
-        0,    0,    0,    0,    0,    0,  108,  109,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  130,    0,
+        0,   23,    0,  141,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  174,    0,
+       88,    0,    0,    0,    0,   83,    0,    0,    0,    0,
+        0,    0,  144,    0,   38,    0,  163,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   66,    0,    0,    0,    0,    0,    0,    0,
+      109,  110,    0,    0,    0,    0,    0,    0,    0,    0,
 
-       87,    0,    0,    0,    0,    0,   59,    0,    0,    0,
+        0,    0,    0,    0,   87,    0,    0,    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,  138,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  137,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  196,    0,    0,   84,  100,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      195,    0,    0,   84,   99,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   63,    0,    0,
-        0,    0,    0,    0,  170,    0,    0,  168,    0,    0,
-      159,  158,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   63,    0,    0,    0,    0,    0,    0,  171,    0,
+        0,  169,    0,    0,  160,  159,    0,    0,    0,    0,
 
-       22,    0,    0,    0,    0,    0,  183,    0,    0,    0,
-        0,    0,  123,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  152,    0,    0,    0,  161,    0,    0,    0,    0,
+        0,    0,    0,    0,   22,    0,    0,    0,    0,    0,
+      184,    0,    0,    0,    0,    0,  124,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      141,    0,   15,    0,    0,   44,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  172,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   46,   64,    0,    0,  136,
-        0,    0,    0,  127,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   56,    0,
-
-       91,    0,    0,  189,    0,    0,  194,    0,  111,    0,
-        0,    0,  201,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  153,    0,    0,    0,  162,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  142,    0,   15,    0,    0,   44,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   46,
+       64,    0,    0,  137,    0,    0,    0,  128,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,   56,    0,   92,    0,    0,  190,    0,    0,
+      195,    0,  112,    0,    0,    0,  202,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   14,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  125,    0,    0,
-        0,   47,    0,    0,  197,    0,    0,  121,   31,    0,
-
-        0,    0,  157,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  192,    0,  165,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   29,
-        0,    0,    0,    0,    0,   28,    0,    0,  171,    0,
-        0,    0,   55,    0,    0,    0,  206,    0,    0,  113,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   60,    0,    0,  110,
-        0,    0,    0,   45,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   14,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  126,    0,    0,    0,   47,    0,    0,  198,    0,
 
-        0,    0,    0,    0,  142,    0,    0,    0,   30,    0,
-        0,    0,    0,    0,  193,    0,    0,    0,    0,    0,
-      153,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   21,    0,    0,
-      196,    0,   82,    0,   51,    0,    0,    0,    0,  190,
-      188,    0,   32,    0,    0,    0,    0,    0,    0,    0,
-       79,    0,    0,    0,    0,   17,    0,    0,    0,    0,
-        0,    0,  177,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  150,    0,    0,    0,  126,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
-
-        0,    0,    0,    0,   52,    0,    0,    0,    0,   48,
-      155,    0,    0,    0,    0,    0,    0,    0,    0,   71,
+        0,  122,   31,    0,    0,    0,  158,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      193,    0,  166,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   29,    0,    0,    0,    0,    0,   28,
+        0,    0,  172,    0,    0,    0,   55,    0,    0,    0,
+      207,    0,    0,  114,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  178,    0,    0,   13,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  156,    0,  166,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       60,    0,    0,  111,    0,    0,    0,   45,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  160,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  149,    0,   62,
-       61,   20,    0,  174,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,    0,    0,    0,    0,  143,    0,
+        0,    0,   30,    0,    0,    0,    0,    0,  194,    0,
+        0,    0,    0,    0,  154,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   21,    0,    0,  197,    0,   82,    0,   51,    0,
+        0,    0,    0,  191,  189,    0,   32,    0,    0,    0,
+        0,    0,    0,    0,   79,    0,    0,    0,    0,   17,
+        0,    0,    0,    0,    0,    0,  178,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  151,    0,    0,
+        0,  127,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,   97,    0,    0,    0,    0,    0,   52,    0,
+        0,    0,    0,   48,  156,    0,    0,    0,    0,    0,
+        0,    0,    0,   71,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  179,    0,    0,
+       13,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      157,    0,  167,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  148,    0,    0,    0,
-        0,    0,    0,   54,    0,   67,    0,   49,  176,    0,
-      102,    0,    0,    0,    0,    0,    0,    0,    0,   81,
-        0,    0,    0,    0,    0,    0,    0,   77,    0,    0,
-        0,    0,    0,    0,   16,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   53,    0,
-        0,    0,    0,    0,    0,   75,    0,    0,    0,    0,
-        0,    0,    0,    0,  205,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  161,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  150,    0,   62,   61,   20,    0,  175,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   33,    0,    0,   76,    0,    0,
-        0,    0,  154,    0,    0,    0,    0,    0,    0,  199,
-      202,  175,    0,  122,  103,    0,    0,    0,    0,    0,
-        0,    0,    0,   72,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  146,    0,    0,    0,    0,    0,
-        0,  151,    0,   74,    0,   65,    0,    0,    0,    0,
-        0,    0,    0,    0,  104,    0,    0,    0,    0,    0,
-        0,    0,  145,    0,    0,  179,    0,  204,  200,    0,
+        0,    0,    0,    0,  108,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      149,    0,    0,    0,    0,    0,    0,   54,    0,   67,
+        0,   49,  177,    0,  103,    0,    0,    0,    0,    0,
+        0,    0,    0,   81,    0,    0,    0,    0,    0,    0,
+        0,   77,    0,    0,    0,    0,    0,    0,   16,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   53,    0,    0,    0,    0,    0,    0,   75,
+        0,    0,    0,    0,    0,    0,    0,    0,  206,    0,
 
-        0,    0,    0,    0,    0,   73,    0,    0,    0,    0,
-        0,   27,   25,    0,    0,    0,   78,    0,    0,  106,
-        0,    0,   70,    0,    0,    0,  203,    0,    0,    0,
-        0,    0,   69,    0,  147,   26,  198,    0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   33,    0,
+        0,   76,    0,    0,    0,    0,  155,    0,    0,    0,
+        0,    0,    0,  200,  203,  176,    0,  123,  104,    0,
+        0,    0,    0,    0,    0,    0,    0,   72,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  147,    0,
+        0,    0,    0,    0,    0,  152,    0,   74,    0,   65,
+        0,    0,    0,    0,    0,    0,    0,    0,  105,    0,
+        0,    0,    0,    0,    0,    0,  146,    0,    0,  180,
+        0,  205,  201,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   73,
+        0,    0,    0,    0,    0,   27,   25,    0,    0,    0,
+       78,    0,    0,  107,    0,    0,   70,    0,    0,    0,
+      204,    0,    0,    0,    0,    0,   69,    0,  148,   26,
+      199,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -994,286 +995,286 @@ static const YY_CHAR yy_meta[74] =
         1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[2247] =
+static const flex_int16_t yy_base[2251] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2629, 2630,   34, 2625,  145,    0,  207, 2630,  214,  221,
-       13,  228, 2630, 2605,  118,   25,    2,    6, 2630, 2630,
-       73,   11,   17, 2630, 2630, 2630,  104, 2613, 2566,    0,
-     2603,  108, 2620,   24,  262, 2630, 2562,   67, 2568,   84,
-       75,   88,  224,   91,   89,  290,  220, 2560,  206,  285,
-      236,  204,  197,   60,  291, 2569,  247,  308,  315,  214,
-      286, 2552,  212,  320,  344,  318, 2571,  335,    0,  385,
-      401,  415,  422,  427, 2630,    0, 2630,  441,  446,  236,
-      314,  238,  326,  353,  309, 2630, 2568, 2609, 2630,  263,
-
-     2630,  440, 2596,  308, 2565,  364,   10,  329,  359,  384,
-      391,  241, 2606,    0,  501,  408, 2548, 2545, 2549,  418,
-     2545,   80, 2553,  422, 2539, 2540, 2545,   78, 2555, 2538,
-     2547, 2537, 2546,  341,  343,  340, 2539, 2537,  410, 2585,
-     2589, 2535, 2528, 2581, 2521,  174, 2542, 2542, 2536,  340,
-     2529, 2527, 2528, 2520, 2525, 2519,  429, 2530,  412, 2515,
-     2514, 2528,  425, 2514,  422,  447, 2508,  497,  436,  471,
-     2529, 2526, 2527,  432, 2525, 2560, 2559,  450,  446, 2506,
-      471, 2507,  478, 2499, 2516, 2508, 2510,    0,  477,  483,
-      473,  496,  489,  515, 2506, 2630, 2551,  530, 2500,  499,
-
-      523,  530, 2554,  535, 2553,  532, 2552, 2630, 2630,  578,
-      441,  543, 2511, 2503, 2490, 2501, 2505, 2506, 2486, 2497,
-     2501, 2498, 2497,  475,  516, 2535, 2499, 2480, 2477, 2485,
-     2480, 2494, 2490, 2481, 2477, 2489, 2489, 2477, 2479, 2482,
-     2462, 2466, 2479, 2481, 2478, 2470, 2460, 2478, 2630, 2463,
-     2472,  523, 2510, 2456, 2465, 2507, 2454, 2464, 2467,  510,
-     2463, 2502, 2447, 2449, 2460, 2498,  557, 2443,  562, 2456,
-     2436, 2451,  561, 2441, 2447,  527, 2438, 2436, 2436, 2442,
-     2433, 2432, 2439, 2429, 2488, 2444, 2443, 2437,  530, 2444,
-     2439, 2431, 2421, 2436, 2435, 2430, 2434, 2415, 2431, 2417,
-
-     2423, 2430, 2412,  536, 2417, 2414, 2413,  603, 2412, 2407,
-     2421,  571, 2420, 2463, 2422,  560, 2413, 2401,  561, 2630,
-     2630,  583, 2630, 2630, 2399,  566,  461, 2447,  586, 2457,
-      580, 2630, 2456, 2630, 2450,  630, 2630, 2412,  590, 2389,
-     2398, 2446, 2406, 2389, 2406, 2442, 2402, 2385, 2391, 2443,
-     2398, 2401, 2392, 2395, 2381, 2392, 2436, 2430, 2388, 2385,
-      621, 2391, 2431, 2366, 2424, 2377, 2372, 2366, 2368, 2371,
-     2418, 2375, 2364, 2380, 2414, 2360,  628, 2374, 2359, 2358,
-     2371, 2369, 2367, 2367, 2366, 2361, 2368, 2363, 2359,  599,
-     2357, 2360, 2355, 2341, 2353, 2349, 2399,  589,  602, 2393,
-
-     2630, 2340, 2356, 2390, 2340, 2339, 2338, 2331, 2333, 2345,
-     2336, 2343, 2324, 2341, 2336,  610, 2383, 2336, 2333, 2336,
-     2630, 2335,  559, 2325, 2337,  600, 2312, 2313, 2334, 2325,
-     2315, 2366, 2311, 2325,  614, 2311, 2323, 2322, 2321, 2316,
-     2358, 2318, 2317, 2316, 2315, 2298, 2306, 2356, 2315, 2295,
-     2353, 2630, 2295, 2294,  661, 2307, 2305, 2630, 2630, 2305,
-     2294, 2286,  605, 2345, 2344, 2630, 2343, 2630,  639,  687,
-     2302,  606, 2341, 2283, 2294, 2333, 2286, 2288, 2290, 2277,
-     2285, 2273, 2630, 2278, 2271, 2283, 2286, 2273, 2272, 2630,
-      631, 2274, 2271,  626, 2269, 2271, 2630, 2316, 2278, 2275,
-
-     2260, 2274, 2272, 2272, 2266,  678, 2273, 2261, 2254, 2305,
-     2630, 2252, 2268, 2302, 2263, 2261, 2259, 2260, 2244, 2253,
-     2295, 2246, 2245, 2240, 2239, 2290, 2234,  649, 2253, 2227,
-     2234, 2239, 2249, 2283, 2287, 2630, 2232, 2228,  710, 2226,
-     2278, 2234, 2233, 2227, 2234, 2218, 2218, 2228, 2216, 2230,
-     2230, 2218, 2214, 2212, 2630, 2269, 2630, 2211, 2222, 2261,
-     2206, 2205, 2210, 2219, 2213, 2207, 2216, 2258, 2252, 2214,
-     2198, 2193, 2213, 2188, 2194,  589, 2208, 2201, 2205, 2188,
-     2246, 2187, 2187, 2238, 2183, 2184, 2183, 2181, 2198, 2630,
-     2194, 2231, 2630, 2182, 2180, 2630, 2191, 2227, 2226, 2186,
-
-     2170, 2187, 2227, 2630, 2630, 2630,  684,  683, 2167,  713,
-     2630, 2177, 2176,  662, 2183, 2163, 2173, 2215, 2160, 2213,
-     2158, 2168, 2210, 2155, 2162, 2155, 2167, 2149, 2149, 2164,
-     2163, 2147,  621, 2161, 2160, 2160, 2142, 2147, 2188, 2155,
-     2152, 2146, 2191, 2135, 2150, 2150, 2148, 2148, 2630, 2133,
-     2130, 2188, 2143, 2135, 2141, 2132, 2140, 2125, 2176, 2140,
-     2122, 2134, 2126,  530, 2117, 2116, 2110, 2115, 2130, 2127,
-     2128, 2107, 2117, 2123, 2166, 2121, 2113, 2104, 2630, 2105,
-     2107, 2102, 2115, 2107, 2106, 2111, 2150, 2149, 2100,   16,
-     2109, 2146, 2091, 2144, 2091, 2094, 2087, 2630, 2101, 2080,
-
-     2084, 2098, 2093, 2089, 2134, 2086, 2093, 2131, 2630, 2076,
-     2090, 2089, 2092, 2073, 2125, 2124, 2071, 2122, 2082, 2062,
-       20,  242, 2630,  209,  239,  322,  722,  363,  379,  472,
-      552,  607,  603,  601,  620,  646,  650,  643, 2630,  672,
-      664, 2630,  688,  699,  669,  666,  666,  675,  694,  688,
-      677,  673,  688,  690,  737,  702,  745,  705,  706,  747,
-      748,  702,  702,  712,  717,  703,  706,  709,  718,  718,
-      702,  759,  712,  722,  725,  763,  726,  719,  723,  720,
-      722,  769,  770,  734,  778,  735,  737, 2630,  740,  735,
-      726,  741,  746,  743,  745,  747,  746,  734,  748,  746,
-
-      754,  790,  752,  797,  798,  748,  740,  750,  798,  757,
-      806, 2630,  807,  760,  762,  758,  752,  768,  756,  766,
-      815,  811,  774,  763,  776, 2630,  766,  777,  766,  779,
-      769,  782,  826,  827,  770,  781,  766,  789,  780,  769,
-      775,  830,  794,  778,  790,  834,  835,  782,  837,  801,
-      796,  801,  799,  843,  785,  797,  800,  804,  796,  793,
-     2630,  857,  816,  817,  805,  819,  809,  812,  823,  808,
-      815,  821,  822,  814,  828,  868,  844,  818,  832,  837,
-      834,  816,  823,  837,  882,  839,  836,  837,  835,  844,
-     2630,  840,  835,  850,  847,  833,  835,  854,  851,  839,
-
-      846,  847,  856,  895,  861,  898,  860,  850,  848,  847,
-      858,  854,  910,  857,  868,  853,  854,  860,  876,  872,
-      867,  914, 2630,  878,  878,  871,  882,  880,  925,  867,
-      869,  881,  889,  887,  874,  872,  934,  891,  877,  883,
-      881, 2630, 2630,  891,  896,  901,  889,  899,  901, 2630,
-     2630,  902,  889,  907,  894,  896,  889,  906, 2630,  895,
-      913,  900,  950,  901,  953,  899,  903,  921,  962, 2630,
-     2630,  907,  911,  910,  907,  923,  968,  921,  911,  912,
-      908,  921,  932,  933,  928,  929,  931,  924,  926,  922,
-      928,  928,  930,  945,  928,  987,  944,  949,  926,  949,
-
-      935,  934, 2630,  941,  942,  991,  992,  944,  957,  995,
-      953,  943,  958,  952,  960,  947,  979,  987, 1009,  957,
-      952, 1007, 1008,  970, 1010, 2630, 1016,  959,  975,  979,
-     1020,  970,  969,  964,  965,  977,  972,  968,  971,  972,
-      982,  992, 1028,  980,  977,  995,  987,  982, 1040,  997,
-      998,  989, 2630, 1003,  992,  995, 1003, 1005,  990, 1002,
-     1007, 1004, 1002, 1049, 1015,  999, 1000, 2630, 1016, 1019,
-     1002, 1019, 1014, 1063, 1006, 1025, 2630, 1024, 1027, 1013,
-     1008, 1026, 1066, 1024, 1020, 1017, 1070, 1071, 1033, 1019,
-     1037, 1037, 1037, 1038, 1039, 1025, 1040, 1032, 1039, 1029,
-
-     1047, 1046, 1033, 1050, 2630, 1042, 1048, 1051, 1096, 1043,
-     2630, 1046, 1051, 1096, 1047, 1059, 1053, 1054, 1052, 1054,
-     1064, 1109, 1053, 1054, 1054, 1113, 1057, 1069, 1062, 2630,
-     1058, 1066, 1064, 1115, 1058, 1079, 1065, 1066, 1067, 1068,
-     1074, 1082, 1073, 1078, 1088, 1089, 1090, 1095, 1136, 1108,
-     1113, 2630, 1095, 1092, 1088, 1102, 1085, 1085, 2630, 1086,
-     1146, 1089, 2630, 1100, 1090, 1110, 1109, 1100, 1111, 1154,
-     1115, 1108, 1112, 1116, 1099, 1116, 1117, 1108, 1163, 1110,
-     2630, 1162, 1109, 1112, 1130, 1112, 1113, 1113, 1134, 1131,
-     1119, 1137, 1125, 1139, 1125, 1133, 1142, 1122, 1137, 1144,
-
-     1186, 1132, 1183, 2630, 1189, 1190, 1132, 1142, 1152, 1136,
-     1156, 1144, 1140, 1147, 1156, 1144, 1151, 1152, 1164, 1205,
-     1152, 1207, 1151, 1150, 1154, 1171, 1212, 1162, 1161, 1167,
-     1165, 1163, 1158, 1219, 1170, 1221, 1217, 1223, 2630, 1164,
-     1181, 1174, 1165, 1184, 1172, 1182, 1183, 1179, 1192, 1193,
-     2630, 1177, 1173, 1179, 2630, 1180, 1240, 1199, 1180, 1199,
-     1200, 1202, 1241, 1194, 1248, 1249, 1202, 1207, 1201, 1199,
-     1210, 1209, 1193, 1198, 1204, 1217, 2630, 1239, 1230, 1262,
-     1202, 1224, 1219, 1219, 1223, 1268, 2630, 1211, 1211, 1214,
-     1231, 1226, 1230, 1225, 2630, 1217, 1234, 1214, 1235, 1225,
-
-     1224, 1277, 1231, 2630, 1244, 1244, 1282, 1229, 1239, 1286,
-     1244, 1249, 1235, 1295, 1238, 1239, 1253, 1251, 1243, 1249,
-     1245, 1263, 1264, 1265, 2630, 1301, 1256, 2630, 1266, 2630,
-     1251, 1262, 1253, 1272, 1265, 1263, 1256, 1268, 1312, 1276,
-     1265, 1272, 1273, 1279, 2630, 1272, 2630, 1324, 1277, 1266,
-     1327, 2630, 1328, 1270, 1276, 1283, 1327, 1289, 2630, 1290,
-     2630, 1277, 2630, 1277, 1280, 1294, 1299, 1282, 1341, 1298,
-     1299, 1339, 1291, 1296, 1347, 1343, 1296, 1350, 2630, 1301,
-     1298, 1353, 1354, 1311, 1312, 1314, 2630, 2630, 1306, 1301,
-     1355, 1304, 1320, 1363, 1305, 1317, 1306, 1323, 1338, 1369,
-
-     2630, 1326, 1319, 1328, 1319, 1330, 2630, 1375, 1312, 1323,
-     1338, 1374, 1326, 1337, 1338, 1339, 1336, 1380, 1343, 1345,
-     1334, 1344, 1350, 1337, 1333, 1393, 1389, 1347, 1393, 1399,
-     1356, 2630, 1342, 1358, 1349, 1352, 1361, 1362, 1359, 1349,
-     1352, 1352, 1353, 1364, 1359, 1414, 1361, 1416, 1359, 1364,
-     1420, 1416, 1357, 1372, 1365, 1368, 1381, 1382, 1380, 1429,
-     2630, 1378, 1384, 2630, 2630, 1389, 1381, 1391, 1376, 1432,
-     1379, 1379, 1440, 1441, 1385, 1395, 1444, 2630, 1392, 1393,
-     1395, 1448, 1389, 1392, 2630, 1410, 1411, 2630, 1411, 1399,
-     2630, 2630, 1412, 1395, 1415, 1416, 1402, 1404, 1463, 1413,
-
-     2630, 1465, 1414, 1408, 1468, 1448, 2630, 1470, 1427, 1472,
-     1423, 1470, 2630, 1418, 1477, 1427, 1421, 1418, 1421, 1423,
-     1440, 1479, 1432, 1444, 1447, 1444, 1436, 1439, 1432, 1440,
-     1430, 2630, 1438, 1453, 1438, 2630, 1440, 1494, 1442, 1496,
-     1458, 1458, 1461, 1461, 1458, 1502, 1464, 1465, 1457, 1458,
-     2630, 1459, 2630, 1469, 1461, 2630, 1467, 1472, 1473, 1470,
-     1514, 1462, 1477, 1478, 1470, 2630, 1480, 1468, 1469, 1469,
-     1475, 1474, 1472, 1526, 1487, 2630, 2630, 1528, 1475, 2630,
-     1476, 1477, 1483, 2630, 1492, 1486, 1541, 1488, 1481, 1493,
-     1488, 1498, 1509, 1502, 1508, 1498, 1553, 1506, 2630, 1515,
-
-     2630, 1512, 1557, 2630, 1510, 1533, 2630, 1560, 2630, 1518,
-     1503, 1563, 2630, 1564, 1521, 1526, 1508, 1568, 1564, 1528,
-     1525, 1521, 1514, 1521, 1570, 1528, 1529, 1519, 1524, 1536,
-     1582, 1536, 1584, 1534, 1582, 1546, 1546, 1542, 1586, 1534,
-     1539, 1537, 1596, 1540, 1548, 1554, 1542, 1601, 1597, 1560,
-     1604, 1565, 1554, 1548, 1608, 1550, 1551, 1565, 1612, 1569,
-     1569, 1615, 1557, 1574, 1570, 1568, 1575, 1559, 1617, 1618,
-     1619, 1582, 1575, 1574, 1574, 1569, 1587, 2630, 1578, 1584,
-     1589, 1576, 1577, 1576, 1578, 1633, 1579, 2630, 1575, 1593,
-     1642, 2630, 1600, 1613, 2630, 1645, 1598, 2630, 2630, 1589,
-
-     1600, 1649, 2630, 1595, 1600, 1598, 1648, 1607, 1612, 1598,
-     1601, 1617, 1606, 1604, 1618, 1605, 2630, 1607, 2630, 1625,
-     1611, 1620, 1663, 1606, 1611, 1671, 1620, 1630, 1631, 2630,
-     1676, 1616, 1673, 1631, 1675, 2630, 1626, 1682, 2630, 1625,
-     1640, 1628, 2630, 1638, 1639, 1688, 2630, 1646, 1650, 2630,
-     1686, 1652, 1628, 1646, 1647, 1656, 1638, 1645, 1657, 1656,
-     1647, 1697, 1649, 1645, 1705, 1647, 1648, 1708, 1704, 1710,
-     1660, 1712, 1665, 1655, 1671, 1664, 2630, 1717, 1718, 2630,
-     1667, 1720, 1662, 2630, 1665, 1675, 1719, 1667, 1682, 1669,
-     1728, 1685, 1671, 1678, 1678, 1733, 1690, 1691, 1678, 1680,
-
-     1694, 1680, 1740, 1693, 2630, 1737, 1688, 1685, 2630, 1701,
-     1688, 1701, 1688, 1709, 2630, 1706, 1751, 1704, 1701, 1702,
-     2630, 1755, 1714, 1697, 1699, 1715, 1708, 1698, 1714, 1715,
-     1724, 1714, 1766, 1726, 1710, 1719, 1765, 2630, 1723, 1772,
-     2630, 1721, 2630, 1715, 2630, 1722, 1776, 1777, 1774, 2630,
-     2630, 1736, 2630, 1776, 1738, 1739, 1724, 1725, 1733, 1787,
-     2630, 1735, 1784, 1785, 1740, 2630, 1735, 1753, 1735, 1741,
-     1754, 1749, 2630, 1746, 1751, 1749, 1801, 1745, 1759, 1804,
-     1752, 1749, 1749, 2630, 1764, 1765, 1766, 2630, 1767, 1757,
-     1769, 1814, 1767, 1816, 1758, 1766, 1767, 1780, 2630, 1781,
-
-     1762, 1763, 1770, 1772, 2630, 1786, 1783, 1823, 1784, 2630,
-     2630, 1788, 1773, 1773, 1788, 1781, 1780, 1791, 1778, 2630,
-     1794, 1782, 1785, 1841, 1781, 1800, 1839, 1803, 1796, 1795,
-     1804, 1806, 1810, 2630, 1846, 1801, 2630, 1805, 1796, 1855,
-     1798, 1857, 1858, 1859, 1817, 1861, 2630, 1803, 2630, 1858,
-     1820, 1821, 1808, 1816, 1827, 1814, 1825, 1811, 1809, 1817,
-     1816, 1821, 1813, 1878, 1831, 1832, 1822, 1839, 1838, 1879,
-     1823, 1842, 1843, 2630, 1848, 1841, 1880, 1847, 1834, 1849,
-     1894, 1851, 1854, 1849, 1854, 1843, 1852, 2630, 1901, 2630,
-     2630, 2630, 1862, 2630, 1903, 1845, 1905, 1906, 1849, 1908,
-
-     1856, 1905, 1906, 1868, 1908, 1854, 1858, 1876, 1917, 1876,
-     2630, 1867, 1857, 1916, 1882, 1875, 1871, 1925, 1868, 1870,
-     1869, 1876, 1919, 1873, 1932, 1876, 2630, 1881, 1891, 1893,
-     1895, 1878, 1886, 2630, 1881, 2630, 1893, 2630, 2630, 1898,
-     2630, 1899, 1899, 1890, 1946, 1890, 1900, 1885, 1898, 2630,
-     1900, 1908, 1953, 1894, 1896, 1893, 1917, 2630, 1904, 1911,
-     1912, 1915, 1962, 1905, 2630, 1959, 1906, 1914, 1923, 1909,
-     1925, 1924, 1927, 1920, 1915, 1915, 1927, 1922, 2630, 1933,
-     1921, 1974, 1925, 1937, 1982, 2630, 1928, 1940, 1985, 1934,
-     1936, 1934, 1935, 1990, 2630, 1943, 1930, 1945, 1950, 1942,
-
-     1948, 1997, 1998, 1999, 1956, 2001, 2002, 1946, 1950, 1946,
-     1962, 1945, 1957, 1951, 2630, 1967, 2011, 2630, 1968, 1953,
-     1971, 1962, 2630, 1963, 1977, 1973, 1966, 1961, 1967, 2630,
-     2630, 2630, 2022, 2630, 2630, 1965, 1973, 1968, 2021, 1987,
-     1984, 2029, 1990, 2630, 2031, 1973, 2033, 1976, 1989, 1988,
-     1989, 1979, 1991, 1987, 2630, 1982, 2042, 1995, 2004, 1997,
-     2041, 2630, 1988, 2630, 2000, 2630, 2044, 2050, 1992, 2008,
-     2053, 2009, 2055, 2056, 2630, 2013, 2007, 2000, 2020, 2017,
-     2009, 2013, 2630, 2060, 2009, 2630, 2019, 2630, 2630, 2010,
-     2018, 2065, 2025, 2018, 2073, 2021, 2021, 2017, 2019, 2034,
-
-     2079, 2080, 2022, 2038, 2023, 2630, 2084, 2031, 2038, 2087,
-     2031, 2630, 2630, 2041, 2090, 2038, 2630, 2042, 2041, 2630,
-     2094, 2043, 2630, 2037, 2037, 2054, 2630, 2055, 2100, 2046,
-     2102, 2103, 2630, 2104, 2630, 2630, 2630, 2630, 2110, 2113,
-     2116, 2117, 2119, 2122, 2125, 2128
+     2634, 2635,   34, 2630,  145,    0,  207, 2635,  214,  221,
+       13,  228, 2635, 2610,  118,   25,    2,    6, 2635, 2635,
+       73,   11,   17, 2635, 2635, 2635,  104, 2618, 2571,    0,
+     2608,  108, 2625,   24,  262, 2635, 2567,   67, 2573,   84,
+       75,   88,  224,   91,   89,  290,  220, 2565,  206,  285,
+      236,  204,  197,   60,  291, 2574,  247,  308,  315,  214,
+      286, 2557,  212,  320,  344,  318, 2576,  335,    0,  385,
+      401,  415,  422,  427, 2635,    0, 2635,  441,  446,  236,
+      314,  238,  326,  353,  309, 2635, 2573, 2614, 2635,  263,
+
+     2635,  440, 2601,  308, 2570,  364,   10,  329,  359,  384,
+      391,  241, 2611,    0,  501,  408, 2553, 2550, 2554,  418,
+     2550,   80, 2558,  422, 2544, 2545, 2550,   78, 2560, 2543,
+     2552, 2542, 2551,  341,  343,  340, 2544, 2542,  410, 2590,
+     2594, 2540, 2533, 2586, 2526,  174, 2547, 2547, 2541,  340,
+     2534, 2532, 2533, 2525, 2530, 2524,  429, 2535,  412, 2520,
+     2519, 2533,  425, 2519,  422,  447, 2513,  497,  436,  471,
+     2534, 2531, 2532,  432, 2530, 2565, 2564,  450,  446, 2511,
+      471, 2512,  478, 2504, 2521, 2513, 2515,    0,  477,  483,
+      473,  496,  489,  515, 2511, 2635, 2556,  530, 2505,  499,
+
+      523,  530, 2559,  535, 2558,  532, 2557, 2635, 2635,  578,
+      441,  543, 2516, 2508, 2495, 2506, 2510, 2511, 2491, 2502,
+     2506, 2503, 2502,  475,  516, 2540, 2504, 2485, 2482, 2490,
+     2485, 2499, 2495, 2486, 2482, 2494, 2494, 2482, 2484, 2487,
+     2467, 2471, 2484, 2486, 2483, 2475, 2465, 2483, 2635, 2468,
+     2477,  523, 2515, 2461, 2470, 2512, 2459, 2469, 2472,  510,
+     2468, 2507, 2452, 2454, 2465, 2503,  557, 2448,  562, 2461,
+     2441, 2456,  561, 2446, 2452,  527, 2443, 2441, 2441, 2447,
+     2438, 2437, 2444, 2434, 2493, 2449, 2448, 2442,  530, 2449,
+     2444, 2436, 2426, 2441, 2440, 2435, 2439, 2420, 2436, 2422,
+
+     2428, 2435, 2417,  536, 2422, 2419, 2418,  603, 2417, 2412,
+     2426,  571, 2425, 2468, 2427,  560, 2418, 2406,  561, 2635,
+     2635,  583, 2635, 2635, 2404,  566,  461, 2452,  586, 2462,
+      580, 2635, 2461, 2635, 2455,  630, 2635, 2417,  590, 2394,
+     2403, 2451, 2411, 2394, 2411, 2447, 2407, 2390, 2396, 2448,
+     2403, 2406, 2397, 2400, 2386, 2397, 2441, 2435, 2393, 2390,
+      621, 2396, 2436, 2371, 2429, 2382, 2377, 2371, 2373, 2376,
+     2423, 2380, 2369, 2385, 2419, 2365,  628, 2379, 2364, 2363,
+     2376, 2374, 2372, 2372, 2371, 2366, 2373, 2368, 2364,  599,
+     2362, 2365, 2360, 2346, 2358, 2354, 2404,  589,  602, 2398,
+
+     2635, 2345, 2361, 2395, 2345, 2344, 2343, 2336, 2338, 2350,
+     2341, 2348, 2329, 2346, 2341,  653, 2388, 2341, 2338, 2341,
+     2635, 2340,  559, 2330, 2342,  604, 2317, 2318, 2339, 2330,
+     2320, 2371, 2316, 2330,  618, 2316, 2328, 2327, 2326, 2321,
+     2363, 2323, 2322, 2321, 2320, 2303, 2311, 2361, 2320, 2300,
+     2358, 2635, 2300, 2299,  663, 2312, 2310, 2635, 2635, 2310,
+     2299, 2291,  606, 2350, 2349, 2635, 2348, 2635,  639,  704,
+     2307,  639, 2346, 2288, 2299, 2338, 2291, 2293, 2295, 2282,
+     2290, 2278, 2635, 2283, 2276, 2288, 2291, 2278, 2277, 2635,
+      631, 2279, 2276,  637, 2274, 2276, 2635, 2321, 2283, 2280,
+
+     2265, 2279, 2277, 2277, 2271,  678, 2278, 2266, 2259, 2310,
+     2635, 2257, 2273, 2307, 2268, 2266, 2264, 2265, 2249, 2258,
+     2300, 2251, 2250, 2245, 2244, 2295, 2239,  591, 2258, 2232,
+     2239, 2244, 2254, 2288, 2292, 2635, 2237, 2233,  679, 2231,
+     2283, 2239, 2238, 2232, 2239, 2223, 2223, 2233, 2221, 2235,
+     2235, 2223, 2219, 2217, 2635, 2226, 2273, 2635, 2215, 2226,
+     2265, 2210, 2209, 2214, 2223, 2217, 2211, 2220, 2262, 2256,
+     2218, 2202, 2197, 2217, 2192, 2198,  589, 2212, 2205, 2209,
+     2192, 2250, 2191, 2191, 2242, 2187, 2188, 2187, 2185, 2202,
+     2635, 2198, 2235, 2635, 2186, 2184, 2635, 2195, 2231, 2230,
+
+     2190, 2174, 2191, 2231, 2635, 2635, 2635,  649,  653, 2171,
+      696, 2635, 2181, 2180,  646, 2187, 2167, 2177, 2219, 2164,
+     2217, 2162, 2172, 2214, 2159, 2166, 2159, 2171, 2153, 2153,
+     2168, 2167, 2151,  644, 2165, 2164, 2164, 2146, 2151, 2192,
+     2159, 2156, 2150, 2195, 2139, 2154, 2154, 2152, 2152, 2635,
+     2137, 2134, 2192, 2147, 2139, 2145, 2136, 2144, 2129, 2180,
+     2144, 2126, 2138, 2130,  530, 2121, 2120, 2114, 2119, 2134,
+     2131, 2132, 2111, 2121, 2127, 2170, 2125, 2117, 2108, 2635,
+     2109, 2111, 2106, 2119, 2111, 2110, 2115, 2154, 2153, 2104,
+       16, 2113, 2150, 2095, 2148, 2095, 2098, 2091, 2106, 2635,
+
+     2104, 2083, 2087, 2101, 2096, 2092, 2137, 2089, 2096, 2134,
+     2635, 2079, 2093, 2092, 2095, 2076, 2128, 2127, 2074, 2121,
+      203,  209,  278,  361, 2635,  346,  377,  472,  706,  568,
+      569,  568,  584,  695,  664,  663,  648,  655,  667,  660,
+     2635,  676,  674, 2635,  697,  708,  676,  673,  673,  682,
+      694,  688,  677,  673,  687,  688,  735,  709,  741,  701,
+      716,  738,  745,  701,  701,  711,  720,  707,  710,  713,
+      722,  722,  706,  763,  716,  726,  729,  767,  730,  723,
+      727,  724,  726,  773,  774,  738,  782,  739,  741, 2635,
+      744,  739,  730,  745,  750,  747,  749,  751,  750,  738,
+
+      752,  750,  758,  794,  756,  801,  802,  752,  744,  754,
+      802,  761,  810, 2635,  811,  764,  766,  762,  756,  772,
+      760,  770,  819,  815,  778,  767,  780, 2635,  770,  781,
+      770,  783,  773,  786,  830,  831,  832,  775,  786,  771,
+      794,  785,  774,  780,  835,  799,  783,  795,  839,  840,
+      787,  842,  806,  801,  806,  804,  848,  790,  802,  805,
+      809,  801,  798, 2635,  862,  821,  822,  810,  824,  814,
+      817,  828,  813,  820,  826,  827,  819,  833,  873,  849,
+      823,  837,  842,  839,  821,  828,  842,  887,  844,  841,
+      842,  840,  849, 2635,  845,  840,  855,  852,  838,  840,
+
+      859,  856,  844,  851,  852,  861,  900,  866,  903,  865,
+      855,  853,  852,  863,  859,  915,  862,  873,  858,  859,
+      865,  881,  877,  872,  919, 2635,  883,  883,  876,  887,
+      885,  930,  872,  874,  886,  894,  892,  879,  877,  939,
+      896,  882,  888,  886, 2635, 2635,  896,  901,  906,  894,
+      904,  906, 2635, 2635,  907,  894,  912,  899,  901,  894,
+      911, 2635,  900,  918,  905,  955,  906,  958,  904,  908,
+      926,  967, 2635, 2635, 2635,  912,  916,  915,  912,  928,
+      973,  926,  916,  917,  913,  926,  937,  938,  933,  934,
+      936,  929,  931,  927,  933,  933,  935,  950,  933,  992,
+
+      949,  954,  931,  954,  940,  939, 2635,  946,  947,  996,
+      997,  949,  962, 1000,  958,  948,  963,  957,  965,  952,
+      984,  992, 1014,  962,  957, 1012, 1013,  975, 1015, 2635,
+     1021,  964,  980,  984, 1025,  975,  974,  969,  970,  982,
+      977,  973,  976,  977,  987,  997, 1033,  985,  982, 1000,
+      992,  987, 1045, 1002, 1003,  994, 2635, 1008,  997, 1000,
+     1008, 1010,  995, 1007, 1012, 1009, 1007, 1054, 1020, 1004,
+     1005, 2635, 1021, 1024, 1007, 1024, 1019, 1068, 1011, 1030,
+     2635, 1029, 1032, 1018, 1013, 1031, 1071, 1029, 1025, 1022,
+     1075, 1076, 1038, 1024, 1042, 1042, 1042, 1043, 1044, 1030,
+
+     1045, 1037, 1044, 1034, 1052, 1051, 1038, 1055, 2635, 1047,
+     1053, 1056, 1101, 1048, 2635, 1051, 1056, 1101, 1052, 1064,
+     1058, 1059, 1057, 1059, 1069, 1114, 1058, 1059, 1059, 1118,
+     1062, 1074, 1067, 2635, 1063, 1071, 1069, 1120, 1063, 1084,
+     1070, 1071, 1072, 1073, 1079, 1087, 1078, 1083, 1093, 1094,
+     1095, 1100, 1141, 1113, 1118, 2635, 1100, 1097, 1093, 1107,
+     1090, 1090, 2635, 1091, 1151, 1094, 2635, 1105, 1095, 1115,
+     1114, 1105, 1116, 1159, 1120, 1113, 1117, 1121, 1104, 1121,
+     1122, 1113, 1168, 1115, 2635, 1167, 1114, 1117, 1135, 1117,
+     1118, 1118, 1139, 1136, 1124, 1142, 1130, 1144, 1130, 1138,
+
+     1147, 1127, 1142, 1149, 1191, 1137, 1188, 2635, 1194, 1195,
+     1137, 1147, 1157, 1141, 1161, 1149, 1145, 1152, 1161, 1149,
+     1156, 1157, 1169, 1210, 1157, 1212, 1156, 1155, 1159, 1176,
+     1217, 1167, 1166, 1172, 1170, 1168, 1163, 1224, 1175, 1226,
+     1222, 1228, 2635, 1169, 1186, 1179, 1170, 1189, 1177, 1187,
+     1188, 1184, 1197, 1198, 2635, 1182, 1178, 1184, 2635, 1185,
+     1245, 1204, 1185, 1204, 1205, 1207, 1246, 1199, 1253, 1254,
+     1207, 1212, 1206, 1204, 1215, 1214, 1198, 1203, 1209, 1222,
+     2635, 1244, 1235, 1267, 1207, 1229, 1224, 1224, 1228, 1273,
+     2635, 1216, 1216, 1219, 1236, 1231, 1235, 1230, 2635, 1222,
+
+     1239, 1219, 1240, 1230, 1229, 1282, 1236, 2635, 1249, 1249,
+     1287, 1234, 1244, 1291, 1249, 1254, 1240, 1300, 1243, 1244,
+     1258, 1256, 1248, 1254, 1250, 1268, 1269, 1270, 2635, 1306,
+     1261, 2635, 1271, 2635, 1256, 1267, 1258, 1277, 1270, 1268,
+     1261, 1273, 1317, 1281, 1270, 1277, 1278, 1284, 2635, 1277,
+     2635, 1329, 1282, 1271, 1332, 2635, 1333, 1275, 1281, 1288,
+     1332, 1294, 2635, 1295, 2635, 1282, 2635, 1282, 1285, 1299,
+     1304, 1287, 1346, 1303, 1304, 1344, 1296, 1301, 1352, 1348,
+     1301, 1355, 2635, 1306, 1303, 1358, 1359, 1316, 1317, 1319,
+     2635, 2635, 1311, 1306, 1360, 1309, 1325, 1368, 1310, 1322,
+
+     1311, 1328, 1343, 1374, 2635, 1331, 1324, 1333, 1324, 1335,
+     2635, 1380, 1317, 1328, 1343, 1379, 1331, 1342, 1343, 1344,
+     1341, 1385, 1348, 1350, 1339, 1349, 1355, 1342, 1338, 1398,
+     1394, 1352, 1398, 1404, 1361, 2635, 1347, 1363, 1354, 1357,
+     1366, 1367, 1364, 1354, 1357, 1357, 1358, 1369, 1364, 1419,
+     1366, 1421, 1364, 1369, 1425, 1421, 1362, 1377, 1370, 1373,
+     1386, 1387, 1385, 1434, 2635, 1383, 1389, 2635, 2635, 1394,
+     1386, 1396, 1381, 1437, 1384, 1384, 1445, 1446, 1390, 1400,
+     1449, 2635, 1397, 1398, 1400, 1453, 1394, 1397, 2635, 1415,
+     1416, 2635, 1416, 1404, 2635, 2635, 1417, 1400, 1420, 1421,
+
+     1407, 1409, 1468, 1418, 2635, 1470, 1419, 1413, 1473, 1453,
+     2635, 1475, 1432, 1477, 1428, 1475, 2635, 1423, 1482, 1432,
+     1426, 1423, 1426, 1428, 1445, 1484, 1437, 1449, 1452, 1449,
+     1441, 1444, 1437, 1445, 1435, 2635, 1443, 1458, 1443, 2635,
+     1445, 1499, 1447, 1501, 1463, 1463, 1466, 1466, 1463, 1507,
+     1469, 1470, 1462, 1463, 2635, 1464, 2635, 1474, 1466, 2635,
+     1472, 1477, 1478, 1475, 1519, 1467, 1482, 1483, 1475, 2635,
+     1485, 1473, 1474, 1474, 1480, 1479, 1477, 1531, 1492, 2635,
+     2635, 1533, 1480, 2635, 1481, 1482, 1488, 2635, 1497, 1491,
+     1546, 1493, 1486, 1498, 1493, 1503, 1514, 1507, 1513, 1503,
+
+     1558, 1511, 2635, 1520, 2635, 1517, 1562, 2635, 1515, 1538,
+     2635, 1565, 2635, 1523, 1508, 1568, 2635, 1569, 1526, 1531,
+     1513, 1573, 1569, 1533, 1530, 1526, 1519, 1526, 1575, 1533,
+     1534, 1524, 1529, 1541, 1587, 1541, 1589, 1539, 1587, 1551,
+     1551, 1547, 1591, 1539, 1544, 1542, 1601, 1545, 1553, 1559,
+     1547, 1606, 1602, 1565, 1609, 1570, 1559, 1553, 1613, 1555,
+     1556, 1570, 1617, 1574, 1574, 1620, 1562, 1579, 1575, 1573,
+     1580, 1564, 1622, 1623, 1624, 1587, 1580, 1579, 1579, 1574,
+     1592, 2635, 1583, 1589, 1594, 1581, 1582, 1581, 1583, 1638,
+     1584, 2635, 1580, 1598, 1647, 2635, 1605, 1618, 2635, 1650,
+
+     1603, 2635, 2635, 1594, 1605, 1654, 2635, 1600, 1605, 1603,
+     1653, 1612, 1617, 1603, 1606, 1622, 1611, 1609, 1623, 1610,
+     2635, 1612, 2635, 1630, 1616, 1625, 1668, 1611, 1616, 1676,
+     1625, 1635, 1636, 2635, 1681, 1621, 1678, 1636, 1680, 2635,
+     1631, 1687, 2635, 1630, 1645, 1633, 2635, 1643, 1644, 1693,
+     2635, 1651, 1655, 2635, 1691, 1657, 1633, 1651, 1652, 1661,
+     1643, 1650, 1662, 1661, 1652, 1702, 1654, 1650, 1710, 1652,
+     1653, 1713, 1709, 1715, 1665, 1717, 1670, 1660, 1676, 1669,
+     2635, 1722, 1723, 2635, 1672, 1725, 1667, 2635, 1670, 1680,
+     1724, 1672, 1687, 1674, 1733, 1690, 1676, 1683, 1683, 1738,
+
+     1695, 1696, 1683, 1685, 1699, 1685, 1745, 1698, 2635, 1742,
+     1693, 1690, 2635, 1706, 1693, 1706, 1693, 1714, 2635, 1711,
+     1756, 1709, 1706, 1707, 2635, 1760, 1719, 1702, 1704, 1720,
+     1713, 1703, 1719, 1720, 1729, 1719, 1771, 1731, 1715, 1724,
+     1770, 2635, 1728, 1777, 2635, 1726, 2635, 1720, 2635, 1727,
+     1781, 1782, 1779, 2635, 2635, 1741, 2635, 1781, 1743, 1744,
+     1729, 1730, 1738, 1792, 2635, 1740, 1789, 1790, 1745, 2635,
+     1740, 1758, 1740, 1746, 1759, 1754, 2635, 1751, 1756, 1754,
+     1806, 1750, 1764, 1809, 1757, 1754, 1754, 2635, 1769, 1770,
+     1771, 2635, 1772, 1762, 1774, 1819, 1772, 1821, 1763, 1771,
+
+     1772, 1785, 2635, 1786, 1767, 1768, 1775, 1777, 2635, 1791,
+     1788, 1828, 1789, 2635, 2635, 1793, 1778, 1778, 1793, 1786,
+     1785, 1796, 1783, 2635, 1799, 1787, 1790, 1846, 1786, 1805,
+     1844, 1808, 1801, 1800, 1809, 1811, 1815, 2635, 1851, 1806,
+     2635, 1810, 1801, 1860, 1803, 1862, 1863, 1864, 1822, 1866,
+     2635, 1808, 2635, 1863, 1825, 1826, 1813, 1821, 1832, 1819,
+     1830, 1816, 1814, 1822, 1821, 1826, 1818, 1883, 1836, 1837,
+     1827, 1844, 1843, 1884, 1828, 1847, 1848, 2635, 1853, 1846,
+     1885, 1852, 1839, 1854, 1899, 1856, 1859, 1854, 1859, 1848,
+     1857, 2635, 1906, 2635, 2635, 2635, 1867, 2635, 1908, 1850,
+
+     1910, 1911, 1854, 1913, 1861, 1910, 1911, 1873, 1913, 1859,
+     1863, 1881, 1922, 1881, 2635, 1872, 1862, 1921, 1887, 1880,
+     1876, 1930, 1873, 1875, 1874, 1881, 1924, 1878, 1937, 1881,
+     2635, 1886, 1896, 1898, 1900, 1883, 1891, 2635, 1886, 2635,
+     1898, 2635, 2635, 1903, 2635, 1904, 1904, 1895, 1951, 1895,
+     1905, 1890, 1903, 2635, 1905, 1913, 1958, 1899, 1901, 1898,
+     1922, 2635, 1909, 1916, 1917, 1920, 1967, 1910, 2635, 1964,
+     1911, 1919, 1928, 1914, 1930, 1929, 1932, 1925, 1920, 1920,
+     1932, 1927, 2635, 1938, 1926, 1979, 1930, 1942, 1987, 2635,
+     1933, 1945, 1990, 1939, 1941, 1939, 1940, 1995, 2635, 1948,
+
+     1935, 1950, 1955, 1947, 1953, 2002, 2003, 2004, 1961, 2006,
+     2007, 1951, 1955, 1951, 1967, 1950, 1962, 1956, 2635, 1972,
+     2016, 2635, 1973, 1958, 1976, 1967, 2635, 1968, 1982, 1978,
+     1971, 1966, 1972, 2635, 2635, 2635, 2027, 2635, 2635, 1970,
+     1978, 1973, 2026, 1992, 1989, 2034, 1995, 2635, 2036, 1978,
+     2038, 1981, 1994, 1993, 1994, 1984, 1996, 1992, 2635, 1987,
+     2047, 2000, 2009, 2002, 2046, 2635, 1993, 2635, 2005, 2635,
+     2049, 2055, 1997, 2013, 2058, 2014, 2060, 2061, 2635, 2018,
+     2012, 2005, 2025, 2022, 2014, 2018, 2635, 2065, 2014, 2635,
+     2024, 2635, 2635, 2015, 2023, 2070, 2030, 2023, 2078, 2026,
+
+     2026, 2022, 2024, 2039, 2084, 2085, 2027, 2043, 2028, 2635,
+     2089, 2036, 2043, 2092, 2036, 2635, 2635, 2046, 2095, 2043,
+     2635, 2047, 2046, 2635, 2099, 2048, 2635, 2042, 2042, 2059,
+     2635, 2060, 2105, 2051, 2107, 2108, 2635, 2109, 2635, 2635,
+     2635, 2635, 2115, 2118, 2121, 2122, 2124, 2127, 2130, 2133
     } ;
 
-static const flex_int16_t yy_def[2247] =
+static const flex_int16_t yy_def[2251] =
     {   0,
-     2239, 2239, 2240, 2240, 2239, 2239, 2239, 2239, 2239, 2239,
-     2238, 2238, 2238, 2238, 2238, 2241, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242,
-     2238, 2238, 2238, 2243,   15, 2238,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2244,   45,   45,   45,   45,
+     2243, 2243, 2244, 2244, 2243, 2243, 2243, 2243, 2243, 2243,
+     2242, 2242, 2242, 2242, 2242, 2245, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2246,
+     2242, 2242, 2242, 2247,   15, 2242,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2248,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2241, 2238,
-     2238, 2238, 2238, 2238, 2238, 2245, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242, 2238, 2243,
+       45,   45,   45,   45,   45,   45,   45,   45, 2245, 2242,
+     2242, 2242, 2242, 2242, 2242, 2249, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2246, 2242, 2247,
 
-     2238, 2238,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2246,   45, 2244,   45,   45,   45,   45,   45,
+     2242, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2250,   45, 2248,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2245, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2249, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 2246, 2238, 2238,  115,
+       45,   45,   45,   45,   45,   45, 2250, 2242, 2242,  115,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1281,9 +1282,9 @@ static const flex_int16_t yy_def[2247] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238,   45,   45,   45,   45,   45,
-       45, 2238,   45, 2238,   45,  115, 2238,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242,   45,   45,   45,   45,   45,
+       45, 2242,   45, 2242,   45,  115, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1291,220 +1292,220 @@ static const flex_int16_t yy_def[2247] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238,   45,   45,   45,   45,   45, 2238, 2238, 2238,
-       45,   45,   45,   45,   45, 2238,   45, 2238,   45,  115,
+       45, 2242,   45,   45,   45,   45,   45, 2242, 2242, 2242,
+       45,   45,   45,   45,   45, 2242,   45, 2242,   45,  115,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45, 2238,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
+       45,   45, 2242,   45,   45,   45,   45,   45,   45, 2242,
+       45,   45,   45,   45,   45,   45, 2242,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2242,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45, 2238,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
-       45,   45, 2238,   45,   45, 2238,   45,   45,   45, 2238,
+     2242,   45,   45, 2242,   45,   45, 2242,   45,   45,   45,
 
-       45,   45,   45, 2238, 2238, 2238,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45, 2242, 2242, 2242,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-       45, 2238,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2242,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238, 2238,   45,   45,   45,   45,   45,   45, 2238,
-     2238,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242, 2242,   45,   45,   45,   45,
+       45,   45, 2242, 2242,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2242, 2242, 2242,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238,   45,   45,   45,   45,   45,   45, 2238,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2242,   45,   45,   45,   45,
+       45,   45, 2242,   45,   45,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
+       45,   45, 2242,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45, 2242,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45, 2238,   45, 2238,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45, 2238,   45,   45,   45,
-       45, 2238,   45,   45,   45,   45,   45,   45, 2238,   45,
-     2238,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-       45,   45,   45,   45,   45,   45, 2238, 2238,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45, 2242,   45, 2242,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+     2242,   45,   45,   45,   45, 2242,   45,   45,   45,   45,
+       45,   45, 2242,   45, 2242,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2242,   45,   45,   45,   45,   45,   45,   45,
+     2242, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
 
-     2238,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2242,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45, 2242, 2242,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45, 2238, 2238,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45, 2238,   45,   45,
-     2238, 2238,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45, 2242,   45,   45, 2242, 2242,   45,   45,   45,   45,
 
-     2238,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2238,   45,   45,   45, 2238,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45, 2238,   45,   45, 2238,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2238, 2238,   45,   45, 2238,
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-
-     2238,   45,   45, 2238,   45,   45, 2238,   45, 2238,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2242,   45,   45,   45, 2242,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45, 2242,   45,   45, 2242,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
+     2242,   45,   45, 2242,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45, 2242,   45, 2242,   45,   45, 2242,   45,   45,
+     2242,   45, 2242,   45,   45,   45, 2242,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-       45, 2238,   45,   45, 2238,   45,   45, 2238, 2238,   45,
-
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45, 2238,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
-       45,   45,   45,   45,   45, 2238,   45,   45, 2238,   45,
-       45,   45, 2238,   45,   45,   45, 2238,   45,   45, 2238,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45, 2238,
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45, 2242,   45,   45, 2242,   45,
 
-       45,   45,   45,   45, 2238,   45,   45,   45, 2238,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-     2238,   45, 2238,   45, 2238,   45,   45,   45,   45, 2238,
-     2238,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2238,   45,   45,   45, 2238,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-
-       45,   45,   45,   45, 2238,   45,   45,   45,   45, 2238,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
+       45, 2242, 2242,   45,   45,   45, 2242,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45, 2242,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45, 2242,
+       45,   45, 2242,   45,   45,   45, 2242,   45,   45,   45,
+     2242,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2238,   45,   45, 2238,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45, 2238,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45, 2242,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45, 2238,
-     2238, 2238,   45, 2238,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45, 2242,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45, 2242,   45, 2242,   45, 2242,   45,
+       45,   45,   45, 2242, 2242,   45, 2242,   45,   45,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45, 2242,
+       45,   45,   45,   45,   45,   45, 2242,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45, 2242,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45, 2242, 2242,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45, 2242,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2238,   45,   45,   45,
-       45,   45,   45, 2238,   45, 2238,   45, 2238, 2238,   45,
-     2238,   45,   45,   45,   45,   45,   45,   45,   45, 2238,
-       45,   45,   45,   45,   45,   45,   45, 2238,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2238,   45,
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
+       45, 2242,   45, 2242, 2242, 2242,   45, 2242,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45, 2238,   45,   45,
-       45,   45, 2238,   45,   45,   45,   45,   45,   45, 2238,
-     2238, 2238,   45, 2238, 2238,   45,   45,   45,   45,   45,
-       45,   45,   45, 2238,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-       45, 2238,   45, 2238,   45, 2238,   45,   45,   45,   45,
-       45,   45,   45,   45, 2238,   45,   45,   45,   45,   45,
-       45,   45, 2238,   45,   45, 2238,   45, 2238, 2238,   45,
+       45,   45,   45,   45, 2242,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45,   45, 2242,   45, 2242,
+       45, 2242, 2242,   45, 2242,   45,   45,   45,   45,   45,
+       45,   45,   45, 2242,   45,   45,   45,   45,   45,   45,
+       45, 2242,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2242,   45,   45,   45,   45,   45,   45, 2242,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
 
-       45,   45,   45,   45,   45, 2238,   45,   45,   45,   45,
-       45, 2238, 2238,   45,   45,   45, 2238,   45,   45, 2238,
-       45,   45, 2238,   45,   45,   45, 2238,   45,   45,   45,
-       45,   45, 2238,   45, 2238, 2238, 2238,    0, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45, 2242,   45,   45,   45,   45, 2242,   45,   45,   45,
+       45,   45,   45, 2242, 2242, 2242,   45, 2242, 2242,   45,
+       45,   45,   45,   45,   45,   45,   45, 2242,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45,   45,   45, 2242,   45, 2242,   45, 2242,
+       45,   45,   45,   45,   45,   45,   45,   45, 2242,   45,
+       45,   45,   45,   45,   45,   45, 2242,   45,   45, 2242,
+       45, 2242, 2242,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2242,
+       45,   45,   45,   45,   45, 2242, 2242,   45,   45,   45,
+     2242,   45,   45, 2242,   45,   45, 2242,   45,   45,   45,
+     2242,   45,   45,   45,   45,   45, 2242,   45, 2242, 2242,
+     2242,    0, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242
     } ;
 
-static const flex_int16_t yy_nxt[2704] =
+static const flex_int16_t yy_nxt[2709] =
     {   0,
-     2238,   13,   14,   13, 2238,   15,   16, 2238,   17,   18,
+     2242,   13,   14,   13, 2242,   15,   16, 2242,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       85,  826,   37,   14,   37,   86,   25,   26,   38,  101,
-      856,   27,   37,   14,   37,   42,   28,   42,   38,   91,
+       85,  828,   37,   14,   37,   86,   25,   26,   38,  101,
+     2242,   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,
-      827,   13,   14,   13,   33,   40,  102,   91,   92,  201,
+      829,   13,   14,   13,   33,   40,  102,   91,   92,  201,
        90,   34,   35,   13,   14,   13,   94,   15,   16,   95,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
        23,   24,   13,   14,   13,   90,   39,  104,   25,   26,
@@ -1543,8 +1544,8 @@ static const flex_int16_t yy_nxt[2704] =
       238,  178,  203,  179,  200,  202,  180,  187,   84,   84,
 
        84,   84,   84,  239,  259,  242,  181,  240,  260,  193,
-      863,   82,   80,  182,   81,   81,   81,   81,   81,  203,
-      200,  204,  270,   88,  205,   88,  864,   82,   89,   89,
+      861,   82,   80,  182,   81,   81,   81,   81,   81,  203,
+      200,  204,  270,   88,  205,   88,  862,   82,   89,   89,
        89,   89,   89,   80,   82,   83,   83,   83,   83,   83,
        84,   84,   84,   84,   84,  100,  337,  198,   82,  204,
        82,  205,  100,   82,   89,   89,   89,   89,   89,   89,
@@ -1555,258 +1556,258 @@ static const flex_int16_t yy_nxt[2704] =
 
       338,  463,  100,  309,  100,  100,  209,  286,  204,  310,
       308,  205,  319,  320,  210,  210,  210,  210,  210,  320,
-      390,  865,  321,  210,  210,  210,  210,  210,  210,  297,
+      390,  863,  321,  210,  210,  210,  210,  210,  210,  297,
       463,  319,  351,  298,  329,  352,  312,  299,  314,  320,
       319,  321,  287,  288,  289,  323,  210,  210,  210,  210,
       210,  210,  327,  290,  330,  291,  331,  292,  293,  322,
-      294,  333,  329,  335,  324,  327,  353,  401,  381,  562,
-      454,  406,  411,  391,  354,  327,  392,  800,  801,  331,
+      294,  333,  329,  335,  324,  327,  353,  401,  381,  563,
+      454,  406,  411,  391,  354,  327,  392,  802,  803,  331,
       355,  330,  412,  331,  333,  382,  425,  458,  339,  426,
-      335,  336,  336,  336,  336,  336,  441,  333,  442,  717,
+      335,  336,  336,  336,  336,  336,  441,  333,  442,  719,
 
       336,  336,  336,  336,  336,  336,  399,  407,  332,  458,
-      458,  402,  465,  446,  467,  555,  866,  867,  563,  461,
+      458,  402,  465,  446,  467,  866,  867,  868,  564,  461,
       333,  408,  455,  336,  336,  336,  336,  336,  336,  462,
       463,  494,  459,  511,  450,  465,  467,  495,  512,  537,
-      603,  603,  467,  470,  470,  470,  470,  470,  868,  538,
-      869,  718,  470,  470,  470,  470,  470,  470,  566,  472,
-      527,  528,  567,  576,  539,  529,  596,  577,  603,  610,
-      607,  597,  608,  556,  636,  470,  470,  470,  470,  470,
-      470,  769,  627,  649,  770,  870,  513,  637,  650,  638,
-      628,  514,  629,  630,  631,  632,  633,  607,  671,  608,
-
-       45,   45,   45,   45,   45,  871,  872,  873,  672,   45,
-       45,   45,   45,   45,   45,  606,  743,  744,  742,  749,
-      682,  874,  875,  746,  876,  877,  750,  861,  878,  879,
-      880,  881,   45,   45,   45,   45,   45,   45,  862,  882,
-      883,  884,  885,  743,  886,  744,  887,  888,  877,  889,
-      891,  892,  876,  893,  894,  890,  895,  896,  897,  898,
-      899,  900,  901,  902,  903,  904,  905,  906,  907,  908,
-      909,  910,  911,  912,  913,  914,  915,  916,  919,  920,
-      921,  917,  922,  923,  924,  918,  925,  926,  927,  928,
-      929,  930,  931,  932,  934,  935,  936,  937,  938,  939,
-
-      940,  941,  942,  943,  944,  945,  946,  933,  948,  947,
-      949,  950,  951,  952,  953,  954,  955,  956,  957,  958,
-      959,  960,  961,  962,  963,  964,  965,  966,  967,  968,
-      969,  970,  971,  972,  973,  974,  975,  976,  977,  978,
-      979,  980,  981,  982,  983,  984,  985,  986,  987,  988,
-      990,  991,  992,  995,  996,  997,  989, 1000,  998,  993,
-     1001, 1002, 1003,  994,  999, 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, 1018, 1046, 1047,
-     1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
-     1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
-     1068, 1070, 1071, 1072, 1073, 1069, 1074, 1075, 1076, 1077,
-     1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
-     1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1098,
-     1099, 1100, 1097, 1101, 1102, 1103, 1104, 1105, 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, 1133, 1134, 1135, 1136, 1137,
-
-     1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
-     1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
-     1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
-     1168, 1169, 1170, 1171, 1172, 1173, 1151, 1174, 1175, 1150,
-     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, 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, 1233, 1234, 1235, 1236, 1237,
-
-     1238, 1239, 1240, 1241, 1242, 1232, 1243, 1244, 1245, 1246,
-     1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
-     1257, 1258, 1259, 1260, 1261, 1262, 1205, 1263, 1264, 1265,
-     1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,
-     1276, 1277, 1278, 1280, 1279, 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,
-     1278, 1279, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
-     1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
-     1324, 1325, 1326, 1327, 1328, 1330, 1332, 1333, 1334, 1329,
-
-     1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
-     1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
-     1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
-     1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1331,
-     1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
-     1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
-     1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
-     1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
-     1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1399, 1422,
-     1423, 1424, 1425, 1426, 1400, 1427, 1428, 1429, 1430, 1431,
-
-     1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
-     1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
-     1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461,
-     1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471,
-     1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481,
-     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, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
-     1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
-
-     1534, 1506, 1482, 1535, 1536, 1537, 1538, 1539, 1540, 1541,
-     1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
-     1552, 1553, 1554, 1555, 1514, 1556, 1557, 1558, 1559, 1561,
-     1562, 1563, 1564, 1565, 1566, 1567, 1560, 1568, 1569, 1570,
-     1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
-     1581, 1582, 1583, 1584, 1586, 1587, 1590, 1588, 1585, 1589,
-     1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600,
-     1601, 1602, 1603, 1604, 1606, 1607, 1608, 1609, 1605, 1610,
-     1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620,
-     1621, 1622, 1623, 1624, 1625, 1626, 1627, 1606, 1628, 1629,
-
-     1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
-     1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
-     1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
-     1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669,
-     1670, 1671, 1672, 1673, 1677, 1674, 1678, 1679, 1675, 1680,
-     1681, 1676, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689,
-     1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
-     1700, 1701, 1702, 1703, 1704, 1705, 1707, 1708, 1709, 1710,
-     1711, 1712, 1713, 1714, 1715, 1716, 1706, 1717, 1718, 1719,
-     1720, 1694, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
-
-     1729, 1730, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
-     1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
-     1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
-     1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
-     1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779,
-     1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1731,
-     1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798,
-     1799, 1800, 1801, 1802, 1803, 1804, 1805, 1779, 1806, 1807,
-     1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
-     1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
-
-     1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
-     1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
-     1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
-     1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
-     1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
-     1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
-     1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
-     1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1908,
-     1909, 1910, 1911, 1907, 1912, 1913, 1914, 1915, 1916, 1917,
-     1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
-
-     1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
-     1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
-     1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
-     1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
-     1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
-     1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
-     1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-     1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008,
-     2009, 2007, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
-     2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027,
-
-     2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
-     2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
-     2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
-     2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
-     2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077,
-     2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
-     2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
-     2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
-     2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
-     2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
-
-     2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
-     2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
-     2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
-     2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
-     2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
-     2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
-     2188, 2189, 2190, 2191, 2192, 2193, 2195, 2194, 2196, 2197,
-     2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
-     2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
-     2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227,
-
-     2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
-       12,   12,   12,   36,   36,   36,   79,   98,   79,  100,
-      100,  100,  113,  113,  113,  188,  855,  188,  207,  207,
-      207,  854,  853,  852,  851,  850,  849,  848,  847,  846,
-      845,  844,  843,  842,  841,  840,  839,  838,  837,  836,
-      835,  834,  833,  832,  831,  830,  829,  828,  825,  824,
-      823,  822,  821,  820,  819,  818,  817,  816,  815,  814,
-      813,  812,  811,  810,  809,  808,  807,  806,  805,  804,
-      803,  802,  799,  798,  797,  796,  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,  768,  767,  766,  765,  764,  763,  762,  761,  760,
-      759,  758,  757,  756,  755,  754,  753,  752,  751,  748,
-      747,  745,  742,  741,  740,  739,  738,  737,  736,  735,
-      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
-      724,  723,  722,  721,  720,  719,  716,  715,  714,  713,
-      712,  711,  710,  709,  708,  707,  706,  705,  704,  703,
-      702,  701,  700,  699,  698,  697,  696,  695,  694,  693,
-      692,  691,  690,  689,  688,  687,  686,  685,  684,  683,
-      681,  680,  679,  678,  677,  676,  675,  674,  673,  670,
-
-      669,  668,  667,  666,  665,  664,  663,  662,  661,  660,
-      659,  658,  657,  656,  655,  654,  653,  652,  651,  648,
-      647,  646,  645,  644,  643,  642,  641,  640,  639,  635,
-      634,  626,  625,  624,  623,  622,  621,  620,  619,  618,
-      617,  616,  615,  614,  613,  612,  611,  609,  606,  605,
-      604,  602,  601,  600,  599,  598,  595,  594,  593,  592,
-      591,  590,  589,  588,  587,  586,  585,  584,  583,  582,
-      581,  580,  579,  578,  575,  574,  573,  572,  571,  570,
-      569,  568,  565,  564,  561,  560,  559,  558,  557,  554,
-      553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
-
-      543,  542,  541,  540,  536,  535,  534,  533,  532,  531,
-      530,  526,  525,  524,  523,  522,  521,  520,  519,  518,
-      517,  516,  515,  510,  509,  508,  507,  506,  505,  504,
-      503,  502,  501,  500,  499,  498,  497,  496,  493,  492,
-      491,  490,  489,  488,  487,  486,  485,  484,  483,  482,
-      481,  480,  479,  478,  477,  476,  475,  474,  473,  471,
-      469,  468,  466,  464,  460,  457,  456,  453,  452,  451,
-      449,  448,  447,  445,  444,  443,  440,  439,  438,  437,
-      436,  435,  434,  433,  432,  431,  430,  429,  428,  427,
-      424,  423,  422,  421,  420,  419,  418,  417,  416,  415,
-
-      414,  413,  410,  409,  405,  404,  403,  400,  398,  397,
-      396,  395,  394,  393,  389,  388,  387,  386,  385,  384,
-      383,  380,  379,  378,  377,  376,  375,  374,  373,  372,
-      371,  370,  369,  368,  367,  366,  365,  364,  363,  362,
-      361,  360,  359,  358,  357,  356,  350,  349,  348,  347,
-      346,  345,  344,  343,  342,  341,  340,  208,  334,  332,
-      328,  326,  325,  318,  317,  316,  315,  313,  311,  307,
-      306,  305,  302,  301,  300,  285,  279,  274,  273,  272,
-      269,  266,  265,  264,  263,  262,  261,  258,  257,  256,
-      253,  252,  251,  250,  249,  248,  244,  243,  235,  234,
-
-      233,  232,  231,  228,  227,  226,  222,  219,  215,  214,
-      213,  208,  199,  197,  196,  195,  186,  166,  145,  119,
-      105,  103,   43,   99,   97,   96,   87,   43, 2238,   11,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-
-     2238, 2238, 2238
+      672,  604,  467,  470,  470,  470,  470,  470,  869,  538,
+      673,  720,  470,  470,  470,  470,  470,  470,  555,  472,
+      527,  528,  567,  556,  539,  529,  568,  577,  597,  604,
+      608,  578,  609,  598,  604,  470,  470,  470,  470,  470,
+      470,  745,  628,  650,  607,  637,  513,  746,  651,  683,
+      629,  514,  630,  631,  632,  633,  634,  608,  638,  609,
+
+      639,  744,  611,  751,  771,  870,  748,  772,  745,  871,
+      752,  864,  872,  873,  874,  746,  557,   45,   45,   45,
+       45,   45,  865,  875,  876,  877,   45,   45,   45,   45,
+       45,   45,  878,  879,  880,  881,  882,  883,  884,  885,
+      886,  887,  888,  889,  890,  891,  894,  895,  899,   45,
+       45,   45,   45,   45,   45,  900,  892,  880,  901,  902,
+      903,  879,  893,  896,  897,  904,  898,  905,  906,  907,
+      908,  909,  910,  911,  912,  913,  914,  915,  916,  917,
+      918,  919,  922,  923,  924,  920,  925,  926,  927,  921,
+      928,  929,  930,  931,  932,  933,  934,  935,  937,  938,
+
+      939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
+      949,  936,  951,  950,  952,  953,  954,  955,  956,  957,
+      958,  959,  960,  961,  962,  963,  964,  965,  966,  967,
+      968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
+      978,  979,  980,  981,  982,  983,  984,  985,  986,  987,
+      988,  989,  990,  991,  992,  994,  995,  996,  999, 1000,
+     1001,  993, 1004, 1002,  997, 1005, 1006, 1007,  998, 1003,
+     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, 1022, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
+     1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
+     1067, 1068, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077,
+     1073, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
+     1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
+     1097, 1098, 1099, 1100, 1102, 1103, 1104, 1101, 1105, 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, 1133, 1134, 1135, 1136,
+
+     1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
+     1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
+     1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
+     1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176,
+     1177, 1155, 1178, 1179, 1154, 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, 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,
+
+     1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
+     1236, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
+     1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
+     1266, 1209, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
+     1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1283,
+     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, 1282, 1283, 1310, 1311, 1312,
+     1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
+     1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
+
+     1334, 1336, 1337, 1338, 1333, 1339, 1340, 1341, 1342, 1343,
+     1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353,
+     1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363,
+     1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
+     1374, 1375, 1376, 1377, 1335, 1378, 1379, 1380, 1381, 1382,
+     1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
+     1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402,
+     1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
+     1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422,
+     1423, 1424, 1425, 1403, 1426, 1427, 1428, 1429, 1430, 1404,
+
+     1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440,
+     1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
+     1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
+     1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
+     1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
+     1481, 1482, 1483, 1484, 1485, 1487, 1488, 1489, 1490, 1491,
+     1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501,
+     1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511,
+     1512, 1513, 1514, 1515, 1516, 1517, 1519, 1520, 1521, 1522,
+     1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
+
+     1533, 1534, 1535, 1536, 1537, 1538, 1510, 1486, 1539, 1540,
+     1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
+     1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1518,
+     1560, 1561, 1562, 1563, 1565, 1566, 1567, 1568, 1569, 1570,
+     1571, 1564, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
+     1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1590,
+     1591, 1594, 1592, 1589, 1593, 1595, 1596, 1597, 1598, 1599,
+     1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1610,
+     1611, 1612, 1613, 1609, 1614, 1615, 1616, 1617, 1618, 1619,
+     1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629,
+
+     1630, 1631, 1610, 1632, 1633, 1634, 1635, 1636, 1637, 1638,
+     1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
+     1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658,
+     1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
+     1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1681,
+     1678, 1682, 1683, 1679, 1684, 1685, 1680, 1686, 1687, 1688,
+     1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698,
+     1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708,
+     1709, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
+     1720, 1710, 1721, 1722, 1723, 1724, 1698, 1725, 1726, 1727,
+
+     1728, 1729, 1730, 1731, 1732, 1733, 1734, 1736, 1737, 1738,
+     1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748,
+     1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
+     1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768,
+     1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778,
+     1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788,
+     1789, 1790, 1791, 1792, 1735, 1793, 1794, 1795, 1796, 1797,
+     1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
+     1808, 1809, 1783, 1810, 1811, 1812, 1813, 1814, 1815, 1816,
+     1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826,
+
+     1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836,
+     1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846,
+     1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856,
+     1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866,
+     1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876,
+     1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886,
+     1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896,
+     1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906,
+     1907, 1908, 1909, 1910, 1912, 1913, 1914, 1915, 1911, 1916,
+     1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926,
+
+     1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936,
+     1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946,
+     1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
+     1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966,
+     1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976,
+     1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986,
+     1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+     1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+     2007, 2008, 2009, 2010, 2012, 2013, 2011, 2014, 2015, 2016,
+     2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
+
+     2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036,
+     2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
+     2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056,
+     2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,
+     2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
+     2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086,
+     2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096,
+     2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106,
+     2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116,
+     2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126,
+
+     2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136,
+     2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
+     2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156,
+     2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166,
+     2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176,
+     2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186,
+     2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
+     2197, 2199, 2198, 2200, 2201, 2202, 2203, 2204, 2205, 2206,
+     2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216,
+     2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
+
+     2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236,
+     2237, 2238, 2239, 2240, 2241,   12,   12,   12,   36,   36,
+       36,   79,   98,   79,  100,  100,  100,  113,  113,  113,
+      188,  856,  188,  207,  207,  207,  855,  854,  853,  852,
+      851,  850,  849,  848,  847,  846,  845,  844,  843,  842,
+      841,  840,  839,  838,  837,  836,  835,  834,  833,  832,
+      831,  830,  827,  826,  825,  824,  823,  822,  821,  820,
+      819,  818,  817,  816,  815,  814,  813,  812,  811,  810,
+      809,  808,  807,  806,  805,  804,  801,  800,  799,  798,
+      797,  796,  795,  794,  793,  792,  791,  790,  789,  788,
+
+      787,  786,  785,  784,  783,  782,  781,  780,  779,  778,
+      777,  776,  775,  774,  773,  770,  769,  768,  767,  766,
+      765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
+      755,  754,  753,  750,  749,  747,  744,  743,  742,  741,
+      740,  739,  738,  737,  736,  735,  734,  733,  732,  731,
+      730,  729,  728,  727,  726,  725,  724,  723,  722,  721,
+      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,  682,  681,  680,  679,  678,
+
+      677,  676,  675,  674,  671,  670,  669,  668,  667,  666,
+      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
+      655,  654,  653,  652,  649,  648,  647,  646,  645,  644,
+      643,  642,  641,  640,  636,  635,  627,  626,  625,  624,
+      623,  622,  621,  620,  619,  618,  617,  616,  615,  614,
+      613,  612,  610,  607,  606,  605,  603,  602,  601,  600,
+      599,  596,  595,  594,  593,  592,  591,  590,  589,  588,
+      587,  586,  585,  584,  583,  582,  581,  580,  579,  576,
+      575,  574,  573,  572,  571,  570,  569,  566,  565,  562,
+      561,  560,  559,  558,  554,  553,  552,  551,  550,  549,
+
+      548,  547,  546,  545,  544,  543,  542,  541,  540,  536,
+      535,  534,  533,  532,  531,  530,  526,  525,  524,  523,
+      522,  521,  520,  519,  518,  517,  516,  515,  510,  509,
+      508,  507,  506,  505,  504,  503,  502,  501,  500,  499,
+      498,  497,  496,  493,  492,  491,  490,  489,  488,  487,
+      486,  485,  484,  483,  482,  481,  480,  479,  478,  477,
+      476,  475,  474,  473,  471,  469,  468,  466,  464,  460,
+      457,  456,  453,  452,  451,  449,  448,  447,  445,  444,
+      443,  440,  439,  438,  437,  436,  435,  434,  433,  432,
+      431,  430,  429,  428,  427,  424,  423,  422,  421,  420,
+
+      419,  418,  417,  416,  415,  414,  413,  410,  409,  405,
+      404,  403,  400,  398,  397,  396,  395,  394,  393,  389,
+      388,  387,  386,  385,  384,  383,  380,  379,  378,  377,
+      376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
+      366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
+      356,  350,  349,  348,  347,  346,  345,  344,  343,  342,
+      341,  340,  208,  334,  332,  328,  326,  325,  318,  317,
+      316,  315,  313,  311,  307,  306,  305,  302,  301,  300,
+      285,  279,  274,  273,  272,  269,  266,  265,  264,  263,
+      262,  261,  258,  257,  256,  253,  252,  251,  250,  249,
+
+      248,  244,  243,  235,  234,  233,  232,  231,  228,  227,
+      226,  222,  219,  215,  214,  213,  208,  199,  197,  196,
+      195,  186,  166,  145,  119,  105,  103,   43,   99,   97,
+       96,   87,   43, 2242,   11, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242
     } ;
 
-static const flex_int16_t yy_chk[2704] =
+static const flex_int16_t yy_chk[2709] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  690,    3,    3,    3,   21,    1,    1,    3,   44,
-      721,    1,    4,    4,    4,   13,    1,   13,    4,   27,
+       21,  691,    3,    3,    3,   21,    1,    1,    3,   44,
+        0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
        28,    1,  107,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      690,    8,    8,    8,    1,    8,   44,   27,   28,  107,
+      691,    8,    8,    8,    1,    8,   44,   27,   28,  107,
        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,
@@ -1827,10 +1828,10 @@ static const flex_int16_t yy_chk[2704] =
        17,   17,   17,   17,   17,   19,   62,   19,   19,   19,
        19,   19,  146,   17,   20,   20,   20,   20,   20,   22,
        19,   22,   22,   22,   22,   22,   63,   20,   53,   62,
-       57,   59,  722,   63,   22,   59,   17,   73,   53,   59,
+       57,   59,  721,   63,   22,   59,   17,   73,   53,   59,
        62,   73,   59,   19,   70,   59,   90,  112,  100,   59,
-       20,   53,   70,  724,   70,   92,   57,   22,   45,   70,
-       70,   61,   57,   61,   45,   57,   53,   45,  725,   45,
+       20,   53,   70,  722,   70,   92,   57,   22,   45,   70,
+       70,   61,   57,   61,   45,   57,   53,   45,  723,   45,
       112,   45,   90,   45,   61,   56,   67,   67,   45,   45,
 
        67,   45,   56,   92,   61,  100,   67,   45,   45,   45,
@@ -1840,13 +1841,13 @@ static const flex_int16_t yy_chk[2704] =
        56,   69,   65,   76,   91,   71,   95,  104,   56,   65,
        60,   65,   56,   68,   56,   56,   93,   68,   75,   75,
        69,   68,   69,   78,   69,   74,   76,  108,   75,   74,
-       91,  726,   74,   68,   95,  104,   76,   68,   75,   74,
+       91,  724,   74,   68,   95,  104,   76,   68,   75,   74,
        74,   76,   93,   94,   74,   74,  134,   78,  134,  136,
       135,   75,  109,   75,  106,  108,   75,   78,   80,   80,
 
        80,   80,   80,  135,  150,  136,   75,  135,  150,   94,
-      728,   80,   81,   75,   81,   81,   81,   81,   81,  109,
-      106,  110,  159,   82,  111,   82,  729,   81,   82,   82,
+      726,   80,   81,   75,   81,   81,   81,   81,   81,  109,
+      106,  110,  159,   82,  111,   82,  727,   81,   82,   82,
        82,   82,   82,   83,   80,   83,   83,   83,   83,   83,
        84,   84,   84,   84,   84,  102,  211,  116,   83,  110,
        81,  111,  102,   84,   88,   88,   88,   88,   88,   89,
@@ -1857,247 +1858,247 @@ static const flex_int16_t yy_chk[2704] =
 
       211,  327,  102,  179,  102,  102,  115,  168,  181,  179,
       178,  183,  189,  190,  115,  115,  115,  115,  115,  193,
-      260,  730,  191,  115,  115,  115,  115,  115,  115,  170,
+      260,  728,  191,  115,  115,  115,  115,  115,  115,  170,
       327,  192,  224,  170,  200,  224,  181,  170,  183,  190,
       189,  194,  168,  168,  168,  193,  115,  115,  115,  115,
       115,  115,  198,  168,  201,  168,  202,  168,  168,  192,
       168,  204,  200,  206,  194,  212,  225,  269,  252,  423,
-      316,  273,  276,  260,  225,  198,  260,  664,  664,  202,
+      316,  273,  276,  260,  225,  198,  260,  665,  665,  202,
       225,  201,  276,  267,  204,  252,  289,  319,  212,  289,
-      206,  210,  210,  210,  210,  210,  304,  312,  304,  576,
+      206,  210,  210,  210,  210,  210,  304,  312,  304,  577,
 
       210,  210,  210,  210,  210,  210,  267,  273,  308,  322,
-      319,  269,  329,  308,  331,  416,  731,  732,  423,  326,
+      319,  269,  329,  308,  331,  730,  731,  732,  423,  326,
       312,  273,  316,  210,  210,  210,  210,  210,  210,  326,
       339,  361,  322,  377,  312,  329,  399,  361,  377,  398,
-      463,  472,  331,  336,  336,  336,  336,  336,  733,  398,
-      734,  576,  336,  336,  336,  336,  336,  336,  426,  339,
-      390,  390,  426,  435,  399,  390,  455,  435,  463,  472,
-      469,  455,  469,  416,  494,  336,  336,  336,  336,  336,
-      336,  633,  491,  506,  633,  735,  377,  494,  506,  494,
-      491,  377,  491,  491,  491,  491,  491,  469,  528,  469,
-
-      470,  470,  470,  470,  470,  736,  737,  738,  528,  470,
-      470,  470,  470,  470,  470,  539,  607,  608,  610,  614,
-      539,  740,  741,  610,  743,  744,  614,  727,  745,  746,
-      747,  748,  470,  470,  470,  470,  470,  470,  727,  749,
-      750,  751,  752,  607,  753,  608,  754,  755,  744,  756,
-      757,  758,  743,  759,  759,  756,  759,  760,  761,  762,
-      763,  764,  765,  766,  767,  768,  769,  770,  771,  772,
-      773,  774,  775,  776,  777,  778,  779,  780,  781,  782,
-      783,  780,  784,  785,  786,  780,  787,  789,  790,  791,
-      792,  793,  794,  795,  796,  797,  798,  799,  800,  801,
-
-      802,  803,  804,  805,  806,  807,  808,  795,  809,  808,
-      810,  811,  813,  814,  815,  816,  817,  818,  819,  820,
-      821,  822,  823,  824,  825,  827,  828,  829,  830,  831,
-      832,  833,  834,  835,  836,  837,  838,  839,  840,  841,
-      842,  843,  844,  845,  846,  847,  848,  849,  850,  851,
-      852,  853,  853,  854,  855,  856,  851,  858,  857,  853,
-      859,  860,  862,  853,  857,  863,  864,  865,  866,  867,
-      868,  869,  870,  871,  872,  873,  874,  875,  876,  877,
-      878,  879,  880,  881,  882,  883,  884,  885,  886,  887,
-      888,  889,  890,  892,  893,  894,  895,  896,  897,  898,
-
-      899,  900,  901,  902,  903,  904,  905,  877,  906,  907,
-      908,  909,  910,  911,  912,  913,  914,  915,  916,  917,
-      918,  919,  920,  921,  922,  924,  925,  926,  927,  928,
-      929,  930,  931,  932,  933,  929,  934,  935,  936,  937,
-      938,  939,  940,  941,  944,  945,  946,  947,  948,  949,
-      952,  953,  954,  955,  956,  957,  958,  960,  961,  962,
-      963,  964,  961,  965,  966,  967,  968,  969,  972,  973,
-      974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
-      984,  985,  986,  987,  988,  989,  990,  991,  992,  993,
-      994,  995,  996,  997,  998,  999, 1000, 1001, 1002, 1004,
-
-     1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
-     1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
-     1025, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
-     1036, 1037, 1038, 1039, 1040, 1041, 1018, 1042, 1043, 1017,
-     1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1054,
-     1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
-     1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
-     1076, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
-     1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
-     1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107,
-
-     1108, 1109, 1110, 1112, 1113, 1101, 1114, 1115, 1116, 1117,
-     1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
-     1128, 1129, 1131, 1132, 1133, 1134, 1074, 1135, 1136, 1137,
-     1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
-     1148, 1149, 1150, 1153, 1151, 1154, 1155, 1156, 1157, 1158,
-     1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
-     1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
-     1150, 1151, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
-     1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
-     1200, 1201, 1202, 1203, 1205, 1206, 1207, 1208, 1209, 1205,
-
-     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, 1240,
-     1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1206,
-     1250, 1252, 1253, 1254, 1256, 1257, 1258, 1259, 1260, 1261,
-     1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
-     1272, 1273, 1274, 1275, 1276, 1278, 1279, 1280, 1281, 1282,
-     1283, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1292, 1293,
-     1294, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1278, 1303,
-     1305, 1306, 1307, 1308, 1279, 1309, 1310, 1311, 1312, 1313,
-
-     1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
-     1324, 1326, 1327, 1329, 1331, 1332, 1333, 1334, 1335, 1336,
-     1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1348,
-     1349, 1350, 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1360,
-     1362, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
-     1373, 1374, 1375, 1376, 1377, 1378, 1380, 1381, 1382, 1383,
-     1384, 1385, 1386, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
-     1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406,
-     1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
-     1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
-
-     1428, 1399, 1372, 1429, 1430, 1431, 1433, 1434, 1435, 1436,
-     1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
-     1447, 1448, 1449, 1450, 1408, 1451, 1452, 1453, 1454, 1455,
-     1456, 1457, 1458, 1459, 1460, 1462, 1454, 1463, 1466, 1467,
-     1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477,
-     1479, 1480, 1481, 1482, 1483, 1484, 1487, 1486, 1482, 1486,
-     1489, 1490, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
-     1502, 1503, 1504, 1505, 1506, 1508, 1509, 1510, 1505, 1511,
-     1512, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
-     1523, 1524, 1525, 1526, 1527, 1528, 1529, 1506, 1530, 1531,
-
-     1533, 1534, 1535, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
-     1544, 1545, 1546, 1547, 1548, 1549, 1550, 1552, 1554, 1555,
-     1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1567,
-     1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1578, 1579,
-     1581, 1582, 1583, 1585, 1586, 1585, 1587, 1588, 1585, 1589,
-     1590, 1585, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598,
-     1600, 1602, 1603, 1605, 1606, 1608, 1610, 1611, 1612, 1614,
-     1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
-     1625, 1626, 1627, 1628, 1629, 1630, 1620, 1631, 1632, 1633,
-     1634, 1606, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
-
-     1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651,
-     1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661,
-     1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
-     1672, 1673, 1674, 1675, 1676, 1677, 1679, 1680, 1681, 1682,
-     1683, 1684, 1685, 1686, 1687, 1689, 1690, 1691, 1693, 1694,
-     1696, 1697, 1700, 1701, 1702, 1704, 1705, 1706, 1707, 1643,
-     1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1718,
-     1720, 1721, 1722, 1723, 1724, 1725, 1726, 1694, 1727, 1728,
-     1729, 1731, 1732, 1733, 1734, 1735, 1737, 1738, 1740, 1741,
-     1742, 1744, 1745, 1746, 1748, 1749, 1751, 1752, 1753, 1754,
-
-     1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764,
-     1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
-     1775, 1776, 1778, 1779, 1781, 1782, 1783, 1785, 1786, 1787,
-     1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
-     1798, 1799, 1800, 1801, 1802, 1803, 1804, 1806, 1807, 1808,
-     1810, 1811, 1812, 1813, 1814, 1816, 1817, 1818, 1819, 1820,
-     1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
-     1832, 1833, 1834, 1835, 1836, 1837, 1839, 1840, 1842, 1844,
-     1846, 1847, 1848, 1842, 1849, 1852, 1854, 1855, 1856, 1857,
-     1858, 1859, 1860, 1862, 1863, 1864, 1865, 1867, 1868, 1869,
-
-     1870, 1871, 1872, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
-     1881, 1882, 1883, 1885, 1886, 1887, 1889, 1890, 1891, 1892,
-     1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903,
-     1904, 1906, 1907, 1908, 1909, 1912, 1913, 1914, 1915, 1916,
-     1917, 1918, 1919, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
-     1928, 1929, 1930, 1931, 1932, 1933, 1935, 1936, 1938, 1939,
-     1940, 1941, 1942, 1943, 1944, 1945, 1946, 1948, 1950, 1951,
-     1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
-     1962, 1960, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
-     1971, 1972, 1973, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
-
-     1982, 1983, 1984, 1985, 1986, 1987, 1989, 1993, 1995, 1996,
-     1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-     2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017,
-     2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2028,
-     2029, 2030, 2031, 2032, 2033, 2035, 2037, 2040, 2042, 2043,
-     2044, 2045, 2046, 2047, 2048, 2049, 2051, 2052, 2053, 2054,
-     2055, 2056, 2057, 2059, 2060, 2061, 2062, 2063, 2064, 2066,
-     2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
-     2077, 2078, 2080, 2081, 2082, 2083, 2084, 2085, 2087, 2088,
-     2089, 2090, 2091, 2092, 2093, 2094, 2096, 2097, 2098, 2099,
-
-     2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109,
-     2110, 2111, 2112, 2113, 2114, 2116, 2117, 2119, 2120, 2121,
-     2122, 2124, 2125, 2126, 2127, 2128, 2129, 2133, 2136, 2137,
-     2138, 2139, 2140, 2141, 2142, 2143, 2145, 2146, 2147, 2148,
-     2149, 2150, 2151, 2152, 2153, 2154, 2156, 2157, 2158, 2159,
-     2160, 2161, 2163, 2165, 2167, 2168, 2169, 2170, 2171, 2172,
-     2173, 2174, 2176, 2177, 2178, 2179, 2180, 2179, 2181, 2182,
-     2184, 2185, 2187, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
-     2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2207,
-     2208, 2209, 2210, 2211, 2214, 2215, 2216, 2218, 2219, 2221,
-
-     2222, 2224, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2234,
-     2239, 2239, 2239, 2240, 2240, 2240, 2241, 2242, 2241, 2243,
-     2243, 2243, 2244, 2244, 2244, 2245,  720, 2245, 2246, 2246,
-     2246,  719,  718,  717,  716,  715,  714,  713,  712,  711,
-      710,  708,  707,  706,  705,  704,  703,  702,  701,  700,
-      699,  697,  696,  695,  694,  693,  692,  691,  689,  688,
-      687,  686,  685,  684,  683,  682,  681,  680,  678,  677,
-      676,  675,  674,  673,  672,  671,  670,  669,  668,  667,
-      666,  665,  663,  662,  661,  660,  659,  658,  657,  656,
-      655,  654,  653,  652,  651,  650,  648,  647,  646,  645,
-
-      644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
-      634,  632,  631,  630,  629,  628,  627,  626,  625,  624,
-      623,  622,  621,  620,  619,  618,  617,  616,  615,  613,
-      612,  609,  603,  602,  601,  600,  599,  598,  597,  595,
-      594,  592,  591,  589,  588,  587,  586,  585,  584,  583,
-      582,  581,  580,  579,  578,  577,  575,  574,  573,  572,
-      571,  570,  569,  568,  567,  566,  565,  564,  563,  562,
-      561,  560,  559,  558,  556,  554,  553,  552,  551,  550,
-      549,  548,  547,  546,  545,  544,  543,  542,  541,  540,
-      538,  537,  535,  534,  533,  532,  531,  530,  529,  527,
-
-      526,  525,  524,  523,  522,  521,  520,  519,  518,  517,
-      516,  515,  514,  513,  512,  510,  509,  508,  507,  505,
-      504,  503,  502,  501,  500,  499,  498,  496,  495,  493,
-      492,  489,  488,  487,  486,  485,  484,  482,  481,  480,
-      479,  478,  477,  476,  475,  474,  473,  471,  467,  465,
-      464,  462,  461,  460,  457,  456,  454,  453,  451,  450,
-      449,  448,  447,  446,  445,  444,  443,  442,  441,  440,
-      439,  438,  437,  436,  434,  433,  432,  431,  430,  429,
-      428,  427,  425,  424,  422,  420,  419,  418,  417,  415,
-      414,  413,  412,  411,  410,  409,  408,  407,  406,  405,
-
-      404,  403,  402,  400,  397,  396,  395,  394,  393,  392,
-      391,  389,  388,  387,  386,  385,  384,  383,  382,  381,
-      380,  379,  378,  376,  375,  374,  373,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  360,  359,
-      358,  357,  356,  355,  354,  353,  352,  351,  350,  349,
-      348,  347,  346,  345,  344,  343,  342,  341,  340,  338,
-      335,  333,  330,  328,  325,  318,  317,  315,  314,  313,
-      311,  310,  309,  307,  306,  305,  303,  302,  301,  300,
-      299,  298,  297,  296,  295,  294,  293,  292,  291,  290,
-      288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
-
-      278,  277,  275,  274,  272,  271,  270,  268,  266,  265,
-      264,  263,  262,  261,  259,  258,  257,  256,  255,  254,
-      253,  251,  250,  248,  247,  246,  245,  244,  243,  242,
-      241,  240,  239,  238,  237,  236,  235,  234,  233,  232,
-      231,  230,  229,  228,  227,  226,  223,  222,  221,  220,
-      219,  218,  217,  216,  215,  214,  213,  207,  205,  203,
-      199,  197,  195,  187,  186,  185,  184,  182,  180,  177,
-      176,  175,  173,  172,  171,  167,  164,  162,  161,  160,
-      158,  156,  155,  154,  153,  152,  151,  149,  148,  147,
-      145,  144,  143,  142,  141,  140,  138,  137,  133,  132,
-
-      131,  130,  129,  127,  126,  125,  123,  121,  119,  118,
-      117,  113,  105,  103,   98,   97,   77,   72,   66,   58,
-       49,   47,   43,   41,   39,   38,   24,   14,   11, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-     2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
-
-     2238, 2238, 2238
+      528,  463,  331,  336,  336,  336,  336,  336,  733,  398,
+      528,  577,  336,  336,  336,  336,  336,  336,  416,  339,
+      390,  390,  426,  416,  399,  390,  426,  435,  455,  463,
+      469,  435,  469,  455,  472,  336,  336,  336,  336,  336,
+      336,  608,  491,  506,  539,  494,  377,  609,  506,  539,
+      491,  377,  491,  491,  491,  491,  491,  469,  494,  469,
+
+      494,  611,  472,  615,  634,  734,  611,  634,  608,  735,
+      615,  729,  736,  737,  738,  609,  416,  470,  470,  470,
+      470,  470,  729,  739,  740,  742,  470,  470,  470,  470,
+      470,  470,  743,  745,  746,  747,  748,  749,  750,  751,
+      752,  753,  754,  755,  756,  757,  759,  760,  762,  470,
+      470,  470,  470,  470,  470,  763,  758,  746,  764,  765,
+      766,  745,  758,  761,  761,  767,  761,  768,  769,  770,
+      771,  772,  773,  774,  775,  776,  777,  778,  779,  780,
+      781,  782,  783,  784,  785,  782,  786,  787,  788,  782,
+      789,  791,  792,  793,  794,  795,  796,  797,  798,  799,
+
+      800,  801,  802,  803,  804,  805,  806,  807,  808,  809,
+      810,  797,  811,  810,  812,  813,  815,  816,  817,  818,
+      819,  820,  821,  822,  823,  824,  825,  826,  827,  829,
+      830,  831,  832,  833,  834,  835,  836,  837,  838,  839,
+      840,  841,  842,  843,  844,  845,  846,  847,  848,  849,
+      850,  851,  852,  853,  854,  855,  856,  856,  857,  858,
+      859,  854,  861,  860,  856,  862,  863,  865,  856,  860,
+      866,  867,  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,  895,  896,
+
+      897,  898,  899,  900,  901,  902,  903,  904,  905,  906,
+      907,  908,  880,  909,  910,  911,  912,  913,  914,  915,
+      916,  917,  918,  919,  920,  921,  922,  923,  924,  925,
+      927,  928,  929,  930,  931,  932,  933,  934,  935,  936,
+      932,  937,  938,  939,  940,  941,  942,  943,  944,  947,
+      948,  949,  950,  951,  952,  955,  956,  957,  958,  959,
+      960,  961,  963,  964,  965,  966,  967,  964,  968,  969,
+      970,  971,  972,  976,  977,  978,  979,  980,  981,  982,
+      983,  984,  985,  986,  987,  988,  989,  990,  991,  992,
+      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
+
+     1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012, 1013,
+     1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
+     1024, 1025, 1026, 1027, 1028, 1029, 1031, 1032, 1033, 1034,
+     1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
+     1045, 1022, 1046, 1047, 1021, 1048, 1049, 1050, 1051, 1052,
+     1053, 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063,
+     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1073, 1074,
+     1075, 1076, 1077, 1078, 1079, 1080, 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, 1116, 1117,
+     1105, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
+     1127, 1128, 1129, 1130, 1131, 1132, 1133, 1135, 1136, 1137,
+     1138, 1078, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
+     1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1157, 1155,
+     1158, 1159, 1160, 1161, 1162, 1164, 1165, 1166, 1168, 1169,
+     1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
+     1180, 1181, 1182, 1183, 1184, 1154, 1155, 1186, 1187, 1188,
+     1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
+     1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1209,
+
+     1210, 1211, 1212, 1213, 1209, 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, 1244, 1245, 1246, 1247, 1248, 1249,
+     1250, 1251, 1252, 1253, 1210, 1254, 1256, 1257, 1258, 1260,
+     1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
+     1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280,
+     1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1292,
+     1293, 1294, 1295, 1296, 1297, 1298, 1300, 1301, 1302, 1303,
+     1304, 1305, 1306, 1282, 1307, 1309, 1310, 1311, 1312, 1283,
+
+     1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
+     1323, 1324, 1325, 1326, 1327, 1328, 1330, 1331, 1333, 1335,
+     1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345,
+     1346, 1347, 1348, 1350, 1352, 1353, 1354, 1355, 1357, 1358,
+     1359, 1360, 1361, 1362, 1364, 1366, 1368, 1369, 1370, 1371,
+     1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
+     1382, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1393, 1394,
+     1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
+     1406, 1407, 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416,
+     1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426,
+
+     1427, 1428, 1429, 1430, 1431, 1432, 1403, 1376, 1433, 1434,
+     1435, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
+     1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1412,
+     1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
+     1466, 1458, 1467, 1470, 1471, 1472, 1473, 1474, 1475, 1476,
+     1477, 1478, 1479, 1480, 1481, 1483, 1484, 1485, 1486, 1487,
+     1488, 1491, 1490, 1486, 1490, 1493, 1494, 1497, 1498, 1499,
+     1500, 1501, 1502, 1503, 1504, 1506, 1507, 1508, 1509, 1510,
+     1512, 1513, 1514, 1509, 1515, 1516, 1518, 1519, 1520, 1521,
+     1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
+
+     1532, 1533, 1510, 1534, 1535, 1537, 1538, 1539, 1541, 1542,
+     1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
+     1553, 1554, 1556, 1558, 1559, 1561, 1562, 1563, 1564, 1565,
+     1566, 1567, 1568, 1569, 1571, 1572, 1573, 1574, 1575, 1576,
+     1577, 1578, 1579, 1582, 1583, 1585, 1586, 1587, 1589, 1590,
+     1589, 1591, 1592, 1589, 1593, 1594, 1589, 1595, 1596, 1597,
+     1598, 1599, 1600, 1601, 1602, 1604, 1606, 1607, 1609, 1610,
+     1612, 1614, 1615, 1616, 1618, 1619, 1620, 1621, 1622, 1623,
+     1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
+     1634, 1624, 1635, 1636, 1637, 1638, 1610, 1639, 1640, 1641,
+
+     1642, 1643, 1644, 1645, 1646, 1646, 1647, 1648, 1649, 1650,
+     1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660,
+     1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670,
+     1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
+     1681, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
+     1693, 1694, 1695, 1697, 1698, 1700, 1701, 1704, 1705, 1706,
+     1708, 1709, 1710, 1711, 1647, 1712, 1713, 1714, 1715, 1716,
+     1717, 1718, 1719, 1720, 1722, 1724, 1725, 1726, 1727, 1728,
+     1729, 1730, 1698, 1731, 1732, 1733, 1735, 1736, 1737, 1738,
+     1739, 1741, 1742, 1744, 1745, 1746, 1748, 1749, 1750, 1752,
+
+     1753, 1755, 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, 1782, 1783, 1785,
+     1786, 1787, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796,
+     1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806,
+     1807, 1808, 1810, 1811, 1812, 1814, 1815, 1816, 1817, 1818,
+     1820, 1821, 1822, 1823, 1824, 1826, 1827, 1828, 1829, 1830,
+     1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
+     1841, 1843, 1844, 1846, 1848, 1850, 1851, 1852, 1846, 1853,
+     1856, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1866, 1867,
+
+     1868, 1869, 1871, 1872, 1873, 1874, 1875, 1876, 1878, 1879,
+     1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1889, 1890,
+     1891, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
+     1902, 1904, 1905, 1906, 1907, 1908, 1910, 1911, 1912, 1913,
+     1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1925, 1926,
+     1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936,
+     1937, 1939, 1940, 1942, 1943, 1944, 1945, 1946, 1947, 1948,
+     1949, 1950, 1952, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
+     1961, 1962, 1963, 1964, 1965, 1966, 1964, 1967, 1968, 1969,
+     1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1979, 1980,
+
+     1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
+     1991, 1993, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016,
+     2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
+     2027, 2028, 2029, 2030, 2032, 2033, 2034, 2035, 2036, 2037,
+     2039, 2041, 2044, 2046, 2047, 2048, 2049, 2050, 2051, 2052,
+     2053, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2063, 2064,
+     2065, 2066, 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2075,
+     2076, 2077, 2078, 2079, 2080, 2081, 2082, 2084, 2085, 2086,
+     2087, 2088, 2089, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
+
+     2098, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
+     2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118,
+     2120, 2121, 2123, 2124, 2125, 2126, 2128, 2129, 2130, 2131,
+     2132, 2133, 2137, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
+     2147, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
+     2158, 2160, 2161, 2162, 2163, 2164, 2165, 2167, 2169, 2171,
+     2172, 2173, 2174, 2175, 2176, 2177, 2178, 2180, 2181, 2182,
+     2183, 2184, 2183, 2185, 2186, 2188, 2189, 2191, 2194, 2195,
+     2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205,
+     2206, 2207, 2208, 2209, 2211, 2212, 2213, 2214, 2215, 2218,
+
+     2219, 2220, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2232,
+     2233, 2234, 2235, 2236, 2238, 2243, 2243, 2243, 2244, 2244,
+     2244, 2245, 2246, 2245, 2247, 2247, 2247, 2248, 2248, 2248,
+     2249,  720, 2249, 2250, 2250, 2250,  719,  718,  717,  716,
+      715,  714,  713,  712,  710,  709,  708,  707,  706,  705,
+      704,  703,  702,  701,  699,  698,  697,  696,  695,  694,
+      693,  692,  690,  689,  688,  687,  686,  685,  684,  683,
+      682,  681,  679,  678,  677,  676,  675,  674,  673,  672,
+      671,  670,  669,  668,  667,  666,  664,  663,  662,  661,
+      660,  659,  658,  657,  656,  655,  654,  653,  652,  651,
+
+      649,  648,  647,  646,  645,  644,  643,  642,  641,  640,
+      639,  638,  637,  636,  635,  633,  632,  631,  630,  629,
+      628,  627,  626,  625,  624,  623,  622,  621,  620,  619,
+      618,  617,  616,  614,  613,  610,  604,  603,  602,  601,
+      600,  599,  598,  596,  595,  593,  592,  590,  589,  588,
+      587,  586,  585,  584,  583,  582,  581,  580,  579,  578,
+      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
+      566,  565,  564,  563,  562,  561,  560,  559,  557,  556,
+      554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
+      544,  543,  542,  541,  540,  538,  537,  535,  534,  533,
+
+      532,  531,  530,  529,  527,  526,  525,  524,  523,  522,
+      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
+      510,  509,  508,  507,  505,  504,  503,  502,  501,  500,
+      499,  498,  496,  495,  493,  492,  489,  488,  487,  486,
+      485,  484,  482,  481,  480,  479,  478,  477,  476,  475,
+      474,  473,  471,  467,  465,  464,  462,  461,  460,  457,
+      456,  454,  453,  451,  450,  449,  448,  447,  446,  445,
+      444,  443,  442,  441,  440,  439,  438,  437,  436,  434,
+      433,  432,  431,  430,  429,  428,  427,  425,  424,  422,
+      420,  419,  418,  417,  415,  414,  413,  412,  411,  410,
+
+      409,  408,  407,  406,  405,  404,  403,  402,  400,  397,
+      396,  395,  394,  393,  392,  391,  389,  388,  387,  386,
+      385,  384,  383,  382,  381,  380,  379,  378,  376,  375,
+      374,  373,  372,  371,  370,  369,  368,  367,  366,  365,
+      364,  363,  362,  360,  359,  358,  357,  356,  355,  354,
+      353,  352,  351,  350,  349,  348,  347,  346,  345,  344,
+      343,  342,  341,  340,  338,  335,  333,  330,  328,  325,
+      318,  317,  315,  314,  313,  311,  310,  309,  307,  306,
+      305,  303,  302,  301,  300,  299,  298,  297,  296,  295,
+      294,  293,  292,  291,  290,  288,  287,  286,  285,  284,
+
+      283,  282,  281,  280,  279,  278,  277,  275,  274,  272,
+      271,  270,  268,  266,  265,  264,  263,  262,  261,  259,
+      258,  257,  256,  255,  254,  253,  251,  250,  248,  247,
+      246,  245,  244,  243,  242,  241,  240,  239,  238,  237,
+      236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
+      226,  223,  222,  221,  220,  219,  218,  217,  216,  215,
+      214,  213,  207,  205,  203,  199,  197,  195,  187,  186,
+      185,  184,  182,  180,  177,  176,  175,  173,  172,  171,
+      167,  164,  162,  161,  160,  158,  156,  155,  154,  153,
+      152,  151,  149,  148,  147,  145,  144,  143,  142,  141,
+
+      140,  138,  137,  133,  132,  131,  130,  129,  127,  126,
+      125,  123,  121,  119,  118,  117,  113,  105,  103,   98,
+       97,   77,   72,   66,   58,   49,   47,   43,   41,   39,
+       38,   24,   14,   11, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+
+     2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2106,7 +2107,7 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[226] =
+static const flex_int16_t yy_rule_linenum[227] =
     {   0,
       146,  148,  150,  155,  156,  161,  162,  163,  175,  178,
       183,  190,  199,  208,  217,  226,  235,  244,  253,  263,
@@ -2117,22 +2118,22 @@ static const flex_int16_t yy_rule_linenum[226] =
       672,  684,  696,  707,  718,  727,  736,  745,  756,  765,
       774,  785,  796,  807,  818,  829,  840,  851,  862,  873,
       883,  894,  903,  913,  927,  943,  952,  961,  970,  979,
-      988, 1010, 1032, 1041, 1051, 1060, 1071, 1080, 1089, 1098,
+      988,  997, 1019, 1041, 1050, 1060, 1069, 1080, 1089, 1098,
 
-     1107, 1116, 1127, 1138, 1149, 1159, 1168, 1179, 1190, 1201,
-     1212, 1224, 1233, 1242, 1251, 1260, 1269, 1278, 1287, 1296,
-     1305, 1315, 1326, 1338, 1347, 1356, 1365, 1375, 1385, 1395,
-     1405, 1415, 1425, 1434, 1444, 1453, 1462, 1471, 1480, 1490,
-     1500, 1509, 1519, 1528, 1537, 1546, 1555, 1564, 1573, 1582,
+     1107, 1116, 1125, 1136, 1147, 1158, 1168, 1177, 1188, 1199,
+     1210, 1221, 1233, 1242, 1251, 1260, 1269, 1278, 1287, 1296,
+     1305, 1314, 1324, 1335, 1347, 1356, 1365, 1374, 1384, 1394,
+     1404, 1414, 1424, 1434, 1443, 1453, 1462, 1471, 1480, 1489,
+     1499, 1509, 1518, 1528, 1537, 1546, 1555, 1564, 1573, 1582,
      1591, 1600, 1609, 1618, 1627, 1636, 1645, 1654, 1663, 1672,
      1681, 1690, 1699, 1708, 1717, 1726, 1735, 1744, 1753, 1762,
-     1771, 1780, 1789, 1798, 1807, 1816, 1825, 1834, 1846, 1858,
-     1868, 1878, 1888, 1898, 1908, 1918, 1928, 1938, 1948, 1957,
-     1966, 1975, 1984, 1995, 2006, 2019, 2032, 2045, 2054, 2063,
+     1771, 1780, 1789, 1798, 1807, 1816, 1825, 1834, 1843, 1855,
+     1867, 1877, 1887, 1897, 1907, 1917, 1927, 1937, 1947, 1957,
+     1966, 1975, 1984, 1993, 2004, 2015, 2028, 2041, 2054, 2063,
 
-     2072, 2081, 2090, 2099, 2108, 2117, 2129, 2230, 2246, 2295,
-     2303, 2318, 2319, 2320, 2321, 2322, 2323, 2325, 2343, 2356,
-     2361, 2365, 2367, 2369, 2371
+     2072, 2081, 2090, 2099, 2108, 2117, 2126, 2138, 2239, 2255,
+     2304, 2312, 2327, 2328, 2329, 2330, 2331, 2332, 2334, 2352,
+     2365, 2370, 2374, 2376, 2378, 2380
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2186,7 +2187,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 2189 "dhcp4_lexer.cc"
+#line 2191 "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
@@ -2212,8 +2213,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 2215 "dhcp4_lexer.cc"
-#line 2216 "dhcp4_lexer.cc"
+#line 2217 "dhcp4_lexer.cc"
+#line 2218 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2541,7 +2542,7 @@ YY_DECL
     }
 
 
-#line 2544 "dhcp4_lexer.cc"
+#line 2546 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2570,13 +2571,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 >= 2239 )
+                               if ( yy_current_state >= 2243 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 2238 );
+               while ( yy_current_state != 2242 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2595,13 +2596,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 < 226 )
+                       else if ( yy_act < 227 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 226 )
+                       else if ( yy_act == 227 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 227 )
+                       else if ( yy_act == 228 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -3743,6 +3744,18 @@ YY_RULE_SETUP
 case 91:
 YY_RULE_SETUP
 #line 988 "dhcp4_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::POOLS:
+        return isc::dhcp::Dhcp4Parser::make_POOL_ID(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("pool-id", driver.loc_);
+    }
+}
+       YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 997 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3765,9 +3778,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 1010 "dhcp4_lexer.ll"
+#line 1019 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3790,9 +3803,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1032 "dhcp4_lexer.ll"
+#line 1041 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3802,9 +3815,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1041 "dhcp4_lexer.ll"
+#line 1050 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3815,9 +3828,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1051 "dhcp4_lexer.ll"
+#line 1060 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3827,9 +3840,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1060 "dhcp4_lexer.ll"
+#line 1069 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3841,9 +3854,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1071 "dhcp4_lexer.ll"
+#line 1080 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3853,9 +3866,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1080 "dhcp4_lexer.ll"
+#line 1089 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3865,9 +3878,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1089 "dhcp4_lexer.ll"
+#line 1098 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3877,9 +3890,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1098 "dhcp4_lexer.ll"
+#line 1107 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3889,9 +3902,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1107 "dhcp4_lexer.ll"
+#line 1116 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3901,9 +3914,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1116 "dhcp4_lexer.ll"
+#line 1125 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3915,9 +3928,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1127 "dhcp4_lexer.ll"
+#line 1136 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3929,9 +3942,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1138 "dhcp4_lexer.ll"
+#line 1147 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3943,9 +3956,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1149 "dhcp4_lexer.ll"
+#line 1158 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3956,9 +3969,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1159 "dhcp4_lexer.ll"
+#line 1168 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3968,9 +3981,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1168 "dhcp4_lexer.ll"
+#line 1177 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3982,9 +3995,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1179 "dhcp4_lexer.ll"
+#line 1188 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3996,9 +4009,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1190 "dhcp4_lexer.ll"
+#line 1199 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4010,9 +4023,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1201 "dhcp4_lexer.ll"
+#line 1210 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4024,9 +4037,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1212 "dhcp4_lexer.ll"
+#line 1221 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4038,9 +4051,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1224 "dhcp4_lexer.ll"
+#line 1233 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4050,9 +4063,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1233 "dhcp4_lexer.ll"
+#line 1242 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -4062,9 +4075,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1242 "dhcp4_lexer.ll"
+#line 1251 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -4074,9 +4087,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1251 "dhcp4_lexer.ll"
+#line 1260 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -4086,9 +4099,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1260 "dhcp4_lexer.ll"
+#line 1269 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -4098,9 +4111,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1269 "dhcp4_lexer.ll"
+#line 1278 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -4110,9 +4123,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1278 "dhcp4_lexer.ll"
+#line 1287 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -4122,9 +4135,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1287 "dhcp4_lexer.ll"
+#line 1296 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -4134,9 +4147,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1296 "dhcp4_lexer.ll"
+#line 1305 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -4146,9 +4159,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1305 "dhcp4_lexer.ll"
+#line 1314 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4159,9 +4172,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1315 "dhcp4_lexer.ll"
+#line 1324 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4173,9 +4186,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1326 "dhcp4_lexer.ll"
+#line 1335 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4188,9 +4201,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1338 "dhcp4_lexer.ll"
+#line 1347 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4200,9 +4213,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1347 "dhcp4_lexer.ll"
+#line 1356 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4212,9 +4225,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1356 "dhcp4_lexer.ll"
+#line 1365 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4224,9 +4237,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1365 "dhcp4_lexer.ll"
+#line 1374 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4237,9 +4250,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1375 "dhcp4_lexer.ll"
+#line 1384 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4250,9 +4263,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1385 "dhcp4_lexer.ll"
+#line 1394 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4263,9 +4276,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1395 "dhcp4_lexer.ll"
+#line 1404 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4276,9 +4289,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1405 "dhcp4_lexer.ll"
+#line 1414 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4289,9 +4302,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1415 "dhcp4_lexer.ll"
+#line 1424 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4302,9 +4315,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1425 "dhcp4_lexer.ll"
+#line 1434 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -4314,9 +4327,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1434 "dhcp4_lexer.ll"
+#line 1443 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4327,9 +4340,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1444 "dhcp4_lexer.ll"
+#line 1453 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -4339,9 +4352,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1453 "dhcp4_lexer.ll"
+#line 1462 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4351,9 +4364,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1462 "dhcp4_lexer.ll"
+#line 1471 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4363,9 +4376,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1471 "dhcp4_lexer.ll"
+#line 1480 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4375,9 +4388,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1480 "dhcp4_lexer.ll"
+#line 1489 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4388,9 +4401,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1490 "dhcp4_lexer.ll"
+#line 1499 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -4401,9 +4414,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1500 "dhcp4_lexer.ll"
+#line 1509 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -4413,9 +4426,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1509 "dhcp4_lexer.ll"
+#line 1518 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4425,9 +4438,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1519 "dhcp4_lexer.ll"
+#line 1528 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4437,9 +4450,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1528 "dhcp4_lexer.ll"
+#line 1537 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4449,9 +4462,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1537 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4461,9 +4474,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1546 "dhcp4_lexer.ll"
+#line 1555 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4473,9 +4486,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1555 "dhcp4_lexer.ll"
+#line 1564 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4485,9 +4498,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1564 "dhcp4_lexer.ll"
+#line 1573 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4497,9 +4510,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1573 "dhcp4_lexer.ll"
+#line 1582 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4509,9 +4522,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1582 "dhcp4_lexer.ll"
+#line 1591 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4521,9 +4534,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1591 "dhcp4_lexer.ll"
+#line 1600 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4533,9 +4546,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1600 "dhcp4_lexer.ll"
+#line 1609 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4545,9 +4558,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1609 "dhcp4_lexer.ll"
+#line 1618 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4557,9 +4570,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1618 "dhcp4_lexer.ll"
+#line 1627 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4569,9 +4582,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1627 "dhcp4_lexer.ll"
+#line 1636 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4581,9 +4594,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1636 "dhcp4_lexer.ll"
+#line 1645 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4593,9 +4606,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1645 "dhcp4_lexer.ll"
+#line 1654 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4605,9 +4618,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1654 "dhcp4_lexer.ll"
+#line 1663 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4617,9 +4630,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1663 "dhcp4_lexer.ll"
+#line 1672 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4629,9 +4642,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1672 "dhcp4_lexer.ll"
+#line 1681 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4641,9 +4654,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1681 "dhcp4_lexer.ll"
+#line 1690 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4653,9 +4666,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1690 "dhcp4_lexer.ll"
+#line 1699 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4665,9 +4678,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1699 "dhcp4_lexer.ll"
+#line 1708 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4677,9 +4690,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1708 "dhcp4_lexer.ll"
+#line 1717 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4689,9 +4702,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1717 "dhcp4_lexer.ll"
+#line 1726 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4701,9 +4714,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1726 "dhcp4_lexer.ll"
+#line 1735 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4713,9 +4726,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1735 "dhcp4_lexer.ll"
+#line 1744 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4725,9 +4738,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1744 "dhcp4_lexer.ll"
+#line 1753 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4737,9 +4750,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1753 "dhcp4_lexer.ll"
+#line 1762 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4749,9 +4762,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1762 "dhcp4_lexer.ll"
+#line 1771 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4761,9 +4774,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1771 "dhcp4_lexer.ll"
+#line 1780 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4773,9 +4786,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1780 "dhcp4_lexer.ll"
+#line 1789 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4785,9 +4798,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1789 "dhcp4_lexer.ll"
+#line 1798 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4797,9 +4810,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1798 "dhcp4_lexer.ll"
+#line 1807 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4809,9 +4822,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1807 "dhcp4_lexer.ll"
+#line 1816 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4821,9 +4834,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1816 "dhcp4_lexer.ll"
+#line 1825 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4833,9 +4846,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1825 "dhcp4_lexer.ll"
+#line 1834 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4845,9 +4858,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1834 "dhcp4_lexer.ll"
+#line 1843 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4860,9 +4873,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1846 "dhcp4_lexer.ll"
+#line 1855 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4875,9 +4888,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1858 "dhcp4_lexer.ll"
+#line 1867 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4888,9 +4901,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 1868 "dhcp4_lexer.ll"
+#line 1877 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4901,9 +4914,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 1878 "dhcp4_lexer.ll"
+#line 1887 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -4914,9 +4927,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 1888 "dhcp4_lexer.ll"
+#line 1897 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4927,9 +4940,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 1898 "dhcp4_lexer.ll"
+#line 1907 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4940,9 +4953,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 1908 "dhcp4_lexer.ll"
+#line 1917 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4953,9 +4966,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 1918 "dhcp4_lexer.ll"
+#line 1927 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4966,9 +4979,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 1928 "dhcp4_lexer.ll"
+#line 1937 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4979,9 +4992,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 188:
+case 189:
 YY_RULE_SETUP
-#line 1938 "dhcp4_lexer.ll"
+#line 1947 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4992,9 +5005,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 1948 "dhcp4_lexer.ll"
+#line 1957 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5004,9 +5017,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 1957 "dhcp4_lexer.ll"
+#line 1966 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5016,9 +5029,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 191:
+case 192:
 YY_RULE_SETUP
-#line 1966 "dhcp4_lexer.ll"
+#line 1975 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5028,9 +5041,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 1975 "dhcp4_lexer.ll"
+#line 1984 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5040,9 +5053,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 1984 "dhcp4_lexer.ll"
+#line 1993 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5054,9 +5067,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 194:
+case 195:
 YY_RULE_SETUP
-#line 1995 "dhcp4_lexer.ll"
+#line 2004 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5068,9 +5081,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 195:
+case 196:
 YY_RULE_SETUP
-#line 2006 "dhcp4_lexer.ll"
+#line 2015 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5084,9 +5097,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 196:
+case 197:
 YY_RULE_SETUP
-#line 2019 "dhcp4_lexer.ll"
+#line 2028 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5100,9 +5113,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 197:
+case 198:
 YY_RULE_SETUP
-#line 2032 "dhcp4_lexer.ll"
+#line 2041 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5116,9 +5129,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 198:
+case 199:
 YY_RULE_SETUP
-#line 2045 "dhcp4_lexer.ll"
+#line 2054 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5128,9 +5141,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 199:
+case 200:
 YY_RULE_SETUP
-#line 2054 "dhcp4_lexer.ll"
+#line 2063 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5140,9 +5153,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 200:
+case 201:
 YY_RULE_SETUP
-#line 2063 "dhcp4_lexer.ll"
+#line 2072 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5152,9 +5165,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 201:
+case 202:
 YY_RULE_SETUP
-#line 2072 "dhcp4_lexer.ll"
+#line 2081 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5164,9 +5177,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 202:
+case 203:
 YY_RULE_SETUP
-#line 2081 "dhcp4_lexer.ll"
+#line 2090 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5176,9 +5189,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 203:
+case 204:
 YY_RULE_SETUP
-#line 2090 "dhcp4_lexer.ll"
+#line 2099 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5188,9 +5201,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 204:
+case 205:
 YY_RULE_SETUP
-#line 2099 "dhcp4_lexer.ll"
+#line 2108 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5200,9 +5213,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 205:
+case 206:
 YY_RULE_SETUP
-#line 2108 "dhcp4_lexer.ll"
+#line 2117 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5212,9 +5225,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 206:
+case 207:
 YY_RULE_SETUP
-#line 2117 "dhcp4_lexer.ll"
+#line 2126 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5227,9 +5240,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 207:
+case 208:
 YY_RULE_SETUP
-#line 2129 "dhcp4_lexer.ll"
+#line 2138 "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.
@@ -5331,10 +5344,10 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 208:
-/* rule 208 can match eol */
+case 209:
+/* rule 209 can match eol */
 YY_RULE_SETUP
-#line 2230 "dhcp4_lexer.ll"
+#line 2239 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     std::string raw(yytext+1);
@@ -5351,10 +5364,10 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 209:
-/* rule 209 can match eol */
+case 210:
+/* rule 210 can match eol */
 YY_RULE_SETUP
-#line 2246 "dhcp4_lexer.ll"
+#line 2255 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     std::string raw(yytext+1);
@@ -5404,9 +5417,9 @@ YY_RULE_SETUP
                  pos);
 }
        YY_BREAK
-case 210:
+case 211:
 YY_RULE_SETUP
-#line 2295 "dhcp4_lexer.ll"
+#line 2304 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     std::string raw(yytext+1);
@@ -5415,9 +5428,9 @@ YY_RULE_SETUP
                  raw.size() + 1);
 }
        YY_BREAK
-case 211:
+case 212:
 YY_RULE_SETUP
-#line 2303 "dhcp4_lexer.ll"
+#line 2312 "dhcp4_lexer.ll"
 {
     /* Bad string with an open unicode escape at the end */
     std::string raw(yytext+1);
@@ -5433,39 +5446,39 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 212:
+case 213:
 YY_RULE_SETUP
-#line 2318 "dhcp4_lexer.ll"
+#line 2327 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 213:
+case 214:
 YY_RULE_SETUP
-#line 2319 "dhcp4_lexer.ll"
+#line 2328 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 214:
+case 215:
 YY_RULE_SETUP
-#line 2320 "dhcp4_lexer.ll"
+#line 2329 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 215:
+case 216:
 YY_RULE_SETUP
-#line 2321 "dhcp4_lexer.ll"
+#line 2330 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 216:
+case 217:
 YY_RULE_SETUP
-#line 2322 "dhcp4_lexer.ll"
+#line 2331 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 217:
+case 218:
 YY_RULE_SETUP
-#line 2323 "dhcp4_lexer.ll"
+#line 2332 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 218:
+case 219:
 YY_RULE_SETUP
-#line 2325 "dhcp4_lexer.ll"
+#line 2334 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -5484,9 +5497,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 219:
+case 220:
 YY_RULE_SETUP
-#line 2343 "dhcp4_lexer.ll"
+#line 2352 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -5500,43 +5513,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 220:
+case 221:
 YY_RULE_SETUP
-#line 2356 "dhcp4_lexer.ll"
+#line 2365 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 221:
+case 222:
 YY_RULE_SETUP
-#line 2361 "dhcp4_lexer.ll"
+#line 2370 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 222:
+case 223:
 YY_RULE_SETUP
-#line 2365 "dhcp4_lexer.ll"
+#line 2374 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 223:
+case 224:
 YY_RULE_SETUP
-#line 2367 "dhcp4_lexer.ll"
+#line 2376 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 224:
+case 225:
 YY_RULE_SETUP
-#line 2369 "dhcp4_lexer.ll"
+#line 2378 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 225:
+case 226:
 YY_RULE_SETUP
-#line 2371 "dhcp4_lexer.ll"
+#line 2380 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2373 "dhcp4_lexer.ll"
+#line 2382 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -5560,12 +5573,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 226:
+case 227:
 YY_RULE_SETUP
-#line 2396 "dhcp4_lexer.ll"
+#line 2405 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 5568 "dhcp4_lexer.cc"
+#line 5582 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5884,7 +5897,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 >= 2239 )
+                       if ( yy_current_state >= 2243 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5917,11 +5930,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 >= 2239 )
+               if ( yy_current_state >= 2243 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 2238);
+       yy_is_jam = (yy_current_state == 2242);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6670,7 +6683,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2396 "dhcp4_lexer.ll"
+#line 2405 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index ebf8f03dd4600c99535879092647b8b25db77485..f3b7d8d34d1366294c5cca4c258b309efacbff8e 100644 (file)
@@ -984,6 +984,15 @@ ControlCharacterFill            [^"\\]|\\["\\/bfnrtu]
     }
 }
 
+\"pool-id\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::POOLS:
+        return isc::dhcp::Dhcp4Parser::make_POOL_ID(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("pool-id", driver.loc_);
+    }
+}
+
 \"user-context\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
index 00183ed75aa74e7302db4f4b8e5ae63c465b0635..2c00d0e2ef39c3ff7a71a6cfab7d32e1fa202938 100644 (file)
@@ -407,79 +407,79 @@ namespace isc { namespace dhcp {
         switch (yykind)
     {
       case symbol_kind::S_STRING: // "constant string"
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < std::string > (); }
 #line 413 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_INTEGER: // "integer"
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < int64_t > (); }
 #line 419 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_FLOAT: // "floating point"
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < double > (); }
 #line 425 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_BOOLEAN: // "boolean"
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < bool > (); }
 #line 431 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_value: // value
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 437 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_map_value: // map_value
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 443 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 449 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_socket_type: // socket_type
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 455 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_outbound_interface_value: // outbound_interface_value
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 461 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_db_type: // db_type
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 467 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_on_fail_mode: // on_fail_mode
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 473 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_hr_mode: // hr_mode
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 479 "dhcp4_parser.cc"
         break;
 
       case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
-#line 303 "dhcp4_parser.yy"
+#line 304 "dhcp4_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 485 "dhcp4_parser.cc"
         break;
@@ -760,127 +760,127 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2: // $@1: %empty
-#line 312 "dhcp4_parser.yy"
+#line 313 "dhcp4_parser.yy"
                      { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 766 "dhcp4_parser.cc"
     break;
 
   case 4: // $@2: %empty
-#line 313 "dhcp4_parser.yy"
+#line 314 "dhcp4_parser.yy"
                       { ctx.ctx_ = ctx.CONFIG; }
 #line 772 "dhcp4_parser.cc"
     break;
 
   case 6: // $@3: %empty
-#line 314 "dhcp4_parser.yy"
+#line 315 "dhcp4_parser.yy"
                  { ctx.ctx_ = ctx.DHCP4; }
 #line 778 "dhcp4_parser.cc"
     break;
 
   case 8: // $@4: %empty
-#line 315 "dhcp4_parser.yy"
+#line 316 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 784 "dhcp4_parser.cc"
     break;
 
   case 10: // $@5: %empty
-#line 316 "dhcp4_parser.yy"
+#line 317 "dhcp4_parser.yy"
                    { ctx.ctx_ = ctx.SUBNET4; }
 #line 790 "dhcp4_parser.cc"
     break;
 
   case 12: // $@6: %empty
-#line 317 "dhcp4_parser.yy"
+#line 318 "dhcp4_parser.yy"
                  { ctx.ctx_ = ctx.POOLS; }
 #line 796 "dhcp4_parser.cc"
     break;
 
   case 14: // $@7: %empty
-#line 318 "dhcp4_parser.yy"
+#line 319 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 802 "dhcp4_parser.cc"
     break;
 
   case 16: // $@8: %empty
-#line 319 "dhcp4_parser.yy"
+#line 320 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.DHCP4; }
 #line 808 "dhcp4_parser.cc"
     break;
 
   case 18: // $@9: %empty
-#line 320 "dhcp4_parser.yy"
+#line 321 "dhcp4_parser.yy"
                       { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 814 "dhcp4_parser.cc"
     break;
 
   case 20: // $@10: %empty
-#line 321 "dhcp4_parser.yy"
+#line 322 "dhcp4_parser.yy"
                        { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 820 "dhcp4_parser.cc"
     break;
 
   case 22: // $@11: %empty
-#line 322 "dhcp4_parser.yy"
+#line 323 "dhcp4_parser.yy"
                          { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 826 "dhcp4_parser.cc"
     break;
 
   case 24: // $@12: %empty
-#line 323 "dhcp4_parser.yy"
+#line 324 "dhcp4_parser.yy"
                      { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 832 "dhcp4_parser.cc"
     break;
 
   case 26: // $@13: %empty
-#line 324 "dhcp4_parser.yy"
+#line 325 "dhcp4_parser.yy"
                           { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 838 "dhcp4_parser.cc"
     break;
 
   case 28: // value: "integer"
-#line 332 "dhcp4_parser.yy"
+#line 333 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 844 "dhcp4_parser.cc"
     break;
 
   case 29: // value: "floating point"
-#line 333 "dhcp4_parser.yy"
+#line 334 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 850 "dhcp4_parser.cc"
     break;
 
   case 30: // value: "boolean"
-#line 334 "dhcp4_parser.yy"
+#line 335 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 856 "dhcp4_parser.cc"
     break;
 
   case 31: // value: "constant string"
-#line 335 "dhcp4_parser.yy"
+#line 336 "dhcp4_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 862 "dhcp4_parser.cc"
     break;
 
   case 32: // value: "null"
-#line 336 "dhcp4_parser.yy"
+#line 337 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 868 "dhcp4_parser.cc"
     break;
 
   case 33: // value: map2
-#line 337 "dhcp4_parser.yy"
+#line 338 "dhcp4_parser.yy"
             { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 874 "dhcp4_parser.cc"
     break;
 
   case 34: // value: list_generic
-#line 338 "dhcp4_parser.yy"
+#line 339 "dhcp4_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 880 "dhcp4_parser.cc"
     break;
 
   case 35: // sub_json: value
-#line 341 "dhcp4_parser.yy"
+#line 342 "dhcp4_parser.yy"
                 {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
@@ -889,7 +889,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 36: // $@14: %empty
-#line 346 "dhcp4_parser.yy"
+#line 347 "dhcp4_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -900,7 +900,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 37: // map2: "{" $@14 map_content "}"
-#line 351 "dhcp4_parser.yy"
+#line 352 "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
@@ -910,13 +910,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 38: // map_value: map2
-#line 357 "dhcp4_parser.yy"
+#line 358 "dhcp4_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 916 "dhcp4_parser.cc"
     break;
 
   case 41: // not_empty_map: "constant string" ":" value
-#line 364 "dhcp4_parser.yy"
+#line 365 "dhcp4_parser.yy"
                                   {
                   // map containing a single entry
                   ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location));
@@ -926,7 +926,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 42: // not_empty_map: not_empty_map "," "constant string" ":" value
-#line 369 "dhcp4_parser.yy"
+#line 370 "dhcp4_parser.yy"
                                                       {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -937,7 +937,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 43: // not_empty_map: not_empty_map ","
-#line 375 "dhcp4_parser.yy"
+#line 376 "dhcp4_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -945,7 +945,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 44: // $@15: %empty
-#line 380 "dhcp4_parser.yy"
+#line 381 "dhcp4_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -954,7 +954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 45: // list_generic: "[" $@15 list_content "]"
-#line 383 "dhcp4_parser.yy"
+#line 384 "dhcp4_parser.yy"
                                {
     // list parsing complete. Put any sanity checking here
 }
@@ -962,7 +962,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 48: // not_empty_list: value
-#line 391 "dhcp4_parser.yy"
+#line 392 "dhcp4_parser.yy"
                       {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -971,7 +971,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 49: // not_empty_list: not_empty_list "," value
-#line 395 "dhcp4_parser.yy"
+#line 396 "dhcp4_parser.yy"
                                            {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -980,7 +980,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 50: // not_empty_list: not_empty_list ","
-#line 399 "dhcp4_parser.yy"
+#line 400 "dhcp4_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -988,7 +988,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51: // $@16: %empty
-#line 405 "dhcp4_parser.yy"
+#line 406 "dhcp4_parser.yy"
                               {
     // List parsing about to start
 }
@@ -996,7 +996,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52: // list_strings: "[" $@16 list_strings_content "]"
-#line 407 "dhcp4_parser.yy"
+#line 408 "dhcp4_parser.yy"
                                        {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -1005,7 +1005,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 55: // not_empty_list_strings: "constant string"
-#line 416 "dhcp4_parser.yy"
+#line 417 "dhcp4_parser.yy"
                                {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1014,7 +1014,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string"
-#line 420 "dhcp4_parser.yy"
+#line 421 "dhcp4_parser.yy"
                                                             {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1023,7 +1023,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57: // not_empty_list_strings: not_empty_list_strings ","
-#line 424 "dhcp4_parser.yy"
+#line 425 "dhcp4_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -1031,7 +1031,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58: // unknown_map_entry: "constant string" ":"
-#line 434 "dhcp4_parser.yy"
+#line 435 "dhcp4_parser.yy"
                                 {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
@@ -1042,7 +1042,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59: // $@17: %empty
-#line 443 "dhcp4_parser.yy"
+#line 444 "dhcp4_parser.yy"
                            {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 60: // syntax_map: "{" $@17 global_object "}"
-#line 448 "dhcp4_parser.yy"
+#line 449 "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
@@ -1066,7 +1066,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 61: // $@18: %empty
-#line 458 "dhcp4_parser.yy"
+#line 459 "dhcp4_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1081,7 +1081,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}"
-#line 467 "dhcp4_parser.yy"
+#line 468 "dhcp4_parser.yy"
                                                     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1091,7 +1091,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 64: // global_object_comma: global_object ","
-#line 475 "dhcp4_parser.yy"
+#line 476 "dhcp4_parser.yy"
                                          {
     ctx.warnAboutExtraCommas(yystack_[0].location);
 }
@@ -1099,7 +1099,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 65: // $@19: %empty
-#line 481 "dhcp4_parser.yy"
+#line 482 "dhcp4_parser.yy"
                           {
     // Parse the Dhcp4 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1109,7 +1109,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 66: // sub_dhcp4: "{" $@19 global_params "}"
-#line 485 "dhcp4_parser.yy"
+#line 486 "dhcp4_parser.yy"
                                {
     // No global parameter is required
     // parsing completed
@@ -1118,7 +1118,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 69: // global_params: global_params ","
-#line 492 "dhcp4_parser.yy"
+#line 493 "dhcp4_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -1126,7 +1126,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 137: // valid_lifetime: "valid-lifetime" ":" "integer"
-#line 568 "dhcp4_parser.yy"
+#line 569 "dhcp4_parser.yy"
                                              {
     ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1136,7 +1136,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 138: // min_valid_lifetime: "min-valid-lifetime" ":" "integer"
-#line 574 "dhcp4_parser.yy"
+#line 575 "dhcp4_parser.yy"
                                                      {
     ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1146,7 +1146,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 139: // max_valid_lifetime: "max-valid-lifetime" ":" "integer"
-#line 580 "dhcp4_parser.yy"
+#line 581 "dhcp4_parser.yy"
                                                      {
     ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1156,7 +1156,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 140: // renew_timer: "renew-timer" ":" "integer"
-#line 586 "dhcp4_parser.yy"
+#line 587 "dhcp4_parser.yy"
                                        {
     ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1166,7 +1166,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 141: // rebind_timer: "rebind-timer" ":" "integer"
-#line 592 "dhcp4_parser.yy"
+#line 593 "dhcp4_parser.yy"
                                          {
     ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1176,7 +1176,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 142: // calculate_tee_times: "calculate-tee-times" ":" "boolean"
-#line 598 "dhcp4_parser.yy"
+#line 599 "dhcp4_parser.yy"
                                                        {
     ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location));
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1186,7 +1186,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 143: // t1_percent: "t1-percent" ":" "floating point"
-#line 604 "dhcp4_parser.yy"
+#line 605 "dhcp4_parser.yy"
                                    {
     ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1196,7 +1196,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 144: // t2_percent: "t2-percent" ":" "floating point"
-#line 610 "dhcp4_parser.yy"
+#line 611 "dhcp4_parser.yy"
                                    {
     ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1206,7 +1206,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 145: // cache_threshold: "cache-threshold" ":" "floating point"
-#line 616 "dhcp4_parser.yy"
+#line 617 "dhcp4_parser.yy"
                                              {
     ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location));
     ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1216,7 +1216,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 146: // cache_max_age: "cache-max-age" ":" "integer"
-#line 622 "dhcp4_parser.yy"
+#line 623 "dhcp4_parser.yy"
                                            {
     ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1226,7 +1226,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 147: // decline_probation_period: "decline-probation-period" ":" "integer"
-#line 628 "dhcp4_parser.yy"
+#line 629 "dhcp4_parser.yy"
                                                                  {
     ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location));
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1236,7 +1236,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 148: // $@20: %empty
-#line 634 "dhcp4_parser.yy"
+#line 635 "dhcp4_parser.yy"
                        {
     ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1245,7 +1245,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 149: // server_tag: "server-tag" $@20 ":" "constant string"
-#line 637 "dhcp4_parser.yy"
+#line 638 "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);
@@ -1255,7 +1255,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 150: // parked_packet_limit: "parked-packet-limit" ":" "integer"
-#line 643 "dhcp4_parser.yy"
+#line 644 "dhcp4_parser.yy"
                                                        {
     ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location));
     ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1265,7 +1265,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 151: // $@21: %empty
-#line 649 "dhcp4_parser.yy"
+#line 650 "dhcp4_parser.yy"
                      {
     ctx.unique("allocator", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1274,7 +1274,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 152: // allocator: "allocator" $@21 ":" "constant string"
-#line 652 "dhcp4_parser.yy"
+#line 653 "dhcp4_parser.yy"
                {
     ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("allocator", al);
@@ -1284,7 +1284,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 153: // echo_client_id: "echo-client-id" ":" "boolean"
-#line 658 "dhcp4_parser.yy"
+#line 659 "dhcp4_parser.yy"
                                              {
     ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1294,7 +1294,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 154: // match_client_id: "match-client-id" ":" "boolean"
-#line 664 "dhcp4_parser.yy"
+#line 665 "dhcp4_parser.yy"
                                                {
     ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1304,7 +1304,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 155: // authoritative: "authoritative" ":" "boolean"
-#line 670 "dhcp4_parser.yy"
+#line 671 "dhcp4_parser.yy"
                                            {
     ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1314,7 +1314,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 156: // ddns_send_updates: "ddns-send-updates" ":" "boolean"
-#line 676 "dhcp4_parser.yy"
+#line 677 "dhcp4_parser.yy"
                                                    {
     ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1324,7 +1324,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 157: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean"
-#line 682 "dhcp4_parser.yy"
+#line 683 "dhcp4_parser.yy"
                                                                {
     ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1334,7 +1334,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 158: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean"
-#line 688 "dhcp4_parser.yy"
+#line 689 "dhcp4_parser.yy"
                                                                        {
     ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1344,7 +1344,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 159: // $@22: %empty
-#line 694 "dhcp4_parser.yy"
+#line 695 "dhcp4_parser.yy"
                                                    {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
     ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location));
@@ -1353,7 +1353,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 160: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value
-#line 697 "dhcp4_parser.yy"
+#line 698 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1362,7 +1362,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 161: // ddns_replace_client_name_value: "when-present"
-#line 703 "dhcp4_parser.yy"
+#line 704 "dhcp4_parser.yy"
                  {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1370,7 +1370,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 162: // ddns_replace_client_name_value: "never"
-#line 706 "dhcp4_parser.yy"
+#line 707 "dhcp4_parser.yy"
           {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1378,7 +1378,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 163: // ddns_replace_client_name_value: "always"
-#line 709 "dhcp4_parser.yy"
+#line 710 "dhcp4_parser.yy"
            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1386,7 +1386,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 164: // ddns_replace_client_name_value: "when-not-present"
-#line 712 "dhcp4_parser.yy"
+#line 713 "dhcp4_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1394,7 +1394,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 165: // ddns_replace_client_name_value: "boolean"
-#line 715 "dhcp4_parser.yy"
+#line 716 "dhcp4_parser.yy"
             {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -1403,7 +1403,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 166: // $@23: %empty
-#line 721 "dhcp4_parser.yy"
+#line 722 "dhcp4_parser.yy"
                                              {
     ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1412,7 +1412,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 167: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string"
-#line 724 "dhcp4_parser.yy"
+#line 725 "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);
@@ -1422,7 +1422,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 168: // $@24: %empty
-#line 730 "dhcp4_parser.yy"
+#line 731 "dhcp4_parser.yy"
                                                {
     ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1431,7 +1431,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 169: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string"
-#line 733 "dhcp4_parser.yy"
+#line 734 "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);
@@ -1441,7 +1441,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 170: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean"
-#line 739 "dhcp4_parser.yy"
+#line 740 "dhcp4_parser.yy"
                                                          {
     ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1451,7 +1451,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 171: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean"
-#line 745 "dhcp4_parser.yy"
+#line 746 "dhcp4_parser.yy"
                                                                          {
     ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1461,7 +1461,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 172: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point"
-#line 751 "dhcp4_parser.yy"
+#line 752 "dhcp4_parser.yy"
                                                {
     ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1471,7 +1471,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 173: // $@25: %empty
-#line 757 "dhcp4_parser.yy"
+#line 758 "dhcp4_parser.yy"
                                      {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1480,7 +1480,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 174: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string"
-#line 760 "dhcp4_parser.yy"
+#line 761 "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);
@@ -1490,7 +1490,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 175: // $@26: %empty
-#line 766 "dhcp4_parser.yy"
+#line 767 "dhcp4_parser.yy"
                                                      {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1499,7 +1499,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 176: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string"
-#line 769 "dhcp4_parser.yy"
+#line 770 "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);
@@ -1509,7 +1509,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 177: // store_extended_info: "store-extended-info" ":" "boolean"
-#line 775 "dhcp4_parser.yy"
+#line 776 "dhcp4_parser.yy"
                                                        {
     ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1519,7 +1519,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 178: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
-#line 781 "dhcp4_parser.yy"
+#line 782 "dhcp4_parser.yy"
                                                                              {
     ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location));
     ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1529,7 +1529,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 179: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
-#line 787 "dhcp4_parser.yy"
+#line 788 "dhcp4_parser.yy"
                                                                          {
     ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1539,7 +1539,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 180: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean"
-#line 793 "dhcp4_parser.yy"
+#line 794 "dhcp4_parser.yy"
                                                                                  {
     ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location));
     ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1549,7 +1549,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 181: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean"
-#line 799 "dhcp4_parser.yy"
+#line 800 "dhcp4_parser.yy"
                                                              {
     ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location));
     ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1559,7 +1559,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 182: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean"
-#line 805 "dhcp4_parser.yy"
+#line 806 "dhcp4_parser.yy"
                                                                    {
     ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location));
     ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1569,7 +1569,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 183: // offer_lifetime: "offer-lifetime" ":" "integer"
-#line 811 "dhcp4_parser.yy"
+#line 812 "dhcp4_parser.yy"
                                         {
     ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1579,7 +1579,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 184: // $@27: %empty
-#line 817 "dhcp4_parser.yy"
+#line 818 "dhcp4_parser.yy"
                                      {
     ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1591,7 +1591,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 185: // interfaces_config: "interfaces-config" $@27 ":" "{" interfaces_config_params "}"
-#line 823 "dhcp4_parser.yy"
+#line 824 "dhcp4_parser.yy"
                                                                {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1601,7 +1601,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188: // interfaces_config_params: interfaces_config_params ","
-#line 831 "dhcp4_parser.yy"
+#line 832 "dhcp4_parser.yy"
                                                          {
                             ctx.warnAboutExtraCommas(yystack_[0].location);
                             }
@@ -1609,7 +1609,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 199: // $@28: %empty
-#line 848 "dhcp4_parser.yy"
+#line 849 "dhcp4_parser.yy"
                                 {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1619,7 +1619,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 200: // sub_interfaces4: "{" $@28 interfaces_config_params "}"
-#line 852 "dhcp4_parser.yy"
+#line 853 "dhcp4_parser.yy"
                                           {
     // No interfaces config param is required
     // parsing completed
@@ -1628,7 +1628,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 201: // $@29: %empty
-#line 857 "dhcp4_parser.yy"
+#line 858 "dhcp4_parser.yy"
                             {
     ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1640,7 +1640,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 202: // interfaces_list: "interfaces" $@29 ":" list_strings
-#line 863 "dhcp4_parser.yy"
+#line 864 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1649,7 +1649,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 203: // $@30: %empty
-#line 868 "dhcp4_parser.yy"
+#line 869 "dhcp4_parser.yy"
                                    {
     ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
@@ -1658,7 +1658,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 204: // dhcp_socket_type: "dhcp-socket-type" $@30 ":" socket_type
-#line 871 "dhcp4_parser.yy"
+#line 872 "dhcp4_parser.yy"
                     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1667,19 +1667,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 205: // socket_type: "raw"
-#line 876 "dhcp4_parser.yy"
+#line 877 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
 #line 1673 "dhcp4_parser.cc"
     break;
 
   case 206: // socket_type: "udp"
-#line 877 "dhcp4_parser.yy"
+#line 878 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
 #line 1679 "dhcp4_parser.cc"
     break;
 
   case 207: // $@31: %empty
-#line 880 "dhcp4_parser.yy"
+#line 881 "dhcp4_parser.yy"
                                        {
     ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.OUTBOUND_INTERFACE);
@@ -1688,7 +1688,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 208: // outbound_interface: "outbound-interface" $@31 ":" outbound_interface_value
-#line 883 "dhcp4_parser.yy"
+#line 884 "dhcp4_parser.yy"
                                  {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1697,7 +1697,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 209: // outbound_interface_value: "same-as-inbound"
-#line 888 "dhcp4_parser.yy"
+#line 889 "dhcp4_parser.yy"
                                           {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
@@ -1705,7 +1705,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 210: // outbound_interface_value: "use-routing"
-#line 890 "dhcp4_parser.yy"
+#line 891 "dhcp4_parser.yy"
                 {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
@@ -1713,7 +1713,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 211: // re_detect: "re-detect" ":" "boolean"
-#line 894 "dhcp4_parser.yy"
+#line 895 "dhcp4_parser.yy"
                                    {
     ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1723,7 +1723,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 212: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean"
-#line 900 "dhcp4_parser.yy"
+#line 901 "dhcp4_parser.yy"
                                                                        {
     ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1733,7 +1733,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 213: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer"
-#line 906 "dhcp4_parser.yy"
+#line 907 "dhcp4_parser.yy"
                                                                                {
     ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1743,7 +1743,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 214: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer"
-#line 912 "dhcp4_parser.yy"
+#line 913 "dhcp4_parser.yy"
                                                                        {
     ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1753,7 +1753,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 215: // $@32: %empty
-#line 918 "dhcp4_parser.yy"
+#line 919 "dhcp4_parser.yy"
                                {
     ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1765,7 +1765,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 216: // lease_database: "lease-database" $@32 ":" "{" database_map_params "}"
-#line 924 "dhcp4_parser.yy"
+#line 925 "dhcp4_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1776,7 +1776,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 217: // $@33: %empty
-#line 931 "dhcp4_parser.yy"
+#line 932 "dhcp4_parser.yy"
                              {
     ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1788,7 +1788,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 218: // sanity_checks: "sanity-checks" $@33 ":" "{" sanity_checks_params "}"
-#line 937 "dhcp4_parser.yy"
+#line 938 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1797,7 +1797,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221: // sanity_checks_params: sanity_checks_params ","
-#line 944 "dhcp4_parser.yy"
+#line 945 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -1805,7 +1805,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 224: // $@34: %empty
-#line 953 "dhcp4_parser.yy"
+#line 954 "dhcp4_parser.yy"
                            {
     ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1814,7 +1814,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 225: // lease_checks: "lease-checks" $@34 ":" "constant string"
-#line 956 "dhcp4_parser.yy"
+#line 957 "dhcp4_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1834,7 +1834,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 226: // $@35: %empty
-#line 972 "dhcp4_parser.yy"
+#line 973 "dhcp4_parser.yy"
                                            {
     ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1843,7 +1843,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 227: // extended_info_checks: "extended-info-checks" $@35 ":" "constant string"
-#line 975 "dhcp4_parser.yy"
+#line 976 "dhcp4_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1862,7 +1862,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 228: // $@36: %empty
-#line 990 "dhcp4_parser.yy"
+#line 991 "dhcp4_parser.yy"
                                {
     ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1874,7 +1874,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 229: // hosts_database: "hosts-database" $@36 ":" "{" database_map_params "}"
-#line 996 "dhcp4_parser.yy"
+#line 997 "dhcp4_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1885,7 +1885,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 230: // $@37: %empty
-#line 1003 "dhcp4_parser.yy"
+#line 1004 "dhcp4_parser.yy"
                                  {
     ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1897,7 +1897,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 231: // hosts_databases: "hosts-databases" $@37 ":" "[" database_list "]"
-#line 1009 "dhcp4_parser.yy"
+#line 1010 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1906,7 +1906,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 236: // not_empty_database_list: not_empty_database_list ","
-#line 1020 "dhcp4_parser.yy"
+#line 1021 "dhcp4_parser.yy"
                                                        {
                            ctx.warnAboutExtraCommas(yystack_[0].location);
                            }
@@ -1914,7 +1914,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 237: // $@38: %empty
-#line 1025 "dhcp4_parser.yy"
+#line 1026 "dhcp4_parser.yy"
                          {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1924,7 +1924,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 238: // database: "{" $@38 database_map_params "}"
-#line 1029 "dhcp4_parser.yy"
+#line 1030 "dhcp4_parser.yy"
                                      {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1934,7 +1934,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 241: // database_map_params: database_map_params ","
-#line 1037 "dhcp4_parser.yy"
+#line 1038 "dhcp4_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
@@ -1942,7 +1942,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 264: // $@39: %empty
-#line 1066 "dhcp4_parser.yy"
+#line 1067 "dhcp4_parser.yy"
                     {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_TYPE);
@@ -1951,7 +1951,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 265: // database_type: "type" $@39 ":" db_type
-#line 1069 "dhcp4_parser.yy"
+#line 1070 "dhcp4_parser.yy"
                 {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1960,25 +1960,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 266: // db_type: "memfile"
-#line 1074 "dhcp4_parser.yy"
+#line 1075 "dhcp4_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1966 "dhcp4_parser.cc"
     break;
 
   case 267: // db_type: "mysql"
-#line 1075 "dhcp4_parser.yy"
+#line 1076 "dhcp4_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1972 "dhcp4_parser.cc"
     break;
 
   case 268: // db_type: "postgresql"
-#line 1076 "dhcp4_parser.yy"
+#line 1077 "dhcp4_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1978 "dhcp4_parser.cc"
     break;
 
   case 269: // $@40: %empty
-#line 1079 "dhcp4_parser.yy"
+#line 1080 "dhcp4_parser.yy"
            {
     ctx.unique("user", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1987,7 +1987,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 270: // user: "user" $@40 ":" "constant string"
-#line 1082 "dhcp4_parser.yy"
+#line 1083 "dhcp4_parser.yy"
                {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1997,7 +1997,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 271: // $@41: %empty
-#line 1088 "dhcp4_parser.yy"
+#line 1089 "dhcp4_parser.yy"
                    {
     ctx.unique("password", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2006,7 +2006,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 272: // password: "password" $@41 ":" "constant string"
-#line 1091 "dhcp4_parser.yy"
+#line 1092 "dhcp4_parser.yy"
                {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -2016,7 +2016,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 273: // $@42: %empty
-#line 1097 "dhcp4_parser.yy"
+#line 1098 "dhcp4_parser.yy"
            {
     ctx.unique("host", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2025,7 +2025,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 274: // host: "host" $@42 ":" "constant string"
-#line 1100 "dhcp4_parser.yy"
+#line 1101 "dhcp4_parser.yy"
                {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -2035,7 +2035,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 275: // port: "port" ":" "integer"
-#line 1106 "dhcp4_parser.yy"
+#line 1107 "dhcp4_parser.yy"
                          {
     ctx.unique("port", ctx.loc2pos(yystack_[2].location));
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2045,7 +2045,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 276: // $@43: %empty
-#line 1112 "dhcp4_parser.yy"
+#line 1113 "dhcp4_parser.yy"
            {
     ctx.unique("name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2054,7 +2054,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 277: // name: "name" $@43 ":" "constant string"
-#line 1115 "dhcp4_parser.yy"
+#line 1116 "dhcp4_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -2064,7 +2064,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 278: // persist: "persist" ":" "boolean"
-#line 1121 "dhcp4_parser.yy"
+#line 1122 "dhcp4_parser.yy"
                                {
     ctx.unique("persist", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2074,7 +2074,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 279: // lfc_interval: "lfc-interval" ":" "integer"
-#line 1127 "dhcp4_parser.yy"
+#line 1128 "dhcp4_parser.yy"
                                          {
     ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2084,7 +2084,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 280: // readonly: "readonly" ":" "boolean"
-#line 1133 "dhcp4_parser.yy"
+#line 1134 "dhcp4_parser.yy"
                                  {
     ctx.unique("readonly", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2094,7 +2094,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 281: // connect_timeout: "connect-timeout" ":" "integer"
-#line 1139 "dhcp4_parser.yy"
+#line 1140 "dhcp4_parser.yy"
                                                {
     ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2104,7 +2104,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 282: // read_timeout: "read-timeout" ":" "integer"
-#line 1145 "dhcp4_parser.yy"
+#line 1146 "dhcp4_parser.yy"
                                          {
     ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2114,7 +2114,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 283: // write_timeout: "write-timeout" ":" "integer"
-#line 1151 "dhcp4_parser.yy"
+#line 1152 "dhcp4_parser.yy"
                                            {
     ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2124,7 +2124,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 284: // tcp_user_timeout: "tcp-user-timeout" ":" "integer"
-#line 1157 "dhcp4_parser.yy"
+#line 1158 "dhcp4_parser.yy"
                                                  {
     ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2134,7 +2134,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 285: // max_reconnect_tries: "max-reconnect-tries" ":" "integer"
-#line 1163 "dhcp4_parser.yy"
+#line 1164 "dhcp4_parser.yy"
                                                        {
     ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2144,7 +2144,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 286: // reconnect_wait_time: "reconnect-wait-time" ":" "integer"
-#line 1169 "dhcp4_parser.yy"
+#line 1170 "dhcp4_parser.yy"
                                                        {
     ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2154,7 +2154,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 287: // $@44: %empty
-#line 1175 "dhcp4_parser.yy"
+#line 1176 "dhcp4_parser.yy"
                  {
     ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_ON_FAIL);
@@ -2163,7 +2163,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 288: // on_fail: "on-fail" $@44 ":" on_fail_mode
-#line 1178 "dhcp4_parser.yy"
+#line 1179 "dhcp4_parser.yy"
                      {
     ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2172,25 +2172,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 289: // on_fail_mode: "stop-retry-exit"
-#line 1183 "dhcp4_parser.yy"
+#line 1184 "dhcp4_parser.yy"
                               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2178 "dhcp4_parser.cc"
     break;
 
   case 290: // on_fail_mode: "serve-retry-exit"
-#line 1184 "dhcp4_parser.yy"
+#line 1185 "dhcp4_parser.yy"
                                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2184 "dhcp4_parser.cc"
     break;
 
   case 291: // on_fail_mode: "serve-retry-continue"
-#line 1185 "dhcp4_parser.yy"
+#line 1186 "dhcp4_parser.yy"
                                    { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); }
 #line 2190 "dhcp4_parser.cc"
     break;
 
   case 292: // max_row_errors: "max-row-errors" ":" "integer"
-#line 1188 "dhcp4_parser.yy"
+#line 1189 "dhcp4_parser.yy"
                                              {
     ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2200,7 +2200,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 293: // $@45: %empty
-#line 1194 "dhcp4_parser.yy"
+#line 1195 "dhcp4_parser.yy"
                            {
     ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2209,7 +2209,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 294: // trust_anchor: "trust-anchor" $@45 ":" "constant string"
-#line 1197 "dhcp4_parser.yy"
+#line 1198 "dhcp4_parser.yy"
                {
     ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("trust-anchor", ca);
@@ -2219,7 +2219,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 295: // $@46: %empty
-#line 1203 "dhcp4_parser.yy"
+#line 1204 "dhcp4_parser.yy"
                      {
     ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2228,7 +2228,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 296: // cert_file: "cert-file" $@46 ":" "constant string"
-#line 1206 "dhcp4_parser.yy"
+#line 1207 "dhcp4_parser.yy"
                {
     ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cert-file", cert);
@@ -2238,7 +2238,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 297: // $@47: %empty
-#line 1212 "dhcp4_parser.yy"
+#line 1213 "dhcp4_parser.yy"
                    {
     ctx.unique("key-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2247,7 +2247,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 298: // key_file: "key-file" $@47 ":" "constant string"
-#line 1215 "dhcp4_parser.yy"
+#line 1216 "dhcp4_parser.yy"
                {
     ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("key-file", key);
@@ -2257,7 +2257,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 299: // $@48: %empty
-#line 1221 "dhcp4_parser.yy"
+#line 1222 "dhcp4_parser.yy"
                          {
     ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2266,7 +2266,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 300: // cipher_list: "cipher-list" $@48 ":" "constant string"
-#line 1224 "dhcp4_parser.yy"
+#line 1225 "dhcp4_parser.yy"
                {
     ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cipher-list", cl);
@@ -2276,7 +2276,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 301: // $@49: %empty
-#line 1230 "dhcp4_parser.yy"
+#line 1231 "dhcp4_parser.yy"
                                                            {
     ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2288,7 +2288,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 302: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]"
-#line 1236 "dhcp4_parser.yy"
+#line 1237 "dhcp4_parser.yy"
                                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2297,7 +2297,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 305: // host_reservation_identifiers_list: host_reservation_identifiers_list ","
-#line 1243 "dhcp4_parser.yy"
+#line 1244 "dhcp4_parser.yy"
                                               {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2305,7 +2305,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 311: // duid_id: "duid"
-#line 1255 "dhcp4_parser.yy"
+#line 1256 "dhcp4_parser.yy"
               {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -2314,7 +2314,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 312: // hw_address_id: "hw-address"
-#line 1260 "dhcp4_parser.yy"
+#line 1261 "dhcp4_parser.yy"
                           {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -2323,7 +2323,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 313: // circuit_id: "circuit-id"
-#line 1265 "dhcp4_parser.yy"
+#line 1266 "dhcp4_parser.yy"
                        {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
@@ -2332,7 +2332,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 314: // client_id: "client-id"
-#line 1270 "dhcp4_parser.yy"
+#line 1271 "dhcp4_parser.yy"
                      {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
@@ -2341,7 +2341,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 315: // flex_id: "flex-id"
-#line 1275 "dhcp4_parser.yy"
+#line 1276 "dhcp4_parser.yy"
                  {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -2350,7 +2350,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 316: // $@50: %empty
-#line 1282 "dhcp4_parser.yy"
+#line 1283 "dhcp4_parser.yy"
                                            {
     ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location));
     ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2362,7 +2362,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 317: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}"
-#line 1288 "dhcp4_parser.yy"
+#line 1289 "dhcp4_parser.yy"
                                                              {
     // The enable parameter is required.
     ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2373,7 +2373,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 320: // multi_threading_params: multi_threading_params ","
-#line 1297 "dhcp4_parser.yy"
+#line 1298 "dhcp4_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2381,7 +2381,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 327: // enable_multi_threading: "enable-multi-threading" ":" "boolean"
-#line 1310 "dhcp4_parser.yy"
+#line 1311 "dhcp4_parser.yy"
                                                              {
     ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2391,7 +2391,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 328: // thread_pool_size: "thread-pool-size" ":" "integer"
-#line 1316 "dhcp4_parser.yy"
+#line 1317 "dhcp4_parser.yy"
                                                  {
     ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2401,7 +2401,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 329: // packet_queue_size: "packet-queue-size" ":" "integer"
-#line 1322 "dhcp4_parser.yy"
+#line 1323 "dhcp4_parser.yy"
                                                    {
     ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2411,7 +2411,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 330: // $@51: %empty
-#line 1328 "dhcp4_parser.yy"
+#line 1329 "dhcp4_parser.yy"
                                  {
     ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2423,7 +2423,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 331: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]"
-#line 1334 "dhcp4_parser.yy"
+#line 1335 "dhcp4_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2432,7 +2432,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 336: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1345 "dhcp4_parser.yy"
+#line 1346 "dhcp4_parser.yy"
                                            {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2440,7 +2440,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 337: // $@52: %empty
-#line 1350 "dhcp4_parser.yy"
+#line 1351 "dhcp4_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2450,7 +2450,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 338: // hooks_library: "{" $@52 hooks_params "}"
-#line 1354 "dhcp4_parser.yy"
+#line 1355 "dhcp4_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2460,7 +2460,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 339: // $@53: %empty
-#line 1360 "dhcp4_parser.yy"
+#line 1361 "dhcp4_parser.yy"
                                   {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2470,7 +2470,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 340: // sub_hooks_library: "{" $@53 hooks_params "}"
-#line 1364 "dhcp4_parser.yy"
+#line 1365 "dhcp4_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2480,7 +2480,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 343: // hooks_params: hooks_params ","
-#line 1372 "dhcp4_parser.yy"
+#line 1373 "dhcp4_parser.yy"
                                  {
                 ctx.warnAboutExtraCommas(yystack_[0].location);
                 }
@@ -2488,7 +2488,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 347: // $@54: %empty
-#line 1382 "dhcp4_parser.yy"
+#line 1383 "dhcp4_parser.yy"
                  {
     ctx.unique("library", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2497,7 +2497,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 348: // library: "library" $@54 ":" "constant string"
-#line 1385 "dhcp4_parser.yy"
+#line 1386 "dhcp4_parser.yy"
                {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -2507,7 +2507,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 349: // $@55: %empty
-#line 1391 "dhcp4_parser.yy"
+#line 1392 "dhcp4_parser.yy"
                        {
     ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2516,7 +2516,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 350: // parameters: "parameters" $@55 ":" map_value
-#line 1394 "dhcp4_parser.yy"
+#line 1395 "dhcp4_parser.yy"
                   {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2525,7 +2525,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 351: // $@56: %empty
-#line 1400 "dhcp4_parser.yy"
+#line 1401 "dhcp4_parser.yy"
                                                      {
     ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2537,7 +2537,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 352: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}"
-#line 1406 "dhcp4_parser.yy"
+#line 1407 "dhcp4_parser.yy"
                                                             {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -2547,7 +2547,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 355: // expired_leases_params: expired_leases_params ","
-#line 1414 "dhcp4_parser.yy"
+#line 1415 "dhcp4_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -2555,7 +2555,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 362: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer"
-#line 1427 "dhcp4_parser.yy"
+#line 1428 "dhcp4_parser.yy"
                                                                {
     ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2565,7 +2565,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 363: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer"
-#line 1433 "dhcp4_parser.yy"
+#line 1434 "dhcp4_parser.yy"
                                                                                {
     ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2575,7 +2575,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 364: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer"
-#line 1439 "dhcp4_parser.yy"
+#line 1440 "dhcp4_parser.yy"
                                                        {
     ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2585,7 +2585,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 365: // max_reclaim_leases: "max-reclaim-leases" ":" "integer"
-#line 1445 "dhcp4_parser.yy"
+#line 1446 "dhcp4_parser.yy"
                                                      {
     ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2595,7 +2595,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 366: // max_reclaim_time: "max-reclaim-time" ":" "integer"
-#line 1451 "dhcp4_parser.yy"
+#line 1452 "dhcp4_parser.yy"
                                                  {
     ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2605,7 +2605,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 367: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer"
-#line 1457 "dhcp4_parser.yy"
+#line 1458 "dhcp4_parser.yy"
                                                                {
     ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2615,7 +2615,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 368: // $@57: %empty
-#line 1466 "dhcp4_parser.yy"
+#line 1467 "dhcp4_parser.yy"
                       {
     ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2627,7 +2627,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 369: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]"
-#line 1472 "dhcp4_parser.yy"
+#line 1473 "dhcp4_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2636,7 +2636,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 374: // not_empty_subnet4_list: not_empty_subnet4_list ","
-#line 1486 "dhcp4_parser.yy"
+#line 1487 "dhcp4_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2644,7 +2644,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 375: // $@58: %empty
-#line 1495 "dhcp4_parser.yy"
+#line 1496 "dhcp4_parser.yy"
                         {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2654,7 +2654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 376: // subnet4: "{" $@58 subnet4_params "}"
-#line 1499 "dhcp4_parser.yy"
+#line 1500 "dhcp4_parser.yy"
                                 {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2680,7 +2680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 377: // $@59: %empty
-#line 1521 "dhcp4_parser.yy"
+#line 1522 "dhcp4_parser.yy"
                             {
     // Parse the subnet4 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2690,7 +2690,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 378: // sub_subnet4: "{" $@59 subnet4_params "}"
-#line 1525 "dhcp4_parser.yy"
+#line 1526 "dhcp4_parser.yy"
                                 {
     // The subnet subnet4 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2700,7 +2700,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 381: // subnet4_params: subnet4_params ","
-#line 1534 "dhcp4_parser.yy"
+#line 1535 "dhcp4_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -2708,7 +2708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 430: // $@60: %empty
-#line 1590 "dhcp4_parser.yy"
+#line 1591 "dhcp4_parser.yy"
                {
     ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2717,7 +2717,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 431: // subnet: "subnet" $@60 ":" "constant string"
-#line 1593 "dhcp4_parser.yy"
+#line 1594 "dhcp4_parser.yy"
                {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2727,7 +2727,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 432: // $@61: %empty
-#line 1599 "dhcp4_parser.yy"
+#line 1600 "dhcp4_parser.yy"
                                            {
     ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2736,7 +2736,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 433: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string"
-#line 1602 "dhcp4_parser.yy"
+#line 1603 "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);
@@ -2746,7 +2746,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 434: // $@62: %empty
-#line 1608 "dhcp4_parser.yy"
+#line 1609 "dhcp4_parser.yy"
                                                  {
     ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2755,7 +2755,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 435: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string"
-#line 1611 "dhcp4_parser.yy"
+#line 1612 "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);
@@ -2765,7 +2765,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 436: // $@63: %empty
-#line 1617 "dhcp4_parser.yy"
+#line 1618 "dhcp4_parser.yy"
                                      {
     ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2774,7 +2774,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 437: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string"
-#line 1620 "dhcp4_parser.yy"
+#line 1621 "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);
@@ -2784,7 +2784,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 438: // $@64: %empty
-#line 1626 "dhcp4_parser.yy"
+#line 1627 "dhcp4_parser.yy"
                      {
     ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2793,7 +2793,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 439: // interface: "interface" $@64 ":" "constant string"
-#line 1629 "dhcp4_parser.yy"
+#line 1630 "dhcp4_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2803,7 +2803,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 440: // $@65: %empty
-#line 1635 "dhcp4_parser.yy"
+#line 1636 "dhcp4_parser.yy"
                            {
     ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2812,7 +2812,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 441: // client_class: "client-class" $@65 ":" "constant string"
-#line 1638 "dhcp4_parser.yy"
+#line 1639 "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);
@@ -2822,7 +2822,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 442: // $@66: %empty
-#line 1644 "dhcp4_parser.yy"
+#line 1645 "dhcp4_parser.yy"
                                                {
     ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2834,7 +2834,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 443: // require_client_classes: "require-client-classes" $@66 ":" list_strings
-#line 1650 "dhcp4_parser.yy"
+#line 1651 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2843,7 +2843,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 444: // reservations_global: "reservations-global" ":" "boolean"
-#line 1655 "dhcp4_parser.yy"
+#line 1656 "dhcp4_parser.yy"
                                                        {
     ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2853,7 +2853,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 445: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1661 "dhcp4_parser.yy"
+#line 1662 "dhcp4_parser.yy"
                                                              {
     ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2863,7 +2863,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 446: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1667 "dhcp4_parser.yy"
+#line 1668 "dhcp4_parser.yy"
                                                                  {
     ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2873,7 +2873,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 447: // $@67: %empty
-#line 1673 "dhcp4_parser.yy"
+#line 1674 "dhcp4_parser.yy"
                                    {
     ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.RESERVATION_MODE);
@@ -2882,7 +2882,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 448: // reservation_mode: "reservation-mode" $@67 ":" hr_mode
-#line 1676 "dhcp4_parser.yy"
+#line 1677 "dhcp4_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2891,31 +2891,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 449: // hr_mode: "disabled"
-#line 1681 "dhcp4_parser.yy"
+#line 1682 "dhcp4_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2897 "dhcp4_parser.cc"
     break;
 
   case 450: // hr_mode: "out-of-pool"
-#line 1682 "dhcp4_parser.yy"
+#line 1683 "dhcp4_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2903 "dhcp4_parser.cc"
     break;
 
   case 451: // hr_mode: "global"
-#line 1683 "dhcp4_parser.yy"
+#line 1684 "dhcp4_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2909 "dhcp4_parser.cc"
     break;
 
   case 452: // hr_mode: "all"
-#line 1684 "dhcp4_parser.yy"
+#line 1685 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2915 "dhcp4_parser.cc"
     break;
 
   case 453: // id: "id" ":" "integer"
-#line 1687 "dhcp4_parser.yy"
+#line 1688 "dhcp4_parser.yy"
                      {
     ctx.unique("id", ctx.loc2pos(yystack_[2].location));
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2925,7 +2925,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 454: // $@68: %empty
-#line 1695 "dhcp4_parser.yy"
+#line 1696 "dhcp4_parser.yy"
                                  {
     ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2937,7 +2937,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 455: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]"
-#line 1701 "dhcp4_parser.yy"
+#line 1702 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2946,7 +2946,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 460: // shared_networks_list: shared_networks_list ","
-#line 1714 "dhcp4_parser.yy"
+#line 1715 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -2954,7 +2954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 461: // $@69: %empty
-#line 1719 "dhcp4_parser.yy"
+#line 1720 "dhcp4_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2964,7 +2964,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 462: // shared_network: "{" $@69 shared_network_params "}"
-#line 1723 "dhcp4_parser.yy"
+#line 1724 "dhcp4_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
@@ -2972,7 +2972,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 465: // shared_network_params: shared_network_params ","
-#line 1729 "dhcp4_parser.yy"
+#line 1730 "dhcp4_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -2980,7 +2980,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 509: // $@70: %empty
-#line 1783 "dhcp4_parser.yy"
+#line 1784 "dhcp4_parser.yy"
                             {
     ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2992,7 +2992,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 510: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]"
-#line 1789 "dhcp4_parser.yy"
+#line 1790 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3001,7 +3001,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 511: // $@71: %empty
-#line 1797 "dhcp4_parser.yy"
+#line 1798 "dhcp4_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -3010,7 +3010,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 512: // sub_option_def_list: "{" $@71 option_def_list "}"
-#line 1800 "dhcp4_parser.yy"
+#line 1801 "dhcp4_parser.yy"
                                  {
     // parsing completed
 }
@@ -3018,7 +3018,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1812 "dhcp4_parser.yy"
+#line 1813 "dhcp4_parser.yy"
                                                            {
                              ctx.warnAboutExtraCommas(yystack_[0].location);
                              }
@@ -3026,7 +3026,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 518: // $@72: %empty
-#line 1819 "dhcp4_parser.yy"
+#line 1820 "dhcp4_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3036,7 +3036,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 519: // option_def_entry: "{" $@72 option_def_params "}"
-#line 1823 "dhcp4_parser.yy"
+#line 1824 "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));
@@ -3048,7 +3048,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 520: // $@73: %empty
-#line 1834 "dhcp4_parser.yy"
+#line 1835 "dhcp4_parser.yy"
                                {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3058,7 +3058,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 521: // sub_option_def: "{" $@73 option_def_params "}"
-#line 1838 "dhcp4_parser.yy"
+#line 1839 "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));
@@ -3070,7 +3070,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 526: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1854 "dhcp4_parser.yy"
+#line 1855 "dhcp4_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -3078,7 +3078,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 538: // code: "code" ":" "integer"
-#line 1873 "dhcp4_parser.yy"
+#line 1874 "dhcp4_parser.yy"
                          {
     ctx.unique("code", ctx.loc2pos(yystack_[2].location));
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3088,7 +3088,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 540: // $@74: %empty
-#line 1881 "dhcp4_parser.yy"
+#line 1882 "dhcp4_parser.yy"
                       {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3097,7 +3097,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 541: // option_def_type: "type" $@74 ":" "constant string"
-#line 1884 "dhcp4_parser.yy"
+#line 1885 "dhcp4_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -3107,7 +3107,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 542: // $@75: %empty
-#line 1890 "dhcp4_parser.yy"
+#line 1891 "dhcp4_parser.yy"
                                       {
     ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3116,7 +3116,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 543: // option_def_record_types: "record-types" $@75 ":" "constant string"
-#line 1893 "dhcp4_parser.yy"
+#line 1894 "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);
@@ -3126,7 +3126,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 544: // $@76: %empty
-#line 1899 "dhcp4_parser.yy"
+#line 1900 "dhcp4_parser.yy"
              {
     ctx.unique("space", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3135,7 +3135,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 545: // space: "space" $@76 ":" "constant string"
-#line 1902 "dhcp4_parser.yy"
+#line 1903 "dhcp4_parser.yy"
                {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -3145,7 +3145,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 547: // $@77: %empty
-#line 1910 "dhcp4_parser.yy"
+#line 1911 "dhcp4_parser.yy"
                                     {
     ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3154,7 +3154,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 548: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string"
-#line 1913 "dhcp4_parser.yy"
+#line 1914 "dhcp4_parser.yy"
                {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -3164,7 +3164,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 549: // option_def_array: "array" ":" "boolean"
-#line 1919 "dhcp4_parser.yy"
+#line 1920 "dhcp4_parser.yy"
                                       {
     ctx.unique("array", ctx.loc2pos(yystack_[2].location));
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3174,7 +3174,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 550: // $@78: %empty
-#line 1929 "dhcp4_parser.yy"
+#line 1930 "dhcp4_parser.yy"
                               {
     ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3186,7 +3186,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 551: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]"
-#line 1935 "dhcp4_parser.yy"
+#line 1936 "dhcp4_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3195,7 +3195,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 1950 "dhcp4_parser.yy"
+#line 1951 "dhcp4_parser.yy"
                                                              {
                               ctx.warnAboutExtraCommas(yystack_[0].location);
                               }
@@ -3203,7 +3203,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557: // $@79: %empty
-#line 1957 "dhcp4_parser.yy"
+#line 1958 "dhcp4_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3213,7 +3213,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 558: // option_data_entry: "{" $@79 option_data_params "}"
-#line 1961 "dhcp4_parser.yy"
+#line 1962 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -3222,7 +3222,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 559: // $@80: %empty
-#line 1969 "dhcp4_parser.yy"
+#line 1970 "dhcp4_parser.yy"
                                 {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3232,7 +3232,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 560: // sub_option_data: "{" $@80 option_data_params "}"
-#line 1973 "dhcp4_parser.yy"
+#line 1974 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -3241,7 +3241,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 565: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 1989 "dhcp4_parser.yy"
+#line 1990 "dhcp4_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3249,7 +3249,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 577: // $@81: %empty
-#line 2010 "dhcp4_parser.yy"
+#line 2011 "dhcp4_parser.yy"
                        {
     ctx.unique("data", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3258,7 +3258,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 578: // option_data_data: "data" $@81 ":" "constant string"
-#line 2013 "dhcp4_parser.yy"
+#line 2014 "dhcp4_parser.yy"
                {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -3268,7 +3268,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 581: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2023 "dhcp4_parser.yy"
+#line 2024 "dhcp4_parser.yy"
                                                  {
     ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
     ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3278,7 +3278,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 582: // option_data_always_send: "always-send" ":" "boolean"
-#line 2029 "dhcp4_parser.yy"
+#line 2030 "dhcp4_parser.yy"
                                                    {
     ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3288,7 +3288,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 583: // option_data_never_send: "never-send" ":" "boolean"
-#line 2035 "dhcp4_parser.yy"
+#line 2036 "dhcp4_parser.yy"
                                                  {
     ctx.unique("never-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3298,7 +3298,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 584: // $@82: %empty
-#line 2044 "dhcp4_parser.yy"
+#line 2045 "dhcp4_parser.yy"
                   {
     ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3310,7 +3310,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 585: // pools_list: "pools" $@82 ":" "[" pools_list_content "]"
-#line 2050 "dhcp4_parser.yy"
+#line 2051 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3319,7 +3319,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 590: // not_empty_pools_list: not_empty_pools_list ","
-#line 2063 "dhcp4_parser.yy"
+#line 2064 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -3327,7 +3327,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 591: // $@83: %empty
-#line 2068 "dhcp4_parser.yy"
+#line 2069 "dhcp4_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3337,7 +3337,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 592: // pool_list_entry: "{" $@83 pool_params "}"
-#line 2072 "dhcp4_parser.yy"
+#line 2073 "dhcp4_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3347,7 +3347,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 593: // $@84: %empty
-#line 2078 "dhcp4_parser.yy"
+#line 2079 "dhcp4_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3357,7 +3357,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 594: // sub_pool4: "{" $@84 pool_params "}"
-#line 2082 "dhcp4_parser.yy"
+#line 2083 "dhcp4_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3367,15 +3367,15 @@ namespace isc { namespace dhcp {
     break;
 
   case 597: // pool_params: pool_params ","
-#line 2090 "dhcp4_parser.yy"
+#line 2091 "dhcp4_parser.yy"
                                {
                ctx.warnAboutExtraCommas(yystack_[0].location);
                }
 #line 3375 "dhcp4_parser.cc"
     break;
 
-  case 605: // $@85: %empty
-#line 2104 "dhcp4_parser.yy"
+  case 606: // $@85: %empty
+#line 2106 "dhcp4_parser.yy"
                  {
     ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3383,8 +3383,8 @@ namespace isc { namespace dhcp {
 #line 3384 "dhcp4_parser.cc"
     break;
 
-  case 606: // pool_entry: "pool" $@85 ":" "constant string"
-#line 2107 "dhcp4_parser.yy"
+  case 607: // pool_entry: "pool" $@85 ":" "constant string"
+#line 2109 "dhcp4_parser.yy"
                {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -3393,16 +3393,26 @@ namespace isc { namespace dhcp {
 #line 3394 "dhcp4_parser.cc"
     break;
 
-  case 607: // $@86: %empty
-#line 2113 "dhcp4_parser.yy"
+  case 608: // pool_id: "pool-id" ":" "integer"
+#line 2115 "dhcp4_parser.yy"
+                               {
+    ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location));
+    ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("pool-id", id);
+}
+#line 3404 "dhcp4_parser.cc"
+    break;
+
+  case 609: // $@86: %empty
+#line 2121 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3402 "dhcp4_parser.cc"
+#line 3412 "dhcp4_parser.cc"
     break;
 
-  case 608: // user_context: "user-context" $@86 ":" map_value
-#line 2115 "dhcp4_parser.yy"
+  case 610: // user_context: "user-context" $@86 ":" map_value
+#line 2123 "dhcp4_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -3425,19 +3435,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 3429 "dhcp4_parser.cc"
+#line 3439 "dhcp4_parser.cc"
     break;
 
-  case 609: // $@87: %empty
-#line 2138 "dhcp4_parser.yy"
+  case 611: // $@87: %empty
+#line 2146 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3437 "dhcp4_parser.cc"
+#line 3447 "dhcp4_parser.cc"
     break;
 
-  case 610: // comment: "comment" $@87 ":" "constant string"
-#line 2140 "dhcp4_parser.yy"
+  case 612: // comment: "comment" $@87 ":" "constant string"
+#line 2148 "dhcp4_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -3462,11 +3472,11 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 3466 "dhcp4_parser.cc"
+#line 3476 "dhcp4_parser.cc"
     break;
 
-  case 611: // $@88: %empty
-#line 2168 "dhcp4_parser.yy"
+  case 613: // $@88: %empty
+#line 2176 "dhcp4_parser.yy"
                            {
     ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3474,150 +3484,150 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 3478 "dhcp4_parser.cc"
+#line 3488 "dhcp4_parser.cc"
     break;
 
-  case 612: // reservations: "reservations" $@88 ":" "[" reservations_list "]"
-#line 2174 "dhcp4_parser.yy"
+  case 614: // reservations: "reservations" $@88 ":" "[" reservations_list "]"
+#line 2182 "dhcp4_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3487 "dhcp4_parser.cc"
+#line 3497 "dhcp4_parser.cc"
     break;
 
-  case 617: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2185 "dhcp4_parser.yy"
+  case 619: // not_empty_reservations_list: not_empty_reservations_list ","
+#line 2193 "dhcp4_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
-#line 3495 "dhcp4_parser.cc"
+#line 3505 "dhcp4_parser.cc"
     break;
 
-  case 618: // $@89: %empty
-#line 2190 "dhcp4_parser.yy"
+  case 620: // $@89: %empty
+#line 2198 "dhcp4_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3505 "dhcp4_parser.cc"
+#line 3515 "dhcp4_parser.cc"
     break;
 
-  case 619: // reservation: "{" $@89 reservation_params "}"
-#line 2194 "dhcp4_parser.yy"
+  case 621: // reservation: "{" $@89 reservation_params "}"
+#line 2202 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 3514 "dhcp4_parser.cc"
+#line 3524 "dhcp4_parser.cc"
     break;
 
-  case 620: // $@90: %empty
-#line 2199 "dhcp4_parser.yy"
+  case 622: // $@90: %empty
+#line 2207 "dhcp4_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3524 "dhcp4_parser.cc"
+#line 3534 "dhcp4_parser.cc"
     break;
 
-  case 621: // sub_reservation: "{" $@90 reservation_params "}"
-#line 2203 "dhcp4_parser.yy"
+  case 623: // sub_reservation: "{" $@90 reservation_params "}"
+#line 2211 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 3533 "dhcp4_parser.cc"
+#line 3543 "dhcp4_parser.cc"
     break;
 
-  case 626: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2214 "dhcp4_parser.yy"
+  case 628: // not_empty_reservation_params: not_empty_reservation_params ","
+#line 2222 "dhcp4_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
-#line 3541 "dhcp4_parser.cc"
+#line 3551 "dhcp4_parser.cc"
     break;
 
-  case 642: // $@91: %empty
-#line 2237 "dhcp4_parser.yy"
+  case 644: // $@91: %empty
+#line 2245 "dhcp4_parser.yy"
                          {
     ctx.unique("next-server", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3550 "dhcp4_parser.cc"
+#line 3560 "dhcp4_parser.cc"
     break;
 
-  case 643: // next_server: "next-server" $@91 ":" "constant string"
-#line 2240 "dhcp4_parser.yy"
+  case 645: // next_server: "next-server" $@91 ":" "constant string"
+#line 2248 "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 3560 "dhcp4_parser.cc"
+#line 3570 "dhcp4_parser.cc"
     break;
 
-  case 644: // $@92: %empty
-#line 2246 "dhcp4_parser.yy"
+  case 646: // $@92: %empty
+#line 2254 "dhcp4_parser.yy"
                                  {
     ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3569 "dhcp4_parser.cc"
+#line 3579 "dhcp4_parser.cc"
     break;
 
-  case 645: // server_hostname: "server-hostname" $@92 ":" "constant string"
-#line 2249 "dhcp4_parser.yy"
+  case 647: // server_hostname: "server-hostname" $@92 ":" "constant string"
+#line 2257 "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 3579 "dhcp4_parser.cc"
+#line 3589 "dhcp4_parser.cc"
     break;
 
-  case 646: // $@93: %empty
-#line 2255 "dhcp4_parser.yy"
+  case 648: // $@93: %empty
+#line 2263 "dhcp4_parser.yy"
                                {
     ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3588 "dhcp4_parser.cc"
+#line 3598 "dhcp4_parser.cc"
     break;
 
-  case 647: // boot_file_name: "boot-file-name" $@93 ":" "constant string"
-#line 2258 "dhcp4_parser.yy"
+  case 649: // boot_file_name: "boot-file-name" $@93 ":" "constant string"
+#line 2266 "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 3598 "dhcp4_parser.cc"
+#line 3608 "dhcp4_parser.cc"
     break;
 
-  case 648: // $@94: %empty
-#line 2264 "dhcp4_parser.yy"
+  case 650: // $@94: %empty
+#line 2272 "dhcp4_parser.yy"
                        {
     ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3607 "dhcp4_parser.cc"
+#line 3617 "dhcp4_parser.cc"
     break;
 
-  case 649: // ip_address: "ip-address" $@94 ":" "constant string"
-#line 2267 "dhcp4_parser.yy"
+  case 651: // ip_address: "ip-address" $@94 ":" "constant string"
+#line 2275 "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 3617 "dhcp4_parser.cc"
+#line 3627 "dhcp4_parser.cc"
     break;
 
-  case 650: // $@95: %empty
-#line 2273 "dhcp4_parser.yy"
+  case 652: // $@95: %empty
+#line 2281 "dhcp4_parser.yy"
                            {
     ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3625,134 +3635,134 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3629 "dhcp4_parser.cc"
+#line 3639 "dhcp4_parser.cc"
     break;
 
-  case 651: // ip_addresses: "ip-addresses" $@95 ":" list_strings
-#line 2279 "dhcp4_parser.yy"
+  case 653: // ip_addresses: "ip-addresses" $@95 ":" list_strings
+#line 2287 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3638 "dhcp4_parser.cc"
+#line 3648 "dhcp4_parser.cc"
     break;
 
-  case 652: // $@96: %empty
-#line 2284 "dhcp4_parser.yy"
+  case 654: // $@96: %empty
+#line 2292 "dhcp4_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3647 "dhcp4_parser.cc"
+#line 3657 "dhcp4_parser.cc"
     break;
 
-  case 653: // duid: "duid" $@96 ":" "constant string"
-#line 2287 "dhcp4_parser.yy"
+  case 655: // duid: "duid" $@96 ":" "constant string"
+#line 2295 "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 3657 "dhcp4_parser.cc"
+#line 3667 "dhcp4_parser.cc"
     break;
 
-  case 654: // $@97: %empty
-#line 2293 "dhcp4_parser.yy"
+  case 656: // $@97: %empty
+#line 2301 "dhcp4_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3666 "dhcp4_parser.cc"
+#line 3676 "dhcp4_parser.cc"
     break;
 
-  case 655: // hw_address: "hw-address" $@97 ":" "constant string"
-#line 2296 "dhcp4_parser.yy"
+  case 657: // hw_address: "hw-address" $@97 ":" "constant string"
+#line 2304 "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 3676 "dhcp4_parser.cc"
+#line 3686 "dhcp4_parser.cc"
     break;
 
-  case 656: // $@98: %empty
-#line 2302 "dhcp4_parser.yy"
+  case 658: // $@98: %empty
+#line 2310 "dhcp4_parser.yy"
                            {
     ctx.unique("client-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3685 "dhcp4_parser.cc"
+#line 3695 "dhcp4_parser.cc"
     break;
 
-  case 657: // client_id_value: "client-id" $@98 ":" "constant string"
-#line 2305 "dhcp4_parser.yy"
+  case 659: // client_id_value: "client-id" $@98 ":" "constant string"
+#line 2313 "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 3695 "dhcp4_parser.cc"
+#line 3705 "dhcp4_parser.cc"
     break;
 
-  case 658: // $@99: %empty
-#line 2311 "dhcp4_parser.yy"
+  case 660: // $@99: %empty
+#line 2319 "dhcp4_parser.yy"
                              {
     ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3704 "dhcp4_parser.cc"
+#line 3714 "dhcp4_parser.cc"
     break;
 
-  case 659: // circuit_id_value: "circuit-id" $@99 ":" "constant string"
-#line 2314 "dhcp4_parser.yy"
+  case 661: // circuit_id_value: "circuit-id" $@99 ":" "constant string"
+#line 2322 "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 3714 "dhcp4_parser.cc"
+#line 3724 "dhcp4_parser.cc"
     break;
 
-  case 660: // $@100: %empty
-#line 2320 "dhcp4_parser.yy"
+  case 662: // $@100: %empty
+#line 2328 "dhcp4_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3723 "dhcp4_parser.cc"
+#line 3733 "dhcp4_parser.cc"
     break;
 
-  case 661: // flex_id_value: "flex-id" $@100 ":" "constant string"
-#line 2323 "dhcp4_parser.yy"
+  case 663: // flex_id_value: "flex-id" $@100 ":" "constant string"
+#line 2331 "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 3733 "dhcp4_parser.cc"
+#line 3743 "dhcp4_parser.cc"
     break;
 
-  case 662: // $@101: %empty
-#line 2329 "dhcp4_parser.yy"
+  case 664: // $@101: %empty
+#line 2337 "dhcp4_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3742 "dhcp4_parser.cc"
+#line 3752 "dhcp4_parser.cc"
     break;
 
-  case 663: // hostname: "hostname" $@101 ":" "constant string"
-#line 2332 "dhcp4_parser.yy"
+  case 665: // hostname: "hostname" $@101 ":" "constant string"
+#line 2340 "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 3752 "dhcp4_parser.cc"
+#line 3762 "dhcp4_parser.cc"
     break;
 
-  case 664: // $@102: %empty
-#line 2338 "dhcp4_parser.yy"
+  case 666: // $@102: %empty
+#line 2346 "dhcp4_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3760,20 +3770,20 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3764 "dhcp4_parser.cc"
+#line 3774 "dhcp4_parser.cc"
     break;
 
-  case 665: // reservation_client_classes: "client-classes" $@102 ":" list_strings
-#line 2344 "dhcp4_parser.yy"
+  case 667: // reservation_client_classes: "client-classes" $@102 ":" list_strings
+#line 2352 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3773 "dhcp4_parser.cc"
+#line 3783 "dhcp4_parser.cc"
     break;
 
-  case 666: // $@103: %empty
-#line 2352 "dhcp4_parser.yy"
+  case 668: // $@103: %empty
+#line 2360 "dhcp4_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3781,20 +3791,20 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 3785 "dhcp4_parser.cc"
+#line 3795 "dhcp4_parser.cc"
     break;
 
-  case 667: // relay: "relay" $@103 ":" "{" relay_map "}"
-#line 2358 "dhcp4_parser.yy"
+  case 669: // relay: "relay" $@103 ":" "{" relay_map "}"
+#line 2366 "dhcp4_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3794 "dhcp4_parser.cc"
+#line 3804 "dhcp4_parser.cc"
     break;
 
-  case 670: // $@104: %empty
-#line 2370 "dhcp4_parser.yy"
+  case 672: // $@104: %empty
+#line 2378 "dhcp4_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3802,114 +3812,114 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 3806 "dhcp4_parser.cc"
+#line 3816 "dhcp4_parser.cc"
     break;
 
-  case 671: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]"
-#line 2376 "dhcp4_parser.yy"
+  case 673: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]"
+#line 2384 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3815 "dhcp4_parser.cc"
+#line 3825 "dhcp4_parser.cc"
     break;
 
-  case 674: // client_classes_list: client_classes_list ","
-#line 2383 "dhcp4_parser.yy"
+  case 676: // client_classes_list: client_classes_list ","
+#line 2391 "dhcp4_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
-#line 3823 "dhcp4_parser.cc"
+#line 3833 "dhcp4_parser.cc"
     break;
 
-  case 675: // $@105: %empty
-#line 2388 "dhcp4_parser.yy"
+  case 677: // $@105: %empty
+#line 2396 "dhcp4_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3833 "dhcp4_parser.cc"
+#line 3843 "dhcp4_parser.cc"
     break;
 
-  case 676: // client_class_entry: "{" $@105 client_class_params "}"
-#line 2392 "dhcp4_parser.yy"
+  case 678: // client_class_entry: "{" $@105 client_class_params "}"
+#line 2400 "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 3843 "dhcp4_parser.cc"
+#line 3853 "dhcp4_parser.cc"
     break;
 
-  case 681: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2404 "dhcp4_parser.yy"
+  case 683: // not_empty_client_class_params: not_empty_client_class_params ","
+#line 2412 "dhcp4_parser.yy"
                                           {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
-#line 3851 "dhcp4_parser.cc"
+#line 3861 "dhcp4_parser.cc"
     break;
 
-  case 699: // $@106: %empty
-#line 2429 "dhcp4_parser.yy"
+  case 701: // $@106: %empty
+#line 2437 "dhcp4_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3860 "dhcp4_parser.cc"
+#line 3870 "dhcp4_parser.cc"
     break;
 
-  case 700: // client_class_test: "test" $@106 ":" "constant string"
-#line 2432 "dhcp4_parser.yy"
+  case 702: // client_class_test: "test" $@106 ":" "constant string"
+#line 2440 "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 3870 "dhcp4_parser.cc"
+#line 3880 "dhcp4_parser.cc"
     break;
 
-  case 701: // $@107: %empty
-#line 2438 "dhcp4_parser.yy"
+  case 703: // $@107: %empty
+#line 2446 "dhcp4_parser.yy"
                                           {
     ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3879 "dhcp4_parser.cc"
+#line 3889 "dhcp4_parser.cc"
     break;
 
-  case 702: // client_class_template_test: "template-test" $@107 ":" "constant string"
-#line 2441 "dhcp4_parser.yy"
+  case 704: // client_class_template_test: "template-test" $@107 ":" "constant string"
+#line 2449 "dhcp4_parser.yy"
                {
     ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("template-test", template_test);
     ctx.leave();
 }
-#line 3889 "dhcp4_parser.cc"
+#line 3899 "dhcp4_parser.cc"
     break;
 
-  case 703: // only_if_required: "only-if-required" ":" "boolean"
-#line 2447 "dhcp4_parser.yy"
+  case 705: // only_if_required: "only-if-required" ":" "boolean"
+#line 2455 "dhcp4_parser.yy"
                                                  {
     ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 3899 "dhcp4_parser.cc"
+#line 3909 "dhcp4_parser.cc"
     break;
 
-  case 704: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2455 "dhcp4_parser.yy"
+  case 706: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2463 "dhcp4_parser.yy"
                                          {
     ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 3909 "dhcp4_parser.cc"
+#line 3919 "dhcp4_parser.cc"
     break;
 
-  case 705: // $@108: %empty
-#line 2463 "dhcp4_parser.yy"
+  case 707: // $@108: %empty
+#line 2471 "dhcp4_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3917,66 +3927,66 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 3921 "dhcp4_parser.cc"
+#line 3931 "dhcp4_parser.cc"
     break;
 
-  case 706: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}"
-#line 2469 "dhcp4_parser.yy"
+  case 708: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}"
+#line 2477 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3930 "dhcp4_parser.cc"
+#line 3940 "dhcp4_parser.cc"
     break;
 
-  case 709: // control_socket_params: control_socket_params ","
-#line 2476 "dhcp4_parser.yy"
+  case 711: // control_socket_params: control_socket_params ","
+#line 2484 "dhcp4_parser.yy"
                                                    {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
-#line 3938 "dhcp4_parser.cc"
+#line 3948 "dhcp4_parser.cc"
     break;
 
-  case 715: // $@109: %empty
-#line 2488 "dhcp4_parser.yy"
+  case 717: // $@109: %empty
+#line 2496 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3947 "dhcp4_parser.cc"
+#line 3957 "dhcp4_parser.cc"
     break;
 
-  case 716: // control_socket_type: "socket-type" $@109 ":" "constant string"
-#line 2491 "dhcp4_parser.yy"
+  case 718: // control_socket_type: "socket-type" $@109 ":" "constant string"
+#line 2499 "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 3957 "dhcp4_parser.cc"
+#line 3967 "dhcp4_parser.cc"
     break;
 
-  case 717: // $@110: %empty
-#line 2497 "dhcp4_parser.yy"
+  case 719: // $@110: %empty
+#line 2505 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3966 "dhcp4_parser.cc"
+#line 3976 "dhcp4_parser.cc"
     break;
 
-  case 718: // control_socket_name: "socket-name" $@110 ":" "constant string"
-#line 2500 "dhcp4_parser.yy"
+  case 720: // control_socket_name: "socket-name" $@110 ":" "constant string"
+#line 2508 "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 3976 "dhcp4_parser.cc"
+#line 3986 "dhcp4_parser.cc"
     break;
 
-  case 719: // $@111: %empty
-#line 2509 "dhcp4_parser.yy"
+  case 721: // $@111: %empty
+#line 2517 "dhcp4_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3984,87 +3994,87 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(qc);
     ctx.enter(ctx.DHCP_QUEUE_CONTROL);
 }
-#line 3988 "dhcp4_parser.cc"
+#line 3998 "dhcp4_parser.cc"
     break;
 
-  case 720: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}"
-#line 2515 "dhcp4_parser.yy"
+  case 722: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}"
+#line 2523 "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 3999 "dhcp4_parser.cc"
+#line 4009 "dhcp4_parser.cc"
     break;
 
-  case 723: // queue_control_params: queue_control_params ","
-#line 2524 "dhcp4_parser.yy"
+  case 725: // queue_control_params: queue_control_params ","
+#line 2532 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
-#line 4007 "dhcp4_parser.cc"
+#line 4017 "dhcp4_parser.cc"
     break;
 
-  case 730: // enable_queue: "enable-queue" ":" "boolean"
-#line 2537 "dhcp4_parser.yy"
+  case 732: // enable_queue: "enable-queue" ":" "boolean"
+#line 2545 "dhcp4_parser.yy"
                                          {
     ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-queue", b);
 }
-#line 4017 "dhcp4_parser.cc"
+#line 4027 "dhcp4_parser.cc"
     break;
 
-  case 731: // $@112: %empty
-#line 2543 "dhcp4_parser.yy"
+  case 733: // $@112: %empty
+#line 2551 "dhcp4_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4026 "dhcp4_parser.cc"
+#line 4036 "dhcp4_parser.cc"
     break;
 
-  case 732: // queue_type: "queue-type" $@112 ":" "constant string"
-#line 2546 "dhcp4_parser.yy"
+  case 734: // queue_type: "queue-type" $@112 ":" "constant string"
+#line 2554 "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 4036 "dhcp4_parser.cc"
+#line 4046 "dhcp4_parser.cc"
     break;
 
-  case 733: // capacity: "capacity" ":" "integer"
-#line 2552 "dhcp4_parser.yy"
+  case 735: // capacity: "capacity" ":" "integer"
+#line 2560 "dhcp4_parser.yy"
                                  {
     ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("capacity", c);
 }
-#line 4046 "dhcp4_parser.cc"
+#line 4056 "dhcp4_parser.cc"
     break;
 
-  case 734: // $@113: %empty
-#line 2558 "dhcp4_parser.yy"
+  case 736: // $@113: %empty
+#line 2566 "dhcp4_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4055 "dhcp4_parser.cc"
+#line 4065 "dhcp4_parser.cc"
     break;
 
-  case 735: // arbitrary_map_entry: "constant string" $@113 ":" value
-#line 2561 "dhcp4_parser.yy"
+  case 737: // arbitrary_map_entry: "constant string" $@113 ":" value
+#line 2569 "dhcp4_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4064 "dhcp4_parser.cc"
+#line 4074 "dhcp4_parser.cc"
     break;
 
-  case 736: // $@114: %empty
-#line 2568 "dhcp4_parser.yy"
+  case 738: // $@114: %empty
+#line 2576 "dhcp4_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4072,291 +4082,291 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 4076 "dhcp4_parser.cc"
+#line 4086 "dhcp4_parser.cc"
     break;
 
-  case 737: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}"
-#line 2574 "dhcp4_parser.yy"
+  case 739: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}"
+#line 2582 "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 4087 "dhcp4_parser.cc"
+#line 4097 "dhcp4_parser.cc"
     break;
 
-  case 738: // $@115: %empty
-#line 2581 "dhcp4_parser.yy"
+  case 740: // $@115: %empty
+#line 2589 "dhcp4_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 4097 "dhcp4_parser.cc"
+#line 4107 "dhcp4_parser.cc"
     break;
 
-  case 739: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}"
-#line 2585 "dhcp4_parser.yy"
+  case 741: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}"
+#line 2593 "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 4107 "dhcp4_parser.cc"
+#line 4117 "dhcp4_parser.cc"
     break;
 
-  case 742: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2593 "dhcp4_parser.yy"
+  case 744: // dhcp_ddns_params: dhcp_ddns_params ","
+#line 2601 "dhcp4_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
-#line 4115 "dhcp4_parser.cc"
+#line 4125 "dhcp4_parser.cc"
     break;
 
-  case 761: // enable_updates: "enable-updates" ":" "boolean"
-#line 2618 "dhcp4_parser.yy"
+  case 763: // enable_updates: "enable-updates" ":" "boolean"
+#line 2626 "dhcp4_parser.yy"
                                              {
     ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 4125 "dhcp4_parser.cc"
+#line 4135 "dhcp4_parser.cc"
     break;
 
-  case 762: // $@116: %empty
-#line 2624 "dhcp4_parser.yy"
+  case 764: // $@116: %empty
+#line 2632 "dhcp4_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4134 "dhcp4_parser.cc"
+#line 4144 "dhcp4_parser.cc"
     break;
 
-  case 763: // server_ip: "server-ip" $@116 ":" "constant string"
-#line 2627 "dhcp4_parser.yy"
+  case 765: // server_ip: "server-ip" $@116 ":" "constant string"
+#line 2635 "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 4144 "dhcp4_parser.cc"
+#line 4154 "dhcp4_parser.cc"
     break;
 
-  case 764: // server_port: "server-port" ":" "integer"
-#line 2633 "dhcp4_parser.yy"
+  case 766: // server_port: "server-port" ":" "integer"
+#line 2641 "dhcp4_parser.yy"
                                        {
     ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 4154 "dhcp4_parser.cc"
+#line 4164 "dhcp4_parser.cc"
     break;
 
-  case 765: // $@117: %empty
-#line 2639 "dhcp4_parser.yy"
+  case 767: // $@117: %empty
+#line 2647 "dhcp4_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4163 "dhcp4_parser.cc"
+#line 4173 "dhcp4_parser.cc"
     break;
 
-  case 766: // sender_ip: "sender-ip" $@117 ":" "constant string"
-#line 2642 "dhcp4_parser.yy"
+  case 768: // sender_ip: "sender-ip" $@117 ":" "constant string"
+#line 2650 "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 4173 "dhcp4_parser.cc"
+#line 4183 "dhcp4_parser.cc"
     break;
 
-  case 767: // sender_port: "sender-port" ":" "integer"
-#line 2648 "dhcp4_parser.yy"
+  case 769: // sender_port: "sender-port" ":" "integer"
+#line 2656 "dhcp4_parser.yy"
                                        {
     ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 4183 "dhcp4_parser.cc"
+#line 4193 "dhcp4_parser.cc"
     break;
 
-  case 768: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2654 "dhcp4_parser.yy"
+  case 770: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2662 "dhcp4_parser.yy"
                                              {
     ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 4193 "dhcp4_parser.cc"
+#line 4203 "dhcp4_parser.cc"
     break;
 
-  case 769: // $@118: %empty
-#line 2660 "dhcp4_parser.yy"
+  case 771: // $@118: %empty
+#line 2668 "dhcp4_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 4202 "dhcp4_parser.cc"
+#line 4212 "dhcp4_parser.cc"
     break;
 
-  case 770: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value
-#line 2663 "dhcp4_parser.yy"
+  case 772: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value
+#line 2671 "dhcp4_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4211 "dhcp4_parser.cc"
+#line 4221 "dhcp4_parser.cc"
     break;
 
-  case 771: // ncr_protocol_value: "udp"
-#line 2669 "dhcp4_parser.yy"
+  case 773: // ncr_protocol_value: "udp"
+#line 2677 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4217 "dhcp4_parser.cc"
+#line 4227 "dhcp4_parser.cc"
     break;
 
-  case 772: // ncr_protocol_value: "tcp"
-#line 2670 "dhcp4_parser.yy"
+  case 774: // ncr_protocol_value: "tcp"
+#line 2678 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4223 "dhcp4_parser.cc"
+#line 4233 "dhcp4_parser.cc"
     break;
 
-  case 773: // $@119: %empty
-#line 2673 "dhcp4_parser.yy"
+  case 775: // $@119: %empty
+#line 2681 "dhcp4_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 4232 "dhcp4_parser.cc"
+#line 4242 "dhcp4_parser.cc"
     break;
 
-  case 774: // ncr_format: "ncr-format" $@119 ":" "JSON"
-#line 2676 "dhcp4_parser.yy"
+  case 776: // ncr_format: "ncr-format" $@119 ":" "JSON"
+#line 2684 "dhcp4_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 4242 "dhcp4_parser.cc"
+#line 4252 "dhcp4_parser.cc"
     break;
 
-  case 775: // $@120: %empty
-#line 2683 "dhcp4_parser.yy"
+  case 777: // $@120: %empty
+#line 2691 "dhcp4_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4251 "dhcp4_parser.cc"
+#line 4261 "dhcp4_parser.cc"
     break;
 
-  case 776: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string"
-#line 2686 "dhcp4_parser.yy"
+  case 778: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string"
+#line 2694 "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 4261 "dhcp4_parser.cc"
+#line 4271 "dhcp4_parser.cc"
     break;
 
-  case 777: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2693 "dhcp4_parser.yy"
+  case 779: // dep_override_no_update: "override-no-update" ":" "boolean"
+#line 2701 "dhcp4_parser.yy"
                                                          {
     ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 4271 "dhcp4_parser.cc"
+#line 4281 "dhcp4_parser.cc"
     break;
 
-  case 778: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2700 "dhcp4_parser.yy"
+  case 780: // dep_override_client_update: "override-client-update" ":" "boolean"
+#line 2708 "dhcp4_parser.yy"
                                                                  {
     ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 4281 "dhcp4_parser.cc"
+#line 4291 "dhcp4_parser.cc"
     break;
 
-  case 779: // $@121: %empty
-#line 2707 "dhcp4_parser.yy"
+  case 781: // $@121: %empty
+#line 2715 "dhcp4_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 4290 "dhcp4_parser.cc"
+#line 4300 "dhcp4_parser.cc"
     break;
 
-  case 780: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value
-#line 2710 "dhcp4_parser.yy"
+  case 782: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value
+#line 2718 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4299 "dhcp4_parser.cc"
+#line 4309 "dhcp4_parser.cc"
     break;
 
-  case 781: // $@122: %empty
-#line 2716 "dhcp4_parser.yy"
+  case 783: // $@122: %empty
+#line 2724 "dhcp4_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4308 "dhcp4_parser.cc"
+#line 4318 "dhcp4_parser.cc"
     break;
 
-  case 782: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string"
-#line 2719 "dhcp4_parser.yy"
+  case 784: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string"
+#line 2727 "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 4318 "dhcp4_parser.cc"
+#line 4328 "dhcp4_parser.cc"
     break;
 
-  case 783: // $@123: %empty
-#line 2726 "dhcp4_parser.yy"
+  case 785: // $@123: %empty
+#line 2734 "dhcp4_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4327 "dhcp4_parser.cc"
+#line 4337 "dhcp4_parser.cc"
     break;
 
-  case 784: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string"
-#line 2729 "dhcp4_parser.yy"
+  case 786: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string"
+#line 2737 "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 4337 "dhcp4_parser.cc"
+#line 4347 "dhcp4_parser.cc"
     break;
 
-  case 785: // $@124: %empty
-#line 2736 "dhcp4_parser.yy"
+  case 787: // $@124: %empty
+#line 2744 "dhcp4_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4346 "dhcp4_parser.cc"
+#line 4356 "dhcp4_parser.cc"
     break;
 
-  case 786: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string"
-#line 2739 "dhcp4_parser.yy"
+  case 788: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string"
+#line 2747 "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 4356 "dhcp4_parser.cc"
+#line 4366 "dhcp4_parser.cc"
     break;
 
-  case 787: // $@125: %empty
-#line 2748 "dhcp4_parser.yy"
+  case 789: // $@125: %empty
+#line 2756 "dhcp4_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4364,48 +4374,48 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 4368 "dhcp4_parser.cc"
+#line 4378 "dhcp4_parser.cc"
     break;
 
-  case 788: // config_control: "config-control" $@125 ":" "{" config_control_params "}"
-#line 2754 "dhcp4_parser.yy"
+  case 790: // config_control: "config-control" $@125 ":" "{" config_control_params "}"
+#line 2762 "dhcp4_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4378 "dhcp4_parser.cc"
+#line 4388 "dhcp4_parser.cc"
     break;
 
-  case 789: // $@126: %empty
-#line 2760 "dhcp4_parser.yy"
+  case 791: // $@126: %empty
+#line 2768 "dhcp4_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 4388 "dhcp4_parser.cc"
+#line 4398 "dhcp4_parser.cc"
     break;
 
-  case 790: // sub_config_control: "{" $@126 config_control_params "}"
-#line 2764 "dhcp4_parser.yy"
+  case 792: // sub_config_control: "{" $@126 config_control_params "}"
+#line 2772 "dhcp4_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
 }
-#line 4397 "dhcp4_parser.cc"
+#line 4407 "dhcp4_parser.cc"
     break;
 
-  case 793: // config_control_params: config_control_params ","
-#line 2772 "dhcp4_parser.yy"
+  case 795: // config_control_params: config_control_params ","
+#line 2780 "dhcp4_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
-#line 4405 "dhcp4_parser.cc"
+#line 4415 "dhcp4_parser.cc"
     break;
 
-  case 796: // $@127: %empty
-#line 2782 "dhcp4_parser.yy"
+  case 798: // $@127: %empty
+#line 2790 "dhcp4_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4413,30 +4423,30 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 4417 "dhcp4_parser.cc"
+#line 4427 "dhcp4_parser.cc"
     break;
 
-  case 797: // config_databases: "config-databases" $@127 ":" "[" database_list "]"
-#line 2788 "dhcp4_parser.yy"
+  case 799: // config_databases: "config-databases" $@127 ":" "[" database_list "]"
+#line 2796 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4426 "dhcp4_parser.cc"
+#line 4436 "dhcp4_parser.cc"
     break;
 
-  case 798: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2793 "dhcp4_parser.yy"
+  case 800: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 2801 "dhcp4_parser.yy"
                                                              {
     ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-fetch-wait-time", value);
 }
-#line 4436 "dhcp4_parser.cc"
+#line 4446 "dhcp4_parser.cc"
     break;
 
-  case 799: // $@128: %empty
-#line 2801 "dhcp4_parser.yy"
+  case 801: // $@128: %empty
+#line 2809 "dhcp4_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4444,83 +4454,83 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 4448 "dhcp4_parser.cc"
+#line 4458 "dhcp4_parser.cc"
     break;
 
-  case 800: // loggers: "loggers" $@128 ":" "[" loggers_entries "]"
-#line 2807 "dhcp4_parser.yy"
+  case 802: // loggers: "loggers" $@128 ":" "[" loggers_entries "]"
+#line 2815 "dhcp4_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4457 "dhcp4_parser.cc"
+#line 4467 "dhcp4_parser.cc"
     break;
 
-  case 803: // loggers_entries: loggers_entries ","
-#line 2816 "dhcp4_parser.yy"
+  case 805: // loggers_entries: loggers_entries ","
+#line 2824 "dhcp4_parser.yy"
                                        {
                    ctx.warnAboutExtraCommas(yystack_[0].location);
                    }
-#line 4465 "dhcp4_parser.cc"
+#line 4475 "dhcp4_parser.cc"
     break;
 
-  case 804: // $@129: %empty
-#line 2822 "dhcp4_parser.yy"
+  case 806: // $@129: %empty
+#line 2830 "dhcp4_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 4475 "dhcp4_parser.cc"
+#line 4485 "dhcp4_parser.cc"
     break;
 
-  case 805: // logger_entry: "{" $@129 logger_params "}"
-#line 2826 "dhcp4_parser.yy"
+  case 807: // logger_entry: "{" $@129 logger_params "}"
+#line 2834 "dhcp4_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
-#line 4483 "dhcp4_parser.cc"
+#line 4493 "dhcp4_parser.cc"
     break;
 
-  case 808: // logger_params: logger_params ","
-#line 2832 "dhcp4_parser.yy"
+  case 810: // logger_params: logger_params ","
+#line 2840 "dhcp4_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
-#line 4491 "dhcp4_parser.cc"
+#line 4501 "dhcp4_parser.cc"
     break;
 
-  case 816: // debuglevel: "debuglevel" ":" "integer"
-#line 2846 "dhcp4_parser.yy"
+  case 818: // debuglevel: "debuglevel" ":" "integer"
+#line 2854 "dhcp4_parser.yy"
                                      {
     ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 4501 "dhcp4_parser.cc"
+#line 4511 "dhcp4_parser.cc"
     break;
 
-  case 817: // $@130: %empty
-#line 2852 "dhcp4_parser.yy"
+  case 819: // $@130: %empty
+#line 2860 "dhcp4_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4510 "dhcp4_parser.cc"
+#line 4520 "dhcp4_parser.cc"
     break;
 
-  case 818: // severity: "severity" $@130 ":" "constant string"
-#line 2855 "dhcp4_parser.yy"
+  case 820: // severity: "severity" $@130 ":" "constant string"
+#line 2863 "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 4520 "dhcp4_parser.cc"
+#line 4530 "dhcp4_parser.cc"
     break;
 
-  case 819: // $@131: %empty
-#line 2861 "dhcp4_parser.yy"
+  case 821: // $@131: %empty
+#line 2869 "dhcp4_parser.yy"
                                     {
     ctx.unique("output_options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4528,122 +4538,122 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 4532 "dhcp4_parser.cc"
+#line 4542 "dhcp4_parser.cc"
     break;
 
-  case 820: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]"
-#line 2867 "dhcp4_parser.yy"
+  case 822: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]"
+#line 2875 "dhcp4_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4541 "dhcp4_parser.cc"
+#line 4551 "dhcp4_parser.cc"
     break;
 
-  case 823: // output_options_list_content: output_options_list_content ","
-#line 2874 "dhcp4_parser.yy"
+  case 825: // output_options_list_content: output_options_list_content ","
+#line 2882 "dhcp4_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
-#line 4549 "dhcp4_parser.cc"
+#line 4559 "dhcp4_parser.cc"
     break;
 
-  case 824: // $@132: %empty
-#line 2879 "dhcp4_parser.yy"
+  case 826: // $@132: %empty
+#line 2887 "dhcp4_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 4559 "dhcp4_parser.cc"
+#line 4569 "dhcp4_parser.cc"
     break;
 
-  case 825: // output_entry: "{" $@132 output_params_list "}"
-#line 2883 "dhcp4_parser.yy"
+  case 827: // output_entry: "{" $@132 output_params_list "}"
+#line 2891 "dhcp4_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
-#line 4567 "dhcp4_parser.cc"
+#line 4577 "dhcp4_parser.cc"
     break;
 
-  case 828: // output_params_list: output_params_list ","
-#line 2889 "dhcp4_parser.yy"
+  case 830: // output_params_list: output_params_list ","
+#line 2897 "dhcp4_parser.yy"
                                              {
                       ctx.warnAboutExtraCommas(yystack_[0].location);
                       }
-#line 4575 "dhcp4_parser.cc"
+#line 4585 "dhcp4_parser.cc"
     break;
 
-  case 834: // $@133: %empty
-#line 2901 "dhcp4_parser.yy"
+  case 836: // $@133: %empty
+#line 2909 "dhcp4_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4584 "dhcp4_parser.cc"
+#line 4594 "dhcp4_parser.cc"
     break;
 
-  case 835: // output: "output" $@133 ":" "constant string"
-#line 2904 "dhcp4_parser.yy"
+  case 837: // output: "output" $@133 ":" "constant string"
+#line 2912 "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 4594 "dhcp4_parser.cc"
+#line 4604 "dhcp4_parser.cc"
     break;
 
-  case 836: // flush: "flush" ":" "boolean"
-#line 2910 "dhcp4_parser.yy"
+  case 838: // flush: "flush" ":" "boolean"
+#line 2918 "dhcp4_parser.yy"
                            {
     ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 4604 "dhcp4_parser.cc"
+#line 4614 "dhcp4_parser.cc"
     break;
 
-  case 837: // maxsize: "maxsize" ":" "integer"
-#line 2916 "dhcp4_parser.yy"
+  case 839: // maxsize: "maxsize" ":" "integer"
+#line 2924 "dhcp4_parser.yy"
                                {
     ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 4614 "dhcp4_parser.cc"
+#line 4624 "dhcp4_parser.cc"
     break;
 
-  case 838: // maxver: "maxver" ":" "integer"
-#line 2922 "dhcp4_parser.yy"
+  case 840: // maxver: "maxver" ":" "integer"
+#line 2930 "dhcp4_parser.yy"
                              {
     ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 4624 "dhcp4_parser.cc"
+#line 4634 "dhcp4_parser.cc"
     break;
 
-  case 839: // $@134: %empty
-#line 2928 "dhcp4_parser.yy"
+  case 841: // $@134: %empty
+#line 2936 "dhcp4_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4633 "dhcp4_parser.cc"
+#line 4643 "dhcp4_parser.cc"
     break;
 
-  case 840: // pattern: "pattern" $@134 ":" "constant string"
-#line 2931 "dhcp4_parser.yy"
+  case 842: // pattern: "pattern" $@134 ":" "constant string"
+#line 2939 "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 4643 "dhcp4_parser.cc"
+#line 4653 "dhcp4_parser.cc"
     break;
 
-  case 841: // $@135: %empty
-#line 2937 "dhcp4_parser.yy"
+  case 843: // $@135: %empty
+#line 2945 "dhcp4_parser.yy"
                              {
     ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4651,68 +4661,68 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(i);
     ctx.enter(ctx.COMPATIBILITY);
 }
-#line 4655 "dhcp4_parser.cc"
+#line 4665 "dhcp4_parser.cc"
     break;
 
-  case 842: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}"
-#line 2943 "dhcp4_parser.yy"
+  case 844: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}"
+#line 2951 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4664 "dhcp4_parser.cc"
+#line 4674 "dhcp4_parser.cc"
     break;
 
-  case 845: // compatibility_params: compatibility_params ","
-#line 2950 "dhcp4_parser.yy"
+  case 847: // compatibility_params: compatibility_params ","
+#line 2958 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
-#line 4672 "dhcp4_parser.cc"
+#line 4682 "dhcp4_parser.cc"
     break;
 
-  case 851: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 2962 "dhcp4_parser.yy"
+  case 853: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
+#line 2970 "dhcp4_parser.yy"
                                                              {
     ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lenient-option-parsing", b);
 }
-#line 4682 "dhcp4_parser.cc"
+#line 4692 "dhcp4_parser.cc"
     break;
 
-  case 852: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 2968 "dhcp4_parser.yy"
+  case 854: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
+#line 2976 "dhcp4_parser.yy"
                                                                    {
     ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ignore-dhcp-server-identifier", b);
 }
-#line 4692 "dhcp4_parser.cc"
+#line 4702 "dhcp4_parser.cc"
     break;
 
-  case 853: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 2974 "dhcp4_parser.yy"
+  case 855: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
+#line 2982 "dhcp4_parser.yy"
                                                              {
     ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ignore-rai-link-selection", b);
 }
-#line 4702 "dhcp4_parser.cc"
+#line 4712 "dhcp4_parser.cc"
     break;
 
-  case 854: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 2980 "dhcp4_parser.yy"
+  case 856: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
+#line 2988 "dhcp4_parser.yy"
                                                            {
     ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("exclude-first-last-24", b);
 }
-#line 4712 "dhcp4_parser.cc"
+#line 4722 "dhcp4_parser.cc"
     break;
 
 
-#line 4716 "dhcp4_parser.cc"
+#line 4726 "dhcp4_parser.cc"
 
             default:
               break;
@@ -5064,145 +5074,145 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -1006;
+  const short Dhcp4Parser::yypact_ninf_ = -1012;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     195, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,    38,    41,    40,    42,    50,    66,
-      86,    94,   100,   108,   115,   136,   158,   178, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,    41,  -160,   163,   199,    87,   647,
-      93,    46,    82,    97,   267,   -89,   446,   211, -1006,    56,
-     130,    61,   181,   190, -1006,    48, -1006, -1006, -1006, -1006,
-      79,   192,   205, -1006, -1006, -1006,   216, -1006, -1006, -1006,
-     249,   298,   311,   312,   320,   324,   333,   340,   351,   367,
-     369, -1006,   383,   384,   408,   425,   426, -1006, -1006, -1006,
-     427,   439,   442,   444, -1006, -1006, -1006,   445, -1006, -1006,
-   -1006, -1006, -1006,   447,   448,   449, -1006, -1006, -1006, -1006,
-   -1006,   450, -1006, -1006, -1006, -1006, -1006, -1006,   451,   452,
-     453, -1006, -1006,   454, -1006,    78, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006,   456,   457,   459,   462,
-   -1006,    88, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   464, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   111,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006,   127, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,   283,   387, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   362, -1006,
-   -1006,   465, -1006, -1006, -1006,   466, -1006, -1006,   402,   438,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006,   467,   470,   474, -1006, -1006, -1006, -1006,
-     476,   479, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   144, -1006, -1006, -1006,   481,
-   -1006, -1006,   482, -1006,   483,   484, -1006, -1006,   486,   490,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006,   168, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   493,   180, -1006, -1006, -1006,
-   -1006,    41,    41, -1006,   236,   498, -1006, -1006,   502,   504,
-     506,   295,   296,   301,   511,   513,   516,   306,   518,   519,
-     520,   313,   316,   317,   318,   319,   308,   321,   322,   325,
-     329,   330,   531,   332,   336,   331,   341,   342,   532,   546,
-     550,   343,   346,   352,   347,   557,   563,   567,   357,   570,
-     571,   572,   575,   578,   373,   375,   376,   585,   590,   593,
-     596,   600,   390,   603,   604,   618,   619,   620,   621,   409,
-     410,   413,   627,   628, -1006,   199, -1006,   629,   630,   631,
-     419,   420,   423,   424,    87, -1006,   636,   637,   638,   639,
-     640,   641,   431,   643,   644,   645,   647, -1006,   646,    93,
-   -1006,   649,   651,   652,   653,   654,   655,   657,   658, -1006,
-      46, -1006,   659,   660,   455,   661,   663,   664,   458, -1006,
-      97,   665,   468,   469,   471, -1006,   267,   667,   669,   -74,
-   -1006,   477,   670,   672,   472,   679,   478,   480,   680,   687,
-     485,   487,   693,   694,   695,   696,   446, -1006,   697,   488,
-     211, -1006, -1006, -1006,   701,   699,   715,   716,   717, -1006,
-   -1006, -1006,   522,   526,   528, -1006,   718,   736,   739, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-     536, -1006, -1006, -1006, -1006, -1006,   155,   537,   538, -1006,
-   -1006, -1006, -1006,   740,   749,   751, -1006,   549,   759,   758,
-     552,   122, -1006, -1006, -1006,   765,   766,   768,   769,   771,
-   -1006,   772,   773,   774,   775,   561,   569, -1006, -1006, -1006,
-     780,   779, -1006,   782,   194,   206, -1006, -1006, -1006, -1006,
-   -1006,   574,   576,   577,   784,   579,   580, -1006,   782,   581,
-     785, -1006,   582, -1006,   782,   583,   584,   586,   587,   588,
-     589,   591, -1006,   592,   594, -1006,   595,   597,   598, -1006,
-   -1006,   599, -1006, -1006, -1006, -1006,   601,   758, -1006, -1006,
-     602,   605, -1006,   606, -1006, -1006,    14,   622, -1006, -1006,
-     155,   607,   608,   609, -1006,   799, -1006, -1006,    41,   199,
-     211,    87,   223, -1006, -1006, -1006,   372,   372,   800, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   803,   807,
-     810, -1006,   811, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006,    83,   817,   818,   819,    99,   -77,    49,     7,   446,
-   -1006, -1006,   820,  -110, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   821, -1006, -1006, -1006, -1006,
-     123, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   800,
-   -1006,   183,   251,   286, -1006, -1006,   287, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,   827,   828,   829,   830,   831,   838,
-     839,   840,   841,   842, -1006,   843, -1006, -1006, -1006, -1006,
-   -1006,   300, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,   309, -1006,   844,   648, -1006, -1006,
-     845,   846, -1006, -1006,   847,   849, -1006, -1006,   848,   852,
-   -1006, -1006,   850,   854, -1006, -1006, -1006, -1006, -1006, -1006,
-      34, -1006, -1006, -1006, -1006, -1006, -1006, -1006,    91, -1006,
-   -1006,   853,   855, -1006, -1006,   856,   857, -1006,   859,   860,
-     861,   862,   863,   864,   310, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,   865,   866,   877, -1006,   335, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   337, -1006,
-   -1006, -1006,   878, -1006,   879, -1006, -1006, -1006,   338, -1006,
-   -1006, -1006, -1006, -1006,   344, -1006,   126, -1006,   880,   892,
-     893,   894, -1006,   345, -1006, -1006, -1006, -1006, -1006,   634,
-   -1006,   896,   900, -1006, -1006, -1006, -1006,   891,   898, -1006,
-   -1006, -1006,   901,   902,   223, -1006,   903,   904,   905,   906,
-     698,   703,   700,   705,   708,   709,   710,   714,   719,   721,
-     907,   722,   910,   914,   926,   928,   372, -1006, -1006,   372,
-   -1006,   800,   647, -1006,   803,    97, -1006,   807,   267, -1006,
-     810,   806, -1006,   811,    83, -1006,   265,   817, -1006,    46,
-   -1006,   818,   -89, -1006,   819,   723,   724,   725,   726,   727,
-     729,    99, -1006,   730,   731,   734,   -77, -1006,   929,   946,
-      49, -1006,   735,   949,   745,   967,     7, -1006, -1006,   -40,
-     820, -1006,   757,   792,   796,   809,  -110, -1006, -1006,   969,
-     987,    93, -1006,   821,  1013, -1006, -1006,   813,   816, -1006,
-     113,   881,   885,   886, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,   268, -1006,   888,   889,   890,   895,
-   -1006,   348, -1006,   366, -1006,  1015, -1006,  1023, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   386, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,  1029, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,  1035,  1050, -1006, -1006, -1006, -1006, -1006, -1006,
-    1046, -1006,   406, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   897,   899, -1006, -1006,   908,
-   -1006,    41, -1006, -1006,  1101, -1006, -1006, -1006, -1006, -1006,
-     434, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,   909,   436, -1006,   782, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006,   806, -1006,  1102,
-    1103,   911, -1006,   265, -1006, -1006, -1006, -1006, -1006, -1006,
-    1104,   912,  1106,   -40, -1006, -1006, -1006, -1006, -1006,   915,
-     916, -1006, -1006,  1107, -1006,   917, -1006, -1006, -1006,  1108,
-   -1006, -1006,   166, -1006,   -31,  1108, -1006, -1006,  1110,  1112,
-    1113, -1006,   437, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-    1114,   918,   919,   921,  1115,   -31, -1006,   923, -1006, -1006,
-   -1006,   924, -1006, -1006, -1006
+     634, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012,    35,    31,    44,    64,    92,   137,
+     190,   228,   238,   254,   264,   276,   277,   280, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012,    31,  -182,   180,   145,    88,   333,
+     163,   533,   -48,    90,   -20,   -89,   644,    43, -1012,   285,
+      59,   147,   298,   318, -1012,    23, -1012, -1012, -1012, -1012,
+     337,   355,   357, -1012, -1012, -1012,   365, -1012, -1012, -1012,
+     366,   375,   376,   383,   384,   385,   386,   387,   388,   389,
+     390, -1012,   391,   392,   393,   404,   405, -1012, -1012, -1012,
+     406,   407,   418,   422, -1012, -1012, -1012,   424, -1012, -1012,
+   -1012, -1012, -1012,   425,   426,   427, -1012, -1012, -1012, -1012,
+   -1012,   428, -1012, -1012, -1012, -1012, -1012, -1012,   429,   430,
+     431, -1012, -1012,   432, -1012,    49, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,   433,   434,   438,   446,
+   -1012,    62, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   447, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,    65,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012,   448, -1012, -1012, -1012, -1012,    85, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,   315,   334, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+     449, -1012, -1012,   452, -1012, -1012, -1012,   455, -1012, -1012,
+     458,   460, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012,   464,   465,   466, -1012, -1012,
+   -1012, -1012,   467,   470, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012,    86, -1012, -1012,
+   -1012,   473, -1012, -1012,   474, -1012,   476,   477, -1012, -1012,
+     478,   480, -1012, -1012, -1012, -1012, -1012, -1012, -1012,    89,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012,   481,    93, -1012,
+   -1012, -1012, -1012,    31,    31, -1012,   272,   484, -1012, -1012,
+     485,   486,   489,   279,   281,   289,   491,   496,   499,   295,
+     509,   515,   517,   307,   308,   309,   310,   311,   314,   317,
+     320,   321,   313,   323,   531,   324,   329,   332,   335,   340,
+     532,   543,   547,   341,   342,   338,   344,   548,   559,   560,
+     352,   566,   567,   571,   573,   578,   367,   369,   370,   586,
+     588,   589,   591,   596,   397,   599,   601,   602,   603,   604,
+     610,   371,   398,   399,   611,   614, -1012,   145, -1012,   615,
+     616,   617,   408,   435,   409,   436,    88, -1012,   618,   619,
+     638,   646,   647,   650,   439,   655,   656,   657,   333, -1012,
+     658,   457,   163, -1012,   660,   667,   670,   671,   673,   674,
+     675,   683, -1012,   533, -1012,   684,   685,   475,   686,   688,
+     691,   479, -1012,    90,   694,   483,   487,   488, -1012,   -20,
+     695,   698,    30, -1012,   490,   699,   700,   493,   703,   494,
+     510,   723,   724,   511,   523,   738,   739,   740,   743,   644,
+   -1012,   745,   540,    43, -1012, -1012, -1012,   754,   752,   753,
+     756,   758, -1012, -1012, -1012,   552,   553,   554, -1012,   763,
+     767,   770, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012,   562, -1012, -1012, -1012, -1012, -1012,   -16,
+     563,   564, -1012, -1012, -1012, -1012,   776,   777,   778, -1012,
+     569,   780,   779,   572,    87, -1012, -1012, -1012,   783,   785,
+     786,   787,   788, -1012,   789,   790,   791,   792,   579,   587,
+   -1012, -1012, -1012,   796,   797, -1012,   798,    98,   141, -1012,
+   -1012, -1012, -1012, -1012,   590,   592,   606,   801,   607,   608,
+   -1012,   798,   609,   818, -1012,   635, -1012, -1012,   798,   636,
+     637,   639,   640,   641,   642,   643, -1012,   645,   648, -1012,
+     649,   652,   653, -1012, -1012,   654, -1012, -1012, -1012, -1012,
+     659,   779, -1012, -1012,   661,   662, -1012,   663, -1012, -1012,
+      19,   687, -1012, -1012,   -16,   664,   665,   666, -1012,   821,
+   -1012, -1012,    31,   145,    43,    88,   236, -1012, -1012, -1012,
+     585,   585,   822, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012,   823,   824,   825, -1012,   826, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012,   217,   842,   846,   854,   198,
+     171,   -24,    47,   644, -1012, -1012,   855,   -31, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   863,
+   -1012, -1012, -1012, -1012,   159, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012,   822, -1012,   115,   138,   144, -1012, -1012,
+     152, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   867,   868,
+     869,   871,   878,   879,   880,   881,   882,   883, -1012,   884,
+   -1012, -1012, -1012, -1012, -1012,   233, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   234, -1012,
+     885,   886, -1012, -1012,   887,   889, -1012, -1012,   888,   892,
+   -1012, -1012,   890,   894, -1012, -1012,   893,   895, -1012, -1012,
+   -1012, -1012, -1012, -1012,    38, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012,   102, -1012, -1012,   896,   897, -1012, -1012,   898,
+     900, -1012,   901,   902,   903,   904,   905,   906,   250, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,   907,   908,   909, -1012,
+     251, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012,   267, -1012, -1012, -1012,   910, -1012,   911, -1012,
+   -1012, -1012,   282, -1012, -1012, -1012, -1012, -1012,   292, -1012,
+     103, -1012,   912,   913,   914,   915, -1012,   299, -1012, -1012,
+   -1012, -1012, -1012,   705, -1012,   916,   918, -1012, -1012, -1012,
+   -1012,   917,   920, -1012, -1012, -1012,   919,   923,   236, -1012,
+     924,   925,   926,   927,   577,   672,   708,   714,   717,   718,
+     719,   720,   721,   722,   935,   725,   936,   938,   939,   940,
+     585, -1012, -1012,   585, -1012,   822,   333, -1012,   823,    90,
+   -1012,   824,   -20, -1012,   825,   651, -1012,   826,   217, -1012,
+     245,   842, -1012,   533, -1012,   846,   -89, -1012,   854,   729,
+     730,   731,   732,   734,   735,   198, -1012,   736,   737,   741,
+     171, -1012,   952,   957,   -24, -1012,   746,   961,   759,   968,
+      47, -1012, -1012,   -61,   855, -1012,   764,   773,   774,   795,
+     -31, -1012, -1012,   988,   994,   163, -1012,   863,  1013, -1012,
+   -1012,   806,   807, -1012,   294,   809,   812,   816, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   326, -1012,
+     819,   820,   832,   833, -1012,   306, -1012,   312, -1012,  1029,
+   -1012,  1047, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   319,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012,  1053, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,  1052,  1099, -1012, -1012,
+   -1012, -1012, -1012, -1012,  1097, -1012,   350, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   899,
+     921, -1012, -1012,   922, -1012,    31, -1012, -1012,  1103, -1012,
+   -1012, -1012, -1012, -1012,   354, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,   928,   373, -1012,   798,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012,   651, -1012,  1104,  1106,   929, -1012,   245, -1012, -1012,
+   -1012, -1012, -1012, -1012,  1107,   932,  1108,   -61, -1012, -1012,
+   -1012, -1012, -1012,   930,   934, -1012, -1012,  1110, -1012,   937,
+   -1012, -1012, -1012,  1109, -1012, -1012,   183, -1012,   123,  1109,
+   -1012, -1012,  1113,  1114,  1115, -1012,   374, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012,  1116,   933,   941,   942,  1117,   123,
+   -1012,   944, -1012, -1012, -1012,   945, -1012, -1012, -1012
   };
 
   const short
@@ -5213,17 +5223,17 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     1,    44,
       36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
       59,     5,    65,     7,   199,     9,   377,    11,   593,    13,
-     620,    15,   511,    17,   520,    19,   559,    21,   339,    23,
-     738,    25,   789,    27,    46,    39,     0,     0,     0,     0,
-       0,   622,     0,   522,   561,     0,     0,     0,    48,     0,
-      47,     0,     0,    40,    61,     0,    63,   787,   184,   217,
-       0,     0,     0,   642,   644,   646,     0,   215,   228,   230,
+     622,    15,   511,    17,   520,    19,   559,    21,   339,    23,
+     740,    25,   791,    27,    46,    39,     0,     0,     0,     0,
+       0,   624,     0,   522,   561,     0,     0,     0,    48,     0,
+      47,     0,     0,    40,    61,     0,    63,   789,   184,   217,
+       0,     0,     0,   644,   646,   648,     0,   215,   228,   230,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,   148,     0,     0,     0,     0,     0,   159,   166,   168,
        0,     0,     0,     0,   368,   509,   550,     0,   151,   454,
-     607,   609,   447,     0,     0,     0,   301,   670,   611,   330,
-     351,     0,   316,   705,   719,   736,   173,   175,     0,     0,
-       0,   799,   841,     0,   136,     0,    67,    70,    71,    72,
+     609,   611,   447,     0,     0,     0,   301,   672,   613,   330,
+     351,     0,   316,   707,   721,   738,   173,   175,     0,     0,
+       0,   801,   843,     0,   136,     0,    67,    70,    71,    72,
       73,    74,   108,   109,   110,   111,   112,    75,   103,   133,
      134,    92,    93,    94,   116,   117,   118,   119,   120,   121,
      122,   123,   124,   114,   115,   125,   126,   127,   129,   130,
@@ -5233,715 +5243,717 @@ namespace isc { namespace dhcp {
      102,   113,   132,   201,   203,   207,     0,     0,     0,     0,
      198,     0,   186,   189,   190,   191,   192,   193,   194,   195,
      196,   197,   432,   434,   436,   584,   430,   438,     0,   442,
-     440,   666,   429,   382,   383,   384,   385,   386,   410,   411,
+     440,   668,   429,   382,   383,   384,   385,   386,   410,   411,
      412,   413,   414,   427,   400,   401,   415,   416,   417,   418,
      419,   420,   421,   422,   423,   424,   425,   426,   428,     0,
      379,   389,   405,   406,   407,   390,   392,   393,   396,   397,
      398,   395,   391,   387,   388,   408,   409,   394,   402,   403,
-     404,   399,   605,   604,   600,   601,   599,     0,   595,   598,
-     602,   603,   664,   652,   654,   658,   656,   662,   660,   648,
-     641,   635,   639,   640,     0,   623,   624,   636,   637,   638,
-     632,   627,   633,   629,   630,   631,   634,   628,     0,   540,
-     276,     0,   544,   542,   547,     0,   536,   537,     0,   523,
-     524,   527,   539,   528,   529,   530,   546,   531,   532,   533,
-     534,   535,   577,     0,     0,     0,   575,   576,   579,   580,
-       0,   562,   563,   566,   567,   568,   569,   570,   571,   572,
-     573,   574,   347,   349,   344,     0,   341,   345,   346,     0,
-     775,   762,     0,   765,     0,     0,   769,   773,     0,     0,
-     779,   781,   783,   785,   760,   758,   759,     0,   740,   743,
-     744,   745,   746,   747,   748,   749,   750,   755,   751,   752,
-     753,   754,   756,   757,   796,     0,     0,   791,   794,   795,
-      45,    50,     0,    37,    43,     0,    64,    60,     0,     0,
+     404,   399,   606,     0,   605,   601,   602,   600,     0,   595,
+     598,   599,   603,   604,   666,   654,   656,   660,   658,   664,
+     662,   650,   643,   637,   641,   642,     0,   625,   626,   638,
+     639,   640,   634,   629,   635,   631,   632,   633,   636,   630,
+       0,   540,   276,     0,   544,   542,   547,     0,   536,   537,
+       0,   523,   524,   527,   539,   528,   529,   530,   546,   531,
+     532,   533,   534,   535,   577,     0,     0,     0,   575,   576,
+     579,   580,     0,   562,   563,   566,   567,   568,   569,   570,
+     571,   572,   573,   574,   347,   349,   344,     0,   341,   345,
+     346,     0,   777,   764,     0,   767,     0,     0,   771,   775,
+       0,     0,   781,   783,   785,   787,   762,   760,   761,     0,
+     742,   745,   746,   747,   748,   749,   750,   751,   752,   757,
+     753,   754,   755,   756,   758,   759,   798,     0,     0,   793,
+     796,   797,    45,    50,     0,    37,    43,     0,    64,    60,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    58,    69,    66,     0,
+       0,     0,     0,     0,     0,     0,   188,   200,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   381,   378,
+       0,     0,   597,   594,     0,     0,     0,     0,     0,     0,
+       0,     0,   623,   628,   512,     0,     0,     0,     0,     0,
+       0,     0,   521,   526,     0,     0,     0,     0,   560,   565,
+       0,     0,   343,   340,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   744,
+     741,     0,     0,   795,   792,    49,    41,     0,     0,     0,
+       0,     0,   153,   154,   155,     0,     0,     0,   183,     0,
+       0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,     0,   178,   179,   156,   157,   158,     0,
+       0,     0,   170,   171,   172,   177,     0,     0,     0,   150,
+       0,     0,     0,     0,     0,   444,   445,   446,     0,     0,
+       0,     0,     0,   706,     0,     0,     0,     0,     0,     0,
+     180,   181,   182,     0,     0,    68,     0,     0,     0,   211,
+     212,   213,   214,   187,     0,     0,     0,     0,     0,     0,
+     453,     0,     0,     0,   380,     0,   608,   596,     0,     0,
+       0,     0,     0,     0,     0,     0,   627,     0,     0,   538,
+       0,     0,     0,   549,   525,     0,   581,   582,   583,   564,
+       0,     0,   342,   763,     0,     0,   766,     0,   769,   770,
+       0,     0,   779,   780,     0,     0,     0,     0,   743,     0,
+     800,   794,     0,     0,     0,     0,     0,   645,   647,   649,
+       0,     0,   232,   149,   161,   162,   163,   164,   165,   160,
+     167,   169,   370,   513,   552,   152,   456,    38,   610,   612,
+     449,   450,   451,   452,   448,     0,     0,   615,   332,     0,
+       0,     0,     0,     0,   174,   176,     0,     0,    51,   202,
+     205,   206,   204,   209,   210,   208,   433,   435,   437,   586,
+     431,   439,   443,   441,     0,   607,   667,   655,   657,   661,
+     659,   665,   663,   651,   541,   277,   545,   543,   548,   578,
+     348,   350,   778,   765,   768,   773,   774,   772,   776,   782,
+     784,   786,   788,   232,    42,     0,     0,     0,   224,   226,
+       0,   219,   222,   223,   264,   269,   271,   273,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   287,     0,
+     293,   295,   297,   299,   263,     0,   239,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,     0,   237,
+       0,   233,   234,   375,     0,   371,   372,   518,     0,   514,
+     515,   557,     0,   553,   554,   461,     0,   457,   458,   311,
+     312,   313,   314,   315,     0,   303,   306,   307,   308,   309,
+     310,   677,     0,   674,   620,     0,   616,   617,   337,     0,
+     333,   334,     0,     0,     0,     0,     0,     0,     0,   353,
+     356,   357,   358,   359,   360,   361,     0,     0,     0,   326,
+       0,   318,   321,   322,   323,   324,   325,   717,   719,   716,
+     714,   715,     0,   709,   712,   713,     0,   733,     0,   736,
+     729,   730,     0,   723,   726,   727,   728,   731,     0,   806,
+       0,   803,     0,     0,     0,     0,   852,     0,   845,   848,
+     849,   850,   851,    53,   591,     0,   587,   588,   652,   670,
+     671,     0,     0,    62,   790,   185,     0,     0,   221,   218,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    58,    69,    66,     0,     0,     0,
-       0,     0,     0,     0,   188,   200,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   381,   378,     0,   597,
-     594,     0,     0,     0,     0,     0,     0,     0,     0,   621,
-     626,   512,     0,     0,     0,     0,     0,     0,     0,   521,
-     526,     0,     0,     0,     0,   560,   565,     0,     0,   343,
-     340,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   742,   739,     0,     0,
-     793,   790,    49,    41,     0,     0,     0,     0,     0,   153,
-     154,   155,     0,     0,     0,   183,     0,     0,     0,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-       0,   178,   179,   156,   157,   158,     0,     0,     0,   170,
-     171,   172,   177,     0,     0,     0,   150,     0,     0,     0,
-       0,     0,   444,   445,   446,     0,     0,     0,     0,     0,
-     704,     0,     0,     0,     0,     0,     0,   180,   181,   182,
-       0,     0,    68,     0,     0,     0,   211,   212,   213,   214,
-     187,     0,     0,     0,     0,     0,     0,   453,     0,     0,
-       0,   380,     0,   596,     0,     0,     0,     0,     0,     0,
-       0,     0,   625,     0,     0,   538,     0,     0,     0,   549,
-     525,     0,   581,   582,   583,   564,     0,     0,   342,   761,
-       0,     0,   764,     0,   767,   768,     0,     0,   777,   778,
-       0,     0,     0,     0,   741,     0,   798,   792,     0,     0,
-       0,     0,     0,   643,   645,   647,     0,     0,   232,   149,
-     161,   162,   163,   164,   165,   160,   167,   169,   370,   513,
-     552,   152,   456,    38,   608,   610,   449,   450,   451,   452,
-     448,     0,     0,   613,   332,     0,     0,     0,     0,     0,
-     174,   176,     0,     0,    51,   202,   205,   206,   204,   209,
-     210,   208,   433,   435,   437,   586,   431,   439,   443,   441,
-       0,   606,   665,   653,   655,   659,   657,   663,   661,   649,
-     541,   277,   545,   543,   548,   578,   348,   350,   776,   763,
-     766,   771,   772,   770,   774,   780,   782,   784,   786,   232,
-      42,     0,     0,     0,   224,   226,     0,   219,   222,   223,
-     264,   269,   271,   273,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   287,     0,   293,   295,   297,   299,
-     263,     0,   239,   242,   243,   244,   245,   246,   247,   248,
-     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-     259,   260,   261,   262,     0,   237,     0,   233,   234,   375,
-       0,   371,   372,   518,     0,   514,   515,   557,     0,   553,
-     554,   461,     0,   457,   458,   311,   312,   313,   314,   315,
-       0,   303,   306,   307,   308,   309,   310,   675,     0,   672,
-     618,     0,   614,   615,   337,     0,   333,   334,     0,     0,
-       0,     0,     0,     0,     0,   353,   356,   357,   358,   359,
-     360,   361,     0,     0,     0,   326,     0,   318,   321,   322,
-     323,   324,   325,   715,   717,   714,   712,   713,     0,   707,
-     710,   711,     0,   731,     0,   734,   727,   728,     0,   721,
-     724,   725,   726,   729,     0,   804,     0,   801,     0,     0,
-       0,     0,   850,     0,   843,   846,   847,   848,   849,    53,
-     591,     0,   587,   588,   650,   668,   669,     0,     0,    62,
-     788,   185,     0,     0,   221,   218,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   241,   216,   229,     0,
-     231,   236,     0,   369,   374,   522,   510,   517,   561,   551,
-     556,     0,   455,   460,   305,   302,   677,   674,   671,   622,
-     612,   617,     0,   331,   336,     0,     0,     0,     0,     0,
-       0,   355,   352,     0,     0,     0,   320,   317,     0,     0,
-     709,   706,     0,     0,     0,     0,   723,   720,   737,     0,
-     803,   800,     0,     0,     0,     0,   845,   842,    55,     0,
-      54,     0,   585,   590,     0,   667,   797,     0,     0,   220,
-       0,     0,     0,     0,   275,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,     0,   292,     0,     0,     0,     0,
-     240,     0,   235,     0,   373,     0,   516,     0,   555,   508,
-     484,   485,   486,   469,   470,   489,   490,   491,   492,   493,
-     506,   472,   473,   494,   495,   496,   497,   498,   499,   500,
-     501,   502,   503,   504,   505,   507,   466,   467,   468,   482,
-     483,   479,   480,   481,   478,     0,   463,   471,   487,   488,
-     474,   475,   476,   477,   459,   304,   699,   701,     0,   693,
-     694,   695,   696,   697,   698,   686,   687,   691,   692,   688,
-     689,   690,     0,   678,   679,   682,   683,   684,   685,   673,
-       0,   616,     0,   335,   362,   363,   364,   365,   366,   367,
-     354,   327,   328,   329,   319,     0,     0,   708,   730,     0,
-     733,     0,   722,   819,     0,   817,   815,   809,   813,   814,
-       0,   806,   811,   812,   810,   802,   851,   852,   853,   854,
-     844,    52,    57,     0,   589,     0,   225,   227,   266,   267,
-     268,   265,   270,   272,   274,   289,   290,   291,   288,   294,
-     296,   298,   300,   238,   376,   519,   558,   465,   462,     0,
-       0,     0,   676,   681,   619,   338,   716,   718,   732,   735,
-       0,     0,     0,   808,   805,    56,   592,   651,   464,     0,
-       0,   703,   680,     0,   816,     0,   807,   700,   702,     0,
-     818,   824,     0,   821,     0,   823,   820,   834,     0,     0,
-       0,   839,     0,   826,   829,   830,   831,   832,   833,   822,
-       0,     0,     0,     0,     0,   828,   825,     0,   836,   837,
-     838,     0,   827,   835,   840
+     241,   216,   229,     0,   231,   236,     0,   369,   374,   522,
+     510,   517,   561,   551,   556,     0,   455,   460,   305,   302,
+     679,   676,   673,   624,   614,   619,     0,   331,   336,     0,
+       0,     0,     0,     0,     0,   355,   352,     0,     0,     0,
+     320,   317,     0,     0,   711,   708,     0,     0,     0,     0,
+     725,   722,   739,     0,   805,   802,     0,     0,     0,     0,
+     847,   844,    55,     0,    54,     0,   585,   590,     0,   669,
+     799,     0,     0,   220,     0,     0,     0,     0,   275,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,     0,   292,
+       0,     0,     0,     0,   240,     0,   235,     0,   373,     0,
+     516,     0,   555,   508,   484,   485,   486,   469,   470,   489,
+     490,   491,   492,   493,   506,   472,   473,   494,   495,   496,
+     497,   498,   499,   500,   501,   502,   503,   504,   505,   507,
+     466,   467,   468,   482,   483,   479,   480,   481,   478,     0,
+     463,   471,   487,   488,   474,   475,   476,   477,   459,   304,
+     701,   703,     0,   695,   696,   697,   698,   699,   700,   688,
+     689,   693,   694,   690,   691,   692,     0,   680,   681,   684,
+     685,   686,   687,   675,     0,   618,     0,   335,   362,   363,
+     364,   365,   366,   367,   354,   327,   328,   329,   319,     0,
+       0,   710,   732,     0,   735,     0,   724,   821,     0,   819,
+     817,   811,   815,   816,     0,   808,   813,   814,   812,   804,
+     853,   854,   855,   856,   846,    52,    57,     0,   589,     0,
+     225,   227,   266,   267,   268,   265,   270,   272,   274,   289,
+     290,   291,   288,   294,   296,   298,   300,   238,   376,   519,
+     558,   465,   462,     0,     0,     0,   678,   683,   621,   338,
+     718,   720,   734,   737,     0,     0,     0,   810,   807,    56,
+     592,   653,   464,     0,     0,   705,   682,     0,   818,     0,
+     809,   702,   704,     0,   820,   826,     0,   823,     0,   825,
+     822,   836,     0,     0,     0,   841,     0,   828,   831,   832,
+     833,   834,   835,   824,     0,     0,     0,     0,     0,   830,
+     827,     0,   838,   839,   840,     0,   829,   837,   842
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   -52, -1006,  -598, -1006,   428,
-   -1006, -1006, -1006, -1006, -1006, -1006,  -638, -1006, -1006, -1006,
-     -67, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   401,   616,
-     -30,   -28,    26,   -54,   -34,   -27,     0,    16,    23,    39,
-   -1006, -1006, -1006, -1006,    44, -1006, -1006,    47,    51,    52,
-      54,    55,    57, -1006,   414,    58, -1006,    59, -1006,    62,
-      65,    69,    70, -1006,    72, -1006,    73, -1006, -1006, -1006,
-   -1006, -1006,    36, -1006, -1006,   405,   625, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006,   148, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006,   334, -1006,   129, -1006,  -713,
-     135, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006,   -45, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006,   109, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006,    96, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006,   110, -1006, -1006, -1006,   114,   610,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006,   104, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1005, -1006, -1006, -1006,   133, -1006,
-   -1006, -1006,   138,   626, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,  -998, -1006,   -65, -1006,   -53, -1006,    75,    76,
-      77,    80, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   125,
-   -1006, -1006,   -96,   -62, -1006, -1006, -1006, -1006, -1006,   137,
-   -1006, -1006, -1006,   140, -1006,   611, -1006,   -63, -1006, -1006,
-   -1006, -1006, -1006,   -61, -1006, -1006, -1006, -1006, -1006,   -26,
-   -1006, -1006, -1006,   139, -1006, -1006, -1006,   142, -1006,   612,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,    84, -1006, -1006, -1006,    85,   624, -1006, -1006,
-     -49, -1006,   -10, -1006,   -51, -1006, -1006, -1006,   131, -1006,
-   -1006, -1006,   134, -1006,   632,     3, -1006,    13, -1006,    29,
-   -1006,   378, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,  -995,
-   -1006, -1006, -1006, -1006, -1006,   143, -1006, -1006, -1006,   -88,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-     116, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   117, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,   412,
-     613, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-     461,   615, -1006, -1006, -1006, -1006, -1006, -1006,   107, -1006,
-   -1006,   -99, -1006, -1006, -1006, -1006, -1006, -1006,  -111, -1006,
-   -1006,  -130, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006,
-   -1006, -1006,   112, -1006, -1006, -1006, -1006
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012,   -59, -1012,  -565, -1012,   200,
+   -1012, -1012, -1012, -1012, -1012, -1012,  -655, -1012, -1012, -1012,
+     -67, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   400,   620,
+     -30,   -26,    26,   -54,   -37,   -27,     0,    14,    16,    45,
+   -1012, -1012, -1012, -1012,    48, -1012, -1012,    50,    51,    52,
+      53,    55,    56, -1012,   410,    58, -1012,    63, -1012,    66,
+      68,    69,    70, -1012,    71, -1012,    73, -1012, -1012, -1012,
+   -1012, -1012,    33, -1012, -1012,   401,   597, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,   134, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012,   316, -1012,   110, -1012,  -719,
+     118, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012,   -45, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012,   104, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012,    80, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012,    95, -1012, -1012, -1012,    99,   576,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012,    94, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1011, -1012, -1012, -1012,   113, -1012,
+   -1012, -1012,   124,   613, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1008, -1012,    78, -1012,    79, -1012,    74,    76,
+      81,    84, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   107,
+   -1012, -1012,  -109,   -62, -1012, -1012, -1012, -1012, -1012,   129,
+   -1012, -1012, -1012,   125, -1012,   612, -1012,   -63, -1012, -1012,
+   -1012, -1012, -1012,   -44, -1012, -1012, -1012, -1012, -1012,   -23,
+   -1012, -1012, -1012,   131, -1012, -1012, -1012,   139, -1012,   605,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012,    91, -1012, -1012, -1012,    96,   624, -1012, -1012,
+   -1012,   -49, -1012,   -10, -1012,   -56, -1012, -1012, -1012,   127,
+   -1012, -1012, -1012,   130, -1012,   623,     3, -1012,    13, -1012,
+      29, -1012,   394, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1007, -1012, -1012, -1012, -1012, -1012,   136, -1012, -1012, -1012,
+     -88, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012,   116, -1012, -1012, -1012, -1012, -1012, -1012, -1012,   112,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+     411,   594, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012,   451,   593, -1012, -1012, -1012, -1012, -1012, -1012,   117,
+   -1012, -1012,   -90, -1012, -1012, -1012, -1012, -1012, -1012,  -110,
+   -1012, -1012,  -129, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
+   -1012, -1012, -1012,   119, -1012, -1012, -1012, -1012
   };
 
   const short
   Dhcp4Parser::yydefgoto_[] =
   {
        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    36,    37,    38,    65,   744,
-      82,    83,    39,    64,    79,    80,   765,   969,  1069,  1070,
-     840,    41,    66,    85,   435,    86,    43,    67,   155,   156,
+      23,    24,    25,    26,    27,    36,    37,    38,    65,   748,
+      82,    83,    39,    64,    79,    80,   769,   973,  1073,  1074,
+     844,    41,    66,    85,   437,    86,    43,    67,   155,   156,
      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   462,   169,   170,   479,   171,   172,   173,   174,
-     175,   176,   177,   468,   735,   178,   469,   179,   470,   180,
-     181,   182,   183,   497,   184,   498,   185,   186,   187,   188,
-     189,   190,   191,   192,   439,   231,   232,    45,    68,   233,
-     507,   234,   508,   768,   235,   509,   771,   236,   237,   238,
-     239,   193,   448,   194,   440,   816,   817,   818,   982,   819,
-     983,   195,   449,   196,   450,   866,   867,   868,  1009,   841,
-     842,   843,   986,  1231,   844,   987,   845,   988,   846,   989,
-     847,   848,   543,   849,   850,   851,   852,   853,   854,   855,
-     856,   857,   858,  1000,  1238,   859,   860,  1002,   861,  1003,
-     862,  1004,   863,  1005,   197,   487,   890,   891,   892,   893,
-     894,   895,   896,   198,   493,   926,   927,   928,   929,   930,
-     199,   490,   905,   906,   907,  1032,    59,    75,   385,   386,
-     387,   557,   388,   558,   200,   491,   914,   915,   916,   917,
-     918,   919,   920,   921,   201,   475,   870,   871,   872,  1012,
-      47,    69,   279,   280,   281,   520,   282,   516,   283,   517,
-     284,   518,   285,   521,   286,   524,   287,   523,   202,   203,
-     204,   205,   483,   750,   292,   206,   480,   882,   883,   884,
-    1021,  1145,  1146,   207,   476,    53,    72,   874,   875,   876,
-    1015,    55,    73,   348,   349,   350,   351,   352,   353,   354,
-     542,   355,   546,   356,   545,   357,   358,   547,   359,   208,
-     477,   878,   879,   880,  1018,    57,    74,   370,   371,   372,
-     373,   374,   551,   375,   376,   377,   378,   379,   294,   519,
-     971,   972,   973,  1071,    49,    70,   307,   308,   309,   528,
-     209,   481,   210,   482,   211,   489,   901,   902,   903,  1029,
-      51,    71,   324,   325,   326,   212,   444,   213,   445,   214,
-     446,   330,   538,   976,  1074,   331,   532,   332,   533,   333,
-     535,   334,   534,   335,   537,   336,   536,   337,   531,   301,
-     525,   977,   215,   488,   898,   899,  1026,  1172,  1173,  1174,
-    1175,  1176,  1249,  1177,  1250,  1178,   216,   217,   494,   938,
-     939,   940,  1048,   941,  1049,   218,   495,   948,   949,   950,
-     951,  1053,   952,   953,  1055,   219,   496,    61,    76,   407,
-     408,   409,   410,   563,   411,   412,   565,   413,   414,   415,
-     568,   803,   416,   569,   417,   562,   418,   419,   420,   572,
-     421,   573,   422,   574,   423,   575,   220,   438,    63,    77,
-     426,   427,   428,   578,   429,   221,   502,   956,   957,  1059,
-    1210,  1211,  1212,  1213,  1262,  1214,  1260,  1282,  1283,  1284,
-    1292,  1293,  1294,  1300,  1295,  1296,  1297,  1298,  1304,   222,
-     503,   963,   964,   965,   966,   967,   968
+     167,   168,   464,   169,   170,   481,   171,   172,   173,   174,
+     175,   176,   177,   470,   739,   178,   471,   179,   472,   180,
+     181,   182,   183,   499,   184,   500,   185,   186,   187,   188,
+     189,   190,   191,   192,   441,   231,   232,    45,    68,   233,
+     509,   234,   510,   772,   235,   511,   775,   236,   237,   238,
+     239,   193,   450,   194,   442,   820,   821,   822,   986,   823,
+     987,   195,   451,   196,   452,   870,   871,   872,  1013,   845,
+     846,   847,   990,  1235,   848,   991,   849,   992,   850,   993,
+     851,   852,   546,   853,   854,   855,   856,   857,   858,   859,
+     860,   861,   862,  1004,  1242,   863,   864,  1006,   865,  1007,
+     866,  1008,   867,  1009,   197,   489,   894,   895,   896,   897,
+     898,   899,   900,   198,   495,   930,   931,   932,   933,   934,
+     199,   492,   909,   910,   911,  1036,    59,    75,   387,   388,
+     389,   560,   390,   561,   200,   493,   918,   919,   920,   921,
+     922,   923,   924,   925,   201,   477,   874,   875,   876,  1016,
+      47,    69,   279,   280,   281,   522,   282,   518,   283,   519,
+     284,   520,   285,   523,   286,   526,   287,   525,   202,   203,
+     204,   205,   485,   754,   292,   206,   482,   886,   887,   888,
+    1025,  1149,  1150,   207,   478,    53,    72,   878,   879,   880,
+    1019,    55,    73,   350,   351,   352,   353,   354,   355,   356,
+     545,   357,   549,   358,   548,   359,   360,   550,   361,   208,
+     479,   882,   883,   884,  1022,    57,    74,   372,   373,   374,
+     375,   376,   554,   377,   378,   379,   380,   381,   294,   521,
+     975,   976,   977,  1075,    49,    70,   308,   309,   310,   530,
+     311,   209,   483,   210,   484,   211,   491,   905,   906,   907,
+    1033,    51,    71,   326,   327,   328,   212,   446,   213,   447,
+     214,   448,   332,   541,   980,  1078,   333,   535,   334,   536,
+     335,   538,   336,   537,   337,   540,   338,   539,   339,   534,
+     301,   527,   981,   215,   490,   902,   903,  1030,  1176,  1177,
+    1178,  1179,  1180,  1253,  1181,  1254,  1182,   216,   217,   496,
+     942,   943,   944,  1052,   945,  1053,   218,   497,   952,   953,
+     954,   955,  1057,   956,   957,  1059,   219,   498,    61,    76,
+     409,   410,   411,   412,   566,   413,   414,   568,   415,   416,
+     417,   571,   807,   418,   572,   419,   565,   420,   421,   422,
+     575,   423,   576,   424,   577,   425,   578,   220,   440,    63,
+      77,   428,   429,   430,   581,   431,   221,   504,   960,   961,
+    1063,  1214,  1215,  1216,  1217,  1266,  1218,  1264,  1286,  1287,
+    1288,  1296,  1297,  1298,  1304,  1299,  1300,  1301,  1302,  1308,
+     222,   505,   967,   968,   969,   970,   971,   972
   };
 
   const short
   Dhcp4Parser::yytable_[] =
   {
-     154,   230,   252,   303,   320,   304,   346,   366,   384,   404,
-     338,   368,    78,   369,   864,   256,  1137,   305,   297,   240,
-     295,   310,   322,  1138,   360,   380,  1153,   405,   347,   367,
-     778,   743,   801,   130,   131,   257,   782,  1024,    28,   253,
-    1025,   254,   258,   293,   306,   321,    29,    40,    30,    42,
-      31,   436,   382,   383,    81,   340,   437,    44,   241,   296,
-     311,   323,   430,   361,   381,   432,   406,   382,   383,   259,
-     130,   131,   298,    46,   327,   922,   923,   924,    93,    94,
-      95,   505,   299,   441,   328,   260,   506,   958,   959,   960,
-     961,   514,   261,    48,  1027,   255,   515,  1028,   300,   743,
-     329,    50,   223,   224,   153,   278,   225,    52,   262,   226,
-     227,   228,   229,   263,   526,    54,   264,   130,   131,   527,
-     265,   266,    56,   267,   268,   153,   269,   270,   271,  1060,
-     529,   272,  1061,   431,   273,   530,   339,   153,   274,   275,
-     126,   276,   277,    58,   288,   289,   290,   559,  1203,   291,
-    1204,  1205,   560,  1228,  1229,  1230,   130,   131,  1287,   130,
-     131,  1288,  1289,  1290,  1291,    60,   942,   943,   944,  1285,
-     312,   576,  1286,    84,   153,   125,   577,   313,   314,   315,
-     316,   317,   318,   580,   319,    62,   505,   126,   581,   433,
-     802,   979,   340,   434,   341,   342,   442,   130,   131,   343,
-     344,   345,   302,   130,   131,   933,   934,   130,   131,   443,
-      87,   766,   767,    88,   885,   886,   887,   888,   249,   889,
-     447,   945,   250,   424,   425,    89,   769,   770,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   746,   747,
-     748,   749,  1137,   908,   909,   910,   911,   912,   913,  1138,
-     814,   815,  1153,   451,   580,    32,    33,    34,    35,   980,
-     153,   319,   974,   153,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   514,
-     984,   539,   125,   126,   981,   985,  1101,    93,    94,    95,
-      96,   153,   452,  1006,   127,   128,   129,   153,  1007,   130,
-     131,   153,  1006,  1041,   132,   453,   454,  1008,  1042,   133,
-     134,   135,   136,   137,   455,  1235,  1236,  1237,   456,   138,
-     100,   101,   102,   730,   731,   732,   733,   457,  1046,   139,
-    1050,  1056,   140,  1047,   458,  1051,  1057,   576,  1066,   141,
-     142,  1006,  1058,  1067,   143,   459,  1243,   144,   125,   126,
-     340,   145,   340,   362,   341,   342,   363,   364,   365,   526,
-     541,   460,   734,   461,  1244,   130,   131,   130,   131,   582,
-     583,   146,   147,   148,   149,   150,   151,   463,   464,  1247,
-     540,  1156,  1157,  1158,  1248,   152,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,   559,
-     549,   820,   465,   153,  1255,   821,   822,   823,   824,   825,
-     826,   827,   828,   829,   830,   831,   832,   833,   834,   466,
-     467,   471,   835,   836,   837,   838,   839,  1263,   154,   529,
-    1305,   550,  1264,   472,  1266,  1306,   473,   230,   474,   478,
-     584,   484,   485,   486,   492,   499,   500,   501,   504,   252,
-     510,   511,   303,   512,   304,   240,   513,   340,   522,   544,
-     548,   552,   256,   320,   553,   297,   305,   295,   554,   153,
-     310,   153,   556,   346,   555,   561,   564,   566,   567,   366,
-     570,   322,   257,   368,   571,   369,   253,   579,   254,   258,
-     293,   360,   585,   306,   241,   347,   586,   380,   587,   404,
-     588,   367,   589,   590,   321,   592,   296,   593,   591,   311,
-     594,   595,   596,   597,   598,   604,   259,   405,   599,   298,
-     323,   600,   601,   602,   603,   610,   616,   605,   606,   299,
-     361,   607,   260,   327,   608,   609,   381,   611,   613,   261,
-     617,   612,   255,   328,   618,   300,   130,   131,   614,   615,
-     619,   623,   278,   620,   622,   262,   406,   624,   621,   329,
-     263,   625,   626,   264,   627,   628,   629,   265,   266,   630,
-     267,   268,   631,   269,   270,   271,   153,  1267,   272,   635,
-     632,   273,   633,   634,   636,   274,   275,   637,   276,   277,
-     638,   288,   289,   290,   639,   640,   291,   641,   642,   389,
-     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
-     400,   401,   643,   644,   645,   646,   647,   648,   402,   403,
-     649,   650,   651,   653,   654,   655,   656,   657,   658,   659,
-     661,   662,   663,   664,   665,   666,   667,   668,   669,   670,
-     672,  1011,   154,   674,   230,   675,   676,   677,   678,   679,
-     153,   680,   681,   683,   684,   686,   810,   687,   688,   691,
-     685,   696,   240,   697,   700,   689,   701,    91,    92,    93,
-      94,    95,    96,   703,   706,   692,   693,   702,   694,   925,
-     935,   707,   404,   704,   699,   705,   962,   710,   711,   712,
-     713,   715,   708,   716,   709,   718,   719,   931,   936,   946,
-     405,   241,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   720,   721,   722,   726,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   723,   242,   243,   244,
-     724,   126,   725,   727,   728,   738,   932,   937,   947,   406,
-     729,   736,   737,   128,   739,   245,   740,   130,   131,   246,
-     247,   248,   132,   741,   742,    30,   745,   133,   134,   135,
-     751,   752,   249,   753,   754,   760,   250,   138,   755,   756,
-     757,   758,   759,   761,   251,   762,   763,   764,   772,   775,
-     773,   774,   780,   776,   777,   779,   781,   783,   784,   804,
-     785,   786,   787,   788,   809,   789,   790,   865,   791,   792,
-     869,   793,   794,   795,   873,   796,   798,   877,   881,   799,
-     800,   806,   807,   808,   897,   900,   904,   955,   970,   146,
-     147,   990,   991,   992,   993,   994,    91,    92,    93,    94,
-      95,    96,   995,   996,   997,   998,   999,  1001,  1068,  1014,
-    1010,  1013,  1017,  1016,  1019,  1020,  1022,  1023,  1031,  1030,
-    1034,   153,  1033,  1035,  1036,  1037,  1038,  1039,  1040,  1043,
-    1044,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,  1045,  1052,  1054,  1062,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,  1063,  1064,  1065,  1075,
-     126,   340,  1072,  1073,  1076,  1077,  1078,  1080,  1081,  1082,
-    1083,  1094,   128,  1084,  1096,  1086,   130,   131,  1097,   247,
-    1085,   132,  1087,  1088,  1089,  1090,   133,   134,   135,  1091,
-    1098,   249,  1099,  1195,  1092,   250,  1093,  1095,  1184,  1185,
-    1186,  1187,  1188,   251,  1189,   252,  1192,  1191,   346,  1193,
-    1196,   366,  1198,  1199,  1109,   368,  1139,   369,   256,  1159,
-    1200,   297,   320,   295,  1165,   384,   360,  1113,  1140,   380,
-     347,  1201,  1148,   367,  1216,  1221,  1136,  1167,   257,   925,
-     322,  1164,   253,   935,   254,   258,   293,  1114,   146,   147,
-    1222,  1110,  1206,  1111,  1115,  1147,  1160,   931,  1161,   962,
-    1166,   936,   296,   321,   303,   361,   304,   946,   381,  1217,
-    1208,  1149,   259,  1218,  1207,   298,  1168,  1225,   305,   323,
-     153,  1116,   310,  1245,  1150,   299,  1219,  1226,   260,  1169,
-    1227,  1246,   327,  1251,  1151,   261,   932,  1117,   255,  1170,
-     937,   300,   328,  1252,  1118,   306,   947,  1112,   278,  1209,
-    1152,   262,  1162,  1253,  1254,  1171,   263,  1135,   329,   264,
-    1119,   311,  1163,   265,   266,  1120,   267,   268,  1121,   269,
-     270,   271,  1122,  1123,   272,  1124,  1125,   273,  1126,  1127,
-    1128,   274,   275,  1129,   276,   277,  1130,   288,   289,   290,
-    1131,  1132,   291,  1133,  1134,  1232,  1141,  1142,  1143,  1233,
-    1234,  1144,  1239,  1240,  1241,  1261,  1269,  1270,  1273,  1242,
-    1275,  1256,  1279,  1257,  1301,  1281,  1302,  1303,  1307,  1311,
-     811,   652,  1258,  1265,   805,   797,   813,  1274,  1271,  1277,
-    1278,  1280,  1079,  1155,  1309,  1308,  1310,  1313,  1314,   660,
-    1102,  1100,  1194,   978,  1183,  1190,  1182,  1104,  1154,  1259,
-    1103,  1268,   671,   673,  1106,  1105,  1223,  1224,   975,  1108,
-    1107,   690,  1181,  1180,  1276,  1272,  1197,  1215,   695,   698,
-    1179,   954,   682,  1202,  1299,  1312,     0,     0,  1220,     0,
-    1109,   812,  1139,     0,     0,     0,  1159,     0,     0,   714,
-       0,  1165,     0,  1113,  1140,   717,  1206,     0,  1148,     0,
-       0,     0,  1136,     0,  1167,     0,     0,     0,  1164,     0,
-       0,     0,     0,  1114,  1208,     0,     0,  1110,  1207,  1111,
-    1115,  1147,     0,  1160,     0,  1161,     0,  1166,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1149,     0,     0,
-       0,     0,     0,  1168,     0,     0,     0,  1116,     0,     0,
-    1150,     0,     0,  1209,     0,     0,  1169,     0,     0,     0,
-    1151,     0,     0,  1117,     0,     0,  1170,     0,     0,     0,
-    1118,     0,     0,  1112,     0,     0,  1152,     0,     0,  1162,
-       0,     0,  1171,  1135,     0,     0,  1119,     0,     0,  1163,
-       0,  1120,     0,     0,  1121,     0,     0,     0,  1122,  1123,
-       0,  1124,  1125,     0,  1126,  1127,  1128,     0,     0,  1129,
-       0,     0,  1130,     0,     0,     0,  1131,  1132,     0,  1133,
-    1134,     0,  1141,  1142,  1143,     0,     0,  1144
+     154,   230,   252,   304,   322,    78,   348,   368,   386,   406,
+     340,   370,   868,   297,  1141,   256,   782,  1142,  1157,   240,
+     295,   312,   324,   786,   362,   382,   438,   407,   349,   369,
+     371,   439,   257,    81,   342,    28,    29,   805,    30,   253,
+      31,  1028,   258,   254,  1029,   125,   293,   307,   323,   130,
+     131,    40,   507,   384,   385,   426,   427,   508,   241,   296,
+     313,   325,   433,   363,   383,   516,   408,   747,   528,   259,
+     517,    42,   298,   529,   329,   342,   364,   343,   344,   365,
+     366,   367,   299,   260,   330,   261,   130,   131,   532,   562,
+     130,   131,   579,   533,   563,   255,   583,   580,   300,    44,
+     331,   584,   278,   223,   224,  1031,  1064,   225,  1032,  1065,
+     226,   227,   228,   229,   262,   770,   771,   263,   507,   264,
+     265,   266,   267,   983,   268,   269,   153,   270,  1207,   341,
+    1208,  1209,   271,   937,   938,   272,   747,   273,   274,   275,
+     276,   583,   277,   288,    46,   289,   984,   516,   305,   306,
+     290,   434,   985,   291,   153,   988,    87,   130,   131,    88,
+     989,   773,   774,   734,   735,   736,   737,   962,   963,   964,
+     965,    89,   384,   385,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   153,   342,  1289,   343,   344,  1290,
+      84,   153,   345,   346,   347,   153,   806,    48,   130,   131,
+     130,   131,   738,   750,   751,   752,   753,   946,   947,   948,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,    50,  1010,  1010,   125,   126,
+    1141,  1011,  1012,  1142,  1157,    52,    32,    33,    34,    35,
+     127,   128,   129,  1045,  1050,   130,   131,   126,  1046,  1051,
+     132,    54,   949,   818,   819,   133,   134,   135,   136,   137,
+    1054,    56,   302,   130,   131,  1055,   138,    93,    94,    95,
+      96,   130,   131,    58,    60,  1060,   139,    62,   249,   140,
+    1061,   432,   250,   303,  1105,   579,   141,   142,   321,   978,
+    1062,   143,  1070,   153,   144,   153,   435,  1071,   145,  1010,
+     100,   101,   102,  1291,  1247,   528,  1292,  1293,  1294,  1295,
+    1248,   436,  1251,   542,   926,   927,   928,  1252,   146,   147,
+     148,   149,   150,   151,  1232,  1233,  1234,   543,   125,   126,
+     342,   443,   152,   912,   913,   914,   915,   916,   917,   889,
+     890,   891,   892,   562,   893,   130,   131,  1267,  1259,   444,
+     153,   445,  1268,    91,    92,    93,    94,    95,    96,   449,
+     453,  1160,  1161,  1162,   585,   586,   532,  1309,   153,   454,
+     455,  1270,  1310,  1239,  1240,  1241,   153,   456,   457,   458,
+     459,   460,   461,   462,   463,   465,   466,   467,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   468,   469,
+     473,   474,   114,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   475,   242,   243,   244,   476,   126,   480,   486,
+     487,   488,   494,   501,   502,   503,   506,   512,   513,   128,
+     154,   245,   514,   130,   131,   246,   247,   248,   132,   230,
+     515,   524,   531,   133,   134,   135,   547,   544,   249,   551,
+     153,   252,   250,   553,   138,   304,   552,   240,   555,   556,
+     557,   251,   297,   559,   256,   558,   322,   564,   567,   295,
+     569,   570,   573,   312,   574,   582,   348,   587,   588,   589,
+     590,   257,   368,   591,   324,   595,   370,   592,   253,   593,
+     596,   258,   254,   597,   362,   293,   241,   594,   349,   307,
+     382,   598,   406,   599,   369,   371,   146,   147,   296,   600,
+     323,   601,   313,   602,   603,   604,   605,   606,   259,   611,
+     407,   298,   607,   325,   608,   613,   619,   609,   610,   612,
+     614,   299,   260,   363,   261,   615,   329,   620,   153,   383,
+     616,   621,   626,   617,   255,   624,   330,   300,   618,   622,
+     623,   278,   625,   627,   628,    93,    94,    95,   629,   408,
+     630,   631,   331,   262,  1271,   632,   263,   633,   264,   265,
+     266,   267,   634,   268,   269,   635,   270,   636,   637,   650,
+     638,   271,   639,   640,   272,   641,   273,   274,   275,   276,
+     642,   277,   288,   644,   289,   645,   646,   647,   648,   290,
+     305,   306,   291,   643,   649,   653,   651,   652,   654,   656,
+     657,   658,   664,   665,   824,   661,   659,   126,   825,   826,
+     827,   828,   829,   830,   831,   832,   833,   834,   835,   836,
+     837,   838,   666,   130,   131,   839,   840,   841,   842,   843,
+     667,   668,   662,   660,   669,   670,   154,   314,   230,   671,
+     672,   673,   675,   814,   678,   315,   316,   317,   318,   319,
+     320,   679,   321,   676,   680,   681,   240,   682,   683,   684,
+     342,    91,    92,    93,    94,    95,    96,   685,   687,   688,
+     690,   689,   691,   929,   939,   692,   406,   693,   695,   700,
+     966,   696,   701,   704,   705,   697,   698,   707,   703,   706,
+     708,   935,   940,   950,   407,   241,   100,   101,   102,   103,
+     104,   105,   106,   107,   108,   109,   709,   710,   711,   712,
+     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+     124,   713,   714,   715,   716,   126,   342,   717,   153,   719,
+     936,   941,   951,   408,   130,   131,   720,   128,   722,   723,
+     724,   130,   131,   725,   247,   726,   132,   727,   728,   729,
+     730,   133,   134,   135,   731,   732,   249,   733,   740,   741,
+     250,   742,   743,   744,   745,   746,    30,   749,   755,   251,
+     756,   757,   758,  1088,   764,   759,   760,   761,   762,   763,
+     153,   766,   765,   768,   767,   776,   779,   777,   391,   392,
+     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
+     403,   778,   780,   781,   783,   784,   813,   404,   405,   869,
+     873,   877,   881,   885,   146,   147,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,   901,
+     785,   787,   788,   904,   789,   790,   791,   792,   793,   153,
+     794,   908,   959,   795,   796,   808,   153,   797,   798,   799,
+     974,   994,   995,   996,   800,   997,   802,   803,   804,   810,
+     811,   812,   998,   999,  1000,  1001,  1002,  1003,  1005,  1015,
+    1089,  1014,  1018,  1017,  1020,  1021,  1023,  1024,  1027,  1026,
+    1035,   801,  1034,  1038,  1037,  1039,  1040,  1041,  1042,  1043,
+    1044,  1047,  1048,  1049,  1056,  1058,  1066,  1067,  1068,  1069,
+    1072,  1077,  1076,  1081,  1090,  1079,  1080,  1082,  1084,  1085,
+    1086,  1087,  1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,
+    1100,  1099,  1101,  1102,  1103,  1188,  1189,  1190,  1191,   252,
+    1192,  1193,   348,  1196,  1195,   368,  1199,  1197,  1113,   370,
+     297,  1200,   256,  1163,  1202,  1203,   322,   295,  1169,   386,
+     362,  1117,  1205,   382,   349,  1204,  1152,   369,   371,   257,
+    1140,  1171,  1220,   929,   324,  1168,   253,   939,  1118,   258,
+     254,  1221,  1222,   293,  1225,  1114,  1210,  1226,  1119,  1115,
+    1164,   935,  1151,   966,  1165,   940,   296,  1170,   304,   363,
+     323,   950,   383,  1223,  1212,  1153,   259,  1229,  1211,   298,
+    1172,  1230,  1231,   325,  1236,  1120,   312,  1237,  1154,   299,
+     260,  1238,   261,  1173,  1243,  1244,   329,  1249,  1155,  1121,
+     936,  1122,   255,  1174,   941,   300,   330,  1245,  1246,   278,
+     951,  1116,   307,  1213,  1156,  1250,  1166,  1255,  1139,  1175,
+    1256,   262,   331,  1167,   263,   313,   264,   265,   266,   267,
+    1123,   268,   269,  1124,   270,  1125,  1126,  1127,  1128,   271,
+    1129,  1130,   272,  1131,   273,   274,   275,   276,  1132,   277,
+     288,  1133,   289,  1134,  1135,  1136,  1137,   290,  1138,  1145,
+     291,  1146,  1257,  1143,  1144,  1258,  1147,  1265,  1273,  1148,
+    1274,  1277,  1279,   663,  1260,  1283,  1285,  1305,  1306,  1307,
+    1311,  1315,  1083,   815,   809,  1106,   817,   655,  1104,   982,
+    1198,  1108,  1159,  1187,  1158,  1186,  1261,  1262,   702,  1194,
+    1107,   674,  1272,  1269,  1109,  1281,  1263,  1275,  1278,  1282,
+    1110,  1312,  1284,   305,   306,  1112,   677,  1313,  1314,  1317,
+    1318,  1111,  1185,  1184,   699,   694,   686,  1183,  1228,  1276,
+    1201,  1227,  1206,   718,   958,   816,   721,  1280,   979,  1303,
+    1316,  1219,     0,     0,  1113,     0,     0,     0,     0,  1224,
+    1163,     0,     0,     0,     0,  1169,     0,  1117,     0,     0,
+    1210,     0,  1152,     0,     0,     0,  1140,     0,  1171,     0,
+       0,     0,  1168,     0,  1118,     0,     0,     0,  1212,     0,
+       0,  1114,  1211,     0,  1119,  1115,     0,  1164,  1151,     0,
+       0,  1165,     0,     0,  1170,     0,     0,     0,     0,     0,
+       0,  1153,     0,     0,     0,     0,     0,  1172,     0,     0,
+       0,  1120,     0,     0,  1154,     0,     0,  1213,     0,     0,
+    1173,     0,     0,     0,  1155,  1121,     0,  1122,     0,     0,
+    1174,     0,     0,     0,     0,     0,     0,  1116,     0,     0,
+    1156,     0,     0,  1166,  1139,     0,  1175,     0,     0,     0,
+    1167,     0,     0,     0,     0,     0,  1123,     0,     0,  1124,
+       0,  1125,  1126,  1127,  1128,     0,  1129,  1130,     0,  1131,
+       0,     0,     0,     0,  1132,     0,     0,  1133,     0,  1134,
+    1135,  1136,  1137,     0,  1138,  1145,     0,  1146,     0,  1143,
+    1144,     0,  1147,     0,     0,  1148
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
-      67,    68,    69,    70,    71,    70,    73,    74,    75,    76,
-      72,    74,    64,    74,   727,    69,  1021,    70,    69,    68,
-      69,    70,    71,  1021,    73,    74,  1021,    76,    73,    74,
-     668,   629,    18,   110,   111,    69,   674,     3,     0,    69,
-       6,    69,    69,    69,    70,    71,     5,     7,     7,     7,
-       9,     3,   141,   142,   214,    95,     8,     7,    68,    69,
-      70,    71,     6,    73,    74,     4,    76,   141,   142,    69,
-     110,   111,    69,     7,    71,   152,   153,   154,    32,    33,
-      34,     3,    69,     4,    71,    69,     8,   197,   198,   199,
-     200,     3,    69,     7,     3,    69,     8,     6,    69,   697,
-      71,     7,    15,    16,   214,    69,    19,     7,    69,    22,
-      23,    24,    25,    69,     3,     7,    69,   110,   111,     8,
-      69,    69,     7,    69,    69,   214,    69,    69,    69,     3,
-       3,    69,     6,     3,    69,     8,    39,   214,    69,    69,
-      94,    69,    69,     7,    69,    69,    69,     3,   188,    69,
-     190,   191,     8,    40,    41,    42,   110,   111,   189,   110,
-     111,   192,   193,   194,   195,     7,   159,   160,   161,     3,
-     124,     3,     6,    10,   214,    93,     8,   131,   132,   133,
-     134,   135,   136,     3,   138,     7,     3,    94,     8,     8,
-     176,     8,    95,     3,    97,    98,     4,   110,   111,   102,
-     103,   104,   109,   110,   111,   156,   157,   110,   111,     4,
-      11,    17,    18,    14,   131,   132,   133,   134,   125,   136,
-       4,   214,   129,    12,    13,    26,    20,    21,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,   116,   117,
-     118,   119,  1247,   144,   145,   146,   147,   148,   149,  1247,
-      27,    28,  1247,     4,     3,   214,   215,   216,   217,     8,
-     214,   138,   139,   214,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,     3,
-       3,     8,    93,    94,     8,     8,  1009,    32,    33,    34,
-      35,   214,     4,     3,   105,   106,   107,   214,     8,   110,
-     111,   214,     3,     3,   115,     4,     4,     8,     8,   120,
-     121,   122,   123,   124,     4,    57,    58,    59,     4,   130,
-      65,    66,    67,   178,   179,   180,   181,     4,     3,   140,
-       3,     3,   143,     8,     4,     8,     8,     3,     3,   150,
-     151,     3,     8,     8,   155,     4,     8,   158,    93,    94,
-      95,   162,    95,    96,    97,    98,    99,   100,   101,     3,
-       8,     4,   217,     4,     8,   110,   111,   110,   111,   431,
-     432,   182,   183,   184,   185,   186,   187,     4,     4,     3,
-       3,   126,   127,   128,     8,   196,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,     3,
-       8,    39,     4,   214,     8,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,     4,
-       4,     4,    60,    61,    62,    63,    64,     3,   505,     3,
-       3,     3,     8,     4,     8,     8,     4,   514,     4,     4,
-     214,     4,     4,     4,     4,     4,     4,     4,     4,   526,
-       4,     4,   529,     4,   529,   514,     4,    95,     4,     4,
-       4,     4,   526,   540,     4,   526,   529,   526,     4,   214,
-     529,   214,     3,   550,     8,     4,     4,     4,     4,   556,
-       4,   540,   526,   556,     4,   556,   526,     4,   526,   526,
-     526,   550,     4,   529,   514,   550,     4,   556,     4,   576,
-       4,   556,   217,   217,   540,     4,   526,     4,   217,   529,
-       4,   215,     4,     4,     4,   217,   526,   576,   215,   526,
-     540,   215,   215,   215,   215,     4,     4,   216,   216,   526,
-     550,   216,   526,   540,   215,   215,   556,   215,   217,   526,
-       4,   215,   526,   540,     4,   526,   110,   111,   217,   217,
-     217,     4,   526,   217,   217,   526,   576,     4,   216,   540,
-     526,     4,   215,   526,     4,     4,     4,   526,   526,     4,
-     526,   526,     4,   526,   526,   526,   214,  1225,   526,     4,
-     217,   526,   217,   217,     4,   526,   526,     4,   526,   526,
-       4,   526,   526,   526,     4,   215,   526,     4,     4,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,     4,     4,     4,     4,   217,   217,   182,   183,
-     217,     4,     4,     4,     4,     4,   217,   217,   215,   215,
-       4,     4,     4,     4,     4,     4,   215,     4,     4,     4,
-       4,     3,   719,     4,   721,     4,     4,     4,     4,     4,
-     214,     4,     4,     4,     4,     4,   718,     4,     4,     4,
-     215,     4,   721,     4,     4,   217,     4,    30,    31,    32,
-      33,    34,    35,     4,     4,   217,   217,   215,   217,   756,
-     757,     4,   759,   215,   217,   215,   763,     4,     4,     4,
-       4,     4,   217,   215,   217,     4,     7,   756,   757,   758,
-     759,   721,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,     7,     7,     7,     7,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,   214,    90,    91,    92,
-     214,    94,   214,     7,     5,     5,   756,   757,   758,   759,
-     214,   214,   214,   106,     5,   108,     5,   110,   111,   112,
-     113,   114,   115,   214,     5,     7,   214,   120,   121,   122,
-       5,     5,   125,     5,     5,   214,   129,   130,     7,     7,
-       7,     7,     7,   214,   137,     5,     7,     5,   214,     5,
-     214,   214,     7,   214,   214,   214,   214,   214,   214,   177,
-     214,   214,   214,   214,     5,   214,   214,     7,   214,   214,
-       7,   214,   214,   214,     7,   214,   214,     7,     7,   214,
-     214,   214,   214,   214,     7,     7,     7,     7,     7,   182,
-     183,     4,     4,     4,     4,     4,    30,    31,    32,    33,
-      34,    35,     4,     4,     4,     4,     4,     4,   214,     3,
-       6,     6,     3,     6,     6,     3,     6,     3,     3,     6,
-       3,   214,     6,     4,     4,     4,     4,     4,     4,     4,
-       4,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,     4,     4,     4,     4,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,     4,     4,     4,     8,
-      94,    95,     6,     3,     6,     4,     4,     4,     4,     4,
-       4,     4,   106,   215,     4,   215,   110,   111,     4,   113,
-     217,   115,   217,   215,   215,   215,   120,   121,   122,   215,
-       4,   125,     4,     4,   215,   129,   215,   215,   215,   215,
-     215,   215,   215,   137,   215,  1012,   215,   217,  1015,   215,
-       4,  1018,   217,     4,  1021,  1018,  1021,  1018,  1012,  1026,
-     215,  1012,  1029,  1012,  1026,  1032,  1015,  1021,  1021,  1018,
-    1015,     4,  1021,  1018,   217,     6,  1021,  1026,  1012,  1046,
-    1029,  1026,  1012,  1050,  1012,  1012,  1012,  1021,   182,   183,
-       3,  1021,  1059,  1021,  1021,  1021,  1026,  1046,  1026,  1066,
-    1026,  1050,  1012,  1029,  1071,  1015,  1071,  1056,  1018,   217,
-    1059,  1021,  1012,   217,  1059,  1012,  1026,     4,  1071,  1029,
-     214,  1021,  1071,     8,  1021,  1012,   217,   214,  1012,  1026,
-     214,     8,  1029,     4,  1021,  1012,  1046,  1021,  1012,  1026,
-    1050,  1012,  1029,     8,  1021,  1071,  1056,  1021,  1012,  1059,
-    1021,  1012,  1026,     3,     8,  1026,  1012,  1021,  1029,  1012,
-    1021,  1071,  1026,  1012,  1012,  1021,  1012,  1012,  1021,  1012,
-    1012,  1012,  1021,  1021,  1012,  1021,  1021,  1012,  1021,  1021,
-    1021,  1012,  1012,  1021,  1012,  1012,  1021,  1012,  1012,  1012,
-    1021,  1021,  1012,  1021,  1021,   214,  1021,  1021,  1021,   214,
-     214,  1021,   214,   214,   214,     4,     4,     4,     4,   214,
-       4,   214,     5,   214,     4,     7,     4,     4,     4,     4,
-     719,   505,   214,   214,   710,   697,   721,   215,   217,   214,
-     214,   214,   984,  1024,   215,   217,   215,   214,   214,   514,
-    1011,  1006,  1046,   809,  1034,  1041,  1032,  1014,  1023,  1201,
-    1012,  1247,   526,   529,  1017,  1015,  1071,  1073,   780,  1020,
-    1018,   550,  1031,  1029,  1263,  1253,  1050,  1060,   556,   559,
-    1027,   759,   540,  1056,  1285,  1305,    -1,    -1,  1066,    -1,
-    1247,   720,  1247,    -1,    -1,    -1,  1253,    -1,    -1,   576,
-      -1,  1253,    -1,  1247,  1247,   580,  1263,    -1,  1247,    -1,
-      -1,    -1,  1247,    -1,  1253,    -1,    -1,    -1,  1253,    -1,
-      -1,    -1,    -1,  1247,  1263,    -1,    -1,  1247,  1263,  1247,
-    1247,  1247,    -1,  1253,    -1,  1253,    -1,  1253,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1247,    -1,    -1,
-      -1,    -1,    -1,  1253,    -1,    -1,    -1,  1247,    -1,    -1,
-    1247,    -1,    -1,  1263,    -1,    -1,  1253,    -1,    -1,    -1,
-    1247,    -1,    -1,  1247,    -1,    -1,  1253,    -1,    -1,    -1,
-    1247,    -1,    -1,  1247,    -1,    -1,  1247,    -1,    -1,  1253,
-      -1,    -1,  1253,  1247,    -1,    -1,  1247,    -1,    -1,  1253,
-      -1,  1247,    -1,    -1,  1247,    -1,    -1,    -1,  1247,  1247,
-      -1,  1247,  1247,    -1,  1247,  1247,  1247,    -1,    -1,  1247,
-      -1,    -1,  1247,    -1,    -1,    -1,  1247,  1247,    -1,  1247,
-    1247,    -1,  1247,  1247,  1247,    -1,    -1,  1247
+      67,    68,    69,    70,    71,    64,    73,    74,    75,    76,
+      72,    74,   731,    69,  1025,    69,   671,  1025,  1025,    68,
+      69,    70,    71,   678,    73,    74,     3,    76,    73,    74,
+      74,     8,    69,   215,    95,     0,     5,    18,     7,    69,
+       9,     3,    69,    69,     6,    93,    69,    70,    71,   110,
+     111,     7,     3,   142,   143,    12,    13,     8,    68,    69,
+      70,    71,     3,    73,    74,     3,    76,   632,     3,    69,
+       8,     7,    69,     8,    71,    95,    96,    97,    98,    99,
+     100,   101,    69,    69,    71,    69,   110,   111,     3,     3,
+     110,   111,     3,     8,     8,    69,     3,     8,    69,     7,
+      71,     8,    69,    15,    16,     3,     3,    19,     6,     6,
+      22,    23,    24,    25,    69,    17,    18,    69,     3,    69,
+      69,    69,    69,     8,    69,    69,   215,    69,   189,    39,
+     191,   192,    69,   157,   158,    69,   701,    69,    69,    69,
+      69,     3,    69,    69,     7,    69,     8,     3,    70,    70,
+      69,     4,     8,    69,   215,     3,    11,   110,   111,    14,
+       8,    20,    21,   179,   180,   181,   182,   198,   199,   200,
+     201,    26,   142,   143,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,   215,    95,     3,    97,    98,     6,
+      10,   215,   102,   103,   104,   215,   177,     7,   110,   111,
+     110,   111,   218,   116,   117,   118,   119,   160,   161,   162,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,     7,     3,     3,    93,    94,
+    1251,     8,     8,  1251,  1251,     7,   215,   216,   217,   218,
+     105,   106,   107,     3,     3,   110,   111,    94,     8,     8,
+     115,     7,   215,    27,    28,   120,   121,   122,   123,   124,
+       3,     7,   109,   110,   111,     8,   131,    32,    33,    34,
+      35,   110,   111,     7,     7,     3,   141,     7,   125,   144,
+       8,     6,   129,   130,  1013,     3,   151,   152,   139,   140,
+       8,   156,     3,   215,   159,   215,     8,     8,   163,     3,
+      65,    66,    67,   190,     8,     3,   193,   194,   195,   196,
+       8,     3,     3,     8,   153,   154,   155,     8,   183,   184,
+     185,   186,   187,   188,    40,    41,    42,     3,    93,    94,
+      95,     4,   197,   145,   146,   147,   148,   149,   150,   132,
+     133,   134,   135,     3,   137,   110,   111,     3,     8,     4,
+     215,     4,     8,    30,    31,    32,    33,    34,    35,     4,
+       4,   126,   127,   128,   433,   434,     3,     3,   215,     4,
+       4,     8,     8,    57,    58,    59,   215,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,     4,     4,
+       4,     4,    79,    80,    81,    82,    83,    84,    85,    86,
+      87,    88,     4,    90,    91,    92,     4,    94,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   106,
+     507,   108,     4,   110,   111,   112,   113,   114,   115,   516,
+       4,     4,     4,   120,   121,   122,     4,     8,   125,     4,
+     215,   528,   129,     3,   131,   532,     8,   516,     4,     4,
+       4,   138,   528,     3,   528,     8,   543,     4,     4,   528,
+       4,     4,     4,   532,     4,     4,   553,   215,     4,     4,
+       4,   528,   559,     4,   543,     4,   559,   218,   528,   218,
+       4,   528,   528,     4,   553,   528,   516,   218,   553,   532,
+     559,   216,   579,     4,   559,   559,   183,   184,   528,     4,
+     543,     4,   532,   216,   216,   216,   216,   216,   528,   216,
+     579,   528,   218,   543,   217,     4,     4,   217,   217,   216,
+     216,   528,   528,   553,   528,   216,   543,     4,   215,   559,
+     218,     4,     4,   218,   528,   217,   543,   528,   218,   218,
+     218,   528,   218,     4,     4,    32,    33,    34,   216,   579,
+       4,     4,   543,   528,  1229,     4,   528,     4,   528,   528,
+     528,   528,     4,   528,   528,   218,   528,   218,   218,   218,
+       4,   528,     4,     4,   528,     4,   528,   528,   528,   528,
+       4,   528,   528,     4,   528,     4,     4,     4,     4,   528,
+     532,   532,   528,   216,     4,     4,   218,   218,     4,     4,
+       4,     4,     4,     4,    39,   216,   218,    94,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,     4,   110,   111,    60,    61,    62,    63,    64,
+       4,     4,   216,   218,     4,   216,   723,   124,   725,     4,
+       4,     4,     4,   722,     4,   132,   133,   134,   135,   136,
+     137,     4,   139,   216,     4,     4,   725,     4,     4,     4,
+      95,    30,    31,    32,    33,    34,    35,     4,     4,     4,
+       4,   216,     4,   760,   761,     4,   763,   218,     4,     4,
+     767,   218,     4,     4,     4,   218,   218,     4,   218,   216,
+     216,   760,   761,   762,   763,   725,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,   216,     4,     4,   218,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+      89,   218,     4,     4,     4,    94,    95,     4,   215,     4,
+     760,   761,   762,   763,   110,   111,   216,   106,     4,     7,
+       7,   110,   111,     7,   113,     7,   115,   215,   215,   215,
+       7,   120,   121,   122,     7,     5,   125,   215,   215,   215,
+     129,     5,     5,     5,   215,     5,     7,   215,     5,   138,
+       5,     5,     5,   216,   215,     7,     7,     7,     7,     7,
+     215,     5,   215,     5,     7,   215,     5,   215,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   215,   215,   215,   215,     7,     5,   183,   184,     7,
+       7,     7,     7,     7,   183,   184,   202,   203,   204,   205,
+     206,   207,   208,   209,   210,   211,   212,   213,   214,     7,
+     215,   215,   215,     7,   215,   215,   215,   215,   215,   215,
+     215,     7,     7,   215,   215,   178,   215,   215,   215,   215,
+       7,     4,     4,     4,   215,     4,   215,   215,   215,   215,
+     215,   215,     4,     4,     4,     4,     4,     4,     4,     3,
+     218,     6,     3,     6,     6,     3,     6,     3,     3,     6,
+       3,   701,     6,     3,     6,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+     215,     3,     6,     4,   216,     8,     6,     4,     4,     4,
+       4,     4,   218,   216,   216,   216,   216,   216,   216,     4,
+       4,   216,     4,     4,     4,   216,   216,   216,   216,  1016,
+     216,   216,  1019,   216,   218,  1022,     4,   216,  1025,  1022,
+    1016,     4,  1016,  1030,   218,     4,  1033,  1016,  1030,  1036,
+    1019,  1025,     4,  1022,  1019,   216,  1025,  1022,  1022,  1016,
+    1025,  1030,   218,  1050,  1033,  1030,  1016,  1054,  1025,  1016,
+    1016,   218,   218,  1016,     6,  1025,  1063,     3,  1025,  1025,
+    1030,  1050,  1025,  1070,  1030,  1054,  1016,  1030,  1075,  1019,
+    1033,  1060,  1022,   218,  1063,  1025,  1016,     4,  1063,  1016,
+    1030,   215,   215,  1033,   215,  1025,  1075,   215,  1025,  1016,
+    1016,   215,  1016,  1030,   215,   215,  1033,     8,  1025,  1025,
+    1050,  1025,  1016,  1030,  1054,  1016,  1033,   215,   215,  1016,
+    1060,  1025,  1075,  1063,  1025,     8,  1030,     4,  1025,  1030,
+       8,  1016,  1033,  1030,  1016,  1075,  1016,  1016,  1016,  1016,
+    1025,  1016,  1016,  1025,  1016,  1025,  1025,  1025,  1025,  1016,
+    1025,  1025,  1016,  1025,  1016,  1016,  1016,  1016,  1025,  1016,
+    1016,  1025,  1016,  1025,  1025,  1025,  1025,  1016,  1025,  1025,
+    1016,  1025,     3,  1025,  1025,     8,  1025,     4,     4,  1025,
+       4,     4,     4,   516,   215,     5,     7,     4,     4,     4,
+       4,     4,   988,   723,   714,  1015,   725,   507,  1010,   813,
+    1050,  1018,  1028,  1038,  1027,  1036,   215,   215,   562,  1045,
+    1016,   528,  1251,   215,  1019,   215,  1205,   218,   216,   215,
+    1021,   218,   215,  1075,  1075,  1024,   532,   216,   216,   215,
+     215,  1022,  1035,  1033,   559,   553,   543,  1031,  1077,  1257,
+    1054,  1075,  1060,   579,   763,   724,   583,  1267,   784,  1289,
+    1309,  1064,    -1,    -1,  1251,    -1,    -1,    -1,    -1,  1070,
+    1257,    -1,    -1,    -1,    -1,  1257,    -1,  1251,    -1,    -1,
+    1267,    -1,  1251,    -1,    -1,    -1,  1251,    -1,  1257,    -1,
+      -1,    -1,  1257,    -1,  1251,    -1,    -1,    -1,  1267,    -1,
+      -1,  1251,  1267,    -1,  1251,  1251,    -1,  1257,  1251,    -1,
+      -1,  1257,    -1,    -1,  1257,    -1,    -1,    -1,    -1,    -1,
+      -1,  1251,    -1,    -1,    -1,    -1,    -1,  1257,    -1,    -1,
+      -1,  1251,    -1,    -1,  1251,    -1,    -1,  1267,    -1,    -1,
+    1257,    -1,    -1,    -1,  1251,  1251,    -1,  1251,    -1,    -1,
+    1257,    -1,    -1,    -1,    -1,    -1,    -1,  1251,    -1,    -1,
+    1251,    -1,    -1,  1257,  1251,    -1,  1257,    -1,    -1,    -1,
+    1257,    -1,    -1,    -1,    -1,    -1,  1251,    -1,    -1,  1251,
+      -1,  1251,  1251,  1251,  1251,    -1,  1251,  1251,    -1,  1251,
+      -1,    -1,    -1,    -1,  1251,    -1,    -1,  1251,    -1,  1251,
+    1251,  1251,  1251,    -1,  1251,  1251,    -1,  1251,    -1,  1251,
+    1251,    -1,  1251,    -1,    -1,  1251
   };
 
   const short
   Dhcp4Parser::yystos_[] =
   {
-       0,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,     0,     5,
-       7,     9,   214,   215,   216,   217,   233,   234,   235,   240,
-       7,   249,     7,   254,     7,   305,     7,   418,     7,   502,
-       7,   518,     7,   453,     7,   459,     7,   483,     7,   394,
-       7,   585,     7,   616,   241,   236,   250,   255,   306,   419,
-     503,   519,   454,   460,   484,   395,   586,   617,   233,   242,
-     243,   214,   238,   239,    10,   251,   253,    11,    14,    26,
+       0,   202,   203,   204,   205,   206,   207,   208,   209,   210,
+     211,   212,   213,   214,   220,   221,   222,   223,   224,   225,
+     226,   227,   228,   229,   230,   231,   232,   233,     0,     5,
+       7,     9,   215,   216,   217,   218,   234,   235,   236,   241,
+       7,   250,     7,   255,     7,   306,     7,   419,     7,   503,
+       7,   520,     7,   454,     7,   460,     7,   484,     7,   395,
+       7,   587,     7,   618,   242,   237,   251,   256,   307,   420,
+     504,   521,   455,   461,   485,   396,   588,   619,   234,   243,
+     244,   215,   239,   240,    10,   252,   254,    11,    14,    26,
       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       85,    86,    87,    88,    89,    93,    94,   105,   106,   107,
-     110,   111,   115,   120,   121,   122,   123,   124,   130,   140,
-     143,   150,   151,   155,   158,   162,   182,   183,   184,   185,
-     186,   187,   196,   214,   248,   256,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   271,
-     272,   274,   275,   276,   277,   278,   279,   280,   283,   285,
-     287,   288,   289,   290,   292,   294,   295,   296,   297,   298,
-     299,   300,   301,   319,   321,   329,   331,   372,   381,   388,
-     402,   412,   436,   437,   438,   439,   443,   451,   477,   508,
-     510,   512,   523,   525,   527,   550,   564,   565,   573,   583,
-     614,   623,   647,    15,    16,    19,    22,    23,    24,    25,
-     248,   303,   304,   307,   309,   312,   315,   316,   317,   318,
-     508,   510,    90,    91,    92,   108,   112,   113,   114,   125,
-     129,   137,   248,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   272,   275,   276,   277,   278,   279,   280,
-     283,   285,   287,   288,   289,   290,   292,   294,   300,   420,
-     421,   422,   424,   426,   428,   430,   432,   434,   436,   437,
-     438,   439,   442,   477,   496,   508,   510,   512,   523,   525,
-     527,   547,   109,   248,   432,   434,   477,   504,   505,   506,
-     508,   510,   124,   131,   132,   133,   134,   135,   136,   138,
-     248,   477,   508,   510,   520,   521,   522,   523,   525,   527,
-     529,   533,   535,   537,   539,   541,   543,   545,   451,    39,
-      95,    97,    98,   102,   103,   104,   248,   349,   461,   462,
-     463,   464,   465,   466,   467,   469,   471,   473,   474,   476,
-     508,   510,    96,    99,   100,   101,   248,   349,   465,   471,
-     485,   486,   487,   488,   489,   491,   492,   493,   494,   495,
-     508,   510,   141,   142,   248,   396,   397,   398,   400,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   182,   183,   248,   508,   510,   587,   588,   589,
-     590,   592,   593,   595,   596,   597,   600,   602,   604,   605,
-     606,   608,   610,   612,    12,    13,   618,   619,   620,   622,
-       6,     3,     4,     8,     3,   252,     3,     8,   615,   302,
-     322,     4,     4,     4,   524,   526,   528,     4,   320,   330,
-     332,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,   270,     4,     4,     4,     4,     4,   281,   284,
-     286,     4,     4,     4,     4,   413,   452,   478,     4,   273,
-     444,   509,   511,   440,     4,     4,     4,   373,   551,   513,
-     389,   403,     4,   382,   566,   574,   584,   291,   293,     4,
-       4,     4,   624,   648,     4,     3,     8,   308,   310,   313,
-       4,     4,     4,     4,     3,     8,   425,   427,   429,   497,
-     423,   431,     4,   435,   433,   548,     3,     8,   507,     3,
-       8,   546,   534,   536,   540,   538,   544,   542,   530,     8,
-       3,     8,   468,   350,     4,   472,   470,   475,     4,     8,
-       3,   490,     4,     4,     4,     8,     3,   399,   401,     3,
-       8,     4,   603,   591,     4,   594,     4,     4,   598,   601,
-       4,     4,   607,   609,   611,   613,     3,     8,   621,     4,
-       3,     8,   233,   233,   214,     4,     4,     4,     4,   217,
-     217,   217,     4,     4,     4,   215,     4,     4,     4,   215,
-     215,   215,   215,   215,   217,   216,   216,   216,   215,   215,
-       4,   215,   215,   217,   217,   217,     4,     4,     4,   217,
-     217,   216,   217,     4,     4,     4,   215,     4,     4,     4,
-       4,     4,   217,   217,   217,     4,     4,     4,     4,     4,
-     215,     4,     4,     4,     4,     4,     4,   217,   217,   217,
-       4,     4,   257,     4,     4,     4,   217,   217,   215,   215,
-     304,     4,     4,     4,     4,     4,     4,   215,     4,     4,
-       4,   421,     4,   505,     4,     4,     4,     4,     4,     4,
-       4,     4,   522,     4,     4,   215,     4,     4,     4,   217,
-     463,     4,   217,   217,   217,   487,     4,     4,   397,   217,
-       4,     4,   215,     4,   215,   215,     4,     4,   217,   217,
-       4,     4,     4,     4,   588,     4,   215,   619,     4,     7,
-       7,     7,     7,   214,   214,   214,     7,     7,     5,   214,
-     178,   179,   180,   181,   217,   282,   214,   214,     5,     5,
-       5,   214,     5,   235,   237,   214,   116,   117,   118,   119,
-     441,     5,     5,     5,     5,     7,     7,     7,     7,     7,
-     214,   214,     5,     7,     5,   244,    17,    18,   311,    20,
-      21,   314,   214,   214,   214,     5,   214,   214,   244,   214,
-       7,   214,   244,   214,   214,   214,   214,   214,   214,   214,
-     214,   214,   214,   214,   214,   214,   214,   237,   214,   214,
-     214,    18,   176,   599,   177,   282,   214,   214,   214,     5,
-     233,   256,   618,   303,    27,    28,   323,   324,   325,   327,
-      39,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    60,    61,    62,    63,    64,
-     248,   337,   338,   339,   342,   344,   346,   348,   349,   351,
-     352,   353,   354,   355,   356,   357,   358,   359,   360,   363,
-     364,   366,   368,   370,   337,     7,   333,   334,   335,     7,
-     414,   415,   416,     7,   455,   456,   457,     7,   479,   480,
-     481,     7,   445,   446,   447,   131,   132,   133,   134,   136,
-     374,   375,   376,   377,   378,   379,   380,     7,   552,   553,
-       7,   514,   515,   516,     7,   390,   391,   392,   144,   145,
-     146,   147,   148,   149,   404,   405,   406,   407,   408,   409,
-     410,   411,   152,   153,   154,   248,   383,   384,   385,   386,
-     387,   508,   510,   156,   157,   248,   508,   510,   567,   568,
-     569,   571,   159,   160,   161,   214,   508,   510,   575,   576,
-     577,   578,   580,   581,   587,     7,   625,   626,   197,   198,
-     199,   200,   248,   649,   650,   651,   652,   653,   654,   245,
-       7,   498,   499,   500,   139,   529,   531,   549,   333,     8,
-       8,     8,   326,   328,     3,     8,   340,   343,   345,   347,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     361,     4,   365,   367,   369,   371,     3,     8,     8,   336,
-       6,     3,   417,     6,     3,   458,     6,     3,   482,     6,
-       3,   448,     6,     3,     3,     6,   554,     3,     6,   517,
-       6,     3,   393,     6,     3,     4,     4,     4,     4,     4,
-       4,     3,     8,     4,     4,     4,     3,     8,   570,   572,
-       3,     8,     4,   579,     4,   582,     3,     8,     8,   627,
-       3,     6,     4,     4,     4,     4,     3,     8,   214,   246,
-     247,   501,     6,     3,   532,     8,     6,     4,     4,   324,
-       4,     4,     4,     4,   215,   217,   215,   217,   215,   215,
-     215,   215,   215,   215,     4,   215,     4,     4,     4,     4,
-     338,   337,   335,   420,   416,   461,   457,   485,   481,   248,
-     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-     272,   275,   276,   277,   278,   279,   280,   283,   285,   287,
-     288,   289,   290,   292,   294,   300,   349,   412,   430,   432,
-     434,   436,   437,   438,   439,   449,   450,   477,   508,   510,
-     523,   525,   527,   547,   447,   375,   126,   127,   128,   248,
-     258,   259,   260,   300,   349,   451,   477,   508,   510,   523,
-     525,   527,   555,   556,   557,   558,   559,   561,   563,   553,
-     520,   516,   396,   392,   215,   215,   215,   215,   215,   215,
-     405,   217,   215,   215,   384,     4,     4,   568,   217,     4,
-     215,     4,   576,   188,   190,   191,   248,   349,   508,   510,
-     628,   629,   630,   631,   633,   626,   217,   217,   217,   217,
-     650,     6,     3,   504,   500,     4,   214,   214,    40,    41,
-      42,   341,   214,   214,   214,    57,    58,    59,   362,   214,
-     214,   214,   214,     8,     8,     8,     8,     3,     8,   560,
-     562,     4,     8,     3,     8,     8,   214,   214,   214,   233,
-     634,     4,   632,     3,     8,   214,     8,   244,   450,     4,
-       4,   217,   557,     4,   215,     4,   629,   214,   214,     5,
-     214,     7,   635,   636,   637,     3,     6,   189,   192,   193,
-     194,   195,   638,   639,   640,   642,   643,   644,   645,   636,
-     641,     4,     4,     4,   646,     3,     8,     4,   217,   215,
-     215,     4,   639,   214,   214
+     110,   111,   115,   120,   121,   122,   123,   124,   131,   141,
+     144,   151,   152,   156,   159,   163,   183,   184,   185,   186,
+     187,   188,   197,   215,   249,   257,   258,   259,   260,   261,
+     262,   263,   264,   265,   266,   267,   268,   269,   270,   272,
+     273,   275,   276,   277,   278,   279,   280,   281,   284,   286,
+     288,   289,   290,   291,   293,   295,   296,   297,   298,   299,
+     300,   301,   302,   320,   322,   330,   332,   373,   382,   389,
+     403,   413,   437,   438,   439,   440,   444,   452,   478,   510,
+     512,   514,   525,   527,   529,   552,   566,   567,   575,   585,
+     616,   625,   649,    15,    16,    19,    22,    23,    24,    25,
+     249,   304,   305,   308,   310,   313,   316,   317,   318,   319,
+     510,   512,    90,    91,    92,   108,   112,   113,   114,   125,
+     129,   138,   249,   259,   260,   261,   262,   263,   264,   265,
+     266,   267,   268,   273,   276,   277,   278,   279,   280,   281,
+     284,   286,   288,   289,   290,   291,   293,   295,   301,   421,
+     422,   423,   425,   427,   429,   431,   433,   435,   437,   438,
+     439,   440,   443,   478,   497,   510,   512,   514,   525,   527,
+     529,   549,   109,   130,   249,   433,   435,   478,   505,   506,
+     507,   509,   510,   512,   124,   132,   133,   134,   135,   136,
+     137,   139,   249,   478,   510,   512,   522,   523,   524,   525,
+     527,   529,   531,   535,   537,   539,   541,   543,   545,   547,
+     452,    39,    95,    97,    98,   102,   103,   104,   249,   350,
+     462,   463,   464,   465,   466,   467,   468,   470,   472,   474,
+     475,   477,   510,   512,    96,    99,   100,   101,   249,   350,
+     466,   472,   486,   487,   488,   489,   490,   492,   493,   494,
+     495,   496,   510,   512,   142,   143,   249,   397,   398,   399,
+     401,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   183,   184,   249,   510,   512,   589,
+     590,   591,   592,   594,   595,   597,   598,   599,   602,   604,
+     606,   607,   608,   610,   612,   614,    12,    13,   620,   621,
+     622,   624,     6,     3,     4,     8,     3,   253,     3,     8,
+     617,   303,   323,     4,     4,     4,   526,   528,   530,     4,
+     321,   331,   333,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   271,     4,     4,     4,     4,     4,
+     282,   285,   287,     4,     4,     4,     4,   414,   453,   479,
+       4,   274,   445,   511,   513,   441,     4,     4,     4,   374,
+     553,   515,   390,   404,     4,   383,   568,   576,   586,   292,
+     294,     4,     4,     4,   626,   650,     4,     3,     8,   309,
+     311,   314,     4,     4,     4,     4,     3,     8,   426,   428,
+     430,   498,   424,   432,     4,   436,   434,   550,     3,     8,
+     508,     4,     3,     8,   548,   536,   538,   542,   540,   546,
+     544,   532,     8,     3,     8,   469,   351,     4,   473,   471,
+     476,     4,     8,     3,   491,     4,     4,     4,     8,     3,
+     400,   402,     3,     8,     4,   605,   593,     4,   596,     4,
+       4,   600,   603,     4,     4,   609,   611,   613,   615,     3,
+       8,   623,     4,     3,     8,   234,   234,   215,     4,     4,
+       4,     4,   218,   218,   218,     4,     4,     4,   216,     4,
+       4,     4,   216,   216,   216,   216,   216,   218,   217,   217,
+     217,   216,   216,     4,   216,   216,   218,   218,   218,     4,
+       4,     4,   218,   218,   217,   218,     4,     4,     4,   216,
+       4,     4,     4,     4,     4,   218,   218,   218,     4,     4,
+       4,     4,     4,   216,     4,     4,     4,     4,     4,     4,
+     218,   218,   218,     4,     4,   258,     4,     4,     4,   218,
+     218,   216,   216,   305,     4,     4,     4,     4,     4,     4,
+     216,     4,     4,     4,   422,     4,   216,   506,     4,     4,
+       4,     4,     4,     4,     4,     4,   524,     4,     4,   216,
+       4,     4,     4,   218,   464,     4,   218,   218,   218,   488,
+       4,     4,   398,   218,     4,     4,   216,     4,   216,   216,
+       4,     4,   218,   218,     4,     4,     4,     4,   590,     4,
+     216,   621,     4,     7,     7,     7,     7,   215,   215,   215,
+       7,     7,     5,   215,   179,   180,   181,   182,   218,   283,
+     215,   215,     5,     5,     5,   215,     5,   236,   238,   215,
+     116,   117,   118,   119,   442,     5,     5,     5,     5,     7,
+       7,     7,     7,     7,   215,   215,     5,     7,     5,   245,
+      17,    18,   312,    20,    21,   315,   215,   215,   215,     5,
+     215,   215,   245,   215,     7,   215,   245,   215,   215,   215,
+     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
+     215,   238,   215,   215,   215,    18,   177,   601,   178,   283,
+     215,   215,   215,     5,   234,   257,   620,   304,    27,    28,
+     324,   325,   326,   328,    39,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    60,
+      61,    62,    63,    64,   249,   338,   339,   340,   343,   345,
+     347,   349,   350,   352,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   364,   365,   367,   369,   371,   338,     7,
+     334,   335,   336,     7,   415,   416,   417,     7,   456,   457,
+     458,     7,   480,   481,   482,     7,   446,   447,   448,   132,
+     133,   134,   135,   137,   375,   376,   377,   378,   379,   380,
+     381,     7,   554,   555,     7,   516,   517,   518,     7,   391,
+     392,   393,   145,   146,   147,   148,   149,   150,   405,   406,
+     407,   408,   409,   410,   411,   412,   153,   154,   155,   249,
+     384,   385,   386,   387,   388,   510,   512,   157,   158,   249,
+     510,   512,   569,   570,   571,   573,   160,   161,   162,   215,
+     510,   512,   577,   578,   579,   580,   582,   583,   589,     7,
+     627,   628,   198,   199,   200,   201,   249,   651,   652,   653,
+     654,   655,   656,   246,     7,   499,   500,   501,   140,   531,
+     533,   551,   334,     8,     8,     8,   327,   329,     3,     8,
+     341,   344,   346,   348,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   362,     4,   366,   368,   370,   372,
+       3,     8,     8,   337,     6,     3,   418,     6,     3,   459,
+       6,     3,   483,     6,     3,   449,     6,     3,     3,     6,
+     556,     3,     6,   519,     6,     3,   394,     6,     3,     4,
+       4,     4,     4,     4,     4,     3,     8,     4,     4,     4,
+       3,     8,   572,   574,     3,     8,     4,   581,     4,   584,
+       3,     8,     8,   629,     3,     6,     4,     4,     4,     4,
+       3,     8,   215,   247,   248,   502,     6,     3,   534,     8,
+       6,     4,     4,   325,     4,     4,     4,     4,   216,   218,
+     216,   218,   216,   216,   216,   216,   216,   216,     4,   216,
+       4,     4,     4,     4,   339,   338,   336,   421,   417,   462,
+     458,   486,   482,   249,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   273,   276,   277,   278,   279,   280,
+     281,   284,   286,   288,   289,   290,   291,   293,   295,   301,
+     350,   413,   431,   433,   435,   437,   438,   439,   440,   450,
+     451,   478,   510,   512,   525,   527,   529,   549,   448,   376,
+     126,   127,   128,   249,   259,   260,   261,   301,   350,   452,
+     478,   510,   512,   525,   527,   529,   557,   558,   559,   560,
+     561,   563,   565,   555,   522,   518,   397,   393,   216,   216,
+     216,   216,   216,   216,   406,   218,   216,   216,   385,     4,
+       4,   570,   218,     4,   216,     4,   578,   189,   191,   192,
+     249,   350,   510,   512,   630,   631,   632,   633,   635,   628,
+     218,   218,   218,   218,   652,     6,     3,   505,   501,     4,
+     215,   215,    40,    41,    42,   342,   215,   215,   215,    57,
+      58,    59,   363,   215,   215,   215,   215,     8,     8,     8,
+       8,     3,     8,   562,   564,     4,     8,     3,     8,     8,
+     215,   215,   215,   234,   636,     4,   634,     3,     8,   215,
+       8,   245,   451,     4,     4,   218,   559,     4,   216,     4,
+     631,   215,   215,     5,   215,     7,   637,   638,   639,     3,
+       6,   190,   193,   194,   195,   196,   640,   641,   642,   644,
+     645,   646,   647,   638,   643,     4,     4,     4,   648,     3,
+       8,     4,   218,   216,   216,     4,   641,   215,   215
   };
 
   const short
   Dhcp4Parser::yyr1_[] =
   {
-       0,   218,   220,   219,   221,   219,   222,   219,   223,   219,
-     224,   219,   225,   219,   226,   219,   227,   219,   228,   219,
-     229,   219,   230,   219,   231,   219,   232,   219,   233,   233,
-     233,   233,   233,   233,   233,   234,   236,   235,   237,   238,
-     238,   239,   239,   239,   241,   240,   242,   242,   243,   243,
-     243,   245,   244,   246,   246,   247,   247,   247,   248,   250,
-     249,   252,   251,   251,   253,   255,   254,   256,   256,   256,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-     257,   257,   257,   257,   257,   257,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   270,   269,
-     271,   273,   272,   274,   275,   276,   277,   278,   279,   281,
-     280,   282,   282,   282,   282,   282,   284,   283,   286,   285,
-     287,   288,   289,   291,   290,   293,   292,   294,   295,   296,
-     297,   298,   299,   300,   302,   301,   303,   303,   303,   304,
-     304,   304,   304,   304,   304,   304,   304,   304,   304,   306,
-     305,   308,   307,   310,   309,   311,   311,   313,   312,   314,
-     314,   315,   316,   317,   318,   320,   319,   322,   321,   323,
-     323,   323,   324,   324,   326,   325,   328,   327,   330,   329,
-     332,   331,   333,   333,   334,   334,   334,   336,   335,   337,
-     337,   337,   338,   338,   338,   338,   338,   338,   338,   338,
-     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
-     338,   338,   338,   338,   340,   339,   341,   341,   341,   343,
-     342,   345,   344,   347,   346,   348,   350,   349,   351,   352,
-     353,   354,   355,   356,   357,   358,   359,   361,   360,   362,
-     362,   362,   363,   365,   364,   367,   366,   369,   368,   371,
-     370,   373,   372,   374,   374,   374,   375,   375,   375,   375,
-     375,   376,   377,   378,   379,   380,   382,   381,   383,   383,
-     383,   384,   384,   384,   384,   384,   384,   385,   386,   387,
-     389,   388,   390,   390,   391,   391,   391,   393,   392,   395,
-     394,   396,   396,   396,   396,   397,   397,   399,   398,   401,
-     400,   403,   402,   404,   404,   404,   405,   405,   405,   405,
-     405,   405,   406,   407,   408,   409,   410,   411,   413,   412,
-     414,   414,   415,   415,   415,   417,   416,   419,   418,   420,
-     420,   420,   421,   421,   421,   421,   421,   421,   421,   421,
-     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
-     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
-     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
-     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
-     423,   422,   425,   424,   427,   426,   429,   428,   431,   430,
-     433,   432,   435,   434,   436,   437,   438,   440,   439,   441,
-     441,   441,   441,   442,   444,   443,   445,   445,   446,   446,
-     446,   448,   447,   449,   449,   449,   450,   450,   450,   450,
-     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
-     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
-     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
-     450,   450,   450,   450,   450,   450,   450,   450,   450,   452,
-     451,   454,   453,   455,   455,   456,   456,   456,   458,   457,
-     460,   459,   461,   461,   462,   462,   462,   463,   463,   463,
-     463,   463,   463,   463,   463,   463,   463,   464,   465,   466,
-     468,   467,   470,   469,   472,   471,   473,   475,   474,   476,
-     478,   477,   479,   479,   480,   480,   480,   482,   481,   484,
-     483,   485,   485,   486,   486,   486,   487,   487,   487,   487,
-     487,   487,   487,   487,   487,   487,   488,   490,   489,   491,
-     492,   493,   494,   495,   497,   496,   498,   498,   499,   499,
-     499,   501,   500,   503,   502,   504,   504,   504,   505,   505,
-     505,   505,   505,   505,   505,   507,   506,   509,   508,   511,
-     510,   513,   512,   514,   514,   515,   515,   515,   517,   516,
-     519,   518,   520,   520,   521,   521,   521,   522,   522,   522,
-     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
-     522,   522,   524,   523,   526,   525,   528,   527,   530,   529,
+       0,   219,   221,   220,   222,   220,   223,   220,   224,   220,
+     225,   220,   226,   220,   227,   220,   228,   220,   229,   220,
+     230,   220,   231,   220,   232,   220,   233,   220,   234,   234,
+     234,   234,   234,   234,   234,   235,   237,   236,   238,   239,
+     239,   240,   240,   240,   242,   241,   243,   243,   244,   244,
+     244,   246,   245,   247,   247,   248,   248,   248,   249,   251,
+     250,   253,   252,   252,   254,   256,   255,   257,   257,   257,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+     258,   258,   258,   258,   258,   258,   258,   259,   260,   261,
+     262,   263,   264,   265,   266,   267,   268,   269,   271,   270,
+     272,   274,   273,   275,   276,   277,   278,   279,   280,   282,
+     281,   283,   283,   283,   283,   283,   285,   284,   287,   286,
+     288,   289,   290,   292,   291,   294,   293,   295,   296,   297,
+     298,   299,   300,   301,   303,   302,   304,   304,   304,   305,
+     305,   305,   305,   305,   305,   305,   305,   305,   305,   307,
+     306,   309,   308,   311,   310,   312,   312,   314,   313,   315,
+     315,   316,   317,   318,   319,   321,   320,   323,   322,   324,
+     324,   324,   325,   325,   327,   326,   329,   328,   331,   330,
+     333,   332,   334,   334,   335,   335,   335,   337,   336,   338,
+     338,   338,   339,   339,   339,   339,   339,   339,   339,   339,
+     339,   339,   339,   339,   339,   339,   339,   339,   339,   339,
+     339,   339,   339,   339,   341,   340,   342,   342,   342,   344,
+     343,   346,   345,   348,   347,   349,   351,   350,   352,   353,
+     354,   355,   356,   357,   358,   359,   360,   362,   361,   363,
+     363,   363,   364,   366,   365,   368,   367,   370,   369,   372,
+     371,   374,   373,   375,   375,   375,   376,   376,   376,   376,
+     376,   377,   378,   379,   380,   381,   383,   382,   384,   384,
+     384,   385,   385,   385,   385,   385,   385,   386,   387,   388,
+     390,   389,   391,   391,   392,   392,   392,   394,   393,   396,
+     395,   397,   397,   397,   397,   398,   398,   400,   399,   402,
+     401,   404,   403,   405,   405,   405,   406,   406,   406,   406,
+     406,   406,   407,   408,   409,   410,   411,   412,   414,   413,
+     415,   415,   416,   416,   416,   418,   417,   420,   419,   421,
+     421,   421,   422,   422,   422,   422,   422,   422,   422,   422,
+     422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
+     422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
+     422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
+     422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
+     424,   423,   426,   425,   428,   427,   430,   429,   432,   431,
+     434,   433,   436,   435,   437,   438,   439,   441,   440,   442,
+     442,   442,   442,   443,   445,   444,   446,   446,   447,   447,
+     447,   449,   448,   450,   450,   450,   451,   451,   451,   451,
+     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
+     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
+     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
+     451,   451,   451,   451,   451,   451,   451,   451,   451,   453,
+     452,   455,   454,   456,   456,   457,   457,   457,   459,   458,
+     461,   460,   462,   462,   463,   463,   463,   464,   464,   464,
+     464,   464,   464,   464,   464,   464,   464,   465,   466,   467,
+     469,   468,   471,   470,   473,   472,   474,   476,   475,   477,
+     479,   478,   480,   480,   481,   481,   481,   483,   482,   485,
+     484,   486,   486,   487,   487,   487,   488,   488,   488,   488,
+     488,   488,   488,   488,   488,   488,   489,   491,   490,   492,
+     493,   494,   495,   496,   498,   497,   499,   499,   500,   500,
+     500,   502,   501,   504,   503,   505,   505,   505,   506,   506,
+     506,   506,   506,   506,   506,   506,   508,   507,   509,   511,
+     510,   513,   512,   515,   514,   516,   516,   517,   517,   517,
+     519,   518,   521,   520,   522,   522,   523,   523,   523,   524,
+     524,   524,   524,   524,   524,   524,   524,   524,   524,   524,
+     524,   524,   524,   524,   526,   525,   528,   527,   530,   529,
      532,   531,   534,   533,   536,   535,   538,   537,   540,   539,
-     542,   541,   544,   543,   546,   545,   548,   547,   549,   549,
-     551,   550,   552,   552,   552,   554,   553,   555,   555,   556,
-     556,   556,   557,   557,   557,   557,   557,   557,   557,   557,
-     557,   557,   557,   557,   557,   557,   557,   557,   558,   560,
-     559,   562,   561,   563,   564,   566,   565,   567,   567,   567,
-     568,   568,   568,   568,   568,   570,   569,   572,   571,   574,
-     573,   575,   575,   575,   576,   576,   576,   576,   576,   576,
-     577,   579,   578,   580,   582,   581,   584,   583,   586,   585,
-     587,   587,   587,   588,   588,   588,   588,   588,   588,   588,
-     588,   588,   588,   588,   588,   588,   588,   588,   588,   588,
-     588,   589,   591,   590,   592,   594,   593,   595,   596,   598,
-     597,   599,   599,   601,   600,   603,   602,   604,   605,   607,
-     606,   609,   608,   611,   610,   613,   612,   615,   614,   617,
-     616,   618,   618,   618,   619,   619,   621,   620,   622,   624,
-     623,   625,   625,   625,   627,   626,   628,   628,   628,   629,
-     629,   629,   629,   629,   629,   629,   630,   632,   631,   634,
-     633,   635,   635,   635,   637,   636,   638,   638,   638,   639,
-     639,   639,   639,   639,   641,   640,   642,   643,   644,   646,
-     645,   648,   647,   649,   649,   649,   650,   650,   650,   650,
-     650,   651,   652,   653,   654
+     542,   541,   544,   543,   546,   545,   548,   547,   550,   549,
+     551,   551,   553,   552,   554,   554,   554,   556,   555,   557,
+     557,   558,   558,   558,   559,   559,   559,   559,   559,   559,
+     559,   559,   559,   559,   559,   559,   559,   559,   559,   559,
+     560,   562,   561,   564,   563,   565,   566,   568,   567,   569,
+     569,   569,   570,   570,   570,   570,   570,   572,   571,   574,
+     573,   576,   575,   577,   577,   577,   578,   578,   578,   578,
+     578,   578,   579,   581,   580,   582,   584,   583,   586,   585,
+     588,   587,   589,   589,   589,   590,   590,   590,   590,   590,
+     590,   590,   590,   590,   590,   590,   590,   590,   590,   590,
+     590,   590,   590,   591,   593,   592,   594,   596,   595,   597,
+     598,   600,   599,   601,   601,   603,   602,   605,   604,   606,
+     607,   609,   608,   611,   610,   613,   612,   615,   614,   617,
+     616,   619,   618,   620,   620,   620,   621,   621,   623,   622,
+     624,   626,   625,   627,   627,   627,   629,   628,   630,   630,
+     630,   631,   631,   631,   631,   631,   631,   631,   632,   634,
+     633,   636,   635,   637,   637,   637,   639,   638,   640,   640,
+     640,   641,   641,   641,   641,   641,   643,   642,   644,   645,
+     646,   648,   647,   650,   649,   651,   651,   651,   652,   652,
+     652,   652,   652,   653,   654,   655,   656
   };
 
   const signed char
@@ -6007,32 +6019,32 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
        1,     3,     3,     3,     0,     6,     0,     1,     1,     3,
        2,     0,     4,     0,     4,     1,     3,     2,     1,     1,
-       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       4,     0,     6,     0,     1,     1,     3,     2,     0,     4,
-       0,     4,     0,     1,     1,     3,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     3,     0,
+       4,     0,     4,     0,     6,     0,     1,     1,     3,     2,
+       0,     4,     0,     4,     0,     1,     1,     3,     2,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     4,     0,     4,     0,     4,     0,     4,
+       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,     6,     1,     1,
-       0,     6,     1,     3,     2,     0,     4,     0,     1,     1,
-       3,     2,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     0,     4,     3,     3,     0,     6,     1,     3,     2,
-       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       6,     1,     3,     2,     1,     1,     1,     1,     1,     1,
-       3,     0,     4,     3,     0,     4,     0,     6,     0,     4,
-       1,     3,     2,     1,     1,     1,     1,     1,     1,     1,
+       0,     4,     0,     4,     0,     4,     0,     4,     0,     6,
+       1,     1,     0,     6,     1,     3,     2,     0,     4,     0,
+       1,     1,     3,     2,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       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,     2,     1,     1,     0,     6,     3,     0,
-       6,     1,     3,     2,     0,     4,     1,     3,     2,     1,
-       1,     1,     1,     1,     1,     1,     3,     0,     4,     0,
-       6,     1,     3,     2,     0,     4,     1,     3,     2,     1,
-       1,     1,     1,     1,     0,     4,     3,     3,     3,     0,
+       1,     0,     4,     0,     4,     3,     3,     0,     6,     1,
+       3,     2,     1,     1,     1,     1,     1,     0,     4,     0,
        4,     0,     6,     1,     3,     2,     1,     1,     1,     1,
-       1,     3,     3,     3,     3
+       1,     1,     3,     0,     4,     3,     0,     4,     0,     6,
+       0,     4,     1,     3,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     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,     2,     1,     1,     0,     6,
+       3,     0,     6,     1,     3,     2,     0,     4,     1,     3,
+       2,     1,     1,     1,     1,     1,     1,     1,     3,     0,
+       4,     0,     6,     1,     3,     2,     0,     4,     1,     3,
+       2,     1,     1,     1,     1,     1,     0,     4,     3,     3,
+       3,     0,     4,     0,     6,     1,     3,     2,     1,     1,
+       1,     1,     1,     3,     3,     3,     3
   };
 
 
@@ -6083,11 +6095,11 @@ namespace isc { namespace dhcp {
   "\"reservations-in-subnet\"", "\"reservations-out-of-pool\"",
   "\"host-reservation-identifiers\"", "\"client-classes\"",
   "\"require-client-classes\"", "\"test\"", "\"template-test\"",
-  "\"only-if-required\"", "\"client-class\"", "\"reservations\"",
-  "\"duid\"", "\"hw-address\"", "\"circuit-id\"", "\"client-id\"",
-  "\"hostname\"", "\"flex-id\"", "\"relay\"", "\"ip-address\"",
-  "\"ip-addresses\"", "\"hooks-libraries\"", "\"library\"",
-  "\"parameters\"", "\"expired-leases-processing\"",
+  "\"only-if-required\"", "\"client-class\"", "\"pool-id\"",
+  "\"reservations\"", "\"duid\"", "\"hw-address\"", "\"circuit-id\"",
+  "\"client-id\"", "\"hostname\"", "\"flex-id\"", "\"relay\"",
+  "\"ip-address\"", "\"ip-addresses\"", "\"hooks-libraries\"",
+  "\"library\"", "\"parameters\"", "\"expired-leases-processing\"",
   "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"",
   "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"",
   "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"",
@@ -6187,18 +6199,19 @@ namespace isc { namespace dhcp {
   "option_data_always_send", "option_data_never_send", "pools_list",
   "$@82", "pools_list_content", "not_empty_pools_list", "pool_list_entry",
   "$@83", "sub_pool4", "$@84", "pool_params", "pool_param", "pool_entry",
-  "$@85", "user_context", "$@86", "comment", "$@87", "reservations",
-  "$@88", "reservations_list", "not_empty_reservations_list",
-  "reservation", "$@89", "sub_reservation", "$@90", "reservation_params",
-  "not_empty_reservation_params", "reservation_param", "next_server",
-  "$@91", "server_hostname", "$@92", "boot_file_name", "$@93",
-  "ip_address", "$@94", "ip_addresses", "$@95", "duid", "$@96",
-  "hw_address", "$@97", "client_id_value", "$@98", "circuit_id_value",
-  "$@99", "flex_id_value", "$@100", "hostname", "$@101",
-  "reservation_client_classes", "$@102", "relay", "$@103", "relay_map",
-  "client_classes", "$@104", "client_classes_list", "client_class_entry",
-  "$@105", "client_class_params", "not_empty_client_class_params",
-  "client_class_param", "client_class_name", "client_class_test", "$@106",
+  "$@85", "pool_id", "user_context", "$@86", "comment", "$@87",
+  "reservations", "$@88", "reservations_list",
+  "not_empty_reservations_list", "reservation", "$@89", "sub_reservation",
+  "$@90", "reservation_params", "not_empty_reservation_params",
+  "reservation_param", "next_server", "$@91", "server_hostname", "$@92",
+  "boot_file_name", "$@93", "ip_address", "$@94", "ip_addresses", "$@95",
+  "duid", "$@96", "hw_address", "$@97", "client_id_value", "$@98",
+  "circuit_id_value", "$@99", "flex_id_value", "$@100", "hostname",
+  "$@101", "reservation_client_classes", "$@102", "relay", "$@103",
+  "relay_map", "client_classes", "$@104", "client_classes_list",
+  "client_class_entry", "$@105", "client_class_params",
+  "not_empty_client_class_params", "client_class_param",
+  "client_class_name", "client_class_test", "$@106",
   "client_class_template_test", "$@107", "only_if_required",
   "dhcp4o6_port", "control_socket", "$@108", "control_socket_params",
   "control_socket_param", "control_socket_type", "$@109",
@@ -6232,92 +6245,92 @@ namespace isc { namespace dhcp {
   const short
   Dhcp4Parser::yyrline_[] =
   {
-       0,   312,   312,   312,   313,   313,   314,   314,   315,   315,
-     316,   316,   317,   317,   318,   318,   319,   319,   320,   320,
-     321,   321,   322,   322,   323,   323,   324,   324,   332,   333,
-     334,   335,   336,   337,   338,   341,   346,   346,   357,   360,
-     361,   364,   369,   375,   380,   380,   387,   388,   391,   395,
-     399,   405,   405,   412,   413,   416,   420,   424,   434,   443,
-     443,   458,   458,   472,   475,   481,   481,   490,   491,   492,
-     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
-     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
-     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
-     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
-     539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
-     549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
-     559,   560,   561,   562,   563,   564,   565,   568,   574,   580,
-     586,   592,   598,   604,   610,   616,   622,   628,   634,   634,
-     643,   649,   649,   658,   664,   670,   676,   682,   688,   694,
-     694,   703,   706,   709,   712,   715,   721,   721,   730,   730,
-     739,   745,   751,   757,   757,   766,   766,   775,   781,   787,
-     793,   799,   805,   811,   817,   817,   829,   830,   831,   836,
-     837,   838,   839,   840,   841,   842,   843,   844,   845,   848,
-     848,   857,   857,   868,   868,   876,   877,   880,   880,   888,
-     890,   894,   900,   906,   912,   918,   918,   931,   931,   942,
-     943,   944,   949,   950,   953,   953,   972,   972,   990,   990,
-    1003,  1003,  1014,  1015,  1018,  1019,  1020,  1025,  1025,  1035,
-    1036,  1037,  1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,
-    1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
-    1060,  1061,  1062,  1063,  1066,  1066,  1074,  1075,  1076,  1079,
-    1079,  1088,  1088,  1097,  1097,  1106,  1112,  1112,  1121,  1127,
-    1133,  1139,  1145,  1151,  1157,  1163,  1169,  1175,  1175,  1183,
-    1184,  1185,  1188,  1194,  1194,  1203,  1203,  1212,  1212,  1221,
-    1221,  1230,  1230,  1241,  1242,  1243,  1248,  1249,  1250,  1251,
-    1252,  1255,  1260,  1265,  1270,  1275,  1282,  1282,  1295,  1296,
-    1297,  1302,  1303,  1304,  1305,  1306,  1307,  1310,  1316,  1322,
-    1328,  1328,  1339,  1340,  1343,  1344,  1345,  1350,  1350,  1360,
-    1360,  1370,  1371,  1372,  1375,  1378,  1379,  1382,  1382,  1391,
-    1391,  1400,  1400,  1412,  1413,  1414,  1419,  1420,  1421,  1422,
-    1423,  1424,  1427,  1433,  1439,  1445,  1451,  1457,  1466,  1466,
-    1480,  1481,  1484,  1485,  1486,  1495,  1495,  1521,  1521,  1532,
-    1533,  1534,  1540,  1541,  1542,  1543,  1544,  1545,  1546,  1547,
-    1548,  1549,  1550,  1551,  1552,  1553,  1554,  1555,  1556,  1557,
-    1558,  1559,  1560,  1561,  1562,  1563,  1564,  1565,  1566,  1567,
-    1568,  1569,  1570,  1571,  1572,  1573,  1574,  1575,  1576,  1577,
-    1578,  1579,  1580,  1581,  1582,  1583,  1584,  1585,  1586,  1587,
-    1590,  1590,  1599,  1599,  1608,  1608,  1617,  1617,  1626,  1626,
-    1635,  1635,  1644,  1644,  1655,  1661,  1667,  1673,  1673,  1681,
-    1682,  1683,  1684,  1687,  1695,  1695,  1707,  1708,  1712,  1713,
-    1714,  1719,  1719,  1727,  1728,  1729,  1734,  1735,  1736,  1737,
-    1738,  1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,
-    1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,  1756,  1757,
-    1758,  1759,  1760,  1761,  1762,  1763,  1764,  1765,  1766,  1767,
-    1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,  1776,  1783,
-    1783,  1797,  1797,  1806,  1807,  1810,  1811,  1812,  1819,  1819,
-    1834,  1834,  1848,  1849,  1852,  1853,  1854,  1859,  1860,  1861,
-    1862,  1863,  1864,  1865,  1866,  1867,  1868,  1871,  1873,  1879,
-    1881,  1881,  1890,  1890,  1899,  1899,  1908,  1910,  1910,  1919,
-    1929,  1929,  1942,  1943,  1948,  1949,  1950,  1957,  1957,  1969,
-    1969,  1981,  1982,  1987,  1988,  1989,  1996,  1997,  1998,  1999,
-    2000,  2001,  2002,  2003,  2004,  2005,  2008,  2010,  2010,  2019,
-    2021,  2023,  2029,  2035,  2044,  2044,  2057,  2058,  2061,  2062,
-    2063,  2068,  2068,  2078,  2078,  2088,  2089,  2090,  2095,  2096,
-    2097,  2098,  2099,  2100,  2101,  2104,  2104,  2113,  2113,  2138,
-    2138,  2168,  2168,  2179,  2180,  2183,  2184,  2185,  2190,  2190,
-    2199,  2199,  2208,  2209,  2212,  2213,  2214,  2220,  2221,  2222,
-    2223,  2224,  2225,  2226,  2227,  2228,  2229,  2230,  2231,  2232,
-    2233,  2234,  2237,  2237,  2246,  2246,  2255,  2255,  2264,  2264,
-    2273,  2273,  2284,  2284,  2293,  2293,  2302,  2302,  2311,  2311,
-    2320,  2320,  2329,  2329,  2338,  2338,  2352,  2352,  2363,  2364,
-    2370,  2370,  2381,  2382,  2383,  2388,  2388,  2398,  2399,  2402,
-    2403,  2404,  2409,  2410,  2411,  2412,  2413,  2414,  2415,  2416,
-    2417,  2418,  2419,  2420,  2421,  2422,  2423,  2424,  2427,  2429,
-    2429,  2438,  2438,  2447,  2455,  2463,  2463,  2474,  2475,  2476,
-    2481,  2482,  2483,  2484,  2485,  2488,  2488,  2497,  2497,  2509,
-    2509,  2522,  2523,  2524,  2529,  2530,  2531,  2532,  2533,  2534,
-    2537,  2543,  2543,  2552,  2558,  2558,  2568,  2568,  2581,  2581,
-    2591,  2592,  2593,  2598,  2599,  2600,  2601,  2602,  2603,  2604,
-    2605,  2606,  2607,  2608,  2609,  2610,  2611,  2612,  2613,  2614,
-    2615,  2618,  2624,  2624,  2633,  2639,  2639,  2648,  2654,  2660,
-    2660,  2669,  2670,  2673,  2673,  2683,  2683,  2693,  2700,  2707,
-    2707,  2716,  2716,  2726,  2726,  2736,  2736,  2748,  2748,  2760,
-    2760,  2770,  2771,  2772,  2778,  2779,  2782,  2782,  2793,  2801,
-    2801,  2814,  2815,  2816,  2822,  2822,  2830,  2831,  2832,  2837,
-    2838,  2839,  2840,  2841,  2842,  2843,  2846,  2852,  2852,  2861,
-    2861,  2872,  2873,  2874,  2879,  2879,  2887,  2888,  2889,  2894,
-    2895,  2896,  2897,  2898,  2901,  2901,  2910,  2916,  2922,  2928,
-    2928,  2937,  2937,  2948,  2949,  2950,  2955,  2956,  2957,  2958,
-    2959,  2962,  2968,  2974,  2980
+       0,   313,   313,   313,   314,   314,   315,   315,   316,   316,
+     317,   317,   318,   318,   319,   319,   320,   320,   321,   321,
+     322,   322,   323,   323,   324,   324,   325,   325,   333,   334,
+     335,   336,   337,   338,   339,   342,   347,   347,   358,   361,
+     362,   365,   370,   376,   381,   381,   388,   389,   392,   396,
+     400,   406,   406,   413,   414,   417,   421,   425,   435,   444,
+     444,   459,   459,   473,   476,   482,   482,   491,   492,   493,
+     500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
+     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
+     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
+     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
+     540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
+     550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
+     560,   561,   562,   563,   564,   565,   566,   569,   575,   581,
+     587,   593,   599,   605,   611,   617,   623,   629,   635,   635,
+     644,   650,   650,   659,   665,   671,   677,   683,   689,   695,
+     695,   704,   707,   710,   713,   716,   722,   722,   731,   731,
+     740,   746,   752,   758,   758,   767,   767,   776,   782,   788,
+     794,   800,   806,   812,   818,   818,   830,   831,   832,   837,
+     838,   839,   840,   841,   842,   843,   844,   845,   846,   849,
+     849,   858,   858,   869,   869,   877,   878,   881,   881,   889,
+     891,   895,   901,   907,   913,   919,   919,   932,   932,   943,
+     944,   945,   950,   951,   954,   954,   973,   973,   991,   991,
+    1004,  1004,  1015,  1016,  1019,  1020,  1021,  1026,  1026,  1036,
+    1037,  1038,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,
+    1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
+    1061,  1062,  1063,  1064,  1067,  1067,  1075,  1076,  1077,  1080,
+    1080,  1089,  1089,  1098,  1098,  1107,  1113,  1113,  1122,  1128,
+    1134,  1140,  1146,  1152,  1158,  1164,  1170,  1176,  1176,  1184,
+    1185,  1186,  1189,  1195,  1195,  1204,  1204,  1213,  1213,  1222,
+    1222,  1231,  1231,  1242,  1243,  1244,  1249,  1250,  1251,  1252,
+    1253,  1256,  1261,  1266,  1271,  1276,  1283,  1283,  1296,  1297,
+    1298,  1303,  1304,  1305,  1306,  1307,  1308,  1311,  1317,  1323,
+    1329,  1329,  1340,  1341,  1344,  1345,  1346,  1351,  1351,  1361,
+    1361,  1371,  1372,  1373,  1376,  1379,  1380,  1383,  1383,  1392,
+    1392,  1401,  1401,  1413,  1414,  1415,  1420,  1421,  1422,  1423,
+    1424,  1425,  1428,  1434,  1440,  1446,  1452,  1458,  1467,  1467,
+    1481,  1482,  1485,  1486,  1487,  1496,  1496,  1522,  1522,  1533,
+    1534,  1535,  1541,  1542,  1543,  1544,  1545,  1546,  1547,  1548,
+    1549,  1550,  1551,  1552,  1553,  1554,  1555,  1556,  1557,  1558,
+    1559,  1560,  1561,  1562,  1563,  1564,  1565,  1566,  1567,  1568,
+    1569,  1570,  1571,  1572,  1573,  1574,  1575,  1576,  1577,  1578,
+    1579,  1580,  1581,  1582,  1583,  1584,  1585,  1586,  1587,  1588,
+    1591,  1591,  1600,  1600,  1609,  1609,  1618,  1618,  1627,  1627,
+    1636,  1636,  1645,  1645,  1656,  1662,  1668,  1674,  1674,  1682,
+    1683,  1684,  1685,  1688,  1696,  1696,  1708,  1709,  1713,  1714,
+    1715,  1720,  1720,  1728,  1729,  1730,  1735,  1736,  1737,  1738,
+    1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,  1748,
+    1749,  1750,  1751,  1752,  1753,  1754,  1755,  1756,  1757,  1758,
+    1759,  1760,  1761,  1762,  1763,  1764,  1765,  1766,  1767,  1768,
+    1769,  1770,  1771,  1772,  1773,  1774,  1775,  1776,  1777,  1784,
+    1784,  1798,  1798,  1807,  1808,  1811,  1812,  1813,  1820,  1820,
+    1835,  1835,  1849,  1850,  1853,  1854,  1855,  1860,  1861,  1862,
+    1863,  1864,  1865,  1866,  1867,  1868,  1869,  1872,  1874,  1880,
+    1882,  1882,  1891,  1891,  1900,  1900,  1909,  1911,  1911,  1920,
+    1930,  1930,  1943,  1944,  1949,  1950,  1951,  1958,  1958,  1970,
+    1970,  1982,  1983,  1988,  1989,  1990,  1997,  1998,  1999,  2000,
+    2001,  2002,  2003,  2004,  2005,  2006,  2009,  2011,  2011,  2020,
+    2022,  2024,  2030,  2036,  2045,  2045,  2058,  2059,  2062,  2063,
+    2064,  2069,  2069,  2079,  2079,  2089,  2090,  2091,  2096,  2097,
+    2098,  2099,  2100,  2101,  2102,  2103,  2106,  2106,  2115,  2121,
+    2121,  2146,  2146,  2176,  2176,  2187,  2188,  2191,  2192,  2193,
+    2198,  2198,  2207,  2207,  2216,  2217,  2220,  2221,  2222,  2228,
+    2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,  2237,  2238,
+    2239,  2240,  2241,  2242,  2245,  2245,  2254,  2254,  2263,  2263,
+    2272,  2272,  2281,  2281,  2292,  2292,  2301,  2301,  2310,  2310,
+    2319,  2319,  2328,  2328,  2337,  2337,  2346,  2346,  2360,  2360,
+    2371,  2372,  2378,  2378,  2389,  2390,  2391,  2396,  2396,  2406,
+    2407,  2410,  2411,  2412,  2417,  2418,  2419,  2420,  2421,  2422,
+    2423,  2424,  2425,  2426,  2427,  2428,  2429,  2430,  2431,  2432,
+    2435,  2437,  2437,  2446,  2446,  2455,  2463,  2471,  2471,  2482,
+    2483,  2484,  2489,  2490,  2491,  2492,  2493,  2496,  2496,  2505,
+    2505,  2517,  2517,  2530,  2531,  2532,  2537,  2538,  2539,  2540,
+    2541,  2542,  2545,  2551,  2551,  2560,  2566,  2566,  2576,  2576,
+    2589,  2589,  2599,  2600,  2601,  2606,  2607,  2608,  2609,  2610,
+    2611,  2612,  2613,  2614,  2615,  2616,  2617,  2618,  2619,  2620,
+    2621,  2622,  2623,  2626,  2632,  2632,  2641,  2647,  2647,  2656,
+    2662,  2668,  2668,  2677,  2678,  2681,  2681,  2691,  2691,  2701,
+    2708,  2715,  2715,  2724,  2724,  2734,  2734,  2744,  2744,  2756,
+    2756,  2768,  2768,  2778,  2779,  2780,  2786,  2787,  2790,  2790,
+    2801,  2809,  2809,  2822,  2823,  2824,  2830,  2830,  2838,  2839,
+    2840,  2845,  2846,  2847,  2848,  2849,  2850,  2851,  2854,  2860,
+    2860,  2869,  2869,  2880,  2881,  2882,  2887,  2887,  2895,  2896,
+    2897,  2902,  2903,  2904,  2905,  2906,  2909,  2909,  2918,  2924,
+    2930,  2936,  2936,  2945,  2945,  2956,  2957,  2958,  2963,  2964,
+    2965,  2966,  2967,  2970,  2976,  2982,  2988
   };
 
   void
@@ -6350,9 +6363,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 6354 "dhcp4_parser.cc"
+#line 6367 "dhcp4_parser.cc"
 
-#line 2986 "dhcp4_parser.yy"
+#line 2994 "dhcp4_parser.yy"
 
 
 void
index 86a01dab7fe71f12d332989d1eae8442255c2965..e47cf4378b2a4f53a57c69a53d8c350309d42174 100644 (file)
@@ -626,94 +626,95 @@ namespace isc { namespace dhcp {
     TOKEN_TEMPLATE_TEST = 382,     // "template-test"
     TOKEN_ONLY_IF_REQUIRED = 383,  // "only-if-required"
     TOKEN_CLIENT_CLASS = 384,      // "client-class"
-    TOKEN_RESERVATIONS = 385,      // "reservations"
-    TOKEN_DUID = 386,              // "duid"
-    TOKEN_HW_ADDRESS = 387,        // "hw-address"
-    TOKEN_CIRCUIT_ID = 388,        // "circuit-id"
-    TOKEN_CLIENT_ID = 389,         // "client-id"
-    TOKEN_HOSTNAME = 390,          // "hostname"
-    TOKEN_FLEX_ID = 391,           // "flex-id"
-    TOKEN_RELAY = 392,             // "relay"
-    TOKEN_IP_ADDRESS = 393,        // "ip-address"
-    TOKEN_IP_ADDRESSES = 394,      // "ip-addresses"
-    TOKEN_HOOKS_LIBRARIES = 395,   // "hooks-libraries"
-    TOKEN_LIBRARY = 396,           // "library"
-    TOKEN_PARAMETERS = 397,        // "parameters"
-    TOKEN_EXPIRED_LEASES_PROCESSING = 398, // "expired-leases-processing"
-    TOKEN_RECLAIM_TIMER_WAIT_TIME = 399, // "reclaim-timer-wait-time"
-    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 400, // "flush-reclaimed-timer-wait-time"
-    TOKEN_HOLD_RECLAIMED_TIME = 401, // "hold-reclaimed-time"
-    TOKEN_MAX_RECLAIM_LEASES = 402, // "max-reclaim-leases"
-    TOKEN_MAX_RECLAIM_TIME = 403,  // "max-reclaim-time"
-    TOKEN_UNWARNED_RECLAIM_CYCLES = 404, // "unwarned-reclaim-cycles"
-    TOKEN_DHCP4O6_PORT = 405,      // "dhcp4o6-port"
-    TOKEN_DHCP_MULTI_THREADING = 406, // "multi-threading"
-    TOKEN_ENABLE_MULTI_THREADING = 407, // "enable-multi-threading"
-    TOKEN_THREAD_POOL_SIZE = 408,  // "thread-pool-size"
-    TOKEN_PACKET_QUEUE_SIZE = 409, // "packet-queue-size"
-    TOKEN_CONTROL_SOCKET = 410,    // "control-socket"
-    TOKEN_SOCKET_TYPE = 411,       // "socket-type"
-    TOKEN_SOCKET_NAME = 412,       // "socket-name"
-    TOKEN_DHCP_QUEUE_CONTROL = 413, // "dhcp-queue-control"
-    TOKEN_ENABLE_QUEUE = 414,      // "enable-queue"
-    TOKEN_QUEUE_TYPE = 415,        // "queue-type"
-    TOKEN_CAPACITY = 416,          // "capacity"
-    TOKEN_DHCP_DDNS = 417,         // "dhcp-ddns"
-    TOKEN_ENABLE_UPDATES = 418,    // "enable-updates"
-    TOKEN_QUALIFYING_SUFFIX = 419, // "qualifying-suffix"
-    TOKEN_SERVER_IP = 420,         // "server-ip"
-    TOKEN_SERVER_PORT = 421,       // "server-port"
-    TOKEN_SENDER_IP = 422,         // "sender-ip"
-    TOKEN_SENDER_PORT = 423,       // "sender-port"
-    TOKEN_MAX_QUEUE_SIZE = 424,    // "max-queue-size"
-    TOKEN_NCR_PROTOCOL = 425,      // "ncr-protocol"
-    TOKEN_NCR_FORMAT = 426,        // "ncr-format"
-    TOKEN_OVERRIDE_NO_UPDATE = 427, // "override-no-update"
-    TOKEN_OVERRIDE_CLIENT_UPDATE = 428, // "override-client-update"
-    TOKEN_REPLACE_CLIENT_NAME = 429, // "replace-client-name"
-    TOKEN_GENERATED_PREFIX = 430,  // "generated-prefix"
-    TOKEN_TCP = 431,               // "tcp"
-    TOKEN_JSON = 432,              // "JSON"
-    TOKEN_WHEN_PRESENT = 433,      // "when-present"
-    TOKEN_NEVER = 434,             // "never"
-    TOKEN_ALWAYS = 435,            // "always"
-    TOKEN_WHEN_NOT_PRESENT = 436,  // "when-not-present"
-    TOKEN_HOSTNAME_CHAR_SET = 437, // "hostname-char-set"
-    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 438, // "hostname-char-replacement"
-    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 439, // "early-global-reservations-lookup"
-    TOKEN_IP_RESERVATIONS_UNIQUE = 440, // "ip-reservations-unique"
-    TOKEN_RESERVATIONS_LOOKUP_FIRST = 441, // "reservations-lookup-first"
-    TOKEN_LOGGERS = 442,           // "loggers"
-    TOKEN_OUTPUT_OPTIONS = 443,    // "output_options"
-    TOKEN_OUTPUT = 444,            // "output"
-    TOKEN_DEBUGLEVEL = 445,        // "debuglevel"
-    TOKEN_SEVERITY = 446,          // "severity"
-    TOKEN_FLUSH = 447,             // "flush"
-    TOKEN_MAXSIZE = 448,           // "maxsize"
-    TOKEN_MAXVER = 449,            // "maxver"
-    TOKEN_PATTERN = 450,           // "pattern"
-    TOKEN_COMPATIBILITY = 451,     // "compatibility"
-    TOKEN_LENIENT_OPTION_PARSING = 452, // "lenient-option-parsing"
-    TOKEN_IGNORE_DHCP_SERVER_ID = 453, // "ignore-dhcp-server-identifier"
-    TOKEN_IGNORE_RAI_LINK_SEL = 454, // "ignore-rai-link-selection"
-    TOKEN_EXCLUDE_FIRST_LAST_24 = 455, // "exclude-first-last-24"
-    TOKEN_TOPLEVEL_JSON = 456,     // TOPLEVEL_JSON
-    TOKEN_TOPLEVEL_DHCP4 = 457,    // TOPLEVEL_DHCP4
-    TOKEN_SUB_DHCP4 = 458,         // SUB_DHCP4
-    TOKEN_SUB_INTERFACES4 = 459,   // SUB_INTERFACES4
-    TOKEN_SUB_SUBNET4 = 460,       // SUB_SUBNET4
-    TOKEN_SUB_POOL4 = 461,         // SUB_POOL4
-    TOKEN_SUB_RESERVATION = 462,   // SUB_RESERVATION
-    TOKEN_SUB_OPTION_DEFS = 463,   // SUB_OPTION_DEFS
-    TOKEN_SUB_OPTION_DEF = 464,    // SUB_OPTION_DEF
-    TOKEN_SUB_OPTION_DATA = 465,   // SUB_OPTION_DATA
-    TOKEN_SUB_HOOKS_LIBRARY = 466, // SUB_HOOKS_LIBRARY
-    TOKEN_SUB_DHCP_DDNS = 467,     // SUB_DHCP_DDNS
-    TOKEN_SUB_CONFIG_CONTROL = 468, // SUB_CONFIG_CONTROL
-    TOKEN_STRING = 469,            // "constant string"
-    TOKEN_INTEGER = 470,           // "integer"
-    TOKEN_FLOAT = 471,             // "floating point"
-    TOKEN_BOOLEAN = 472            // "boolean"
+    TOKEN_POOL_ID = 385,           // "pool-id"
+    TOKEN_RESERVATIONS = 386,      // "reservations"
+    TOKEN_DUID = 387,              // "duid"
+    TOKEN_HW_ADDRESS = 388,        // "hw-address"
+    TOKEN_CIRCUIT_ID = 389,        // "circuit-id"
+    TOKEN_CLIENT_ID = 390,         // "client-id"
+    TOKEN_HOSTNAME = 391,          // "hostname"
+    TOKEN_FLEX_ID = 392,           // "flex-id"
+    TOKEN_RELAY = 393,             // "relay"
+    TOKEN_IP_ADDRESS = 394,        // "ip-address"
+    TOKEN_IP_ADDRESSES = 395,      // "ip-addresses"
+    TOKEN_HOOKS_LIBRARIES = 396,   // "hooks-libraries"
+    TOKEN_LIBRARY = 397,           // "library"
+    TOKEN_PARAMETERS = 398,        // "parameters"
+    TOKEN_EXPIRED_LEASES_PROCESSING = 399, // "expired-leases-processing"
+    TOKEN_RECLAIM_TIMER_WAIT_TIME = 400, // "reclaim-timer-wait-time"
+    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 401, // "flush-reclaimed-timer-wait-time"
+    TOKEN_HOLD_RECLAIMED_TIME = 402, // "hold-reclaimed-time"
+    TOKEN_MAX_RECLAIM_LEASES = 403, // "max-reclaim-leases"
+    TOKEN_MAX_RECLAIM_TIME = 404,  // "max-reclaim-time"
+    TOKEN_UNWARNED_RECLAIM_CYCLES = 405, // "unwarned-reclaim-cycles"
+    TOKEN_DHCP4O6_PORT = 406,      // "dhcp4o6-port"
+    TOKEN_DHCP_MULTI_THREADING = 407, // "multi-threading"
+    TOKEN_ENABLE_MULTI_THREADING = 408, // "enable-multi-threading"
+    TOKEN_THREAD_POOL_SIZE = 409,  // "thread-pool-size"
+    TOKEN_PACKET_QUEUE_SIZE = 410, // "packet-queue-size"
+    TOKEN_CONTROL_SOCKET = 411,    // "control-socket"
+    TOKEN_SOCKET_TYPE = 412,       // "socket-type"
+    TOKEN_SOCKET_NAME = 413,       // "socket-name"
+    TOKEN_DHCP_QUEUE_CONTROL = 414, // "dhcp-queue-control"
+    TOKEN_ENABLE_QUEUE = 415,      // "enable-queue"
+    TOKEN_QUEUE_TYPE = 416,        // "queue-type"
+    TOKEN_CAPACITY = 417,          // "capacity"
+    TOKEN_DHCP_DDNS = 418,         // "dhcp-ddns"
+    TOKEN_ENABLE_UPDATES = 419,    // "enable-updates"
+    TOKEN_QUALIFYING_SUFFIX = 420, // "qualifying-suffix"
+    TOKEN_SERVER_IP = 421,         // "server-ip"
+    TOKEN_SERVER_PORT = 422,       // "server-port"
+    TOKEN_SENDER_IP = 423,         // "sender-ip"
+    TOKEN_SENDER_PORT = 424,       // "sender-port"
+    TOKEN_MAX_QUEUE_SIZE = 425,    // "max-queue-size"
+    TOKEN_NCR_PROTOCOL = 426,      // "ncr-protocol"
+    TOKEN_NCR_FORMAT = 427,        // "ncr-format"
+    TOKEN_OVERRIDE_NO_UPDATE = 428, // "override-no-update"
+    TOKEN_OVERRIDE_CLIENT_UPDATE = 429, // "override-client-update"
+    TOKEN_REPLACE_CLIENT_NAME = 430, // "replace-client-name"
+    TOKEN_GENERATED_PREFIX = 431,  // "generated-prefix"
+    TOKEN_TCP = 432,               // "tcp"
+    TOKEN_JSON = 433,              // "JSON"
+    TOKEN_WHEN_PRESENT = 434,      // "when-present"
+    TOKEN_NEVER = 435,             // "never"
+    TOKEN_ALWAYS = 436,            // "always"
+    TOKEN_WHEN_NOT_PRESENT = 437,  // "when-not-present"
+    TOKEN_HOSTNAME_CHAR_SET = 438, // "hostname-char-set"
+    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 439, // "hostname-char-replacement"
+    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 440, // "early-global-reservations-lookup"
+    TOKEN_IP_RESERVATIONS_UNIQUE = 441, // "ip-reservations-unique"
+    TOKEN_RESERVATIONS_LOOKUP_FIRST = 442, // "reservations-lookup-first"
+    TOKEN_LOGGERS = 443,           // "loggers"
+    TOKEN_OUTPUT_OPTIONS = 444,    // "output_options"
+    TOKEN_OUTPUT = 445,            // "output"
+    TOKEN_DEBUGLEVEL = 446,        // "debuglevel"
+    TOKEN_SEVERITY = 447,          // "severity"
+    TOKEN_FLUSH = 448,             // "flush"
+    TOKEN_MAXSIZE = 449,           // "maxsize"
+    TOKEN_MAXVER = 450,            // "maxver"
+    TOKEN_PATTERN = 451,           // "pattern"
+    TOKEN_COMPATIBILITY = 452,     // "compatibility"
+    TOKEN_LENIENT_OPTION_PARSING = 453, // "lenient-option-parsing"
+    TOKEN_IGNORE_DHCP_SERVER_ID = 454, // "ignore-dhcp-server-identifier"
+    TOKEN_IGNORE_RAI_LINK_SEL = 455, // "ignore-rai-link-selection"
+    TOKEN_EXCLUDE_FIRST_LAST_24 = 456, // "exclude-first-last-24"
+    TOKEN_TOPLEVEL_JSON = 457,     // TOPLEVEL_JSON
+    TOKEN_TOPLEVEL_DHCP4 = 458,    // TOPLEVEL_DHCP4
+    TOKEN_SUB_DHCP4 = 459,         // SUB_DHCP4
+    TOKEN_SUB_INTERFACES4 = 460,   // SUB_INTERFACES4
+    TOKEN_SUB_SUBNET4 = 461,       // SUB_SUBNET4
+    TOKEN_SUB_POOL4 = 462,         // SUB_POOL4
+    TOKEN_SUB_RESERVATION = 463,   // SUB_RESERVATION
+    TOKEN_SUB_OPTION_DEFS = 464,   // SUB_OPTION_DEFS
+    TOKEN_SUB_OPTION_DEF = 465,    // SUB_OPTION_DEF
+    TOKEN_SUB_OPTION_DATA = 466,   // SUB_OPTION_DATA
+    TOKEN_SUB_HOOKS_LIBRARY = 467, // SUB_HOOKS_LIBRARY
+    TOKEN_SUB_DHCP_DDNS = 468,     // SUB_DHCP_DDNS
+    TOKEN_SUB_CONFIG_CONTROL = 469, // SUB_CONFIG_CONTROL
+    TOKEN_STRING = 470,            // "constant string"
+    TOKEN_INTEGER = 471,           // "integer"
+    TOKEN_FLOAT = 472,             // "floating point"
+    TOKEN_BOOLEAN = 473            // "boolean"
       };
       /// Backward compatibility alias (Bison 3.6).
       typedef token_kind_type yytokentype;
@@ -730,7 +731,7 @@ namespace isc { namespace dhcp {
     {
       enum symbol_kind_type
       {
-        YYNTOKENS = 218, ///< Number of tokens.
+        YYNTOKENS = 219, ///< Number of tokens.
         S_YYEMPTY = -2,
         S_YYEOF = 0,                             // "end of file"
         S_YYerror = 1,                           // error
@@ -862,531 +863,533 @@ namespace isc { namespace dhcp {
         S_TEMPLATE_TEST = 127,                   // "template-test"
         S_ONLY_IF_REQUIRED = 128,                // "only-if-required"
         S_CLIENT_CLASS = 129,                    // "client-class"
-        S_RESERVATIONS = 130,                    // "reservations"
-        S_DUID = 131,                            // "duid"
-        S_HW_ADDRESS = 132,                      // "hw-address"
-        S_CIRCUIT_ID = 133,                      // "circuit-id"
-        S_CLIENT_ID = 134,                       // "client-id"
-        S_HOSTNAME = 135,                        // "hostname"
-        S_FLEX_ID = 136,                         // "flex-id"
-        S_RELAY = 137,                           // "relay"
-        S_IP_ADDRESS = 138,                      // "ip-address"
-        S_IP_ADDRESSES = 139,                    // "ip-addresses"
-        S_HOOKS_LIBRARIES = 140,                 // "hooks-libraries"
-        S_LIBRARY = 141,                         // "library"
-        S_PARAMETERS = 142,                      // "parameters"
-        S_EXPIRED_LEASES_PROCESSING = 143,       // "expired-leases-processing"
-        S_RECLAIM_TIMER_WAIT_TIME = 144,         // "reclaim-timer-wait-time"
-        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 145, // "flush-reclaimed-timer-wait-time"
-        S_HOLD_RECLAIMED_TIME = 146,             // "hold-reclaimed-time"
-        S_MAX_RECLAIM_LEASES = 147,              // "max-reclaim-leases"
-        S_MAX_RECLAIM_TIME = 148,                // "max-reclaim-time"
-        S_UNWARNED_RECLAIM_CYCLES = 149,         // "unwarned-reclaim-cycles"
-        S_DHCP4O6_PORT = 150,                    // "dhcp4o6-port"
-        S_DHCP_MULTI_THREADING = 151,            // "multi-threading"
-        S_ENABLE_MULTI_THREADING = 152,          // "enable-multi-threading"
-        S_THREAD_POOL_SIZE = 153,                // "thread-pool-size"
-        S_PACKET_QUEUE_SIZE = 154,               // "packet-queue-size"
-        S_CONTROL_SOCKET = 155,                  // "control-socket"
-        S_SOCKET_TYPE = 156,                     // "socket-type"
-        S_SOCKET_NAME = 157,                     // "socket-name"
-        S_DHCP_QUEUE_CONTROL = 158,              // "dhcp-queue-control"
-        S_ENABLE_QUEUE = 159,                    // "enable-queue"
-        S_QUEUE_TYPE = 160,                      // "queue-type"
-        S_CAPACITY = 161,                        // "capacity"
-        S_DHCP_DDNS = 162,                       // "dhcp-ddns"
-        S_ENABLE_UPDATES = 163,                  // "enable-updates"
-        S_QUALIFYING_SUFFIX = 164,               // "qualifying-suffix"
-        S_SERVER_IP = 165,                       // "server-ip"
-        S_SERVER_PORT = 166,                     // "server-port"
-        S_SENDER_IP = 167,                       // "sender-ip"
-        S_SENDER_PORT = 168,                     // "sender-port"
-        S_MAX_QUEUE_SIZE = 169,                  // "max-queue-size"
-        S_NCR_PROTOCOL = 170,                    // "ncr-protocol"
-        S_NCR_FORMAT = 171,                      // "ncr-format"
-        S_OVERRIDE_NO_UPDATE = 172,              // "override-no-update"
-        S_OVERRIDE_CLIENT_UPDATE = 173,          // "override-client-update"
-        S_REPLACE_CLIENT_NAME = 174,             // "replace-client-name"
-        S_GENERATED_PREFIX = 175,                // "generated-prefix"
-        S_TCP = 176,                             // "tcp"
-        S_JSON = 177,                            // "JSON"
-        S_WHEN_PRESENT = 178,                    // "when-present"
-        S_NEVER = 179,                           // "never"
-        S_ALWAYS = 180,                          // "always"
-        S_WHEN_NOT_PRESENT = 181,                // "when-not-present"
-        S_HOSTNAME_CHAR_SET = 182,               // "hostname-char-set"
-        S_HOSTNAME_CHAR_REPLACEMENT = 183,       // "hostname-char-replacement"
-        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 184, // "early-global-reservations-lookup"
-        S_IP_RESERVATIONS_UNIQUE = 185,          // "ip-reservations-unique"
-        S_RESERVATIONS_LOOKUP_FIRST = 186,       // "reservations-lookup-first"
-        S_LOGGERS = 187,                         // "loggers"
-        S_OUTPUT_OPTIONS = 188,                  // "output_options"
-        S_OUTPUT = 189,                          // "output"
-        S_DEBUGLEVEL = 190,                      // "debuglevel"
-        S_SEVERITY = 191,                        // "severity"
-        S_FLUSH = 192,                           // "flush"
-        S_MAXSIZE = 193,                         // "maxsize"
-        S_MAXVER = 194,                          // "maxver"
-        S_PATTERN = 195,                         // "pattern"
-        S_COMPATIBILITY = 196,                   // "compatibility"
-        S_LENIENT_OPTION_PARSING = 197,          // "lenient-option-parsing"
-        S_IGNORE_DHCP_SERVER_ID = 198,           // "ignore-dhcp-server-identifier"
-        S_IGNORE_RAI_LINK_SEL = 199,             // "ignore-rai-link-selection"
-        S_EXCLUDE_FIRST_LAST_24 = 200,           // "exclude-first-last-24"
-        S_TOPLEVEL_JSON = 201,                   // TOPLEVEL_JSON
-        S_TOPLEVEL_DHCP4 = 202,                  // TOPLEVEL_DHCP4
-        S_SUB_DHCP4 = 203,                       // SUB_DHCP4
-        S_SUB_INTERFACES4 = 204,                 // SUB_INTERFACES4
-        S_SUB_SUBNET4 = 205,                     // SUB_SUBNET4
-        S_SUB_POOL4 = 206,                       // SUB_POOL4
-        S_SUB_RESERVATION = 207,                 // SUB_RESERVATION
-        S_SUB_OPTION_DEFS = 208,                 // SUB_OPTION_DEFS
-        S_SUB_OPTION_DEF = 209,                  // SUB_OPTION_DEF
-        S_SUB_OPTION_DATA = 210,                 // SUB_OPTION_DATA
-        S_SUB_HOOKS_LIBRARY = 211,               // SUB_HOOKS_LIBRARY
-        S_SUB_DHCP_DDNS = 212,                   // SUB_DHCP_DDNS
-        S_SUB_CONFIG_CONTROL = 213,              // SUB_CONFIG_CONTROL
-        S_STRING = 214,                          // "constant string"
-        S_INTEGER = 215,                         // "integer"
-        S_FLOAT = 216,                           // "floating point"
-        S_BOOLEAN = 217,                         // "boolean"
-        S_YYACCEPT = 218,                        // $accept
-        S_start = 219,                           // start
-        S_220_1 = 220,                           // $@1
-        S_221_2 = 221,                           // $@2
-        S_222_3 = 222,                           // $@3
-        S_223_4 = 223,                           // $@4
-        S_224_5 = 224,                           // $@5
-        S_225_6 = 225,                           // $@6
-        S_226_7 = 226,                           // $@7
-        S_227_8 = 227,                           // $@8
-        S_228_9 = 228,                           // $@9
-        S_229_10 = 229,                          // $@10
-        S_230_11 = 230,                          // $@11
-        S_231_12 = 231,                          // $@12
-        S_232_13 = 232,                          // $@13
-        S_value = 233,                           // value
-        S_sub_json = 234,                        // sub_json
-        S_map2 = 235,                            // map2
-        S_236_14 = 236,                          // $@14
-        S_map_value = 237,                       // map_value
-        S_map_content = 238,                     // map_content
-        S_not_empty_map = 239,                   // not_empty_map
-        S_list_generic = 240,                    // list_generic
-        S_241_15 = 241,                          // $@15
-        S_list_content = 242,                    // list_content
-        S_not_empty_list = 243,                  // not_empty_list
-        S_list_strings = 244,                    // list_strings
-        S_245_16 = 245,                          // $@16
-        S_list_strings_content = 246,            // list_strings_content
-        S_not_empty_list_strings = 247,          // not_empty_list_strings
-        S_unknown_map_entry = 248,               // unknown_map_entry
-        S_syntax_map = 249,                      // syntax_map
-        S_250_17 = 250,                          // $@17
-        S_global_object = 251,                   // global_object
-        S_252_18 = 252,                          // $@18
-        S_global_object_comma = 253,             // global_object_comma
-        S_sub_dhcp4 = 254,                       // sub_dhcp4
-        S_255_19 = 255,                          // $@19
-        S_global_params = 256,                   // global_params
-        S_global_param = 257,                    // global_param
-        S_valid_lifetime = 258,                  // valid_lifetime
-        S_min_valid_lifetime = 259,              // min_valid_lifetime
-        S_max_valid_lifetime = 260,              // max_valid_lifetime
-        S_renew_timer = 261,                     // renew_timer
-        S_rebind_timer = 262,                    // rebind_timer
-        S_calculate_tee_times = 263,             // calculate_tee_times
-        S_t1_percent = 264,                      // t1_percent
-        S_t2_percent = 265,                      // t2_percent
-        S_cache_threshold = 266,                 // cache_threshold
-        S_cache_max_age = 267,                   // cache_max_age
-        S_decline_probation_period = 268,        // decline_probation_period
-        S_server_tag = 269,                      // server_tag
-        S_270_20 = 270,                          // $@20
-        S_parked_packet_limit = 271,             // parked_packet_limit
-        S_allocator = 272,                       // allocator
-        S_273_21 = 273,                          // $@21
-        S_echo_client_id = 274,                  // echo_client_id
-        S_match_client_id = 275,                 // match_client_id
-        S_authoritative = 276,                   // authoritative
-        S_ddns_send_updates = 277,               // ddns_send_updates
-        S_ddns_override_no_update = 278,         // ddns_override_no_update
-        S_ddns_override_client_update = 279,     // ddns_override_client_update
-        S_ddns_replace_client_name = 280,        // ddns_replace_client_name
-        S_281_22 = 281,                          // $@22
-        S_ddns_replace_client_name_value = 282,  // ddns_replace_client_name_value
-        S_ddns_generated_prefix = 283,           // ddns_generated_prefix
-        S_284_23 = 284,                          // $@23
-        S_ddns_qualifying_suffix = 285,          // ddns_qualifying_suffix
-        S_286_24 = 286,                          // $@24
-        S_ddns_update_on_renew = 287,            // ddns_update_on_renew
-        S_ddns_use_conflict_resolution = 288,    // ddns_use_conflict_resolution
-        S_ddns_ttl_percent = 289,                // ddns_ttl_percent
-        S_hostname_char_set = 290,               // hostname_char_set
-        S_291_25 = 291,                          // $@25
-        S_hostname_char_replacement = 292,       // hostname_char_replacement
-        S_293_26 = 293,                          // $@26
-        S_store_extended_info = 294,             // store_extended_info
-        S_statistic_default_sample_count = 295,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 296,    // statistic_default_sample_age
-        S_early_global_reservations_lookup = 297, // early_global_reservations_lookup
-        S_ip_reservations_unique = 298,          // ip_reservations_unique
-        S_reservations_lookup_first = 299,       // reservations_lookup_first
-        S_offer_lifetime = 300,                  // offer_lifetime
-        S_interfaces_config = 301,               // interfaces_config
-        S_302_27 = 302,                          // $@27
-        S_interfaces_config_params = 303,        // interfaces_config_params
-        S_interfaces_config_param = 304,         // interfaces_config_param
-        S_sub_interfaces4 = 305,                 // sub_interfaces4
-        S_306_28 = 306,                          // $@28
-        S_interfaces_list = 307,                 // interfaces_list
-        S_308_29 = 308,                          // $@29
-        S_dhcp_socket_type = 309,                // dhcp_socket_type
-        S_310_30 = 310,                          // $@30
-        S_socket_type = 311,                     // socket_type
-        S_outbound_interface = 312,              // outbound_interface
-        S_313_31 = 313,                          // $@31
-        S_outbound_interface_value = 314,        // outbound_interface_value
-        S_re_detect = 315,                       // re_detect
-        S_service_sockets_require_all = 316,     // service_sockets_require_all
-        S_service_sockets_retry_wait_time = 317, // service_sockets_retry_wait_time
-        S_service_sockets_max_retries = 318,     // service_sockets_max_retries
-        S_lease_database = 319,                  // lease_database
-        S_320_32 = 320,                          // $@32
-        S_sanity_checks = 321,                   // sanity_checks
-        S_322_33 = 322,                          // $@33
-        S_sanity_checks_params = 323,            // sanity_checks_params
-        S_sanity_checks_param = 324,             // sanity_checks_param
-        S_lease_checks = 325,                    // lease_checks
-        S_326_34 = 326,                          // $@34
-        S_extended_info_checks = 327,            // extended_info_checks
-        S_328_35 = 328,                          // $@35
-        S_hosts_database = 329,                  // hosts_database
-        S_330_36 = 330,                          // $@36
-        S_hosts_databases = 331,                 // hosts_databases
-        S_332_37 = 332,                          // $@37
-        S_database_list = 333,                   // database_list
-        S_not_empty_database_list = 334,         // not_empty_database_list
-        S_database = 335,                        // database
-        S_336_38 = 336,                          // $@38
-        S_database_map_params = 337,             // database_map_params
-        S_database_map_param = 338,              // database_map_param
-        S_database_type = 339,                   // database_type
-        S_340_39 = 340,                          // $@39
-        S_db_type = 341,                         // db_type
-        S_user = 342,                            // user
-        S_343_40 = 343,                          // $@40
-        S_password = 344,                        // password
-        S_345_41 = 345,                          // $@41
-        S_host = 346,                            // host
-        S_347_42 = 347,                          // $@42
-        S_port = 348,                            // port
-        S_name = 349,                            // name
-        S_350_43 = 350,                          // $@43
-        S_persist = 351,                         // persist
-        S_lfc_interval = 352,                    // lfc_interval
-        S_readonly = 353,                        // readonly
-        S_connect_timeout = 354,                 // connect_timeout
-        S_read_timeout = 355,                    // read_timeout
-        S_write_timeout = 356,                   // write_timeout
-        S_tcp_user_timeout = 357,                // tcp_user_timeout
-        S_max_reconnect_tries = 358,             // max_reconnect_tries
-        S_reconnect_wait_time = 359,             // reconnect_wait_time
-        S_on_fail = 360,                         // on_fail
-        S_361_44 = 361,                          // $@44
-        S_on_fail_mode = 362,                    // on_fail_mode
-        S_max_row_errors = 363,                  // max_row_errors
-        S_trust_anchor = 364,                    // trust_anchor
-        S_365_45 = 365,                          // $@45
-        S_cert_file = 366,                       // cert_file
-        S_367_46 = 367,                          // $@46
-        S_key_file = 368,                        // key_file
-        S_369_47 = 369,                          // $@47
-        S_cipher_list = 370,                     // cipher_list
-        S_371_48 = 371,                          // $@48
-        S_host_reservation_identifiers = 372,    // host_reservation_identifiers
-        S_373_49 = 373,                          // $@49
-        S_host_reservation_identifiers_list = 374, // host_reservation_identifiers_list
-        S_host_reservation_identifier = 375,     // host_reservation_identifier
-        S_duid_id = 376,                         // duid_id
-        S_hw_address_id = 377,                   // hw_address_id
-        S_circuit_id = 378,                      // circuit_id
-        S_client_id = 379,                       // client_id
-        S_flex_id = 380,                         // flex_id
-        S_dhcp_multi_threading = 381,            // dhcp_multi_threading
-        S_382_50 = 382,                          // $@50
-        S_multi_threading_params = 383,          // multi_threading_params
-        S_multi_threading_param = 384,           // multi_threading_param
-        S_enable_multi_threading = 385,          // enable_multi_threading
-        S_thread_pool_size = 386,                // thread_pool_size
-        S_packet_queue_size = 387,               // packet_queue_size
-        S_hooks_libraries = 388,                 // hooks_libraries
-        S_389_51 = 389,                          // $@51
-        S_hooks_libraries_list = 390,            // hooks_libraries_list
-        S_not_empty_hooks_libraries_list = 391,  // not_empty_hooks_libraries_list
-        S_hooks_library = 392,                   // hooks_library
-        S_393_52 = 393,                          // $@52
-        S_sub_hooks_library = 394,               // sub_hooks_library
-        S_395_53 = 395,                          // $@53
-        S_hooks_params = 396,                    // hooks_params
-        S_hooks_param = 397,                     // hooks_param
-        S_library = 398,                         // library
-        S_399_54 = 399,                          // $@54
-        S_parameters = 400,                      // parameters
-        S_401_55 = 401,                          // $@55
-        S_expired_leases_processing = 402,       // expired_leases_processing
-        S_403_56 = 403,                          // $@56
-        S_expired_leases_params = 404,           // expired_leases_params
-        S_expired_leases_param = 405,            // expired_leases_param
-        S_reclaim_timer_wait_time = 406,         // reclaim_timer_wait_time
-        S_flush_reclaimed_timer_wait_time = 407, // flush_reclaimed_timer_wait_time
-        S_hold_reclaimed_time = 408,             // hold_reclaimed_time
-        S_max_reclaim_leases = 409,              // max_reclaim_leases
-        S_max_reclaim_time = 410,                // max_reclaim_time
-        S_unwarned_reclaim_cycles = 411,         // unwarned_reclaim_cycles
-        S_subnet4_list = 412,                    // subnet4_list
-        S_413_57 = 413,                          // $@57
-        S_subnet4_list_content = 414,            // subnet4_list_content
-        S_not_empty_subnet4_list = 415,          // not_empty_subnet4_list
-        S_subnet4 = 416,                         // subnet4
-        S_417_58 = 417,                          // $@58
-        S_sub_subnet4 = 418,                     // sub_subnet4
-        S_419_59 = 419,                          // $@59
-        S_subnet4_params = 420,                  // subnet4_params
-        S_subnet4_param = 421,                   // subnet4_param
-        S_subnet = 422,                          // subnet
-        S_423_60 = 423,                          // $@60
-        S_subnet_4o6_interface = 424,            // subnet_4o6_interface
-        S_425_61 = 425,                          // $@61
-        S_subnet_4o6_interface_id = 426,         // subnet_4o6_interface_id
-        S_427_62 = 427,                          // $@62
-        S_subnet_4o6_subnet = 428,               // subnet_4o6_subnet
-        S_429_63 = 429,                          // $@63
-        S_interface = 430,                       // interface
-        S_431_64 = 431,                          // $@64
-        S_client_class = 432,                    // client_class
-        S_433_65 = 433,                          // $@65
-        S_require_client_classes = 434,          // require_client_classes
-        S_435_66 = 435,                          // $@66
-        S_reservations_global = 436,             // reservations_global
-        S_reservations_in_subnet = 437,          // reservations_in_subnet
-        S_reservations_out_of_pool = 438,        // reservations_out_of_pool
-        S_reservation_mode = 439,                // reservation_mode
-        S_440_67 = 440,                          // $@67
-        S_hr_mode = 441,                         // hr_mode
-        S_id = 442,                              // id
-        S_shared_networks = 443,                 // shared_networks
-        S_444_68 = 444,                          // $@68
-        S_shared_networks_content = 445,         // shared_networks_content
-        S_shared_networks_list = 446,            // shared_networks_list
-        S_shared_network = 447,                  // shared_network
-        S_448_69 = 448,                          // $@69
-        S_shared_network_params = 449,           // shared_network_params
-        S_shared_network_param = 450,            // shared_network_param
-        S_option_def_list = 451,                 // option_def_list
-        S_452_70 = 452,                          // $@70
-        S_sub_option_def_list = 453,             // sub_option_def_list
-        S_454_71 = 454,                          // $@71
-        S_option_def_list_content = 455,         // option_def_list_content
-        S_not_empty_option_def_list = 456,       // not_empty_option_def_list
-        S_option_def_entry = 457,                // option_def_entry
-        S_458_72 = 458,                          // $@72
-        S_sub_option_def = 459,                  // sub_option_def
-        S_460_73 = 460,                          // $@73
-        S_option_def_params = 461,               // option_def_params
-        S_not_empty_option_def_params = 462,     // not_empty_option_def_params
-        S_option_def_param = 463,                // option_def_param
-        S_option_def_name = 464,                 // option_def_name
-        S_code = 465,                            // code
-        S_option_def_code = 466,                 // option_def_code
-        S_option_def_type = 467,                 // option_def_type
-        S_468_74 = 468,                          // $@74
-        S_option_def_record_types = 469,         // option_def_record_types
-        S_470_75 = 470,                          // $@75
-        S_space = 471,                           // space
-        S_472_76 = 472,                          // $@76
-        S_option_def_space = 473,                // option_def_space
-        S_option_def_encapsulate = 474,          // option_def_encapsulate
-        S_475_77 = 475,                          // $@77
-        S_option_def_array = 476,                // option_def_array
-        S_option_data_list = 477,                // option_data_list
-        S_478_78 = 478,                          // $@78
-        S_option_data_list_content = 479,        // option_data_list_content
-        S_not_empty_option_data_list = 480,      // not_empty_option_data_list
-        S_option_data_entry = 481,               // option_data_entry
-        S_482_79 = 482,                          // $@79
-        S_sub_option_data = 483,                 // sub_option_data
-        S_484_80 = 484,                          // $@80
-        S_option_data_params = 485,              // option_data_params
-        S_not_empty_option_data_params = 486,    // not_empty_option_data_params
-        S_option_data_param = 487,               // option_data_param
-        S_option_data_name = 488,                // option_data_name
-        S_option_data_data = 489,                // option_data_data
-        S_490_81 = 490,                          // $@81
-        S_option_data_code = 491,                // option_data_code
-        S_option_data_space = 492,               // option_data_space
-        S_option_data_csv_format = 493,          // option_data_csv_format
-        S_option_data_always_send = 494,         // option_data_always_send
-        S_option_data_never_send = 495,          // option_data_never_send
-        S_pools_list = 496,                      // pools_list
-        S_497_82 = 497,                          // $@82
-        S_pools_list_content = 498,              // pools_list_content
-        S_not_empty_pools_list = 499,            // not_empty_pools_list
-        S_pool_list_entry = 500,                 // pool_list_entry
-        S_501_83 = 501,                          // $@83
-        S_sub_pool4 = 502,                       // sub_pool4
-        S_503_84 = 503,                          // $@84
-        S_pool_params = 504,                     // pool_params
-        S_pool_param = 505,                      // pool_param
-        S_pool_entry = 506,                      // pool_entry
-        S_507_85 = 507,                          // $@85
-        S_user_context = 508,                    // user_context
-        S_509_86 = 509,                          // $@86
-        S_comment = 510,                         // comment
-        S_511_87 = 511,                          // $@87
-        S_reservations = 512,                    // reservations
-        S_513_88 = 513,                          // $@88
-        S_reservations_list = 514,               // reservations_list
-        S_not_empty_reservations_list = 515,     // not_empty_reservations_list
-        S_reservation = 516,                     // reservation
-        S_517_89 = 517,                          // $@89
-        S_sub_reservation = 518,                 // sub_reservation
-        S_519_90 = 519,                          // $@90
-        S_reservation_params = 520,              // reservation_params
-        S_not_empty_reservation_params = 521,    // not_empty_reservation_params
-        S_reservation_param = 522,               // reservation_param
-        S_next_server = 523,                     // next_server
-        S_524_91 = 524,                          // $@91
-        S_server_hostname = 525,                 // server_hostname
-        S_526_92 = 526,                          // $@92
-        S_boot_file_name = 527,                  // boot_file_name
-        S_528_93 = 528,                          // $@93
-        S_ip_address = 529,                      // ip_address
-        S_530_94 = 530,                          // $@94
-        S_ip_addresses = 531,                    // ip_addresses
-        S_532_95 = 532,                          // $@95
-        S_duid = 533,                            // duid
-        S_534_96 = 534,                          // $@96
-        S_hw_address = 535,                      // hw_address
-        S_536_97 = 536,                          // $@97
-        S_client_id_value = 537,                 // client_id_value
-        S_538_98 = 538,                          // $@98
-        S_circuit_id_value = 539,                // circuit_id_value
-        S_540_99 = 540,                          // $@99
-        S_flex_id_value = 541,                   // flex_id_value
-        S_542_100 = 542,                         // $@100
-        S_hostname = 543,                        // hostname
-        S_544_101 = 544,                         // $@101
-        S_reservation_client_classes = 545,      // reservation_client_classes
-        S_546_102 = 546,                         // $@102
-        S_relay = 547,                           // relay
-        S_548_103 = 548,                         // $@103
-        S_relay_map = 549,                       // relay_map
-        S_client_classes = 550,                  // client_classes
-        S_551_104 = 551,                         // $@104
-        S_client_classes_list = 552,             // client_classes_list
-        S_client_class_entry = 553,              // client_class_entry
-        S_554_105 = 554,                         // $@105
-        S_client_class_params = 555,             // client_class_params
-        S_not_empty_client_class_params = 556,   // not_empty_client_class_params
-        S_client_class_param = 557,              // client_class_param
-        S_client_class_name = 558,               // client_class_name
-        S_client_class_test = 559,               // client_class_test
-        S_560_106 = 560,                         // $@106
-        S_client_class_template_test = 561,      // client_class_template_test
-        S_562_107 = 562,                         // $@107
-        S_only_if_required = 563,                // only_if_required
-        S_dhcp4o6_port = 564,                    // dhcp4o6_port
-        S_control_socket = 565,                  // control_socket
-        S_566_108 = 566,                         // $@108
-        S_control_socket_params = 567,           // control_socket_params
-        S_control_socket_param = 568,            // control_socket_param
-        S_control_socket_type = 569,             // control_socket_type
-        S_570_109 = 570,                         // $@109
-        S_control_socket_name = 571,             // control_socket_name
-        S_572_110 = 572,                         // $@110
-        S_dhcp_queue_control = 573,              // dhcp_queue_control
-        S_574_111 = 574,                         // $@111
-        S_queue_control_params = 575,            // queue_control_params
-        S_queue_control_param = 576,             // queue_control_param
-        S_enable_queue = 577,                    // enable_queue
-        S_queue_type = 578,                      // queue_type
-        S_579_112 = 579,                         // $@112
-        S_capacity = 580,                        // capacity
-        S_arbitrary_map_entry = 581,             // arbitrary_map_entry
-        S_582_113 = 582,                         // $@113
-        S_dhcp_ddns = 583,                       // dhcp_ddns
-        S_584_114 = 584,                         // $@114
-        S_sub_dhcp_ddns = 585,                   // sub_dhcp_ddns
-        S_586_115 = 586,                         // $@115
-        S_dhcp_ddns_params = 587,                // dhcp_ddns_params
-        S_dhcp_ddns_param = 588,                 // dhcp_ddns_param
-        S_enable_updates = 589,                  // enable_updates
-        S_server_ip = 590,                       // server_ip
-        S_591_116 = 591,                         // $@116
-        S_server_port = 592,                     // server_port
-        S_sender_ip = 593,                       // sender_ip
-        S_594_117 = 594,                         // $@117
-        S_sender_port = 595,                     // sender_port
-        S_max_queue_size = 596,                  // max_queue_size
-        S_ncr_protocol = 597,                    // ncr_protocol
-        S_598_118 = 598,                         // $@118
-        S_ncr_protocol_value = 599,              // ncr_protocol_value
-        S_ncr_format = 600,                      // ncr_format
-        S_601_119 = 601,                         // $@119
-        S_dep_qualifying_suffix = 602,           // dep_qualifying_suffix
-        S_603_120 = 603,                         // $@120
-        S_dep_override_no_update = 604,          // dep_override_no_update
-        S_dep_override_client_update = 605,      // dep_override_client_update
-        S_dep_replace_client_name = 606,         // dep_replace_client_name
-        S_607_121 = 607,                         // $@121
-        S_dep_generated_prefix = 608,            // dep_generated_prefix
-        S_609_122 = 609,                         // $@122
-        S_dep_hostname_char_set = 610,           // dep_hostname_char_set
-        S_611_123 = 611,                         // $@123
-        S_dep_hostname_char_replacement = 612,   // dep_hostname_char_replacement
-        S_613_124 = 613,                         // $@124
-        S_config_control = 614,                  // config_control
-        S_615_125 = 615,                         // $@125
-        S_sub_config_control = 616,              // sub_config_control
-        S_617_126 = 617,                         // $@126
-        S_config_control_params = 618,           // config_control_params
-        S_config_control_param = 619,            // config_control_param
-        S_config_databases = 620,                // config_databases
-        S_621_127 = 621,                         // $@127
-        S_config_fetch_wait_time = 622,          // config_fetch_wait_time
-        S_loggers = 623,                         // loggers
-        S_624_128 = 624,                         // $@128
-        S_loggers_entries = 625,                 // loggers_entries
-        S_logger_entry = 626,                    // logger_entry
-        S_627_129 = 627,                         // $@129
-        S_logger_params = 628,                   // logger_params
-        S_logger_param = 629,                    // logger_param
-        S_debuglevel = 630,                      // debuglevel
-        S_severity = 631,                        // severity
-        S_632_130 = 632,                         // $@130
-        S_output_options_list = 633,             // output_options_list
-        S_634_131 = 634,                         // $@131
-        S_output_options_list_content = 635,     // output_options_list_content
-        S_output_entry = 636,                    // output_entry
-        S_637_132 = 637,                         // $@132
-        S_output_params_list = 638,              // output_params_list
-        S_output_params = 639,                   // output_params
-        S_output = 640,                          // output
-        S_641_133 = 641,                         // $@133
-        S_flush = 642,                           // flush
-        S_maxsize = 643,                         // maxsize
-        S_maxver = 644,                          // maxver
-        S_pattern = 645,                         // pattern
-        S_646_134 = 646,                         // $@134
-        S_compatibility = 647,                   // compatibility
-        S_648_135 = 648,                         // $@135
-        S_compatibility_params = 649,            // compatibility_params
-        S_compatibility_param = 650,             // compatibility_param
-        S_lenient_option_parsing = 651,          // lenient_option_parsing
-        S_ignore_dhcp_server_identifier = 652,   // ignore_dhcp_server_identifier
-        S_ignore_rai_link_selection = 653,       // ignore_rai_link_selection
-        S_exclude_first_last_24 = 654            // exclude_first_last_24
+        S_POOL_ID = 130,                         // "pool-id"
+        S_RESERVATIONS = 131,                    // "reservations"
+        S_DUID = 132,                            // "duid"
+        S_HW_ADDRESS = 133,                      // "hw-address"
+        S_CIRCUIT_ID = 134,                      // "circuit-id"
+        S_CLIENT_ID = 135,                       // "client-id"
+        S_HOSTNAME = 136,                        // "hostname"
+        S_FLEX_ID = 137,                         // "flex-id"
+        S_RELAY = 138,                           // "relay"
+        S_IP_ADDRESS = 139,                      // "ip-address"
+        S_IP_ADDRESSES = 140,                    // "ip-addresses"
+        S_HOOKS_LIBRARIES = 141,                 // "hooks-libraries"
+        S_LIBRARY = 142,                         // "library"
+        S_PARAMETERS = 143,                      // "parameters"
+        S_EXPIRED_LEASES_PROCESSING = 144,       // "expired-leases-processing"
+        S_RECLAIM_TIMER_WAIT_TIME = 145,         // "reclaim-timer-wait-time"
+        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 146, // "flush-reclaimed-timer-wait-time"
+        S_HOLD_RECLAIMED_TIME = 147,             // "hold-reclaimed-time"
+        S_MAX_RECLAIM_LEASES = 148,              // "max-reclaim-leases"
+        S_MAX_RECLAIM_TIME = 149,                // "max-reclaim-time"
+        S_UNWARNED_RECLAIM_CYCLES = 150,         // "unwarned-reclaim-cycles"
+        S_DHCP4O6_PORT = 151,                    // "dhcp4o6-port"
+        S_DHCP_MULTI_THREADING = 152,            // "multi-threading"
+        S_ENABLE_MULTI_THREADING = 153,          // "enable-multi-threading"
+        S_THREAD_POOL_SIZE = 154,                // "thread-pool-size"
+        S_PACKET_QUEUE_SIZE = 155,               // "packet-queue-size"
+        S_CONTROL_SOCKET = 156,                  // "control-socket"
+        S_SOCKET_TYPE = 157,                     // "socket-type"
+        S_SOCKET_NAME = 158,                     // "socket-name"
+        S_DHCP_QUEUE_CONTROL = 159,              // "dhcp-queue-control"
+        S_ENABLE_QUEUE = 160,                    // "enable-queue"
+        S_QUEUE_TYPE = 161,                      // "queue-type"
+        S_CAPACITY = 162,                        // "capacity"
+        S_DHCP_DDNS = 163,                       // "dhcp-ddns"
+        S_ENABLE_UPDATES = 164,                  // "enable-updates"
+        S_QUALIFYING_SUFFIX = 165,               // "qualifying-suffix"
+        S_SERVER_IP = 166,                       // "server-ip"
+        S_SERVER_PORT = 167,                     // "server-port"
+        S_SENDER_IP = 168,                       // "sender-ip"
+        S_SENDER_PORT = 169,                     // "sender-port"
+        S_MAX_QUEUE_SIZE = 170,                  // "max-queue-size"
+        S_NCR_PROTOCOL = 171,                    // "ncr-protocol"
+        S_NCR_FORMAT = 172,                      // "ncr-format"
+        S_OVERRIDE_NO_UPDATE = 173,              // "override-no-update"
+        S_OVERRIDE_CLIENT_UPDATE = 174,          // "override-client-update"
+        S_REPLACE_CLIENT_NAME = 175,             // "replace-client-name"
+        S_GENERATED_PREFIX = 176,                // "generated-prefix"
+        S_TCP = 177,                             // "tcp"
+        S_JSON = 178,                            // "JSON"
+        S_WHEN_PRESENT = 179,                    // "when-present"
+        S_NEVER = 180,                           // "never"
+        S_ALWAYS = 181,                          // "always"
+        S_WHEN_NOT_PRESENT = 182,                // "when-not-present"
+        S_HOSTNAME_CHAR_SET = 183,               // "hostname-char-set"
+        S_HOSTNAME_CHAR_REPLACEMENT = 184,       // "hostname-char-replacement"
+        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 185, // "early-global-reservations-lookup"
+        S_IP_RESERVATIONS_UNIQUE = 186,          // "ip-reservations-unique"
+        S_RESERVATIONS_LOOKUP_FIRST = 187,       // "reservations-lookup-first"
+        S_LOGGERS = 188,                         // "loggers"
+        S_OUTPUT_OPTIONS = 189,                  // "output_options"
+        S_OUTPUT = 190,                          // "output"
+        S_DEBUGLEVEL = 191,                      // "debuglevel"
+        S_SEVERITY = 192,                        // "severity"
+        S_FLUSH = 193,                           // "flush"
+        S_MAXSIZE = 194,                         // "maxsize"
+        S_MAXVER = 195,                          // "maxver"
+        S_PATTERN = 196,                         // "pattern"
+        S_COMPATIBILITY = 197,                   // "compatibility"
+        S_LENIENT_OPTION_PARSING = 198,          // "lenient-option-parsing"
+        S_IGNORE_DHCP_SERVER_ID = 199,           // "ignore-dhcp-server-identifier"
+        S_IGNORE_RAI_LINK_SEL = 200,             // "ignore-rai-link-selection"
+        S_EXCLUDE_FIRST_LAST_24 = 201,           // "exclude-first-last-24"
+        S_TOPLEVEL_JSON = 202,                   // TOPLEVEL_JSON
+        S_TOPLEVEL_DHCP4 = 203,                  // TOPLEVEL_DHCP4
+        S_SUB_DHCP4 = 204,                       // SUB_DHCP4
+        S_SUB_INTERFACES4 = 205,                 // SUB_INTERFACES4
+        S_SUB_SUBNET4 = 206,                     // SUB_SUBNET4
+        S_SUB_POOL4 = 207,                       // SUB_POOL4
+        S_SUB_RESERVATION = 208,                 // SUB_RESERVATION
+        S_SUB_OPTION_DEFS = 209,                 // SUB_OPTION_DEFS
+        S_SUB_OPTION_DEF = 210,                  // SUB_OPTION_DEF
+        S_SUB_OPTION_DATA = 211,                 // SUB_OPTION_DATA
+        S_SUB_HOOKS_LIBRARY = 212,               // SUB_HOOKS_LIBRARY
+        S_SUB_DHCP_DDNS = 213,                   // SUB_DHCP_DDNS
+        S_SUB_CONFIG_CONTROL = 214,              // SUB_CONFIG_CONTROL
+        S_STRING = 215,                          // "constant string"
+        S_INTEGER = 216,                         // "integer"
+        S_FLOAT = 217,                           // "floating point"
+        S_BOOLEAN = 218,                         // "boolean"
+        S_YYACCEPT = 219,                        // $accept
+        S_start = 220,                           // start
+        S_221_1 = 221,                           // $@1
+        S_222_2 = 222,                           // $@2
+        S_223_3 = 223,                           // $@3
+        S_224_4 = 224,                           // $@4
+        S_225_5 = 225,                           // $@5
+        S_226_6 = 226,                           // $@6
+        S_227_7 = 227,                           // $@7
+        S_228_8 = 228,                           // $@8
+        S_229_9 = 229,                           // $@9
+        S_230_10 = 230,                          // $@10
+        S_231_11 = 231,                          // $@11
+        S_232_12 = 232,                          // $@12
+        S_233_13 = 233,                          // $@13
+        S_value = 234,                           // value
+        S_sub_json = 235,                        // sub_json
+        S_map2 = 236,                            // map2
+        S_237_14 = 237,                          // $@14
+        S_map_value = 238,                       // map_value
+        S_map_content = 239,                     // map_content
+        S_not_empty_map = 240,                   // not_empty_map
+        S_list_generic = 241,                    // list_generic
+        S_242_15 = 242,                          // $@15
+        S_list_content = 243,                    // list_content
+        S_not_empty_list = 244,                  // not_empty_list
+        S_list_strings = 245,                    // list_strings
+        S_246_16 = 246,                          // $@16
+        S_list_strings_content = 247,            // list_strings_content
+        S_not_empty_list_strings = 248,          // not_empty_list_strings
+        S_unknown_map_entry = 249,               // unknown_map_entry
+        S_syntax_map = 250,                      // syntax_map
+        S_251_17 = 251,                          // $@17
+        S_global_object = 252,                   // global_object
+        S_253_18 = 253,                          // $@18
+        S_global_object_comma = 254,             // global_object_comma
+        S_sub_dhcp4 = 255,                       // sub_dhcp4
+        S_256_19 = 256,                          // $@19
+        S_global_params = 257,                   // global_params
+        S_global_param = 258,                    // global_param
+        S_valid_lifetime = 259,                  // valid_lifetime
+        S_min_valid_lifetime = 260,              // min_valid_lifetime
+        S_max_valid_lifetime = 261,              // max_valid_lifetime
+        S_renew_timer = 262,                     // renew_timer
+        S_rebind_timer = 263,                    // rebind_timer
+        S_calculate_tee_times = 264,             // calculate_tee_times
+        S_t1_percent = 265,                      // t1_percent
+        S_t2_percent = 266,                      // t2_percent
+        S_cache_threshold = 267,                 // cache_threshold
+        S_cache_max_age = 268,                   // cache_max_age
+        S_decline_probation_period = 269,        // decline_probation_period
+        S_server_tag = 270,                      // server_tag
+        S_271_20 = 271,                          // $@20
+        S_parked_packet_limit = 272,             // parked_packet_limit
+        S_allocator = 273,                       // allocator
+        S_274_21 = 274,                          // $@21
+        S_echo_client_id = 275,                  // echo_client_id
+        S_match_client_id = 276,                 // match_client_id
+        S_authoritative = 277,                   // authoritative
+        S_ddns_send_updates = 278,               // ddns_send_updates
+        S_ddns_override_no_update = 279,         // ddns_override_no_update
+        S_ddns_override_client_update = 280,     // ddns_override_client_update
+        S_ddns_replace_client_name = 281,        // ddns_replace_client_name
+        S_282_22 = 282,                          // $@22
+        S_ddns_replace_client_name_value = 283,  // ddns_replace_client_name_value
+        S_ddns_generated_prefix = 284,           // ddns_generated_prefix
+        S_285_23 = 285,                          // $@23
+        S_ddns_qualifying_suffix = 286,          // ddns_qualifying_suffix
+        S_287_24 = 287,                          // $@24
+        S_ddns_update_on_renew = 288,            // ddns_update_on_renew
+        S_ddns_use_conflict_resolution = 289,    // ddns_use_conflict_resolution
+        S_ddns_ttl_percent = 290,                // ddns_ttl_percent
+        S_hostname_char_set = 291,               // hostname_char_set
+        S_292_25 = 292,                          // $@25
+        S_hostname_char_replacement = 293,       // hostname_char_replacement
+        S_294_26 = 294,                          // $@26
+        S_store_extended_info = 295,             // store_extended_info
+        S_statistic_default_sample_count = 296,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 297,    // statistic_default_sample_age
+        S_early_global_reservations_lookup = 298, // early_global_reservations_lookup
+        S_ip_reservations_unique = 299,          // ip_reservations_unique
+        S_reservations_lookup_first = 300,       // reservations_lookup_first
+        S_offer_lifetime = 301,                  // offer_lifetime
+        S_interfaces_config = 302,               // interfaces_config
+        S_303_27 = 303,                          // $@27
+        S_interfaces_config_params = 304,        // interfaces_config_params
+        S_interfaces_config_param = 305,         // interfaces_config_param
+        S_sub_interfaces4 = 306,                 // sub_interfaces4
+        S_307_28 = 307,                          // $@28
+        S_interfaces_list = 308,                 // interfaces_list
+        S_309_29 = 309,                          // $@29
+        S_dhcp_socket_type = 310,                // dhcp_socket_type
+        S_311_30 = 311,                          // $@30
+        S_socket_type = 312,                     // socket_type
+        S_outbound_interface = 313,              // outbound_interface
+        S_314_31 = 314,                          // $@31
+        S_outbound_interface_value = 315,        // outbound_interface_value
+        S_re_detect = 316,                       // re_detect
+        S_service_sockets_require_all = 317,     // service_sockets_require_all
+        S_service_sockets_retry_wait_time = 318, // service_sockets_retry_wait_time
+        S_service_sockets_max_retries = 319,     // service_sockets_max_retries
+        S_lease_database = 320,                  // lease_database
+        S_321_32 = 321,                          // $@32
+        S_sanity_checks = 322,                   // sanity_checks
+        S_323_33 = 323,                          // $@33
+        S_sanity_checks_params = 324,            // sanity_checks_params
+        S_sanity_checks_param = 325,             // sanity_checks_param
+        S_lease_checks = 326,                    // lease_checks
+        S_327_34 = 327,                          // $@34
+        S_extended_info_checks = 328,            // extended_info_checks
+        S_329_35 = 329,                          // $@35
+        S_hosts_database = 330,                  // hosts_database
+        S_331_36 = 331,                          // $@36
+        S_hosts_databases = 332,                 // hosts_databases
+        S_333_37 = 333,                          // $@37
+        S_database_list = 334,                   // database_list
+        S_not_empty_database_list = 335,         // not_empty_database_list
+        S_database = 336,                        // database
+        S_337_38 = 337,                          // $@38
+        S_database_map_params = 338,             // database_map_params
+        S_database_map_param = 339,              // database_map_param
+        S_database_type = 340,                   // database_type
+        S_341_39 = 341,                          // $@39
+        S_db_type = 342,                         // db_type
+        S_user = 343,                            // user
+        S_344_40 = 344,                          // $@40
+        S_password = 345,                        // password
+        S_346_41 = 346,                          // $@41
+        S_host = 347,                            // host
+        S_348_42 = 348,                          // $@42
+        S_port = 349,                            // port
+        S_name = 350,                            // name
+        S_351_43 = 351,                          // $@43
+        S_persist = 352,                         // persist
+        S_lfc_interval = 353,                    // lfc_interval
+        S_readonly = 354,                        // readonly
+        S_connect_timeout = 355,                 // connect_timeout
+        S_read_timeout = 356,                    // read_timeout
+        S_write_timeout = 357,                   // write_timeout
+        S_tcp_user_timeout = 358,                // tcp_user_timeout
+        S_max_reconnect_tries = 359,             // max_reconnect_tries
+        S_reconnect_wait_time = 360,             // reconnect_wait_time
+        S_on_fail = 361,                         // on_fail
+        S_362_44 = 362,                          // $@44
+        S_on_fail_mode = 363,                    // on_fail_mode
+        S_max_row_errors = 364,                  // max_row_errors
+        S_trust_anchor = 365,                    // trust_anchor
+        S_366_45 = 366,                          // $@45
+        S_cert_file = 367,                       // cert_file
+        S_368_46 = 368,                          // $@46
+        S_key_file = 369,                        // key_file
+        S_370_47 = 370,                          // $@47
+        S_cipher_list = 371,                     // cipher_list
+        S_372_48 = 372,                          // $@48
+        S_host_reservation_identifiers = 373,    // host_reservation_identifiers
+        S_374_49 = 374,                          // $@49
+        S_host_reservation_identifiers_list = 375, // host_reservation_identifiers_list
+        S_host_reservation_identifier = 376,     // host_reservation_identifier
+        S_duid_id = 377,                         // duid_id
+        S_hw_address_id = 378,                   // hw_address_id
+        S_circuit_id = 379,                      // circuit_id
+        S_client_id = 380,                       // client_id
+        S_flex_id = 381,                         // flex_id
+        S_dhcp_multi_threading = 382,            // dhcp_multi_threading
+        S_383_50 = 383,                          // $@50
+        S_multi_threading_params = 384,          // multi_threading_params
+        S_multi_threading_param = 385,           // multi_threading_param
+        S_enable_multi_threading = 386,          // enable_multi_threading
+        S_thread_pool_size = 387,                // thread_pool_size
+        S_packet_queue_size = 388,               // packet_queue_size
+        S_hooks_libraries = 389,                 // hooks_libraries
+        S_390_51 = 390,                          // $@51
+        S_hooks_libraries_list = 391,            // hooks_libraries_list
+        S_not_empty_hooks_libraries_list = 392,  // not_empty_hooks_libraries_list
+        S_hooks_library = 393,                   // hooks_library
+        S_394_52 = 394,                          // $@52
+        S_sub_hooks_library = 395,               // sub_hooks_library
+        S_396_53 = 396,                          // $@53
+        S_hooks_params = 397,                    // hooks_params
+        S_hooks_param = 398,                     // hooks_param
+        S_library = 399,                         // library
+        S_400_54 = 400,                          // $@54
+        S_parameters = 401,                      // parameters
+        S_402_55 = 402,                          // $@55
+        S_expired_leases_processing = 403,       // expired_leases_processing
+        S_404_56 = 404,                          // $@56
+        S_expired_leases_params = 405,           // expired_leases_params
+        S_expired_leases_param = 406,            // expired_leases_param
+        S_reclaim_timer_wait_time = 407,         // reclaim_timer_wait_time
+        S_flush_reclaimed_timer_wait_time = 408, // flush_reclaimed_timer_wait_time
+        S_hold_reclaimed_time = 409,             // hold_reclaimed_time
+        S_max_reclaim_leases = 410,              // max_reclaim_leases
+        S_max_reclaim_time = 411,                // max_reclaim_time
+        S_unwarned_reclaim_cycles = 412,         // unwarned_reclaim_cycles
+        S_subnet4_list = 413,                    // subnet4_list
+        S_414_57 = 414,                          // $@57
+        S_subnet4_list_content = 415,            // subnet4_list_content
+        S_not_empty_subnet4_list = 416,          // not_empty_subnet4_list
+        S_subnet4 = 417,                         // subnet4
+        S_418_58 = 418,                          // $@58
+        S_sub_subnet4 = 419,                     // sub_subnet4
+        S_420_59 = 420,                          // $@59
+        S_subnet4_params = 421,                  // subnet4_params
+        S_subnet4_param = 422,                   // subnet4_param
+        S_subnet = 423,                          // subnet
+        S_424_60 = 424,                          // $@60
+        S_subnet_4o6_interface = 425,            // subnet_4o6_interface
+        S_426_61 = 426,                          // $@61
+        S_subnet_4o6_interface_id = 427,         // subnet_4o6_interface_id
+        S_428_62 = 428,                          // $@62
+        S_subnet_4o6_subnet = 429,               // subnet_4o6_subnet
+        S_430_63 = 430,                          // $@63
+        S_interface = 431,                       // interface
+        S_432_64 = 432,                          // $@64
+        S_client_class = 433,                    // client_class
+        S_434_65 = 434,                          // $@65
+        S_require_client_classes = 435,          // require_client_classes
+        S_436_66 = 436,                          // $@66
+        S_reservations_global = 437,             // reservations_global
+        S_reservations_in_subnet = 438,          // reservations_in_subnet
+        S_reservations_out_of_pool = 439,        // reservations_out_of_pool
+        S_reservation_mode = 440,                // reservation_mode
+        S_441_67 = 441,                          // $@67
+        S_hr_mode = 442,                         // hr_mode
+        S_id = 443,                              // id
+        S_shared_networks = 444,                 // shared_networks
+        S_445_68 = 445,                          // $@68
+        S_shared_networks_content = 446,         // shared_networks_content
+        S_shared_networks_list = 447,            // shared_networks_list
+        S_shared_network = 448,                  // shared_network
+        S_449_69 = 449,                          // $@69
+        S_shared_network_params = 450,           // shared_network_params
+        S_shared_network_param = 451,            // shared_network_param
+        S_option_def_list = 452,                 // option_def_list
+        S_453_70 = 453,                          // $@70
+        S_sub_option_def_list = 454,             // sub_option_def_list
+        S_455_71 = 455,                          // $@71
+        S_option_def_list_content = 456,         // option_def_list_content
+        S_not_empty_option_def_list = 457,       // not_empty_option_def_list
+        S_option_def_entry = 458,                // option_def_entry
+        S_459_72 = 459,                          // $@72
+        S_sub_option_def = 460,                  // sub_option_def
+        S_461_73 = 461,                          // $@73
+        S_option_def_params = 462,               // option_def_params
+        S_not_empty_option_def_params = 463,     // not_empty_option_def_params
+        S_option_def_param = 464,                // option_def_param
+        S_option_def_name = 465,                 // option_def_name
+        S_code = 466,                            // code
+        S_option_def_code = 467,                 // option_def_code
+        S_option_def_type = 468,                 // option_def_type
+        S_469_74 = 469,                          // $@74
+        S_option_def_record_types = 470,         // option_def_record_types
+        S_471_75 = 471,                          // $@75
+        S_space = 472,                           // space
+        S_473_76 = 473,                          // $@76
+        S_option_def_space = 474,                // option_def_space
+        S_option_def_encapsulate = 475,          // option_def_encapsulate
+        S_476_77 = 476,                          // $@77
+        S_option_def_array = 477,                // option_def_array
+        S_option_data_list = 478,                // option_data_list
+        S_479_78 = 479,                          // $@78
+        S_option_data_list_content = 480,        // option_data_list_content
+        S_not_empty_option_data_list = 481,      // not_empty_option_data_list
+        S_option_data_entry = 482,               // option_data_entry
+        S_483_79 = 483,                          // $@79
+        S_sub_option_data = 484,                 // sub_option_data
+        S_485_80 = 485,                          // $@80
+        S_option_data_params = 486,              // option_data_params
+        S_not_empty_option_data_params = 487,    // not_empty_option_data_params
+        S_option_data_param = 488,               // option_data_param
+        S_option_data_name = 489,                // option_data_name
+        S_option_data_data = 490,                // option_data_data
+        S_491_81 = 491,                          // $@81
+        S_option_data_code = 492,                // option_data_code
+        S_option_data_space = 493,               // option_data_space
+        S_option_data_csv_format = 494,          // option_data_csv_format
+        S_option_data_always_send = 495,         // option_data_always_send
+        S_option_data_never_send = 496,          // option_data_never_send
+        S_pools_list = 497,                      // pools_list
+        S_498_82 = 498,                          // $@82
+        S_pools_list_content = 499,              // pools_list_content
+        S_not_empty_pools_list = 500,            // not_empty_pools_list
+        S_pool_list_entry = 501,                 // pool_list_entry
+        S_502_83 = 502,                          // $@83
+        S_sub_pool4 = 503,                       // sub_pool4
+        S_504_84 = 504,                          // $@84
+        S_pool_params = 505,                     // pool_params
+        S_pool_param = 506,                      // pool_param
+        S_pool_entry = 507,                      // pool_entry
+        S_508_85 = 508,                          // $@85
+        S_pool_id = 509,                         // pool_id
+        S_user_context = 510,                    // user_context
+        S_511_86 = 511,                          // $@86
+        S_comment = 512,                         // comment
+        S_513_87 = 513,                          // $@87
+        S_reservations = 514,                    // reservations
+        S_515_88 = 515,                          // $@88
+        S_reservations_list = 516,               // reservations_list
+        S_not_empty_reservations_list = 517,     // not_empty_reservations_list
+        S_reservation = 518,                     // reservation
+        S_519_89 = 519,                          // $@89
+        S_sub_reservation = 520,                 // sub_reservation
+        S_521_90 = 521,                          // $@90
+        S_reservation_params = 522,              // reservation_params
+        S_not_empty_reservation_params = 523,    // not_empty_reservation_params
+        S_reservation_param = 524,               // reservation_param
+        S_next_server = 525,                     // next_server
+        S_526_91 = 526,                          // $@91
+        S_server_hostname = 527,                 // server_hostname
+        S_528_92 = 528,                          // $@92
+        S_boot_file_name = 529,                  // boot_file_name
+        S_530_93 = 530,                          // $@93
+        S_ip_address = 531,                      // ip_address
+        S_532_94 = 532,                          // $@94
+        S_ip_addresses = 533,                    // ip_addresses
+        S_534_95 = 534,                          // $@95
+        S_duid = 535,                            // duid
+        S_536_96 = 536,                          // $@96
+        S_hw_address = 537,                      // hw_address
+        S_538_97 = 538,                          // $@97
+        S_client_id_value = 539,                 // client_id_value
+        S_540_98 = 540,                          // $@98
+        S_circuit_id_value = 541,                // circuit_id_value
+        S_542_99 = 542,                          // $@99
+        S_flex_id_value = 543,                   // flex_id_value
+        S_544_100 = 544,                         // $@100
+        S_hostname = 545,                        // hostname
+        S_546_101 = 546,                         // $@101
+        S_reservation_client_classes = 547,      // reservation_client_classes
+        S_548_102 = 548,                         // $@102
+        S_relay = 549,                           // relay
+        S_550_103 = 550,                         // $@103
+        S_relay_map = 551,                       // relay_map
+        S_client_classes = 552,                  // client_classes
+        S_553_104 = 553,                         // $@104
+        S_client_classes_list = 554,             // client_classes_list
+        S_client_class_entry = 555,              // client_class_entry
+        S_556_105 = 556,                         // $@105
+        S_client_class_params = 557,             // client_class_params
+        S_not_empty_client_class_params = 558,   // not_empty_client_class_params
+        S_client_class_param = 559,              // client_class_param
+        S_client_class_name = 560,               // client_class_name
+        S_client_class_test = 561,               // client_class_test
+        S_562_106 = 562,                         // $@106
+        S_client_class_template_test = 563,      // client_class_template_test
+        S_564_107 = 564,                         // $@107
+        S_only_if_required = 565,                // only_if_required
+        S_dhcp4o6_port = 566,                    // dhcp4o6_port
+        S_control_socket = 567,                  // control_socket
+        S_568_108 = 568,                         // $@108
+        S_control_socket_params = 569,           // control_socket_params
+        S_control_socket_param = 570,            // control_socket_param
+        S_control_socket_type = 571,             // control_socket_type
+        S_572_109 = 572,                         // $@109
+        S_control_socket_name = 573,             // control_socket_name
+        S_574_110 = 574,                         // $@110
+        S_dhcp_queue_control = 575,              // dhcp_queue_control
+        S_576_111 = 576,                         // $@111
+        S_queue_control_params = 577,            // queue_control_params
+        S_queue_control_param = 578,             // queue_control_param
+        S_enable_queue = 579,                    // enable_queue
+        S_queue_type = 580,                      // queue_type
+        S_581_112 = 581,                         // $@112
+        S_capacity = 582,                        // capacity
+        S_arbitrary_map_entry = 583,             // arbitrary_map_entry
+        S_584_113 = 584,                         // $@113
+        S_dhcp_ddns = 585,                       // dhcp_ddns
+        S_586_114 = 586,                         // $@114
+        S_sub_dhcp_ddns = 587,                   // sub_dhcp_ddns
+        S_588_115 = 588,                         // $@115
+        S_dhcp_ddns_params = 589,                // dhcp_ddns_params
+        S_dhcp_ddns_param = 590,                 // dhcp_ddns_param
+        S_enable_updates = 591,                  // enable_updates
+        S_server_ip = 592,                       // server_ip
+        S_593_116 = 593,                         // $@116
+        S_server_port = 594,                     // server_port
+        S_sender_ip = 595,                       // sender_ip
+        S_596_117 = 596,                         // $@117
+        S_sender_port = 597,                     // sender_port
+        S_max_queue_size = 598,                  // max_queue_size
+        S_ncr_protocol = 599,                    // ncr_protocol
+        S_600_118 = 600,                         // $@118
+        S_ncr_protocol_value = 601,              // ncr_protocol_value
+        S_ncr_format = 602,                      // ncr_format
+        S_603_119 = 603,                         // $@119
+        S_dep_qualifying_suffix = 604,           // dep_qualifying_suffix
+        S_605_120 = 605,                         // $@120
+        S_dep_override_no_update = 606,          // dep_override_no_update
+        S_dep_override_client_update = 607,      // dep_override_client_update
+        S_dep_replace_client_name = 608,         // dep_replace_client_name
+        S_609_121 = 609,                         // $@121
+        S_dep_generated_prefix = 610,            // dep_generated_prefix
+        S_611_122 = 611,                         // $@122
+        S_dep_hostname_char_set = 612,           // dep_hostname_char_set
+        S_613_123 = 613,                         // $@123
+        S_dep_hostname_char_replacement = 614,   // dep_hostname_char_replacement
+        S_615_124 = 615,                         // $@124
+        S_config_control = 616,                  // config_control
+        S_617_125 = 617,                         // $@125
+        S_sub_config_control = 618,              // sub_config_control
+        S_619_126 = 619,                         // $@126
+        S_config_control_params = 620,           // config_control_params
+        S_config_control_param = 621,            // config_control_param
+        S_config_databases = 622,                // config_databases
+        S_623_127 = 623,                         // $@127
+        S_config_fetch_wait_time = 624,          // config_fetch_wait_time
+        S_loggers = 625,                         // loggers
+        S_626_128 = 626,                         // $@128
+        S_loggers_entries = 627,                 // loggers_entries
+        S_logger_entry = 628,                    // logger_entry
+        S_629_129 = 629,                         // $@129
+        S_logger_params = 630,                   // logger_params
+        S_logger_param = 631,                    // logger_param
+        S_debuglevel = 632,                      // debuglevel
+        S_severity = 633,                        // severity
+        S_634_130 = 634,                         // $@130
+        S_output_options_list = 635,             // output_options_list
+        S_636_131 = 636,                         // $@131
+        S_output_options_list_content = 637,     // output_options_list_content
+        S_output_entry = 638,                    // output_entry
+        S_639_132 = 639,                         // $@132
+        S_output_params_list = 640,              // output_params_list
+        S_output_params = 641,                   // output_params
+        S_output = 642,                          // output
+        S_643_133 = 643,                         // $@133
+        S_flush = 644,                           // flush
+        S_maxsize = 645,                         // maxsize
+        S_maxver = 646,                          // maxver
+        S_pattern = 647,                         // pattern
+        S_648_134 = 648,                         // $@134
+        S_compatibility = 649,                   // compatibility
+        S_650_135 = 650,                         // $@135
+        S_compatibility_params = 651,            // compatibility_params
+        S_compatibility_param = 652,             // compatibility_param
+        S_lenient_option_parsing = 653,          // lenient_option_parsing
+        S_ignore_dhcp_server_identifier = 654,   // ignore_dhcp_server_identifier
+        S_ignore_rai_link_selection = 655,       // ignore_rai_link_selection
+        S_exclude_first_last_24 = 656            // exclude_first_last_24
       };
     };
 
@@ -3743,6 +3746,21 @@ switch (yykind)
         return symbol_type (token::TOKEN_CLIENT_CLASS, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_POOL_ID (location_type l)
+      {
+        return symbol_type (token::TOKEN_POOL_ID, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_POOL_ID (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_POOL_ID, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5393,8 +5411,8 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1327,     ///< Last index in yytable_.
-      yynnts_ = 437,  ///< Number of nonterminal symbols.
+      yylast_ = 1335,     ///< Last index in yytable_.
+      yynnts_ = 438,  ///< Number of nonterminal symbols.
       yyfinal_ = 28 ///< Termination state number.
     };
 
@@ -5461,10 +5479,10 @@ switch (yykind)
      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217
+     215,   216,   217,   218
     };
     // Last valid token kind.
-    const int code_max = 472;
+    const int code_max = 473;
 
     if (t <= 0)
       return symbol_kind::S_YYEOF;
@@ -5637,7 +5655,7 @@ switch (yykind)
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 5641 "dhcp4_parser.h"
+#line 5659 "dhcp4_parser.h"
 
 
 
index 0d1f840dcf43f5363b856c5c8c67961dced52664..6f8346a3c0b6e4104adcd5be8602364012901c10 100644 (file)
@@ -185,6 +185,7 @@ using namespace std;
   TEMPLATE_TEST "template-test"
   ONLY_IF_REQUIRED "only-if-required"
   CLIENT_CLASS "client-class"
+  POOL_ID "pool-id"
 
   RESERVATIONS "reservations"
   DUID "duid"
@@ -2093,6 +2094,7 @@ pool_params: pool_param
            ;
 
 pool_param: pool_entry
+          | pool_id
           | option_data_list
           | client_class
           | require_client_classes
@@ -2110,6 +2112,12 @@ pool_entry: POOL {
     ctx.leave();
 };
 
+pool_id: POOL_ID COLON INTEGER {
+    ctx.unique("pool-id", ctx.loc2pos(@1));
+    ElementPtr id(new IntElement($3, ctx.loc2pos(@3)));
+    ctx.stack_.back()->set("pool-id", id);
+};
+
 user_context: USER_CONTEXT {
     ctx.enter(ctx.NO_KEYWORD);
 } COLON map_value {
index 5500d988689d988d8a5e9bfcd73854914a2cd063..c9cac38afc486f2b15986172e89b4c5789106914 100644 (file)
@@ -1,6 +1,6 @@
-#line 1 "dhcp6_lexer.cc"
+#line 2 "dhcp6_lexer.cc"
 
-#line 3 "dhcp6_lexer.cc"
+#line 4 "dhcp6_lexer.cc"
 
 #define  YY_INT_ALIGNED short int
 
@@ -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 230
-#define YY_END_OF_BUFFER 231
+#define YY_NUM_RULES 231
+#define YY_END_OF_BUFFER 232
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[2202] =
+static const flex_int16_t yy_accept[2206] =
     {   0,
-      223,  223,    0,    0,    0,    0,    0,    0,    0,    0,
-      231,  229,   10,   11,  229,    1,  223,  220,  223,  223,
-      229,  222,  221,  229,  229,  229,  229,  229,  216,  217,
-      229,  229,  229,  218,  219,    5,    5,    5,  229,  229,
-      229,   10,   11,    0,    0,  211,    0,    0,    0,    0,
+      224,  224,    0,    0,    0,    0,    0,    0,    0,    0,
+      232,  230,   10,   11,  230,    1,  224,  221,  224,  224,
+      230,  223,  222,  230,  230,  230,  230,  230,  217,  218,
+      230,  230,  230,  219,  220,    5,    5,    5,  230,  230,
+      230,   10,   11,    0,    0,  212,    0,    0,    0,    0,
         0,    0,    0,    0,    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,  223,
-      223,    0,  222,  223,    3,    2,    6,    0,  223,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    1,  224,
+      224,    0,  223,  224,    3,    2,    6,    0,  224,    0,
         0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
 
-      212,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  214,    0,    0,    0,    0,    0,
+      213,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  215,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -722,13 +722,13 @@ static const flex_int16_t yy_accept[2202] =
         0,    0,    0,    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,  180,    0,
+        0,    0,    0,    0,    0,    8,    0,    0,  181,    0,
 
-        0,  181,    0,    0,    0,    0,    0,    0,    0,  213,
-      215,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  182,    0,    0,    0,    0,    0,    0,    0,  214,
+      216,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  126,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  127,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -737,214 +737,214 @@ static const flex_int16_t yy_accept[2202] =
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      228,  226,    0,  225,  224,    0,    0,    0,    0,    0,
-      179,    0,   28,    0,   27,    0,    0,  133,    0,    0,
+      229,  227,    0,  226,  225,    0,    0,    0,    0,    0,
+      180,    0,   28,    0,   27,    0,    0,  134,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    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,    0,  131,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  227,  224,    0,    0,    0,
+        0,    0,    0,    0,    0,  228,  225,    0,    0,    0,
         0,   29,    0,   31,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  137,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  138,    0,    0,    0,    0,
         0,    0,  110,    0,    0,    0,    0,    0,    0,    0,
-        0,  164,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  165,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,   61,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,  109,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  120,    0,   62,    0,    0,    0,    0,    0,    0,
+        0,  120,    0,    0,   62,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  158,    0,
-      184,    0,   55,    0,   59,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  159,
+        0,  185,    0,   55,    0,   59,    0,    0,    0,    0,
 
-       37,   34,   33,    0,    0,    0,    0,  172,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   37,   34,   33,    0,    0,    0,    0,  173,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  149,    0,    0,    0,    0,    0,    0,
-        0,    0,  183,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   57,    0,    0,   32,
+        0,    0,    0,    0,  150,    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,  113,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   57,    0,    0,
+       32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  113,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  168,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    7,   35,
+        0,  174,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  169,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        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,    0,
-        0,    0,    0,  132,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  133,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  151,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      148,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  115,    0,    0,    0,    0,    0,    0,
+      152,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  149,    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,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  123,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  124,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  122,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  123,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  167,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  177,  146,    0,    0,
-        0,    0,    0,    0,    0,  150,   56,    0,    0,    0,
-        0,    0,    0,   70,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  152,    0,    0,   63,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  168,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  178,
+      147,    0,    0,    0,    0,    0,    0,    0,  151,   56,
+        0,    0,    0,    0,    0,    0,   70,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  153,    0,    0,   63,
+      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,  104,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  204,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  104,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  129,    0,    0,    0,    0,
+        0,    0,    0,  205,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      166,    0,    0,    0,    0,    0,    0,    0,   78,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  167,    0,    0,    0,    0,    0,
+        0,    0,   78,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   60,    0,  114,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   60,
 
-        0,  163,    0,    0,    0,    0,    0,   54,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  154,    0,    0,    0,
+        0,  114,    0,    0,    0,  164,    0,    0,    0,    0,
+        0,   54,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   91,    0,    0,    0,    0,
-       77,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
+        0,    0,    0,    0,   77,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  205,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  206,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  124,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  125,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    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,  178,   14,    0,
+        0,    0,    0,    0,    0,    0,   41,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
+        0,  179,   14,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  169,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  153,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  170,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  154,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  165,  182,    0,   40,    0,  174,    0,
+        0,    0,    0,    0,    0,    0,    0,  166,  183,    0,
+       40,    0,  175,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   20,
+        0,  112,    0,    0,  107,    0,    0,    0,    0,    0,
+      177,    0,    0,   58,    0,  116,    0,  204,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   20,    0,  112,    0,    0,
-      107,    0,    0,    0,    0,    0,  176,    0,    0,   58,
-        0,  116,    0,  203,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
-        0,    0,    0,    0,    0,    0,    0,  142,  143,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  111,
-        0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   89,    0,    0,    0,    0,    0,    0,
+        0,  143,  144,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  111,    0,    0,    0,   79,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  171,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  138,    0,
+        0,    0,  172,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  139,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  108,  132,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      108,  131,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   86,    0,    0,
-        0,    0,    0,   17,    0,   15,    0,    0,  200,  199,
+        0,   86,    0,    0,    0,    0,    0,   17,    0,   15,
+        0,    0,  201,  200,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   30,    0,    0,    0,
+
+      158,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   30,    0,    0,    0,  157,    0,    0,    0,
+      194,    0,    0,  203,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  126,    0,  163,    0,
+       46,    0,    0,   64,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   19,    0,    0,    0,    0,    0,
+        0,   92,    0,    0,  128,   66,   87,    0,    0,  171,
+        0,    0,    0,    0,  162,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   76,    0,  122,
+        0,    0,    0,  146,    0,    0,    0,  210,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  193,    0,    0,  202,
+        0,    0,    0,  119,    0,    0,    0,    0,  186,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  125,    0,  162,    0,   46,    0,    0,   64,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       19,    0,    0,    0,    0,    0,    0,   92,    0,    0,
-      127,   66,   87,    0,    0,  170,    0,    0,    0,    0,
-      161,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   76,    0,  121,    0,    0,    0,  145,
-        0,    0,    0,  209,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  119,
-        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,    0,    0,
+        0,   45,    0,    0,    0,    0,    0,    0,    0,    0,
+      160,    0,    0,    0,   67,    0,    0,    0,  156,   51,
+        0,    0,    0,  199,   38,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   12,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   49,
+        0,    0,    0,   48,    0,    0,   18,    0,    0,    0,
+       75,    0,    0,    0,    0,    0,  148,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   45,    0,    0,
-        0,    0,    0,    0,    0,    0,  159,    0,    0,    0,
-       67,    0,    0,    0,  155,   51,    0,    0,    0,  198,
-       38,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   12,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,   49,    0,    0,    0,   48,
-        0,    0,   18,    0,    0,    0,   75,    0,    0,    0,
-        0,    0,  147,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   83,
-        0,  144,    0,    0,    0,   65,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  117,
-        0,    0,    0,    0,    0,    0,  175,    0,    0,    0,
-       50,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  194,    0,    0,    0,    0,    0,    0,    0,    0,
-
+        0,    0,    0,   83,    0,  145,    0,    0,    0,   65,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  106,    0,   71,    0,    0,    0,    0,   36,
-        0,   52,    0,    0,    0,    0,    0,    0,    0,  103,
+        0,    0,    0,  117,    0,    0,    0,    0,    0,    0,
+      176,    0,    0,    0,   50,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  195,    0,    0,    0,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       24,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      191,    0,    0,    0,    0,  160,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  128,    0,    0,
-        0,    0,    0,   72,    0,    0,    0,    0,   68,  196,
-        0,    0,    0,    0,    0,    0,    0,    0,   95,    0,
+        0,    0,    0,    0,    0,    0,  106,    0,   71,    0,
+        0,    0,    0,   36,    0,   52,    0,    0,    0,    0,
+        0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   24,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  192,    0,    0,    0,    0,  161,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  129,    0,    0,    0,    0,    0,   72,    0,    0,
+        0,    0,   68,  197,    0,    0,    0,    0,    0,    0,
+        0,    0,   95,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,   25,   39,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  197,    0,    0,   13,    0,    0,
+        0,    0,    0,    0,    0,    0,   25,   39,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  198,    0,
+        0,   13,    0,    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,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  201,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  190,    0,   85,    0,
-       84,    0,   21,    0,   80,    0,    0,    0,    0,    0,
+      191,    0,   85,    0,   84,    0,   21,    0,   80,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  141,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  118,    0,    0,    0,  189,    0,    0,
+        0,    0,    0,    0,    0,  142,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  118,    0,    0,
 
-        0,    0,    0,   74,    0,    0,   90,    0,   69,    0,
-       23,    0,  134,    0,    0,    0,    0,    0,    0,    0,
-        0,  105,    0,    0,    0,    0,    0,    0,    0,  101,
-        0,    0,    0,    0,    0,   47,    0,    0,    0,    0,
+        0,  190,    0,    0,    0,    0,    0,   74,    0,    0,
+       90,    0,   69,    0,   23,    0,  135,    0,    0,    0,
+        0,    0,    0,    0,    0,  105,    0,    0,    0,    0,
+        0,    0,    0,  101,    0,    0,    0,    0,    0,   47,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       73,    0,    0,    0,    0,    0,    0,   99,    0,    0,
+        0,    0,    0,    0,   73,    0,    0,    0,    0,    0,
+        0,   99,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   53,    0,    0,  100,
-        0,    0,    0,    0,  195,    0,    0,    0,    0,  207,
-
-      210,   82,   81,   22,    0,  139,  156,  135,    0,    0,
-        0,    0,    0,    0,    0,    0,   96,    0,    0,    0,
-        0,    0,    0,    0,    0,  187,    0,    0,    0,    0,
-        0,    0,  192,    0,   98,    0,   88,    0,    0,    0,
-        0,    0,    0,  136,    0,    0,    0,    0,    0,    0,
-        0,  186,    0,    0,   26,  208,    0,    0,    0,    0,
+       53,    0,    0,  100,    0,    0,    0,    0,  196,    0,
+
+        0,    0,    0,  208,  211,   82,   81,   22,    0,  140,
+      157,  136,    0,    0,    0,    0,    0,    0,    0,    0,
+       96,    0,    0,    0,    0,    0,    0,    0,    0,  188,
+        0,    0,    0,    0,    0,    0,  193,    0,   98,    0,
+       88,    0,    0,    0,    0,    0,    0,  137,    0,    0,
+        0,    0,    0,    0,    0,  187,    0,    0,   26,  209,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   97,    0,    0,    0,    0,   44,   42,    0,    0,
-        0,  102,    0,    0,  140,    0,   94,    0,    0,    0,
-        0,    0,    0,    0,    0,   93,    0,  188,   43,  206,
+        0,    0,    0,    0,    0,   97,    0,    0,    0,    0,
+       44,   42,    0,    0,    0,  102,    0,    0,  141,    0,
+       94,    0,    0,    0,    0,    0,    0,    0,    0,   93,
 
-        0
+        0,  189,   43,  207,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -991,282 +991,283 @@ static const YY_CHAR yy_meta[74] =
         1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[2210] =
+static const flex_int16_t yy_base[2214] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2592, 2593,   34, 2588,  145,    0,  207, 2593,  214,  221,
-       13,  228, 2593, 2568,  118,   25,    2,    6, 2593, 2593,
-       73,   11,   17, 2593, 2593, 2593,  104, 2576, 2529,    0,
-     2566,  108, 2583,   24,  256, 2593,   67, 2532, 2552,   84,
-       75, 2552,   88,  226,   91,   89,  284,  196,  206,  219,
-      208,  235,  241,   60,  277, 2532,  279,  291,  253,  293,
-      316, 2515,  282,  317,  356,  325, 2534,  305,    0,  378,
-      385,  406,  415,  422, 2593,    0, 2593,  429,  436,  218,
-      219,  287,  333,  354,  342, 2593, 2531, 2572, 2593,  382,
-
-     2593,  428,  346, 2529, 2570,  356,   10,  336,  409,  186,
-      417,  314,  319, 2569,    0,  489,  416, 2511,  409, 2510,
-     2511, 2517,  409, 2503, 2504, 2509,  412, 2519, 2502, 2511,
-     2501,  415,  416,  290, 2504, 2502,  425, 2491, 2549,  412,
-     2494, 2547, 2487,  440, 2508, 2508, 2502,  440, 2495, 2493,
-     2494, 2486, 2491, 2485,  435, 2496,  467, 2481, 2480, 2494,
-      462, 2532, 2479,  437, 2491,  446, 2479,  497, 2480,  483,
-     2492, 2489, 2490,  472, 2488, 2523, 2522,  486,  464, 2469,
-     2473,  483, 2469, 2461, 2478, 2470, 2472,    0,  487,  498,
-      484,  505,  500,  503, 2468, 2593,  525, 2463, 2593,  516,
-
-      501, 2593, 2517,  535, 2516,  536, 2515,  532, 2514, 2593,
-     2593,  578,  513,  542, 2473, 2465, 2469, 2470, 2450, 2461,
-     2463, 2462,  509,  517, 2500, 2464, 2445, 2442, 2450, 2456,
-     2444, 2458, 2454, 2445, 2454, 2454, 2449, 2441, 2443, 2446,
-     2426, 2430, 2443, 2445, 2442, 2434, 2424, 2427, 2441, 2593,
-     2427, 2435,   80, 2473, 2419, 2428, 2470, 2417, 2427, 2467,
-      555, 2426, 2465, 2410, 2412, 2423, 2461,  547, 2465, 2419,
-     2399, 2414,  570, 2404, 2410,  531, 2401, 2399,  529, 2399,
-     2405, 2396, 2395, 2408, 2401, 2391, 2402, 2406, 2405, 2399,
-      550, 2406, 2401, 2393, 2383, 2398, 2393, 2397, 2378, 2394,
-
-     2380, 2386, 2393, 2375,  537, 2380, 2377, 2376,  289, 2375,
-     2370, 2384, 2383,  582, 2382, 2385, 2367, 2375, 2363,  562,
-     2593, 2593,  584, 2593, 2593, 2361,  192, 2408,  586, 2419,
-     2593,  579, 2593, 2418, 2593, 2412,  633, 2593, 2374,  538,
-     2351, 2370, 2353, 2370, 2406, 2366, 2356, 2408, 2363, 2366,
-     2357, 2360, 2346, 2357,  572, 2396, 2354, 2351, 2352,  604,
-     2356, 2396, 2331, 2343, 2338, 2335, 2331, 2333, 2336, 2383,
-     2340, 2329, 2345, 2379, 2325,  612, 2338, 2338, 2321, 2322,
-     2335, 2333, 2331, 2331, 2330, 2325, 2332, 2327, 2312,  576,
-     2321, 2324, 2319,  574, 2318, 2314, 2364,  569,  581, 2593,
-
-     2323, 2357, 2307, 2306, 2299, 2301, 2313, 2304, 2311, 2292,
-     2309, 2301, 2297, 2302,  611, 2349, 2302,  612, 2299, 2302,
-     2302, 2300,  573, 2290, 2302,  604, 2277, 2278, 2299, 2290,
-     2280, 2277, 2291,  614, 2277, 2289, 2288, 2287, 2282, 2324,
-     2284, 2283, 2282, 2281, 2264, 2272, 2322, 2281, 2320, 2260,
-     2318, 2260,  634, 2273, 2271, 2593, 2593, 2271,  629, 2313,
-     2312, 2593, 2311, 2593,  638,  686, 2270,  641, 2309, 2303,
-     2256, 2258, 2260, 2247, 2244, 2593, 2249, 2242, 2254, 2257,
-     2244, 2243, 2593, 2253,  626, 2244, 2241, 2253,  625, 2238,
-     2240, 2593, 2285, 2245, 2230, 2232, 2243, 2241, 2241, 2235,
-
-      709, 2242, 2230, 2223, 2274, 2593, 2221, 2237, 2271, 2275,
-     2231, 2225, 2227, 2228, 2212, 2221, 2263, 2214, 2213, 2208,
-     2207, 2209, 2205, 2201,  635, 2220, 2194, 2201, 2206, 2199,
-     2215, 2249, 2253, 2593, 2198, 2194,  710, 2202, 2201, 2195,
-     2202, 2187, 2197, 2185, 2199, 2199, 2187, 2183, 2188, 2184,
-     2179, 2593, 2236, 2593, 2178, 2177, 2170, 2187, 2226, 2225,
-     2170, 2169, 2174, 2183, 2177, 2171, 2180,  711, 2217, 2179,
-     2163, 2158, 2154, 2160,  344, 2174, 2167, 2171, 2154, 2212,
-     2153, 2153, 2204, 2149, 2150, 2149, 2147, 2164, 2593, 2160,
-     2593, 2197, 2593, 2148, 2593, 2158, 2194, 2193, 2153, 2196,
-
-     2593, 2593, 2593,  539,  661, 2136,  712, 2593,  661, 2154,
-     2134, 2144, 2186, 2185, 2130, 2140, 2182, 2127, 2134, 2127,
-     2135, 2138, 2120, 2120, 2135, 2134, 2118,  591, 2132, 2131,
-     2115, 2130, 2112, 2159, 2126, 2123, 2163, 2107, 2109, 2121,
-     2121, 2119, 2119, 2593, 2104, 2101, 2159, 2114, 2106, 2112,
-     2103, 2111, 2593, 2096, 2107, 2111, 2093, 2105, 2097,  605,
-     2088, 2087, 2081, 2086, 2083, 2098, 2097, 2098, 2077, 2087,
-     2093, 2136, 2091, 2090, 2082, 2073, 2593, 2074, 2076, 2593,
-     2071, 2077, 2082, 2121, 2120,   16, 2081, 2118, 2063, 2116,
-     2063, 2066, 2064, 2066, 2057, 2593, 2071, 2057,  719, 2049,
-
-     2053, 2069, 2066, 2061, 2057, 2102, 2054, 2061, 2099, 2593,
-     2045, 2043, 2057, 2056, 2059, 2093, 2092, 2039, 2090, 2050,
-     2034, 2087, 2086, 2593, 2031, 2045, 2040,  688,   93,  350,
-      366,  425,  487,  623,  623,  638,  650,  643, 2593, 2593,
-      690,  701,  669,  667,  692,  686,  675,  671,  685,  686,
-      696,  739,  699,  699,  738,  741,  695,  691,  697,  707,
-      712,  698,  701,  704,  713,  713,  697,  754,  716,  708,
-      718,  759,  722,  715,  715,  717,  721,  727,  767,  730,
-      774,  732,  733, 2593,  736,  731,  722,  737,  742,  739,
-      736,  743,  742,  730,  744,  742,  750,  786,  748,  793,
-
-      794,  738,  751,  737,  747,  794,  752,  802, 2593,  803,
-      759,  757,  759,  755,  749,  765,  810,  806,  769,  758,
-     2593,  760,  771,  760,  773,  763,  776,  820,  779,  764,
-      823,  766,  781, 2593,  775,  769,  780,  765,  776,  789,
-      780,  769,  775,  830,  794,  778,  778,  791,  835,  836,
-      783,  801,  796,  801,  798,  842,  784,  796,  797,  804,
-      795,  792, 2593,  858,  815,  816,  804,  818,  808,  811,
-      822,  813,  819,  820,  864,  840,  814,  828,  810,  817,
-      831,  876,  833,  830,  828, 2593,  832,  827,  842,  839,
-      825,  827,  846,  843,  844,  832,  839,  840,  849,  888,
-
-      854,  890,  852,  842,  856,  842,  841,  847,  903,  850,
-      845,  846,  852,  868,  851,  905,  860,  907, 2593,  871,
-      871,  864,  875,  873,  918,  860,  862,  877,  878,  866,
-      864,  926,  883,  869,  875,  873, 2593, 2593,  889,  888,
-      889,  894,  882,  892,  894, 2593, 2593,  894,  896,  883,
-      901,  888,  890, 2593,  887,  905,  892,  892,  943,  890,
-      894,  912,  953, 2593,  914,  955, 2593,  900,  914,  914,
-      959,  907,  906,  910,  904,  920,  965,  918,  908,  909,
-      905,  915,  919,  930,  931,  926,  928,  921,  923,  919,
-      936,  926,  941,  924,  983,  940,  945,  922,  945,  931,
-
-      930, 2593,  937,  939,  988,  989,  941,  954,  992,  939,
-      954,  948,  973,  981, 1003,  951, 1000,  962, 1002, 2593,
-     1008,  951,  970,  960,  959,  954,  955,  967,  962,  958,
-      976,  962,  963,  973,  982, 1018,  969,  967,  985,  978,
-      973, 1026, 1032,  989,  980, 2593,  994,  985,  993,  995,
-      980,  996,  986,  998,  995,  993, 1040, 1006,  990,  991,
-     2593, 1007, 1010,  993,  995, 1053,  996, 1015, 2593, 1014,
-     1017, 1004,  999, 1017, 1005, 1058, 1016, 1012, 1009, 1062,
-     1011, 1064, 1026, 1012, 1030, 1030, 1030, 1016, 1031, 1023,
-     1019, 1037, 1036, 1023, 1040, 2593, 1024, 2593, 1033, 1080,
-
-     1033, 2593, 1041, 1044, 1037, 1091, 1038, 2593, 1041, 1046,
-     1090, 1041, 1042, 1054, 1048, 1049, 1047, 1058, 1103, 1047,
-     1048, 1106, 1107, 1051, 1063, 1056, 2593, 1053, 1061, 1059,
-     1110, 1052, 1073, 1059, 1060, 1061, 1062, 1068, 1076, 1067,
-     1081, 1082, 1083, 1099, 1104, 2593, 1086, 1091, 1074, 1074,
-     2593, 1075, 1077, 1088, 1078, 1098, 1097, 1088, 1099, 1142,
-     1084, 1104, 1097, 1101, 1105, 1088, 1105, 1106, 1097, 1152,
-     1099, 1103, 2593, 1150, 1101, 1119, 1101, 1101, 1122, 1119,
-     1159, 1108, 1126, 1114, 1128, 1114, 1122, 1131, 1111, 1126,
-     1133, 1175, 1176, 2593, 1129, 1178, 1179, 1121, 1131, 1141,
-
-     1125, 1145, 1128, 1130, 1130, 1137, 1146, 1134, 1141, 1136,
-     1143, 1155, 1196, 1143, 1198, 1143, 1160, 1201, 1151, 1155,
-     1153, 1151, 1146, 1207, 1158, 1155, 1210, 1160, 1212, 1208,
-     1214, 1167, 2593, 1156, 1173, 1166, 1157, 1176, 1170, 1165,
-     1176, 1177, 1173, 1185, 2593, 1169, 1165, 2593, 2593, 1171,
-     1231, 1190, 1171, 1190, 1191, 1193, 1232, 1185, 1239, 1240,
-     1193, 1198, 1192, 1190, 1201, 1183, 1188, 1194, 1228, 1219,
-     1251, 1206, 1206, 1210, 1255, 1198, 1198, 1201, 1218, 1213,
-     1217, 1212, 2593, 1209, 1205, 1222, 1202, 1223, 1213, 1212,
-     1265, 1218, 2593, 1232, 1230, 1233, 1217, 1226, 1231, 1236,
-
-     1222, 1282, 1235, 1240, 1227, 1241, 1239, 1231, 1237, 1233,
-     1251, 1252, 1253, 2593, 2593, 1251, 2593, 1253, 2593, 1238,
-     1249, 1240, 1259, 1252, 1250, 1302, 1259, 1256, 1300, 1264,
-     1253, 1260, 1265, 1262, 1268, 2593, 1261, 2593, 1253, 1314,
-     2593, 1315, 1262, 1269, 1313, 1275, 2593, 1276, 1264, 2593,
-     1274, 2593, 1265, 2593, 1265, 1266, 1269, 1283, 1288, 1271,
-     1282, 1331, 1288, 1289, 1329, 1285, 1336, 1332, 1338, 2593,
-     1289, 1286, 1341, 1342, 1299, 1300, 1302, 2593, 2593, 1294,
-     1289, 1343, 1292, 1308, 1292, 1304, 1293, 1324, 1355, 2593,
-     1312, 1303, 1314, 2593, 1359, 1296, 1307, 1322, 1358, 1310,
-
-     1321, 1309, 1323, 1324, 1321, 1365, 1328, 1330, 1319, 1329,
-     1335, 1323, 1323, 1378, 1374, 1375, 1381, 1339, 2593, 1341,
-     1340, 1342, 1334, 1337, 1346, 1347, 1344, 1334, 1337, 1337,
-     1396, 1343, 1398, 1345, 1400, 1343, 1348, 1404, 2593, 1362,
-     1341, 1356, 1349, 1352, 1365, 1368, 1367, 1365, 1414, 1368,
-     2593, 2593, 1364, 1374, 1359, 1415, 1362, 1422, 1378, 1364,
-     1425, 1426, 1427, 1371, 1381, 1430, 1387, 2593, 1379, 1380,
-     1382, 1435, 1378, 2593, 1395, 2593, 1394, 1384, 2593, 2593,
-     1397, 1380, 1400, 1401, 1387, 1389, 1448, 1398, 1450, 1399,
-     1393, 1432, 2593, 1454, 1404, 1451, 2593, 1399, 1458, 1408,
-
-     1402, 1399, 1402, 1404, 1400, 1422, 1461, 1414, 1426, 1429,
-     1426, 1418, 1421, 1414, 1474, 1422, 2593, 1420, 1419, 2593,
-     1421, 1480, 1433, 1424, 1478, 1440, 1440, 1443, 1443, 1440,
-     1484, 1446, 2593, 1438, 2593, 1439, 2593, 1449, 1441, 2593,
-     1490, 1452, 1453, 1450, 1494, 1442, 1457, 1497, 1459, 1451,
-     2593, 1448, 1448, 1454, 1453, 1451, 1505, 2593, 1467, 1467,
-     2593, 2593, 2593, 1508, 1455, 2593, 1472, 1457, 1458, 1464,
-     2593, 1473, 1520, 1468, 1460, 1466, 1476, 1488, 1481, 1487,
-     1477, 1532, 1485, 2593, 1494, 2593, 1491, 1536, 1511, 2593,
-     1495, 1480, 1540, 2593, 1541, 1498, 1503, 1485, 1545, 1546,
-
-     1542, 1506, 1503, 1499, 1492, 1499, 1548, 1506, 1507, 2593,
-     1497, 1513, 1511, 1560, 2593, 1498, 1557, 1521, 1522, 1518,
-     1562, 1510, 1515, 1513, 1572, 1528, 1516, 1575, 1571, 1526,
-     1578, 1539, 1528, 1522, 1582, 1524, 1533, 1526, 1540, 1543,
-     1588, 1530, 1547, 1543, 1541, 1534, 1549, 1533, 1591, 1592,
-     1593, 1594, 1557, 1550, 1549, 1549, 1544, 2593, 1552, 1558,
-     1549, 1550, 1549, 1551, 1606, 1552, 2593, 1548, 1566, 1615,
-     2593, 1585, 1617, 1570, 2593, 2593, 1561, 1572, 1621, 2593,
-     2593, 1567, 1572, 1570, 1620, 1578, 1583, 1569, 1572, 1589,
-     1578, 1576, 1576, 1578, 2593, 1636, 1582, 1591, 1634, 1577,
-
-     1583, 1643, 1592, 1602, 1603, 2593, 1648, 1601, 1645, 2593,
-     1596, 1604, 2593, 1595, 1610, 1598, 2593, 1608, 1609, 1610,
-     1659, 1617, 2593, 1656, 1622, 1598, 1616, 1617, 1618, 1627,
-     1609, 1615, 1617, 1629, 1628, 1619, 1669, 1621, 1617, 1618,
-     1619, 1674, 1680, 1630, 1682, 1635, 1625, 1641, 1634, 2593,
-     1687, 2593, 1636, 1689, 1631, 2593, 1634, 1644, 1688, 1636,
-     1651, 1638, 1697, 1654, 1640, 1647, 1647, 1658, 1659, 2593,
-     1653, 1648, 1662, 1648, 1708, 1661, 2593, 1705, 1656, 1653,
-     2593, 1667, 1654, 1675, 1671, 1673, 1718, 1671, 1668, 1676,
-     1670, 2593, 1723, 1664, 1666, 1682, 1675, 1676, 1666, 1682,
-
-     1683, 1677, 1693, 1683, 1735, 1695, 1679, 1688, 1734, 1692,
-     1741, 1690, 2593, 1684, 2593, 1691, 1745, 1746, 1743, 2593,
-     1705, 2593, 1745, 1707, 1708, 1693, 1694, 1702, 1756, 2593,
-     1704, 1753, 1754, 1709, 1704, 1722, 1719, 1710, 1723, 1718,
-     2593, 1715, 1720, 1718, 1770, 1771, 1719, 1716, 1730, 1717,
-     2593, 1732, 1733, 1734, 1735, 2593, 1725, 1737, 1782, 1735,
-     1740, 1785, 1727, 1735, 1729, 1737, 1750, 2593, 1751, 1732,
-     1733, 1740, 1742, 2593, 1756, 1753, 1793, 1754, 2593, 2593,
-     1758, 1743, 1743, 1758, 1751, 1750, 1761, 1748, 2593, 1764,
-     1752, 1755, 1811, 1751, 1770, 1761, 1773, 1766, 1765, 1774,
-
-     1776, 1780, 2593, 2593, 1773, 1764, 1764, 1824, 1767, 1826,
-     1768, 1828, 1786, 1830, 2593, 1772, 1832, 2593, 1828, 1790,
-     1787, 1792, 1779, 1787, 1798, 1785, 1796, 1782, 1780, 1788,
-     1787, 1792, 1784, 1849, 1802, 1803, 1793, 1810, 1809, 1850,
-     1794, 1813, 1814, 2593, 1819, 1812, 1861, 1818, 1805, 1820,
-     1865, 1822, 1825, 1812, 1821, 1822, 2593, 1871, 2593, 1824,
-     2593, 1833, 2593, 1874, 2593, 1816, 1876, 1823, 1878, 1821,
-     1880, 1828, 1877, 1878, 1840, 1880, 1826, 1830, 1848, 1889,
-     1848, 2593, 1839, 1829, 1888, 1854, 1847, 1843, 1897, 1840,
-     1842, 1841, 1848, 2593, 1844, 1903, 1847, 2593, 1852, 1862,
-
-     1847, 1855, 1857, 2593, 1858, 1852, 2593, 1864, 2593, 1860,
-     2593, 1870, 2593, 1871, 1871, 1862, 1918, 1862, 1872, 1857,
-     1870, 2593, 1872, 1880, 1925, 1866, 1868, 1865, 1889, 2593,
-     1876, 1883, 1884, 1887, 1876, 2593, 1930, 1877, 1885, 1894,
-     1893, 1896, 1897, 1898, 1891, 1886, 1887, 1887, 1899, 1894,
-     2593, 1905, 1893, 1946, 1897, 1909, 1954, 2593, 1900, 1912,
-     1957, 1906, 1908, 1906, 1907, 1962, 1915, 1902, 1917, 1922,
-     1967, 1968, 1969, 1970, 1971, 1928, 1973, 1974, 1975, 1919,
-     1923, 1919, 1935, 1918, 1930, 1924, 2593, 1940, 1984, 2593,
-     1941, 1926, 1944, 1935, 2593, 1936, 1950, 1946, 1939, 2593,
-
-     2593, 2593, 2593, 2593, 1993, 2593, 2593, 2593, 1936, 1944,
-     1939, 1992, 1958, 1955, 2000, 1961, 2593, 2002, 1944, 2004,
-     1947, 1960, 1959, 1960, 1950, 2593, 1951, 2011, 1964, 1973,
-     1966, 2010, 2593, 1957, 2593, 1969, 2593, 2013, 2019, 1961,
-     1977, 2022, 2023, 2593, 1980, 1974, 1967, 1987, 1984, 1976,
-     1980, 2593, 2027, 1976, 2593, 2593, 1976, 1984, 2031, 1991,
-     1984, 2039, 1987, 1987, 1983, 1985, 2044, 2045, 1987, 2003,
-     1988, 2593, 2049, 1996, 2003, 2052, 2593, 2593, 2005, 2054,
-     2002, 2593, 2006, 2005, 2593, 2006, 2593, 2000, 2000, 2017,
-     2018, 2063, 2009, 2065, 2066, 2593, 2067, 2593, 2593, 2593,
-
-     2593, 2073, 2076, 2079, 2080, 2082, 2085, 2088, 2091
+     2596, 2597,   34, 2592,  145,    0,  207, 2597,  214,  221,
+       13,  228, 2597, 2572,  118,   25,    2,    6, 2597, 2597,
+       73,   11,   17, 2597, 2597, 2597,  104, 2580, 2533,    0,
+     2570,  108, 2587,   24,  256, 2597,   67, 2536, 2556,   84,
+       75, 2556,   88,  226,   91,   89,  284,  196,  206,  219,
+      208,  235,  241,   60,  277, 2536,  279,  291,  253,  293,
+      316, 2519,  282,  317,  356,  325, 2538,  305,    0,  378,
+      385,  406,  415,  422, 2597,    0, 2597,  429,  436,  218,
+      219,  287,  333,  354,  342, 2597, 2535, 2576, 2597,  382,
+
+     2597,  428,  346, 2533, 2574,  356,   10,  336,  409,  186,
+      417,  314,  319, 2573,    0,  489,  416, 2515,  409, 2514,
+     2515, 2521,  409, 2507, 2508, 2513,  412, 2523, 2506, 2515,
+     2505,  415,  416,  290, 2508, 2506,  425, 2495, 2553,  412,
+     2498, 2551, 2491,  440, 2512, 2512, 2506,  440, 2499, 2497,
+     2498, 2490, 2495, 2489,  435, 2500,  467, 2485, 2484, 2498,
+      462, 2536, 2483,  437, 2495,  446, 2483,  497, 2484,  483,
+     2496, 2493, 2494,  472, 2492, 2527, 2526,  486,  464, 2473,
+     2477,  483, 2473, 2465, 2482, 2474, 2476,    0,  487,  498,
+      484,  505,  500,  503, 2472, 2597,  525, 2467, 2597,  516,
+
+      501, 2597, 2521,  535, 2520,  536, 2519,  532, 2518, 2597,
+     2597,  578,  513,  542, 2477, 2469, 2473, 2474, 2454, 2465,
+     2467, 2466,  509,  517, 2504, 2468, 2449, 2446, 2454, 2460,
+     2448, 2462, 2458, 2449, 2458, 2458, 2453, 2445, 2447, 2450,
+     2430, 2434, 2447, 2449, 2446, 2438, 2428, 2431, 2445, 2597,
+     2431, 2439,   80, 2477, 2423, 2432, 2474, 2421, 2431, 2471,
+      555, 2430, 2469, 2414, 2416, 2427, 2465,  547, 2469, 2423,
+     2403, 2418,  570, 2408, 2414,  531, 2405, 2403,  529, 2403,
+     2409, 2400, 2399, 2412, 2405, 2395, 2406, 2410, 2409, 2403,
+      550, 2410, 2405, 2397, 2387, 2402, 2397, 2401, 2382, 2398,
+
+     2384, 2390, 2397, 2379,  537, 2384, 2381, 2380,  289, 2379,
+     2374, 2388, 2387,  582, 2386, 2389, 2371, 2379, 2367,  562,
+     2597, 2597,  584, 2597, 2597, 2365,  192, 2412,  586, 2423,
+     2597,  579, 2597, 2422, 2597, 2416,  633, 2597, 2378,  538,
+     2355, 2374, 2357, 2374, 2410, 2370, 2360, 2412, 2367, 2370,
+     2361, 2364, 2350, 2361,  572, 2400, 2358, 2355, 2356,  604,
+     2360, 2400, 2335, 2347, 2342, 2339, 2335, 2337, 2340, 2387,
+     2344, 2333, 2349, 2383, 2329,  612, 2342, 2342, 2325, 2326,
+     2339, 2337, 2335, 2335, 2334, 2329, 2336, 2331, 2316,  576,
+     2325, 2328, 2323,  574, 2322, 2318, 2368,  569,  581, 2597,
+
+     2327, 2361, 2311, 2310, 2303, 2305, 2317, 2308, 2315, 2296,
+     2313, 2305, 2301, 2306,  634, 2353, 2306,  612, 2303, 2306,
+     2306, 2304,  573, 2294, 2306,  604, 2281, 2282, 2303, 2294,
+     2284, 2281, 2295,  614, 2281, 2293, 2292, 2291, 2286, 2328,
+     2288, 2287, 2286, 2285, 2268, 2276, 2326, 2285, 2324, 2264,
+     2322, 2264,  659, 2277, 2275, 2597, 2597, 2275,  633, 2317,
+     2316, 2597, 2315, 2597,  640,  688, 2274,  653, 2313, 2307,
+     2260, 2262, 2264, 2251, 2248, 2597, 2253, 2246, 2258, 2261,
+     2248, 2247, 2597, 2257,  658, 2248, 2245, 2257,  624, 2242,
+     2244, 2597, 2289, 2249, 2234, 2236, 2247, 2245, 2245, 2239,
+
+      679, 2246, 2234, 2227, 2278, 2597, 2225, 2241, 2275, 2279,
+     2235, 2229, 2231, 2232, 2216, 2225, 2267, 2218, 2217, 2212,
+     2211, 2213, 2209, 2205,  627, 2224, 2198, 2205, 2210, 2203,
+     2219, 2253, 2257, 2597, 2202, 2198,  682, 2206, 2205, 2199,
+     2206, 2191, 2201, 2189, 2203, 2203, 2191, 2187, 2192, 2188,
+     2183, 2597, 2192, 2239, 2597, 2181, 2180, 2173, 2190, 2229,
+     2228, 2173, 2172, 2177, 2186, 2180, 2174, 2183,  685, 2220,
+     2182, 2166, 2161, 2157, 2163,  344, 2177, 2170, 2174, 2157,
+     2215, 2156, 2156, 2207, 2152, 2153, 2152, 2150, 2167, 2597,
+     2163, 2597, 2200, 2597, 2151, 2597, 2161, 2197, 2196, 2156,
+
+     2199, 2597, 2597, 2597,  539,  665, 2139,  719, 2597,  661,
+     2157, 2137, 2147, 2189, 2188, 2133, 2143, 2185, 2130, 2137,
+     2130, 2138, 2141, 2123, 2123, 2138, 2137, 2121,  591, 2135,
+     2134, 2118, 2133, 2115, 2162, 2129, 2126, 2166, 2110, 2112,
+     2124, 2124, 2122, 2122, 2597, 2107, 2104, 2162, 2117, 2109,
+     2115, 2106, 2114, 2597, 2099, 2110, 2114, 2096, 2108, 2100,
+      605, 2091, 2090, 2084, 2089, 2086, 2101, 2100, 2101, 2080,
+     2090, 2096, 2139, 2094, 2093, 2085, 2076, 2597, 2077, 2079,
+     2597, 2074, 2080, 2085, 2124, 2123,   16, 2084, 2121, 2066,
+     2119, 2066, 2069, 2067, 2069, 2060, 2075, 2597, 2073, 2059,
+
+      721, 2051, 2055, 2071, 2068, 2063, 2059, 2104, 2056, 2063,
+     2101, 2597, 2047, 2045, 2059, 2058, 2061, 2095, 2094, 2041,
+     2092, 2052, 2036, 2089, 2088, 2597, 2029,   91,  348,  689,
+      368,  442,  448,  552,  664,  632,  642,  634,  651,  644,
+     2597, 2597,  692,  704,  673,  676,  695,  689,  678,  674,
+      688,  689,  699,  742,  702,  702,  741,  744,  698,  695,
+      700,  710,  715,  701,  704,  707,  716,  716,  700,  757,
+      719,  711,  722,  762,  725,  718,  718,  720,  724,  730,
+      770,  733,  777,  735,  736, 2597,  739,  734,  725,  740,
+      745,  742,  739,  746,  745,  733,  747,  745,  753,  789,
+
+      751,  796,  797,  741,  754,  740,  750,  797,  755,  805,
+     2597,  806,  762,  760,  762,  758,  752,  768,  813,  809,
+      772,  761, 2597,  763,  774,  763,  776,  766,  779,  823,
+      782,  767,  826,  827,  770,  785, 2597,  779,  773,  784,
+      769,  780,  793,  784,  773,  779,  834,  798,  782,  782,
+      795,  839,  840,  787,  805,  800,  805,  802,  846,  788,
+      800,  801,  808,  799,  796, 2597,  862,  819,  820,  808,
+      822,  812,  815,  826,  817,  823,  824,  868,  844,  818,
+      832,  814,  821,  835,  880,  837,  834,  832, 2597,  836,
+      831,  846,  843,  829,  831,  850,  847,  848,  836,  843,
+
+      844,  853,  892,  858,  894,  856,  846,  860,  846,  845,
+      851,  907,  854,  849,  850,  856,  872,  855,  909,  864,
+      911, 2597,  875,  875,  868,  879,  877,  922,  864,  866,
+      881,  882,  870,  868,  930,  887,  873,  879,  877, 2597,
+     2597,  893,  892,  893,  898,  886,  896,  898, 2597, 2597,
+      898,  900,  887,  905,  892,  894, 2597,  891,  909,  896,
+      896,  947,  894,  898,  916,  957, 2597,  918,  959, 2597,
+     2597,  904,  918,  918,  963,  911,  910,  914,  908,  924,
+      969,  922,  912,  913,  909,  919,  923,  934,  935,  930,
+      932,  925,  927,  923,  940,  930,  945,  928,  987,  944,
+
+      949,  926,  949,  935,  934, 2597,  941,  943,  992,  993,
+      945,  958,  996,  943,  958,  952,  977,  985, 1007,  955,
+     1004,  966, 1006, 2597, 1012,  955,  974,  964,  963,  958,
+      959,  971,  966,  962,  980,  966,  967,  977,  986, 1022,
+      973,  971,  989,  982,  977, 1030, 1036,  993,  984, 2597,
+      998,  989,  997,  999,  984, 1000,  990, 1002,  999,  997,
+     1044, 1010,  994,  995, 2597, 1011, 1014,  997,  999, 1057,
+     1000, 1019, 2597, 1018, 1021, 1008, 1003, 1021, 1009, 1062,
+     1020, 1016, 1013, 1066, 1015, 1068, 1030, 1016, 1034, 1034,
+     1034, 1020, 1035, 1027, 1023, 1041, 1040, 1027, 1044, 2597,
+
+     1028, 2597, 1037, 1084, 1037, 2597, 1045, 1048, 1041, 1095,
+     1042, 2597, 1045, 1050, 1094, 1045, 1046, 1058, 1052, 1053,
+     1051, 1062, 1107, 1051, 1052, 1110, 1111, 1055, 1067, 1060,
+     2597, 1057, 1065, 1063, 1114, 1056, 1077, 1063, 1064, 1065,
+     1066, 1072, 1080, 1071, 1085, 1086, 1087, 1103, 1108, 2597,
+     1090, 1095, 1078, 1078, 2597, 1079, 1081, 1092, 1082, 1102,
+     1101, 1092, 1103, 1146, 1088, 1108, 1101, 1105, 1109, 1092,
+     1109, 1110, 1101, 1156, 1103, 1107, 2597, 1154, 1105, 1123,
+     1105, 1105, 1126, 1123, 1163, 1112, 1130, 1118, 1132, 1118,
+     1126, 1135, 1115, 1130, 1137, 1179, 1180, 2597, 1133, 1182,
+
+     1183, 1125, 1135, 1145, 1129, 1149, 1132, 1134, 1134, 1141,
+     1150, 1138, 1145, 1140, 1147, 1159, 1200, 1147, 1202, 1147,
+     1164, 1205, 1155, 1159, 1157, 1155, 1150, 1211, 1162, 1159,
+     1214, 1164, 1216, 1212, 1218, 1171, 2597, 1160, 1177, 1170,
+     1161, 1180, 1174, 1169, 1180, 1181, 1177, 1189, 2597, 1173,
+     1169, 2597, 2597, 1175, 1235, 1194, 1175, 1194, 1195, 1197,
+     1236, 1189, 1243, 1244, 1197, 1202, 1196, 1194, 1205, 1187,
+     1192, 1198, 1232, 1223, 1255, 1210, 1210, 1214, 1259, 1202,
+     1202, 1205, 1222, 1217, 1221, 1216, 2597, 1213, 1209, 1226,
+     1206, 1227, 1217, 1216, 1269, 1222, 2597, 1236, 1234, 1237,
+
+     1221, 1230, 1235, 1240, 1226, 1286, 1239, 1244, 1231, 1245,
+     1243, 1235, 1241, 1237, 1255, 1256, 1257, 2597, 2597, 1255,
+     2597, 1257, 2597, 1242, 1253, 1244, 1263, 1256, 1254, 1306,
+     1263, 1260, 1304, 1268, 1257, 1264, 1269, 1266, 1272, 2597,
+     1265, 2597, 1257, 1318, 2597, 1319, 1266, 1273, 1317, 1279,
+     2597, 1280, 1268, 2597, 1278, 2597, 1269, 2597, 1269, 1270,
+     1273, 1287, 1292, 1275, 1286, 1335, 1292, 1293, 1333, 1289,
+     1340, 1336, 1342, 2597, 1293, 1290, 1345, 1346, 1303, 1304,
+     1306, 2597, 2597, 1298, 1293, 1347, 1296, 1312, 1296, 1308,
+     1297, 1328, 1359, 2597, 1316, 1307, 1318, 2597, 1363, 1300,
+
+     1311, 1326, 1362, 1314, 1325, 1313, 1327, 1328, 1325, 1369,
+     1332, 1334, 1323, 1333, 1339, 1327, 1327, 1382, 1378, 1379,
+     1385, 1343, 2597, 1345, 1344, 1346, 1338, 1341, 1350, 1351,
+     1348, 1338, 1341, 1341, 1400, 1347, 1402, 1349, 1404, 1347,
+     1352, 1408, 2597, 1366, 1345, 1360, 1353, 1356, 1369, 1372,
+     1371, 1369, 1418, 1372, 2597, 2597, 1368, 1378, 1363, 1419,
+     1366, 1426, 1382, 1368, 1429, 1430, 1431, 1375, 1385, 1434,
+     1391, 2597, 1383, 1384, 1386, 1439, 1382, 2597, 1399, 2597,
+     1398, 1388, 2597, 2597, 1401, 1384, 1404, 1405, 1391, 1393,
+     1452, 1402, 1454, 1403, 1397, 1436, 2597, 1458, 1408, 1455,
+
+     2597, 1403, 1462, 1412, 1406, 1403, 1406, 1408, 1404, 1426,
+     1465, 1418, 1430, 1433, 1430, 1422, 1425, 1418, 1478, 1426,
+     2597, 1424, 1423, 2597, 1425, 1484, 1437, 1428, 1482, 1444,
+     1444, 1447, 1447, 1444, 1488, 1450, 2597, 1442, 2597, 1443,
+     2597, 1453, 1445, 2597, 1494, 1456, 1457, 1454, 1498, 1446,
+     1461, 1501, 1463, 1455, 2597, 1452, 1452, 1458, 1457, 1455,
+     1509, 2597, 1471, 1471, 2597, 2597, 2597, 1512, 1459, 2597,
+     1476, 1461, 1462, 1468, 2597, 1477, 1524, 1472, 1464, 1470,
+     1480, 1492, 1485, 1491, 1481, 1536, 1489, 2597, 1498, 2597,
+     1495, 1540, 1515, 2597, 1499, 1484, 1544, 2597, 1545, 1502,
+
+     1507, 1489, 1549, 1550, 1546, 1510, 1507, 1503, 1496, 1503,
+     1552, 1510, 1511, 2597, 1501, 1517, 1515, 1564, 2597, 1502,
+     1561, 1525, 1526, 1522, 1566, 1514, 1519, 1517, 1576, 1532,
+     1520, 1579, 1575, 1530, 1582, 1543, 1532, 1526, 1586, 1528,
+     1537, 1530, 1544, 1547, 1592, 1534, 1551, 1547, 1545, 1538,
+     1553, 1537, 1595, 1596, 1597, 1598, 1561, 1554, 1553, 1553,
+     1548, 2597, 1556, 1562, 1553, 1554, 1553, 1555, 1610, 1556,
+     2597, 1552, 1570, 1619, 2597, 1589, 1621, 1574, 2597, 2597,
+     1565, 1576, 1625, 2597, 2597, 1571, 1576, 1574, 1624, 1582,
+     1587, 1573, 1576, 1593, 1582, 1580, 1580, 1582, 2597, 1640,
+
+     1586, 1595, 1638, 1581, 1587, 1647, 1596, 1606, 1607, 2597,
+     1652, 1605, 1649, 2597, 1600, 1608, 2597, 1599, 1614, 1602,
+     2597, 1612, 1613, 1614, 1663, 1621, 2597, 1660, 1626, 1602,
+     1620, 1621, 1622, 1631, 1613, 1619, 1621, 1633, 1632, 1623,
+     1673, 1625, 1621, 1622, 1623, 1678, 1684, 1634, 1686, 1639,
+     1629, 1645, 1638, 2597, 1691, 2597, 1640, 1693, 1635, 2597,
+     1638, 1648, 1692, 1640, 1655, 1642, 1701, 1658, 1644, 1651,
+     1651, 1662, 1663, 2597, 1657, 1652, 1666, 1652, 1712, 1665,
+     2597, 1709, 1660, 1657, 2597, 1671, 1658, 1679, 1675, 1677,
+     1722, 1675, 1672, 1680, 1674, 2597, 1727, 1668, 1670, 1686,
+
+     1679, 1680, 1670, 1686, 1687, 1681, 1697, 1687, 1739, 1699,
+     1683, 1692, 1738, 1696, 1745, 1694, 2597, 1688, 2597, 1695,
+     1749, 1750, 1747, 2597, 1709, 2597, 1749, 1711, 1712, 1697,
+     1698, 1706, 1760, 2597, 1708, 1757, 1758, 1713, 1708, 1726,
+     1723, 1714, 1727, 1722, 2597, 1719, 1724, 1722, 1774, 1775,
+     1723, 1720, 1734, 1721, 2597, 1736, 1737, 1738, 1739, 2597,
+     1729, 1741, 1786, 1739, 1744, 1789, 1731, 1739, 1733, 1741,
+     1754, 2597, 1755, 1736, 1737, 1744, 1746, 2597, 1760, 1757,
+     1797, 1758, 2597, 2597, 1762, 1747, 1747, 1762, 1755, 1754,
+     1765, 1752, 2597, 1768, 1756, 1759, 1815, 1755, 1774, 1765,
+
+     1777, 1770, 1769, 1778, 1780, 1784, 2597, 2597, 1777, 1768,
+     1768, 1828, 1771, 1830, 1772, 1832, 1790, 1834, 2597, 1776,
+     1836, 2597, 1832, 1794, 1791, 1796, 1783, 1791, 1802, 1789,
+     1800, 1786, 1784, 1792, 1791, 1796, 1788, 1853, 1806, 1807,
+     1797, 1814, 1813, 1854, 1798, 1817, 1818, 2597, 1823, 1816,
+     1865, 1822, 1809, 1824, 1869, 1826, 1829, 1816, 1825, 1826,
+     2597, 1875, 2597, 1828, 2597, 1837, 2597, 1878, 2597, 1820,
+     1880, 1827, 1882, 1825, 1884, 1832, 1881, 1882, 1844, 1884,
+     1830, 1834, 1852, 1893, 1852, 2597, 1843, 1833, 1892, 1858,
+     1851, 1847, 1901, 1844, 1846, 1845, 1852, 2597, 1848, 1907,
+
+     1851, 2597, 1856, 1866, 1851, 1859, 1861, 2597, 1862, 1856,
+     2597, 1868, 2597, 1864, 2597, 1874, 2597, 1875, 1875, 1866,
+     1922, 1866, 1876, 1861, 1874, 2597, 1876, 1884, 1929, 1870,
+     1872, 1869, 1893, 2597, 1880, 1887, 1888, 1891, 1880, 2597,
+     1934, 1881, 1889, 1898, 1897, 1900, 1901, 1902, 1895, 1890,
+     1891, 1891, 1903, 1898, 2597, 1909, 1897, 1950, 1901, 1913,
+     1958, 2597, 1904, 1916, 1961, 1910, 1912, 1910, 1911, 1966,
+     1919, 1906, 1921, 1926, 1971, 1972, 1973, 1974, 1975, 1932,
+     1977, 1978, 1979, 1923, 1927, 1923, 1939, 1922, 1934, 1928,
+     2597, 1944, 1988, 2597, 1945, 1930, 1948, 1939, 2597, 1940,
+
+     1954, 1950, 1943, 2597, 2597, 2597, 2597, 2597, 1997, 2597,
+     2597, 2597, 1940, 1948, 1943, 1996, 1962, 1959, 2004, 1965,
+     2597, 2006, 1948, 2008, 1951, 1964, 1963, 1964, 1954, 2597,
+     1955, 2015, 1968, 1977, 1970, 2014, 2597, 1961, 2597, 1973,
+     2597, 2017, 2023, 1965, 1981, 2026, 2027, 2597, 1984, 1978,
+     1971, 1991, 1988, 1980, 1984, 2597, 2031, 1980, 2597, 2597,
+     1980, 1988, 2035, 1995, 1988, 2043, 1991, 1991, 1987, 1989,
+     2048, 2049, 1991, 2007, 1992, 2597, 2053, 2000, 2007, 2056,
+     2597, 2597, 2009, 2058, 2006, 2597, 2010, 2009, 2597, 2010,
+     2597, 2004, 2004, 2021, 2022, 2067, 2013, 2069, 2070, 2597,
+
+     2071, 2597, 2597, 2597, 2597, 2077, 2080, 2083, 2084, 2086,
+     2089, 2092, 2095
     } ;
 
-static const flex_int16_t yy_def[2210] =
+static const flex_int16_t yy_def[2214] =
     {   0,
-     2202, 2202, 2203, 2203, 2202, 2202, 2202, 2202, 2202, 2202,
-     2201, 2201, 2201, 2201, 2201, 2204, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2205,
-     2201, 2201, 2201, 2206,   15, 2201,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2207,   45,   45,   45,
+     2206, 2206, 2207, 2207, 2206, 2206, 2206, 2206, 2206, 2206,
+     2205, 2205, 2205, 2205, 2205, 2208, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2209,
+     2205, 2205, 2205, 2210,   15, 2205,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2211,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2204, 2201,
-     2201, 2201, 2201, 2201, 2201, 2208, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2205, 2201, 2206,
+       45,   45,   45,   45,   45,   45,   45,   45, 2208, 2205,
+     2205, 2205, 2205, 2205, 2205, 2212, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2209, 2205, 2210,
 
-     2201, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2209,   45, 2207,   45,   45,   45,   45,
+     2205, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2213,   45, 2211,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2208, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201,   45,   45, 2201,   45,
+       45,   45,   45,   45,   45,   45,   45, 2212, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205,   45,   45, 2205,   45,
 
-       45, 2201,   45,   45,   45,   45,   45,   45, 2209, 2201,
-     2201,  116,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45, 2213, 2205,
+     2205,  116,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1274,226 +1275,227 @@ static const flex_int16_t yy_def[2210] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201,   45,   45,   45,   45,
-     2201,   45, 2201,   45, 2201,   45,  116, 2201,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205,   45,   45,   45,   45,
+     2205,   45, 2205,   45, 2205,   45,  116, 2205,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201, 2201, 2201,   45,   45,
-       45, 2201,   45, 2201,   45,  116,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205, 2205, 2205,   45,   45,
+       45, 2205,   45, 2205,   45,  116,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45, 2201,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45, 2205,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
-     2201,   45, 2201,   45, 2201,   45,   45,   45, 2201,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+       45, 2205,   45, 2205,   45, 2205,   45,   45,   45, 2205,
 
-     2201, 2201, 2201,   45,   45,   45,   45, 2201,   45,   45,
+       45, 2205, 2205, 2205,   45,   45,   45,   45, 2205,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45, 2201,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201, 2201,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2205, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2205,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201, 2201,   45,   45,
-       45,   45,   45,   45,   45, 2201, 2201,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45, 2201,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+     2205,   45,   45,   45,   45,   45,   45,   45, 2205, 2205,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45, 2205,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45, 2201,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
 
-       45, 2201,   45,   45,   45,   45,   45, 2201,   45,   45,
+       45, 2205,   45,   45,   45, 2205,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45,   45,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2201,   45,   45, 2201, 2201,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2205,   45,
+       45, 2205, 2205,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201, 2201,   45, 2201,   45, 2201,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205, 2205,   45,
+     2205,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+       45, 2205,   45,   45, 2205,   45,   45,   45,   45,   45,
+     2205,   45,   45, 2205,   45, 2205,   45, 2205,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45, 2201,   45,   45,
-     2201,   45,   45,   45,   45,   45, 2201,   45,   45, 2201,
-       45, 2201,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45,   45,   45,   45,   45, 2201, 2201,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
+       45, 2205, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45, 2205,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205, 2205,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2201,   45,   45,
-       45,   45,   45, 2201,   45, 2201,   45,   45, 2201, 2201,
+       45, 2205,   45,   45,   45,   45,   45, 2205,   45, 2205,
+       45,   45, 2205, 2205,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
+
+     2205,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45, 2201,   45,   45,   45,
+     2205,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45, 2205,   45,
+     2205,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45, 2205, 2205, 2205,   45,   45, 2205,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45, 2205,
+       45,   45,   45, 2205,   45,   45,   45, 2205,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45, 2201,
+       45,   45,   45, 2205,   45,   45,   45,   45, 2205,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45, 2201,   45, 2201,   45,   45, 2201,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45, 2201,   45,   45,
-     2201, 2201, 2201,   45,   45, 2201,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45, 2201,   45,   45,   45, 2201,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45,   45, 2201,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
+     2205,   45,   45,   45, 2205,   45,   45,   45, 2205, 2205,
+       45,   45,   45, 2205, 2205,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2205,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+       45,   45,   45, 2205,   45,   45, 2205,   45,   45,   45,
+     2205,   45,   45,   45,   45,   45, 2205,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2201,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45,   45,
-     2201,   45,   45,   45, 2201, 2201,   45,   45,   45, 2201,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2201,   45,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45, 2201,   45,   45,   45, 2201,
-       45,   45, 2201,   45,   45,   45, 2201,   45,   45,   45,
-       45,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45, 2201,   45,   45,   45, 2201,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
-
+       45,   45,   45, 2205,   45, 2205,   45,   45,   45, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2201,   45, 2201,   45,   45,   45,   45, 2201,
-       45, 2201,   45,   45,   45,   45,   45,   45,   45, 2201,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
+     2205,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2201,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45, 2201, 2201,
-       45,   45,   45,   45,   45,   45,   45,   45, 2201,   45,
+       45,   45,   45,   45,   45,   45, 2205,   45, 2205,   45,
+       45,   45,   45, 2205,   45, 2205,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45, 2205,   45,   45,
+       45,   45, 2205, 2205,   45,   45,   45,   45,   45,   45,
+       45,   45, 2205,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 2201, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2201,   45,   45, 2201,   45,   45,
+       45,   45,   45,   45,   45,   45, 2205, 2205,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2205,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45, 2201,   45,
-     2201,   45, 2201,   45, 2201,   45,   45,   45,   45,   45,
+     2205,   45, 2205,   45, 2205,   45, 2205,   45, 2205,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45, 2201,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
 
-       45,   45,   45, 2201,   45,   45, 2201,   45, 2201,   45,
-     2201,   45, 2201,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45,   45,   45,   45,   45,   45, 2201,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45, 2205,   45,   45,
+     2205,   45, 2205,   45, 2205,   45, 2205,   45,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
+       45,   45,   45, 2205,   45,   45,   45,   45,   45, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2201,   45,   45,   45,   45,   45,   45, 2201,   45,   45,
+       45,   45,   45,   45, 2205,   45,   45,   45,   45,   45,
+       45, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45, 2201,
-       45,   45,   45,   45, 2201,   45,   45,   45,   45, 2201,
-
-     2201, 2201, 2201, 2201,   45, 2201, 2201, 2201,   45,   45,
-       45,   45,   45,   45,   45,   45, 2201,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45,   45,   45,   45,
-       45,   45, 2201,   45, 2201,   45, 2201,   45,   45,   45,
-       45,   45,   45, 2201,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45, 2201, 2201,   45,   45,   45,   45,
+     2205,   45,   45, 2205,   45,   45,   45,   45, 2205,   45,
+
+       45,   45,   45, 2205, 2205, 2205, 2205, 2205,   45, 2205,
+     2205, 2205,   45,   45,   45,   45,   45,   45,   45,   45,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
+       45,   45,   45,   45,   45,   45, 2205,   45, 2205,   45,
+     2205,   45,   45,   45,   45,   45,   45, 2205,   45,   45,
+       45,   45,   45,   45,   45, 2205,   45,   45, 2205, 2205,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2201,   45,   45,   45,   45, 2201, 2201,   45,   45,
-       45, 2201,   45,   45, 2201,   45, 2201,   45,   45,   45,
-       45,   45,   45,   45,   45, 2201,   45, 2201, 2201, 2201,
+       45,   45,   45,   45,   45, 2205,   45,   45,   45,   45,
+     2205, 2205,   45,   45,   45, 2205,   45,   45, 2205,   45,
+     2205,   45,   45,   45,   45,   45,   45,   45,   45, 2205,
 
-        0, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201
+       45, 2205, 2205, 2205,    0, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205
     } ;
 
-static const flex_int16_t yy_nxt[2667] =
+static const flex_int16_t yy_nxt[2671] =
     {   0,
-     2201,   13,   14,   13, 2201,   15,   16, 2201,   17,   18,
+     2205,   13,   14,   13, 2205,   15,   16, 2205,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       85,  821,   37,   14,   37,   86,   25,   26,   38,  101,
-     2201,   27,   37,   14,   37,   42,   28,   42,   38,   91,
+       85,  823,   37,   14,   37,   86,   25,   26,   38,  101,
+     2205,   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,
-      822,   13,   14,   13,   33,   40,  102,   91,   92,  201,
+      824,   13,   14,   13,   33,   40,  102,   91,   92,  201,
        90,   34,   35,   13,   14,   13,   94,   15,   16,   95,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
        23,   24,   13,   14,   13,   90,   39,  103,   25,   26,
@@ -1502,7 +1504,7 @@ static const flex_int16_t yy_nxt[2667] =
       107,   42,   41,   29,  109,   30,  112,  113,   93,  137,
        41,   25,   31,  103,  138,  381,   88,  139,   88,  106,
        32,   89,   89,   89,   89,   89,   33,  109,  107,  112,
-      865,  113,  382,   34,   35,   44,   44,   44,   45,   45,
+      864,  113,  382,   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,   45,
        48,   49,   50,   45,   51,   52,   53,   45,   45,   45,
@@ -1525,22 +1527,22 @@ static const flex_int16_t yy_nxt[2667] =
        45,   45,   45,   45,  191,  140,   45,  167,  144,  145,
        45,  168,  146,  113,   45,  141,  148,  142,  147,  241,
       149,  202,   45,  156,  150,  208,   45,  207,   45,  116,
-      112,  157,  191,  158,  718,  242,  151,  113,  159,  160,
+      112,  157,  191,  158,  720,  242,  151,  113,  159,  160,
       152,  161,  169,  189,  162,  163,  170,  187,  208,  171,
       176,  177,  203,  112,  207,  164,  172,  173,  165,  191,
       110,  174,  175,  184,  190,  197,  200,  101,  185,  192,
-      111,   84,   84,   84,   84,   84,   80,  866,   81,   81,
+      111,   84,   84,   84,   84,   84,   80,  865,   81,   81,
 
-       81,   81,   81,  178,   82,  179,  719,  194,  180,  181,
-      193,   82,  200,  197,   88,  867,   88,  250,  182,   89,
+       81,   81,   81,  178,   82,  179,  721,  194,  180,  181,
+      193,   82,  200,  197,   88,  868,   88,  250,  182,   89,
        89,   89,   89,   89,  102,  183,   80,   82,   83,   83,
        83,   83,   83,  100,   82,   84,   84,   84,   84,   84,
       100,   82,   89,   89,   89,   89,   89,  204,   82,   89,
        89,   89,   89,   89,  206,  197,  216,  222,  228,  229,
       235,  251,  236,  238,   82,  217,  223,  224,  230,  218,
       100,   82,  213,  204,  100,  204,  239,  270,  100,  237,
-      240,  245,  206,  214,  246,  255,  100,  260,  247,  868,
-      100,  285,  100,  100,  211,  286,  281,  869,  256,  282,
+      240,  245,  206,  214,  246,  255,  100,  260,  247,  869,
+      100,  285,  100,  100,  211,  286,  281,  870,  256,  282,
 
       283,  268,  212,  212,  212,  212,  212,  288,  261,  275,
       322,  212,  212,  212,  212,  212,  212,  304,  338,  205,
@@ -1549,126 +1551,126 @@ static const flex_int16_t yy_nxt[2667] =
       320,  298,  289,  290,  291,  299,  309,  327,  314,  300,
       320,  329,  325,  292,  321,  293,  324,  294,  295,  330,
       296,  332,  334,  336,  327,  390,  349,  351,  323,  350,
-      327,  741,  339,  332,  412,  352,  408,  483,  459,  329,
-      404,  353,  484,  562,  332,  334,  409,  340,  456,  413,
-      336,  337,  337,  337,  337,  337,  399,  440,  741,  441,
+      327,  743,  339,  332,  412,  352,  408,  483,  459,  329,
+      404,  353,  484,  563,  332,  334,  409,  340,  456,  413,
+      336,  337,  337,  337,  337,  337,  399,  440,  743,  441,
 
       337,  337,  337,  337,  337,  337,  425,  468,  334,  426,
-      456,  456,  461,  463,  489,  463,  552,  506,  391,  535,
+      456,  456,  461,  463,  489,  463,  871,  506,  391,  535,
       490,  392,  507,  337,  337,  337,  337,  337,  337,  536,
-      405,  334,  563,  457,  530,  461,  523,  524,  525,  595,
-      531,  463,  526,  537,  596,  450,  466,  466,  466,  466,
-      466,  765,  796,  797,  766,  466,  466,  466,  466,  466,
-      466,  556,  566,  575,  600,  557,  567,  576,  870,  604,
-      508,  605,  871,  632,  553,  509,  600,  622,  466,  466,
-      466,  466,  466,  466,  668,  623,  633,  624,  625,  626,
-      627,  628,  600,  863,  669,  742,  604,  872,  605,   45,
-
-       45,   45,   45,   45,  607,  864,  873,  874,   45,   45,
-       45,   45,   45,   45,  644,  680,  710,  740,  745,  645,
-      681,  711,  744,  742,  834,  746,  875,  876,  877,  835,
-      878,   45,   45,   45,   45,   45,   45,  879,  880,  881,
-      882,  883,  884,  885,  886,  887,  888,  889,  891,  890,
-      876,  892,  893,  894,  875,  895,  896,  897,  898,  899,
-      900,  901,  902,  903,  904,  905,  906,  907,  836,  908,
-      909,  910,  911,  914,  915,  916,  912,  917,  918,  919,
-      913,  920,  921,  922,  923,  924,  925,  926,  927,  928,
+      405,  334,  564,  457,  530,  461,  523,  524,  525,  552,
+      531,  463,  526,  537,  553,  450,  466,  466,  466,  466,
+      466,  767,  798,  799,  768,  466,  466,  466,  466,  466,
+      466,  557,  567,  576,  596,  558,  568,  577,  601,  597,
+      508,  605,  633,  606,  872,  509,  669,  873,  466,  466,
+      466,  466,  466,  466,  645,  634,  670,  681,  601,  646,
+      712,  874,  682,  875,  866,  713,  601,  554,  605,  744,
+
+      606,   45,   45,   45,   45,   45,  867,  876,  877,  623,
+       45,   45,   45,   45,   45,   45,  608,  624,  747,  625,
+      626,  627,  628,  629,  742,  748,  837,  744,  878,  746,
+      879,  838,  880,   45,   45,   45,   45,   45,   45,  881,
+      882,  883,  884,  885,  886,  887,  888,  889,  890,  891,
+      892,  894,  893,  879,  895,  896,  878,  897,  898,  899,
+      900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
+      839,  910,  911,  912,  913,  914,  917,  918,  919,  915,
+      920,  921,  922,  916,  923,  924,  925,  926,  927,  928,
       929,  930,  931,  932,  933,  934,  935,  936,  937,  938,
 
-      939,  940,  941,  942,  944,  945,  943,  946,  947,  948,
+      939,  940,  941,  942,  943,  944,  945,  947,  948,  946,
       949,  950,  951,  952,  953,  954,  955,  956,  957,  958,
       959,  960,  961,  962,  963,  964,  965,  966,  967,  968,
       969,  970,  971,  972,  973,  974,  975,  976,  977,  978,
       979,  980,  981,  982,  983,  984,  985,  986,  987,  988,
-      990,  991,  994,  995,  996,  997,  989,  999,  992, 1000,
-     1001,  998,  993, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
+      989,  990,  991,  992,  994,  995,  998,  999, 1000, 1001,
+      993, 1003,  996, 1004, 1005, 1002,  997, 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, 1014, 1042, 1043, 1044, 1045, 1046, 1047,
+     1039, 1040, 1041, 1042, 1043, 1044, 1045, 1018, 1046, 1047,
      1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
-     1058, 1059, 1060, 1061, 1063, 1064, 1065, 1066, 1062, 1067,
-     1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
+     1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1067, 1068,
+     1069, 1070, 1066, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
      1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
-     1088, 1090, 1091, 1092, 1089, 1093, 1094, 1095, 1096, 1097,
+     1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096, 1093, 1097,
      1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
      1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
-     1118, 1119, 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128,
-     1129, 1130, 1131, 1132, 1133, 1134, 1123, 1135, 1136, 1137,
+     1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1128,
+     1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138,
 
-     1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
+     1127, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
      1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
      1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
-     1145, 1168, 1169, 1144, 1170, 1171, 1172, 1173, 1174, 1175,
+     1168, 1169, 1170, 1171, 1149, 1172, 1173, 1148, 1174, 1175,
      1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185,
-     1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1197,
-     1198, 1199, 1200, 1195, 1201, 1202, 1203, 1204, 1205, 1206,
+     1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
+     1196, 1197, 1198, 1201, 1202, 1203, 1204, 1199, 1205, 1206,
      1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
-     1217, 1218, 1219, 1220, 1221, 1223, 1224, 1225, 1226, 1227,
-     1228, 1229, 1230, 1231, 1232, 1222, 1233, 1234, 1235, 1236,
+     1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1227,
+     1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1226,
 
      1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
-     1247, 1248, 1249, 1250, 1251, 1252, 1196, 1253, 1254, 1255,
-     1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
-     1266, 1267, 1268, 1269, 1271, 1270, 1272, 1273, 1274, 1275,
+     1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
+     1200, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
+     1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1275, 1274,
      1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285,
      1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
-     1296, 1269, 1270, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
+     1296, 1297, 1298, 1299, 1300, 1273, 1274, 1301, 1302, 1303,
      1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
-     1314, 1315, 1316, 1317, 1319, 1321, 1322, 1323, 1318, 1324,
-     1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
+     1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1323, 1325,
+     1326, 1327, 1322, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
 
      1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
      1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
-     1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1320, 1363,
-     1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
+     1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
+     1365, 1366, 1324, 1367, 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, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
-     1404, 1405, 1406, 1407, 1408, 1409, 1410, 1388, 1411, 1412,
-     1413, 1414, 1415, 1389, 1416, 1417, 1418, 1419, 1420, 1421,
+     1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
+     1414, 1392, 1415, 1416, 1417, 1418, 1419, 1393, 1420, 1421,
      1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431,
 
      1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
      1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
      1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461,
      1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471,
-     1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482,
+     1472, 1473, 1474, 1475, 1477, 1478, 1479, 1480, 1481, 1482,
      1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
-     1493, 1494, 1495, 1496, 1497, 1499, 1500, 1501, 1502, 1503,
+     1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1503,
      1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513,
-     1514, 1515, 1516, 1517, 1518, 1519, 1520, 1492, 1521, 1522,
-     1523, 1524, 1472, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
+     1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
+     1524, 1496, 1525, 1526, 1527, 1528, 1476, 1529, 1530, 1531,
 
-     1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1498, 1540,
-     1541, 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
-     1544, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
+     1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541,
+     1542, 1543, 1502, 1544, 1545, 1546, 1547, 1549, 1550, 1551,
+     1552, 1553, 1554, 1555, 1548, 1556, 1557, 1558, 1559, 1560,
      1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
-     1571, 1573, 1574, 1576, 1575, 1572, 1577, 1578, 1579, 1580,
+     1571, 1572, 1573, 1574, 1575, 1577, 1578, 1580, 1579, 1576,
      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, 1589, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619,
+     1611, 1612, 1613, 1614, 1615, 1593, 1616, 1617, 1618, 1619,
      1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629,
 
      1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
      1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
-     1650, 1651, 1652, 1653, 1654, 1658, 1655, 1659, 1660, 1656,
-     1661, 1662, 1657, 1663, 1664, 1665, 1666, 1667, 1668, 1669,
+     1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1662,
+     1659, 1663, 1664, 1660, 1665, 1666, 1661, 1667, 1668, 1669,
      1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679,
-     1680, 1681, 1682, 1683, 1685, 1686, 1687, 1688, 1689, 1690,
-     1691, 1692, 1693, 1694, 1684, 1695, 1696, 1697, 1698, 1672,
-     1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708, 1709,
-     1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
+     1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1689, 1690,
+     1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1688, 1699,
+     1700, 1701, 1702, 1676, 1703, 1704, 1705, 1706, 1707, 1708,
+     1709, 1710, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
      1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729,
 
      1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
      1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
      1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
-     1760, 1761, 1762, 1763, 1764, 1707, 1765, 1766, 1767, 1768,
-     1769, 1770, 1772, 1773, 1774, 1775, 1771, 1776, 1777, 1751,
-     1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787,
+     1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1711,
+     1769, 1770, 1771, 1772, 1773, 1774, 1776, 1777, 1778, 1779,
+     1775, 1780, 1781, 1755, 1782, 1783, 1784, 1785, 1786, 1787,
      1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
      1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
      1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
@@ -1678,8 +1680,8 @@ static const flex_int16_t yy_nxt[2667] =
      1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
      1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
      1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
-     1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1877, 1878,
-     1879, 1880, 1876, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
+     1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
+     1878, 1879, 1881, 1882, 1883, 1884, 1880, 1885, 1886, 1887,
      1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
      1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
      1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
@@ -1690,7 +1692,7 @@ static const flex_int16_t yy_nxt[2667] =
      1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
      1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
      1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
-     1979, 1980, 1978, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
+     1978, 1979, 1980, 1981, 1983, 1984, 1982, 1985, 1986, 1987,
      1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
      1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
      2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
@@ -1710,87 +1712,87 @@ static const flex_int16_t yy_nxt[2667] =
      2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
      2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
      2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
-     2158, 2159, 2160, 2162, 2161, 2163, 2164, 2165, 2166, 2167,
+     2158, 2159, 2160, 2161, 2162, 2163, 2164, 2166, 2165, 2167,
      2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
      2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
      2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197,
-     2198, 2199, 2200,   12,   12,   12,   36,   36,   36,   79,
-       98,   79,  100,  100,  100,  114,  114,  114,  188,  862,
-      188,  209,  209,  209,  861,  860,  859,  858,  857,  856,
-
-      855,  854,  853,  852,  851,  850,  849,  848,  847,  846,
-      845,  844,  843,  842,  841,  840,  839,  838,  837,  833,
-      832,  831,  830,  829,  828,  827,  826,  825,  824,  823,
-      820,  819,  818,  817,  816,  815,  814,  813,  812,  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,  764,  763,  762,  761,  760,  759,  758,  757,
-      756,  755,  754,  753,  752,  751,  750,  749,  748,  747,
-
-      743,  740,  739,  738,  737,  736,  735,  734,  733,  732,
-      731,  730,  729,  728,  727,  726,  725,  724,  723,  722,
-      721,  720,  717,  716,  715,  714,  713,  712,  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,  679,  678,  677,  676,
-      675,  674,  673,  672,  671,  670,  667,  666,  665,  664,
-      663,  662,  661,  660,  659,  658,  657,  656,  655,  654,
-      653,  652,  651,  650,  649,  648,  647,  646,  643,  642,
-      641,  640,  639,  638,  637,  636,  635,  634,  631,  630,
-
-      629,  621,  620,  619,  618,  617,  616,  615,  614,  613,
-      612,  611,  610,  609,  608,  606,  603,  602,  601,  599,
-      598,  597,  594,  593,  592,  591,  590,  589,  588,  587,
-      586,  585,  584,  583,  582,  581,  580,  579,  578,  577,
-      574,  573,  572,  571,  570,  569,  568,  565,  564,  561,
-      560,  559,  558,  555,  554,  551,  550,  549,  548,  547,
-      546,  545,  544,  543,  542,  541,  540,  539,  538,  534,
-      533,  532,  529,  528,  527,  522,  521,  520,  519,  518,
-      517,  516,  515,  514,  513,  512,  511,  510,  505,  504,
-      503,  502,  501,  500,  499,  498,  497,  496,  495,  494,
-
-      493,  492,  491,  488,  487,  486,  485,  482,  481,  480,
-      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
-      469,  467,  465,  464,  462,  460,  458,  455,  454,  453,
-      452,  451,  449,  448,  447,  446,  444,  443,  442,  439,
-      438,  437,  436,  435,  434,  433,  432,  431,  430,  429,
-      428,  427,  424,  423,  422,  421,  420,  419,  418,  417,
-      416,  415,  414,  411,  410,  407,  406,  403,  402,  401,
-      400,  398,  397,  396,  395,  394,  393,  389,  388,  387,
-      386,  385,  384,  383,  380,  379,  378,  377,  376,  375,
-      374,  373,  372,  371,  370,  369,  368,  367,  366,  365,
-
-      364,  363,  362,  361,  360,  359,  358,  357,  356,  355,
-      354,  348,  347,  346,  345,  344,  343,  342,  341,  210,
-      335,  333,  331,  328,  326,  319,  318,  317,  316,  315,
-      313,  312,  308,  307,  306,  303,  302,  301,  297,  287,
-      284,  280,  279,  274,  273,  272,  269,  267,  266,  265,
-      264,  263,  262,  259,  258,  257,  254,  253,  252,  249,
-      248,  244,  243,  234,  233,  232,  231,  227,  226,  225,
-      221,  220,  219,  215,  210,  199,  198,  196,  195,  186,
-      166,  143,  108,  105,  104,   43,   99,   97,   96,   87,
-       43, 2201,   11, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201
+     2198, 2199, 2200, 2201, 2202, 2203, 2204,   12,   12,   12,
+       36,   36,   36,   79,   98,   79,  100,  100,  100,  114,
+      114,  114,  188,  863,  188,  209,  209,  209,  862,  861,
+
+      860,  859,  858,  857,  856,  855,  854,  853,  852,  851,
+      850,  849,  848,  847,  846,  845,  844,  843,  842,  841,
+      840,  836,  835,  834,  833,  832,  831,  830,  829,  828,
+      827,  826,  825,  822,  821,  820,  819,  818,  817,  816,
+      815,  814,  813,  812,  811,  810,  809,  808,  807,  806,
+      805,  804,  803,  802,  801,  800,  797,  796,  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,  766,  765,  764,  763,  762,
+      761,  760,  759,  758,  757,  756,  755,  754,  753,  752,
+
+      751,  750,  749,  745,  742,  741,  740,  739,  738,  737,
+      736,  735,  734,  733,  732,  731,  730,  729,  728,  727,
+      726,  725,  724,  723,  722,  719,  718,  717,  716,  715,
+      714,  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,
+      680,  679,  678,  677,  676,  675,  674,  673,  672,  671,
+      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
+      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
+      648,  647,  644,  643,  642,  641,  640,  639,  638,  637,
+
+      636,  635,  632,  631,  630,  622,  621,  620,  619,  618,
+      617,  616,  615,  614,  613,  612,  611,  610,  609,  607,
+      604,  603,  602,  600,  599,  598,  595,  594,  593,  592,
+      591,  590,  589,  588,  587,  586,  585,  584,  583,  582,
+      581,  580,  579,  578,  575,  574,  573,  572,  571,  570,
+      569,  566,  565,  562,  561,  560,  559,  556,  555,  551,
+      550,  549,  548,  547,  546,  545,  544,  543,  542,  541,
+      540,  539,  538,  534,  533,  532,  529,  528,  527,  522,
+      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
+      511,  510,  505,  504,  503,  502,  501,  500,  499,  498,
+
+      497,  496,  495,  494,  493,  492,  491,  488,  487,  486,
+      485,  482,  481,  480,  479,  478,  477,  476,  475,  474,
+      473,  472,  471,  470,  469,  467,  465,  464,  462,  460,
+      458,  455,  454,  453,  452,  451,  449,  448,  447,  446,
+      444,  443,  442,  439,  438,  437,  436,  435,  434,  433,
+      432,  431,  430,  429,  428,  427,  424,  423,  422,  421,
+      420,  419,  418,  417,  416,  415,  414,  411,  410,  407,
+      406,  403,  402,  401,  400,  398,  397,  396,  395,  394,
+      393,  389,  388,  387,  386,  385,  384,  383,  380,  379,
+      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
+
+      368,  367,  366,  365,  364,  363,  362,  361,  360,  359,
+      358,  357,  356,  355,  354,  348,  347,  346,  345,  344,
+      343,  342,  341,  210,  335,  333,  331,  328,  326,  319,
+      318,  317,  316,  315,  313,  312,  308,  307,  306,  303,
+      302,  301,  297,  287,  284,  280,  279,  274,  273,  272,
+      269,  267,  266,  265,  264,  263,  262,  259,  258,  257,
+      254,  253,  252,  249,  248,  244,  243,  234,  233,  232,
+      231,  227,  226,  225,  221,  220,  219,  215,  210,  199,
+      198,  196,  195,  186,  166,  143,  108,  105,  104,   43,
+       99,   97,   96,   87,   43, 2205,   11, 2205, 2205, 2205,
+
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205
     } ;
 
-static const flex_int16_t yy_chk[2667] =
+static const flex_int16_t yy_chk[2671] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  686,    3,    3,    3,   21,    1,    1,    3,   44,
+       21,  687,    3,    3,    3,   21,    1,    1,    3,   44,
         0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
        28,    1,  107,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      686,    8,    8,    8,    1,    8,   44,   27,   28,  107,
+      687,    8,    8,    8,    1,    8,   44,   27,   28,  107,
        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,
@@ -1799,7 +1801,7 @@ static const flex_int16_t yy_chk[2667] =
        51,   42,    9,    2,   53,    2,   55,   56,   31,   64,
        10,    2,    2,   47,   64,  253,   25,   64,   25,   50,
         2,   25,   25,   25,   25,   25,    2,   53,   51,   55,
-      729,   56,  253,    2,    2,   15,   15,   15,   15,   15,
+      728,   56,  253,    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,
@@ -1822,13 +1824,13 @@ static const flex_int16_t yy_chk[2667] =
        45,   45,   45,   45,   92,   65,   57,   73,   67,   67,
        57,   73,   67,   78,   57,   65,   68,   65,   67,  134,
        68,  108,   57,   70,   68,  113,   57,  112,   57,   57,
-       76,   70,   92,   70,  575,  134,   68,   78,   70,   70,
+       76,   70,   92,   70,  576,  134,   68,   78,   70,   70,
        68,   71,   74,   93,   71,   71,   74,   78,  113,   74,
        75,   75,  108,   76,  112,   71,   74,   74,   71,   95,
        75,   74,   74,   76,   94,  103,  106,  100,   76,   93,
-       75,   80,   80,   80,   80,   80,   81,  730,   81,   81,
+       75,   80,   80,   80,   80,   80,   81,  729,   81,   81,
 
-       81,   81,   81,   75,   80,   75,  575,   95,   75,   75,
+       81,   81,   81,   75,   80,   75,  576,   95,   75,   75,
        94,   81,  106,  103,   82,  731,   82,  140,   75,   82,
        82,   82,   82,   82,  100,   75,   83,   80,   83,   83,
        83,   83,   83,  102,   81,   84,   84,   84,   84,   84,
@@ -1846,237 +1848,237 @@ static const flex_int16_t yy_chk[2667] =
       192,  170,  168,  168,  168,  170,  178,  197,  182,  170,
       189,  200,  194,  168,  190,  168,  193,  168,  168,  201,
       168,  204,  206,  208,  214,  261,  223,  224,  192,  223,
-      197,  604,  213,  268,  279,  224,  276,  355,  340,  200,
+      197,  605,  213,  268,  279,  224,  276,  355,  340,  200,
       273,  224,  355,  423,  204,  206,  276,  214,  320,  279,
-      208,  212,  212,  212,  212,  212,  268,  305,  604,  305,
+      208,  212,  212,  212,  212,  212,  268,  305,  605,  305,
 
       212,  212,  212,  212,  212,  212,  291,  340,  314,  291,
-      323,  320,  329,  332,  360,  399,  415,  376,  261,  398,
+      323,  320,  329,  332,  360,  399,  734,  376,  261,  398,
       360,  261,  376,  212,  212,  212,  212,  212,  212,  398,
-      273,  314,  423,  323,  394,  329,  390,  390,  390,  453,
-      394,  332,  390,  399,  453,  314,  337,  337,  337,  337,
-      337,  628,  660,  660,  628,  337,  337,  337,  337,  337,
-      337,  418,  426,  434,  459,  418,  426,  434,  734,  465,
-      376,  465,  735,  489,  415,  376,  468,  485,  337,  337,
-      337,  337,  337,  337,  525,  485,  489,  485,  485,  485,
-      485,  485,  459,  728,  525,  605,  465,  736,  465,  466,
-
-      466,  466,  466,  466,  468,  728,  737,  738,  466,  466,
-      466,  466,  466,  466,  501,  537,  568,  607,  609,  501,
-      537,  568,  607,  605,  699,  609,  741,  742,  743,  699,
-      744,  466,  466,  466,  466,  466,  466,  745,  746,  747,
-      748,  749,  750,  751,  752,  753,  754,  754,  755,  754,
-      742,  756,  757,  758,  741,  759,  760,  761,  762,  763,
-      764,  765,  766,  767,  768,  769,  770,  771,  699,  772,
-      773,  774,  775,  776,  777,  778,  775,  779,  780,  781,
-      775,  782,  783,  785,  786,  787,  788,  789,  790,  791,
-      792,  793,  794,  795,  796,  797,  798,  799,  800,  801,
-
-      802,  803,  804,  805,  806,  807,  805,  808,  810,  811,
-      812,  813,  814,  815,  816,  817,  818,  819,  820,  822,
-      823,  824,  825,  826,  827,  828,  829,  830,  831,  832,
-      833,  835,  836,  837,  838,  839,  840,  841,  842,  843,
-      844,  845,  846,  847,  848,  849,  850,  851,  852,  853,
-      854,  855,  856,  857,  858,  859,  853,  860,  855,  861,
-      862,  859,  855,  864,  865,  866,  867,  868,  869,  870,
-      871,  872,  873,  874,  875,  876,  877,  878,  879,  880,
-      881,  882,  883,  884,  885,  887,  888,  889,  890,  891,
-      892,  893,  894,  895,  896,  897,  898,  899,  900,  901,
-
-      902,  903,  904,  876,  905,  906,  907,  908,  909,  910,
-      911,  912,  913,  914,  915,  916,  917,  918,  920,  921,
-      922,  923,  924,  925,  926,  927,  928,  929,  925,  930,
-      931,  932,  933,  934,  935,  936,  939,  940,  941,  942,
-      943,  944,  945,  948,  949,  950,  951,  952,  953,  955,
-      956,  957,  958,  959,  956,  960,  961,  962,  963,  965,
-      966,  968,  969,  970,  971,  972,  973,  974,  975,  976,
+      273,  314,  423,  323,  394,  329,  390,  390,  390,  415,
+      394,  332,  390,  399,  415,  314,  337,  337,  337,  337,
+      337,  629,  661,  661,  629,  337,  337,  337,  337,  337,
+      337,  418,  426,  434,  453,  418,  426,  434,  459,  453,
+      376,  465,  489,  465,  735,  376,  525,  736,  337,  337,
+      337,  337,  337,  337,  501,  489,  525,  537,  468,  501,
+      569,  737,  537,  738,  730,  569,  459,  415,  465,  606,
+
+      465,  466,  466,  466,  466,  466,  730,  739,  740,  485,
+      466,  466,  466,  466,  466,  466,  468,  485,  610,  485,
+      485,  485,  485,  485,  608,  610,  701,  606,  743,  608,
+      744,  701,  745,  466,  466,  466,  466,  466,  466,  746,
+      747,  748,  749,  750,  751,  752,  753,  754,  755,  756,
+      756,  757,  756,  744,  758,  759,  743,  760,  761,  762,
+      763,  764,  765,  766,  767,  768,  769,  770,  771,  772,
+      701,  773,  774,  775,  776,  777,  778,  779,  780,  777,
+      781,  782,  783,  777,  784,  785,  787,  788,  789,  790,
+      791,  792,  793,  794,  795,  796,  797,  798,  799,  800,
+
+      801,  802,  803,  804,  805,  806,  807,  808,  809,  807,
+      810,  812,  813,  814,  815,  816,  817,  818,  819,  820,
+      821,  822,  824,  825,  826,  827,  828,  829,  830,  831,
+      832,  833,  834,  835,  836,  838,  839,  840,  841,  842,
+      843,  844,  845,  846,  847,  848,  849,  850,  851,  852,
+      853,  854,  855,  856,  857,  858,  859,  860,  861,  862,
+      856,  863,  858,  864,  865,  862,  858,  867,  868,  869,
+      870,  871,  872,  873,  874,  875,  876,  877,  878,  879,
+      880,  881,  882,  883,  884,  885,  886,  887,  888,  890,
+      891,  892,  893,  894,  895,  896,  897,  898,  899,  900,
+
+      901,  902,  903,  904,  905,  906,  907,  879,  908,  909,
+      910,  911,  912,  913,  914,  915,  916,  917,  918,  919,
+      920,  921,  923,  924,  925,  926,  927,  928,  929,  930,
+      931,  932,  928,  933,  934,  935,  936,  937,  938,  939,
+      942,  943,  944,  945,  946,  947,  948,  951,  952,  953,
+      954,  955,  956,  958,  959,  960,  961,  962,  959,  963,
+      964,  965,  966,  968,  969,  972,  973,  974,  975,  976,
       977,  978,  979,  980,  981,  982,  983,  984,  985,  986,
       987,  988,  989,  990,  991,  992,  993,  994,  995,  996,
-      997,  998,  999, 1000, 1001, 1003,  991, 1004, 1005, 1006,
+      997,  998,  999, 1000, 1001, 1002, 1003, 1004, 1005, 1007,
 
-     1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
-     1017, 1018, 1019, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
+      995, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
+     1017, 1018, 1019, 1020, 1021, 1022, 1023, 1025, 1026, 1027,
      1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
-     1014, 1038, 1039, 1013, 1040, 1041, 1042, 1043, 1044, 1045,
-     1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
-     1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066, 1067,
-     1068, 1070, 1071, 1066, 1072, 1073, 1074, 1075, 1076, 1077,
+     1038, 1039, 1040, 1041, 1018, 1042, 1043, 1017, 1044, 1045,
+     1046, 1047, 1048, 1049, 1051, 1052, 1053, 1054, 1055, 1056,
+     1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1066, 1067,
+     1068, 1069, 1070, 1071, 1072, 1074, 1075, 1070, 1076, 1077,
      1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
-     1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1097, 1099,
-     1100, 1101, 1103, 1104, 1105, 1092, 1106, 1107, 1109, 1110,
-
-     1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
-     1121, 1122, 1123, 1124, 1125, 1126, 1066, 1128, 1129, 1130,
-     1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
-     1141, 1142, 1143, 1144, 1147, 1145, 1148, 1149, 1150, 1152,
-     1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
+     1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
+     1098, 1099, 1101, 1103, 1104, 1105, 1107, 1108, 1109, 1096,
+
+     1110, 1111, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
+     1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
+     1070, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
+     1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1151, 1149,
+     1152, 1153, 1154, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
      1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172,
-     1174, 1144, 1145, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
+     1173, 1174, 1175, 1176, 1178, 1148, 1149, 1179, 1180, 1181,
      1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
-     1192, 1193, 1195, 1196, 1197, 1198, 1199, 1200, 1196, 1201,
-     1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
+     1192, 1193, 1194, 1195, 1196, 1197, 1199, 1200, 1201, 1202,
+     1203, 1204, 1200, 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, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1197, 1241,
-     1242, 1243, 1244, 1246, 1247, 1250, 1251, 1252, 1253, 1254,
+     1232, 1233, 1234, 1235, 1236, 1238, 1239, 1240, 1241, 1242,
+     1243, 1244, 1201, 1245, 1246, 1247, 1248, 1250, 1251, 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, 1284, 1285,
-     1286, 1287, 1288, 1289, 1290, 1291, 1292, 1269, 1294, 1295,
-     1296, 1297, 1298, 1270, 1299, 1300, 1301, 1302, 1303, 1304,
-     1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1316,
-
-     1318, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
-     1329, 1330, 1331, 1332, 1333, 1334, 1335, 1337, 1339, 1340,
-     1342, 1343, 1344, 1345, 1346, 1348, 1349, 1351, 1353, 1355,
-     1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
-     1366, 1367, 1368, 1369, 1371, 1372, 1373, 1374, 1375, 1376,
-     1377, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
-     1389, 1391, 1392, 1393, 1395, 1396, 1397, 1398, 1399, 1400,
+     1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284,
+     1285, 1286, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
+     1296, 1273, 1298, 1299, 1300, 1301, 1302, 1274, 1303, 1304,
+     1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314,
+
+     1315, 1316, 1317, 1320, 1322, 1324, 1325, 1326, 1327, 1328,
+     1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
+     1339, 1341, 1343, 1344, 1346, 1347, 1348, 1349, 1350, 1352,
+     1353, 1355, 1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
+     1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1375, 1376,
+     1377, 1378, 1379, 1380, 1381, 1384, 1385, 1386, 1387, 1388,
+     1389, 1390, 1391, 1392, 1393, 1395, 1396, 1397, 1399, 1400,
      1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
-     1411, 1412, 1413, 1414, 1415, 1416, 1417, 1388, 1418, 1420,
-     1421, 1422, 1365, 1423, 1424, 1425, 1426, 1427, 1428, 1429,
-
-     1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1395, 1438,
-     1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
-     1442, 1450, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
-     1461, 1462, 1463, 1464, 1465, 1466, 1467, 1469, 1470, 1471,
-     1472, 1473, 1475, 1477, 1475, 1472, 1478, 1481, 1482, 1483,
-     1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1494,
-     1495, 1496, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
+     1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
+     1421, 1392, 1422, 1424, 1425, 1426, 1369, 1427, 1428, 1429,
+
+     1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
+     1440, 1441, 1399, 1442, 1444, 1445, 1446, 1447, 1448, 1449,
+     1450, 1451, 1452, 1453, 1446, 1454, 1457, 1458, 1459, 1460,
+     1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
+     1471, 1473, 1474, 1475, 1476, 1477, 1479, 1481, 1479, 1476,
+     1482, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493,
+     1494, 1495, 1496, 1498, 1499, 1500, 1502, 1503, 1504, 1505,
      1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
-     1516, 1492, 1518, 1519, 1521, 1522, 1523, 1524, 1525, 1526,
-     1527, 1528, 1529, 1530, 1531, 1532, 1534, 1536, 1538, 1539,
-
-     1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
-     1552, 1553, 1554, 1555, 1556, 1557, 1559, 1560, 1564, 1565,
-     1567, 1568, 1569, 1570, 1572, 1573, 1572, 1574, 1575, 1572,
-     1576, 1577, 1572, 1578, 1579, 1580, 1581, 1582, 1583, 1585,
-     1587, 1588, 1589, 1591, 1592, 1593, 1595, 1596, 1597, 1598,
+     1516, 1517, 1518, 1519, 1520, 1496, 1522, 1523, 1525, 1526,
+     1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536,
+
+     1538, 1540, 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1550,
+     1551, 1552, 1553, 1554, 1556, 1557, 1558, 1559, 1560, 1561,
+     1563, 1564, 1568, 1569, 1571, 1572, 1573, 1574, 1576, 1577,
+     1576, 1578, 1579, 1576, 1580, 1581, 1576, 1582, 1583, 1584,
+     1585, 1586, 1587, 1589, 1591, 1592, 1593, 1595, 1596, 1597,
      1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608,
-     1609, 1611, 1612, 1613, 1602, 1614, 1616, 1617, 1618, 1589,
-     1619, 1620, 1621, 1622, 1623, 1624, 1624, 1625, 1626, 1627,
+     1609, 1610, 1611, 1612, 1613, 1615, 1616, 1617, 1606, 1618,
+     1620, 1621, 1622, 1593, 1623, 1624, 1625, 1626, 1627, 1628,
      1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637,
      1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
 
      1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
-     1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668, 1669,
-     1670, 1672, 1673, 1674, 1677, 1678, 1679, 1682, 1683, 1684,
-     1685, 1686, 1687, 1688, 1689, 1625, 1690, 1691, 1692, 1693,
-     1694, 1696, 1697, 1698, 1699, 1700, 1696, 1701, 1702, 1672,
-     1703, 1704, 1705, 1707, 1708, 1709, 1711, 1712, 1714, 1715,
-     1716, 1718, 1719, 1720, 1721, 1722, 1724, 1725, 1726, 1727,
+     1658, 1659, 1660, 1661, 1663, 1664, 1665, 1666, 1667, 1668,
+     1669, 1670, 1672, 1673, 1674, 1676, 1677, 1678, 1681, 1682,
+     1683, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1629,
+     1694, 1695, 1696, 1697, 1698, 1700, 1701, 1702, 1703, 1704,
+     1700, 1705, 1706, 1676, 1707, 1708, 1709, 1711, 1712, 1713,
+     1715, 1716, 1718, 1719, 1720, 1722, 1723, 1724, 1725, 1726,
      1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
      1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
-     1748, 1749, 1751, 1753, 1754, 1755, 1757, 1758, 1759, 1760,
-
-     1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1771,
-     1772, 1773, 1774, 1775, 1776, 1778, 1779, 1780, 1782, 1783,
-     1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1793, 1794,
-     1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804,
-     1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1814, 1816,
-     1817, 1818, 1812, 1819, 1821, 1823, 1824, 1825, 1826, 1827,
-     1828, 1829, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838,
-     1839, 1840, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
-     1850, 1852, 1853, 1854, 1855, 1857, 1858, 1859, 1860, 1861,
-     1862, 1863, 1864, 1865, 1866, 1867, 1869, 1870, 1871, 1872,
-
-     1873, 1875, 1876, 1877, 1878, 1881, 1882, 1883, 1884, 1885,
-     1886, 1887, 1888, 1890, 1891, 1892, 1893, 1894, 1895, 1896,
-     1897, 1898, 1899, 1900, 1901, 1902, 1905, 1906, 1907, 1908,
-     1909, 1910, 1911, 1912, 1913, 1914, 1916, 1917, 1919, 1920,
-     1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
-     1931, 1932, 1930, 1933, 1934, 1935, 1936, 1937, 1938, 1939,
-     1940, 1941, 1942, 1943, 1945, 1946, 1947, 1948, 1949, 1950,
-     1951, 1952, 1953, 1954, 1955, 1956, 1958, 1960, 1962, 1964,
-     1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
-     1976, 1977, 1978, 1979, 1980, 1981, 1983, 1984, 1985, 1986,
-
-     1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
-     1999, 2000, 2001, 2002, 2003, 2005, 2006, 2008, 2010, 2012,
-     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2023, 2024,
-     2025, 2026, 2027, 2028, 2029, 2031, 2032, 2033, 2034, 2035,
-     2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
-     2047, 2048, 2049, 2050, 2052, 2053, 2054, 2055, 2056, 2057,
-     2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
+     1748, 1749, 1750, 1751, 1752, 1753, 1755, 1757, 1758, 1759,
+
+     1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
+     1771, 1772, 1773, 1775, 1776, 1777, 1778, 1779, 1780, 1782,
+     1783, 1784, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793,
+     1794, 1795, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804,
+     1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814,
+     1815, 1816, 1818, 1820, 1821, 1822, 1816, 1823, 1825, 1827,
+     1828, 1829, 1830, 1831, 1832, 1833, 1835, 1836, 1837, 1838,
+     1839, 1840, 1841, 1842, 1843, 1844, 1846, 1847, 1848, 1849,
+     1850, 1851, 1852, 1853, 1854, 1856, 1857, 1858, 1859, 1861,
+     1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
+
+     1873, 1874, 1875, 1876, 1877, 1879, 1880, 1881, 1882, 1885,
+     1886, 1887, 1888, 1889, 1890, 1891, 1892, 1894, 1895, 1896,
+     1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906,
+     1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
+     1920, 1921, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
+     1931, 1932, 1933, 1934, 1935, 1936, 1934, 1937, 1938, 1939,
+     1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1949, 1950,
+     1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
+     1962, 1964, 1966, 1968, 1970, 1971, 1972, 1973, 1974, 1975,
+     1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
+
+     1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+     1997, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2009,
+     2010, 2012, 2014, 2016, 2018, 2019, 2020, 2021, 2022, 2023,
+     2024, 2025, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2035,
+     2036, 2037, 2038, 2039, 2041, 2042, 2043, 2044, 2045, 2046,
+     2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2056, 2057,
+     2058, 2059, 2060, 2061, 2063, 2064, 2065, 2066, 2067, 2068,
      2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
-     2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2088, 2089,
-     2091, 2092, 2093, 2094, 2096, 2097, 2098, 2099, 2105, 2109,
-
-     2110, 2111, 2112, 2113, 2114, 2115, 2116, 2118, 2119, 2120,
-     2121, 2122, 2123, 2124, 2125, 2127, 2128, 2129, 2130, 2131,
-     2132, 2134, 2136, 2138, 2139, 2140, 2141, 2142, 2143, 2145,
-     2146, 2147, 2148, 2149, 2148, 2150, 2151, 2153, 2154, 2157,
-     2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
-     2168, 2169, 2170, 2171, 2173, 2174, 2175, 2176, 2179, 2180,
-     2181, 2183, 2184, 2186, 2188, 2189, 2190, 2191, 2192, 2193,
-     2194, 2195, 2197, 2202, 2202, 2202, 2203, 2203, 2203, 2204,
-     2205, 2204, 2206, 2206, 2206, 2207, 2207, 2207, 2208,  727,
-     2208, 2209, 2209, 2209,  726,  725,  723,  722,  721,  720,
-
-      719,  718,  717,  716,  715,  714,  713,  712,  711,  709,
-      708,  707,  706,  705,  704,  703,  702,  701,  700,  698,
-      697,  695,  694,  693,  692,  691,  690,  689,  688,  687,
-      685,  684,  683,  682,  681,  679,  678,  676,  675,  674,
-      673,  672,  671,  670,  669,  668,  667,  666,  665,  664,
-      663,  662,  661,  659,  658,  657,  656,  655,  654,  652,
-      651,  650,  649,  648,  647,  646,  645,  643,  642,  641,
-      640,  639,  638,  637,  636,  635,  634,  633,  632,  631,
-      630,  629,  627,  626,  625,  624,  623,  622,  621,  620,
-      619,  618,  617,  616,  615,  614,  613,  612,  611,  610,
-
-      606,  600,  599,  598,  597,  596,  594,  592,  590,  588,
-      587,  586,  585,  584,  583,  582,  581,  580,  579,  578,
-      577,  576,  574,  573,  572,  571,  570,  569,  567,  566,
-      565,  564,  563,  562,  561,  560,  559,  558,  557,  556,
-      555,  553,  551,  550,  549,  548,  547,  546,  545,  544,
-      543,  542,  541,  540,  539,  538,  536,  535,  533,  532,
-      531,  530,  529,  528,  527,  526,  524,  523,  522,  521,
-      520,  519,  518,  517,  516,  515,  514,  513,  512,  511,
-      510,  509,  508,  507,  505,  504,  503,  502,  500,  499,
-      498,  497,  496,  495,  494,  493,  491,  490,  488,  487,
-
-      486,  484,  482,  481,  480,  479,  478,  477,  475,  474,
-      473,  472,  471,  470,  469,  467,  463,  461,  460,  458,
-      455,  454,  452,  451,  450,  449,  448,  447,  446,  445,
-      444,  443,  442,  441,  440,  439,  438,  437,  436,  435,
-      433,  432,  431,  430,  429,  428,  427,  425,  424,  422,
-      421,  420,  419,  417,  416,  414,  413,  412,  411,  410,
-      409,  408,  407,  406,  405,  404,  403,  402,  401,  397,
-      396,  395,  393,  392,  391,  389,  388,  387,  386,  385,
-      384,  383,  382,  381,  380,  379,  378,  377,  375,  374,
-      373,  372,  371,  370,  369,  368,  367,  366,  365,  364,
-
-      363,  362,  361,  359,  358,  357,  356,  354,  353,  352,
-      351,  350,  349,  348,  347,  346,  345,  344,  343,  342,
-      341,  339,  336,  334,  330,  328,  326,  319,  318,  317,
-      316,  315,  313,  312,  311,  310,  308,  307,  306,  304,
-      303,  302,  301,  300,  299,  298,  297,  296,  295,  294,
-      293,  292,  290,  289,  288,  287,  286,  285,  284,  283,
-      282,  281,  280,  278,  277,  275,  274,  272,  271,  270,
-      269,  267,  266,  265,  264,  263,  262,  260,  259,  258,
-      257,  256,  255,  254,  252,  251,  249,  248,  247,  246,
-      245,  244,  243,  242,  241,  240,  239,  238,  237,  236,
-
-      235,  234,  233,  232,  231,  230,  229,  228,  227,  226,
-      225,  222,  221,  220,  219,  218,  217,  216,  215,  209,
-      207,  205,  203,  198,  195,  187,  186,  185,  184,  183,
-      181,  180,  177,  176,  175,  173,  172,  171,  169,  167,
-      165,  163,  162,  160,  159,  158,  156,  154,  153,  152,
-      151,  150,  149,  147,  146,  145,  143,  142,  141,  139,
-      138,  136,  135,  131,  130,  129,  128,  126,  125,  124,
-      122,  121,  120,  118,  114,  105,  104,   98,   97,   77,
-       72,   66,   52,   49,   48,   43,   41,   39,   38,   24,
-       14,   11, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
-     2201, 2201, 2201, 2201, 2201, 2201
+     2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
+     2089, 2090, 2092, 2093, 2095, 2096, 2097, 2098, 2100, 2101,
+
+     2102, 2103, 2109, 2113, 2114, 2115, 2116, 2117, 2118, 2119,
+     2120, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2131,
+     2132, 2133, 2134, 2135, 2136, 2138, 2140, 2142, 2143, 2144,
+     2145, 2146, 2147, 2149, 2150, 2151, 2152, 2153, 2152, 2154,
+     2155, 2157, 2158, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
+     2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2177, 2178,
+     2179, 2180, 2183, 2184, 2185, 2187, 2188, 2190, 2192, 2193,
+     2194, 2195, 2196, 2197, 2198, 2199, 2201, 2206, 2206, 2206,
+     2207, 2207, 2207, 2208, 2209, 2208, 2210, 2210, 2210, 2211,
+     2211, 2211, 2212,  727, 2212, 2213, 2213, 2213,  725,  724,
+
+      723,  722,  721,  720,  719,  718,  717,  716,  715,  714,
+      713,  711,  710,  709,  708,  707,  706,  705,  704,  703,
+      702,  700,  699,  697,  696,  695,  694,  693,  692,  691,
+      690,  689,  688,  686,  685,  684,  683,  682,  680,  679,
+      677,  676,  675,  674,  673,  672,  671,  670,  669,  668,
+      667,  666,  665,  664,  663,  662,  660,  659,  658,  657,
+      656,  655,  653,  652,  651,  650,  649,  648,  647,  646,
+      644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
+      634,  633,  632,  631,  630,  628,  627,  626,  625,  624,
+      623,  622,  621,  620,  619,  618,  617,  616,  615,  614,
+
+      613,  612,  611,  607,  601,  600,  599,  598,  597,  595,
+      593,  591,  589,  588,  587,  586,  585,  584,  583,  582,
+      581,  580,  579,  578,  577,  575,  574,  573,  572,  571,
+      570,  568,  567,  566,  565,  564,  563,  562,  561,  560,
+      559,  558,  557,  556,  554,  553,  551,  550,  549,  548,
+      547,  546,  545,  544,  543,  542,  541,  540,  539,  538,
+      536,  535,  533,  532,  531,  530,  529,  528,  527,  526,
+      524,  523,  522,  521,  520,  519,  518,  517,  516,  515,
+      514,  513,  512,  511,  510,  509,  508,  507,  505,  504,
+      503,  502,  500,  499,  498,  497,  496,  495,  494,  493,
+
+      491,  490,  488,  487,  486,  484,  482,  481,  480,  479,
+      478,  477,  475,  474,  473,  472,  471,  470,  469,  467,
+      463,  461,  460,  458,  455,  454,  452,  451,  450,  449,
+      448,  447,  446,  445,  444,  443,  442,  441,  440,  439,
+      438,  437,  436,  435,  433,  432,  431,  430,  429,  428,
+      427,  425,  424,  422,  421,  420,  419,  417,  416,  414,
+      413,  412,  411,  410,  409,  408,  407,  406,  405,  404,
+      403,  402,  401,  397,  396,  395,  393,  392,  391,  389,
+      388,  387,  386,  385,  384,  383,  382,  381,  380,  379,
+      378,  377,  375,  374,  373,  372,  371,  370,  369,  368,
+
+      367,  366,  365,  364,  363,  362,  361,  359,  358,  357,
+      356,  354,  353,  352,  351,  350,  349,  348,  347,  346,
+      345,  344,  343,  342,  341,  339,  336,  334,  330,  328,
+      326,  319,  318,  317,  316,  315,  313,  312,  311,  310,
+      308,  307,  306,  304,  303,  302,  301,  300,  299,  298,
+      297,  296,  295,  294,  293,  292,  290,  289,  288,  287,
+      286,  285,  284,  283,  282,  281,  280,  278,  277,  275,
+      274,  272,  271,  270,  269,  267,  266,  265,  264,  263,
+      262,  260,  259,  258,  257,  256,  255,  254,  252,  251,
+      249,  248,  247,  246,  245,  244,  243,  242,  241,  240,
+
+      239,  238,  237,  236,  235,  234,  233,  232,  231,  230,
+      229,  228,  227,  226,  225,  222,  221,  220,  219,  218,
+      217,  216,  215,  209,  207,  205,  203,  198,  195,  187,
+      186,  185,  184,  183,  181,  180,  177,  176,  175,  173,
+      172,  171,  169,  167,  165,  163,  162,  160,  159,  158,
+      156,  154,  153,  152,  151,  150,  149,  147,  146,  145,
+      143,  142,  141,  139,  138,  136,  135,  131,  130,  129,
+      128,  126,  125,  124,  122,  121,  120,  118,  114,  105,
+      104,   98,   97,   77,   72,   66,   52,   49,   48,   43,
+       41,   39,   38,   24,   14,   11, 2205, 2205, 2205, 2205,
+
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+     2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2085,7 +2087,7 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[230] =
+static const flex_int16_t yy_rule_linenum[231] =
     {   0,
       148,  150,  152,  157,  158,  163,  164,  165,  177,  180,
       185,  192,  201,  210,  219,  228,  237,  246,  255,  264,
@@ -2100,18 +2102,18 @@ static const flex_int16_t yy_rule_linenum[230] =
 
      1085, 1096, 1107, 1118, 1128, 1139, 1148, 1157, 1172, 1188,
      1197, 1206, 1215, 1224, 1233, 1242, 1251, 1260, 1269, 1278,
-     1287, 1311, 1335, 1344, 1354, 1364, 1373, 1383, 1394, 1403,
-     1412, 1421, 1430, 1439, 1450, 1461, 1472, 1482, 1491, 1500,
-     1509, 1520, 1531, 1542, 1553, 1564, 1573, 1582, 1591, 1600,
-     1609, 1618, 1627, 1636, 1645, 1655, 1667, 1680, 1689, 1698,
-     1707, 1717, 1727, 1736, 1747, 1757, 1766, 1776, 1786, 1795,
-     1804, 1813, 1822, 1832, 1841, 1850, 1859, 1868, 1877, 1886,
+     1287, 1296, 1320, 1344, 1353, 1363, 1373, 1382, 1392, 1403,
+     1412, 1421, 1430, 1439, 1448, 1459, 1470, 1481, 1491, 1500,
+     1509, 1518, 1529, 1540, 1551, 1562, 1573, 1582, 1591, 1600,
+     1609, 1618, 1627, 1636, 1645, 1654, 1664, 1676, 1689, 1698,
+     1707, 1716, 1726, 1736, 1745, 1756, 1766, 1775, 1785, 1795,
+     1804, 1813, 1822, 1831, 1841, 1850, 1859, 1868, 1877, 1886,
      1895, 1904, 1913, 1922, 1931, 1940, 1949, 1958, 1967, 1976,
      1985, 1994, 2003, 2012, 2021, 2030, 2039, 2048, 2057, 2066,
 
      2075, 2084, 2093, 2102, 2111, 2120, 2129, 2138, 2147, 2156,
-     2165, 2266, 2282, 2331, 2339, 2354, 2355, 2356, 2357, 2358,
-     2359, 2361, 2379, 2392, 2397, 2401, 2403, 2405, 2407
+     2165, 2174, 2275, 2291, 2340, 2348, 2363, 2364, 2365, 2366,
+     2367, 2368, 2370, 2388, 2401, 2406, 2410, 2412, 2414, 2416
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2165,7 +2167,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 2168 "dhcp6_lexer.cc"
+#line 2171 "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
@@ -2191,8 +2193,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 2194 "dhcp6_lexer.cc"
-#line 2195 "dhcp6_lexer.cc"
+#line 2197 "dhcp6_lexer.cc"
+#line 2198 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2522,7 +2524,7 @@ YY_DECL
     }
 
 
-#line 2525 "dhcp6_lexer.cc"
+#line 2528 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2551,13 +2553,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 >= 2202 )
+                               if ( yy_current_state >= 2206 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 2201 );
+               while ( yy_current_state != 2205 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2576,13 +2578,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 < 230 )
+                       else if ( yy_act < 231 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 230 )
+                       else if ( yy_act == 231 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 231 )
+                       else if ( yy_act == 232 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -4111,6 +4113,18 @@ YY_RULE_SETUP
 case 121:
 YY_RULE_SETUP
 #line 1287 "dhcp6_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::POOLS:
+        return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
+    }
+}
+       YY_BREAK
+case 122:
+YY_RULE_SETUP
+#line 1296 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4135,9 +4149,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1311 "dhcp6_lexer.ll"
+#line 1320 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4162,9 +4176,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1335 "dhcp6_lexer.ll"
+#line 1344 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4174,9 +4188,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1344 "dhcp6_lexer.ll"
+#line 1353 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4187,9 +4201,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1354 "dhcp6_lexer.ll"
+#line 1363 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4200,9 +4214,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1364 "dhcp6_lexer.ll"
+#line 1373 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4212,9 +4226,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1373 "dhcp6_lexer.ll"
+#line 1382 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4225,9 +4239,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1383 "dhcp6_lexer.ll"
+#line 1392 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4239,9 +4253,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1394 "dhcp6_lexer.ll"
+#line 1403 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -4251,9 +4265,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1403 "dhcp6_lexer.ll"
+#line 1412 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -4263,9 +4277,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1412 "dhcp6_lexer.ll"
+#line 1421 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -4275,9 +4289,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1421 "dhcp6_lexer.ll"
+#line 1430 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -4287,9 +4301,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1430 "dhcp6_lexer.ll"
+#line 1439 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -4299,9 +4313,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1439 "dhcp6_lexer.ll"
+#line 1448 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4313,9 +4327,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1450 "dhcp6_lexer.ll"
+#line 1459 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4327,9 +4341,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1461 "dhcp6_lexer.ll"
+#line 1470 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4341,9 +4355,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1472 "dhcp6_lexer.ll"
+#line 1481 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4354,9 +4368,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1482 "dhcp6_lexer.ll"
+#line 1491 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4366,9 +4380,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1491 "dhcp6_lexer.ll"
+#line 1500 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4378,9 +4392,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1500 "dhcp6_lexer.ll"
+#line 1509 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4390,9 +4404,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1509 "dhcp6_lexer.ll"
+#line 1518 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4404,9 +4418,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1520 "dhcp6_lexer.ll"
+#line 1529 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4418,9 +4432,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1531 "dhcp6_lexer.ll"
+#line 1540 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4432,9 +4446,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1542 "dhcp6_lexer.ll"
+#line 1551 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4446,9 +4460,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1553 "dhcp6_lexer.ll"
+#line 1562 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4460,9 +4474,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1564 "dhcp6_lexer.ll"
+#line 1573 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4472,9 +4486,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1573 "dhcp6_lexer.ll"
+#line 1582 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4484,9 +4498,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1582 "dhcp6_lexer.ll"
+#line 1591 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4496,9 +4510,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1591 "dhcp6_lexer.ll"
+#line 1600 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4508,9 +4522,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1600 "dhcp6_lexer.ll"
+#line 1609 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4520,9 +4534,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1609 "dhcp6_lexer.ll"
+#line 1618 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4532,9 +4546,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1618 "dhcp6_lexer.ll"
+#line 1627 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4544,9 +4558,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1627 "dhcp6_lexer.ll"
+#line 1636 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4556,9 +4570,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1636 "dhcp6_lexer.ll"
+#line 1645 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4568,9 +4582,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1645 "dhcp6_lexer.ll"
+#line 1654 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4581,9 +4595,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1655 "dhcp6_lexer.ll"
+#line 1664 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4596,9 +4610,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1667 "dhcp6_lexer.ll"
+#line 1676 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4612,9 +4626,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1680 "dhcp6_lexer.ll"
+#line 1689 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4624,9 +4638,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1689 "dhcp6_lexer.ll"
+#line 1698 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4636,9 +4650,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1698 "dhcp6_lexer.ll"
+#line 1707 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4648,9 +4662,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1707 "dhcp6_lexer.ll"
+#line 1716 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4661,9 +4675,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1717 "dhcp6_lexer.ll"
+#line 1726 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4674,9 +4688,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1727 "dhcp6_lexer.ll"
+#line 1736 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4686,9 +4700,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1736 "dhcp6_lexer.ll"
+#line 1745 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -4700,9 +4714,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1747 "dhcp6_lexer.ll"
+#line 1756 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4713,9 +4727,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1757 "dhcp6_lexer.ll"
+#line 1766 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4725,9 +4739,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1766 "dhcp6_lexer.ll"
+#line 1775 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4738,9 +4752,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1776 "dhcp6_lexer.ll"
+#line 1785 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4751,9 +4765,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1786 "dhcp6_lexer.ll"
+#line 1795 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -4763,9 +4777,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1795 "dhcp6_lexer.ll"
+#line 1804 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4775,9 +4789,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1804 "dhcp6_lexer.ll"
+#line 1813 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4787,9 +4801,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1813 "dhcp6_lexer.ll"
+#line 1822 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4799,9 +4813,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1822 "dhcp6_lexer.ll"
+#line 1831 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4812,9 +4826,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1832 "dhcp6_lexer.ll"
+#line 1841 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -4824,9 +4838,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1841 "dhcp6_lexer.ll"
+#line 1850 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4836,9 +4850,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1850 "dhcp6_lexer.ll"
+#line 1859 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4848,9 +4862,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1859 "dhcp6_lexer.ll"
+#line 1868 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4860,9 +4874,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1868 "dhcp6_lexer.ll"
+#line 1877 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4872,9 +4886,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1877 "dhcp6_lexer.ll"
+#line 1886 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4884,9 +4898,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1886 "dhcp6_lexer.ll"
+#line 1895 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4896,9 +4910,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 1895 "dhcp6_lexer.ll"
+#line 1904 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4908,9 +4922,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 1904 "dhcp6_lexer.ll"
+#line 1913 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4920,9 +4934,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 1913 "dhcp6_lexer.ll"
+#line 1922 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4932,9 +4946,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 1922 "dhcp6_lexer.ll"
+#line 1931 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4944,9 +4958,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 1931 "dhcp6_lexer.ll"
+#line 1940 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4956,9 +4970,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 1940 "dhcp6_lexer.ll"
+#line 1949 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4968,9 +4982,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 1949 "dhcp6_lexer.ll"
+#line 1958 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4980,9 +4994,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 188:
+case 189:
 YY_RULE_SETUP
-#line 1958 "dhcp6_lexer.ll"
+#line 1967 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4992,9 +5006,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 1967 "dhcp6_lexer.ll"
+#line 1976 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5004,9 +5018,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 1976 "dhcp6_lexer.ll"
+#line 1985 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5016,9 +5030,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 191:
+case 192:
 YY_RULE_SETUP
-#line 1985 "dhcp6_lexer.ll"
+#line 1994 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5028,9 +5042,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 1994 "dhcp6_lexer.ll"
+#line 2003 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5040,9 +5054,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 2003 "dhcp6_lexer.ll"
+#line 2012 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5052,9 +5066,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 194:
+case 195:
 YY_RULE_SETUP
-#line 2012 "dhcp6_lexer.ll"
+#line 2021 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5064,9 +5078,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 195:
+case 196:
 YY_RULE_SETUP
-#line 2021 "dhcp6_lexer.ll"
+#line 2030 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5076,9 +5090,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 196:
+case 197:
 YY_RULE_SETUP
-#line 2030 "dhcp6_lexer.ll"
+#line 2039 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5088,9 +5102,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 197:
+case 198:
 YY_RULE_SETUP
-#line 2039 "dhcp6_lexer.ll"
+#line 2048 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5100,9 +5114,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 198:
+case 199:
 YY_RULE_SETUP
-#line 2048 "dhcp6_lexer.ll"
+#line 2057 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5112,9 +5126,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 199:
+case 200:
 YY_RULE_SETUP
-#line 2057 "dhcp6_lexer.ll"
+#line 2066 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -5124,9 +5138,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 200:
+case 201:
 YY_RULE_SETUP
-#line 2066 "dhcp6_lexer.ll"
+#line 2075 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -5136,9 +5150,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 201:
+case 202:
 YY_RULE_SETUP
-#line 2075 "dhcp6_lexer.ll"
+#line 2084 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5148,9 +5162,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 202:
+case 203:
 YY_RULE_SETUP
-#line 2084 "dhcp6_lexer.ll"
+#line 2093 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5160,9 +5174,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 203:
+case 204:
 YY_RULE_SETUP
-#line 2093 "dhcp6_lexer.ll"
+#line 2102 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5172,9 +5186,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 204:
+case 205:
 YY_RULE_SETUP
-#line 2102 "dhcp6_lexer.ll"
+#line 2111 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5184,9 +5198,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 205:
+case 206:
 YY_RULE_SETUP
-#line 2111 "dhcp6_lexer.ll"
+#line 2120 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5196,9 +5210,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 206:
+case 207:
 YY_RULE_SETUP
-#line 2120 "dhcp6_lexer.ll"
+#line 2129 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5208,9 +5222,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 207:
+case 208:
 YY_RULE_SETUP
-#line 2129 "dhcp6_lexer.ll"
+#line 2138 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5220,9 +5234,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 208:
+case 209:
 YY_RULE_SETUP
-#line 2138 "dhcp6_lexer.ll"
+#line 2147 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5232,9 +5246,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 209:
+case 210:
 YY_RULE_SETUP
-#line 2147 "dhcp6_lexer.ll"
+#line 2156 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5244,9 +5258,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 210:
+case 211:
 YY_RULE_SETUP
-#line 2156 "dhcp6_lexer.ll"
+#line 2165 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::COMPATIBILITY:
@@ -5256,9 +5270,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 211:
+case 212:
 YY_RULE_SETUP
-#line 2165 "dhcp6_lexer.ll"
+#line 2174 "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.
@@ -5360,10 +5374,10 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 212:
-/* rule 212 can match eol */
+case 213:
+/* rule 213 can match eol */
 YY_RULE_SETUP
-#line 2266 "dhcp6_lexer.ll"
+#line 2275 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     std::string raw(yytext+1);
@@ -5380,10 +5394,10 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 213:
-/* rule 213 can match eol */
+case 214:
+/* rule 214 can match eol */
 YY_RULE_SETUP
-#line 2282 "dhcp6_lexer.ll"
+#line 2291 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     std::string raw(yytext+1);
@@ -5433,9 +5447,9 @@ YY_RULE_SETUP
                  pos);
 }
        YY_BREAK
-case 214:
+case 215:
 YY_RULE_SETUP
-#line 2331 "dhcp6_lexer.ll"
+#line 2340 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     std::string raw(yytext+1);
@@ -5444,9 +5458,9 @@ YY_RULE_SETUP
                  raw.size() + 1);
 }
        YY_BREAK
-case 215:
+case 216:
 YY_RULE_SETUP
-#line 2339 "dhcp6_lexer.ll"
+#line 2348 "dhcp6_lexer.ll"
 {
     /* Bad string with an open unicode escape at the end */
     std::string raw(yytext+1);
@@ -5462,39 +5476,39 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 216:
+case 217:
 YY_RULE_SETUP
-#line 2354 "dhcp6_lexer.ll"
+#line 2363 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 217:
+case 218:
 YY_RULE_SETUP
-#line 2355 "dhcp6_lexer.ll"
+#line 2364 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 218:
+case 219:
 YY_RULE_SETUP
-#line 2356 "dhcp6_lexer.ll"
+#line 2365 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 219:
+case 220:
 YY_RULE_SETUP
-#line 2357 "dhcp6_lexer.ll"
+#line 2366 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 220:
+case 221:
 YY_RULE_SETUP
-#line 2358 "dhcp6_lexer.ll"
+#line 2367 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 221:
+case 222:
 YY_RULE_SETUP
-#line 2359 "dhcp6_lexer.ll"
+#line 2368 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 222:
+case 223:
 YY_RULE_SETUP
-#line 2361 "dhcp6_lexer.ll"
+#line 2370 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -5513,9 +5527,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 223:
+case 224:
 YY_RULE_SETUP
-#line 2379 "dhcp6_lexer.ll"
+#line 2388 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -5529,43 +5543,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 224:
+case 225:
 YY_RULE_SETUP
-#line 2392 "dhcp6_lexer.ll"
+#line 2401 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 225:
+case 226:
 YY_RULE_SETUP
-#line 2397 "dhcp6_lexer.ll"
+#line 2406 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 226:
+case 227:
 YY_RULE_SETUP
-#line 2401 "dhcp6_lexer.ll"
+#line 2410 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 227:
+case 228:
 YY_RULE_SETUP
-#line 2403 "dhcp6_lexer.ll"
+#line 2412 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 228:
+case 229:
 YY_RULE_SETUP
-#line 2405 "dhcp6_lexer.ll"
+#line 2414 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 229:
+case 230:
 YY_RULE_SETUP
-#line 2407 "dhcp6_lexer.ll"
+#line 2416 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2409 "dhcp6_lexer.ll"
+#line 2418 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -5589,12 +5603,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 230:
+case 231:
 YY_RULE_SETUP
-#line 2432 "dhcp6_lexer.ll"
+#line 2441 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 5597 "dhcp6_lexer.cc"
+#line 5612 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5913,7 +5927,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 >= 2202 )
+                       if ( yy_current_state >= 2206 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5946,11 +5960,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 >= 2202 )
+               if ( yy_current_state >= 2206 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 2201);
+       yy_is_jam = (yy_current_state == 2205);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6699,7 +6713,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2432 "dhcp6_lexer.ll"
+#line 2441 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 395cac2d46a4b8c5a5ed8322d2fc3b8c04b066e9..55310c12d03fac978099cda4893d1e9cf3ccf556 100644 (file)
@@ -1283,6 +1283,15 @@ ControlCharacterFill            [^"\\]|\\["\\/bfnrtu]
     }
 }
 
+\"pool-id\" {
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::POOLS:
+        return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
+    }
+}
+
 \"user-context\" {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
index 9153be76a9e0736625dce25f19dd6fdba2172e71..78e295840c25ef2764a1f0e950bec9fa1e9b9f35 100644 (file)
@@ -403,73 +403,73 @@ namespace isc { namespace dhcp {
         switch (yykind)
     {
       case symbol_kind::S_STRING: // "constant string"
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < std::string > (); }
 #line 409 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_INTEGER: // "integer"
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < int64_t > (); }
 #line 415 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_FLOAT: // "floating point"
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < double > (); }
 #line 421 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_BOOLEAN: // "boolean"
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < bool > (); }
 #line 427 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_value: // value
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 433 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_map_value: // map_value
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 439 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 445 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_db_type: // db_type
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 451 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_on_fail_mode: // on_fail_mode
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 457 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_hr_mode: // hr_mode
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 463 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_duid_type: // duid_type
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 469 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
-#line 307 "dhcp6_parser.yy"
+#line 308 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 475 "dhcp6_parser.cc"
         break;
@@ -749,133 +749,133 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2: // $@1: %empty
-#line 316 "dhcp6_parser.yy"
+#line 317 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 755 "dhcp6_parser.cc"
     break;
 
   case 4: // $@2: %empty
-#line 317 "dhcp6_parser.yy"
+#line 318 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.CONFIG; }
 #line 761 "dhcp6_parser.cc"
     break;
 
   case 6: // $@3: %empty
-#line 318 "dhcp6_parser.yy"
+#line 319 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.DHCP6; }
 #line 767 "dhcp6_parser.cc"
     break;
 
   case 8: // $@4: %empty
-#line 319 "dhcp6_parser.yy"
+#line 320 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 773 "dhcp6_parser.cc"
     break;
 
   case 10: // $@5: %empty
-#line 320 "dhcp6_parser.yy"
+#line 321 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.SUBNET6; }
 #line 779 "dhcp6_parser.cc"
     break;
 
   case 12: // $@6: %empty
-#line 321 "dhcp6_parser.yy"
+#line 322 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.POOLS; }
 #line 785 "dhcp6_parser.cc"
     break;
 
   case 14: // $@7: %empty
-#line 322 "dhcp6_parser.yy"
+#line 323 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.PD_POOLS; }
 #line 791 "dhcp6_parser.cc"
     break;
 
   case 16: // $@8: %empty
-#line 323 "dhcp6_parser.yy"
+#line 324 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 797 "dhcp6_parser.cc"
     break;
 
   case 18: // $@9: %empty
-#line 324 "dhcp6_parser.yy"
+#line 325 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.DHCP6; }
 #line 803 "dhcp6_parser.cc"
     break;
 
   case 20: // $@10: %empty
-#line 325 "dhcp6_parser.yy"
+#line 326 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 809 "dhcp6_parser.cc"
     break;
 
   case 22: // $@11: %empty
-#line 326 "dhcp6_parser.yy"
+#line 327 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 815 "dhcp6_parser.cc"
     break;
 
   case 24: // $@12: %empty
-#line 327 "dhcp6_parser.yy"
+#line 328 "dhcp6_parser.yy"
                          { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 821 "dhcp6_parser.cc"
     break;
 
   case 26: // $@13: %empty
-#line 328 "dhcp6_parser.yy"
+#line 329 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 827 "dhcp6_parser.cc"
     break;
 
   case 28: // $@14: %empty
-#line 329 "dhcp6_parser.yy"
+#line 330 "dhcp6_parser.yy"
                           { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 833 "dhcp6_parser.cc"
     break;
 
   case 30: // value: "integer"
-#line 337 "dhcp6_parser.yy"
+#line 338 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 839 "dhcp6_parser.cc"
     break;
 
   case 31: // value: "floating point"
-#line 338 "dhcp6_parser.yy"
+#line 339 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 845 "dhcp6_parser.cc"
     break;
 
   case 32: // value: "boolean"
-#line 339 "dhcp6_parser.yy"
+#line 340 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 851 "dhcp6_parser.cc"
     break;
 
   case 33: // value: "constant string"
-#line 340 "dhcp6_parser.yy"
+#line 341 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 857 "dhcp6_parser.cc"
     break;
 
   case 34: // value: "null"
-#line 341 "dhcp6_parser.yy"
+#line 342 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 863 "dhcp6_parser.cc"
     break;
 
   case 35: // value: map2
-#line 342 "dhcp6_parser.yy"
+#line 343 "dhcp6_parser.yy"
             { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 869 "dhcp6_parser.cc"
     break;
 
   case 36: // value: list_generic
-#line 343 "dhcp6_parser.yy"
+#line 344 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 875 "dhcp6_parser.cc"
     break;
 
   case 37: // sub_json: value
-#line 346 "dhcp6_parser.yy"
+#line 347 "dhcp6_parser.yy"
                 {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
@@ -884,7 +884,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 38: // $@15: %empty
-#line 351 "dhcp6_parser.yy"
+#line 352 "dhcp6_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -895,7 +895,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 39: // map2: "{" $@15 map_content "}"
-#line 356 "dhcp6_parser.yy"
+#line 357 "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
@@ -905,13 +905,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 40: // map_value: map2
-#line 362 "dhcp6_parser.yy"
+#line 363 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 911 "dhcp6_parser.cc"
     break;
 
   case 43: // not_empty_map: "constant string" ":" value
-#line 369 "dhcp6_parser.yy"
+#line 370 "dhcp6_parser.yy"
                                   {
                   // map containing a single entry
                   ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location));
@@ -921,7 +921,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 44: // not_empty_map: not_empty_map "," "constant string" ":" value
-#line 374 "dhcp6_parser.yy"
+#line 375 "dhcp6_parser.yy"
                                                       {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -932,7 +932,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 45: // not_empty_map: not_empty_map ","
-#line 380 "dhcp6_parser.yy"
+#line 381 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -940,7 +940,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46: // $@16: %empty
-#line 385 "dhcp6_parser.yy"
+#line 386 "dhcp6_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -949,7 +949,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 47: // list_generic: "[" $@16 list_content "]"
-#line 388 "dhcp6_parser.yy"
+#line 389 "dhcp6_parser.yy"
                                {
     // list parsing complete. Put any sanity checking here
 }
@@ -957,7 +957,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 50: // not_empty_list: value
-#line 396 "dhcp6_parser.yy"
+#line 397 "dhcp6_parser.yy"
                       {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -966,7 +966,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51: // not_empty_list: not_empty_list "," value
-#line 400 "dhcp6_parser.yy"
+#line 401 "dhcp6_parser.yy"
                                            {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -975,7 +975,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52: // not_empty_list: not_empty_list ","
-#line 404 "dhcp6_parser.yy"
+#line 405 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -983,7 +983,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 53: // $@17: %empty
-#line 410 "dhcp6_parser.yy"
+#line 411 "dhcp6_parser.yy"
                               {
     // List parsing about to start
 }
@@ -991,7 +991,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 54: // list_strings: "[" $@17 list_strings_content "]"
-#line 412 "dhcp6_parser.yy"
+#line 413 "dhcp6_parser.yy"
                                        {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57: // not_empty_list_strings: "constant string"
-#line 421 "dhcp6_parser.yy"
+#line 422 "dhcp6_parser.yy"
                                {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1009,7 +1009,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string"
-#line 425 "dhcp6_parser.yy"
+#line 426 "dhcp6_parser.yy"
                                                             {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59: // not_empty_list_strings: not_empty_list_strings ","
-#line 429 "dhcp6_parser.yy"
+#line 430 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 60: // unknown_map_entry: "constant string" ":"
-#line 439 "dhcp6_parser.yy"
+#line 440 "dhcp6_parser.yy"
                                 {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
@@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 61: // $@18: %empty
-#line 448 "dhcp6_parser.yy"
+#line 449 "dhcp6_parser.yy"
                            {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 62: // syntax_map: "{" $@18 global_object "}"
-#line 453 "dhcp6_parser.yy"
+#line 454 "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
@@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 63: // $@19: %empty
-#line 463 "dhcp6_parser.yy"
+#line 464 "dhcp6_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}"
-#line 472 "dhcp6_parser.yy"
+#line 473 "dhcp6_parser.yy"
                                                     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1086,7 +1086,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 66: // global_object_comma: global_object ","
-#line 480 "dhcp6_parser.yy"
+#line 481 "dhcp6_parser.yy"
                                          {
     ctx.warnAboutExtraCommas(yystack_[0].location);
 }
@@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 67: // $@20: %empty
-#line 486 "dhcp6_parser.yy"
+#line 487 "dhcp6_parser.yy"
                           {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 68: // sub_dhcp6: "{" $@20 global_params "}"
-#line 490 "dhcp6_parser.yy"
+#line 491 "dhcp6_parser.yy"
                                {
     // No global parameter is required
     // parsing completed
@@ -1113,7 +1113,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71: // global_params: global_params ","
-#line 497 "dhcp6_parser.yy"
+#line 498 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -1121,7 +1121,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 140: // $@21: %empty
-#line 574 "dhcp6_parser.yy"
+#line 575 "dhcp6_parser.yy"
                                {
     ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1130,7 +1130,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 141: // data_directory: "data-directory" $@21 ":" "constant string"
-#line 577 "dhcp6_parser.yy"
+#line 578 "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);
@@ -1140,7 +1140,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 142: // preferred_lifetime: "preferred-lifetime" ":" "integer"
-#line 583 "dhcp6_parser.yy"
+#line 584 "dhcp6_parser.yy"
                                                      {
     ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1150,7 +1150,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 143: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer"
-#line 589 "dhcp6_parser.yy"
+#line 590 "dhcp6_parser.yy"
                                                              {
     ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1160,7 +1160,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 144: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer"
-#line 595 "dhcp6_parser.yy"
+#line 596 "dhcp6_parser.yy"
                                                              {
     ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1170,7 +1170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 145: // valid_lifetime: "valid-lifetime" ":" "integer"
-#line 601 "dhcp6_parser.yy"
+#line 602 "dhcp6_parser.yy"
                                              {
     ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1180,7 +1180,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 146: // min_valid_lifetime: "min-valid-lifetime" ":" "integer"
-#line 607 "dhcp6_parser.yy"
+#line 608 "dhcp6_parser.yy"
                                                      {
     ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1190,7 +1190,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 147: // max_valid_lifetime: "max-valid-lifetime" ":" "integer"
-#line 613 "dhcp6_parser.yy"
+#line 614 "dhcp6_parser.yy"
                                                      {
     ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1200,7 +1200,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 148: // renew_timer: "renew-timer" ":" "integer"
-#line 619 "dhcp6_parser.yy"
+#line 620 "dhcp6_parser.yy"
                                        {
     ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1210,7 +1210,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 149: // rebind_timer: "rebind-timer" ":" "integer"
-#line 625 "dhcp6_parser.yy"
+#line 626 "dhcp6_parser.yy"
                                          {
     ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1220,7 +1220,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 150: // calculate_tee_times: "calculate-tee-times" ":" "boolean"
-#line 631 "dhcp6_parser.yy"
+#line 632 "dhcp6_parser.yy"
                                                        {
     ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location));
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1230,7 +1230,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 151: // t1_percent: "t1-percent" ":" "floating point"
-#line 637 "dhcp6_parser.yy"
+#line 638 "dhcp6_parser.yy"
                                    {
     ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1240,7 +1240,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 152: // t2_percent: "t2-percent" ":" "floating point"
-#line 643 "dhcp6_parser.yy"
+#line 644 "dhcp6_parser.yy"
                                    {
     ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1250,7 +1250,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 153: // cache_threshold: "cache-threshold" ":" "floating point"
-#line 649 "dhcp6_parser.yy"
+#line 650 "dhcp6_parser.yy"
                                              {
     ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location));
     ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1260,7 +1260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 154: // cache_max_age: "cache-max-age" ":" "integer"
-#line 655 "dhcp6_parser.yy"
+#line 656 "dhcp6_parser.yy"
                                            {
     ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1270,7 +1270,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 155: // decline_probation_period: "decline-probation-period" ":" "integer"
-#line 661 "dhcp6_parser.yy"
+#line 662 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location));
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1280,7 +1280,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 156: // ddns_send_updates: "ddns-send-updates" ":" "boolean"
-#line 667 "dhcp6_parser.yy"
+#line 668 "dhcp6_parser.yy"
                                                    {
     ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1290,7 +1290,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 157: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean"
-#line 673 "dhcp6_parser.yy"
+#line 674 "dhcp6_parser.yy"
                                                                {
     ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1300,7 +1300,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 158: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean"
-#line 679 "dhcp6_parser.yy"
+#line 680 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1310,7 +1310,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 159: // $@22: %empty
-#line 685 "dhcp6_parser.yy"
+#line 686 "dhcp6_parser.yy"
                                                    {
     ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -1319,7 +1319,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 160: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value
-#line 688 "dhcp6_parser.yy"
+#line 689 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1328,7 +1328,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 161: // ddns_replace_client_name_value: "when-present"
-#line 694 "dhcp6_parser.yy"
+#line 695 "dhcp6_parser.yy"
                  {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1336,7 +1336,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 162: // ddns_replace_client_name_value: "never"
-#line 697 "dhcp6_parser.yy"
+#line 698 "dhcp6_parser.yy"
           {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1344,7 +1344,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 163: // ddns_replace_client_name_value: "always"
-#line 700 "dhcp6_parser.yy"
+#line 701 "dhcp6_parser.yy"
            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1352,7 +1352,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 164: // ddns_replace_client_name_value: "when-not-present"
-#line 703 "dhcp6_parser.yy"
+#line 704 "dhcp6_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1360,7 +1360,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 165: // ddns_replace_client_name_value: "boolean"
-#line 706 "dhcp6_parser.yy"
+#line 707 "dhcp6_parser.yy"
             {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -1369,7 +1369,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 166: // $@23: %empty
-#line 712 "dhcp6_parser.yy"
+#line 713 "dhcp6_parser.yy"
                                              {
     ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1378,7 +1378,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 167: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string"
-#line 715 "dhcp6_parser.yy"
+#line 716 "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);
@@ -1388,7 +1388,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 168: // $@24: %empty
-#line 721 "dhcp6_parser.yy"
+#line 722 "dhcp6_parser.yy"
                                                {
     ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1397,7 +1397,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 169: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string"
-#line 724 "dhcp6_parser.yy"
+#line 725 "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);
@@ -1407,7 +1407,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 170: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean"
-#line 730 "dhcp6_parser.yy"
+#line 731 "dhcp6_parser.yy"
                                                          {
     ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1417,7 +1417,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 171: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean"
-#line 736 "dhcp6_parser.yy"
+#line 737 "dhcp6_parser.yy"
                                                                          {
     ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1427,7 +1427,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 172: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point"
-#line 742 "dhcp6_parser.yy"
+#line 743 "dhcp6_parser.yy"
                                                {
     ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1437,7 +1437,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 173: // $@25: %empty
-#line 748 "dhcp6_parser.yy"
+#line 749 "dhcp6_parser.yy"
                                      {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1446,7 +1446,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 174: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string"
-#line 751 "dhcp6_parser.yy"
+#line 752 "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);
@@ -1456,7 +1456,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 175: // $@26: %empty
-#line 757 "dhcp6_parser.yy"
+#line 758 "dhcp6_parser.yy"
                                                      {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1465,7 +1465,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 176: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string"
-#line 760 "dhcp6_parser.yy"
+#line 761 "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);
@@ -1475,7 +1475,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 177: // store_extended_info: "store-extended-info" ":" "boolean"
-#line 766 "dhcp6_parser.yy"
+#line 767 "dhcp6_parser.yy"
                                                        {
     ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1485,7 +1485,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 178: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
-#line 772 "dhcp6_parser.yy"
+#line 773 "dhcp6_parser.yy"
                                                                              {
     ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location));
     ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1495,7 +1495,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 179: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
-#line 778 "dhcp6_parser.yy"
+#line 779 "dhcp6_parser.yy"
                                                                          {
     ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1505,7 +1505,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 180: // $@27: %empty
-#line 784 "dhcp6_parser.yy"
+#line 785 "dhcp6_parser.yy"
                        {
     ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1514,7 +1514,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 181: // server_tag: "server-tag" $@27 ":" "constant string"
-#line 787 "dhcp6_parser.yy"
+#line 788 "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);
@@ -1524,7 +1524,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 182: // parked_packet_limit: "parked-packet-limit" ":" "integer"
-#line 793 "dhcp6_parser.yy"
+#line 794 "dhcp6_parser.yy"
                                                        {
     ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location));
     ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1534,7 +1534,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 183: // $@28: %empty
-#line 799 "dhcp6_parser.yy"
+#line 800 "dhcp6_parser.yy"
                      {
     ctx.unique("allocator", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1543,7 +1543,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 184: // allocator: "allocator" $@28 ":" "constant string"
-#line 802 "dhcp6_parser.yy"
+#line 803 "dhcp6_parser.yy"
                {
     ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("allocator", al);
@@ -1553,7 +1553,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 185: // $@29: %empty
-#line 808 "dhcp6_parser.yy"
+#line 809 "dhcp6_parser.yy"
                            {
     ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1562,7 +1562,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 186: // pd_allocator: "pd-allocator" $@29 ":" "constant string"
-#line 811 "dhcp6_parser.yy"
+#line 812 "dhcp6_parser.yy"
                {
     ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-allocator", al);
@@ -1572,7 +1572,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 187: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean"
-#line 817 "dhcp6_parser.yy"
+#line 818 "dhcp6_parser.yy"
                                                                                  {
     ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location));
     ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1582,7 +1582,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean"
-#line 823 "dhcp6_parser.yy"
+#line 824 "dhcp6_parser.yy"
                                                              {
     ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location));
     ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1592,7 +1592,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 189: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean"
-#line 829 "dhcp6_parser.yy"
+#line 830 "dhcp6_parser.yy"
                                                                    {
     ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location));
     ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1602,7 +1602,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 190: // $@30: %empty
-#line 835 "dhcp6_parser.yy"
+#line 836 "dhcp6_parser.yy"
                                      {
     ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1614,7 +1614,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 191: // interfaces_config: "interfaces-config" $@30 ":" "{" interfaces_config_params "}"
-#line 841 "dhcp6_parser.yy"
+#line 842 "dhcp6_parser.yy"
                                                                {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1624,7 +1624,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 192: // $@31: %empty
-#line 847 "dhcp6_parser.yy"
+#line 848 "dhcp6_parser.yy"
                                 {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 193: // sub_interfaces6: "{" $@31 interfaces_config_params "}"
-#line 851 "dhcp6_parser.yy"
+#line 852 "dhcp6_parser.yy"
                                           {
     // No interfaces config param is required
     // parsing completed
@@ -1643,7 +1643,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 196: // interfaces_config_params: interfaces_config_params ","
-#line 858 "dhcp6_parser.yy"
+#line 859 "dhcp6_parser.yy"
                                                          {
                             ctx.warnAboutExtraCommas(yystack_[0].location);
                             }
@@ -1651,7 +1651,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 205: // $@32: %empty
-#line 873 "dhcp6_parser.yy"
+#line 874 "dhcp6_parser.yy"
                             {
     ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1663,7 +1663,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 206: // interfaces_list: "interfaces" $@32 ":" list_strings
-#line 879 "dhcp6_parser.yy"
+#line 880 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1672,7 +1672,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 207: // re_detect: "re-detect" ":" "boolean"
-#line 884 "dhcp6_parser.yy"
+#line 885 "dhcp6_parser.yy"
                                    {
     ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1682,7 +1682,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 208: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean"
-#line 890 "dhcp6_parser.yy"
+#line 891 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1692,7 +1692,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 209: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer"
-#line 896 "dhcp6_parser.yy"
+#line 897 "dhcp6_parser.yy"
                                                                                {
     ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1702,7 +1702,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 210: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer"
-#line 902 "dhcp6_parser.yy"
+#line 903 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1712,7 +1712,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 211: // $@33: %empty
-#line 908 "dhcp6_parser.yy"
+#line 909 "dhcp6_parser.yy"
                                {
     ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1724,7 +1724,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 212: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}"
-#line 914 "dhcp6_parser.yy"
+#line 915 "dhcp6_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1735,7 +1735,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 213: // $@34: %empty
-#line 921 "dhcp6_parser.yy"
+#line 922 "dhcp6_parser.yy"
                                {
     ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1747,7 +1747,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 214: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}"
-#line 927 "dhcp6_parser.yy"
+#line 928 "dhcp6_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1758,7 +1758,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 215: // $@35: %empty
-#line 934 "dhcp6_parser.yy"
+#line 935 "dhcp6_parser.yy"
                                  {
     ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1770,7 +1770,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 216: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]"
-#line 940 "dhcp6_parser.yy"
+#line 941 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1779,7 +1779,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221: // not_empty_database_list: not_empty_database_list ","
-#line 951 "dhcp6_parser.yy"
+#line 952 "dhcp6_parser.yy"
                                                        {
                            ctx.warnAboutExtraCommas(yystack_[0].location);
                            }
@@ -1787,7 +1787,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 222: // $@36: %empty
-#line 956 "dhcp6_parser.yy"
+#line 957 "dhcp6_parser.yy"
                          {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1797,7 +1797,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 223: // database: "{" $@36 database_map_params "}"
-#line 960 "dhcp6_parser.yy"
+#line 961 "dhcp6_parser.yy"
                                      {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1807,7 +1807,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 226: // database_map_params: database_map_params ","
-#line 968 "dhcp6_parser.yy"
+#line 969 "dhcp6_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
@@ -1815,7 +1815,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 249: // $@37: %empty
-#line 997 "dhcp6_parser.yy"
+#line 998 "dhcp6_parser.yy"
                     {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_TYPE);
@@ -1824,7 +1824,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 250: // database_type: "type" $@37 ":" db_type
-#line 1000 "dhcp6_parser.yy"
+#line 1001 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1833,25 +1833,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 251: // db_type: "memfile"
-#line 1005 "dhcp6_parser.yy"
+#line 1006 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1839 "dhcp6_parser.cc"
     break;
 
   case 252: // db_type: "mysql"
-#line 1006 "dhcp6_parser.yy"
+#line 1007 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1845 "dhcp6_parser.cc"
     break;
 
   case 253: // db_type: "postgresql"
-#line 1007 "dhcp6_parser.yy"
+#line 1008 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1851 "dhcp6_parser.cc"
     break;
 
   case 254: // $@38: %empty
-#line 1010 "dhcp6_parser.yy"
+#line 1011 "dhcp6_parser.yy"
            {
     ctx.unique("user", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1860,7 +1860,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 255: // user: "user" $@38 ":" "constant string"
-#line 1013 "dhcp6_parser.yy"
+#line 1014 "dhcp6_parser.yy"
                {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1870,7 +1870,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 256: // $@39: %empty
-#line 1019 "dhcp6_parser.yy"
+#line 1020 "dhcp6_parser.yy"
                    {
     ctx.unique("password", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1879,7 +1879,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 257: // password: "password" $@39 ":" "constant string"
-#line 1022 "dhcp6_parser.yy"
+#line 1023 "dhcp6_parser.yy"
                {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 258: // $@40: %empty
-#line 1028 "dhcp6_parser.yy"
+#line 1029 "dhcp6_parser.yy"
            {
     ctx.unique("host", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1898,7 +1898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 259: // host: "host" $@40 ":" "constant string"
-#line 1031 "dhcp6_parser.yy"
+#line 1032 "dhcp6_parser.yy"
                {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -1908,7 +1908,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 260: // port: "port" ":" "integer"
-#line 1037 "dhcp6_parser.yy"
+#line 1038 "dhcp6_parser.yy"
                          {
     ctx.unique("port", ctx.loc2pos(yystack_[2].location));
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1918,7 +1918,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 261: // $@41: %empty
-#line 1043 "dhcp6_parser.yy"
+#line 1044 "dhcp6_parser.yy"
            {
     ctx.unique("name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1927,7 +1927,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 262: // name: "name" $@41 ":" "constant string"
-#line 1046 "dhcp6_parser.yy"
+#line 1047 "dhcp6_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -1937,7 +1937,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 263: // persist: "persist" ":" "boolean"
-#line 1052 "dhcp6_parser.yy"
+#line 1053 "dhcp6_parser.yy"
                                {
     ctx.unique("persist", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1947,7 +1947,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 264: // lfc_interval: "lfc-interval" ":" "integer"
-#line 1058 "dhcp6_parser.yy"
+#line 1059 "dhcp6_parser.yy"
                                          {
     ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1957,7 +1957,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 265: // readonly: "readonly" ":" "boolean"
-#line 1064 "dhcp6_parser.yy"
+#line 1065 "dhcp6_parser.yy"
                                  {
     ctx.unique("readonly", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1967,7 +1967,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 266: // connect_timeout: "connect-timeout" ":" "integer"
-#line 1070 "dhcp6_parser.yy"
+#line 1071 "dhcp6_parser.yy"
                                                {
     ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1977,7 +1977,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 267: // read_timeout: "read-timeout" ":" "integer"
-#line 1076 "dhcp6_parser.yy"
+#line 1077 "dhcp6_parser.yy"
                                          {
     ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1987,7 +1987,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 268: // write_timeout: "write-timeout" ":" "integer"
-#line 1082 "dhcp6_parser.yy"
+#line 1083 "dhcp6_parser.yy"
                                            {
     ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1997,7 +1997,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 269: // tcp_user_timeout: "tcp-user-timeout" ":" "integer"
-#line 1088 "dhcp6_parser.yy"
+#line 1089 "dhcp6_parser.yy"
                                                  {
     ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2007,7 +2007,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 270: // reconnect_wait_time: "reconnect-wait-time" ":" "integer"
-#line 1095 "dhcp6_parser.yy"
+#line 1096 "dhcp6_parser.yy"
                                                        {
     ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2017,7 +2017,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 271: // $@42: %empty
-#line 1101 "dhcp6_parser.yy"
+#line 1102 "dhcp6_parser.yy"
                  {
     ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_ON_FAIL);
@@ -2026,7 +2026,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 272: // on_fail: "on-fail" $@42 ":" on_fail_mode
-#line 1104 "dhcp6_parser.yy"
+#line 1105 "dhcp6_parser.yy"
                      {
     ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2035,25 +2035,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 273: // on_fail_mode: "stop-retry-exit"
-#line 1109 "dhcp6_parser.yy"
+#line 1110 "dhcp6_parser.yy"
                               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2041 "dhcp6_parser.cc"
     break;
 
   case 274: // on_fail_mode: "serve-retry-exit"
-#line 1110 "dhcp6_parser.yy"
+#line 1111 "dhcp6_parser.yy"
                                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2047 "dhcp6_parser.cc"
     break;
 
   case 275: // on_fail_mode: "serve-retry-continue"
-#line 1111 "dhcp6_parser.yy"
+#line 1112 "dhcp6_parser.yy"
                                    { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); }
 #line 2053 "dhcp6_parser.cc"
     break;
 
   case 276: // max_row_errors: "max-row-errors" ":" "integer"
-#line 1114 "dhcp6_parser.yy"
+#line 1115 "dhcp6_parser.yy"
                                              {
     ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2063,7 +2063,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 277: // max_reconnect_tries: "max-reconnect-tries" ":" "integer"
-#line 1120 "dhcp6_parser.yy"
+#line 1121 "dhcp6_parser.yy"
                                                        {
     ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2073,7 +2073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 278: // $@43: %empty
-#line 1126 "dhcp6_parser.yy"
+#line 1127 "dhcp6_parser.yy"
                            {
     ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2082,7 +2082,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 279: // trust_anchor: "trust-anchor" $@43 ":" "constant string"
-#line 1129 "dhcp6_parser.yy"
+#line 1130 "dhcp6_parser.yy"
                {
     ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("trust-anchor", ca);
@@ -2092,7 +2092,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 280: // $@44: %empty
-#line 1135 "dhcp6_parser.yy"
+#line 1136 "dhcp6_parser.yy"
                      {
     ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2101,7 +2101,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 281: // cert_file: "cert-file" $@44 ":" "constant string"
-#line 1138 "dhcp6_parser.yy"
+#line 1139 "dhcp6_parser.yy"
                {
     ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cert-file", cert);
@@ -2111,7 +2111,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 282: // $@45: %empty
-#line 1144 "dhcp6_parser.yy"
+#line 1145 "dhcp6_parser.yy"
                    {
     ctx.unique("key-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2120,7 +2120,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 283: // key_file: "key-file" $@45 ":" "constant string"
-#line 1147 "dhcp6_parser.yy"
+#line 1148 "dhcp6_parser.yy"
                {
     ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("key-file", key);
@@ -2130,7 +2130,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 284: // $@46: %empty
-#line 1153 "dhcp6_parser.yy"
+#line 1154 "dhcp6_parser.yy"
                          {
     ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2139,7 +2139,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 285: // cipher_list: "cipher-list" $@46 ":" "constant string"
-#line 1156 "dhcp6_parser.yy"
+#line 1157 "dhcp6_parser.yy"
                {
     ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cipher-list", cl);
@@ -2149,7 +2149,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 286: // $@47: %empty
-#line 1162 "dhcp6_parser.yy"
+#line 1163 "dhcp6_parser.yy"
                              {
     ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2161,7 +2161,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 287: // sanity_checks: "sanity-checks" $@47 ":" "{" sanity_checks_params "}"
-#line 1168 "dhcp6_parser.yy"
+#line 1169 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2170,7 +2170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 290: // sanity_checks_params: sanity_checks_params ","
-#line 1175 "dhcp6_parser.yy"
+#line 1176 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -2178,7 +2178,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 293: // $@48: %empty
-#line 1184 "dhcp6_parser.yy"
+#line 1185 "dhcp6_parser.yy"
                            {
     ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2187,7 +2187,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 294: // lease_checks: "lease-checks" $@48 ":" "constant string"
-#line 1187 "dhcp6_parser.yy"
+#line 1188 "dhcp6_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -2207,7 +2207,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 295: // $@49: %empty
-#line 1203 "dhcp6_parser.yy"
+#line 1204 "dhcp6_parser.yy"
                                            {
     ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2216,7 +2216,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 296: // extended_info_checks: "extended-info-checks" $@49 ":" "constant string"
-#line 1206 "dhcp6_parser.yy"
+#line 1207 "dhcp6_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -2235,7 +2235,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 297: // $@50: %empty
-#line 1221 "dhcp6_parser.yy"
+#line 1222 "dhcp6_parser.yy"
                          {
     ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2247,7 +2247,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 298: // mac_sources: "mac-sources" $@50 ":" "[" mac_sources_list "]"
-#line 1227 "dhcp6_parser.yy"
+#line 1228 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2256,7 +2256,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 301: // mac_sources_list: mac_sources_list ","
-#line 1234 "dhcp6_parser.yy"
+#line 1235 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
@@ -2264,7 +2264,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 304: // duid_id: "duid"
-#line 1243 "dhcp6_parser.yy"
+#line 1244 "dhcp6_parser.yy"
               {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -2273,7 +2273,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 305: // string_id: "constant string"
-#line 1248 "dhcp6_parser.yy"
+#line 1249 "dhcp6_parser.yy"
                   {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -2282,7 +2282,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 306: // $@51: %empty
-#line 1253 "dhcp6_parser.yy"
+#line 1254 "dhcp6_parser.yy"
                                                            {
     ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2294,7 +2294,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 307: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]"
-#line 1259 "dhcp6_parser.yy"
+#line 1260 "dhcp6_parser.yy"
                                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2303,7 +2303,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 310: // host_reservation_identifiers_list: host_reservation_identifiers_list ","
-#line 1266 "dhcp6_parser.yy"
+#line 1267 "dhcp6_parser.yy"
                                               {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2311,7 +2311,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 314: // hw_address_id: "hw-address"
-#line 1276 "dhcp6_parser.yy"
+#line 1277 "dhcp6_parser.yy"
                           {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -2320,7 +2320,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 315: // flex_id: "flex-id"
-#line 1281 "dhcp6_parser.yy"
+#line 1282 "dhcp6_parser.yy"
                  {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -2329,7 +2329,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 316: // $@52: %empty
-#line 1288 "dhcp6_parser.yy"
+#line 1289 "dhcp6_parser.yy"
                                                {
     ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2341,7 +2341,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 317: // relay_supplied_options: "relay-supplied-options" $@52 ":" "[" list_content "]"
-#line 1294 "dhcp6_parser.yy"
+#line 1295 "dhcp6_parser.yy"
                                                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2350,7 +2350,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 318: // $@53: %empty
-#line 1301 "dhcp6_parser.yy"
+#line 1302 "dhcp6_parser.yy"
                                            {
     ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location));
     ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2362,7 +2362,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 319: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}"
-#line 1307 "dhcp6_parser.yy"
+#line 1308 "dhcp6_parser.yy"
                                                              {
     // The enable parameter is required.
     ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2373,7 +2373,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 322: // multi_threading_params: multi_threading_params ","
-#line 1316 "dhcp6_parser.yy"
+#line 1317 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2381,7 +2381,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 329: // enable_multi_threading: "enable-multi-threading" ":" "boolean"
-#line 1329 "dhcp6_parser.yy"
+#line 1330 "dhcp6_parser.yy"
                                                              {
     ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2391,7 +2391,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 330: // thread_pool_size: "thread-pool-size" ":" "integer"
-#line 1335 "dhcp6_parser.yy"
+#line 1336 "dhcp6_parser.yy"
                                                  {
     ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2401,7 +2401,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 331: // packet_queue_size: "packet-queue-size" ":" "integer"
-#line 1341 "dhcp6_parser.yy"
+#line 1342 "dhcp6_parser.yy"
                                                    {
     ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2411,7 +2411,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 332: // $@54: %empty
-#line 1347 "dhcp6_parser.yy"
+#line 1348 "dhcp6_parser.yy"
                                  {
     ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2423,7 +2423,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 333: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]"
-#line 1353 "dhcp6_parser.yy"
+#line 1354 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2432,7 +2432,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 338: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1364 "dhcp6_parser.yy"
+#line 1365 "dhcp6_parser.yy"
                                            {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2440,7 +2440,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 339: // $@55: %empty
-#line 1369 "dhcp6_parser.yy"
+#line 1370 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2450,7 +2450,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 340: // hooks_library: "{" $@55 hooks_params "}"
-#line 1373 "dhcp6_parser.yy"
+#line 1374 "dhcp6_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2460,7 +2460,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 341: // $@56: %empty
-#line 1379 "dhcp6_parser.yy"
+#line 1380 "dhcp6_parser.yy"
                                   {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2470,7 +2470,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 342: // sub_hooks_library: "{" $@56 hooks_params "}"
-#line 1383 "dhcp6_parser.yy"
+#line 1384 "dhcp6_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2480,7 +2480,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 345: // hooks_params: hooks_params ","
-#line 1391 "dhcp6_parser.yy"
+#line 1392 "dhcp6_parser.yy"
                                  {
                 ctx.warnAboutExtraCommas(yystack_[0].location);
                 }
@@ -2488,7 +2488,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 349: // $@57: %empty
-#line 1401 "dhcp6_parser.yy"
+#line 1402 "dhcp6_parser.yy"
                  {
     ctx.unique("library", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2497,7 +2497,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 350: // library: "library" $@57 ":" "constant string"
-#line 1404 "dhcp6_parser.yy"
+#line 1405 "dhcp6_parser.yy"
                {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -2507,7 +2507,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 351: // $@58: %empty
-#line 1410 "dhcp6_parser.yy"
+#line 1411 "dhcp6_parser.yy"
                        {
     ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2516,7 +2516,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 352: // parameters: "parameters" $@58 ":" map_value
-#line 1413 "dhcp6_parser.yy"
+#line 1414 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2525,7 +2525,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 353: // $@59: %empty
-#line 1419 "dhcp6_parser.yy"
+#line 1420 "dhcp6_parser.yy"
                                                      {
     ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2537,7 +2537,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 354: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}"
-#line 1425 "dhcp6_parser.yy"
+#line 1426 "dhcp6_parser.yy"
                                                             {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -2547,7 +2547,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 357: // expired_leases_params: expired_leases_params ","
-#line 1433 "dhcp6_parser.yy"
+#line 1434 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -2555,7 +2555,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 364: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer"
-#line 1446 "dhcp6_parser.yy"
+#line 1447 "dhcp6_parser.yy"
                                                                {
     ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2565,7 +2565,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 365: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer"
-#line 1452 "dhcp6_parser.yy"
+#line 1453 "dhcp6_parser.yy"
                                                                                {
     ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2575,7 +2575,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 366: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer"
-#line 1458 "dhcp6_parser.yy"
+#line 1459 "dhcp6_parser.yy"
                                                        {
     ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2585,7 +2585,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 367: // max_reclaim_leases: "max-reclaim-leases" ":" "integer"
-#line 1464 "dhcp6_parser.yy"
+#line 1465 "dhcp6_parser.yy"
                                                      {
     ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2595,7 +2595,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 368: // max_reclaim_time: "max-reclaim-time" ":" "integer"
-#line 1470 "dhcp6_parser.yy"
+#line 1471 "dhcp6_parser.yy"
                                                  {
     ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2605,7 +2605,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 369: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer"
-#line 1476 "dhcp6_parser.yy"
+#line 1477 "dhcp6_parser.yy"
                                                                {
     ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2615,7 +2615,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 370: // $@60: %empty
-#line 1485 "dhcp6_parser.yy"
+#line 1486 "dhcp6_parser.yy"
                       {
     ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2627,7 +2627,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 371: // subnet6_list: "subnet6" $@60 ":" "[" subnet6_list_content "]"
-#line 1491 "dhcp6_parser.yy"
+#line 1492 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2636,7 +2636,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 376: // not_empty_subnet6_list: not_empty_subnet6_list ","
-#line 1505 "dhcp6_parser.yy"
+#line 1506 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2644,7 +2644,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 377: // $@61: %empty
-#line 1514 "dhcp6_parser.yy"
+#line 1515 "dhcp6_parser.yy"
                         {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2654,7 +2654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 378: // subnet6: "{" $@61 subnet6_params "}"
-#line 1518 "dhcp6_parser.yy"
+#line 1519 "dhcp6_parser.yy"
                                 {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2680,7 +2680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 379: // $@62: %empty
-#line 1540 "dhcp6_parser.yy"
+#line 1541 "dhcp6_parser.yy"
                             {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2690,7 +2690,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 380: // sub_subnet6: "{" $@62 subnet6_params "}"
-#line 1544 "dhcp6_parser.yy"
+#line 1545 "dhcp6_parser.yy"
                                 {
     // The subnet subnet6 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2700,7 +2700,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 383: // subnet6_params: subnet6_params ","
-#line 1553 "dhcp6_parser.yy"
+#line 1554 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -2708,7 +2708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 430: // $@63: %empty
-#line 1607 "dhcp6_parser.yy"
+#line 1608 "dhcp6_parser.yy"
                {
     ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2717,7 +2717,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 431: // subnet: "subnet" $@63 ":" "constant string"
-#line 1610 "dhcp6_parser.yy"
+#line 1611 "dhcp6_parser.yy"
                {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2727,7 +2727,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 432: // $@64: %empty
-#line 1616 "dhcp6_parser.yy"
+#line 1617 "dhcp6_parser.yy"
                      {
     ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2736,7 +2736,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 433: // interface: "interface" $@64 ":" "constant string"
-#line 1619 "dhcp6_parser.yy"
+#line 1620 "dhcp6_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2746,7 +2746,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 434: // $@65: %empty
-#line 1625 "dhcp6_parser.yy"
+#line 1626 "dhcp6_parser.yy"
                            {
     ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2755,7 +2755,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 435: // interface_id: "interface-id" $@65 ":" "constant string"
-#line 1628 "dhcp6_parser.yy"
+#line 1629 "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);
@@ -2765,7 +2765,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 436: // $@66: %empty
-#line 1634 "dhcp6_parser.yy"
+#line 1635 "dhcp6_parser.yy"
                            {
     ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2774,7 +2774,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 437: // client_class: "client-class" $@66 ":" "constant string"
-#line 1637 "dhcp6_parser.yy"
+#line 1638 "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);
@@ -2784,7 +2784,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 438: // $@67: %empty
-#line 1643 "dhcp6_parser.yy"
+#line 1644 "dhcp6_parser.yy"
                                                {
     ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2796,7 +2796,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 439: // require_client_classes: "require-client-classes" $@67 ":" list_strings
-#line 1649 "dhcp6_parser.yy"
+#line 1650 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2805,7 +2805,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 440: // reservations_global: "reservations-global" ":" "boolean"
-#line 1654 "dhcp6_parser.yy"
+#line 1655 "dhcp6_parser.yy"
                                                        {
     ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2815,7 +2815,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 441: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1660 "dhcp6_parser.yy"
+#line 1661 "dhcp6_parser.yy"
                                                              {
     ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2825,7 +2825,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 442: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1666 "dhcp6_parser.yy"
+#line 1667 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2835,7 +2835,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 443: // $@68: %empty
-#line 1672 "dhcp6_parser.yy"
+#line 1673 "dhcp6_parser.yy"
                                    {
     ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.RESERVATION_MODE);
@@ -2844,7 +2844,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 444: // reservation_mode: "reservation-mode" $@68 ":" hr_mode
-#line 1675 "dhcp6_parser.yy"
+#line 1676 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2853,31 +2853,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 445: // hr_mode: "disabled"
-#line 1680 "dhcp6_parser.yy"
+#line 1681 "dhcp6_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2859 "dhcp6_parser.cc"
     break;
 
   case 446: // hr_mode: "out-of-pool"
-#line 1681 "dhcp6_parser.yy"
+#line 1682 "dhcp6_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2865 "dhcp6_parser.cc"
     break;
 
   case 447: // hr_mode: "global"
-#line 1682 "dhcp6_parser.yy"
+#line 1683 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2871 "dhcp6_parser.cc"
     break;
 
   case 448: // hr_mode: "all"
-#line 1683 "dhcp6_parser.yy"
+#line 1684 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2877 "dhcp6_parser.cc"
     break;
 
   case 449: // id: "id" ":" "integer"
-#line 1686 "dhcp6_parser.yy"
+#line 1687 "dhcp6_parser.yy"
                      {
     ctx.unique("id", ctx.loc2pos(yystack_[2].location));
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2887,7 +2887,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 450: // rapid_commit: "rapid-commit" ":" "boolean"
-#line 1692 "dhcp6_parser.yy"
+#line 1693 "dhcp6_parser.yy"
                                          {
     ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location));
     ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2897,7 +2897,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 451: // $@69: %empty
-#line 1700 "dhcp6_parser.yy"
+#line 1701 "dhcp6_parser.yy"
                                  {
     ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2909,7 +2909,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 452: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]"
-#line 1706 "dhcp6_parser.yy"
+#line 1707 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2918,7 +2918,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 457: // shared_networks_list: shared_networks_list ","
-#line 1719 "dhcp6_parser.yy"
+#line 1720 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -2926,7 +2926,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 458: // $@70: %empty
-#line 1724 "dhcp6_parser.yy"
+#line 1725 "dhcp6_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2936,7 +2936,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 459: // shared_network: "{" $@70 shared_network_params "}"
-#line 1728 "dhcp6_parser.yy"
+#line 1729 "dhcp6_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
@@ -2944,7 +2944,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 462: // shared_network_params: shared_network_params ","
-#line 1734 "dhcp6_parser.yy"
+#line 1735 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -2952,7 +2952,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 506: // $@71: %empty
-#line 1788 "dhcp6_parser.yy"
+#line 1789 "dhcp6_parser.yy"
                             {
     ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2964,7 +2964,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 507: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]"
-#line 1794 "dhcp6_parser.yy"
+#line 1795 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2973,7 +2973,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 508: // $@72: %empty
-#line 1802 "dhcp6_parser.yy"
+#line 1803 "dhcp6_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2982,7 +2982,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 509: // sub_option_def_list: "{" $@72 option_def_list "}"
-#line 1805 "dhcp6_parser.yy"
+#line 1806 "dhcp6_parser.yy"
                                  {
     // parsing completed
 }
@@ -2990,7 +2990,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 514: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1817 "dhcp6_parser.yy"
+#line 1818 "dhcp6_parser.yy"
                                                            {
                              ctx.warnAboutExtraCommas(yystack_[0].location);
                              }
@@ -2998,7 +2998,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 515: // $@73: %empty
-#line 1824 "dhcp6_parser.yy"
+#line 1825 "dhcp6_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3008,7 +3008,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 516: // option_def_entry: "{" $@73 option_def_params "}"
-#line 1828 "dhcp6_parser.yy"
+#line 1829 "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));
@@ -3020,7 +3020,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517: // $@74: %empty
-#line 1839 "dhcp6_parser.yy"
+#line 1840 "dhcp6_parser.yy"
                                {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3030,7 +3030,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 518: // sub_option_def: "{" $@74 option_def_params "}"
-#line 1843 "dhcp6_parser.yy"
+#line 1844 "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));
@@ -3042,7 +3042,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 523: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1859 "dhcp6_parser.yy"
+#line 1860 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -3050,7 +3050,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 535: // code: "code" ":" "integer"
-#line 1878 "dhcp6_parser.yy"
+#line 1879 "dhcp6_parser.yy"
                          {
     ctx.unique("code", ctx.loc2pos(yystack_[2].location));
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3060,7 +3060,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 537: // $@75: %empty
-#line 1886 "dhcp6_parser.yy"
+#line 1887 "dhcp6_parser.yy"
                       {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3069,7 +3069,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 538: // option_def_type: "type" $@75 ":" "constant string"
-#line 1889 "dhcp6_parser.yy"
+#line 1890 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -3079,7 +3079,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 539: // $@76: %empty
-#line 1895 "dhcp6_parser.yy"
+#line 1896 "dhcp6_parser.yy"
                                       {
     ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3088,7 +3088,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 540: // option_def_record_types: "record-types" $@76 ":" "constant string"
-#line 1898 "dhcp6_parser.yy"
+#line 1899 "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);
@@ -3098,7 +3098,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 541: // $@77: %empty
-#line 1904 "dhcp6_parser.yy"
+#line 1905 "dhcp6_parser.yy"
              {
     ctx.unique("space", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3107,7 +3107,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 542: // space: "space" $@77 ":" "constant string"
-#line 1907 "dhcp6_parser.yy"
+#line 1908 "dhcp6_parser.yy"
                {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -3117,7 +3117,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 544: // $@78: %empty
-#line 1915 "dhcp6_parser.yy"
+#line 1916 "dhcp6_parser.yy"
                                     {
     ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3126,7 +3126,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 545: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string"
-#line 1918 "dhcp6_parser.yy"
+#line 1919 "dhcp6_parser.yy"
                {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -3136,7 +3136,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 546: // option_def_array: "array" ":" "boolean"
-#line 1924 "dhcp6_parser.yy"
+#line 1925 "dhcp6_parser.yy"
                                       {
     ctx.unique("array", ctx.loc2pos(yystack_[2].location));
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3146,7 +3146,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 547: // $@79: %empty
-#line 1934 "dhcp6_parser.yy"
+#line 1935 "dhcp6_parser.yy"
                               {
     ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3158,7 +3158,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 548: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]"
-#line 1940 "dhcp6_parser.yy"
+#line 1941 "dhcp6_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3167,7 +3167,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 1955 "dhcp6_parser.yy"
+#line 1956 "dhcp6_parser.yy"
                                                              {
                               ctx.warnAboutExtraCommas(yystack_[0].location);
                               }
@@ -3175,7 +3175,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 554: // $@80: %empty
-#line 1962 "dhcp6_parser.yy"
+#line 1963 "dhcp6_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3185,7 +3185,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555: // option_data_entry: "{" $@80 option_data_params "}"
-#line 1966 "dhcp6_parser.yy"
+#line 1967 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -3194,7 +3194,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556: // $@81: %empty
-#line 1974 "dhcp6_parser.yy"
+#line 1975 "dhcp6_parser.yy"
                                 {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3204,7 +3204,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557: // sub_option_data: "{" $@81 option_data_params "}"
-#line 1978 "dhcp6_parser.yy"
+#line 1979 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -3213,7 +3213,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 562: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 1994 "dhcp6_parser.yy"
+#line 1995 "dhcp6_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3221,7 +3221,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 574: // $@82: %empty
-#line 2015 "dhcp6_parser.yy"
+#line 2016 "dhcp6_parser.yy"
                        {
     ctx.unique("data", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3230,7 +3230,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 575: // option_data_data: "data" $@82 ":" "constant string"
-#line 2018 "dhcp6_parser.yy"
+#line 2019 "dhcp6_parser.yy"
                {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -3240,7 +3240,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 578: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2028 "dhcp6_parser.yy"
+#line 2029 "dhcp6_parser.yy"
                                                  {
     ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
     ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3250,7 +3250,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 579: // option_data_always_send: "always-send" ":" "boolean"
-#line 2034 "dhcp6_parser.yy"
+#line 2035 "dhcp6_parser.yy"
                                                    {
     ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3260,7 +3260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 580: // option_data_never_send: "never-send" ":" "boolean"
-#line 2040 "dhcp6_parser.yy"
+#line 2041 "dhcp6_parser.yy"
                                                  {
     ctx.unique("never-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3270,7 +3270,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 581: // $@83: %empty
-#line 2049 "dhcp6_parser.yy"
+#line 2050 "dhcp6_parser.yy"
                   {
     ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3282,7 +3282,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 582: // pools_list: "pools" $@83 ":" "[" pools_list_content "]"
-#line 2055 "dhcp6_parser.yy"
+#line 2056 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3291,7 +3291,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 587: // not_empty_pools_list: not_empty_pools_list ","
-#line 2068 "dhcp6_parser.yy"
+#line 2069 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -3299,7 +3299,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 588: // $@84: %empty
-#line 2073 "dhcp6_parser.yy"
+#line 2074 "dhcp6_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3309,7 +3309,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 589: // pool_list_entry: "{" $@84 pool_params "}"
-#line 2077 "dhcp6_parser.yy"
+#line 2078 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3319,7 +3319,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 590: // $@85: %empty
-#line 2083 "dhcp6_parser.yy"
+#line 2084 "dhcp6_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3329,7 +3329,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 591: // sub_pool6: "{" $@85 pool_params "}"
-#line 2087 "dhcp6_parser.yy"
+#line 2088 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3339,7 +3339,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 594: // pool_params: pool_params ","
-#line 2095 "dhcp6_parser.yy"
+#line 2096 "dhcp6_parser.yy"
                                {
                ctx.warnAboutExtraCommas(yystack_[0].location);
                }
@@ -3347,7 +3347,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 602: // $@86: %empty
-#line 2109 "dhcp6_parser.yy"
+#line 2110 "dhcp6_parser.yy"
                  {
     ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3356,7 +3356,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 603: // pool_entry: "pool" $@86 ":" "constant string"
-#line 2112 "dhcp6_parser.yy"
+#line 2113 "dhcp6_parser.yy"
                {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -3366,7 +3366,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 604: // $@87: %empty
-#line 2118 "dhcp6_parser.yy"
+#line 2119 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3374,7 +3374,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 605: // user_context: "user-context" $@87 ":" map_value
-#line 2120 "dhcp6_parser.yy"
+#line 2121 "dhcp6_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -3401,7 +3401,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 606: // $@88: %empty
-#line 2143 "dhcp6_parser.yy"
+#line 2144 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3409,7 +3409,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 607: // comment: "comment" $@88 ":" "constant string"
-#line 2145 "dhcp6_parser.yy"
+#line 2146 "dhcp6_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -3438,7 +3438,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 608: // $@89: %empty
-#line 2173 "dhcp6_parser.yy"
+#line 2174 "dhcp6_parser.yy"
                         {
     ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3450,7 +3450,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 609: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]"
-#line 2179 "dhcp6_parser.yy"
+#line 2180 "dhcp6_parser.yy"
                                                               {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3459,7 +3459,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 614: // not_empty_pd_pools_list: not_empty_pd_pools_list ","
-#line 2192 "dhcp6_parser.yy"
+#line 2193 "dhcp6_parser.yy"
                                                        {
                            ctx.warnAboutExtraCommas(yystack_[0].location);
                            }
@@ -3467,7 +3467,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 615: // $@90: %empty
-#line 2197 "dhcp6_parser.yy"
+#line 2198 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3477,7 +3477,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 616: // pd_pool_entry: "{" $@90 pd_pool_params "}"
-#line 2201 "dhcp6_parser.yy"
+#line 2202 "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));
@@ -3489,7 +3489,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 617: // $@91: %empty
-#line 2209 "dhcp6_parser.yy"
+#line 2210 "dhcp6_parser.yy"
                             {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3499,7 +3499,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 618: // sub_pd_pool: "{" $@91 pd_pool_params "}"
-#line 2213 "dhcp6_parser.yy"
+#line 2214 "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));
@@ -3511,7 +3511,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 621: // pd_pool_params: pd_pool_params ","
-#line 2223 "dhcp6_parser.yy"
+#line 2224 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -3519,7 +3519,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 633: // $@92: %empty
-#line 2241 "dhcp6_parser.yy"
+#line 2242 "dhcp6_parser.yy"
                   {
     ctx.unique("prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3528,7 +3528,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 634: // pd_prefix: "prefix" $@92 ":" "constant string"
-#line 2244 "dhcp6_parser.yy"
+#line 2245 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
@@ -3538,7 +3538,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 635: // pd_prefix_len: "prefix-len" ":" "integer"
-#line 2250 "dhcp6_parser.yy"
+#line 2251 "dhcp6_parser.yy"
                                         {
     ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3548,7 +3548,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 636: // $@93: %empty
-#line 2256 "dhcp6_parser.yy"
+#line 2257 "dhcp6_parser.yy"
                                  {
     ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3557,7 +3557,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 637: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string"
-#line 2259 "dhcp6_parser.yy"
+#line 2260 "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);
@@ -3567,7 +3567,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 638: // excluded_prefix_len: "excluded-prefix-len" ":" "integer"
-#line 2265 "dhcp6_parser.yy"
+#line 2266 "dhcp6_parser.yy"
                                                        {
     ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3577,7 +3577,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 639: // pd_delegated_len: "delegated-len" ":" "integer"
-#line 2271 "dhcp6_parser.yy"
+#line 2272 "dhcp6_parser.yy"
                                               {
     ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3587,7 +3587,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 640: // $@94: %empty
-#line 2280 "dhcp6_parser.yy"
+#line 2281 "dhcp6_parser.yy"
                            {
     ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3599,7 +3599,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 641: // reservations: "reservations" $@94 ":" "[" reservations_list "]"
-#line 2286 "dhcp6_parser.yy"
+#line 2287 "dhcp6_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3608,7 +3608,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 646: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2297 "dhcp6_parser.yy"
+#line 2298 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -3616,7 +3616,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 647: // $@95: %empty
-#line 2302 "dhcp6_parser.yy"
+#line 2303 "dhcp6_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3626,7 +3626,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 648: // reservation: "{" $@95 reservation_params "}"
-#line 2306 "dhcp6_parser.yy"
+#line 2307 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -3635,7 +3635,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 649: // $@96: %empty
-#line 2311 "dhcp6_parser.yy"
+#line 2312 "dhcp6_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3645,7 +3645,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 650: // sub_reservation: "{" $@96 reservation_params "}"
-#line 2315 "dhcp6_parser.yy"
+#line 2316 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -3654,7 +3654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 655: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2326 "dhcp6_parser.yy"
+#line 2327 "dhcp6_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3662,7 +3662,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 667: // $@97: %empty
-#line 2345 "dhcp6_parser.yy"
+#line 2346 "dhcp6_parser.yy"
                            {
     ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3674,7 +3674,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 668: // ip_addresses: "ip-addresses" $@97 ":" list_strings
-#line 2351 "dhcp6_parser.yy"
+#line 2352 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3683,7 +3683,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 669: // $@98: %empty
-#line 2356 "dhcp6_parser.yy"
+#line 2357 "dhcp6_parser.yy"
                    {
     ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3695,7 +3695,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 670: // prefixes: "prefixes" $@98 ":" list_strings
-#line 2362 "dhcp6_parser.yy"
+#line 2363 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3704,7 +3704,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 671: // $@99: %empty
-#line 2367 "dhcp6_parser.yy"
+#line 2368 "dhcp6_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3713,7 +3713,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 672: // duid: "duid" $@99 ":" "constant string"
-#line 2370 "dhcp6_parser.yy"
+#line 2371 "dhcp6_parser.yy"
                {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -3723,7 +3723,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 673: // $@100: %empty
-#line 2376 "dhcp6_parser.yy"
+#line 2377 "dhcp6_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3732,7 +3732,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 674: // hw_address: "hw-address" $@100 ":" "constant string"
-#line 2379 "dhcp6_parser.yy"
+#line 2380 "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);
@@ -3742,7 +3742,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 675: // $@101: %empty
-#line 2385 "dhcp6_parser.yy"
+#line 2386 "dhcp6_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3751,7 +3751,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 676: // hostname: "hostname" $@101 ":" "constant string"
-#line 2388 "dhcp6_parser.yy"
+#line 2389 "dhcp6_parser.yy"
                {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -3761,7 +3761,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 677: // $@102: %empty
-#line 2394 "dhcp6_parser.yy"
+#line 2395 "dhcp6_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3770,7 +3770,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 678: // flex_id_value: "flex-id" $@102 ":" "constant string"
-#line 2397 "dhcp6_parser.yy"
+#line 2398 "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);
@@ -3780,7 +3780,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 679: // $@103: %empty
-#line 2403 "dhcp6_parser.yy"
+#line 2404 "dhcp6_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3792,7 +3792,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 680: // reservation_client_classes: "client-classes" $@103 ":" list_strings
-#line 2409 "dhcp6_parser.yy"
+#line 2410 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3801,7 +3801,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 681: // $@104: %empty
-#line 2417 "dhcp6_parser.yy"
+#line 2418 "dhcp6_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3813,7 +3813,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 682: // relay: "relay" $@104 ":" "{" relay_map "}"
-#line 2423 "dhcp6_parser.yy"
+#line 2424 "dhcp6_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3822,7 +3822,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 685: // $@105: %empty
-#line 2432 "dhcp6_parser.yy"
+#line 2433 "dhcp6_parser.yy"
                        {
     ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3831,7 +3831,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 686: // ip_address: "ip-address" $@105 ":" "constant string"
-#line 2435 "dhcp6_parser.yy"
+#line 2436 "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);
@@ -3841,7 +3841,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 687: // $@106: %empty
-#line 2444 "dhcp6_parser.yy"
+#line 2445 "dhcp6_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3853,7 +3853,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 688: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]"
-#line 2450 "dhcp6_parser.yy"
+#line 2451 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3862,7 +3862,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 691: // client_classes_list: client_classes_list ","
-#line 2457 "dhcp6_parser.yy"
+#line 2458 "dhcp6_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
@@ -3870,7 +3870,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 692: // $@107: %empty
-#line 2462 "dhcp6_parser.yy"
+#line 2463 "dhcp6_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3880,7 +3880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 693: // client_class_entry: "{" $@107 client_class_params "}"
-#line 2466 "dhcp6_parser.yy"
+#line 2467 "dhcp6_parser.yy"
                                      {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3890,7 +3890,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 698: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2478 "dhcp6_parser.yy"
+#line 2479 "dhcp6_parser.yy"
                                           {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3898,7 +3898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 714: // $@108: %empty
-#line 2501 "dhcp6_parser.yy"
+#line 2502 "dhcp6_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3907,7 +3907,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 715: // client_class_test: "test" $@108 ":" "constant string"
-#line 2504 "dhcp6_parser.yy"
+#line 2505 "dhcp6_parser.yy"
                {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -3917,7 +3917,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 716: // $@109: %empty
-#line 2510 "dhcp6_parser.yy"
+#line 2511 "dhcp6_parser.yy"
                                           {
     ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3926,7 +3926,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 717: // client_class_template_test: "template-test" $@109 ":" "constant string"
-#line 2513 "dhcp6_parser.yy"
+#line 2514 "dhcp6_parser.yy"
                {
     ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("template-test", template_test);
@@ -3936,7 +3936,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 718: // only_if_required: "only-if-required" ":" "boolean"
-#line 2519 "dhcp6_parser.yy"
+#line 2520 "dhcp6_parser.yy"
                                                  {
     ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3946,7 +3946,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 719: // $@110: %empty
-#line 2528 "dhcp6_parser.yy"
+#line 2529 "dhcp6_parser.yy"
                      {
     ctx.unique("server-id", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3958,7 +3958,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 720: // server_id: "server-id" $@110 ":" "{" server_id_params "}"
-#line 2534 "dhcp6_parser.yy"
+#line 2535 "dhcp6_parser.yy"
                                                        {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3969,7 +3969,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 723: // server_id_params: server_id_params ","
-#line 2543 "dhcp6_parser.yy"
+#line 2544 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
@@ -3977,7 +3977,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 733: // $@111: %empty
-#line 2559 "dhcp6_parser.yy"
+#line 2560 "dhcp6_parser.yy"
                      {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DUID_TYPE);
@@ -3986,7 +3986,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 734: // server_id_type: "type" $@111 ":" duid_type
-#line 2562 "dhcp6_parser.yy"
+#line 2563 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3995,25 +3995,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 735: // duid_type: "LLT"
-#line 2567 "dhcp6_parser.yy"
+#line 2568 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
 #line 4001 "dhcp6_parser.cc"
     break;
 
   case 736: // duid_type: "EN"
-#line 2568 "dhcp6_parser.yy"
+#line 2569 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
 #line 4007 "dhcp6_parser.cc"
     break;
 
   case 737: // duid_type: "LL"
-#line 2569 "dhcp6_parser.yy"
+#line 2570 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
 #line 4013 "dhcp6_parser.cc"
     break;
 
   case 738: // htype: "htype" ":" "integer"
-#line 2572 "dhcp6_parser.yy"
+#line 2573 "dhcp6_parser.yy"
                            {
     ctx.unique("htype", ctx.loc2pos(yystack_[2].location));
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4023,7 +4023,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 739: // $@112: %empty
-#line 2578 "dhcp6_parser.yy"
+#line 2579 "dhcp6_parser.yy"
                        {
     ctx.unique("identifier", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4032,7 +4032,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 740: // identifier: "identifier" $@112 ":" "constant string"
-#line 2581 "dhcp6_parser.yy"
+#line 2582 "dhcp6_parser.yy"
                {
     ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
@@ -4042,7 +4042,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 741: // time: "time" ":" "integer"
-#line 2587 "dhcp6_parser.yy"
+#line 2588 "dhcp6_parser.yy"
                          {
     ctx.unique("time", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4052,7 +4052,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 742: // enterprise_id: "enterprise-id" ":" "integer"
-#line 2593 "dhcp6_parser.yy"
+#line 2594 "dhcp6_parser.yy"
                                            {
     ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4062,7 +4062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 743: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2601 "dhcp6_parser.yy"
+#line 2602 "dhcp6_parser.yy"
                                          {
     ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4072,7 +4072,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 744: // $@113: %empty
-#line 2609 "dhcp6_parser.yy"
+#line 2610 "dhcp6_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4084,7 +4084,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 745: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}"
-#line 2615 "dhcp6_parser.yy"
+#line 2616 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4093,7 +4093,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 748: // control_socket_params: control_socket_params ","
-#line 2622 "dhcp6_parser.yy"
+#line 2623 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -4101,7 +4101,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 754: // $@114: %empty
-#line 2634 "dhcp6_parser.yy"
+#line 2635 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4110,7 +4110,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 755: // socket_type: "socket-type" $@114 ":" "constant string"
-#line 2637 "dhcp6_parser.yy"
+#line 2638 "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);
@@ -4120,7 +4120,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 756: // $@115: %empty
-#line 2643 "dhcp6_parser.yy"
+#line 2644 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4129,7 +4129,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 757: // socket_name: "socket-name" $@115 ":" "constant string"
-#line 2646 "dhcp6_parser.yy"
+#line 2647 "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);
@@ -4139,7 +4139,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 758: // $@116: %empty
-#line 2655 "dhcp6_parser.yy"
+#line 2656 "dhcp6_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4151,7 +4151,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 759: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}"
-#line 2661 "dhcp6_parser.yy"
+#line 2662 "dhcp6_parser.yy"
                                                            {
     // The enable queue parameter is required.
     ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -4162,7 +4162,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 762: // queue_control_params: queue_control_params ","
-#line 2670 "dhcp6_parser.yy"
+#line 2671 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -4170,7 +4170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 769: // enable_queue: "enable-queue" ":" "boolean"
-#line 2683 "dhcp6_parser.yy"
+#line 2684 "dhcp6_parser.yy"
                                          {
     ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4180,7 +4180,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 770: // $@117: %empty
-#line 2689 "dhcp6_parser.yy"
+#line 2690 "dhcp6_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4189,7 +4189,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 771: // queue_type: "queue-type" $@117 ":" "constant string"
-#line 2692 "dhcp6_parser.yy"
+#line 2693 "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);
@@ -4199,7 +4199,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 772: // capacity: "capacity" ":" "integer"
-#line 2698 "dhcp6_parser.yy"
+#line 2699 "dhcp6_parser.yy"
                                  {
     ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4209,7 +4209,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 773: // $@118: %empty
-#line 2704 "dhcp6_parser.yy"
+#line 2705 "dhcp6_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4218,7 +4218,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 774: // arbitrary_map_entry: "constant string" $@118 ":" value
-#line 2707 "dhcp6_parser.yy"
+#line 2708 "dhcp6_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4227,7 +4227,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 775: // $@119: %empty
-#line 2714 "dhcp6_parser.yy"
+#line 2715 "dhcp6_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4239,7 +4239,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 776: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}"
-#line 2720 "dhcp6_parser.yy"
+#line 2721 "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));
@@ -4250,7 +4250,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 777: // $@120: %empty
-#line 2727 "dhcp6_parser.yy"
+#line 2728 "dhcp6_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4260,7 +4260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 778: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}"
-#line 2731 "dhcp6_parser.yy"
+#line 2732 "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));
@@ -4270,7 +4270,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 781: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2739 "dhcp6_parser.yy"
+#line 2740 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
@@ -4278,7 +4278,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 800: // enable_updates: "enable-updates" ":" "boolean"
-#line 2764 "dhcp6_parser.yy"
+#line 2765 "dhcp6_parser.yy"
                                              {
     ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4288,7 +4288,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 801: // $@121: %empty
-#line 2771 "dhcp6_parser.yy"
+#line 2772 "dhcp6_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4297,7 +4297,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 802: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string"
-#line 2774 "dhcp6_parser.yy"
+#line 2775 "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);
@@ -4307,7 +4307,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 803: // $@122: %empty
-#line 2780 "dhcp6_parser.yy"
+#line 2781 "dhcp6_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4316,7 +4316,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 804: // server_ip: "server-ip" $@122 ":" "constant string"
-#line 2783 "dhcp6_parser.yy"
+#line 2784 "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);
@@ -4326,7 +4326,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 805: // server_port: "server-port" ":" "integer"
-#line 2789 "dhcp6_parser.yy"
+#line 2790 "dhcp6_parser.yy"
                                        {
     ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4336,7 +4336,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 806: // $@123: %empty
-#line 2795 "dhcp6_parser.yy"
+#line 2796 "dhcp6_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4345,7 +4345,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 807: // sender_ip: "sender-ip" $@123 ":" "constant string"
-#line 2798 "dhcp6_parser.yy"
+#line 2799 "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);
@@ -4355,7 +4355,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 808: // sender_port: "sender-port" ":" "integer"
-#line 2804 "dhcp6_parser.yy"
+#line 2805 "dhcp6_parser.yy"
                                        {
     ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4365,7 +4365,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 809: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2810 "dhcp6_parser.yy"
+#line 2811 "dhcp6_parser.yy"
                                              {
     ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4375,7 +4375,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 810: // $@124: %empty
-#line 2816 "dhcp6_parser.yy"
+#line 2817 "dhcp6_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
@@ -4384,7 +4384,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 811: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value
-#line 2819 "dhcp6_parser.yy"
+#line 2820 "dhcp6_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4393,19 +4393,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 812: // ncr_protocol_value: "UDP"
-#line 2825 "dhcp6_parser.yy"
+#line 2826 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 4399 "dhcp6_parser.cc"
     break;
 
   case 813: // ncr_protocol_value: "TCP"
-#line 2826 "dhcp6_parser.yy"
+#line 2827 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 4405 "dhcp6_parser.cc"
     break;
 
   case 814: // $@125: %empty
-#line 2829 "dhcp6_parser.yy"
+#line 2830 "dhcp6_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
@@ -4414,7 +4414,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 815: // ncr_format: "ncr-format" $@125 ":" "JSON"
-#line 2832 "dhcp6_parser.yy"
+#line 2833 "dhcp6_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -4424,7 +4424,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 816: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2839 "dhcp6_parser.yy"
+#line 2840 "dhcp6_parser.yy"
                                                          {
     ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4434,7 +4434,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 817: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2846 "dhcp6_parser.yy"
+#line 2847 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4444,7 +4444,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 818: // $@126: %empty
-#line 2853 "dhcp6_parser.yy"
+#line 2854 "dhcp6_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -4453,7 +4453,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 819: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value
-#line 2856 "dhcp6_parser.yy"
+#line 2857 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4462,7 +4462,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 820: // $@127: %empty
-#line 2862 "dhcp6_parser.yy"
+#line 2863 "dhcp6_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4471,7 +4471,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 821: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string"
-#line 2865 "dhcp6_parser.yy"
+#line 2866 "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);
@@ -4481,7 +4481,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 822: // $@128: %empty
-#line 2872 "dhcp6_parser.yy"
+#line 2873 "dhcp6_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4490,7 +4490,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 823: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string"
-#line 2875 "dhcp6_parser.yy"
+#line 2876 "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);
@@ -4500,7 +4500,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 824: // $@129: %empty
-#line 2882 "dhcp6_parser.yy"
+#line 2883 "dhcp6_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4509,7 +4509,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 825: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string"
-#line 2885 "dhcp6_parser.yy"
+#line 2886 "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);
@@ -4519,7 +4519,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 826: // $@130: %empty
-#line 2894 "dhcp6_parser.yy"
+#line 2895 "dhcp6_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4531,7 +4531,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 827: // config_control: "config-control" $@130 ":" "{" config_control_params "}"
-#line 2900 "dhcp6_parser.yy"
+#line 2901 "dhcp6_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -4541,7 +4541,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 828: // $@131: %empty
-#line 2906 "dhcp6_parser.yy"
+#line 2907 "dhcp6_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4551,7 +4551,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 829: // sub_config_control: "{" $@131 config_control_params "}"
-#line 2910 "dhcp6_parser.yy"
+#line 2911 "dhcp6_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
@@ -4560,7 +4560,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 832: // config_control_params: config_control_params ","
-#line 2918 "dhcp6_parser.yy"
+#line 2919 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -4568,7 +4568,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 835: // $@132: %empty
-#line 2928 "dhcp6_parser.yy"
+#line 2929 "dhcp6_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4580,7 +4580,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 836: // config_databases: "config-databases" $@132 ":" "[" database_list "]"
-#line 2934 "dhcp6_parser.yy"
+#line 2935 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4589,7 +4589,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 837: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2939 "dhcp6_parser.yy"
+#line 2940 "dhcp6_parser.yy"
                                                              {
     ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4599,7 +4599,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 838: // $@133: %empty
-#line 2947 "dhcp6_parser.yy"
+#line 2948 "dhcp6_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4611,7 +4611,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 839: // loggers: "loggers" $@133 ":" "[" loggers_entries "]"
-#line 2953 "dhcp6_parser.yy"
+#line 2954 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4620,7 +4620,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 842: // loggers_entries: loggers_entries ","
-#line 2962 "dhcp6_parser.yy"
+#line 2963 "dhcp6_parser.yy"
                                        {
                    ctx.warnAboutExtraCommas(yystack_[0].location);
                    }
@@ -4628,7 +4628,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 843: // $@134: %empty
-#line 2968 "dhcp6_parser.yy"
+#line 2969 "dhcp6_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -4638,7 +4638,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 844: // logger_entry: "{" $@134 logger_params "}"
-#line 2972 "dhcp6_parser.yy"
+#line 2973 "dhcp6_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
@@ -4646,7 +4646,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 847: // logger_params: logger_params ","
-#line 2978 "dhcp6_parser.yy"
+#line 2979 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -4654,7 +4654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 855: // debuglevel: "debuglevel" ":" "integer"
-#line 2992 "dhcp6_parser.yy"
+#line 2993 "dhcp6_parser.yy"
                                      {
     ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4664,7 +4664,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 856: // $@135: %empty
-#line 2998 "dhcp6_parser.yy"
+#line 2999 "dhcp6_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4673,7 +4673,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 857: // severity: "severity" $@135 ":" "constant string"
-#line 3001 "dhcp6_parser.yy"
+#line 3002 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -4683,7 +4683,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 858: // $@136: %empty
-#line 3007 "dhcp6_parser.yy"
+#line 3008 "dhcp6_parser.yy"
                                     {
     ctx.unique("output_options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4695,7 +4695,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 859: // output_options_list: "output_options" $@136 ":" "[" output_options_list_content "]"
-#line 3013 "dhcp6_parser.yy"
+#line 3014 "dhcp6_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4704,7 +4704,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 862: // output_options_list_content: output_options_list_content ","
-#line 3020 "dhcp6_parser.yy"
+#line 3021 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -4712,7 +4712,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 863: // $@137: %empty
-#line 3025 "dhcp6_parser.yy"
+#line 3026 "dhcp6_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -4722,7 +4722,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 864: // output_entry: "{" $@137 output_params_list "}"
-#line 3029 "dhcp6_parser.yy"
+#line 3030 "dhcp6_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
@@ -4730,7 +4730,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 867: // output_params_list: output_params_list ","
-#line 3035 "dhcp6_parser.yy"
+#line 3036 "dhcp6_parser.yy"
                                              {
                       ctx.warnAboutExtraCommas(yystack_[0].location);
                       }
@@ -4738,7 +4738,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 873: // $@138: %empty
-#line 3047 "dhcp6_parser.yy"
+#line 3048 "dhcp6_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4747,7 +4747,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 874: // output: "output" $@138 ":" "constant string"
-#line 3050 "dhcp6_parser.yy"
+#line 3051 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -4757,7 +4757,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 875: // flush: "flush" ":" "boolean"
-#line 3056 "dhcp6_parser.yy"
+#line 3057 "dhcp6_parser.yy"
                            {
     ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4767,7 +4767,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 876: // maxsize: "maxsize" ":" "integer"
-#line 3062 "dhcp6_parser.yy"
+#line 3063 "dhcp6_parser.yy"
                                {
     ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4777,7 +4777,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 877: // maxver: "maxver" ":" "integer"
-#line 3068 "dhcp6_parser.yy"
+#line 3069 "dhcp6_parser.yy"
                              {
     ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4787,7 +4787,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 878: // $@139: %empty
-#line 3074 "dhcp6_parser.yy"
+#line 3075 "dhcp6_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4796,7 +4796,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 879: // pattern: "pattern" $@139 ":" "constant string"
-#line 3077 "dhcp6_parser.yy"
+#line 3078 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
@@ -4806,7 +4806,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 880: // $@140: %empty
-#line 3083 "dhcp6_parser.yy"
+#line 3084 "dhcp6_parser.yy"
                              {
     ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4818,7 +4818,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 881: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}"
-#line 3089 "dhcp6_parser.yy"
+#line 3090 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4827,7 +4827,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 884: // compatibility_params: compatibility_params ","
-#line 3096 "dhcp6_parser.yy"
+#line 3097 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -4835,7 +4835,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 887: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3105 "dhcp6_parser.yy"
+#line 3106 "dhcp6_parser.yy"
                                                              {
     ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -5204,143 +5204,143 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yypact_[] =
   {
-     486, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,    37,    29,    38,    73,    76,
-     108,   118,   130,   150,   152,   172,   191,   192,   287,   295,
+     628, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,    39,    29,    34,    36,    38,
+      70,    73,   106,   114,   116,   142,   150,   184,   186,   190,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    29,  -142,
-     275,   163,    78,   696,   211,   -36,    70,   280,   107,   262,
-     -90,   471,    72, -1028,   316,   337,   355,   352,   358, -1028,
-     113, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   377,   379,
-     385,   392,   394,   402,   412,   413,   433,   436,   437,   438,
-     439,   440, -1028,   441,   442,   443,   444,   446, -1028, -1028,
-   -1028,   449,   450,   451,   453, -1028, -1028, -1028,   454, -1028,
-   -1028, -1028, -1028, -1028, -1028,   455,   456,   457, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   458, -1028, -1028,
-   -1028, -1028, -1028, -1028,   459,   460,   461, -1028, -1028,   462,
-   -1028,   124, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    29,  -132,
+     160,   163,    78,   588,    64,   305,   206,   105,   107,   263,
+     -92,   683,    50, -1028,   139,    89,   195,   200,   254, -1028,
+     126, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   260,   299,
+     312,   320,   326,   332,   358,   359,   378,   417,   420,   427,
+     440,   447, -1028,   448,   450,   451,   453,   454, -1028, -1028,
+   -1028,   455,   456,   457,   458, -1028, -1028, -1028,   459, -1028,
+   -1028, -1028, -1028, -1028, -1028,   460,   461,   462, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   465, -1028, -1028,
+   -1028, -1028, -1028, -1028,   466,   468,   469, -1028, -1028,   470,
+   -1028,   129, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   465,   466,   468,   469, -1028,   131, -1028, -1028, -1028,
+   -1028,   471,   472,   473,   476, -1028,   130, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-     473,   476, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+     477,   480, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028,   135, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028,   136, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   143, -1028,
-   -1028, -1028, -1028, -1028,   479, -1028,   480,   481, -1028, -1028,
-   -1028, -1028, -1028, -1028,   162, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   138, -1028,
+   -1028, -1028, -1028, -1028,   481, -1028,   482,   483, -1028, -1028,
+   -1028, -1028, -1028, -1028,   148, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028,   354,   411, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028,   478, -1028, -1028,   483, -1028, -1028, -1028,   487,
-   -1028, -1028,   484,   490, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   389,   408, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   405, -1028, -1028,   487, -1028, -1028, -1028,   488,
+   -1028, -1028,   415,   490, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028,   491,   492,   496,
-   -1028, -1028, -1028, -1028,   493,   499, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   168,
-   -1028, -1028, -1028,   501, -1028, -1028,   502, -1028,   503,   507,
-   -1028, -1028,   510,   513, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   174, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   514,
-     189, -1028, -1028, -1028, -1028,    29,    29, -1028,   284,   515,
-   -1028, -1028,   516,   517,   518,   521,   524,   526,   274,   311,
-     312,   318,   320,   321,   323,   325,   314,   327,   331,   334,
-     340,   341,   529,   342,   343,   324,   344,   356,   543,   547,
-     560,   357,   359,   350,   360,   561,   572,   573,   367,   584,
-     585,   587,   588,   589,   590,   375,   376,   378,   595,   599,
-     600,   601,   603,   605,   606,   607,   608,   395,   613,   618,
-     619,   621,   622,   623,   407,   409,   414,   628,   629, -1028,
-     163, -1028,   630,   416,   417,   434,   435,    78, -1028,   649,
-     652,   653,   654,   655,   445,   447,   658,   659,   660,   696,
-   -1028,   662,   211, -1028,   663,   448,   666,   452,   463,   -36,
-   -1028,   669,   671,   672,   673,   674,   675,   676, -1028,    70,
-   -1028,   677,   678,   464,   682,   683,   684,   467, -1028,   107,
-     701,   485,   494,   497, -1028,   262,   702,   704,   -37, -1028,
-     504,   708,   710,   495,   714,   505,   508,   723,   725,   511,
-     512,   726,   728,   731,   732,   471, -1028,   733,   519,    72,
-   -1028, -1028, -1028,   734,   735,   522,   736,   737,   752,   753,
-     756, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   554, -1028, -1028, -1028, -1028,
-   -1028,  -129,   555,   557, -1028, -1028, -1028, -1028,   757,   772,
-     773, -1028,   566,   567,   774,   782,   574,   133, -1028, -1028,
-   -1028,   786,   789,   791,   788,   792,   801,   802,   806,   807,
-   -1028,   808,   809,   810,   811,   602,   604, -1028, -1028, -1028,
-     803,   812, -1028,   804, -1028, -1028, -1028, -1028, -1028,   817,
-     821,   609,   610,   611, -1028, -1028,   804,   612,   820, -1028,
-     614, -1028,   615, -1028,   616, -1028, -1028, -1028,   804,   804,
-     804,   617,   620,   634,   635, -1028,   636,   637, -1028,   656,
-     657,   661, -1028, -1028,   664, -1028, -1028, -1028, -1028,   665,
-     782, -1028, -1028,   668,   670, -1028,   681, -1028, -1028,   -38,
-     556, -1028, -1028,  -129,   688,   689,   690, -1028,   832, -1028,
-   -1028,    29,   163, -1028,    72,    78,   339,   339,   831, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   861,   864,
-     865, -1028, -1028,   866, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028,   -97,    29,    34,   137,   867,   870,   871,   278,
-     109,   -51,   -63,   -55,   471, -1028, -1028,   872,   -91, -1028,
-   -1028,   881,   883, -1028, -1028, -1028, -1028, -1028,   -48, -1028,
+   -1028, -1028, -1028, -1028,   486,   498, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   161,
+   -1028, -1028, -1028,   499, -1028, -1028,   501, -1028,   502,   503,
+   -1028, -1028,   507,   510, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   168, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   513,
+     174, -1028, -1028, -1028, -1028,    29,    29, -1028,   282,   514,
+   -1028, -1028,   515,   516,   517,   518,   524,   526,   315,   317,
+     319,   322,   324,   327,   330,   331,   308,   333,   336,   339,
+     341,   342,   528,   343,   344,   318,   345,   348,   529,   542,
+     543,   350,   351,   354,   355,   562,   573,   575,   360,   578,
+     583,   584,   585,   587,   589,   369,   371,   374,   594,   595,
+     596,   599,   600,   601,   603,   605,   606,   390,   608,   611,
+     613,   618,   619,   621,   403,   404,   410,   625,   627, -1028,
+     163, -1028,   630,   413,   428,   411,   432,    78, -1028,   648,
+     650,   661,   662,   664,   449,   446,   668,   669,   671,   588,
+   -1028,   672,    64, -1028,   673,   467,   674,   478,   479,   305,
+   -1028,   677,   679,   682,   685,   694,   697,   701, -1028,   206,
+   -1028,   702,   703,   493,   704,   711,   715,   464, -1028,   107,
+     722,   504,   505,   506, -1028,   263,   726,   728,   134, -1028,
+     511,   729,   731,   519,   732,   520,   521,   733,   734,   536,
+     537,   735,   739,   740,   757,   683, -1028,   758,   553,    50,
+   -1028, -1028, -1028,   773,   782,   570,   784,   785,   786,   787,
+     790, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   576, -1028, -1028, -1028, -1028,
+   -1028,  -130,   577,   580, -1028, -1028, -1028, -1028,   798,   801,
+     802, -1028,   593,   597,   804,   807,   598,   135, -1028, -1028,
+   -1028,   810,   811,   814,   815,   816,   818,   820,   819,   821,
+   -1028,   822,   823,   824,   825,   607,   629, -1028, -1028, -1028,
+     843,   844, -1028,   845, -1028, -1028, -1028, -1028, -1028,   847,
+     861,   647,   649,   651, -1028, -1028,   845,   652,   863, -1028,
+     655, -1028,   656, -1028,   657, -1028, -1028, -1028,   845,   845,
+     845,   658,   659,   660,   663, -1028,   665,   670, -1028,   675,
+     676,   678, -1028, -1028,   680, -1028, -1028, -1028, -1028,   681,
+     807, -1028, -1028,   684,   686, -1028,   687, -1028, -1028,   176,
+     699, -1028, -1028,  -130,   688,   689,   690, -1028,   876, -1028,
+   -1028,    29,   163, -1028,    50,    78,   340,   340,   875, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   881,   882,
+     884, -1028, -1028,   885, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   -98,    29,   -51,   169,   886,   887,   890,   247,
+     141,   -52,   -48,   -41,   683, -1028, -1028,   892,  -168, -1028,
+   -1028,   895,   898, -1028, -1028, -1028, -1028, -1028,   -91, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   831, -1028,
-     244,   285,   288, -1028, -1028, -1028, -1028,   887,   890,   893,
-     897,   898,   899,   906,   907,   908,   909, -1028,   912, -1028,
-   -1028, -1028, -1028, -1028,   292, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   875, -1028,
+     197,   203,   204, -1028, -1028, -1028, -1028,   864,   907,   908,
+     909,   910,   911,   913,   914,   915,   916, -1028,   917, -1028,
+   -1028, -1028, -1028, -1028,   296, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   300, -1028,   911,
-     916, -1028, -1028,   914,   918, -1028, -1028,   917,   919, -1028,
-   -1028,   921,   922, -1028, -1028,   923,   925, -1028, -1028, -1028,
-     120, -1028, -1028, -1028,   924, -1028, -1028, -1028,   185, -1028,
-   -1028, -1028, -1028, -1028,   302, -1028, -1028, -1028, -1028,   254,
-   -1028, -1028,   926,   928, -1028, -1028,   927,   931, -1028,   920,
-     932,   933,   934,   935,   936,   313, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   937,   938,   939, -1028, -1028,
-   -1028, -1028,   315, -1028, -1028, -1028, -1028, -1028, -1028,   940,
-     941,   942, -1028,   322, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   326, -1028, -1028, -1028,   943,
-   -1028,   944, -1028, -1028, -1028,   329, -1028, -1028, -1028, -1028,
-   -1028,   330, -1028,   281, -1028,   945, -1028,   333, -1028, -1028,
-     716, -1028,   946,   947, -1028, -1028,   948,   950, -1028, -1028,
-   -1028,   949, -1028,   952, -1028, -1028, -1028,   951,   955,   956,
-     957,   742,   729,   743,   744,   745,   747,   748,   749,   750,
-     751,   960,   754,   969,   972,   973,   978,   339, -1028, -1028,
-     339, -1028,   831,   696, -1028,   861,   107, -1028,   864,   262,
-   -1028,   865,   790, -1028,   866,   -97, -1028, -1028,    34, -1028,
-     980,   981,   137, -1028,   349,   867, -1028,    70, -1028,   870,
-     -90, -1028,   871,   768,   771,   775,   777,   778,   785,   278,
-   -1028,   998,  1004,   793,   797,   799,   109, -1028,   805,   814,
-     816,   -51, -1028,  1007,  1024,   -63, -1028,   818,  1025,   828,
-    1028,   -55, -1028, -1028,   196,   872, -1028,   829,   -91, -1028,
-   -1028,  1044,   953,   211, -1028,   881,   -36, -1028,   883,  1051,
-   -1028, -1028,   181,   846,   849,   853, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028,   231, -1028,   854,   858,
-     860,   888, -1028,   387, -1028,   389, -1028,  1094, -1028,  1122,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   298, -1028,   918,
+     919, -1028, -1028,   920,   922, -1028, -1028,   921,   925, -1028,
+   -1028,   923,   927, -1028, -1028,   926,   928, -1028, -1028, -1028,
+      83, -1028, -1028, -1028,   929, -1028, -1028, -1028,    96, -1028,
+   -1028, -1028, -1028, -1028,   310, -1028, -1028, -1028, -1028,    97,
+   -1028, -1028,   930,   931, -1028, -1028,   932,   934, -1028,   935,
+     936,   937,   938,   939,   940,   311, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   941,   942,   943, -1028, -1028,
+   -1028, -1028,   323, -1028, -1028, -1028, -1028, -1028, -1028,   944,
+     945,   946, -1028,   393, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   406, -1028, -1028, -1028,   947,
+   -1028,   948, -1028, -1028, -1028,   407, -1028, -1028, -1028, -1028,
+   -1028,   409, -1028,   270, -1028,   949, -1028,   419, -1028, -1028,
+     713, -1028,   950,   951, -1028, -1028,   952,   954, -1028, -1028,
+   -1028,   953, -1028,   956, -1028, -1028, -1028,   955,   959,   960,
+     961,   745,   700,   746,   737,   747,   748,   749,   750,   752,
+     753,   972,   756,   975,   976,   978,   980,   340, -1028, -1028,
+     340, -1028,   875,   588, -1028,   881,   107, -1028,   882,   263,
+   -1028,   884,   696, -1028,   885,   -98, -1028, -1028,   -51, -1028,
+     981,   984,   169, -1028,   208,   886, -1028,   206, -1028,   887,
+     -92, -1028,   890,   770,   774,   776,   777,   781,   788,   247,
+   -1028,  1001,  1004,   792,   796,   806,   141, -1028,   805,   808,
+     813,   -52, -1028,  1007,  1015,   -48, -1028,   809,  1032,   827,
+    1036,   -41, -1028, -1028,   220,   892, -1028,   828,  -168, -1028,
+   -1028,  1044,  1052,    64, -1028,   895,   305, -1028,   898,  1061,
+   -1028, -1028,   325,   848,   852,   853, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028,    68, -1028,   857,   859,
+     924,   933, -1028,   422, -1028,   429, -1028,  1094, -1028,  1099,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-     404, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   929,
-     930, -1028, -1028, -1028,  1131, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028,  1128,  1136, -1028, -1028,
-   -1028, -1028, -1028, -1028,  1133, -1028,   410, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   200,   954, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   958,   959, -1028, -1028,   961,
-   -1028,    29, -1028, -1028,  1138, -1028, -1028, -1028, -1028, -1028,
-     423, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   962,
-     424, -1028,   430, -1028,   963, -1028, -1028, -1028, -1028, -1028,
+     431, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   957,
+     958, -1028, -1028, -1028,  1126, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028,  1127,  1133, -1028, -1028,
+   -1028, -1028, -1028, -1028,  1131, -1028,   435, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   248,   962, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   963,   964, -1028, -1028,   965,
+   -1028,    29, -1028, -1028,  1137, -1028, -1028, -1028, -1028, -1028,
+     438, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   966,
+     439, -1028,   442, -1028,   967, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028,   790, -1028, -1028, -1028,  1139,  1140,
-     964, -1028,   349, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028,  1141,   965,  1142,   196, -1028, -1028,
-   -1028, -1028, -1028, -1028,   968,   970, -1028, -1028,  1145, -1028,
-     971, -1028, -1028, -1028,  1144, -1028, -1028,   306, -1028,   209,
-    1144, -1028, -1028,  1143,  1148,  1149, -1028,   431, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,  1150,   966,   974,   975,  1151,
-     209, -1028,   977, -1028, -1028, -1028,   979, -1028, -1028, -1028
+   -1028, -1028, -1028, -1028,   696, -1028, -1028, -1028,  1138,  1139,
+     968, -1028,   208, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,  1141,   969,  1142,   220, -1028, -1028,
+   -1028, -1028, -1028, -1028,   973,   974, -1028, -1028,  1143, -1028,
+     977, -1028, -1028, -1028,  1140, -1028, -1028,   286, -1028,     1,
+    1140, -1028, -1028,  1145,  1146,  1147, -1028,   445, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,  1148,   982,   971,   979,  1150,
+       1, -1028,   983, -1028, -1028, -1028,   986, -1028, -1028, -1028
   };
 
   const short
@@ -5490,50 +5490,50 @@ namespace isc { namespace dhcp {
   {
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028,   -10, -1028,  -615, -1028,
-     472, -1028, -1028, -1028, -1028,   383, -1028,  -645, -1028, -1028,
-   -1028,   -71, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   415,
-     638, -1028, -1028,   -42,    11,    14,    17,    18,    28,   -31,
+     235, -1028, -1028, -1028, -1028,   382, -1028,  -633, -1028, -1028,
+   -1028,   -71, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   414,
+     637, -1028, -1028,   -42,    11,    14,    17,    18,    28,   -31,
      -29,   -27,   -13,    31,    33,    41, -1028,    44,    45,    46,
-      47, -1028,   426,    51, -1028,    57, -1028,    62,    63,    67,
+      47, -1028,   425,    51, -1028,    57, -1028,    62,    63,    67,
       69, -1028,    74, -1028,    75, -1028, -1028, -1028, -1028, -1028,
       77, -1028,    79, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   418,   633, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   336, -1028,   119, -1028,  -725,
-     125, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   416,   632, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   334, -1028,   118, -1028,  -725,
+     127, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028,   -46, -1028,  -769, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   103, -1028, -1028,
-   -1028, -1028, -1028, -1028, -1028,   111,  -751, -1028, -1028, -1028,
-   -1028,   110, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    83,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028,    95, -1028, -1028,
-   -1028,    99,   592, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   101, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   110,  -751, -1028, -1028, -1028,
+   -1028,   108, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    76,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,    98, -1028, -1028,
+   -1028,    99,   590, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
       92, -1028, -1028, -1028, -1028, -1028, -1028, -1027, -1028, -1028,
-   -1028,   127, -1028, -1028, -1028,   132,   640, -1028, -1028, -1026,
+   -1028,   128, -1028, -1028, -1028,   131,   633, -1028, -1028, -1026,
    -1028, -1025, -1028,    86, -1028,    88, -1028,    80,    81,    82,
-      85, -1028, -1028, -1028, -1024, -1028, -1028, -1028, -1028,   122,
-   -1028, -1028,  -111,  1107, -1028, -1028, -1028, -1028, -1028,   145,
-   -1028, -1028, -1028,   151, -1028,   631, -1028,   -62, -1028, -1028,
+      85, -1028, -1028, -1028, -1024, -1028, -1028, -1028, -1028,   121,
+   -1028, -1028,  -118,  1102, -1028, -1028, -1028, -1028, -1028,   132,
+   -1028, -1028, -1028,   143, -1028,   612, -1028,   -62, -1028, -1028,
    -1028, -1028, -1028,   -59, -1028, -1028, -1028, -1028, -1028,    -5,
-   -1028, -1028, -1028,   140, -1028, -1028, -1028,   154, -1028,   632,
+   -1028, -1028, -1028,   137, -1028, -1028, -1028,   146, -1028,   623,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028,    90, -1028, -1028, -1028,    93,   667, -1028, -1028,
-     -60, -1028,     0, -1028, -1028, -1028, -1028, -1028,    94, -1028,
-   -1028, -1028,    97,   679, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   -49, -1028, -1028, -1028,   139, -1028, -1028, -1028,   144,
-   -1028,   651,   419, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,    93, -1028, -1028, -1028,    94,   654, -1028, -1028,
+     -60, -1028,     0, -1028, -1028, -1028, -1028, -1028,    91, -1028,
+   -1028, -1028,    95,   666, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   -49, -1028, -1028, -1028,   144, -1028, -1028, -1028,   145,
+   -1028,   667,   412, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1023, -1028, -1028, -1028,
-   -1028, -1028, -1028, -1028,   149, -1028, -1028, -1028,   -87, -1028,
-   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   134, -1028,
+   -1028, -1028, -1028, -1028,   149, -1028, -1028, -1028,   -86, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   133, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   121, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   117,
+   -1028,   122, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   117,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-     470,   624, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+     436,   626, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
    -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028,   477,   625, -1028, -1028, -1028, -1028, -1028, -1028,   128,
+   -1028,   484,   631, -1028, -1028, -1028, -1028, -1028, -1028,   119,
    -1028, -1028,   -95, -1028, -1028, -1028, -1028, -1028, -1028,  -115,
-   -1028, -1028,  -134, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
-   -1028, -1028, -1028,   129, -1028
+   -1028, -1028,  -133, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028,   124, -1028
   };
 
   const short
@@ -5593,129 +5593,129 @@ namespace isc { namespace dhcp {
      160,   235,   255,   304,   318,   338,    38,   360,   380,   398,
      418,   949,   243,   298,   311,   322,   340,   382,   374,   394,
      383,   419,   877,   907,   301,  1180,  1181,  1182,  1189,  1195,
-     764,   256,   361,   381,    31,   898,    32,    30,    33,   132,
-     133,   796,   262,   127,   263,    42,   264,   132,   133,   396,
-     397,   132,   133,   802,   803,   804,   750,   751,   752,   753,
-     265,   313,   314,   315,   316,   317,   132,   133,   296,   307,
-     321,   339,   244,   299,   312,   323,   341,    86,   375,   395,
-      44,   420,   332,    46,   257,   438,   439,   258,   252,  1009,
-     259,   260,   253,   754,   230,   231,   232,   233,   234,   970,
-     971,   261,   396,   397,   266,   764,   267,   959,   960,   961,
-     979,   980,   981,   995,   268,    48,   450,   269,   270,   271,
-     272,   451,   899,  1055,   273,    50,  1056,   520,   159,   159,
-     274,   353,   521,   943,   527,   275,   276,    52,   539,   528,
-     277,   838,   278,   540,   820,   821,   542,   279,   280,   127,
-     281,   543,   282,   290,   291,   292,   159,    54,   293,    56,
-     305,   319,   306,   320,   982,   549,   898,   905,   159,   906,
-     550,   578,   132,   133,    92,    93,   579,   595,    94,    58,
-     132,   133,   596,   159,    95,    96,    97,   354,  1058,   355,
-     356,  1059,   599,   331,   357,   358,   359,   600,    60,    62,
-     332,   333,   334,   335,   336,   337,  1275,  1276,  1277,   132,
-     133,   132,   133,    98,    99,   100,   101,   102,   103,   104,
+     764,   256,   361,   381,    31,   898,    32,   995,    33,    30,
+     332,    42,   262,    44,   263,    46,   264,  1009,   396,   397,
+     132,   133,   159,   796,   132,   133,   750,   751,   752,   753,
+     265,   132,   133,   438,   439,   802,   803,   804,   296,   307,
+     321,   339,   244,   299,   312,   323,   341,    48,   375,   395,
+      50,   420,   898,   905,   257,   906,  1055,   258,    86,  1056,
+     259,   260,   445,   754,   230,   231,   232,   233,   234,  1058,
+    1065,   261,  1059,  1066,   266,   764,   267,   959,   960,   961,
+    1282,  1283,  1284,    52,   268,   970,   971,   269,   270,   271,
+     272,    54,   899,    56,   273,   979,   980,   981,   159,   450,
+     274,   353,   520,   527,   451,   275,   276,   521,   528,   539,
+     277,   542,   278,   127,   540,   444,   543,   279,   280,    58,
+     281,   549,   282,   290,   291,   292,   550,    60,   293,   303,
+     305,   319,   306,   320,   578,   943,   132,   133,   159,   579,
+      89,   595,   159,   838,    92,    93,   596,   599,    94,   982,
+     132,   133,   600,   126,    95,    96,    97,   354,   252,   355,
+     356,    62,   253,    64,   357,   358,   359,    66,  1342,   446,
+     520,  1343,  1344,  1345,  1346,  1014,   599,   527,   447,   132,
+     133,  1015,  1016,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   767,   768,   769,   770,   520,    34,    35,
-      36,    37,  1014,   128,   129,   130,   131,  1065,   912,   913,
-    1066,   944,   945,   946,   947,   132,   133,  1180,  1181,  1182,
-    1189,  1195,   134,  1282,  1283,  1284,   354,   135,   136,   137,
-     138,   139,   140,   141,  1105,    89,   142,  1106,   599,   159,
-     127,   527,   143,  1015,    64,  1037,  1016,   159,   132,   133,
-    1038,   144,    66,  1037,   145,  1062,   303,   907,  1039,  1340,
-    1063,   146,  1341,   132,   133,  1143,  1079,   949,  1086,   147,
-     148,  1080,   444,  1087,   149,  1091,   159,   150,   159,  1095,
-    1092,   151,  1101,   595,  1096,   252,  1108,  1102,  1103,   253,
-     445,  1109,   354,   376,   355,   356,   377,   378,   379,  1305,
-    1306,  1307,   152,   153,   154,   155,   156,   157,   126,   446,
-     447,   448,   558,   833,   132,   133,   158,   834,   835,   836,
-     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
-     847,   458,   159,   459,   848,   849,   850,   851,   852,   460,
-    1037,  1253,   539,  1254,  1255,  1290,   461,  1291,   462,    98,
-      99,   100,   101,   102,   103,  1342,   463,  1294,  1343,  1344,
-    1345,  1346,  1295,   578,   559,   159,   464,   465,  1304,   354,
-     929,   930,   931,   932,   933,   934,  1317,   542,   127,   354,
-     159,  1318,  1320,   549,  1360,   601,   602,   466,  1321,  1361,
-     467,   468,   469,   470,   471,   473,   474,   475,   476,   160,
-     477,   132,   133,   481,   482,   483,   235,   484,   488,   495,
-     496,   497,   507,   514,   515,   516,   519,   243,   255,   523,
-     524,   304,   525,   526,  1202,  1203,  1204,   534,   318,   298,
-     535,   159,   311,   545,   547,   548,   560,   563,   338,   322,
-     301,   567,   568,   569,   611,   571,   572,   256,   360,   340,
-     573,   574,   575,   603,   380,   580,   583,   585,   262,   374,
-     263,   586,   264,   382,   589,   394,   383,   590,   598,   604,
-     605,   606,   607,   361,   418,   608,   265,   244,   609,   381,
-     610,   612,   613,   625,   296,   419,   619,   307,   614,   299,
-     615,   616,   312,   617,   321,   618,   628,   631,   620,   323,
-     257,   632,   621,   258,   339,   622,   259,   260,   159,   341,
-     623,   624,   626,   627,   633,   638,   629,   261,   159,   375,
-     266,   636,   267,   132,   133,   395,   639,   640,   630,   634,
-     268,   635,   637,   269,   270,   271,   272,   641,   642,   643,
-     273,   644,   645,   646,   647,   420,   274,   648,   649,   651,
-     650,   275,   276,   652,   653,   654,   277,   655,   278,   656,
-     657,   658,   659,   279,   280,   660,   281,   661,   282,   290,
-     291,   292,   662,   663,   293,   664,   665,   666,   305,   667,
-     306,   668,   670,   671,   673,   319,   669,   320,   674,   675,
-     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
-     413,   414,   415,   679,   676,   677,   680,   681,   682,   683,
-     416,   417,   686,   687,   688,   684,   690,   692,   693,   685,
-     694,   160,   695,   698,   235,   699,   700,   701,   702,   703,
-     704,   706,   707,   696,   708,   243,   709,   710,   711,   712,
-     159,     1,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,   714,   719,   715,   720,   948,
-     962,   972,   723,   418,   724,   725,   716,   996,   726,   717,
-     950,   968,   973,   983,   419,   727,   722,   729,   728,   730,
-     733,   829,   734,   731,   732,   735,   736,   738,   741,   739,
-     823,   743,   742,   744,   745,   244,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   746,
-     747,   748,   758,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   749,   756,   127,   757,   759,   760,   763,
-     951,   969,   974,   984,   420,   761,   762,   129,   130,    32,
-     245,   772,   246,   766,   773,   775,   774,   776,   132,   133,
-     247,   248,   249,   250,   251,   134,   777,   778,   787,   789,
-     135,   136,   137,   779,   780,   781,   782,   783,   784,   788,
-     252,   785,   791,   786,   253,   143,   792,   798,   793,   794,
-     795,   797,   254,   799,   800,   801,   805,   828,   878,   806,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   807,   808,   809,   810,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   882,   127,
-     354,   886,   890,   894,   918,   811,   812,   921,   925,   992,
-     813,   129,   130,   814,   815,   152,   153,   817,  1001,   818,
-    1005,  1021,   132,   133,  1022,   248,   249,  1023,   251,   134,
-     819,  1024,  1025,  1026,   135,   136,   137,   825,   826,   827,
-    1027,  1028,  1029,  1030,   252,   159,  1032,  1041,   253,  1042,
-    1044,  1045,  1048,  1047,  1073,  1051,   254,  1050,  1054,  1053,
-    1057,  1069,  1068,  1071,  1072,  1110,  1074,  1075,  1076,  1077,
-    1078,  1083,  1084,  1085,  1088,  1089,  1090,  1097,  1099,  1107,
-    1115,  1127,  1114,  1118,  1117,  1122,  1269,  1120,  1121,  1123,
-    1124,  1125,  1126,  1128,  1136,  1130,  1129,  1131,  1132,  1133,
-    1134,  1135,   255,  1138,  1137,   360,  1139,  1140,   380,   152,
-     153,  1151,  1141,   298,  1199,  1200,   374,   382,  1228,   394,
-     383,  1229,  1193,  1205,   301,  1230,   338,  1231,  1232,   398,
-     361,   256,  1235,   381,  1214,  1233,  1179,   340,  1236,   159,
-    1152,  1245,   262,  1237,   263,   948,   264,  1238,  1212,  1239,
-     962,  1158,  1206,  1159,   972,  1160,   950,  1241,  1246,  1249,
-     265,   968,  1251,  1256,  1242,   973,  1243,   996,   296,  1161,
-    1248,   983,   304,   299,  1258,   318,   375,  1192,  1250,   395,
-    1268,  1266,  1194,   311,   257,  1274,   322,   258,  1257,  1213,
-     259,   260,   339,  1153,  1215,  1279,  1154,   341,  1280,  1155,
-    1156,   261,  1281,  1286,   266,  1207,   267,  1287,  1208,  1288,
+     125,   126,   127,   132,   133,   767,   768,   769,   770,    34,
+      35,    36,    37,   128,   129,   130,   131,   448,    98,    99,
+     100,   101,   102,   103,   458,   132,   133,  1180,  1181,  1182,
+    1189,  1195,   134,  1105,   396,   397,  1106,   135,   136,   137,
+     138,   139,   140,   141,   159,   127,   142,   127,   354,  1340,
+     912,   913,  1341,   143,   944,   945,   946,   947,   159,  1037,
+     354,  1037,   144,   459,  1038,   145,  1039,   907,   132,   133,
+     132,   133,   146,  1062,  1079,  1143,   460,   949,  1063,  1080,
+     147,   148,   132,   133,   461,   149,  1086,   159,   150,   331,
+     462,  1087,   151,  1202,  1203,  1204,   463,   332,   333,   334,
+     335,   336,   337,   354,   376,   355,   356,   377,   378,   379,
+    1275,  1276,  1277,   152,   153,   154,   155,   156,   157,   820,
+     821,   159,   464,   465,   833,   132,   133,   158,   834,   835,
+     836,   837,   838,   839,   840,   841,   842,   843,   844,   845,
+     846,   847,   466,   159,   127,   848,   849,   850,   851,   852,
+     929,   930,   931,   932,   933,   934,  1091,   558,  1305,  1306,
+    1307,  1092,   313,   314,   315,   316,   317,   132,   133,  1095,
+    1101,   559,   595,   560,  1096,  1102,  1253,  1103,  1254,  1255,
+     354,   467,  1108,   568,   468,  1037,   159,  1109,   159,   252,
+    1290,   469,   539,   253,  1294,   601,   602,  1291,   578,  1295,
+     159,  1317,   542,  1304,   470,   549,  1318,  1320,  1360,   160,
+    1321,   471,   473,  1361,   474,   475,   235,   476,   477,   481,
+     482,   483,   484,   488,   495,   496,   497,   243,   255,   507,
+     514,   304,   515,   516,   519,   523,   524,   525,   318,   298,
+     526,   534,   311,   159,   535,   545,   547,   548,   338,   322,
+     301,   563,   567,   569,   574,   571,   572,   256,   360,   340,
+     573,   575,   603,   580,   380,   583,   585,   586,   262,   374,
+     263,   589,   264,   382,   590,   394,   383,   598,   604,   605,
+     606,   607,   608,   361,   418,   159,   265,   244,   609,   381,
+     610,   619,   625,   631,   296,   419,   611,   307,   612,   299,
+     613,   628,   312,   614,   321,   615,   632,   633,   616,   323,
+     257,   617,   618,   258,   339,   620,   259,   260,   621,   341,
+     159,   622,   623,   624,   626,   627,   638,   261,   629,   375,
+     266,   630,   267,   634,   635,   395,   636,   639,   637,   640,
+     268,   641,   642,   269,   270,   271,   272,   643,   644,   645,
+     273,   646,   648,   647,   649,   420,   274,   650,   651,   652,
+     653,   275,   276,   654,   655,   656,   277,   657,   278,   658,
+     659,   660,   661,   279,   280,   662,   281,   663,   282,   290,
+     291,   292,   664,   665,   293,   666,   667,   668,   305,   670,
+     306,   671,   676,   669,   673,   319,   674,   320,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   675,   679,   677,   680,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   681,   682,   127,   683,   685,
+     684,   160,   686,   687,   235,   688,   690,   692,   694,   129,
+     130,   698,   245,   699,   246,   243,   700,   712,   693,   701,
+     132,   133,   247,   248,   249,   250,   251,   134,   702,   695,
+     696,   703,   135,   136,   137,   704,   706,   707,   709,   948,
+     962,   972,   252,   418,   708,   710,   253,   996,   143,   711,
+     950,   968,   973,   983,   419,   254,   714,   715,   716,   717,
+     719,   829,   720,   723,   722,   724,   726,   729,   730,   733,
+     725,   727,   728,   734,   735,   244,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   731,
+     732,   736,   738,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   739,   127,   354,   741,   152,   153,
+     951,   969,   974,   984,   420,   132,   133,   129,   130,   742,
+     743,   744,   745,   746,   747,   748,   749,   756,   132,   133,
+     757,   248,   249,   758,   251,   134,   759,   760,   159,   763,
+     135,   136,   137,   761,    32,   772,   773,   762,   766,   774,
+     252,   776,   775,   777,   253,   778,   779,   785,   780,   781,
+     782,   783,   784,   254,     1,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,   787,   786,
+     789,   788,   791,   403,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,   414,   415,   792,   793,  1021,   794,
+     798,   795,   797,   416,   417,   799,   800,   801,   805,   806,
+     807,   828,   878,   808,   823,   809,   152,   153,   882,   886,
+     810,   890,   894,   918,   921,   811,   812,   925,   813,   992,
+     814,   815,  1001,   159,   817,  1005,   818,   819,   825,   826,
+     827,  1022,  1023,  1024,  1025,  1026,   159,  1027,  1028,  1029,
+    1030,  1032,  1042,  1127,  1041,  1045,  1044,  1047,  1048,  1050,
+    1051,  1054,  1053,  1110,  1069,  1057,  1068,  1072,  1071,  1073,
+    1074,  1075,  1076,  1077,  1078,  1083,  1084,  1085,  1088,  1089,
+    1090,  1097,  1099,  1107,  1115,   816,  1114,  1118,  1117,  1122,
+    1129,  1120,  1121,  1123,  1124,  1125,  1126,  1128,  1130,  1131,
+    1132,  1133,   255,  1134,  1135,   360,  1136,  1137,   380,  1138,
+    1139,  1151,  1140,   298,  1141,  1199,   374,   382,  1200,   394,
+     383,  1228,  1193,  1205,   301,  1229,   338,  1230,  1231,   398,
+     361,   256,  1232,   381,  1214,  1235,  1179,   340,  1236,  1233,
+    1152,  1245,   262,  1237,   263,   948,   264,  1238,  1212,  1246,
+     962,  1158,  1206,  1159,   972,  1160,   950,  1239,  1241,  1242,
+     265,   968,  1248,  1256,  1243,   973,  1249,   996,   296,  1161,
+    1251,   983,   304,   299,  1258,   318,   375,  1192,  1250,   395,
+    1268,  1266,  1194,   311,   257,  1269,   322,   258,  1257,  1213,
+     259,   260,   339,  1153,  1215,  1274,  1154,   341,  1279,  1155,
+    1156,   261,  1280,  1281,   266,  1207,   267,  1286,  1208,  1287,
     1157,  1209,  1210,  1162,   268,  1163,   951,   269,   270,   271,
      272,   969,  1211,  1164,   273,   974,  1165,  1166,  1167,  1168,
-     274,   984,  1292,  1169,  1259,   275,   276,  1289,   307,  1170,
+     274,   984,  1292,  1169,  1259,   275,   276,  1293,   307,  1170,
      277,   321,   278,   312,  1171,  1172,   323,   279,   280,  1173,
      281,  1174,   282,   290,   291,   292,  1175,  1176,   293,  1177,
-    1293,  1178,  1185,  1186,  1187,  1300,  1301,  1188,  1183,  1302,
-    1184,  1303,  1315,  1324,  1325,  1328,  1330,  1356,  1296,  1297,
-    1334,  1336,  1357,  1358,  1362,  1366,   904,   830,   672,   824,
-     678,  1144,  1142,   832,  1013,  1201,  1197,  1227,  1198,  1226,
-     721,  1234,  1146,  1309,  1244,  1145,  1196,  1310,  1311,   689,
-    1312,  1319,  1322,  1323,   352,  1329,  1326,  1332,  1363,  1333,
-    1335,  1150,   816,  1148,  1364,  1365,  1368,  1147,  1369,   305,
-     713,   306,   319,  1149,   320,  1271,  1270,   718,  1225,   691,
-     705,  1224,  1273,  1272,  1223,  1327,  1247,  1010,  1252,   737,
-    1240,   831,  1331,  1151,   740,  1354,  1367,     0,   697,     0,
-       0,  1205,     0,  1265,  1193,     0,     0,  1267,     0,     0,
+    1300,  1178,  1185,  1186,  1187,  1301,  1302,  1188,  1183,  1303,
+    1184,  1315,  1324,  1325,  1288,  1328,  1330,  1336,  1334,  1356,
+    1357,  1358,  1362,  1289,  1366,   904,   830,   672,   824,   678,
+    1144,   832,  1013,  1201,  1142,  1197,  1198,  1244,   721,  1226,
+    1227,  1234,   689,  1146,  1145,  1196,  1323,  1296,  1297,   352,
+    1148,   713,  1309,  1310,  1311,  1312,  1319,  1322,  1150,  1147,
+    1329,  1326,  1364,  1332,  1333,  1149,   691,  1335,   718,   305,
+    1365,   306,   319,  1368,   320,  1363,  1369,  1270,  1271,  1273,
+    1010,  1272,  1224,  1225,  1223,   697,  1327,  1247,  1252,  1240,
+     991,   737,  1331,  1151,  1265,  1354,   705,  1367,   831,     0,
+     740,  1205,  1267,     0,  1193,     0,     0,     0,     0,     0,
        0,  1313,  1214,     0,     0,     0,  1256,     0,  1179,     0,
-       0,     0,  1152,     0,   991,     0,  1212,  1258,     0,     0,
+       0,     0,  1152,     0,     0,     0,  1212,  1258,     0,     0,
     1206,     0,     0,  1158,     0,  1159,     0,  1160,     0,     0,
        0,  1257,     0,     0,     0,     0,     0,     0,     0,     0,
        0,  1161,     0,     0,     0,     0,     0,     0,     0,  1192,
@@ -5737,129 +5737,129 @@ namespace isc { namespace dhcp {
       71,    72,    73,    74,    75,    76,    16,    78,    79,    80,
       81,   780,    72,    73,    74,    75,    76,    79,    78,    79,
       79,    81,   747,   774,    73,  1052,  1052,  1052,  1052,  1052,
-     645,    73,    78,    79,     5,   132,     7,     0,     9,   102,
-     103,   686,    73,    79,    73,     7,    73,   102,   103,   139,
-     140,   102,   103,   698,   699,   700,   185,   186,   187,   188,
-      73,    97,    98,    99,   100,   101,   102,   103,    73,    74,
-      75,    76,    72,    73,    74,    75,    76,   219,    78,    79,
-       7,    81,   130,     7,    73,    13,    14,    73,   124,   137,
-      73,    73,   128,   222,    16,    17,    18,    19,    20,   162,
-     163,    73,   139,   140,    73,   720,    73,   158,   159,   160,
-     165,   166,   167,   204,    73,     7,     3,    73,    73,    73,
-      73,     8,   219,     3,    73,     7,     6,     3,   219,   219,
-      73,    24,     8,    24,     3,    73,    73,     7,     3,     8,
-      73,    32,    73,     8,   182,   183,     3,    73,    73,    79,
-      73,     8,    73,    73,    73,    73,   219,     7,    73,     7,
-      74,    75,    74,    75,   219,     3,   132,   133,   219,   135,
-       8,     3,   102,   103,    11,    12,     8,     3,    15,     7,
-     102,   103,     8,   219,    21,    22,    23,    80,     3,    82,
-      83,     6,     3,   123,    87,    88,    89,     8,     7,     7,
-     130,   131,   132,   133,   134,   135,    25,    26,    27,   102,
-     103,   102,   103,    50,    51,    52,    53,    54,    55,    56,
+     645,    73,    78,    79,     5,   133,     7,   205,     9,     0,
+     131,     7,    73,     7,    73,     7,    73,   138,   140,   141,
+     102,   103,   220,   686,   102,   103,   186,   187,   188,   189,
+      73,   102,   103,    13,    14,   698,   699,   700,    73,    74,
+      75,    76,    72,    73,    74,    75,    76,     7,    78,    79,
+       7,    81,   133,   134,    73,   136,     3,    73,   220,     6,
+      73,    73,     3,   223,    16,    17,    18,    19,    20,     3,
+       3,    73,     6,     6,    73,   720,    73,   159,   160,   161,
+      42,    43,    44,     7,    73,   163,   164,    73,    73,    73,
+      73,     7,   220,     7,    73,   166,   167,   168,   220,     3,
+      73,    24,     3,     3,     8,    73,    73,     8,     8,     3,
+      73,     3,    73,    79,     8,     6,     8,    73,    73,     7,
+      73,     3,    73,    73,    73,    73,     8,     7,    73,    95,
+      74,    75,    74,    75,     3,    24,   102,   103,   220,     8,
+      10,     3,   220,    32,    11,    12,     8,     3,    15,   220,
+     102,   103,     8,    78,    21,    22,    23,    80,   124,    82,
+      83,     7,   128,     7,    87,    88,    89,     7,   197,     4,
+       3,   200,   201,   202,   203,     8,     3,     3,     8,   102,
+     103,     8,     8,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,   110,   111,   112,   113,     3,   219,   220,
-     221,   222,     8,    90,    91,    92,    93,     3,   121,   122,
-       6,   152,   153,   154,   155,   102,   103,  1294,  1294,  1294,
-    1294,  1294,   109,    42,    43,    44,    80,   114,   115,   116,
-     117,   118,   119,   120,     3,    10,   123,     6,     3,   219,
-      79,     3,   129,     8,     7,     3,     8,   219,   102,   103,
-       8,   138,     7,     3,   141,     3,    95,  1058,     8,     3,
-       8,   148,     6,   102,   103,  1040,     3,  1086,     3,   156,
-     157,     8,     6,     8,   161,     3,   219,   164,   219,     3,
-       8,   168,     3,     3,     8,   124,     3,     8,     8,   128,
-       3,     8,    80,    81,    82,    83,    84,    85,    86,   149,
-     150,   151,   189,   190,   191,   192,   193,   194,    78,     4,
-       8,     3,     8,    24,   102,   103,   203,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,     4,   219,     4,    45,    46,    47,    48,    49,     4,
-       3,   195,     3,   197,   198,     8,     4,     8,     4,    50,
-      51,    52,    53,    54,    55,   196,     4,     3,   199,   200,
-     201,   202,     8,     3,     3,   219,     4,     4,     8,    80,
-     142,   143,   144,   145,   146,   147,     3,     3,    79,    80,
-     219,     8,     8,     3,     3,   445,   446,     4,     8,     8,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   520,
-       4,   102,   103,     4,     4,     4,   527,     4,     4,     4,
+      77,    78,    79,   102,   103,   110,   111,   112,   113,   220,
+     221,   222,   223,    90,    91,    92,    93,     3,    50,    51,
+      52,    53,    54,    55,     4,   102,   103,  1294,  1294,  1294,
+    1294,  1294,   109,     3,   140,   141,     6,   114,   115,   116,
+     117,   118,   119,   120,   220,    79,   123,    79,    80,     3,
+     121,   122,     6,   130,   153,   154,   155,   156,   220,     3,
+      80,     3,   139,     4,     8,   142,     8,  1058,   102,   103,
+     102,   103,   149,     3,     3,  1040,     4,  1086,     8,     8,
+     157,   158,   102,   103,     4,   162,     3,   220,   165,   123,
+       4,     8,   169,   125,   126,   127,     4,   131,   132,   133,
+     134,   135,   136,    80,    81,    82,    83,    84,    85,    86,
+      25,    26,    27,   190,   191,   192,   193,   194,   195,   183,
+     184,   220,     4,     4,    24,   102,   103,   204,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,     4,   220,    79,    45,    46,    47,    48,    49,
+     143,   144,   145,   146,   147,   148,     3,     8,   150,   151,
+     152,     8,    97,    98,    99,   100,   101,   102,   103,     3,
+       3,     3,     3,     8,     8,     8,   196,     8,   198,   199,
+      80,     4,     3,     8,     4,     3,   220,     8,   220,   124,
+       8,     4,     3,   128,     3,   445,   446,     8,     3,     8,
+     220,     3,     3,     8,     4,     3,     8,     8,     3,   520,
+       8,     4,     4,     8,     4,     4,   527,     4,     4,     4,
        4,     4,     4,     4,     4,     4,     4,   527,   539,     4,
-       4,   542,     4,     4,   125,   126,   127,     4,   549,   539,
-       4,   219,   542,     4,     4,     4,     8,     4,   559,   549,
-     539,     4,     8,     3,   220,     4,     4,   539,   569,   559,
-       4,     8,     3,   219,   575,     4,     4,     4,   539,   569,
+       4,   542,     4,     4,     4,     4,     4,     4,   549,   539,
+       4,     4,   542,   220,     4,     4,     4,     4,   559,   549,
+     539,     4,     4,     3,     8,     4,     4,   539,   569,   559,
+       4,     3,   220,     4,   575,     4,     4,     4,   539,   569,
      539,     4,   539,   575,     4,   575,   575,     4,     4,     4,
-       4,     4,     4,   569,   595,     4,   539,   527,     4,   575,
-       4,   220,   220,     4,   539,   595,   222,   542,   220,   539,
-     220,   220,   542,   220,   549,   220,   222,     4,   221,   549,
-     539,     4,   221,   539,   559,   221,   539,   539,   219,   559,
-     220,   220,   220,   220,     4,     4,   222,   539,   219,   569,
-     539,   221,   539,   102,   103,   575,     4,     4,   222,   222,
-     539,   222,   222,   539,   539,   539,   539,   220,     4,     4,
-     539,     4,     4,     4,     4,   595,   539,   222,   222,     4,
-     222,   539,   539,     4,     4,     4,   539,     4,   539,     4,
-       4,     4,     4,   539,   539,   220,   539,     4,   539,   539,
-     539,   539,     4,     4,   539,     4,     4,     4,   542,   222,
-     542,   222,     4,     4,     4,   549,   222,   549,   222,   222,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   180,   181,     4,   220,   220,     4,     4,     4,     4,
-     189,   190,     4,     4,     4,   220,     4,     4,   220,   222,
-       4,   742,   220,     4,   745,     4,     4,     4,     4,     4,
-       4,     4,     4,   220,   220,   745,     4,     4,     4,   222,
-     219,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,     4,     4,   222,     4,   780,
-     781,   782,     4,   784,     4,   220,   222,   788,     4,   222,
-     780,   781,   782,   783,   784,   220,   222,     4,   220,     4,
-       4,   741,     4,   222,   222,     4,     4,     4,     4,   220,
-     184,   219,     7,     7,     7,   745,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,     7,
-       7,     5,     5,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,   219,   219,    79,   219,     5,     5,     5,
-     780,   781,   782,   783,   784,   219,   219,    91,    92,     7,
-      94,     5,    96,   219,     5,     7,     5,     5,   102,   103,
-     104,   105,   106,   107,   108,   109,     5,     5,     5,     5,
-     114,   115,   116,     7,     7,     7,     7,     7,     7,     7,
-     124,   219,     5,   219,   128,   129,     5,     7,   219,   219,
-     219,   219,   136,   219,   219,   219,   219,     5,     7,   219,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,   219,   219,   219,   219,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,     7,    79,
-      80,     7,     7,     7,     7,   219,   219,     7,     7,     7,
-     219,    91,    92,   219,   219,   189,   190,   219,     7,   219,
-       7,     4,   102,   103,     4,   105,   106,     4,   108,   109,
-     219,     4,     4,     4,   114,   115,   116,   219,   219,   219,
-       4,     4,     4,     4,   124,   219,     4,     6,   128,     3,
-       6,     3,     3,     6,     4,     3,   136,     6,     3,     6,
-       6,     3,     6,     6,     3,   219,     4,     4,     4,     4,
+       4,     4,     4,   569,   595,   220,   539,   527,     4,   575,
+       4,   223,     4,     4,   539,   595,   221,   542,   221,   539,
+     221,   223,   542,   221,   549,   221,     4,     4,   221,   549,
+     539,   221,   221,   539,   559,   222,   539,   539,   222,   559,
+     220,   222,   221,   221,   221,   221,     4,   539,   223,   569,
+     539,   223,   539,   223,   223,   575,   222,     4,   223,     4,
+     539,   221,     4,   539,   539,   539,   539,     4,     4,     4,
+     539,     4,   223,     4,   223,   595,   539,   223,     4,     4,
+       4,   539,   539,     4,     4,     4,   539,     4,   539,     4,
+       4,   221,     4,   539,   539,     4,   539,     4,   539,   539,
+     539,   539,     4,     4,   539,     4,   223,   223,   542,     4,
+     542,     4,   221,   223,     4,   549,   223,   549,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,   223,     4,   221,     4,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,     4,     4,    79,     4,   223,
+     221,   742,     4,     4,   745,     4,     4,     4,     4,    91,
+      92,     4,    94,     4,    96,   745,     4,   223,   221,     4,
+     102,   103,   104,   105,   106,   107,   108,   109,     4,   221,
+     221,     4,   114,   115,   116,     4,     4,     4,     4,   780,
+     781,   782,   124,   784,   221,     4,   128,   788,   130,     4,
+     780,   781,   782,   783,   784,   137,     4,   223,   223,   223,
+       4,   741,     4,     4,   223,     4,     4,     4,     4,     4,
+     221,   221,   221,     4,     4,   745,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,   223,
+     223,     4,     4,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,   221,    79,    80,     4,   190,   191,
+     780,   781,   782,   783,   784,   102,   103,    91,    92,     7,
+     220,     7,     7,     7,     7,     5,   220,   220,   102,   103,
+     220,   105,   106,     5,   108,   109,     5,     5,   220,     5,
+     114,   115,   116,   220,     7,     5,     5,   220,   220,     5,
+     124,     5,     7,     5,   128,     5,     7,   220,     7,     7,
+       7,     7,     7,   137,   206,   207,   208,   209,   210,   211,
+     212,   213,   214,   215,   216,   217,   218,   219,     5,   220,
+       5,     7,     5,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   180,   181,   182,     5,   220,     4,   220,
+       7,   220,   220,   190,   191,   220,   220,   220,   220,   220,
+     220,     5,     7,   220,   185,   220,   190,   191,     7,     7,
+     220,     7,     7,     7,     7,   220,   220,     7,   220,     7,
+     220,   220,     7,   220,   220,     7,   220,   220,   220,   220,
+     220,     4,     4,     4,     4,     4,   220,     4,     4,     4,
+       4,     4,     3,   223,     6,     3,     6,     6,     3,     6,
+       3,     3,     6,   220,     3,     6,     6,     3,     6,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       3,   222,     6,     3,     6,     4,     3,     8,     6,     4,
-       4,     4,   220,   220,     4,   220,   222,   220,   220,   220,
-     220,   220,  1043,     4,   220,  1046,     4,     4,  1049,   189,
-     190,  1052,     4,  1043,     4,     4,  1046,  1049,   220,  1049,
-    1049,   220,  1052,  1064,  1043,   220,  1067,   220,   220,  1070,
-    1046,  1043,     4,  1049,  1064,   220,  1052,  1067,     4,   219,
-    1052,     4,  1043,   220,  1043,  1086,  1043,   220,  1064,   220,
-    1091,  1052,  1064,  1052,  1095,  1052,  1086,   222,     4,     4,
-    1043,  1091,     4,  1104,   220,  1095,   220,  1108,  1043,  1052,
-     222,  1101,  1113,  1043,  1104,  1116,  1046,  1052,   220,  1049,
-       6,   222,  1052,  1113,  1043,     4,  1116,  1043,  1104,  1064,
-    1043,  1043,  1067,  1052,  1064,   219,  1052,  1067,   219,  1052,
-    1052,  1043,   219,   219,  1043,  1064,  1043,   219,  1064,   219,
+       4,     4,     4,     4,     3,   720,     6,     3,     6,     4,
+     223,     8,     6,     4,     4,     4,   221,   221,   221,   221,
+     221,   221,  1043,   221,   221,  1046,     4,   221,  1049,     4,
+       4,  1052,     4,  1043,     4,     4,  1046,  1049,     4,  1049,
+    1049,   221,  1052,  1064,  1043,   221,  1067,   221,   221,  1070,
+    1046,  1043,   221,  1049,  1064,     4,  1052,  1067,     4,   221,
+    1052,     4,  1043,   221,  1043,  1086,  1043,   221,  1064,     4,
+    1091,  1052,  1064,  1052,  1095,  1052,  1086,   221,   223,   221,
+    1043,  1091,   223,  1104,   221,  1095,     4,  1108,  1043,  1052,
+       4,  1101,  1113,  1043,  1104,  1116,  1046,  1052,   221,  1049,
+       6,   223,  1052,  1113,  1043,     3,  1116,  1043,  1104,  1064,
+    1043,  1043,  1067,  1052,  1064,     4,  1052,  1067,   220,  1052,
+    1052,  1043,   220,   220,  1043,  1064,  1043,   220,  1064,   220,
     1052,  1064,  1064,  1052,  1043,  1052,  1086,  1043,  1043,  1043,
     1043,  1091,  1064,  1052,  1043,  1095,  1052,  1052,  1052,  1052,
-    1043,  1101,     8,  1052,  1104,  1043,  1043,   219,  1113,  1052,
+    1043,  1101,     8,  1052,  1104,  1043,  1043,     8,  1113,  1052,
     1043,  1116,  1043,  1113,  1052,  1052,  1116,  1043,  1043,  1052,
     1043,  1052,  1043,  1043,  1043,  1043,  1052,  1052,  1043,  1052,
-       8,  1052,  1052,  1052,  1052,     4,     8,  1052,  1052,     3,
-    1052,     8,     4,     4,     4,     4,     4,     4,   219,   219,
-       5,     7,     4,     4,     4,     4,   773,   742,   520,   733,
-     527,  1042,  1037,   745,   828,  1062,  1055,  1072,  1058,  1070,
-     578,  1079,  1045,   219,  1091,  1043,  1054,   219,   219,   539,
-     219,   219,   219,  1294,    77,   220,   222,   219,   222,   219,
-     219,  1051,   720,  1048,   220,   220,   219,  1046,   219,  1113,
-     569,  1113,  1116,  1049,  1116,  1115,  1113,   575,  1069,   542,
-     559,  1067,  1118,  1116,  1065,  1302,  1095,   798,  1101,   595,
-    1086,   744,  1317,  1294,   599,  1340,  1360,    -1,   549,    -1,
-      -1,  1302,    -1,  1105,  1294,    -1,    -1,  1108,    -1,    -1,
+       4,  1052,  1052,  1052,  1052,     8,     3,  1052,  1052,     8,
+    1052,     4,     4,     4,   220,     4,     4,     7,     5,     4,
+       4,     4,     4,   220,     4,   773,   742,   520,   733,   527,
+    1042,   745,   828,  1062,  1037,  1055,  1058,  1091,   578,  1070,
+    1072,  1079,   539,  1045,  1043,  1054,  1294,   220,   220,    77,
+    1048,   569,   220,   220,   220,   220,   220,   220,  1051,  1046,
+     221,   223,   221,   220,   220,  1049,   542,   220,   575,  1113,
+     221,  1113,  1116,   220,  1116,   223,   220,  1113,  1115,  1118,
+     798,  1116,  1067,  1069,  1065,   549,  1302,  1095,  1101,  1086,
+     784,   595,  1317,  1294,  1105,  1340,   559,  1360,   744,    -1,
+     599,  1302,  1108,    -1,  1294,    -1,    -1,    -1,    -1,    -1,
       -1,  1251,  1302,    -1,    -1,    -1,  1317,    -1,  1294,    -1,
-      -1,    -1,  1294,    -1,   784,    -1,  1302,  1317,    -1,    -1,
+      -1,    -1,  1294,    -1,    -1,    -1,  1302,  1317,    -1,    -1,
     1302,    -1,    -1,  1294,    -1,  1294,    -1,  1294,    -1,    -1,
       -1,  1317,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,  1294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,
@@ -5878,237 +5878,237 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yystos_[] =
   {
-       0,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,   224,   225,   226,   227,   228,
-     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
-       0,     5,     7,     9,   219,   220,   221,   222,   239,   240,
-     241,   246,     7,   255,     7,   260,     7,   312,     7,   426,
-       7,   507,     7,   523,     7,   540,     7,   458,     7,   464,
-       7,   488,     7,   402,     7,   611,     7,   642,   247,   242,
-     256,   261,   313,   427,   508,   524,   541,   459,   465,   489,
-     403,   612,   643,   239,   248,   249,   219,   244,   245,    10,
-     257,   259,    11,    12,    15,    21,    22,    23,    50,    51,
+       0,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+       0,     5,     7,     9,   220,   221,   222,   223,   240,   241,
+     242,   247,     7,   256,     7,   261,     7,   313,     7,   427,
+       7,   508,     7,   524,     7,   541,     7,   459,     7,   465,
+       7,   489,     7,   403,     7,   612,     7,   643,   248,   243,
+     257,   262,   314,   428,   509,   525,   542,   460,   466,   490,
+     404,   613,   644,   240,   249,   250,   220,   245,   246,    10,
+     258,   260,    11,    12,    15,    21,    22,    23,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    90,    91,
       92,    93,   102,   103,   109,   114,   115,   116,   117,   118,
-     119,   120,   123,   129,   138,   141,   148,   156,   157,   161,
-     164,   168,   189,   190,   191,   192,   193,   194,   203,   219,
-     254,   262,   263,   264,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   286,   288,   290,   291,   292,   293,   295,   297,
-     298,   299,   300,   302,   303,   305,   307,   308,   309,   310,
-     322,   324,   326,   367,   375,   381,   387,   389,   396,   410,
-     420,   440,   441,   442,   443,   448,   456,   482,   513,   515,
-     534,   564,   578,   590,   591,   599,   609,   640,   649,   673,
-      16,    17,    18,    19,    20,   254,   314,   315,   316,   318,
-     319,   320,   321,   513,   515,    94,    96,   104,   105,   106,
-     107,   108,   124,   128,   136,   254,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   280,
-     281,   282,   283,   286,   288,   290,   291,   292,   293,   295,
-     297,   303,   305,   428,   429,   430,   432,   434,   436,   438,
-     440,   441,   442,   443,   446,   447,   482,   501,   513,   515,
-     517,   534,   559,    95,   254,   436,   438,   482,   509,   510,
-     511,   513,   515,    97,    98,    99,   100,   101,   254,   436,
-     438,   482,   513,   515,   525,   526,   527,   529,   530,   532,
-     533,   123,   130,   131,   132,   133,   134,   135,   254,   482,
-     513,   515,   542,   543,   544,   545,   547,   549,   551,   553,
-     555,   557,   456,    24,    80,    82,    83,    87,    88,    89,
-     254,   344,   466,   467,   468,   469,   470,   471,   472,   474,
-     476,   478,   479,   481,   513,   515,    81,    84,    85,    86,
-     254,   344,   470,   476,   490,   491,   492,   493,   494,   496,
-     497,   498,   499,   500,   513,   515,   139,   140,   254,   404,
-     405,   406,   408,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   189,   190,   254,   513,
-     515,   613,   614,   615,   616,   618,   620,   621,   623,   624,
-     625,   628,   630,   631,   632,   634,   636,   638,    13,    14,
-     644,   645,   646,   648,     6,     3,     4,     8,     3,   258,
-       3,     8,   265,   641,   311,   323,   325,   327,     4,     4,
+     119,   120,   123,   130,   139,   142,   149,   157,   158,   162,
+     165,   169,   190,   191,   192,   193,   194,   195,   204,   220,
+     255,   263,   264,   265,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   287,   289,   291,   292,   293,   294,   296,   298,
+     299,   300,   301,   303,   304,   306,   308,   309,   310,   311,
+     323,   325,   327,   368,   376,   382,   388,   390,   397,   411,
+     421,   441,   442,   443,   444,   449,   457,   483,   514,   516,
+     535,   565,   579,   591,   592,   600,   610,   641,   650,   674,
+      16,    17,    18,    19,    20,   255,   315,   316,   317,   319,
+     320,   321,   322,   514,   516,    94,    96,   104,   105,   106,
+     107,   108,   124,   128,   137,   255,   267,   268,   269,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   281,
+     282,   283,   284,   287,   289,   291,   292,   293,   294,   296,
+     298,   304,   306,   429,   430,   431,   433,   435,   437,   439,
+     441,   442,   443,   444,   447,   448,   483,   502,   514,   516,
+     518,   535,   560,    95,   255,   437,   439,   483,   510,   511,
+     512,   514,   516,    97,    98,    99,   100,   101,   255,   437,
+     439,   483,   514,   516,   526,   527,   528,   530,   531,   533,
+     534,   123,   131,   132,   133,   134,   135,   136,   255,   483,
+     514,   516,   543,   544,   545,   546,   548,   550,   552,   554,
+     556,   558,   457,    24,    80,    82,    83,    87,    88,    89,
+     255,   345,   467,   468,   469,   470,   471,   472,   473,   475,
+     477,   479,   480,   482,   514,   516,    81,    84,    85,    86,
+     255,   345,   471,   477,   491,   492,   493,   494,   495,   497,
+     498,   499,   500,   501,   514,   516,   140,   141,   255,   405,
+     406,   407,   409,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   180,   181,   182,   190,   191,   255,   514,
+     516,   614,   615,   616,   617,   619,   621,   622,   624,   625,
+     626,   629,   631,   632,   633,   635,   637,   639,    13,    14,
+     645,   646,   647,   649,     6,     3,     4,     8,     3,   259,
+       3,     8,   266,   642,   312,   324,   326,   328,     4,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,   301,     4,     4,     4,     4,     4,   284,   287,
-     289,     4,     4,     4,     4,   421,   457,   483,     4,   304,
-     306,   449,   514,   516,   444,     4,     4,     4,   376,   388,
-     382,   368,   565,   535,   397,   411,   579,     4,   390,   592,
-     600,   610,   294,   296,     4,     4,     4,   650,   674,     4,
-       3,     8,   317,     4,     4,     4,     4,     3,     8,   502,
-     518,   431,   433,   435,     4,     4,   439,   437,   560,     3,
-       8,   512,     3,     8,   528,     4,   531,     4,     4,     3,
-       8,   558,   546,   548,   550,   552,   554,   556,     8,     3,
-       8,   473,   345,     4,   477,   475,   480,     4,     8,     3,
-     495,     4,     4,     4,     8,     3,   407,   409,     3,     8,
-       4,   617,   619,     4,   622,     4,     4,   626,   629,     4,
-       4,   633,   635,   637,   639,     3,     8,   647,     4,     3,
-       8,   239,   239,   219,     4,     4,     4,     4,     4,     4,
-       4,   220,   220,   220,   220,   220,   220,   220,   220,   222,
-     221,   221,   221,   220,   220,     4,   220,   220,   222,   222,
-     222,     4,     4,     4,   222,   222,   221,   222,     4,     4,
-       4,   220,     4,     4,     4,     4,     4,     4,   222,   222,
-     222,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     220,     4,     4,     4,     4,     4,     4,   222,   222,   222,
-       4,     4,   263,     4,   222,   222,   220,   220,   315,     4,
-       4,     4,     4,     4,   220,   222,     4,     4,     4,   429,
-       4,   510,     4,   220,     4,   220,   220,   526,     4,     4,
-       4,     4,     4,     4,     4,   544,     4,     4,   220,     4,
-       4,     4,   222,   468,     4,   222,   222,   222,   492,     4,
-       4,   405,   222,     4,     4,   220,     4,   220,   220,     4,
-       4,   222,   222,     4,     4,     4,     4,   614,     4,   220,
-     645,     4,     7,   219,     7,     7,     7,     7,     5,   219,
-     185,   186,   187,   188,   222,   285,   219,   219,     5,     5,
-       5,   219,   219,     5,   241,   243,   219,   110,   111,   112,
-     113,   445,     5,     5,     5,     7,     5,     5,     5,     7,
-       7,     7,     7,     7,     7,   219,   219,     5,     7,     5,
-     250,     5,     5,   219,   219,   219,   250,   219,     7,   219,
-     219,   219,   250,   250,   250,   219,   219,   219,   219,   219,
-     219,   219,   219,   219,   219,   219,   243,   219,   219,   219,
-     182,   183,   627,   184,   285,   219,   219,   219,     5,   239,
-     262,   644,   314,    24,    28,    29,    30,    31,    32,    33,
+       4,     4,   302,     4,     4,     4,     4,     4,   285,   288,
+     290,     4,     4,     4,     4,   422,   458,   484,     4,   305,
+     307,   450,   515,   517,   445,     4,     4,     4,   377,   389,
+     383,   369,   566,   536,   398,   412,   580,     4,   391,   593,
+     601,   611,   295,   297,     4,     4,     4,   651,   675,     4,
+       3,     8,   318,     4,     4,     4,     4,     3,     8,   503,
+     519,   432,   434,   436,     4,     4,   440,   438,   561,     3,
+       8,   513,     3,     8,   529,     4,   532,     4,     4,     3,
+       8,   559,   547,   549,   551,   553,   555,   557,     8,     3,
+       8,   474,   346,     4,   478,   476,   481,     4,     8,     3,
+     496,     4,     4,     4,     8,     3,   408,   410,     3,     8,
+       4,   618,   620,     4,   623,     4,     4,   627,   630,     4,
+       4,   634,   636,   638,   640,     3,     8,   648,     4,     3,
+       8,   240,   240,   220,     4,     4,     4,     4,     4,     4,
+       4,   221,   221,   221,   221,   221,   221,   221,   221,   223,
+     222,   222,   222,   221,   221,     4,   221,   221,   223,   223,
+     223,     4,     4,     4,   223,   223,   222,   223,     4,     4,
+       4,   221,     4,     4,     4,     4,     4,     4,   223,   223,
+     223,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+     221,     4,     4,     4,     4,     4,     4,   223,   223,   223,
+       4,     4,   264,     4,   223,   223,   221,   221,   316,     4,
+       4,     4,     4,     4,   221,   223,     4,     4,     4,   430,
+       4,   511,     4,   221,     4,   221,   221,   527,     4,     4,
+       4,     4,     4,     4,     4,   545,     4,     4,   221,     4,
+       4,     4,   223,   469,     4,   223,   223,   223,   493,     4,
+       4,   406,   223,     4,     4,   221,     4,   221,   221,     4,
+       4,   223,   223,     4,     4,     4,     4,   615,     4,   221,
+     646,     4,     7,   220,     7,     7,     7,     7,     5,   220,
+     186,   187,   188,   189,   223,   286,   220,   220,     5,     5,
+       5,   220,   220,     5,   242,   244,   220,   110,   111,   112,
+     113,   446,     5,     5,     5,     7,     5,     5,     5,     7,
+       7,     7,     7,     7,     7,   220,   220,     5,     7,     5,
+     251,     5,     5,   220,   220,   220,   251,   220,     7,   220,
+     220,   220,   251,   251,   251,   220,   220,   220,   220,   220,
+     220,   220,   220,   220,   220,   220,   244,   220,   220,   220,
+     183,   184,   628,   185,   286,   220,   220,   220,     5,   240,
+     263,   645,   315,    24,    28,    29,    30,    31,    32,    33,
       34,    35,    36,    37,    38,    39,    40,    41,    45,    46,
-      47,    48,    49,   254,   332,   333,   334,   337,   339,   341,
-     343,   344,   346,   347,   348,   349,   350,   351,   352,   353,
-     354,   357,   358,   359,   361,   363,   365,   332,     7,   328,
-     329,   330,     7,   422,   423,   424,     7,   460,   461,   462,
-       7,   484,   485,   486,     7,   450,   451,   452,   132,   219,
-     377,   378,   379,   380,   248,   133,   135,   379,   383,   384,
-     385,   386,   121,   122,   369,   370,   371,   373,     7,   566,
-     567,     7,   536,   537,   538,     7,   398,   399,   400,   142,
-     143,   144,   145,   146,   147,   412,   413,   414,   415,   416,
-     417,   418,   419,    24,   152,   153,   154,   155,   254,   346,
-     513,   515,   580,   581,   582,   585,   586,   588,   589,   158,
-     159,   160,   254,   391,   392,   393,   394,   395,   513,   515,
-     162,   163,   254,   513,   515,   593,   594,   595,   597,   165,
-     166,   167,   219,   513,   515,   601,   602,   603,   604,   606,
-     607,   613,     7,   651,   652,   204,   254,   675,   676,   677,
-     251,     7,   503,   504,   505,     7,   519,   520,   521,   137,
-     545,   561,   562,   328,     8,     8,     8,   335,   338,   340,
-     342,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   355,     4,   360,   362,   364,   366,     3,     8,     8,
-     331,     6,     3,   425,     6,     3,   463,     6,     3,   487,
-       6,     3,   453,     6,     3,     3,     6,     6,     3,     6,
-     372,   374,     3,     8,   568,     3,     6,   539,     6,     3,
-     401,     6,     3,     4,     4,     4,     4,     4,     4,     3,
-       8,   583,   587,     4,     4,     4,     3,     8,     4,     4,
-       4,     3,     8,   596,   598,     3,     8,     4,   605,     4,
-     608,     3,     8,     8,   653,     3,     6,     4,     3,     8,
-     219,   252,   253,   506,     6,     3,   522,     6,     3,   563,
-       8,     6,     4,     4,     4,     4,   220,   222,   220,   222,
-     220,   220,   220,   220,   220,   220,     4,   220,     4,     4,
-       4,     4,   333,   332,   330,   428,   424,   466,   462,   490,
-     486,   254,   266,   267,   268,   269,   270,   271,   272,   273,
-     274,   275,   276,   277,   278,   280,   281,   282,   283,   286,
-     288,   290,   291,   292,   293,   295,   297,   303,   305,   344,
-     420,   432,   434,   436,   438,   440,   441,   442,   443,   447,
-     454,   455,   482,   513,   515,   559,   452,   378,   384,     4,
-       4,   370,   125,   126,   127,   254,   266,   267,   268,   269,
-     270,   271,   344,   482,   513,   515,   569,   570,   571,   572,
-     573,   575,   577,   567,   542,   538,   404,   400,   220,   220,
-     220,   220,   220,   220,   413,     4,     4,   220,   220,   220,
-     581,   222,   220,   220,   392,     4,     4,   594,   222,     4,
-     220,     4,   602,   195,   197,   198,   254,   344,   513,   515,
-     654,   655,   656,   657,   659,   652,   222,   676,     6,     3,
-     509,   505,   525,   521,     4,    25,    26,    27,   336,   219,
-     219,   219,    42,    43,    44,   356,   219,   219,   219,   219,
-       8,     8,     8,     8,     3,     8,   219,   219,   574,   576,
-       4,     8,     3,     8,     8,   149,   150,   151,   584,   219,
-     219,   219,   219,   239,   660,     4,   658,     3,     8,   219,
-       8,     8,   219,   455,     4,     4,   222,   571,     4,   220,
-       4,   655,   219,   219,     5,   219,     7,   661,   662,   663,
-       3,     6,   196,   199,   200,   201,   202,   664,   665,   666,
-     668,   669,   670,   671,   662,   667,     4,     4,     4,   672,
-       3,     8,     4,   222,   220,   220,     4,   665,   219,   219
+      47,    48,    49,   255,   333,   334,   335,   338,   340,   342,
+     344,   345,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   358,   359,   360,   362,   364,   366,   333,     7,   329,
+     330,   331,     7,   423,   424,   425,     7,   461,   462,   463,
+       7,   485,   486,   487,     7,   451,   452,   453,   133,   220,
+     378,   379,   380,   381,   249,   134,   136,   380,   384,   385,
+     386,   387,   121,   122,   370,   371,   372,   374,     7,   567,
+     568,     7,   537,   538,   539,     7,   399,   400,   401,   143,
+     144,   145,   146,   147,   148,   413,   414,   415,   416,   417,
+     418,   419,   420,    24,   153,   154,   155,   156,   255,   347,
+     514,   516,   581,   582,   583,   586,   587,   589,   590,   159,
+     160,   161,   255,   392,   393,   394,   395,   396,   514,   516,
+     163,   164,   255,   514,   516,   594,   595,   596,   598,   166,
+     167,   168,   220,   514,   516,   602,   603,   604,   605,   607,
+     608,   614,     7,   652,   653,   205,   255,   676,   677,   678,
+     252,     7,   504,   505,   506,     7,   520,   521,   522,   138,
+     546,   562,   563,   329,     8,     8,     8,   336,   339,   341,
+     343,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,   356,     4,   361,   363,   365,   367,     3,     8,     8,
+     332,     6,     3,   426,     6,     3,   464,     6,     3,   488,
+       6,     3,   454,     6,     3,     3,     6,     6,     3,     6,
+     373,   375,     3,     8,   569,     3,     6,   540,     6,     3,
+     402,     6,     3,     4,     4,     4,     4,     4,     4,     3,
+       8,   584,   588,     4,     4,     4,     3,     8,     4,     4,
+       4,     3,     8,   597,   599,     3,     8,     4,   606,     4,
+     609,     3,     8,     8,   654,     3,     6,     4,     3,     8,
+     220,   253,   254,   507,     6,     3,   523,     6,     3,   564,
+       8,     6,     4,     4,     4,     4,   221,   223,   221,   223,
+     221,   221,   221,   221,   221,   221,     4,   221,     4,     4,
+       4,     4,   334,   333,   331,   429,   425,   467,   463,   491,
+     487,   255,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   281,   282,   283,   284,   287,
+     289,   291,   292,   293,   294,   296,   298,   304,   306,   345,
+     421,   433,   435,   437,   439,   441,   442,   443,   444,   448,
+     455,   456,   483,   514,   516,   560,   453,   379,   385,     4,
+       4,   371,   125,   126,   127,   255,   267,   268,   269,   270,
+     271,   272,   345,   483,   514,   516,   570,   571,   572,   573,
+     574,   576,   578,   568,   543,   539,   405,   401,   221,   221,
+     221,   221,   221,   221,   414,     4,     4,   221,   221,   221,
+     582,   223,   221,   221,   393,     4,     4,   595,   223,     4,
+     221,     4,   603,   196,   198,   199,   255,   345,   514,   516,
+     655,   656,   657,   658,   660,   653,   223,   677,     6,     3,
+     510,   506,   526,   522,     4,    25,    26,    27,   337,   220,
+     220,   220,    42,    43,    44,   357,   220,   220,   220,   220,
+       8,     8,     8,     8,     3,     8,   220,   220,   575,   577,
+       4,     8,     3,     8,     8,   150,   151,   152,   585,   220,
+     220,   220,   220,   240,   661,     4,   659,     3,     8,   220,
+       8,     8,   220,   456,     4,     4,   223,   572,     4,   221,
+       4,   656,   220,   220,     5,   220,     7,   662,   663,   664,
+       3,     6,   197,   200,   201,   202,   203,   665,   666,   667,
+     669,   670,   671,   672,   663,   668,     4,     4,     4,   673,
+       3,     8,     4,   223,   221,   221,     4,   666,   220,   220
   };
 
   const short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   223,   225,   224,   226,   224,   227,   224,   228,   224,
-     229,   224,   230,   224,   231,   224,   232,   224,   233,   224,
-     234,   224,   235,   224,   236,   224,   237,   224,   238,   224,
-     239,   239,   239,   239,   239,   239,   239,   240,   242,   241,
-     243,   244,   244,   245,   245,   245,   247,   246,   248,   248,
-     249,   249,   249,   251,   250,   252,   252,   253,   253,   253,
-     254,   256,   255,   258,   257,   257,   259,   261,   260,   262,
-     262,   262,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
-     265,   264,   266,   267,   268,   269,   270,   271,   272,   273,
-     274,   275,   276,   277,   278,   279,   280,   281,   282,   284,
-     283,   285,   285,   285,   285,   285,   287,   286,   289,   288,
-     290,   291,   292,   294,   293,   296,   295,   297,   298,   299,
-     301,   300,   302,   304,   303,   306,   305,   307,   308,   309,
-     311,   310,   313,   312,   314,   314,   314,   315,   315,   315,
-     315,   315,   315,   315,   315,   317,   316,   318,   319,   320,
-     321,   323,   322,   325,   324,   327,   326,   328,   328,   329,
-     329,   329,   331,   330,   332,   332,   332,   333,   333,   333,
-     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
-     333,   333,   333,   333,   333,   333,   333,   333,   333,   335,
-     334,   336,   336,   336,   338,   337,   340,   339,   342,   341,
-     343,   345,   344,   346,   347,   348,   349,   350,   351,   352,
-     353,   355,   354,   356,   356,   356,   357,   358,   360,   359,
-     362,   361,   364,   363,   366,   365,   368,   367,   369,   369,
-     369,   370,   370,   372,   371,   374,   373,   376,   375,   377,
-     377,   377,   378,   378,   379,   380,   382,   381,   383,   383,
-     383,   384,   384,   384,   385,   386,   388,   387,   390,   389,
-     391,   391,   391,   392,   392,   392,   392,   392,   392,   393,
-     394,   395,   397,   396,   398,   398,   399,   399,   399,   401,
-     400,   403,   402,   404,   404,   404,   404,   405,   405,   407,
-     406,   409,   408,   411,   410,   412,   412,   412,   413,   413,
-     413,   413,   413,   413,   414,   415,   416,   417,   418,   419,
-     421,   420,   422,   422,   423,   423,   423,   425,   424,   427,
-     426,   428,   428,   428,   429,   429,   429,   429,   429,   429,
-     429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
-     429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
-     429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
-     429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
-     431,   430,   433,   432,   435,   434,   437,   436,   439,   438,
-     440,   441,   442,   444,   443,   445,   445,   445,   445,   446,
-     447,   449,   448,   450,   450,   451,   451,   451,   453,   452,
-     454,   454,   454,   455,   455,   455,   455,   455,   455,   455,
-     455,   455,   455,   455,   455,   455,   455,   455,   455,   455,
-     455,   455,   455,   455,   455,   455,   455,   455,   455,   455,
-     455,   455,   455,   455,   455,   455,   455,   455,   455,   455,
-     455,   455,   455,   455,   455,   455,   457,   456,   459,   458,
-     460,   460,   461,   461,   461,   463,   462,   465,   464,   466,
-     466,   467,   467,   467,   468,   468,   468,   468,   468,   468,
-     468,   468,   468,   468,   469,   470,   471,   473,   472,   475,
-     474,   477,   476,   478,   480,   479,   481,   483,   482,   484,
-     484,   485,   485,   485,   487,   486,   489,   488,   490,   490,
-     491,   491,   491,   492,   492,   492,   492,   492,   492,   492,
-     492,   492,   492,   493,   495,   494,   496,   497,   498,   499,
-     500,   502,   501,   503,   503,   504,   504,   504,   506,   505,
-     508,   507,   509,   509,   509,   510,   510,   510,   510,   510,
-     510,   510,   512,   511,   514,   513,   516,   515,   518,   517,
-     519,   519,   520,   520,   520,   522,   521,   524,   523,   525,
-     525,   525,   526,   526,   526,   526,   526,   526,   526,   526,
-     526,   526,   526,   528,   527,   529,   531,   530,   532,   533,
-     535,   534,   536,   536,   537,   537,   537,   539,   538,   541,
-     540,   542,   542,   543,   543,   543,   544,   544,   544,   544,
-     544,   544,   544,   544,   544,   544,   544,   546,   545,   548,
-     547,   550,   549,   552,   551,   554,   553,   556,   555,   558,
-     557,   560,   559,   561,   561,   563,   562,   565,   564,   566,
-     566,   566,   568,   567,   569,   569,   570,   570,   570,   571,
-     571,   571,   571,   571,   571,   571,   571,   571,   571,   571,
-     571,   571,   571,   572,   574,   573,   576,   575,   577,   579,
-     578,   580,   580,   580,   581,   581,   581,   581,   581,   581,
-     581,   581,   581,   583,   582,   584,   584,   584,   585,   587,
-     586,   588,   589,   590,   592,   591,   593,   593,   593,   594,
-     594,   594,   594,   594,   596,   595,   598,   597,   600,   599,
-     601,   601,   601,   602,   602,   602,   602,   602,   602,   603,
-     605,   604,   606,   608,   607,   610,   609,   612,   611,   613,
-     613,   613,   614,   614,   614,   614,   614,   614,   614,   614,
-     614,   614,   614,   614,   614,   614,   614,   614,   614,   614,
-     615,   617,   616,   619,   618,   620,   622,   621,   623,   624,
-     626,   625,   627,   627,   629,   628,   630,   631,   633,   632,
-     635,   634,   637,   636,   639,   638,   641,   640,   643,   642,
-     644,   644,   644,   645,   645,   647,   646,   648,   650,   649,
-     651,   651,   651,   653,   652,   654,   654,   654,   655,   655,
-     655,   655,   655,   655,   655,   656,   658,   657,   660,   659,
-     661,   661,   661,   663,   662,   664,   664,   664,   665,   665,
-     665,   665,   665,   667,   666,   668,   669,   670,   672,   671,
-     674,   673,   675,   675,   675,   676,   676,   677
+       0,   224,   226,   225,   227,   225,   228,   225,   229,   225,
+     230,   225,   231,   225,   232,   225,   233,   225,   234,   225,
+     235,   225,   236,   225,   237,   225,   238,   225,   239,   225,
+     240,   240,   240,   240,   240,   240,   240,   241,   243,   242,
+     244,   245,   245,   246,   246,   246,   248,   247,   249,   249,
+     250,   250,   250,   252,   251,   253,   253,   254,   254,   254,
+     255,   257,   256,   259,   258,   258,   260,   262,   261,   263,
+     263,   263,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
+     266,   265,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   285,
+     284,   286,   286,   286,   286,   286,   288,   287,   290,   289,
+     291,   292,   293,   295,   294,   297,   296,   298,   299,   300,
+     302,   301,   303,   305,   304,   307,   306,   308,   309,   310,
+     312,   311,   314,   313,   315,   315,   315,   316,   316,   316,
+     316,   316,   316,   316,   316,   318,   317,   319,   320,   321,
+     322,   324,   323,   326,   325,   328,   327,   329,   329,   330,
+     330,   330,   332,   331,   333,   333,   333,   334,   334,   334,
+     334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
+     334,   334,   334,   334,   334,   334,   334,   334,   334,   336,
+     335,   337,   337,   337,   339,   338,   341,   340,   343,   342,
+     344,   346,   345,   347,   348,   349,   350,   351,   352,   353,
+     354,   356,   355,   357,   357,   357,   358,   359,   361,   360,
+     363,   362,   365,   364,   367,   366,   369,   368,   370,   370,
+     370,   371,   371,   373,   372,   375,   374,   377,   376,   378,
+     378,   378,   379,   379,   380,   381,   383,   382,   384,   384,
+     384,   385,   385,   385,   386,   387,   389,   388,   391,   390,
+     392,   392,   392,   393,   393,   393,   393,   393,   393,   394,
+     395,   396,   398,   397,   399,   399,   400,   400,   400,   402,
+     401,   404,   403,   405,   405,   405,   405,   406,   406,   408,
+     407,   410,   409,   412,   411,   413,   413,   413,   414,   414,
+     414,   414,   414,   414,   415,   416,   417,   418,   419,   420,
+     422,   421,   423,   423,   424,   424,   424,   426,   425,   428,
+     427,   429,   429,   429,   430,   430,   430,   430,   430,   430,
+     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+     432,   431,   434,   433,   436,   435,   438,   437,   440,   439,
+     441,   442,   443,   445,   444,   446,   446,   446,   446,   447,
+     448,   450,   449,   451,   451,   452,   452,   452,   454,   453,
+     455,   455,   455,   456,   456,   456,   456,   456,   456,   456,
+     456,   456,   456,   456,   456,   456,   456,   456,   456,   456,
+     456,   456,   456,   456,   456,   456,   456,   456,   456,   456,
+     456,   456,   456,   456,   456,   456,   456,   456,   456,   456,
+     456,   456,   456,   456,   456,   456,   458,   457,   460,   459,
+     461,   461,   462,   462,   462,   464,   463,   466,   465,   467,
+     467,   468,   468,   468,   469,   469,   469,   469,   469,   469,
+     469,   469,   469,   469,   470,   471,   472,   474,   473,   476,
+     475,   478,   477,   479,   481,   480,   482,   484,   483,   485,
+     485,   486,   486,   486,   488,   487,   490,   489,   491,   491,
+     492,   492,   492,   493,   493,   493,   493,   493,   493,   493,
+     493,   493,   493,   494,   496,   495,   497,   498,   499,   500,
+     501,   503,   502,   504,   504,   505,   505,   505,   507,   506,
+     509,   508,   510,   510,   510,   511,   511,   511,   511,   511,
+     511,   511,   513,   512,   515,   514,   517,   516,   519,   518,
+     520,   520,   521,   521,   521,   523,   522,   525,   524,   526,
+     526,   526,   527,   527,   527,   527,   527,   527,   527,   527,
+     527,   527,   527,   529,   528,   530,   532,   531,   533,   534,
+     536,   535,   537,   537,   538,   538,   538,   540,   539,   542,
+     541,   543,   543,   544,   544,   544,   545,   545,   545,   545,
+     545,   545,   545,   545,   545,   545,   545,   547,   546,   549,
+     548,   551,   550,   553,   552,   555,   554,   557,   556,   559,
+     558,   561,   560,   562,   562,   564,   563,   566,   565,   567,
+     567,   567,   569,   568,   570,   570,   571,   571,   571,   572,
+     572,   572,   572,   572,   572,   572,   572,   572,   572,   572,
+     572,   572,   572,   573,   575,   574,   577,   576,   578,   580,
+     579,   581,   581,   581,   582,   582,   582,   582,   582,   582,
+     582,   582,   582,   584,   583,   585,   585,   585,   586,   588,
+     587,   589,   590,   591,   593,   592,   594,   594,   594,   595,
+     595,   595,   595,   595,   597,   596,   599,   598,   601,   600,
+     602,   602,   602,   603,   603,   603,   603,   603,   603,   604,
+     606,   605,   607,   609,   608,   611,   610,   613,   612,   614,
+     614,   614,   615,   615,   615,   615,   615,   615,   615,   615,
+     615,   615,   615,   615,   615,   615,   615,   615,   615,   615,
+     616,   618,   617,   620,   619,   621,   623,   622,   624,   625,
+     627,   626,   628,   628,   630,   629,   631,   632,   634,   633,
+     636,   635,   638,   637,   640,   639,   642,   641,   644,   643,
+     645,   645,   645,   646,   646,   648,   647,   649,   651,   650,
+     652,   652,   652,   654,   653,   655,   655,   655,   656,   656,
+     656,   656,   656,   656,   656,   657,   659,   658,   661,   660,
+     662,   662,   662,   664,   663,   665,   665,   665,   666,   666,
+     666,   666,   666,   668,   667,   669,   670,   671,   673,   672,
+     675,   674,   676,   676,   676,   677,   677,   678
   };
 
   const signed char
@@ -6254,10 +6254,10 @@ namespace isc { namespace dhcp {
   "\"host-reservation-identifiers\"", "\"sanity-checks\"",
   "\"lease-checks\"", "\"extended-info-checks\"", "\"client-classes\"",
   "\"require-client-classes\"", "\"test\"", "\"template-test\"",
-  "\"only-if-required\"", "\"client-class\"", "\"reservations\"",
-  "\"ip-addresses\"", "\"prefixes\"", "\"duid\"", "\"hw-address\"",
-  "\"hostname\"", "\"flex-id\"", "\"relay\"", "\"ip-address\"",
-  "\"hooks-libraries\"", "\"library\"", "\"parameters\"",
+  "\"only-if-required\"", "\"client-class\"", "\"pool-id\"",
+  "\"reservations\"", "\"ip-addresses\"", "\"prefixes\"", "\"duid\"",
+  "\"hw-address\"", "\"hostname\"", "\"flex-id\"", "\"relay\"",
+  "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"",
   "\"expired-leases-processing\"", "\"reclaim-timer-wait-time\"",
   "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"",
   "\"max-reclaim-leases\"", "\"max-reclaim-time\"",
@@ -6406,95 +6406,95 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   316,   316,   316,   317,   317,   318,   318,   319,   319,
-     320,   320,   321,   321,   322,   322,   323,   323,   324,   324,
-     325,   325,   326,   326,   327,   327,   328,   328,   329,   329,
-     337,   338,   339,   340,   341,   342,   343,   346,   351,   351,
-     362,   365,   366,   369,   374,   380,   385,   385,   392,   393,
-     396,   400,   404,   410,   410,   417,   418,   421,   425,   429,
-     439,   448,   448,   463,   463,   477,   480,   486,   486,   495,
-     496,   497,   504,   505,   506,   507,   508,   509,   510,   511,
-     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
-     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
-     532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
-     542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
-     552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
-     574,   574,   583,   589,   595,   601,   607,   613,   619,   625,
-     631,   637,   643,   649,   655,   661,   667,   673,   679,   685,
-     685,   694,   697,   700,   703,   706,   712,   712,   721,   721,
-     730,   736,   742,   748,   748,   757,   757,   766,   772,   778,
-     784,   784,   793,   799,   799,   808,   808,   817,   823,   829,
-     835,   835,   847,   847,   856,   857,   858,   863,   864,   865,
-     866,   867,   868,   869,   870,   873,   873,   884,   890,   896,
-     902,   908,   908,   921,   921,   934,   934,   945,   946,   949,
-     950,   951,   956,   956,   966,   967,   968,   973,   974,   975,
-     976,   977,   978,   979,   980,   981,   982,   983,   984,   985,
-     986,   987,   988,   989,   990,   991,   992,   993,   994,   997,
-     997,  1005,  1006,  1007,  1010,  1010,  1019,  1019,  1028,  1028,
-    1037,  1043,  1043,  1052,  1058,  1064,  1070,  1076,  1082,  1088,
-    1095,  1101,  1101,  1109,  1110,  1111,  1114,  1120,  1126,  1126,
-    1135,  1135,  1144,  1144,  1153,  1153,  1162,  1162,  1173,  1174,
-    1175,  1180,  1181,  1184,  1184,  1203,  1203,  1221,  1221,  1232,
-    1233,  1234,  1239,  1240,  1243,  1248,  1253,  1253,  1264,  1265,
-    1266,  1271,  1272,  1273,  1276,  1281,  1288,  1288,  1301,  1301,
-    1314,  1315,  1316,  1321,  1322,  1323,  1324,  1325,  1326,  1329,
-    1335,  1341,  1347,  1347,  1358,  1359,  1362,  1363,  1364,  1369,
-    1369,  1379,  1379,  1389,  1390,  1391,  1394,  1397,  1398,  1401,
-    1401,  1410,  1410,  1419,  1419,  1431,  1432,  1433,  1438,  1439,
-    1440,  1441,  1442,  1443,  1446,  1452,  1458,  1464,  1470,  1476,
-    1485,  1485,  1499,  1500,  1503,  1504,  1505,  1514,  1514,  1540,
-    1540,  1551,  1552,  1553,  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,
-    1607,  1607,  1616,  1616,  1625,  1625,  1634,  1634,  1643,  1643,
-    1654,  1660,  1666,  1672,  1672,  1680,  1681,  1682,  1683,  1686,
-    1692,  1700,  1700,  1712,  1713,  1717,  1718,  1719,  1724,  1724,
-    1732,  1733,  1734,  1739,  1740,  1741,  1742,  1743,  1744,  1745,
-    1746,  1747,  1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,
-    1756,  1757,  1758,  1759,  1760,  1761,  1762,  1763,  1764,  1765,
-    1766,  1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,
-    1776,  1777,  1778,  1779,  1780,  1781,  1788,  1788,  1802,  1802,
-    1811,  1812,  1815,  1816,  1817,  1824,  1824,  1839,  1839,  1853,
-    1854,  1857,  1858,  1859,  1864,  1865,  1866,  1867,  1868,  1869,
-    1870,  1871,  1872,  1873,  1876,  1878,  1884,  1886,  1886,  1895,
-    1895,  1904,  1904,  1913,  1915,  1915,  1924,  1934,  1934,  1947,
-    1948,  1953,  1954,  1955,  1962,  1962,  1974,  1974,  1986,  1987,
-    1992,  1993,  1994,  2001,  2002,  2003,  2004,  2005,  2006,  2007,
-    2008,  2009,  2010,  2013,  2015,  2015,  2024,  2026,  2028,  2034,
-    2040,  2049,  2049,  2062,  2063,  2066,  2067,  2068,  2073,  2073,
-    2083,  2083,  2093,  2094,  2095,  2100,  2101,  2102,  2103,  2104,
-    2105,  2106,  2109,  2109,  2118,  2118,  2143,  2143,  2173,  2173,
-    2186,  2187,  2190,  2191,  2192,  2197,  2197,  2209,  2209,  2221,
-    2222,  2223,  2228,  2229,  2230,  2231,  2232,  2233,  2234,  2235,
-    2236,  2237,  2238,  2241,  2241,  2250,  2256,  2256,  2265,  2271,
-    2280,  2280,  2291,  2292,  2295,  2296,  2297,  2302,  2302,  2311,
-    2311,  2320,  2321,  2324,  2325,  2326,  2332,  2333,  2334,  2335,
-    2336,  2337,  2338,  2339,  2340,  2341,  2342,  2345,  2345,  2356,
-    2356,  2367,  2367,  2376,  2376,  2385,  2385,  2394,  2394,  2403,
-    2403,  2417,  2417,  2428,  2429,  2432,  2432,  2444,  2444,  2455,
-    2456,  2457,  2462,  2462,  2472,  2473,  2476,  2477,  2478,  2483,
-    2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,  2492,  2493,
-    2494,  2495,  2496,  2499,  2501,  2501,  2510,  2510,  2519,  2528,
-    2528,  2541,  2542,  2543,  2548,  2549,  2550,  2551,  2552,  2553,
-    2554,  2555,  2556,  2559,  2559,  2567,  2568,  2569,  2572,  2578,
-    2578,  2587,  2593,  2601,  2609,  2609,  2620,  2621,  2622,  2627,
-    2628,  2629,  2630,  2631,  2634,  2634,  2643,  2643,  2655,  2655,
-    2668,  2669,  2670,  2675,  2676,  2677,  2678,  2679,  2680,  2683,
-    2689,  2689,  2698,  2704,  2704,  2714,  2714,  2727,  2727,  2737,
-    2738,  2739,  2744,  2745,  2746,  2747,  2748,  2749,  2750,  2751,
-    2752,  2753,  2754,  2755,  2756,  2757,  2758,  2759,  2760,  2761,
-    2764,  2771,  2771,  2780,  2780,  2789,  2795,  2795,  2804,  2810,
-    2816,  2816,  2825,  2826,  2829,  2829,  2839,  2846,  2853,  2853,
-    2862,  2862,  2872,  2872,  2882,  2882,  2894,  2894,  2906,  2906,
-    2916,  2917,  2918,  2924,  2925,  2928,  2928,  2939,  2947,  2947,
-    2960,  2961,  2962,  2968,  2968,  2976,  2977,  2978,  2983,  2984,
-    2985,  2986,  2987,  2988,  2989,  2992,  2998,  2998,  3007,  3007,
-    3018,  3019,  3020,  3025,  3025,  3033,  3034,  3035,  3040,  3041,
-    3042,  3043,  3044,  3047,  3047,  3056,  3062,  3068,  3074,  3074,
-    3083,  3083,  3094,  3095,  3096,  3101,  3102,  3105
+       0,   317,   317,   317,   318,   318,   319,   319,   320,   320,
+     321,   321,   322,   322,   323,   323,   324,   324,   325,   325,
+     326,   326,   327,   327,   328,   328,   329,   329,   330,   330,
+     338,   339,   340,   341,   342,   343,   344,   347,   352,   352,
+     363,   366,   367,   370,   375,   381,   386,   386,   393,   394,
+     397,   401,   405,   411,   411,   418,   419,   422,   426,   430,
+     440,   449,   449,   464,   464,   478,   481,   487,   487,   496,
+     497,   498,   505,   506,   507,   508,   509,   510,   511,   512,
+     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
+     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
+     533,   534,   535,   536,   537,   538,   539,   540,   541,   542,
+     543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
+     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
+     575,   575,   584,   590,   596,   602,   608,   614,   620,   626,
+     632,   638,   644,   650,   656,   662,   668,   674,   680,   686,
+     686,   695,   698,   701,   704,   707,   713,   713,   722,   722,
+     731,   737,   743,   749,   749,   758,   758,   767,   773,   779,
+     785,   785,   794,   800,   800,   809,   809,   818,   824,   830,
+     836,   836,   848,   848,   857,   858,   859,   864,   865,   866,
+     867,   868,   869,   870,   871,   874,   874,   885,   891,   897,
+     903,   909,   909,   922,   922,   935,   935,   946,   947,   950,
+     951,   952,   957,   957,   967,   968,   969,   974,   975,   976,
+     977,   978,   979,   980,   981,   982,   983,   984,   985,   986,
+     987,   988,   989,   990,   991,   992,   993,   994,   995,   998,
+     998,  1006,  1007,  1008,  1011,  1011,  1020,  1020,  1029,  1029,
+    1038,  1044,  1044,  1053,  1059,  1065,  1071,  1077,  1083,  1089,
+    1096,  1102,  1102,  1110,  1111,  1112,  1115,  1121,  1127,  1127,
+    1136,  1136,  1145,  1145,  1154,  1154,  1163,  1163,  1174,  1175,
+    1176,  1181,  1182,  1185,  1185,  1204,  1204,  1222,  1222,  1233,
+    1234,  1235,  1240,  1241,  1244,  1249,  1254,  1254,  1265,  1266,
+    1267,  1272,  1273,  1274,  1277,  1282,  1289,  1289,  1302,  1302,
+    1315,  1316,  1317,  1322,  1323,  1324,  1325,  1326,  1327,  1330,
+    1336,  1342,  1348,  1348,  1359,  1360,  1363,  1364,  1365,  1370,
+    1370,  1380,  1380,  1390,  1391,  1392,  1395,  1398,  1399,  1402,
+    1402,  1411,  1411,  1420,  1420,  1432,  1433,  1434,  1439,  1440,
+    1441,  1442,  1443,  1444,  1447,  1453,  1459,  1465,  1471,  1477,
+    1486,  1486,  1500,  1501,  1504,  1505,  1506,  1515,  1515,  1541,
+    1541,  1552,  1553,  1554,  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,
+    1608,  1608,  1617,  1617,  1626,  1626,  1635,  1635,  1644,  1644,
+    1655,  1661,  1667,  1673,  1673,  1681,  1682,  1683,  1684,  1687,
+    1693,  1701,  1701,  1713,  1714,  1718,  1719,  1720,  1725,  1725,
+    1733,  1734,  1735,  1740,  1741,  1742,  1743,  1744,  1745,  1746,
+    1747,  1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,  1756,
+    1757,  1758,  1759,  1760,  1761,  1762,  1763,  1764,  1765,  1766,
+    1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,  1776,
+    1777,  1778,  1779,  1780,  1781,  1782,  1789,  1789,  1803,  1803,
+    1812,  1813,  1816,  1817,  1818,  1825,  1825,  1840,  1840,  1854,
+    1855,  1858,  1859,  1860,  1865,  1866,  1867,  1868,  1869,  1870,
+    1871,  1872,  1873,  1874,  1877,  1879,  1885,  1887,  1887,  1896,
+    1896,  1905,  1905,  1914,  1916,  1916,  1925,  1935,  1935,  1948,
+    1949,  1954,  1955,  1956,  1963,  1963,  1975,  1975,  1987,  1988,
+    1993,  1994,  1995,  2002,  2003,  2004,  2005,  2006,  2007,  2008,
+    2009,  2010,  2011,  2014,  2016,  2016,  2025,  2027,  2029,  2035,
+    2041,  2050,  2050,  2063,  2064,  2067,  2068,  2069,  2074,  2074,
+    2084,  2084,  2094,  2095,  2096,  2101,  2102,  2103,  2104,  2105,
+    2106,  2107,  2110,  2110,  2119,  2119,  2144,  2144,  2174,  2174,
+    2187,  2188,  2191,  2192,  2193,  2198,  2198,  2210,  2210,  2222,
+    2223,  2224,  2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,
+    2237,  2238,  2239,  2242,  2242,  2251,  2257,  2257,  2266,  2272,
+    2281,  2281,  2292,  2293,  2296,  2297,  2298,  2303,  2303,  2312,
+    2312,  2321,  2322,  2325,  2326,  2327,  2333,  2334,  2335,  2336,
+    2337,  2338,  2339,  2340,  2341,  2342,  2343,  2346,  2346,  2357,
+    2357,  2368,  2368,  2377,  2377,  2386,  2386,  2395,  2395,  2404,
+    2404,  2418,  2418,  2429,  2430,  2433,  2433,  2445,  2445,  2456,
+    2457,  2458,  2463,  2463,  2473,  2474,  2477,  2478,  2479,  2484,
+    2485,  2486,  2487,  2488,  2489,  2490,  2491,  2492,  2493,  2494,
+    2495,  2496,  2497,  2500,  2502,  2502,  2511,  2511,  2520,  2529,
+    2529,  2542,  2543,  2544,  2549,  2550,  2551,  2552,  2553,  2554,
+    2555,  2556,  2557,  2560,  2560,  2568,  2569,  2570,  2573,  2579,
+    2579,  2588,  2594,  2602,  2610,  2610,  2621,  2622,  2623,  2628,
+    2629,  2630,  2631,  2632,  2635,  2635,  2644,  2644,  2656,  2656,
+    2669,  2670,  2671,  2676,  2677,  2678,  2679,  2680,  2681,  2684,
+    2690,  2690,  2699,  2705,  2705,  2715,  2715,  2728,  2728,  2738,
+    2739,  2740,  2745,  2746,  2747,  2748,  2749,  2750,  2751,  2752,
+    2753,  2754,  2755,  2756,  2757,  2758,  2759,  2760,  2761,  2762,
+    2765,  2772,  2772,  2781,  2781,  2790,  2796,  2796,  2805,  2811,
+    2817,  2817,  2826,  2827,  2830,  2830,  2840,  2847,  2854,  2854,
+    2863,  2863,  2873,  2873,  2883,  2883,  2895,  2895,  2907,  2907,
+    2917,  2918,  2919,  2925,  2926,  2929,  2929,  2940,  2948,  2948,
+    2961,  2962,  2963,  2969,  2969,  2977,  2978,  2979,  2984,  2985,
+    2986,  2987,  2988,  2989,  2990,  2993,  2999,  2999,  3008,  3008,
+    3019,  3020,  3021,  3026,  3026,  3034,  3035,  3036,  3041,  3042,
+    3043,  3044,  3045,  3048,  3048,  3057,  3063,  3069,  3075,  3075,
+    3084,  3084,  3095,  3096,  3097,  3102,  3103,  3106
   };
 
   void
@@ -6529,7 +6529,7 @@ namespace isc { namespace dhcp {
 } } // isc::dhcp
 #line 6531 "dhcp6_parser.cc"
 
-#line 3111 "dhcp6_parser.yy"
+#line 3112 "dhcp6_parser.yy"
 
 
 void
index 64204cf068f69b3697f134b49f6ca66379c099a9..f4e7588e4c0fa1991ea1210227984f48bd579e44 100644 (file)
@@ -624,100 +624,101 @@ namespace isc { namespace dhcp {
     TOKEN_TEMPLATE_TEST = 381,     // "template-test"
     TOKEN_ONLY_IF_REQUIRED = 382,  // "only-if-required"
     TOKEN_CLIENT_CLASS = 383,      // "client-class"
-    TOKEN_RESERVATIONS = 384,      // "reservations"
-    TOKEN_IP_ADDRESSES = 385,      // "ip-addresses"
-    TOKEN_PREFIXES = 386,          // "prefixes"
-    TOKEN_DUID = 387,              // "duid"
-    TOKEN_HW_ADDRESS = 388,        // "hw-address"
-    TOKEN_HOSTNAME = 389,          // "hostname"
-    TOKEN_FLEX_ID = 390,           // "flex-id"
-    TOKEN_RELAY = 391,             // "relay"
-    TOKEN_IP_ADDRESS = 392,        // "ip-address"
-    TOKEN_HOOKS_LIBRARIES = 393,   // "hooks-libraries"
-    TOKEN_LIBRARY = 394,           // "library"
-    TOKEN_PARAMETERS = 395,        // "parameters"
-    TOKEN_EXPIRED_LEASES_PROCESSING = 396, // "expired-leases-processing"
-    TOKEN_RECLAIM_TIMER_WAIT_TIME = 397, // "reclaim-timer-wait-time"
-    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 398, // "flush-reclaimed-timer-wait-time"
-    TOKEN_HOLD_RECLAIMED_TIME = 399, // "hold-reclaimed-time"
-    TOKEN_MAX_RECLAIM_LEASES = 400, // "max-reclaim-leases"
-    TOKEN_MAX_RECLAIM_TIME = 401,  // "max-reclaim-time"
-    TOKEN_UNWARNED_RECLAIM_CYCLES = 402, // "unwarned-reclaim-cycles"
-    TOKEN_SERVER_ID = 403,         // "server-id"
-    TOKEN_LLT = 404,               // "LLT"
-    TOKEN_EN = 405,                // "EN"
-    TOKEN_LL = 406,                // "LL"
-    TOKEN_IDENTIFIER = 407,        // "identifier"
-    TOKEN_HTYPE = 408,             // "htype"
-    TOKEN_TIME = 409,              // "time"
-    TOKEN_ENTERPRISE_ID = 410,     // "enterprise-id"
-    TOKEN_DHCP4O6_PORT = 411,      // "dhcp4o6-port"
-    TOKEN_DHCP_MULTI_THREADING = 412, // "multi-threading"
-    TOKEN_ENABLE_MULTI_THREADING = 413, // "enable-multi-threading"
-    TOKEN_THREAD_POOL_SIZE = 414,  // "thread-pool-size"
-    TOKEN_PACKET_QUEUE_SIZE = 415, // "packet-queue-size"
-    TOKEN_CONTROL_SOCKET = 416,    // "control-socket"
-    TOKEN_SOCKET_TYPE = 417,       // "socket-type"
-    TOKEN_SOCKET_NAME = 418,       // "socket-name"
-    TOKEN_DHCP_QUEUE_CONTROL = 419, // "dhcp-queue-control"
-    TOKEN_ENABLE_QUEUE = 420,      // "enable-queue"
-    TOKEN_QUEUE_TYPE = 421,        // "queue-type"
-    TOKEN_CAPACITY = 422,          // "capacity"
-    TOKEN_DHCP_DDNS = 423,         // "dhcp-ddns"
-    TOKEN_ENABLE_UPDATES = 424,    // "enable-updates"
-    TOKEN_QUALIFYING_SUFFIX = 425, // "qualifying-suffix"
-    TOKEN_SERVER_IP = 426,         // "server-ip"
-    TOKEN_SERVER_PORT = 427,       // "server-port"
-    TOKEN_SENDER_IP = 428,         // "sender-ip"
-    TOKEN_SENDER_PORT = 429,       // "sender-port"
-    TOKEN_MAX_QUEUE_SIZE = 430,    // "max-queue-size"
-    TOKEN_NCR_PROTOCOL = 431,      // "ncr-protocol"
-    TOKEN_NCR_FORMAT = 432,        // "ncr-format"
-    TOKEN_OVERRIDE_NO_UPDATE = 433, // "override-no-update"
-    TOKEN_OVERRIDE_CLIENT_UPDATE = 434, // "override-client-update"
-    TOKEN_REPLACE_CLIENT_NAME = 435, // "replace-client-name"
-    TOKEN_GENERATED_PREFIX = 436,  // "generated-prefix"
-    TOKEN_UDP = 437,               // "UDP"
-    TOKEN_TCP = 438,               // "TCP"
-    TOKEN_JSON = 439,              // "JSON"
-    TOKEN_WHEN_PRESENT = 440,      // "when-present"
-    TOKEN_NEVER = 441,             // "never"
-    TOKEN_ALWAYS = 442,            // "always"
-    TOKEN_WHEN_NOT_PRESENT = 443,  // "when-not-present"
-    TOKEN_HOSTNAME_CHAR_SET = 444, // "hostname-char-set"
-    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 445, // "hostname-char-replacement"
-    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 446, // "early-global-reservations-lookup"
-    TOKEN_IP_RESERVATIONS_UNIQUE = 447, // "ip-reservations-unique"
-    TOKEN_RESERVATIONS_LOOKUP_FIRST = 448, // "reservations-lookup-first"
-    TOKEN_LOGGERS = 449,           // "loggers"
-    TOKEN_OUTPUT_OPTIONS = 450,    // "output_options"
-    TOKEN_OUTPUT = 451,            // "output"
-    TOKEN_DEBUGLEVEL = 452,        // "debuglevel"
-    TOKEN_SEVERITY = 453,          // "severity"
-    TOKEN_FLUSH = 454,             // "flush"
-    TOKEN_MAXSIZE = 455,           // "maxsize"
-    TOKEN_MAXVER = 456,            // "maxver"
-    TOKEN_PATTERN = 457,           // "pattern"
-    TOKEN_COMPATIBILITY = 458,     // "compatibility"
-    TOKEN_LENIENT_OPTION_PARSING = 459, // "lenient-option-parsing"
-    TOKEN_TOPLEVEL_JSON = 460,     // TOPLEVEL_JSON
-    TOKEN_TOPLEVEL_DHCP6 = 461,    // TOPLEVEL_DHCP6
-    TOKEN_SUB_DHCP6 = 462,         // SUB_DHCP6
-    TOKEN_SUB_INTERFACES6 = 463,   // SUB_INTERFACES6
-    TOKEN_SUB_SUBNET6 = 464,       // SUB_SUBNET6
-    TOKEN_SUB_POOL6 = 465,         // SUB_POOL6
-    TOKEN_SUB_PD_POOL = 466,       // SUB_PD_POOL
-    TOKEN_SUB_RESERVATION = 467,   // SUB_RESERVATION
-    TOKEN_SUB_OPTION_DEFS = 468,   // SUB_OPTION_DEFS
-    TOKEN_SUB_OPTION_DEF = 469,    // SUB_OPTION_DEF
-    TOKEN_SUB_OPTION_DATA = 470,   // SUB_OPTION_DATA
-    TOKEN_SUB_HOOKS_LIBRARY = 471, // SUB_HOOKS_LIBRARY
-    TOKEN_SUB_DHCP_DDNS = 472,     // SUB_DHCP_DDNS
-    TOKEN_SUB_CONFIG_CONTROL = 473, // SUB_CONFIG_CONTROL
-    TOKEN_STRING = 474,            // "constant string"
-    TOKEN_INTEGER = 475,           // "integer"
-    TOKEN_FLOAT = 476,             // "floating point"
-    TOKEN_BOOLEAN = 477            // "boolean"
+    TOKEN_POOL_ID = 384,           // "pool-id"
+    TOKEN_RESERVATIONS = 385,      // "reservations"
+    TOKEN_IP_ADDRESSES = 386,      // "ip-addresses"
+    TOKEN_PREFIXES = 387,          // "prefixes"
+    TOKEN_DUID = 388,              // "duid"
+    TOKEN_HW_ADDRESS = 389,        // "hw-address"
+    TOKEN_HOSTNAME = 390,          // "hostname"
+    TOKEN_FLEX_ID = 391,           // "flex-id"
+    TOKEN_RELAY = 392,             // "relay"
+    TOKEN_IP_ADDRESS = 393,        // "ip-address"
+    TOKEN_HOOKS_LIBRARIES = 394,   // "hooks-libraries"
+    TOKEN_LIBRARY = 395,           // "library"
+    TOKEN_PARAMETERS = 396,        // "parameters"
+    TOKEN_EXPIRED_LEASES_PROCESSING = 397, // "expired-leases-processing"
+    TOKEN_RECLAIM_TIMER_WAIT_TIME = 398, // "reclaim-timer-wait-time"
+    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 399, // "flush-reclaimed-timer-wait-time"
+    TOKEN_HOLD_RECLAIMED_TIME = 400, // "hold-reclaimed-time"
+    TOKEN_MAX_RECLAIM_LEASES = 401, // "max-reclaim-leases"
+    TOKEN_MAX_RECLAIM_TIME = 402,  // "max-reclaim-time"
+    TOKEN_UNWARNED_RECLAIM_CYCLES = 403, // "unwarned-reclaim-cycles"
+    TOKEN_SERVER_ID = 404,         // "server-id"
+    TOKEN_LLT = 405,               // "LLT"
+    TOKEN_EN = 406,                // "EN"
+    TOKEN_LL = 407,                // "LL"
+    TOKEN_IDENTIFIER = 408,        // "identifier"
+    TOKEN_HTYPE = 409,             // "htype"
+    TOKEN_TIME = 410,              // "time"
+    TOKEN_ENTERPRISE_ID = 411,     // "enterprise-id"
+    TOKEN_DHCP4O6_PORT = 412,      // "dhcp4o6-port"
+    TOKEN_DHCP_MULTI_THREADING = 413, // "multi-threading"
+    TOKEN_ENABLE_MULTI_THREADING = 414, // "enable-multi-threading"
+    TOKEN_THREAD_POOL_SIZE = 415,  // "thread-pool-size"
+    TOKEN_PACKET_QUEUE_SIZE = 416, // "packet-queue-size"
+    TOKEN_CONTROL_SOCKET = 417,    // "control-socket"
+    TOKEN_SOCKET_TYPE = 418,       // "socket-type"
+    TOKEN_SOCKET_NAME = 419,       // "socket-name"
+    TOKEN_DHCP_QUEUE_CONTROL = 420, // "dhcp-queue-control"
+    TOKEN_ENABLE_QUEUE = 421,      // "enable-queue"
+    TOKEN_QUEUE_TYPE = 422,        // "queue-type"
+    TOKEN_CAPACITY = 423,          // "capacity"
+    TOKEN_DHCP_DDNS = 424,         // "dhcp-ddns"
+    TOKEN_ENABLE_UPDATES = 425,    // "enable-updates"
+    TOKEN_QUALIFYING_SUFFIX = 426, // "qualifying-suffix"
+    TOKEN_SERVER_IP = 427,         // "server-ip"
+    TOKEN_SERVER_PORT = 428,       // "server-port"
+    TOKEN_SENDER_IP = 429,         // "sender-ip"
+    TOKEN_SENDER_PORT = 430,       // "sender-port"
+    TOKEN_MAX_QUEUE_SIZE = 431,    // "max-queue-size"
+    TOKEN_NCR_PROTOCOL = 432,      // "ncr-protocol"
+    TOKEN_NCR_FORMAT = 433,        // "ncr-format"
+    TOKEN_OVERRIDE_NO_UPDATE = 434, // "override-no-update"
+    TOKEN_OVERRIDE_CLIENT_UPDATE = 435, // "override-client-update"
+    TOKEN_REPLACE_CLIENT_NAME = 436, // "replace-client-name"
+    TOKEN_GENERATED_PREFIX = 437,  // "generated-prefix"
+    TOKEN_UDP = 438,               // "UDP"
+    TOKEN_TCP = 439,               // "TCP"
+    TOKEN_JSON = 440,              // "JSON"
+    TOKEN_WHEN_PRESENT = 441,      // "when-present"
+    TOKEN_NEVER = 442,             // "never"
+    TOKEN_ALWAYS = 443,            // "always"
+    TOKEN_WHEN_NOT_PRESENT = 444,  // "when-not-present"
+    TOKEN_HOSTNAME_CHAR_SET = 445, // "hostname-char-set"
+    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 446, // "hostname-char-replacement"
+    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 447, // "early-global-reservations-lookup"
+    TOKEN_IP_RESERVATIONS_UNIQUE = 448, // "ip-reservations-unique"
+    TOKEN_RESERVATIONS_LOOKUP_FIRST = 449, // "reservations-lookup-first"
+    TOKEN_LOGGERS = 450,           // "loggers"
+    TOKEN_OUTPUT_OPTIONS = 451,    // "output_options"
+    TOKEN_OUTPUT = 452,            // "output"
+    TOKEN_DEBUGLEVEL = 453,        // "debuglevel"
+    TOKEN_SEVERITY = 454,          // "severity"
+    TOKEN_FLUSH = 455,             // "flush"
+    TOKEN_MAXSIZE = 456,           // "maxsize"
+    TOKEN_MAXVER = 457,            // "maxver"
+    TOKEN_PATTERN = 458,           // "pattern"
+    TOKEN_COMPATIBILITY = 459,     // "compatibility"
+    TOKEN_LENIENT_OPTION_PARSING = 460, // "lenient-option-parsing"
+    TOKEN_TOPLEVEL_JSON = 461,     // TOPLEVEL_JSON
+    TOKEN_TOPLEVEL_DHCP6 = 462,    // TOPLEVEL_DHCP6
+    TOKEN_SUB_DHCP6 = 463,         // SUB_DHCP6
+    TOKEN_SUB_INTERFACES6 = 464,   // SUB_INTERFACES6
+    TOKEN_SUB_SUBNET6 = 465,       // SUB_SUBNET6
+    TOKEN_SUB_POOL6 = 466,         // SUB_POOL6
+    TOKEN_SUB_PD_POOL = 467,       // SUB_PD_POOL
+    TOKEN_SUB_RESERVATION = 468,   // SUB_RESERVATION
+    TOKEN_SUB_OPTION_DEFS = 469,   // SUB_OPTION_DEFS
+    TOKEN_SUB_OPTION_DEF = 470,    // SUB_OPTION_DEF
+    TOKEN_SUB_OPTION_DATA = 471,   // SUB_OPTION_DATA
+    TOKEN_SUB_HOOKS_LIBRARY = 472, // SUB_HOOKS_LIBRARY
+    TOKEN_SUB_DHCP_DDNS = 473,     // SUB_DHCP_DDNS
+    TOKEN_SUB_CONFIG_CONTROL = 474, // SUB_CONFIG_CONTROL
+    TOKEN_STRING = 475,            // "constant string"
+    TOKEN_INTEGER = 476,           // "integer"
+    TOKEN_FLOAT = 477,             // "floating point"
+    TOKEN_BOOLEAN = 478            // "boolean"
       };
       /// Backward compatibility alias (Bison 3.6).
       typedef token_kind_type yytokentype;
@@ -734,7 +735,7 @@ namespace isc { namespace dhcp {
     {
       enum symbol_kind_type
       {
-        YYNTOKENS = 223, ///< Number of tokens.
+        YYNTOKENS = 224, ///< Number of tokens.
         S_YYEMPTY = -2,
         S_YYEOF = 0,                             // "end of file"
         S_YYerror = 1,                           // error
@@ -865,555 +866,556 @@ namespace isc { namespace dhcp {
         S_TEMPLATE_TEST = 126,                   // "template-test"
         S_ONLY_IF_REQUIRED = 127,                // "only-if-required"
         S_CLIENT_CLASS = 128,                    // "client-class"
-        S_RESERVATIONS = 129,                    // "reservations"
-        S_IP_ADDRESSES = 130,                    // "ip-addresses"
-        S_PREFIXES = 131,                        // "prefixes"
-        S_DUID = 132,                            // "duid"
-        S_HW_ADDRESS = 133,                      // "hw-address"
-        S_HOSTNAME = 134,                        // "hostname"
-        S_FLEX_ID = 135,                         // "flex-id"
-        S_RELAY = 136,                           // "relay"
-        S_IP_ADDRESS = 137,                      // "ip-address"
-        S_HOOKS_LIBRARIES = 138,                 // "hooks-libraries"
-        S_LIBRARY = 139,                         // "library"
-        S_PARAMETERS = 140,                      // "parameters"
-        S_EXPIRED_LEASES_PROCESSING = 141,       // "expired-leases-processing"
-        S_RECLAIM_TIMER_WAIT_TIME = 142,         // "reclaim-timer-wait-time"
-        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 143, // "flush-reclaimed-timer-wait-time"
-        S_HOLD_RECLAIMED_TIME = 144,             // "hold-reclaimed-time"
-        S_MAX_RECLAIM_LEASES = 145,              // "max-reclaim-leases"
-        S_MAX_RECLAIM_TIME = 146,                // "max-reclaim-time"
-        S_UNWARNED_RECLAIM_CYCLES = 147,         // "unwarned-reclaim-cycles"
-        S_SERVER_ID = 148,                       // "server-id"
-        S_LLT = 149,                             // "LLT"
-        S_EN = 150,                              // "EN"
-        S_LL = 151,                              // "LL"
-        S_IDENTIFIER = 152,                      // "identifier"
-        S_HTYPE = 153,                           // "htype"
-        S_TIME = 154,                            // "time"
-        S_ENTERPRISE_ID = 155,                   // "enterprise-id"
-        S_DHCP4O6_PORT = 156,                    // "dhcp4o6-port"
-        S_DHCP_MULTI_THREADING = 157,            // "multi-threading"
-        S_ENABLE_MULTI_THREADING = 158,          // "enable-multi-threading"
-        S_THREAD_POOL_SIZE = 159,                // "thread-pool-size"
-        S_PACKET_QUEUE_SIZE = 160,               // "packet-queue-size"
-        S_CONTROL_SOCKET = 161,                  // "control-socket"
-        S_SOCKET_TYPE = 162,                     // "socket-type"
-        S_SOCKET_NAME = 163,                     // "socket-name"
-        S_DHCP_QUEUE_CONTROL = 164,              // "dhcp-queue-control"
-        S_ENABLE_QUEUE = 165,                    // "enable-queue"
-        S_QUEUE_TYPE = 166,                      // "queue-type"
-        S_CAPACITY = 167,                        // "capacity"
-        S_DHCP_DDNS = 168,                       // "dhcp-ddns"
-        S_ENABLE_UPDATES = 169,                  // "enable-updates"
-        S_QUALIFYING_SUFFIX = 170,               // "qualifying-suffix"
-        S_SERVER_IP = 171,                       // "server-ip"
-        S_SERVER_PORT = 172,                     // "server-port"
-        S_SENDER_IP = 173,                       // "sender-ip"
-        S_SENDER_PORT = 174,                     // "sender-port"
-        S_MAX_QUEUE_SIZE = 175,                  // "max-queue-size"
-        S_NCR_PROTOCOL = 176,                    // "ncr-protocol"
-        S_NCR_FORMAT = 177,                      // "ncr-format"
-        S_OVERRIDE_NO_UPDATE = 178,              // "override-no-update"
-        S_OVERRIDE_CLIENT_UPDATE = 179,          // "override-client-update"
-        S_REPLACE_CLIENT_NAME = 180,             // "replace-client-name"
-        S_GENERATED_PREFIX = 181,                // "generated-prefix"
-        S_UDP = 182,                             // "UDP"
-        S_TCP = 183,                             // "TCP"
-        S_JSON = 184,                            // "JSON"
-        S_WHEN_PRESENT = 185,                    // "when-present"
-        S_NEVER = 186,                           // "never"
-        S_ALWAYS = 187,                          // "always"
-        S_WHEN_NOT_PRESENT = 188,                // "when-not-present"
-        S_HOSTNAME_CHAR_SET = 189,               // "hostname-char-set"
-        S_HOSTNAME_CHAR_REPLACEMENT = 190,       // "hostname-char-replacement"
-        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 191, // "early-global-reservations-lookup"
-        S_IP_RESERVATIONS_UNIQUE = 192,          // "ip-reservations-unique"
-        S_RESERVATIONS_LOOKUP_FIRST = 193,       // "reservations-lookup-first"
-        S_LOGGERS = 194,                         // "loggers"
-        S_OUTPUT_OPTIONS = 195,                  // "output_options"
-        S_OUTPUT = 196,                          // "output"
-        S_DEBUGLEVEL = 197,                      // "debuglevel"
-        S_SEVERITY = 198,                        // "severity"
-        S_FLUSH = 199,                           // "flush"
-        S_MAXSIZE = 200,                         // "maxsize"
-        S_MAXVER = 201,                          // "maxver"
-        S_PATTERN = 202,                         // "pattern"
-        S_COMPATIBILITY = 203,                   // "compatibility"
-        S_LENIENT_OPTION_PARSING = 204,          // "lenient-option-parsing"
-        S_TOPLEVEL_JSON = 205,                   // TOPLEVEL_JSON
-        S_TOPLEVEL_DHCP6 = 206,                  // TOPLEVEL_DHCP6
-        S_SUB_DHCP6 = 207,                       // SUB_DHCP6
-        S_SUB_INTERFACES6 = 208,                 // SUB_INTERFACES6
-        S_SUB_SUBNET6 = 209,                     // SUB_SUBNET6
-        S_SUB_POOL6 = 210,                       // SUB_POOL6
-        S_SUB_PD_POOL = 211,                     // SUB_PD_POOL
-        S_SUB_RESERVATION = 212,                 // SUB_RESERVATION
-        S_SUB_OPTION_DEFS = 213,                 // SUB_OPTION_DEFS
-        S_SUB_OPTION_DEF = 214,                  // SUB_OPTION_DEF
-        S_SUB_OPTION_DATA = 215,                 // SUB_OPTION_DATA
-        S_SUB_HOOKS_LIBRARY = 216,               // SUB_HOOKS_LIBRARY
-        S_SUB_DHCP_DDNS = 217,                   // SUB_DHCP_DDNS
-        S_SUB_CONFIG_CONTROL = 218,              // SUB_CONFIG_CONTROL
-        S_STRING = 219,                          // "constant string"
-        S_INTEGER = 220,                         // "integer"
-        S_FLOAT = 221,                           // "floating point"
-        S_BOOLEAN = 222,                         // "boolean"
-        S_YYACCEPT = 223,                        // $accept
-        S_start = 224,                           // start
-        S_225_1 = 225,                           // $@1
-        S_226_2 = 226,                           // $@2
-        S_227_3 = 227,                           // $@3
-        S_228_4 = 228,                           // $@4
-        S_229_5 = 229,                           // $@5
-        S_230_6 = 230,                           // $@6
-        S_231_7 = 231,                           // $@7
-        S_232_8 = 232,                           // $@8
-        S_233_9 = 233,                           // $@9
-        S_234_10 = 234,                          // $@10
-        S_235_11 = 235,                          // $@11
-        S_236_12 = 236,                          // $@12
-        S_237_13 = 237,                          // $@13
-        S_238_14 = 238,                          // $@14
-        S_value = 239,                           // value
-        S_sub_json = 240,                        // sub_json
-        S_map2 = 241,                            // map2
-        S_242_15 = 242,                          // $@15
-        S_map_value = 243,                       // map_value
-        S_map_content = 244,                     // map_content
-        S_not_empty_map = 245,                   // not_empty_map
-        S_list_generic = 246,                    // list_generic
-        S_247_16 = 247,                          // $@16
-        S_list_content = 248,                    // list_content
-        S_not_empty_list = 249,                  // not_empty_list
-        S_list_strings = 250,                    // list_strings
-        S_251_17 = 251,                          // $@17
-        S_list_strings_content = 252,            // list_strings_content
-        S_not_empty_list_strings = 253,          // not_empty_list_strings
-        S_unknown_map_entry = 254,               // unknown_map_entry
-        S_syntax_map = 255,                      // syntax_map
-        S_256_18 = 256,                          // $@18
-        S_global_object = 257,                   // global_object
-        S_258_19 = 258,                          // $@19
-        S_global_object_comma = 259,             // global_object_comma
-        S_sub_dhcp6 = 260,                       // sub_dhcp6
-        S_261_20 = 261,                          // $@20
-        S_global_params = 262,                   // global_params
-        S_global_param = 263,                    // global_param
-        S_data_directory = 264,                  // data_directory
-        S_265_21 = 265,                          // $@21
-        S_preferred_lifetime = 266,              // preferred_lifetime
-        S_min_preferred_lifetime = 267,          // min_preferred_lifetime
-        S_max_preferred_lifetime = 268,          // max_preferred_lifetime
-        S_valid_lifetime = 269,                  // valid_lifetime
-        S_min_valid_lifetime = 270,              // min_valid_lifetime
-        S_max_valid_lifetime = 271,              // max_valid_lifetime
-        S_renew_timer = 272,                     // renew_timer
-        S_rebind_timer = 273,                    // rebind_timer
-        S_calculate_tee_times = 274,             // calculate_tee_times
-        S_t1_percent = 275,                      // t1_percent
-        S_t2_percent = 276,                      // t2_percent
-        S_cache_threshold = 277,                 // cache_threshold
-        S_cache_max_age = 278,                   // cache_max_age
-        S_decline_probation_period = 279,        // decline_probation_period
-        S_ddns_send_updates = 280,               // ddns_send_updates
-        S_ddns_override_no_update = 281,         // ddns_override_no_update
-        S_ddns_override_client_update = 282,     // ddns_override_client_update
-        S_ddns_replace_client_name = 283,        // ddns_replace_client_name
-        S_284_22 = 284,                          // $@22
-        S_ddns_replace_client_name_value = 285,  // ddns_replace_client_name_value
-        S_ddns_generated_prefix = 286,           // ddns_generated_prefix
-        S_287_23 = 287,                          // $@23
-        S_ddns_qualifying_suffix = 288,          // ddns_qualifying_suffix
-        S_289_24 = 289,                          // $@24
-        S_ddns_update_on_renew = 290,            // ddns_update_on_renew
-        S_ddns_use_conflict_resolution = 291,    // ddns_use_conflict_resolution
-        S_ddns_ttl_percent = 292,                // ddns_ttl_percent
-        S_hostname_char_set = 293,               // hostname_char_set
-        S_294_25 = 294,                          // $@25
-        S_hostname_char_replacement = 295,       // hostname_char_replacement
-        S_296_26 = 296,                          // $@26
-        S_store_extended_info = 297,             // store_extended_info
-        S_statistic_default_sample_count = 298,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 299,    // statistic_default_sample_age
-        S_server_tag = 300,                      // server_tag
-        S_301_27 = 301,                          // $@27
-        S_parked_packet_limit = 302,             // parked_packet_limit
-        S_allocator = 303,                       // allocator
-        S_304_28 = 304,                          // $@28
-        S_pd_allocator = 305,                    // pd_allocator
-        S_306_29 = 306,                          // $@29
-        S_early_global_reservations_lookup = 307, // early_global_reservations_lookup
-        S_ip_reservations_unique = 308,          // ip_reservations_unique
-        S_reservations_lookup_first = 309,       // reservations_lookup_first
-        S_interfaces_config = 310,               // interfaces_config
-        S_311_30 = 311,                          // $@30
-        S_sub_interfaces6 = 312,                 // sub_interfaces6
-        S_313_31 = 313,                          // $@31
-        S_interfaces_config_params = 314,        // interfaces_config_params
-        S_interfaces_config_param = 315,         // interfaces_config_param
-        S_interfaces_list = 316,                 // interfaces_list
-        S_317_32 = 317,                          // $@32
-        S_re_detect = 318,                       // re_detect
-        S_service_sockets_require_all = 319,     // service_sockets_require_all
-        S_service_sockets_retry_wait_time = 320, // service_sockets_retry_wait_time
-        S_service_sockets_max_retries = 321,     // service_sockets_max_retries
-        S_lease_database = 322,                  // lease_database
-        S_323_33 = 323,                          // $@33
-        S_hosts_database = 324,                  // hosts_database
-        S_325_34 = 325,                          // $@34
-        S_hosts_databases = 326,                 // hosts_databases
-        S_327_35 = 327,                          // $@35
-        S_database_list = 328,                   // database_list
-        S_not_empty_database_list = 329,         // not_empty_database_list
-        S_database = 330,                        // database
-        S_331_36 = 331,                          // $@36
-        S_database_map_params = 332,             // database_map_params
-        S_database_map_param = 333,              // database_map_param
-        S_database_type = 334,                   // database_type
-        S_335_37 = 335,                          // $@37
-        S_db_type = 336,                         // db_type
-        S_user = 337,                            // user
-        S_338_38 = 338,                          // $@38
-        S_password = 339,                        // password
-        S_340_39 = 340,                          // $@39
-        S_host = 341,                            // host
-        S_342_40 = 342,                          // $@40
-        S_port = 343,                            // port
-        S_name = 344,                            // name
-        S_345_41 = 345,                          // $@41
-        S_persist = 346,                         // persist
-        S_lfc_interval = 347,                    // lfc_interval
-        S_readonly = 348,                        // readonly
-        S_connect_timeout = 349,                 // connect_timeout
-        S_read_timeout = 350,                    // read_timeout
-        S_write_timeout = 351,                   // write_timeout
-        S_tcp_user_timeout = 352,                // tcp_user_timeout
-        S_reconnect_wait_time = 353,             // reconnect_wait_time
-        S_on_fail = 354,                         // on_fail
-        S_355_42 = 355,                          // $@42
-        S_on_fail_mode = 356,                    // on_fail_mode
-        S_max_row_errors = 357,                  // max_row_errors
-        S_max_reconnect_tries = 358,             // max_reconnect_tries
-        S_trust_anchor = 359,                    // trust_anchor
-        S_360_43 = 360,                          // $@43
-        S_cert_file = 361,                       // cert_file
-        S_362_44 = 362,                          // $@44
-        S_key_file = 363,                        // key_file
-        S_364_45 = 364,                          // $@45
-        S_cipher_list = 365,                     // cipher_list
-        S_366_46 = 366,                          // $@46
-        S_sanity_checks = 367,                   // sanity_checks
-        S_368_47 = 368,                          // $@47
-        S_sanity_checks_params = 369,            // sanity_checks_params
-        S_sanity_checks_param = 370,             // sanity_checks_param
-        S_lease_checks = 371,                    // lease_checks
-        S_372_48 = 372,                          // $@48
-        S_extended_info_checks = 373,            // extended_info_checks
-        S_374_49 = 374,                          // $@49
-        S_mac_sources = 375,                     // mac_sources
-        S_376_50 = 376,                          // $@50
-        S_mac_sources_list = 377,                // mac_sources_list
-        S_mac_sources_value = 378,               // mac_sources_value
-        S_duid_id = 379,                         // duid_id
-        S_string_id = 380,                       // string_id
-        S_host_reservation_identifiers = 381,    // host_reservation_identifiers
-        S_382_51 = 382,                          // $@51
-        S_host_reservation_identifiers_list = 383, // host_reservation_identifiers_list
-        S_host_reservation_identifier = 384,     // host_reservation_identifier
-        S_hw_address_id = 385,                   // hw_address_id
-        S_flex_id = 386,                         // flex_id
-        S_relay_supplied_options = 387,          // relay_supplied_options
-        S_388_52 = 388,                          // $@52
-        S_dhcp_multi_threading = 389,            // dhcp_multi_threading
-        S_390_53 = 390,                          // $@53
-        S_multi_threading_params = 391,          // multi_threading_params
-        S_multi_threading_param = 392,           // multi_threading_param
-        S_enable_multi_threading = 393,          // enable_multi_threading
-        S_thread_pool_size = 394,                // thread_pool_size
-        S_packet_queue_size = 395,               // packet_queue_size
-        S_hooks_libraries = 396,                 // hooks_libraries
-        S_397_54 = 397,                          // $@54
-        S_hooks_libraries_list = 398,            // hooks_libraries_list
-        S_not_empty_hooks_libraries_list = 399,  // not_empty_hooks_libraries_list
-        S_hooks_library = 400,                   // hooks_library
-        S_401_55 = 401,                          // $@55
-        S_sub_hooks_library = 402,               // sub_hooks_library
-        S_403_56 = 403,                          // $@56
-        S_hooks_params = 404,                    // hooks_params
-        S_hooks_param = 405,                     // hooks_param
-        S_library = 406,                         // library
-        S_407_57 = 407,                          // $@57
-        S_parameters = 408,                      // parameters
-        S_409_58 = 409,                          // $@58
-        S_expired_leases_processing = 410,       // expired_leases_processing
-        S_411_59 = 411,                          // $@59
-        S_expired_leases_params = 412,           // expired_leases_params
-        S_expired_leases_param = 413,            // expired_leases_param
-        S_reclaim_timer_wait_time = 414,         // reclaim_timer_wait_time
-        S_flush_reclaimed_timer_wait_time = 415, // flush_reclaimed_timer_wait_time
-        S_hold_reclaimed_time = 416,             // hold_reclaimed_time
-        S_max_reclaim_leases = 417,              // max_reclaim_leases
-        S_max_reclaim_time = 418,                // max_reclaim_time
-        S_unwarned_reclaim_cycles = 419,         // unwarned_reclaim_cycles
-        S_subnet6_list = 420,                    // subnet6_list
-        S_421_60 = 421,                          // $@60
-        S_subnet6_list_content = 422,            // subnet6_list_content
-        S_not_empty_subnet6_list = 423,          // not_empty_subnet6_list
-        S_subnet6 = 424,                         // subnet6
-        S_425_61 = 425,                          // $@61
-        S_sub_subnet6 = 426,                     // sub_subnet6
-        S_427_62 = 427,                          // $@62
-        S_subnet6_params = 428,                  // subnet6_params
-        S_subnet6_param = 429,                   // subnet6_param
-        S_subnet = 430,                          // subnet
-        S_431_63 = 431,                          // $@63
-        S_interface = 432,                       // interface
-        S_433_64 = 433,                          // $@64
-        S_interface_id = 434,                    // interface_id
-        S_435_65 = 435,                          // $@65
-        S_client_class = 436,                    // client_class
-        S_437_66 = 437,                          // $@66
-        S_require_client_classes = 438,          // require_client_classes
-        S_439_67 = 439,                          // $@67
-        S_reservations_global = 440,             // reservations_global
-        S_reservations_in_subnet = 441,          // reservations_in_subnet
-        S_reservations_out_of_pool = 442,        // reservations_out_of_pool
-        S_reservation_mode = 443,                // reservation_mode
-        S_444_68 = 444,                          // $@68
-        S_hr_mode = 445,                         // hr_mode
-        S_id = 446,                              // id
-        S_rapid_commit = 447,                    // rapid_commit
-        S_shared_networks = 448,                 // shared_networks
-        S_449_69 = 449,                          // $@69
-        S_shared_networks_content = 450,         // shared_networks_content
-        S_shared_networks_list = 451,            // shared_networks_list
-        S_shared_network = 452,                  // shared_network
-        S_453_70 = 453,                          // $@70
-        S_shared_network_params = 454,           // shared_network_params
-        S_shared_network_param = 455,            // shared_network_param
-        S_option_def_list = 456,                 // option_def_list
-        S_457_71 = 457,                          // $@71
-        S_sub_option_def_list = 458,             // sub_option_def_list
-        S_459_72 = 459,                          // $@72
-        S_option_def_list_content = 460,         // option_def_list_content
-        S_not_empty_option_def_list = 461,       // not_empty_option_def_list
-        S_option_def_entry = 462,                // option_def_entry
-        S_463_73 = 463,                          // $@73
-        S_sub_option_def = 464,                  // sub_option_def
-        S_465_74 = 465,                          // $@74
-        S_option_def_params = 466,               // option_def_params
-        S_not_empty_option_def_params = 467,     // not_empty_option_def_params
-        S_option_def_param = 468,                // option_def_param
-        S_option_def_name = 469,                 // option_def_name
-        S_code = 470,                            // code
-        S_option_def_code = 471,                 // option_def_code
-        S_option_def_type = 472,                 // option_def_type
-        S_473_75 = 473,                          // $@75
-        S_option_def_record_types = 474,         // option_def_record_types
-        S_475_76 = 475,                          // $@76
-        S_space = 476,                           // space
-        S_477_77 = 477,                          // $@77
-        S_option_def_space = 478,                // option_def_space
-        S_option_def_encapsulate = 479,          // option_def_encapsulate
-        S_480_78 = 480,                          // $@78
-        S_option_def_array = 481,                // option_def_array
-        S_option_data_list = 482,                // option_data_list
-        S_483_79 = 483,                          // $@79
-        S_option_data_list_content = 484,        // option_data_list_content
-        S_not_empty_option_data_list = 485,      // not_empty_option_data_list
-        S_option_data_entry = 486,               // option_data_entry
-        S_487_80 = 487,                          // $@80
-        S_sub_option_data = 488,                 // sub_option_data
-        S_489_81 = 489,                          // $@81
-        S_option_data_params = 490,              // option_data_params
-        S_not_empty_option_data_params = 491,    // not_empty_option_data_params
-        S_option_data_param = 492,               // option_data_param
-        S_option_data_name = 493,                // option_data_name
-        S_option_data_data = 494,                // option_data_data
-        S_495_82 = 495,                          // $@82
-        S_option_data_code = 496,                // option_data_code
-        S_option_data_space = 497,               // option_data_space
-        S_option_data_csv_format = 498,          // option_data_csv_format
-        S_option_data_always_send = 499,         // option_data_always_send
-        S_option_data_never_send = 500,          // option_data_never_send
-        S_pools_list = 501,                      // pools_list
-        S_502_83 = 502,                          // $@83
-        S_pools_list_content = 503,              // pools_list_content
-        S_not_empty_pools_list = 504,            // not_empty_pools_list
-        S_pool_list_entry = 505,                 // pool_list_entry
-        S_506_84 = 506,                          // $@84
-        S_sub_pool6 = 507,                       // sub_pool6
-        S_508_85 = 508,                          // $@85
-        S_pool_params = 509,                     // pool_params
-        S_pool_param = 510,                      // pool_param
-        S_pool_entry = 511,                      // pool_entry
-        S_512_86 = 512,                          // $@86
-        S_user_context = 513,                    // user_context
-        S_514_87 = 514,                          // $@87
-        S_comment = 515,                         // comment
-        S_516_88 = 516,                          // $@88
-        S_pd_pools_list = 517,                   // pd_pools_list
-        S_518_89 = 518,                          // $@89
-        S_pd_pools_list_content = 519,           // pd_pools_list_content
-        S_not_empty_pd_pools_list = 520,         // not_empty_pd_pools_list
-        S_pd_pool_entry = 521,                   // pd_pool_entry
-        S_522_90 = 522,                          // $@90
-        S_sub_pd_pool = 523,                     // sub_pd_pool
-        S_524_91 = 524,                          // $@91
-        S_pd_pool_params = 525,                  // pd_pool_params
-        S_pd_pool_param = 526,                   // pd_pool_param
-        S_pd_prefix = 527,                       // pd_prefix
-        S_528_92 = 528,                          // $@92
-        S_pd_prefix_len = 529,                   // pd_prefix_len
-        S_excluded_prefix = 530,                 // excluded_prefix
-        S_531_93 = 531,                          // $@93
-        S_excluded_prefix_len = 532,             // excluded_prefix_len
-        S_pd_delegated_len = 533,                // pd_delegated_len
-        S_reservations = 534,                    // reservations
-        S_535_94 = 535,                          // $@94
-        S_reservations_list = 536,               // reservations_list
-        S_not_empty_reservations_list = 537,     // not_empty_reservations_list
-        S_reservation = 538,                     // reservation
-        S_539_95 = 539,                          // $@95
-        S_sub_reservation = 540,                 // sub_reservation
-        S_541_96 = 541,                          // $@96
-        S_reservation_params = 542,              // reservation_params
-        S_not_empty_reservation_params = 543,    // not_empty_reservation_params
-        S_reservation_param = 544,               // reservation_param
-        S_ip_addresses = 545,                    // ip_addresses
-        S_546_97 = 546,                          // $@97
-        S_prefixes = 547,                        // prefixes
-        S_548_98 = 548,                          // $@98
-        S_duid = 549,                            // duid
-        S_550_99 = 550,                          // $@99
-        S_hw_address = 551,                      // hw_address
-        S_552_100 = 552,                         // $@100
-        S_hostname = 553,                        // hostname
-        S_554_101 = 554,                         // $@101
-        S_flex_id_value = 555,                   // flex_id_value
-        S_556_102 = 556,                         // $@102
-        S_reservation_client_classes = 557,      // reservation_client_classes
-        S_558_103 = 558,                         // $@103
-        S_relay = 559,                           // relay
-        S_560_104 = 560,                         // $@104
-        S_relay_map = 561,                       // relay_map
-        S_ip_address = 562,                      // ip_address
-        S_563_105 = 563,                         // $@105
-        S_client_classes = 564,                  // client_classes
-        S_565_106 = 565,                         // $@106
-        S_client_classes_list = 566,             // client_classes_list
-        S_client_class_entry = 567,              // client_class_entry
-        S_568_107 = 568,                         // $@107
-        S_client_class_params = 569,             // client_class_params
-        S_not_empty_client_class_params = 570,   // not_empty_client_class_params
-        S_client_class_param = 571,              // client_class_param
-        S_client_class_name = 572,               // client_class_name
-        S_client_class_test = 573,               // client_class_test
-        S_574_108 = 574,                         // $@108
-        S_client_class_template_test = 575,      // client_class_template_test
-        S_576_109 = 576,                         // $@109
-        S_only_if_required = 577,                // only_if_required
-        S_server_id = 578,                       // server_id
-        S_579_110 = 579,                         // $@110
-        S_server_id_params = 580,                // server_id_params
-        S_server_id_param = 581,                 // server_id_param
-        S_server_id_type = 582,                  // server_id_type
-        S_583_111 = 583,                         // $@111
-        S_duid_type = 584,                       // duid_type
-        S_htype = 585,                           // htype
-        S_identifier = 586,                      // identifier
-        S_587_112 = 587,                         // $@112
-        S_time = 588,                            // time
-        S_enterprise_id = 589,                   // enterprise_id
-        S_dhcp4o6_port = 590,                    // dhcp4o6_port
-        S_control_socket = 591,                  // control_socket
-        S_592_113 = 592,                         // $@113
-        S_control_socket_params = 593,           // control_socket_params
-        S_control_socket_param = 594,            // control_socket_param
-        S_socket_type = 595,                     // socket_type
-        S_596_114 = 596,                         // $@114
-        S_socket_name = 597,                     // socket_name
-        S_598_115 = 598,                         // $@115
-        S_dhcp_queue_control = 599,              // dhcp_queue_control
-        S_600_116 = 600,                         // $@116
-        S_queue_control_params = 601,            // queue_control_params
-        S_queue_control_param = 602,             // queue_control_param
-        S_enable_queue = 603,                    // enable_queue
-        S_queue_type = 604,                      // queue_type
-        S_605_117 = 605,                         // $@117
-        S_capacity = 606,                        // capacity
-        S_arbitrary_map_entry = 607,             // arbitrary_map_entry
-        S_608_118 = 608,                         // $@118
-        S_dhcp_ddns = 609,                       // dhcp_ddns
-        S_610_119 = 610,                         // $@119
-        S_sub_dhcp_ddns = 611,                   // sub_dhcp_ddns
-        S_612_120 = 612,                         // $@120
-        S_dhcp_ddns_params = 613,                // dhcp_ddns_params
-        S_dhcp_ddns_param = 614,                 // dhcp_ddns_param
-        S_enable_updates = 615,                  // enable_updates
-        S_dep_qualifying_suffix = 616,           // dep_qualifying_suffix
-        S_617_121 = 617,                         // $@121
-        S_server_ip = 618,                       // server_ip
-        S_619_122 = 619,                         // $@122
-        S_server_port = 620,                     // server_port
-        S_sender_ip = 621,                       // sender_ip
-        S_622_123 = 622,                         // $@123
-        S_sender_port = 623,                     // sender_port
-        S_max_queue_size = 624,                  // max_queue_size
-        S_ncr_protocol = 625,                    // ncr_protocol
-        S_626_124 = 626,                         // $@124
-        S_ncr_protocol_value = 627,              // ncr_protocol_value
-        S_ncr_format = 628,                      // ncr_format
-        S_629_125 = 629,                         // $@125
-        S_dep_override_no_update = 630,          // dep_override_no_update
-        S_dep_override_client_update = 631,      // dep_override_client_update
-        S_dep_replace_client_name = 632,         // dep_replace_client_name
-        S_633_126 = 633,                         // $@126
-        S_dep_generated_prefix = 634,            // dep_generated_prefix
-        S_635_127 = 635,                         // $@127
-        S_dep_hostname_char_set = 636,           // dep_hostname_char_set
-        S_637_128 = 637,                         // $@128
-        S_dep_hostname_char_replacement = 638,   // dep_hostname_char_replacement
-        S_639_129 = 639,                         // $@129
-        S_config_control = 640,                  // config_control
-        S_641_130 = 641,                         // $@130
-        S_sub_config_control = 642,              // sub_config_control
-        S_643_131 = 643,                         // $@131
-        S_config_control_params = 644,           // config_control_params
-        S_config_control_param = 645,            // config_control_param
-        S_config_databases = 646,                // config_databases
-        S_647_132 = 647,                         // $@132
-        S_config_fetch_wait_time = 648,          // config_fetch_wait_time
-        S_loggers = 649,                         // loggers
-        S_650_133 = 650,                         // $@133
-        S_loggers_entries = 651,                 // loggers_entries
-        S_logger_entry = 652,                    // logger_entry
-        S_653_134 = 653,                         // $@134
-        S_logger_params = 654,                   // logger_params
-        S_logger_param = 655,                    // logger_param
-        S_debuglevel = 656,                      // debuglevel
-        S_severity = 657,                        // severity
-        S_658_135 = 658,                         // $@135
-        S_output_options_list = 659,             // output_options_list
-        S_660_136 = 660,                         // $@136
-        S_output_options_list_content = 661,     // output_options_list_content
-        S_output_entry = 662,                    // output_entry
-        S_663_137 = 663,                         // $@137
-        S_output_params_list = 664,              // output_params_list
-        S_output_params = 665,                   // output_params
-        S_output = 666,                          // output
-        S_667_138 = 667,                         // $@138
-        S_flush = 668,                           // flush
-        S_maxsize = 669,                         // maxsize
-        S_maxver = 670,                          // maxver
-        S_pattern = 671,                         // pattern
-        S_672_139 = 672,                         // $@139
-        S_compatibility = 673,                   // compatibility
-        S_674_140 = 674,                         // $@140
-        S_compatibility_params = 675,            // compatibility_params
-        S_compatibility_param = 676,             // compatibility_param
-        S_lenient_option_parsing = 677           // lenient_option_parsing
+        S_POOL_ID = 129,                         // "pool-id"
+        S_RESERVATIONS = 130,                    // "reservations"
+        S_IP_ADDRESSES = 131,                    // "ip-addresses"
+        S_PREFIXES = 132,                        // "prefixes"
+        S_DUID = 133,                            // "duid"
+        S_HW_ADDRESS = 134,                      // "hw-address"
+        S_HOSTNAME = 135,                        // "hostname"
+        S_FLEX_ID = 136,                         // "flex-id"
+        S_RELAY = 137,                           // "relay"
+        S_IP_ADDRESS = 138,                      // "ip-address"
+        S_HOOKS_LIBRARIES = 139,                 // "hooks-libraries"
+        S_LIBRARY = 140,                         // "library"
+        S_PARAMETERS = 141,                      // "parameters"
+        S_EXPIRED_LEASES_PROCESSING = 142,       // "expired-leases-processing"
+        S_RECLAIM_TIMER_WAIT_TIME = 143,         // "reclaim-timer-wait-time"
+        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 144, // "flush-reclaimed-timer-wait-time"
+        S_HOLD_RECLAIMED_TIME = 145,             // "hold-reclaimed-time"
+        S_MAX_RECLAIM_LEASES = 146,              // "max-reclaim-leases"
+        S_MAX_RECLAIM_TIME = 147,                // "max-reclaim-time"
+        S_UNWARNED_RECLAIM_CYCLES = 148,         // "unwarned-reclaim-cycles"
+        S_SERVER_ID = 149,                       // "server-id"
+        S_LLT = 150,                             // "LLT"
+        S_EN = 151,                              // "EN"
+        S_LL = 152,                              // "LL"
+        S_IDENTIFIER = 153,                      // "identifier"
+        S_HTYPE = 154,                           // "htype"
+        S_TIME = 155,                            // "time"
+        S_ENTERPRISE_ID = 156,                   // "enterprise-id"
+        S_DHCP4O6_PORT = 157,                    // "dhcp4o6-port"
+        S_DHCP_MULTI_THREADING = 158,            // "multi-threading"
+        S_ENABLE_MULTI_THREADING = 159,          // "enable-multi-threading"
+        S_THREAD_POOL_SIZE = 160,                // "thread-pool-size"
+        S_PACKET_QUEUE_SIZE = 161,               // "packet-queue-size"
+        S_CONTROL_SOCKET = 162,                  // "control-socket"
+        S_SOCKET_TYPE = 163,                     // "socket-type"
+        S_SOCKET_NAME = 164,                     // "socket-name"
+        S_DHCP_QUEUE_CONTROL = 165,              // "dhcp-queue-control"
+        S_ENABLE_QUEUE = 166,                    // "enable-queue"
+        S_QUEUE_TYPE = 167,                      // "queue-type"
+        S_CAPACITY = 168,                        // "capacity"
+        S_DHCP_DDNS = 169,                       // "dhcp-ddns"
+        S_ENABLE_UPDATES = 170,                  // "enable-updates"
+        S_QUALIFYING_SUFFIX = 171,               // "qualifying-suffix"
+        S_SERVER_IP = 172,                       // "server-ip"
+        S_SERVER_PORT = 173,                     // "server-port"
+        S_SENDER_IP = 174,                       // "sender-ip"
+        S_SENDER_PORT = 175,                     // "sender-port"
+        S_MAX_QUEUE_SIZE = 176,                  // "max-queue-size"
+        S_NCR_PROTOCOL = 177,                    // "ncr-protocol"
+        S_NCR_FORMAT = 178,                      // "ncr-format"
+        S_OVERRIDE_NO_UPDATE = 179,              // "override-no-update"
+        S_OVERRIDE_CLIENT_UPDATE = 180,          // "override-client-update"
+        S_REPLACE_CLIENT_NAME = 181,             // "replace-client-name"
+        S_GENERATED_PREFIX = 182,                // "generated-prefix"
+        S_UDP = 183,                             // "UDP"
+        S_TCP = 184,                             // "TCP"
+        S_JSON = 185,                            // "JSON"
+        S_WHEN_PRESENT = 186,                    // "when-present"
+        S_NEVER = 187,                           // "never"
+        S_ALWAYS = 188,                          // "always"
+        S_WHEN_NOT_PRESENT = 189,                // "when-not-present"
+        S_HOSTNAME_CHAR_SET = 190,               // "hostname-char-set"
+        S_HOSTNAME_CHAR_REPLACEMENT = 191,       // "hostname-char-replacement"
+        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 192, // "early-global-reservations-lookup"
+        S_IP_RESERVATIONS_UNIQUE = 193,          // "ip-reservations-unique"
+        S_RESERVATIONS_LOOKUP_FIRST = 194,       // "reservations-lookup-first"
+        S_LOGGERS = 195,                         // "loggers"
+        S_OUTPUT_OPTIONS = 196,                  // "output_options"
+        S_OUTPUT = 197,                          // "output"
+        S_DEBUGLEVEL = 198,                      // "debuglevel"
+        S_SEVERITY = 199,                        // "severity"
+        S_FLUSH = 200,                           // "flush"
+        S_MAXSIZE = 201,                         // "maxsize"
+        S_MAXVER = 202,                          // "maxver"
+        S_PATTERN = 203,                         // "pattern"
+        S_COMPATIBILITY = 204,                   // "compatibility"
+        S_LENIENT_OPTION_PARSING = 205,          // "lenient-option-parsing"
+        S_TOPLEVEL_JSON = 206,                   // TOPLEVEL_JSON
+        S_TOPLEVEL_DHCP6 = 207,                  // TOPLEVEL_DHCP6
+        S_SUB_DHCP6 = 208,                       // SUB_DHCP6
+        S_SUB_INTERFACES6 = 209,                 // SUB_INTERFACES6
+        S_SUB_SUBNET6 = 210,                     // SUB_SUBNET6
+        S_SUB_POOL6 = 211,                       // SUB_POOL6
+        S_SUB_PD_POOL = 212,                     // SUB_PD_POOL
+        S_SUB_RESERVATION = 213,                 // SUB_RESERVATION
+        S_SUB_OPTION_DEFS = 214,                 // SUB_OPTION_DEFS
+        S_SUB_OPTION_DEF = 215,                  // SUB_OPTION_DEF
+        S_SUB_OPTION_DATA = 216,                 // SUB_OPTION_DATA
+        S_SUB_HOOKS_LIBRARY = 217,               // SUB_HOOKS_LIBRARY
+        S_SUB_DHCP_DDNS = 218,                   // SUB_DHCP_DDNS
+        S_SUB_CONFIG_CONTROL = 219,              // SUB_CONFIG_CONTROL
+        S_STRING = 220,                          // "constant string"
+        S_INTEGER = 221,                         // "integer"
+        S_FLOAT = 222,                           // "floating point"
+        S_BOOLEAN = 223,                         // "boolean"
+        S_YYACCEPT = 224,                        // $accept
+        S_start = 225,                           // start
+        S_226_1 = 226,                           // $@1
+        S_227_2 = 227,                           // $@2
+        S_228_3 = 228,                           // $@3
+        S_229_4 = 229,                           // $@4
+        S_230_5 = 230,                           // $@5
+        S_231_6 = 231,                           // $@6
+        S_232_7 = 232,                           // $@7
+        S_233_8 = 233,                           // $@8
+        S_234_9 = 234,                           // $@9
+        S_235_10 = 235,                          // $@10
+        S_236_11 = 236,                          // $@11
+        S_237_12 = 237,                          // $@12
+        S_238_13 = 238,                          // $@13
+        S_239_14 = 239,                          // $@14
+        S_value = 240,                           // value
+        S_sub_json = 241,                        // sub_json
+        S_map2 = 242,                            // map2
+        S_243_15 = 243,                          // $@15
+        S_map_value = 244,                       // map_value
+        S_map_content = 245,                     // map_content
+        S_not_empty_map = 246,                   // not_empty_map
+        S_list_generic = 247,                    // list_generic
+        S_248_16 = 248,                          // $@16
+        S_list_content = 249,                    // list_content
+        S_not_empty_list = 250,                  // not_empty_list
+        S_list_strings = 251,                    // list_strings
+        S_252_17 = 252,                          // $@17
+        S_list_strings_content = 253,            // list_strings_content
+        S_not_empty_list_strings = 254,          // not_empty_list_strings
+        S_unknown_map_entry = 255,               // unknown_map_entry
+        S_syntax_map = 256,                      // syntax_map
+        S_257_18 = 257,                          // $@18
+        S_global_object = 258,                   // global_object
+        S_259_19 = 259,                          // $@19
+        S_global_object_comma = 260,             // global_object_comma
+        S_sub_dhcp6 = 261,                       // sub_dhcp6
+        S_262_20 = 262,                          // $@20
+        S_global_params = 263,                   // global_params
+        S_global_param = 264,                    // global_param
+        S_data_directory = 265,                  // data_directory
+        S_266_21 = 266,                          // $@21
+        S_preferred_lifetime = 267,              // preferred_lifetime
+        S_min_preferred_lifetime = 268,          // min_preferred_lifetime
+        S_max_preferred_lifetime = 269,          // max_preferred_lifetime
+        S_valid_lifetime = 270,                  // valid_lifetime
+        S_min_valid_lifetime = 271,              // min_valid_lifetime
+        S_max_valid_lifetime = 272,              // max_valid_lifetime
+        S_renew_timer = 273,                     // renew_timer
+        S_rebind_timer = 274,                    // rebind_timer
+        S_calculate_tee_times = 275,             // calculate_tee_times
+        S_t1_percent = 276,                      // t1_percent
+        S_t2_percent = 277,                      // t2_percent
+        S_cache_threshold = 278,                 // cache_threshold
+        S_cache_max_age = 279,                   // cache_max_age
+        S_decline_probation_period = 280,        // decline_probation_period
+        S_ddns_send_updates = 281,               // ddns_send_updates
+        S_ddns_override_no_update = 282,         // ddns_override_no_update
+        S_ddns_override_client_update = 283,     // ddns_override_client_update
+        S_ddns_replace_client_name = 284,        // ddns_replace_client_name
+        S_285_22 = 285,                          // $@22
+        S_ddns_replace_client_name_value = 286,  // ddns_replace_client_name_value
+        S_ddns_generated_prefix = 287,           // ddns_generated_prefix
+        S_288_23 = 288,                          // $@23
+        S_ddns_qualifying_suffix = 289,          // ddns_qualifying_suffix
+        S_290_24 = 290,                          // $@24
+        S_ddns_update_on_renew = 291,            // ddns_update_on_renew
+        S_ddns_use_conflict_resolution = 292,    // ddns_use_conflict_resolution
+        S_ddns_ttl_percent = 293,                // ddns_ttl_percent
+        S_hostname_char_set = 294,               // hostname_char_set
+        S_295_25 = 295,                          // $@25
+        S_hostname_char_replacement = 296,       // hostname_char_replacement
+        S_297_26 = 297,                          // $@26
+        S_store_extended_info = 298,             // store_extended_info
+        S_statistic_default_sample_count = 299,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 300,    // statistic_default_sample_age
+        S_server_tag = 301,                      // server_tag
+        S_302_27 = 302,                          // $@27
+        S_parked_packet_limit = 303,             // parked_packet_limit
+        S_allocator = 304,                       // allocator
+        S_305_28 = 305,                          // $@28
+        S_pd_allocator = 306,                    // pd_allocator
+        S_307_29 = 307,                          // $@29
+        S_early_global_reservations_lookup = 308, // early_global_reservations_lookup
+        S_ip_reservations_unique = 309,          // ip_reservations_unique
+        S_reservations_lookup_first = 310,       // reservations_lookup_first
+        S_interfaces_config = 311,               // interfaces_config
+        S_312_30 = 312,                          // $@30
+        S_sub_interfaces6 = 313,                 // sub_interfaces6
+        S_314_31 = 314,                          // $@31
+        S_interfaces_config_params = 315,        // interfaces_config_params
+        S_interfaces_config_param = 316,         // interfaces_config_param
+        S_interfaces_list = 317,                 // interfaces_list
+        S_318_32 = 318,                          // $@32
+        S_re_detect = 319,                       // re_detect
+        S_service_sockets_require_all = 320,     // service_sockets_require_all
+        S_service_sockets_retry_wait_time = 321, // service_sockets_retry_wait_time
+        S_service_sockets_max_retries = 322,     // service_sockets_max_retries
+        S_lease_database = 323,                  // lease_database
+        S_324_33 = 324,                          // $@33
+        S_hosts_database = 325,                  // hosts_database
+        S_326_34 = 326,                          // $@34
+        S_hosts_databases = 327,                 // hosts_databases
+        S_328_35 = 328,                          // $@35
+        S_database_list = 329,                   // database_list
+        S_not_empty_database_list = 330,         // not_empty_database_list
+        S_database = 331,                        // database
+        S_332_36 = 332,                          // $@36
+        S_database_map_params = 333,             // database_map_params
+        S_database_map_param = 334,              // database_map_param
+        S_database_type = 335,                   // database_type
+        S_336_37 = 336,                          // $@37
+        S_db_type = 337,                         // db_type
+        S_user = 338,                            // user
+        S_339_38 = 339,                          // $@38
+        S_password = 340,                        // password
+        S_341_39 = 341,                          // $@39
+        S_host = 342,                            // host
+        S_343_40 = 343,                          // $@40
+        S_port = 344,                            // port
+        S_name = 345,                            // name
+        S_346_41 = 346,                          // $@41
+        S_persist = 347,                         // persist
+        S_lfc_interval = 348,                    // lfc_interval
+        S_readonly = 349,                        // readonly
+        S_connect_timeout = 350,                 // connect_timeout
+        S_read_timeout = 351,                    // read_timeout
+        S_write_timeout = 352,                   // write_timeout
+        S_tcp_user_timeout = 353,                // tcp_user_timeout
+        S_reconnect_wait_time = 354,             // reconnect_wait_time
+        S_on_fail = 355,                         // on_fail
+        S_356_42 = 356,                          // $@42
+        S_on_fail_mode = 357,                    // on_fail_mode
+        S_max_row_errors = 358,                  // max_row_errors
+        S_max_reconnect_tries = 359,             // max_reconnect_tries
+        S_trust_anchor = 360,                    // trust_anchor
+        S_361_43 = 361,                          // $@43
+        S_cert_file = 362,                       // cert_file
+        S_363_44 = 363,                          // $@44
+        S_key_file = 364,                        // key_file
+        S_365_45 = 365,                          // $@45
+        S_cipher_list = 366,                     // cipher_list
+        S_367_46 = 367,                          // $@46
+        S_sanity_checks = 368,                   // sanity_checks
+        S_369_47 = 369,                          // $@47
+        S_sanity_checks_params = 370,            // sanity_checks_params
+        S_sanity_checks_param = 371,             // sanity_checks_param
+        S_lease_checks = 372,                    // lease_checks
+        S_373_48 = 373,                          // $@48
+        S_extended_info_checks = 374,            // extended_info_checks
+        S_375_49 = 375,                          // $@49
+        S_mac_sources = 376,                     // mac_sources
+        S_377_50 = 377,                          // $@50
+        S_mac_sources_list = 378,                // mac_sources_list
+        S_mac_sources_value = 379,               // mac_sources_value
+        S_duid_id = 380,                         // duid_id
+        S_string_id = 381,                       // string_id
+        S_host_reservation_identifiers = 382,    // host_reservation_identifiers
+        S_383_51 = 383,                          // $@51
+        S_host_reservation_identifiers_list = 384, // host_reservation_identifiers_list
+        S_host_reservation_identifier = 385,     // host_reservation_identifier
+        S_hw_address_id = 386,                   // hw_address_id
+        S_flex_id = 387,                         // flex_id
+        S_relay_supplied_options = 388,          // relay_supplied_options
+        S_389_52 = 389,                          // $@52
+        S_dhcp_multi_threading = 390,            // dhcp_multi_threading
+        S_391_53 = 391,                          // $@53
+        S_multi_threading_params = 392,          // multi_threading_params
+        S_multi_threading_param = 393,           // multi_threading_param
+        S_enable_multi_threading = 394,          // enable_multi_threading
+        S_thread_pool_size = 395,                // thread_pool_size
+        S_packet_queue_size = 396,               // packet_queue_size
+        S_hooks_libraries = 397,                 // hooks_libraries
+        S_398_54 = 398,                          // $@54
+        S_hooks_libraries_list = 399,            // hooks_libraries_list
+        S_not_empty_hooks_libraries_list = 400,  // not_empty_hooks_libraries_list
+        S_hooks_library = 401,                   // hooks_library
+        S_402_55 = 402,                          // $@55
+        S_sub_hooks_library = 403,               // sub_hooks_library
+        S_404_56 = 404,                          // $@56
+        S_hooks_params = 405,                    // hooks_params
+        S_hooks_param = 406,                     // hooks_param
+        S_library = 407,                         // library
+        S_408_57 = 408,                          // $@57
+        S_parameters = 409,                      // parameters
+        S_410_58 = 410,                          // $@58
+        S_expired_leases_processing = 411,       // expired_leases_processing
+        S_412_59 = 412,                          // $@59
+        S_expired_leases_params = 413,           // expired_leases_params
+        S_expired_leases_param = 414,            // expired_leases_param
+        S_reclaim_timer_wait_time = 415,         // reclaim_timer_wait_time
+        S_flush_reclaimed_timer_wait_time = 416, // flush_reclaimed_timer_wait_time
+        S_hold_reclaimed_time = 417,             // hold_reclaimed_time
+        S_max_reclaim_leases = 418,              // max_reclaim_leases
+        S_max_reclaim_time = 419,                // max_reclaim_time
+        S_unwarned_reclaim_cycles = 420,         // unwarned_reclaim_cycles
+        S_subnet6_list = 421,                    // subnet6_list
+        S_422_60 = 422,                          // $@60
+        S_subnet6_list_content = 423,            // subnet6_list_content
+        S_not_empty_subnet6_list = 424,          // not_empty_subnet6_list
+        S_subnet6 = 425,                         // subnet6
+        S_426_61 = 426,                          // $@61
+        S_sub_subnet6 = 427,                     // sub_subnet6
+        S_428_62 = 428,                          // $@62
+        S_subnet6_params = 429,                  // subnet6_params
+        S_subnet6_param = 430,                   // subnet6_param
+        S_subnet = 431,                          // subnet
+        S_432_63 = 432,                          // $@63
+        S_interface = 433,                       // interface
+        S_434_64 = 434,                          // $@64
+        S_interface_id = 435,                    // interface_id
+        S_436_65 = 436,                          // $@65
+        S_client_class = 437,                    // client_class
+        S_438_66 = 438,                          // $@66
+        S_require_client_classes = 439,          // require_client_classes
+        S_440_67 = 440,                          // $@67
+        S_reservations_global = 441,             // reservations_global
+        S_reservations_in_subnet = 442,          // reservations_in_subnet
+        S_reservations_out_of_pool = 443,        // reservations_out_of_pool
+        S_reservation_mode = 444,                // reservation_mode
+        S_445_68 = 445,                          // $@68
+        S_hr_mode = 446,                         // hr_mode
+        S_id = 447,                              // id
+        S_rapid_commit = 448,                    // rapid_commit
+        S_shared_networks = 449,                 // shared_networks
+        S_450_69 = 450,                          // $@69
+        S_shared_networks_content = 451,         // shared_networks_content
+        S_shared_networks_list = 452,            // shared_networks_list
+        S_shared_network = 453,                  // shared_network
+        S_454_70 = 454,                          // $@70
+        S_shared_network_params = 455,           // shared_network_params
+        S_shared_network_param = 456,            // shared_network_param
+        S_option_def_list = 457,                 // option_def_list
+        S_458_71 = 458,                          // $@71
+        S_sub_option_def_list = 459,             // sub_option_def_list
+        S_460_72 = 460,                          // $@72
+        S_option_def_list_content = 461,         // option_def_list_content
+        S_not_empty_option_def_list = 462,       // not_empty_option_def_list
+        S_option_def_entry = 463,                // option_def_entry
+        S_464_73 = 464,                          // $@73
+        S_sub_option_def = 465,                  // sub_option_def
+        S_466_74 = 466,                          // $@74
+        S_option_def_params = 467,               // option_def_params
+        S_not_empty_option_def_params = 468,     // not_empty_option_def_params
+        S_option_def_param = 469,                // option_def_param
+        S_option_def_name = 470,                 // option_def_name
+        S_code = 471,                            // code
+        S_option_def_code = 472,                 // option_def_code
+        S_option_def_type = 473,                 // option_def_type
+        S_474_75 = 474,                          // $@75
+        S_option_def_record_types = 475,         // option_def_record_types
+        S_476_76 = 476,                          // $@76
+        S_space = 477,                           // space
+        S_478_77 = 478,                          // $@77
+        S_option_def_space = 479,                // option_def_space
+        S_option_def_encapsulate = 480,          // option_def_encapsulate
+        S_481_78 = 481,                          // $@78
+        S_option_def_array = 482,                // option_def_array
+        S_option_data_list = 483,                // option_data_list
+        S_484_79 = 484,                          // $@79
+        S_option_data_list_content = 485,        // option_data_list_content
+        S_not_empty_option_data_list = 486,      // not_empty_option_data_list
+        S_option_data_entry = 487,               // option_data_entry
+        S_488_80 = 488,                          // $@80
+        S_sub_option_data = 489,                 // sub_option_data
+        S_490_81 = 490,                          // $@81
+        S_option_data_params = 491,              // option_data_params
+        S_not_empty_option_data_params = 492,    // not_empty_option_data_params
+        S_option_data_param = 493,               // option_data_param
+        S_option_data_name = 494,                // option_data_name
+        S_option_data_data = 495,                // option_data_data
+        S_496_82 = 496,                          // $@82
+        S_option_data_code = 497,                // option_data_code
+        S_option_data_space = 498,               // option_data_space
+        S_option_data_csv_format = 499,          // option_data_csv_format
+        S_option_data_always_send = 500,         // option_data_always_send
+        S_option_data_never_send = 501,          // option_data_never_send
+        S_pools_list = 502,                      // pools_list
+        S_503_83 = 503,                          // $@83
+        S_pools_list_content = 504,              // pools_list_content
+        S_not_empty_pools_list = 505,            // not_empty_pools_list
+        S_pool_list_entry = 506,                 // pool_list_entry
+        S_507_84 = 507,                          // $@84
+        S_sub_pool6 = 508,                       // sub_pool6
+        S_509_85 = 509,                          // $@85
+        S_pool_params = 510,                     // pool_params
+        S_pool_param = 511,                      // pool_param
+        S_pool_entry = 512,                      // pool_entry
+        S_513_86 = 513,                          // $@86
+        S_user_context = 514,                    // user_context
+        S_515_87 = 515,                          // $@87
+        S_comment = 516,                         // comment
+        S_517_88 = 517,                          // $@88
+        S_pd_pools_list = 518,                   // pd_pools_list
+        S_519_89 = 519,                          // $@89
+        S_pd_pools_list_content = 520,           // pd_pools_list_content
+        S_not_empty_pd_pools_list = 521,         // not_empty_pd_pools_list
+        S_pd_pool_entry = 522,                   // pd_pool_entry
+        S_523_90 = 523,                          // $@90
+        S_sub_pd_pool = 524,                     // sub_pd_pool
+        S_525_91 = 525,                          // $@91
+        S_pd_pool_params = 526,                  // pd_pool_params
+        S_pd_pool_param = 527,                   // pd_pool_param
+        S_pd_prefix = 528,                       // pd_prefix
+        S_529_92 = 529,                          // $@92
+        S_pd_prefix_len = 530,                   // pd_prefix_len
+        S_excluded_prefix = 531,                 // excluded_prefix
+        S_532_93 = 532,                          // $@93
+        S_excluded_prefix_len = 533,             // excluded_prefix_len
+        S_pd_delegated_len = 534,                // pd_delegated_len
+        S_reservations = 535,                    // reservations
+        S_536_94 = 536,                          // $@94
+        S_reservations_list = 537,               // reservations_list
+        S_not_empty_reservations_list = 538,     // not_empty_reservations_list
+        S_reservation = 539,                     // reservation
+        S_540_95 = 540,                          // $@95
+        S_sub_reservation = 541,                 // sub_reservation
+        S_542_96 = 542,                          // $@96
+        S_reservation_params = 543,              // reservation_params
+        S_not_empty_reservation_params = 544,    // not_empty_reservation_params
+        S_reservation_param = 545,               // reservation_param
+        S_ip_addresses = 546,                    // ip_addresses
+        S_547_97 = 547,                          // $@97
+        S_prefixes = 548,                        // prefixes
+        S_549_98 = 549,                          // $@98
+        S_duid = 550,                            // duid
+        S_551_99 = 551,                          // $@99
+        S_hw_address = 552,                      // hw_address
+        S_553_100 = 553,                         // $@100
+        S_hostname = 554,                        // hostname
+        S_555_101 = 555,                         // $@101
+        S_flex_id_value = 556,                   // flex_id_value
+        S_557_102 = 557,                         // $@102
+        S_reservation_client_classes = 558,      // reservation_client_classes
+        S_559_103 = 559,                         // $@103
+        S_relay = 560,                           // relay
+        S_561_104 = 561,                         // $@104
+        S_relay_map = 562,                       // relay_map
+        S_ip_address = 563,                      // ip_address
+        S_564_105 = 564,                         // $@105
+        S_client_classes = 565,                  // client_classes
+        S_566_106 = 566,                         // $@106
+        S_client_classes_list = 567,             // client_classes_list
+        S_client_class_entry = 568,              // client_class_entry
+        S_569_107 = 569,                         // $@107
+        S_client_class_params = 570,             // client_class_params
+        S_not_empty_client_class_params = 571,   // not_empty_client_class_params
+        S_client_class_param = 572,              // client_class_param
+        S_client_class_name = 573,               // client_class_name
+        S_client_class_test = 574,               // client_class_test
+        S_575_108 = 575,                         // $@108
+        S_client_class_template_test = 576,      // client_class_template_test
+        S_577_109 = 577,                         // $@109
+        S_only_if_required = 578,                // only_if_required
+        S_server_id = 579,                       // server_id
+        S_580_110 = 580,                         // $@110
+        S_server_id_params = 581,                // server_id_params
+        S_server_id_param = 582,                 // server_id_param
+        S_server_id_type = 583,                  // server_id_type
+        S_584_111 = 584,                         // $@111
+        S_duid_type = 585,                       // duid_type
+        S_htype = 586,                           // htype
+        S_identifier = 587,                      // identifier
+        S_588_112 = 588,                         // $@112
+        S_time = 589,                            // time
+        S_enterprise_id = 590,                   // enterprise_id
+        S_dhcp4o6_port = 591,                    // dhcp4o6_port
+        S_control_socket = 592,                  // control_socket
+        S_593_113 = 593,                         // $@113
+        S_control_socket_params = 594,           // control_socket_params
+        S_control_socket_param = 595,            // control_socket_param
+        S_socket_type = 596,                     // socket_type
+        S_597_114 = 597,                         // $@114
+        S_socket_name = 598,                     // socket_name
+        S_599_115 = 599,                         // $@115
+        S_dhcp_queue_control = 600,              // dhcp_queue_control
+        S_601_116 = 601,                         // $@116
+        S_queue_control_params = 602,            // queue_control_params
+        S_queue_control_param = 603,             // queue_control_param
+        S_enable_queue = 604,                    // enable_queue
+        S_queue_type = 605,                      // queue_type
+        S_606_117 = 606,                         // $@117
+        S_capacity = 607,                        // capacity
+        S_arbitrary_map_entry = 608,             // arbitrary_map_entry
+        S_609_118 = 609,                         // $@118
+        S_dhcp_ddns = 610,                       // dhcp_ddns
+        S_611_119 = 611,                         // $@119
+        S_sub_dhcp_ddns = 612,                   // sub_dhcp_ddns
+        S_613_120 = 613,                         // $@120
+        S_dhcp_ddns_params = 614,                // dhcp_ddns_params
+        S_dhcp_ddns_param = 615,                 // dhcp_ddns_param
+        S_enable_updates = 616,                  // enable_updates
+        S_dep_qualifying_suffix = 617,           // dep_qualifying_suffix
+        S_618_121 = 618,                         // $@121
+        S_server_ip = 619,                       // server_ip
+        S_620_122 = 620,                         // $@122
+        S_server_port = 621,                     // server_port
+        S_sender_ip = 622,                       // sender_ip
+        S_623_123 = 623,                         // $@123
+        S_sender_port = 624,                     // sender_port
+        S_max_queue_size = 625,                  // max_queue_size
+        S_ncr_protocol = 626,                    // ncr_protocol
+        S_627_124 = 627,                         // $@124
+        S_ncr_protocol_value = 628,              // ncr_protocol_value
+        S_ncr_format = 629,                      // ncr_format
+        S_630_125 = 630,                         // $@125
+        S_dep_override_no_update = 631,          // dep_override_no_update
+        S_dep_override_client_update = 632,      // dep_override_client_update
+        S_dep_replace_client_name = 633,         // dep_replace_client_name
+        S_634_126 = 634,                         // $@126
+        S_dep_generated_prefix = 635,            // dep_generated_prefix
+        S_636_127 = 636,                         // $@127
+        S_dep_hostname_char_set = 637,           // dep_hostname_char_set
+        S_638_128 = 638,                         // $@128
+        S_dep_hostname_char_replacement = 639,   // dep_hostname_char_replacement
+        S_640_129 = 640,                         // $@129
+        S_config_control = 641,                  // config_control
+        S_642_130 = 642,                         // $@130
+        S_sub_config_control = 643,              // sub_config_control
+        S_644_131 = 644,                         // $@131
+        S_config_control_params = 645,           // config_control_params
+        S_config_control_param = 646,            // config_control_param
+        S_config_databases = 647,                // config_databases
+        S_648_132 = 648,                         // $@132
+        S_config_fetch_wait_time = 649,          // config_fetch_wait_time
+        S_loggers = 650,                         // loggers
+        S_651_133 = 651,                         // $@133
+        S_loggers_entries = 652,                 // loggers_entries
+        S_logger_entry = 653,                    // logger_entry
+        S_654_134 = 654,                         // $@134
+        S_logger_params = 655,                   // logger_params
+        S_logger_param = 656,                    // logger_param
+        S_debuglevel = 657,                      // debuglevel
+        S_severity = 658,                        // severity
+        S_659_135 = 659,                         // $@135
+        S_output_options_list = 660,             // output_options_list
+        S_661_136 = 661,                         // $@136
+        S_output_options_list_content = 662,     // output_options_list_content
+        S_output_entry = 663,                    // output_entry
+        S_664_137 = 664,                         // $@137
+        S_output_params_list = 665,              // output_params_list
+        S_output_params = 666,                   // output_params
+        S_output = 667,                          // output
+        S_668_138 = 668,                         // $@138
+        S_flush = 669,                           // flush
+        S_maxsize = 670,                         // maxsize
+        S_maxver = 671,                          // maxver
+        S_pattern = 672,                         // pattern
+        S_673_139 = 673,                         // $@139
+        S_compatibility = 674,                   // compatibility
+        S_675_140 = 675,                         // $@140
+        S_compatibility_params = 676,            // compatibility_params
+        S_compatibility_param = 677,             // compatibility_param
+        S_lenient_option_parsing = 678           // lenient_option_parsing
       };
     };
 
@@ -3753,6 +3755,21 @@ switch (yykind)
         return symbol_type (token::TOKEN_CLIENT_CLASS, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_POOL_ID (location_type l)
+      {
+        return symbol_type (token::TOKEN_POOL_ID, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_POOL_ID (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_POOL_ID, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5561,10 +5578,10 @@ switch (yykind)
      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222
+     215,   216,   217,   218,   219,   220,   221,   222,   223
     };
     // Last valid token kind.
-    const int code_max = 477;
+    const int code_max = 478;
 
     if (t <= 0)
       return symbol_kind::S_YYEOF;
@@ -5735,7 +5752,7 @@ switch (yykind)
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5739 "dhcp6_parser.h"
+#line 5756 "dhcp6_parser.h"
 
 
 
index fbb25ac0bbe92e6c7e2aba9e50c6cbed5ad55274..b3296032a90999daabcafbc92c930dc02d4b17d2 100644 (file)
@@ -183,6 +183,7 @@ using namespace std;
   TEMPLATE_TEST "template-test"
   ONLY_IF_REQUIRED "only-if-required"
   CLIENT_CLASS "client-class"
+  POOL_ID "pool-id"
 
   RESERVATIONS "reservations"
   IP_ADDRESSES "ip-addresses"
@@ -2098,6 +2099,7 @@ pool_params: pool_param
            ;
 
 pool_param: pool_entry
+          | pool_id
           | option_data_list
           | client_class
           | require_client_classes
@@ -2115,6 +2117,12 @@ pool_entry: POOL {
     ctx.leave();
 };
 
+pool_id: POOL_ID COLON INTEGER {
+    ctx.unique("pool-id", ctx.loc2pos(@1));
+    ElementPtr id(new IntElement($3, ctx.loc2pos(@3)));
+    ctx.stack_.back()->set("pool-id", id);
+};
+
 user_context: USER_CONTEXT {
     ctx.enter(ctx.NO_KEYWORD);
 } COLON map_value {