]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#103,!277] Regenerated bison files.
authorMarcin Siodelski <marcin@isc.org>
Tue, 26 Mar 2019 10:18:16 +0000 (10:18 +0000)
committerMarcin Siodelski <marcin@isc.org>
Tue, 26 Mar 2019 10:21:25 +0000 (11:21 +0100)
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/location.hh
src/bin/dhcp4/position.hh
src/bin/dhcp4/stack.hh

index e5cebb594471230271350950f27cfb5a2815fb6e..f741fb177f262029c1502d92152b0b2d6837eda1 100644 (file)
@@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
        (yy_c_buf_p) = yy_cp;
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
-#define YY_NUM_RULES 180
-#define YY_END_OF_BUFFER 181
+#define YY_NUM_RULES 181
+#define YY_END_OF_BUFFER 182
 /* 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[1532] =
+static const flex_int16_t yy_accept[1548] =
     {   0,
-      173,  173,    0,    0,    0,    0,    0,    0,    0,    0,
-      181,  179,   10,   11,  179,    1,  173,  170,  173,  173,
-      179,  172,  171,  179,  179,  179,  179,  179,  166,  167,
-      179,  179,  179,  168,  169,    5,    5,    5,  179,  179,
-      179,   10,   11,    0,    0,  162,    0,    0,    0,    0,
+      174,  174,    0,    0,    0,    0,    0,    0,    0,    0,
+      182,  180,   10,   11,  180,    1,  174,  171,  174,  174,
+      180,  173,  172,  180,  180,  180,  180,  180,  167,  168,
+      180,  180,  180,  169,  170,    5,    5,    5,  180,  180,
+      180,   10,   11,    0,    0,  163,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    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,
-      173,  173,    0,  172,  173,    3,    2,    6,    0,  173,
+      174,  174,    0,  173,  174,    3,    2,    6,    0,  174,
         0,    0,    0,    0,    0,    0,    4,    0,    0,    9,
 
-        0,  163,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  165,    0,    0,    0,
+        0,  164,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  166,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -724,153 +724,154 @@ static const flex_int16_t yy_accept[1532] =
         0,    2,    0,    0,    0,    0,    0,    0,    0,    8,
         0,    0,    0,    0,    0,    0,    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,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   69,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   70,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  178,  176,    0,  175,  174,    0,    0,
+        0,    0,    0,  179,  177,    0,  176,  175,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  142,    0,
-      141,    0,    0,   75,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   34,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  143,    0,
+      142,    0,    0,   76,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   35,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   72,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   73,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,   17,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   18,    0,    0,    0,    0,  177,  174,
+        0,    0,    0,   18,    0,    0,    0,    0,  178,  175,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      143,    0,    0,  145,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   76,    0,    0,    0,    0,    0,    0,
-        0,   61,    0,    0,    0,    0,    0,   96,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   37,    0,
+      144,    0,    0,  146,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   77,    0,    0,    0,    0,    0,    0,
+        0,   62,    0,    0,    0,    0,    0,   97,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   38,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   60,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   61,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       64,    0,   38,    0,    0,    0,    0,    0,    0,    0,
+       65,    0,   39,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   93,   30,    0,    0,   35,    0,    0,    0,    0,
-        0,    0,    0,    0,   12,  150,    0,  147,    0,  146,
-        0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
+        0,   94,   31,    0,    0,   36,    0,    0,    0,    0,
+        0,    0,    0,    0,   12,  151,    0,  148,    0,  147,
+        0,    0,    0,  107,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   86,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   32,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   33,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,   63,    0,    0,    0,    0,    0,
-        0,    0,    0,  107,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  102,    0,    0,
+        0,    0,    0,    0,   64,    0,    0,    0,    0,    0,
+        0,    0,    0,  108,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  103,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    7,    0,    0,
-      148,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      149,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   74,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   75,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   89,    0,    0,    0,    0,    0,    0,    0,
 
-        0,   84,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   85,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   67,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   81,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   66,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   82,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   67,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  100,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  112,   82,    0,    0,
-        0,    0,   87,   31,    0,    0,    0,    0,    0,    0,
+        0,    0,  101,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  113,   83,    0,
+        0,    0,    0,   88,   32,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,   39,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   40,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   56,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  151,    0,    0,    0,    0,    0,
+        0,    0,    0,   57,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  152,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   71,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  101,    0,    0,
-        0,    0,    0,   42,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   72,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  102,
+        0,    0,    0,    0,    0,   43,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,   36,    0,    0,    0,   29,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
+        0,    0,    0,    0,   37,    0,    0,    0,   30,    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,  125,    0,
+        0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   68,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   23,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      130,    0,    0,    0,  128,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  155,
-        0,    0,    0,    0,    0,    0,    0,   99,    0,    0,
-        0,    0,    0,    0,    0,  103,   85,    0,    0,    0,
+       99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  126,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   69,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   97,   22,    0,  108,    0,    0,    0,    0,
-        0,    0,    0,    0,  134,    0,    0,    0,    0,   58,
-        0,    0,    0,    0,    0,  111,   33,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   55,    0,    0,    0,   79,   80,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   62,
-        0,    0,    0,    0,    0,    0,    0,   43,    0,    0,
-        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
+        0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  131,    0,    0,    0,  129,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  159,    0,   59,   73,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   52,    0,
-        0,    0,    0,    0,    0,    0,  131,    0,    0,  129,
-        0,  123,  122,    0,   48,    0,   21,    0,    0,    0,
-        0,    0,  144,    0,    0,    0,   92,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,  120,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  109,   15,
-        0,   40,    0,    0,    0,    0,    0,  133,    0,    0,
-        0,    0,    0,    0,   53,    0,    0,  104,    0,    0,
-        0,    0,   95,    0,    0,    0,    0,    0,    0,    0,
-       65,    0,  153,    0,  152,    0,  158,    0,    0,    0,
+        0,    0,  156,    0,    0,    0,    0,    0,    0,    0,
+      100,    0,    0,    0,    0,    0,    0,    0,    0,  104,
+       86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   98,   22,    0,  109,
+        0,    0,    0,    0,    0,    0,    0,    0,  135,    0,
+        0,    0,    0,   59,    0,    0,    0,    0,    0,  112,
+       34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,   56,    0,    0,
+        0,   80,   81,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   63,    0,    0,    0,    0,    0,    0,
+        0,    0,   44,    0,    0,    0,    0,    0,    0,    0,
+        0,  106,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      160,    0,   60,   74,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   53,    0,    0,    0,    0,    0,    0,
+        0,  132,    0,    0,  130,    0,  124,  123,    0,   49,
+        0,   21,    0,    0,    0,    0,    0,  145,    0,    0,
+
+        0,   93,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  121,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  110,   15,    0,   41,    0,    0,
+        0,    0,    0,  134,    0,    0,    0,    0,    0,    0,
+       54,    0,    0,  105,    0,    0,    0,    0,   96,    0,
+        0,    0,    0,    0,    0,    0,   66,    0,  154,    0,
+      153,    0,  159,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    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,   47,    0,    0,    0,    0,  161,    0,   90,
-       27,    0,    0,   49,  121,    0,    0,    0,  156,  126,
-        0,    0,    0,    0,    0,    0,    0,    0,   25,    0,
-        0,   24,    0,  132,    0,    0,    0,    0,    0,   83,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   51,    0,    0,    0,    0,   41,
-        0,    0,    0,    0,    0,    0,    0,  110,    0,    0,
-        0,   26,    0,  157,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   46,    0,    0,   20,    0,
-      160,   57,    0,  154,  149,    0,   28,    0,    0,   16,
-
-        0,    0,  138,    0,    0,    0,    0,    0,    0,  118,
-        0,   94,    0,    0,    0,    0,    0,    0,    0,    0,
-       70,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  139,   13,    0,    0,    0,    0,    0,  127,    0,
-        0,    0,    0,    0,    0,    0,    0,  124,    0,    0,
-        0,    0,    0,  117,    0,   19,    0,  135,    0,    0,
-        0,    0,   44,    0,   78,    0,    0,    0,  116,    0,
-        0,   50,    0,    0,   45,  137,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,   14,    0,    0,    0,   48,
+        0,    0,    0,    0,  162,    0,   91,   27,    0,    0,
+        0,   50,  122,    0,    0,    0,  157,  127,    0,    0,
+        0,    0,    0,    0,    0,    0,   25,    0,    0,   24,
+        0,  133,    0,    0,    0,    0,    0,   84,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   52,    0,    0,    0,    0,    0,   42,    0,
+        0,    0,    0,    0,    0,    0,  111,    0,    0,    0,
+       26,    0,  158,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   47,    0,    0,   20,    0,  161,
+
+       58,    0,  155,  150,    0,   28,    0,    0,    0,   16,
+        0,    0,  139,    0,    0,    0,    0,    0,    0,  119,
+        0,   95,    0,    0,    0,    0,    0,    0,    0,    0,
+       71,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  140,   13,    0,    0,    0,    0,    0,  128,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  125,
+        0,    0,    0,    0,    0,  118,    0,   19,    0,  136,
+        0,    0,    0,    0,   45,    0,   79,    0,    0,    0,
+        0,  117,    0,    0,   51,    0,    0,   46,  138,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,  136,    0,   91,    0,    0,    0,    0,    0,    0,
-      114,  119,   54,    0,    0,    0,    0,  113,    0,    0,
-      140,    0,    0,    0,    0,    0,   77,    0,    0,  115,
-        0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   29,    0,    0,    0,    0,    0,  137,    0,   92,
+        0,    0,    0,    0,    0,    0,  115,  120,   55,    0,
+        0,    0,    0,  114,    0,    0,  141,    0,    0,    0,
+        0,    0,   78,    0,    0,  116,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -917,360 +918,362 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1544] =
+static const flex_int16_t yy_base[1560] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     1932, 1933,   34, 1928,  145,    0,  207, 1933,  214,  221,
-       13,  228, 1933, 1908,  118,   25,    2,    6, 1933, 1933,
-       73,   11,   17, 1933, 1933, 1933,  104, 1916, 1869,    0,
-     1906,  108, 1923,   24,  262, 1933, 1865,   67, 1864, 1870,
-       84,   75, 1862,   88,  226,   91,   89,  290,  196, 1861,
-      206,  285,  206,  210,  219,   60,  223, 1870,  247,  290,
-      315,  303,  231, 1853,  297,  321,  343,  324, 1872,    0,
-      380,  387,  401,  408,  424, 1933,    0, 1933,  429,  438,
-      216,  249,  220,  315,  335,  266, 1933, 1869, 1910, 1933,
-
-      342, 1933,  421, 1897,  312, 1855, 1865,  400,   10, 1860,
-      361,  323,  370,  387,  359, 1905,    0,  474,  392, 1847,
-     1844, 1848, 1850, 1843, 1851,  412, 1847, 1836, 1837,   78,
-     1853, 1836, 1845, 1845,   95, 1836,  400, 1837, 1835,  405,
-     1883, 1887, 1827, 1880, 1820, 1843, 1840, 1840, 1834,  310,
-     1827, 1820, 1825, 1819,  436, 1830, 1823, 1814, 1813, 1827,
-      186, 1813,  413, 1829, 1806,  470,  286,  400, 1827, 1824,
-     1825, 1823, 1858, 1857,  445, 1803, 1805,  448, 1797, 1814,
-     1806,    0,  447,  447,  458,  471,  462,  483, 1805, 1933,
-        0, 1850,  490, 1795, 1798,  476,  482, 1806,  488, 1851,
-
-      499, 1850,  496, 1849, 1933,  542, 1848,  507, 1807, 1799,
-     1786, 1802, 1801, 1798, 1797, 1788,  486, 1839, 1833, 1797,
-     1776, 1784, 1779, 1793, 1789, 1777, 1789, 1789, 1780, 1764,
-     1768, 1781, 1783, 1780, 1772, 1762, 1780, 1933, 1775, 1778,
-     1759, 1758, 1810, 1757, 1767, 1770,  531, 1766, 1754, 1765,
-     1803, 1748, 1806, 1741, 1756,  533, 1746, 1762, 1743, 1742,
-     1748, 1739, 1738, 1745, 1795, 1751, 1750, 1744,  486, 1751,
-     1746, 1738, 1728, 1743, 1742, 1737, 1741,  322, 1739, 1725,
-     1731, 1738, 1726, 1723, 1722,  541, 1717, 1731, 1774, 1733,
-      366, 1724,  512, 1933, 1933,  521, 1933, 1933, 1711,    0,
-
-      241,  513, 1713,  546,  534, 1769, 1720,  538, 1933, 1767,
-     1933, 1761,  588, 1933,  537, 1701, 1710, 1758, 1702, 1701,
-     1707, 1759, 1714, 1709, 1712, 1707,  533, 1933, 1709, 1753,
-     1706, 1703,  564, 1709, 1749, 1743, 1696, 1691, 1688, 1739,
-     1696, 1685, 1701, 1735, 1681,  611, 1695, 1680, 1693, 1680,
-     1690, 1685, 1692, 1687, 1683,  432, 1681, 1684, 1679, 1675,
-     1725,  525, 1719, 1933, 1718, 1668, 1667, 1666, 1659, 1661,
-     1665, 1654, 1667,  568, 1714, 1667, 1664, 1933, 1667, 1656,
-     1656, 1668,  560, 1643, 1644, 1665,  570, 1647, 1698, 1643,
-     1657, 1660, 1655, 1641, 1653, 1652, 1651, 1650, 1649, 1648,
-
-      526, 1691, 1690, 1933, 1632, 1631,  615, 1644, 1933, 1933,
-     1643,    0, 1632, 1624,  561, 1629, 1682, 1681, 1637, 1679,
-     1933, 1625, 1677, 1933,  595,  662,  564, 1676, 1618, 1629,
-     1622, 1624, 1612, 1933, 1617, 1623, 1626, 1609, 1624, 1611,
-     1610, 1933, 1612, 1609,  569, 1607, 1609, 1933, 1617, 1614,
-     1599, 1612, 1607,  634, 1614, 1602, 1595, 1646, 1933, 1593,
-     1609, 1643, 1604, 1601, 1602, 1604, 1638, 1589, 1584, 1583,
-     1634, 1578, 1593, 1571, 1578, 1583, 1633, 1933, 1578, 1574,
-     1572, 1581, 1575, 1582, 1566, 1566, 1576, 1579, 1568, 1563,
-     1933, 1620, 1933, 1562, 1573, 1558, 1563, 1572, 1566, 1560,
-
-     1569, 1611, 1605, 1567, 1550, 1550, 1545, 1565, 1540, 1546,
-     1551, 1544, 1552, 1556, 1539, 1597, 1537, 1538, 1537, 1549,
-     1538, 1933, 1933, 1538, 1536, 1933, 1547, 1583, 1543,    0,
-     1527, 1544, 1584, 1532, 1933, 1933, 1529, 1933, 1535, 1933,
-      597,  606,  636, 1933, 1532, 1531, 1538, 1518, 1571, 1516,
-     1569, 1514, 1513, 1512, 1519, 1512, 1524, 1523, 1523, 1505,
-     1510, 1551, 1518, 1510, 1555, 1499, 1515, 1514, 1933, 1499,
-     1496, 1554, 1509, 1501, 1507, 1498, 1506, 1491, 1507, 1489,
-     1503,  560, 1485, 1479, 1484, 1499, 1496, 1497, 1494, 1537,
-     1492, 1933, 1478, 1480, 1489, 1487, 1526, 1525, 1476,   16,
-
-     1485, 1468, 1469, 1466, 1933, 1480, 1459, 1478, 1470, 1515,
-     1467, 1474, 1512, 1933, 1457, 1471, 1455, 1469, 1472, 1453,
-     1505, 1504, 1503, 1502, 1447, 1500, 1499, 1933,  593, 1461,
-     1460, 1457, 1457, 1455, 1438, 1443, 1445, 1933, 1451, 1441,
-     1933, 1488, 1434, 1491,  606,  617, 1432, 1430, 1437, 1428,
-     1481,  598, 1485,  600, 1479, 1439, 1477, 1476, 1428, 1418,
-     1473, 1424, 1432, 1433, 1469, 1430, 1424, 1411, 1419, 1464,
-     1468, 1423, 1422, 1933, 1423, 1416, 1405, 1418, 1421, 1416,
-     1417, 1414, 1413, 1409, 1415, 1410, 1453, 1452, 1400, 1390,
-      593, 1449, 1933, 1448, 1395, 1387, 1388, 1439, 1400, 1387,
-
-     1398, 1933, 1386, 1395, 1394, 1394, 1436, 1377, 1386, 1391,
-     1368, 1372, 1425, 1387, 1369,  166,  272,  323,  379,  346,
-      422,  448,  597,  529,  607,  517,  596,  600, 1933,  656,
-      613,  614,  605,  623,  625,  616,  623,  629,  621,  641,
-      646,  687, 1933,  683,  659,  646,  651,  648,  649,  646,
-      644,  653, 1933,  643,  658,  640,  647,  646,  650,  669,
-      666,  656,  654,  653,  664,  660,  716,  674,  664,  680,
-      670, 1933,  680,  680,  673,  684,  682,  727,  669,  671,
-      686,  673,  733,  690,  676,  679, 1933, 1933,  689,  694,
-      699,  687, 1933, 1933,  701,  688,  682,  687,  705,  692,
-
-      742,  693,  745,  694,  752, 1933,  697,  701,  696,  756,
-      709,  699,  700,  696,  709,  720,  704,  722,  717,  718,
-      720,  713,  715,  716,  717,  717,  719,  734,  775,  732,
-      737,  714, 1933,  726,  727,  741,  731,  778,  736,  726,
-      741,  742,  729,  743, 1933,  762,  770,  739,  734,  789,
-      790,  753,  757,  798,  746,  741,  753,  760,  749,  750,
-      746,  755,  750,  808,  765,  766,  757, 1933,  759,  770,
-      756,  772,  767,  814,  780,  764,  765, 1933,  781,  784,
-      767,  826,  769, 1933,  786,  789,  769,  787,  827,  785,
-      781,  776,  794,  793,  794,  780,  795,  787,  794,  784,
-
-      802,  787, 1933,  795,  801,  848, 1933,  797,  802,  846,
-      797,  809,  803,  808,  806,  804,  806,  816,  861,  805,
-      810,  806,  865,  809,  821, 1933,  809,  817,  815,  812,
-      813,  822,  834,  818,  823,  833,  834,  839,  880,  837,
-      853,  859,  840,  838,  834,  829,  889,  832, 1933,  832,
-      852,  841,  830,  847,  854,  897,  898,  845, 1933,  895,
-      842,  845,  844,  864,  861,  866,  867,  853,  861,  871,
-      852,  867,  874,  916, 1933,  917,  918,  869,  879,  881,
-      870,  866,  873,  882,  927,  874,  872,  874,  891,  932,
-      882,  881,  887,  885,  883,  938,  939,  935, 1933,  897,
-
-      890,  881,  900,  888,  898,  895,  900,  896,  909,  909,
-     1933,  893,  895,  895, 1933,  896,  956,  895,  914,  915,
-      960,  961,  915,  900,  921,  920,  904,  909,  927, 1933,
-      917,  950,  941,  973,  913,  935,  932, 1933,  919,  921,
-      938,  936,  981,  929,  933, 1933, 1933,  943,  943,  981,
-      928,  983,  930,  990,  933,  944,  936,  943,  939,  957,
-      958,  959, 1933, 1933,  959, 1933,  944,  945,  964,  954,
-      947,  959, 1003,  967, 1933,  959, 1011,  952, 1013, 1933,
-     1014,  956,  962,  969, 1013, 1933, 1933,  961,  963,  977,
-      982,  965, 1024,  981,  982,  983, 1023,  975,  980, 1031,
-
-      984,  980, 1034, 1933,  981, 1036, 1037, 1933, 1933,  977,
-     1039,  998, 1041,  983,  995, 1000,  986, 1016, 1047, 1933,
-     1004,  997, 1006, 1051,  998, 1013, 1000, 1933,  996, 1012,
-     1017, 1004, 1000, 1060, 1013, 1018, 1933, 1019, 1012, 1021,
-     1022, 1019, 1009, 1012, 1012, 1017, 1072, 1073, 1017, 1076,
-     1072, 1013, 1028, 1021, 1082, 1933, 1035, 1933, 1933, 1040,
-     1032, 1042, 1028, 1029, 1090, 1034, 1044, 1093, 1933, 1041,
-     1042, 1044, 1046, 1099, 1040, 1043, 1933, 1044, 1063, 1933,
-     1047, 1933, 1933, 1061, 1933, 1055, 1933, 1107, 1056, 1109,
-     1110, 1090, 1933, 1112, 1069, 1110, 1933, 1058, 1066, 1060,
-
-     1059, 1062, 1062, 1063, 1070, 1060, 1933, 1082, 1068, 1069,
-     1084, 1084, 1087, 1087, 1084, 1128, 1091, 1083, 1933, 1933,
-     1093, 1933, 1090, 1095, 1096, 1093, 1137, 1933, 1086, 1087,
-     1087, 1093, 1092, 1103, 1933, 1144, 1091, 1933, 1092, 1092,
-     1094, 1100, 1933, 1102, 1156, 1098, 1106, 1109, 1160, 1121,
-     1933, 1118, 1933, 1115, 1933, 1138, 1933, 1165, 1107, 1167,
-     1168, 1125, 1111, 1171, 1172, 1125, 1115, 1120, 1176, 1177,
-     1173, 1136, 1132, 1176, 1124, 1129, 1127, 1186, 1142, 1188,
-     1146, 1190, 1152, 1141, 1135, 1151, 1151, 1197, 1139, 1156,
-     1155, 1139, 1197, 1198, 1145, 1200, 1163, 1164, 1933, 1164,
-
-     1165, 1152, 1933, 1163, 1212, 1170, 1183, 1933, 1167, 1933,
-     1933, 1158, 1217, 1933, 1933, 1164, 1162, 1176, 1933, 1933,
-     1166, 1217, 1160, 1165, 1225, 1173, 1183, 1184, 1933, 1229,
-     1182, 1933, 1231, 1933, 1174, 1189, 1177, 1192, 1196, 1933,
-     1232, 1198, 1191, 1200, 1182, 1190, 1245, 1204, 1203, 1248,
-     1196, 1250, 1251, 1200, 1933, 1253, 1254, 1203, 1256, 1933,
-     1204, 1204, 1259, 1203, 1202, 1262, 1215, 1933, 1259, 1210,
-     1207, 1933, 1221, 1933, 1224, 1269, 1222, 1271, 1230, 1213,
-     1215, 1212, 1228, 1229, 1238, 1933, 1228, 1280, 1933, 1239,
-     1933, 1933, 1277, 1933, 1933, 1239, 1933, 1279, 1234, 1933,
-
-     1232, 1239, 1933, 1236, 1241, 1239, 1291, 1292, 1235, 1933,
-     1250, 1933, 1251, 1241, 1253, 1298, 1240, 1248, 1249, 1262,
-     1933, 1239, 1262, 1247, 1251, 1307, 1266, 1257, 1266, 1268,
-     1272, 1933, 1933, 1313, 1256, 1315, 1273, 1317, 1933, 1313,
-     1275, 1276, 1263, 1322, 1259, 1324, 1281, 1933, 1282, 1283,
-     1328, 1285, 1288, 1933, 1331, 1933, 1292, 1933, 1274, 1334,
-     1335, 1278, 1933, 1295, 1933, 1281, 1281, 1283, 1933, 1288,
-     1298, 1933, 1284, 1296, 1933, 1933, 1301, 1295, 1299, 1290,
-     1344, 1291, 1299, 1308, 1301, 1296, 1311, 1302, 1309, 1296,
-     1311, 1316, 1361, 1318, 1363, 1306, 1322, 1313, 1327, 1323,
-
-     1316, 1933, 1370, 1933, 1371, 1372, 1327, 1326, 1327, 1317,
-     1933, 1933, 1933, 1377, 1319, 1335, 1380, 1933, 1376, 1325,
-     1933, 1324, 1326, 1337, 1386, 1335, 1933, 1344, 1389, 1933,
-     1933, 1395, 1400, 1405, 1410, 1415, 1420, 1425, 1428, 1402,
-     1407, 1409, 1422
+     1948, 1949,   34, 1944,  145,    0,  207, 1949,  214,  221,
+       13,  228, 1949, 1924,  118,   25,    2,    6, 1949, 1949,
+       73,   11,   17, 1949, 1949, 1949,  104, 1932, 1885,    0,
+     1922,  108, 1939,   24,  262, 1949, 1881,   67, 1880, 1886,
+       84,   75, 1878,   88,  226,   91,   89,  290,  196, 1877,
+      206,  285,  206,  210,  219,   60,  223, 1886,  247,  290,
+      315,  303,  231, 1869,  297,  321,  343,  324, 1888,    0,
+      380,  387,  401,  408,  424, 1949,    0, 1949,  429,  438,
+      216,  249,  220,  315,  335,  266, 1949, 1885, 1926, 1949,
+
+      342, 1949,  421, 1913,  312, 1871, 1881,  400,   10, 1876,
+      361,  323,  370,  387,  359, 1921,    0,  474,  392, 1863,
+     1860, 1864, 1866, 1859, 1867,  412, 1863, 1852, 1853,   78,
+     1869, 1852, 1861, 1861,   95, 1852,  400, 1853, 1851,  405,
+     1899, 1903, 1843, 1896, 1836, 1859, 1856, 1856, 1850,  310,
+     1843, 1836, 1841, 1835,  436, 1846, 1839, 1830, 1829, 1843,
+      186, 1829,  413, 1845, 1822,  470,  286,  400, 1843, 1840,
+     1841, 1839, 1874, 1873,  445, 1819, 1821,  448, 1813, 1830,
+     1822,    0,  447,  447,  458,  471,  462,  483, 1821, 1949,
+        0, 1866,  490, 1811, 1814,  476,  482, 1822,  488, 1867,
+
+      499, 1866,  496, 1865, 1949,  542, 1864,  507, 1823, 1815,
+     1802, 1818, 1817, 1814, 1813, 1804,  486, 1855, 1849, 1813,
+     1792, 1800, 1795, 1809, 1805, 1793, 1805, 1805, 1796, 1780,
+     1784, 1797, 1799, 1796, 1788, 1778, 1796, 1949, 1791, 1794,
+     1775, 1774, 1826, 1773, 1783, 1786,  531, 1782, 1770, 1781,
+     1819, 1764, 1822, 1757, 1772,  533, 1762, 1778, 1759, 1758,
+     1764, 1755, 1754, 1761, 1811, 1767, 1766, 1760,  486, 1767,
+     1762, 1754, 1744, 1759, 1758, 1753, 1757,  322, 1755, 1741,
+     1747, 1754, 1742, 1739, 1738,  541, 1733, 1747, 1790, 1749,
+      366, 1740,  512, 1949, 1949,  521, 1949, 1949, 1727,    0,
+
+      241,  513, 1729,  546,  534, 1785, 1736,  538, 1949, 1783,
+     1949, 1777,  588, 1949,  537, 1717, 1726, 1774, 1718, 1717,
+     1723, 1775, 1730, 1725, 1728, 1723,  533, 1949, 1725, 1769,
+     1722, 1719,  564, 1725, 1765, 1759, 1712, 1707, 1704, 1755,
+     1712, 1701, 1717, 1751, 1697,  611, 1711, 1696, 1709, 1696,
+     1706, 1701, 1708, 1703, 1699,  432, 1697, 1700, 1695, 1691,
+     1741,  525, 1735, 1949, 1734, 1684, 1683, 1682, 1675, 1677,
+     1681, 1670, 1683,  568, 1730, 1683, 1680, 1949, 1683, 1672,
+     1672, 1684,  560, 1659, 1660, 1681,  570, 1663, 1714, 1659,
+     1673, 1676, 1671, 1657, 1669, 1668, 1667, 1666, 1665, 1664,
+
+      526, 1707, 1706, 1949, 1648, 1647,  615, 1660, 1949, 1949,
+     1659,    0, 1648, 1640,  561, 1645, 1698, 1697, 1653, 1695,
+     1949, 1641, 1693, 1949,  595,  662,  564, 1692, 1634, 1645,
+     1638, 1640, 1628, 1949, 1633, 1639, 1642, 1625, 1640, 1627,
+     1626, 1949, 1628, 1625,  569, 1623, 1625, 1949, 1633, 1630,
+     1615, 1628, 1623,  634, 1630, 1618, 1611, 1662, 1949, 1609,
+     1625, 1659, 1620, 1617, 1618, 1620, 1654, 1605, 1600, 1599,
+     1650, 1594, 1609, 1587, 1594, 1599, 1649, 1949, 1594, 1590,
+     1588, 1597, 1591, 1598, 1582, 1582, 1592, 1595, 1584, 1579,
+     1949, 1636, 1949, 1578, 1589, 1574, 1579, 1588, 1582, 1576,
+
+     1585, 1627, 1621, 1583, 1566, 1566, 1561, 1581, 1556, 1562,
+     1567, 1560, 1568, 1572, 1555, 1613, 1553, 1554, 1553, 1565,
+     1554, 1949, 1949, 1554, 1552, 1949, 1563, 1599, 1559,    0,
+     1543, 1560, 1600, 1548, 1949, 1949, 1545, 1949, 1551, 1949,
+      597,  606,  636, 1949, 1548, 1547, 1554, 1534, 1587, 1532,
+     1585, 1530, 1529, 1528, 1535, 1528, 1540, 1539, 1539, 1521,
+     1526, 1567, 1534, 1526, 1571, 1515, 1531, 1530, 1949, 1515,
+     1512, 1570, 1525, 1517, 1523, 1514, 1522, 1507, 1523, 1505,
+     1519,  560, 1501, 1495, 1500, 1515, 1512, 1513, 1510, 1553,
+     1508, 1949, 1494, 1496, 1505, 1503, 1542, 1541, 1492,   16,
+
+     1501, 1484, 1485, 1482, 1949, 1496, 1475, 1494, 1486, 1531,
+     1483, 1490, 1528, 1949, 1473, 1487, 1471, 1485, 1488, 1469,
+     1521, 1520, 1519, 1518, 1463, 1516, 1515, 1949,  593, 1477,
+     1476, 1473, 1473, 1471, 1454, 1459, 1461, 1949, 1467, 1457,
+     1949, 1504, 1450, 1507,  606,  617, 1448, 1446, 1453, 1444,
+     1497,  598, 1501,  600, 1495, 1455, 1493, 1492, 1444, 1434,
+     1489, 1440, 1448, 1449, 1485, 1446, 1440, 1427, 1435, 1480,
+     1484, 1439, 1438, 1949, 1439, 1432, 1421, 1434, 1437, 1432,
+     1433, 1430, 1429, 1425, 1431, 1426, 1469, 1468, 1416, 1406,
+      593, 1465, 1949, 1464, 1411, 1403, 1404, 1455, 1416, 1403,
+
+     1414, 1949, 1402, 1411, 1410, 1410, 1452, 1393, 1402, 1407,
+     1384, 1388, 1441, 1403, 1385,  166,  272,  323,  379,  346,
+      422,  448,  601,  529,  607,  517,  599,  600, 1949,  657,
+      614,  616,  612,  624,  632,  617,  624,  630,  628,  642,
+      647,  688, 1949,  684,  660,  647,  652,  649,  650,  647,
+      645,  654, 1949,  644,  659,  656,  642,  655,  654,  652,
+      671,  668,  658,  656,  655,  666,  662,  719,  676,  666,
+      682,  672, 1949,  682,  682,  675,  686,  684,  729,  671,
+      673,  688,  675,  735,  692,  678,  681, 1949, 1949,  691,
+      696,  701,  689, 1949, 1949,  703,  690,  684,  689,  707,
+
+      694,  744,  695,  747,  696,  754, 1949,  699,  703,  698,
+      758,  711,  701,  702,  698,  711,  722,  706,  724,  719,
+      720,  722,  715,  717,  718,  719,  719,  721,  736,  777,
+      734,  739,  716, 1949,  728,  729,  743,  733,  780,  738,
+      728,  743,  744,  731,  745, 1949,  764,  772,  741,  736,
+      791,  792,  755,  759,  800,  748,  743,  744,  756,  763,
+      752,  753,  749,  758,  753,  811,  768,  769,  760, 1949,
+      762,  774,  759,  776,  770,  817,  783,  767,  768, 1949,
+      784,  787,  770,  829,  772, 1949,  789,  792,  772,  790,
+      830,  788,  784,  779,  797,  796,  797,  783,  798,  790,
+
+      797,  787,  805,  790, 1949,  798,  804,  851, 1949,  800,
+      805,  849,  800,  812,  806,  811,  809,  807,  809,  819,
+      864,  808,  813,  809,  868,  812,  824, 1949,  812,  820,
+      818,  815,  816,  825,  837,  821,  826,  836,  837,  842,
+      883,  840,  856,  862,  843,  841,  837,  832,  892,  835,
+     1949,  835,  855,  854,  845,  834,  851,  858,  901,  902,
+      849, 1949,  899,  846,  849,  848,  868,  865,  870,  871,
+      857,  866,  876,  856,  871,  878,  920, 1949,  921,  922,
+      873,  883,  885,  874,  870,  877,  886,  931,  878,  876,
+      878,  895,  936,  886,  885,  891,  889,  887,  942,  943,
+
+      939, 1949,  901,  894,  885,  904,  892,  902,  899,  904,
+      900,  913,  913, 1949,  897,  899,  899, 1949,  900,  960,
+      899,  918,  919,  964,  965,  919,  904,  925,  924,  908,
+      913,  931, 1949,  921,  954,  945,  977,  917,  939,  936,
+     1949,  923,  925,  942,  937,  941,  986,  934,  938, 1949,
+     1949,  948,  948,  986,  933,  988,  935,  995,  938,  949,
+      942,  948,  944,  962,  963,  965, 1949, 1949,  964, 1949,
+      949,  950,  969,  959,  952,  964, 1008,  972, 1949,  964,
+     1016,  957, 1018, 1949, 1019,  961,  967,  974, 1018, 1949,
+     1949,  966,  968,  982,  987,  970, 1029,  986,  987,  988,
+
+     1028,  980,  985, 1036,  989,  985, 1039, 1949,  986, 1041,
+     1042, 1949, 1949,  982, 1044, 1003, 1046,  988, 1000, 1005,
+      991, 1021, 1052, 1949, 1009, 1002, 1011, 1056, 1003, 1018,
+     1054, 1006, 1949, 1002, 1018, 1023, 1010, 1006, 1066, 1019,
+     1024, 1949, 1025, 1018, 1027, 1028, 1025, 1015, 1018, 1018,
+     1023, 1078, 1080, 1023, 1082, 1078, 1019, 1034, 1028, 1088,
+     1949, 1041, 1949, 1949, 1046, 1038, 1048, 1034, 1035, 1096,
+     1040, 1050, 1099, 1949, 1048, 1048, 1050, 1052, 1105, 1046,
+     1049, 1949, 1050, 1069, 1949, 1053, 1949, 1949, 1067, 1949,
+     1061, 1949, 1113, 1062, 1115, 1116, 1096, 1949, 1118, 1075,
+
+     1116, 1949, 1064, 1072, 1066, 1063, 1066, 1069, 1069, 1070,
+     1077, 1067, 1949, 1089, 1075, 1076, 1091, 1091, 1094, 1094,
+     1091, 1136, 1098, 1090, 1949, 1949, 1100, 1949, 1097, 1102,
+     1103, 1100, 1144, 1949, 1093, 1094, 1094, 1100, 1099, 1110,
+     1949, 1151, 1098, 1949, 1099, 1099, 1101, 1107, 1949, 1109,
+     1163, 1105, 1113, 1116, 1167, 1128, 1949, 1125, 1949, 1122,
+     1949, 1145, 1949, 1172, 1114, 1174, 1175, 1132, 1137, 1119,
+     1179, 1180, 1133, 1123, 1128, 1184, 1185, 1181, 1144, 1140,
+     1184, 1132, 1137, 1135, 1194, 1150, 1196, 1154, 1199, 1160,
+     1149, 1143, 1159, 1159, 1205, 1147, 1164, 1163, 1147, 1205,
+
+     1206, 1153, 1208, 1171, 1172, 1949, 1172, 1173, 1160, 1949,
+     1171, 1220, 1178, 1191, 1949, 1175, 1949, 1949, 1166, 1177,
+     1226, 1949, 1949, 1173, 1171, 1185, 1949, 1949, 1175, 1226,
+     1169, 1174, 1234, 1182, 1192, 1193, 1949, 1238, 1191, 1949,
+     1240, 1949, 1183, 1198, 1186, 1201, 1205, 1949, 1241, 1207,
+     1200, 1209, 1192, 1200, 1254, 1213, 1212, 1257, 1205, 1259,
+     1260, 1209, 1949, 1262, 1263, 1212, 1265, 1207, 1949, 1214,
+     1214, 1269, 1213, 1212, 1272, 1225, 1949, 1269, 1220, 1217,
+     1949, 1231, 1949, 1234, 1279, 1232, 1281, 1240, 1223, 1225,
+     1222, 1238, 1239, 1248, 1949, 1238, 1290, 1949, 1249, 1949,
+
+     1949, 1287, 1949, 1949, 1249, 1949, 1289, 1290, 1245, 1949,
+     1243, 1250, 1949, 1247, 1252, 1250, 1302, 1303, 1246, 1949,
+     1261, 1949, 1262, 1252, 1264, 1309, 1251, 1259, 1260, 1273,
+     1949, 1250, 1273, 1258, 1258, 1263, 1319, 1278, 1269, 1278,
+     1280, 1284, 1949, 1949, 1325, 1268, 1327, 1285, 1329, 1949,
+     1325, 1287, 1288, 1275, 1334, 1271, 1336, 1289, 1294, 1949,
+     1295, 1296, 1341, 1298, 1301, 1949, 1344, 1949, 1305, 1949,
+     1287, 1347, 1348, 1291, 1949, 1308, 1949, 1299, 1295, 1295,
+     1297, 1949, 1302, 1312, 1949, 1298, 1310, 1949, 1949, 1315,
+     1309, 1317, 1314, 1305, 1359, 1306, 1314, 1323, 1316, 1311,
+
+     1326, 1371, 1318, 1325, 1312, 1327, 1332, 1377, 1334, 1379,
+     1322, 1949, 1338, 1329, 1343, 1339, 1332, 1949, 1386, 1949,
+     1387, 1388, 1343, 1342, 1343, 1333, 1949, 1949, 1949, 1393,
+     1335, 1351, 1396, 1949, 1392, 1341, 1949, 1340, 1342, 1353,
+     1402, 1351, 1949, 1360, 1405, 1949, 1949, 1411, 1416, 1421,
+     1426, 1431, 1436, 1441, 1444, 1418, 1423, 1425, 1438
     } ;
 
-static const flex_int16_t yy_def[1544] =
+static const flex_int16_t yy_def[1560] =
     {   0,
-     1532, 1532, 1533, 1533, 1532, 1532, 1532, 1532, 1532, 1532,
-     1531, 1531, 1531, 1531, 1531, 1534, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1535,
-     1531, 1531, 1531, 1536,   15, 1531,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1537,   45,   45,
+     1548, 1548, 1549, 1549, 1548, 1548, 1548, 1548, 1548, 1548,
+     1547, 1547, 1547, 1547, 1547, 1550, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1551,
+     1547, 1547, 1547, 1552,   15, 1547,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1553,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1534,
-     1531, 1531, 1531, 1531, 1531, 1531, 1538, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1535, 1531,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1550,
+     1547, 1547, 1547, 1547, 1547, 1547, 1554, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1551, 1547,
 
-     1536, 1531, 1531,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1539,   45, 1537,   45,   45,
+     1552, 1547, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1555,   45, 1553,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1538, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1540,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1554, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1556,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1539, 1531, 1537,   45,   45,   45,   45,
+       45,   45,   45, 1555, 1547, 1553,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1541,
+       45,   45, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1557,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-     1531,   45, 1537, 1531,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1547,   45,
+     1547,   45, 1553, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1531,   45,   45,   45,   45, 1531, 1531,
-     1531, 1542,   45,   45,   45,   45,   45,   45,   45,   45,
-     1531,   45,   45, 1531,   45, 1537,   45,   45,   45,   45,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
-       45, 1531,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45, 1547, 1547,
+     1547, 1558,   45,   45,   45,   45,   45,   45,   45,   45,
+     1547,   45,   45, 1547,   45, 1553,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45, 1547,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1547,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1531,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
+     1547,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1531, 1531,   45,   45, 1531,   45,   45, 1531, 1543,
-       45,   45,   45,   45, 1531, 1531,   45, 1531,   45, 1531,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
+       45, 1547, 1547,   45,   45, 1547,   45,   45, 1547, 1559,
+       45,   45,   45,   45, 1547, 1547,   45, 1547,   45, 1547,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1547,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1531,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 1531,   45,   45,   45,   45,   45,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-     1531,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1547,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
 
-       45, 1531,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1547,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1531,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1531, 1531,   45,   45,
-       45,   45, 1531, 1531,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547, 1547,   45,
+       45,   45,   45, 1547, 1547,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 1531,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1547,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1531,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1547,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45, 1531,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1547,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1547,
+       45,   45,   45,   45,   45, 1547,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 1531,   45,   45,   45, 1531,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1531,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
+       45,   45,   45,   45, 1547,   45,   45,   45, 1547,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1531,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1531,   45,   45,   45, 1531,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1531,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45,   45, 1531, 1531,   45,   45,   45,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1531, 1531,   45, 1531,   45,   45,   45,   45,
-       45,   45,   45,   45, 1531,   45,   45,   45,   45, 1531,
-       45,   45,   45,   45,   45, 1531, 1531,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1531,   45,   45,   45, 1531, 1531,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1531,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45,   45,   45, 1531,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1531,   45, 1531, 1531,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-       45,   45,   45,   45,   45,   45, 1531,   45,   45, 1531,
-       45, 1531, 1531,   45, 1531,   45, 1531,   45,   45,   45,
-       45,   45, 1531,   45,   45,   45, 1531,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45, 1531,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531, 1531,
-       45, 1531,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45,   45, 1531,   45,   45, 1531,   45,   45,
-       45,   45, 1531,   45,   45,   45,   45,   45,   45,   45,
-     1531,   45, 1531,   45, 1531,   45, 1531,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45, 1547,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1547, 1547,   45, 1547,
+       45,   45,   45,   45,   45,   45,   45,   45, 1547,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45, 1547,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45, 1547,   45,   45,
+       45, 1547, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1547,   45, 1547, 1547,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45, 1547,   45, 1547, 1547,   45, 1547,
+       45, 1547,   45,   45,   45,   45,   45, 1547,   45,   45,
+
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1547, 1547,   45, 1547,   45,   45,
+       45,   45,   45, 1547,   45,   45,   45,   45,   45,   45,
+     1547,   45,   45, 1547,   45,   45,   45,   45, 1547,   45,
+       45,   45,   45,   45,   45,   45, 1547,   45, 1547,   45,
+     1547,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-
-       45,   45, 1531,   45,   45,   45,   45, 1531,   45, 1531,
-     1531,   45,   45, 1531, 1531,   45,   45,   45, 1531, 1531,
-       45,   45,   45,   45,   45,   45,   45,   45, 1531,   45,
-       45, 1531,   45, 1531,   45,   45,   45,   45,   45, 1531,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1531,   45,   45,   45,   45, 1531,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45, 1531,   45, 1531,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1531,   45,   45, 1531,   45,
-     1531, 1531,   45, 1531, 1531,   45, 1531,   45,   45, 1531,
-
-       45,   45, 1531,   45,   45,   45,   45,   45,   45, 1531,
-       45, 1531,   45,   45,   45,   45,   45,   45,   45,   45,
-     1531,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1531, 1531,   45,   45,   45,   45,   45, 1531,   45,
-       45,   45,   45,   45,   45,   45,   45, 1531,   45,   45,
-       45,   45,   45, 1531,   45, 1531,   45, 1531,   45,   45,
-       45,   45, 1531,   45, 1531,   45,   45,   45, 1531,   45,
-       45, 1531,   45,   45, 1531, 1531,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45, 1547,   45,   45,   45, 1547,
+       45,   45,   45,   45, 1547,   45, 1547, 1547,   45,   45,
+       45, 1547, 1547,   45,   45,   45, 1547, 1547,   45,   45,
+       45,   45,   45,   45,   45,   45, 1547,   45,   45, 1547,
+       45, 1547,   45,   45,   45,   45,   45, 1547,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547,   45,   45,   45,   45,   45, 1547,   45,
+       45,   45,   45,   45,   45,   45, 1547,   45,   45,   45,
+     1547,   45, 1547,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1547,   45,   45, 1547,   45, 1547,
+
+     1547,   45, 1547, 1547,   45, 1547,   45,   45,   45, 1547,
+       45,   45, 1547,   45,   45,   45,   45,   45,   45, 1547,
+       45, 1547,   45,   45,   45,   45,   45,   45,   45,   45,
+     1547,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1547, 1547,   45,   45,   45,   45,   45, 1547,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1547,
+       45,   45,   45,   45,   45, 1547,   45, 1547,   45, 1547,
+       45,   45,   45,   45, 1547,   45, 1547,   45,   45,   45,
+       45, 1547,   45,   45, 1547,   45,   45, 1547, 1547,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45, 1531,   45, 1531,   45,   45,   45,   45,   45,   45,
-     1531, 1531, 1531,   45,   45,   45,   45, 1531,   45,   45,
-     1531,   45,   45,   45,   45,   45, 1531,   45,   45, 1531,
-        0, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1547,   45,   45,   45,   45,   45, 1547,   45, 1547,
+       45,   45,   45,   45,   45,   45, 1547, 1547, 1547,   45,
+       45,   45,   45, 1547,   45,   45, 1547,   45,   45,   45,
+       45,   45, 1547,   45,   45, 1547,    0, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547
     } ;
 
-static const flex_int16_t yy_nxt[2007] =
+static const flex_int16_t yy_nxt[2023] =
     {   0,
-     1531,   13,   14,   13, 1531,   15,   16, 1531,   17,   18,
+     1547,   13,   14,   13, 1547,   15,   16, 1547,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
        86,  702,   37,   14,   37,   87,   25,   26,   38,  102,
-     1531,   27,   37,   14,   37,   42,   28,   42,   38,   92,
+     1547,   27,   37,   14,   37,   42,   28,   42,   38,   92,
        93,   29,  197,   30,   13,   14,   13,   91,   92,   25,
        31,   93,   13,   14,   13,   13,   14,   13,   32,   40,
       703,   13,   14,   13,   33,   40,  103,   92,   93,  197,
@@ -1290,37 +1293,37 @@ static const flex_int16_t yy_nxt[2007] =
        59,   60,   61,   62,   63,   64,   65,   66,   67,   52,
 
        68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
-       78,   79,   57,   45,   45,   45,   45,   45,   81,  815,
+       78,   79,   57,   45,   45,   45,   45,   45,   81,  816,
        82,   82,   82,   82,   82,   81,  105,   84,   84,   84,
        84,   84,  108,   83,   85,   85,   85,   85,   85,   81,
        83,   84,   84,   84,   84,   84,  183,   83,  258,  259,
       112,  123,  119,  134,   83,  108,   83,  185,  120,  124,
       113,  121,  125,   83,  135,  126,  137,  127,  138,  128,
        83,  142,  183,  112,  136,  139,  161,   83,   45,  184,
-      162,  143,  816,  144,   45,  185,   45,   45,  113,   45,
+      162,  143,  817,  144,   45,  185,   45,   45,  113,   45,
       163,   45,   45,   45,  413,  117,  146,  147,   45,   45,
 
       148,   45,   45,  185,  414,  184,  149,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      129,  188,   45,  817,  130,  150,   45,  131,  132,  151,
+      129,  188,   45,  818,  130,  150,   45,  131,  132,  151,
        45,  111,  165,  275,  276,  183,  166,  102,   45,  114,
       133,  193,   45,  156,   45,  118,  200,  173,  174,  152,
       153,  157,  154,  158,  155,  184,  167,  112,  159,  160,
       168,  186,  178,  169,  246,  392,  406,  113,  247,  193,
-      170,  171,  179,  200,  103,  203,  172,  180,  393,  818,
+      170,  171,  179,  200,  103,  203,  172,  180,  393,  819,
       175,  187,  176,   85,   85,   85,   85,   85,   81,  199,
 
        82,   82,   82,   82,   82,  113,   83,  201,  203,   89,
-      819,   89,  177,   83,   90,   90,   90,   90,   90,   81,
+      820,   89,  177,   83,   90,   90,   90,   90,   90,   81,
       202,   84,   84,   84,   84,   84,  101,  199,  407,   83,
-      196,  193,  820,  101,   83,  201,   83,   85,   85,   85,
+      196,  193,  821,  101,   83,  201,   83,   85,   85,   85,
        85,   85,   90,   90,   90,   90,   90,  202,  207,  230,
        83,   90,   90,   90,   90,   90,  196,   83,  277,  208,
       215,  234,  278,  101,  235,  231,  279,  101,  236,  216,
       217,  101,  261,   83,  199,  262,  263,  294,  200,  101,
       266,  202,  293,  101,  295,  101,  191,  206,  206,  206,
-      206,  206,  294,  472,  473,  821,  206,  206,  206,  206,
+      206,  206,  294,  472,  473,  822,  206,  206,  206,  206,
 
       206,  206,  199,  294,  252,  286,  293,  295,  289,  295,
       293,  305,  302,  306,  308,  267,  268,  269,  297,  206,
@@ -1329,82 +1332,82 @@ static const flex_int16_t yy_nxt[2007] =
       306,  356,  382,  367,  325,  383,  309,  409,  310,  326,
       327,  401,  315,  415,  312,  313,  313,  313,  313,  313,
       420,  409,  417,  418,  313,  313,  313,  313,  313,  313,
-      410,  419,  423,  491,  445,  479,  824,  415,  439,  368,
-      446,  520,  415,  420,  521,  480,  829,  313,  313,  313,
+      410,  419,  423,  491,  445,  479,  825,  415,  439,  368,
+      446,  520,  415,  420,  521,  480,  830,  313,  313,  313,
       313,  313,  313,  369,  357,  440,  533,  358,  729,  533,
 
       423,  426,  426,  426,  426,  426,  427,  684,  685,  730,
       426,  426,  426,  426,  426,  426,  459,  559,  500,  505,
       526,  460,  501,  506,  533,  527,  541,  543,  542,  645,
       560,  492,  561,  426,  426,  426,  426,  426,  426,  569,
-      646,  641,  744,  745,  570,  751,  647,  754,  755,  791,
-      822,  752,  792,  541,  830,  542,  645,  823,  831,  825,
-      826,  833,  834,  835,  832,  836,  745,  827,  646,  461,
-      744,  828,  837,  838,  462,   45,   45,   45,   45,   45,
+      646,  641,  744,  745,  570,  751,  647,  754,  755,  792,
+      756,  752,  793,  541,  823,  542,  645,  831,  832,  826,
+      827,  824,  834,  835,  833,  836,  745,  828,  646,  461,
+      744,  829,  837,  838,  462,   45,   45,   45,   45,   45,
       839,  840,  841,  842,   45,   45,   45,   45,   45,   45,
       843,  844,  845,  846,  847,  848,  849,  850,  851,  852,
 
       853,  854,  855,  856,  857,  858,  859,   45,   45,   45,
        45,   45,   45,  860,  861,  862,  863,  864,  865,  866,
-      867,  868,  847,  869,  870,  871,  872,  873,  874,  875,
-      876,  877,  878,  880,  881,  882,  883,  879,  884,  885,
+      867,  868,  869,  848,  870,  871,  872,  873,  874,  875,
+      876,  877,  878,  879,  880,  882,  883,  884,  885,  881,
       886,  887,  888,  889,  890,  891,  892,  893,  894,  895,
-      896,  898,  899,  900,  897,  901,  902,  903,  904,  905,
+      896,  897,  898,  900,  901,  902,  899,  903,  904,  905,
       906,  907,  908,  909,  910,  911,  912,  913,  914,  915,
       916,  917,  918,  919,  920,  921,  922,  923,  924,  925,
       926,  927,  928,  929,  930,  931,  932,  933,  934,  935,
       936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
 
       946,  947,  948,  949,  950,  951,  952,  953,  954,  955,
-      956,  957,  958,  959,  960,  961,  962,  963,  964,  942,
-      965,  966,  941,  967,  968,  969,  970,  971,  972,  973,
-      974,  975,  977,  978,  979,  980,  981,  982,  983,  984,
+      956,  957,  958,  959,  960,  961,  962,  963,  964,  965,
+      966,  944,  967,  968,  943,  969,  970,  971,  972,  973,
+      974,  975,  976,  977,  978,  980,  981,  982,  983,  984,
       985,  986,  987,  988,  989,  990,  991,  992,  993,  994,
-      996,  997,  998,  999, 1000, 1001, 1002, 1003, 1004, 1005,
-      995, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
+      995,  996,  997,  999, 1000, 1001, 1002, 1003, 1004, 1005,
+     1006, 1007, 1008,  998, 1009, 1010, 1011, 1012, 1013, 1014,
      1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
-     1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1034,  976,
-     1033, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
+     1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
+     1035, 1037,  979, 1036, 1038, 1039, 1040, 1041, 1042, 1043,
 
      1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
-     1054, 1055, 1056, 1057, 1058, 1032, 1059, 1033, 1060, 1061,
-     1062, 1063, 1064, 1066, 1068, 1069, 1070, 1065, 1071, 1072,
-     1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
+     1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1035, 1062,
+     1036, 1063, 1064, 1065, 1066, 1067, 1068, 1070, 1072, 1073,
+     1074, 1069, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
      1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
      1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
-     1103, 1104, 1105, 1106, 1107, 1108, 1109, 1067, 1110, 1111,
-     1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121,
+     1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
+     1113, 1071, 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, 1118,
+     1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141,
 
-     1141, 1142, 1143, 1144, 1145, 1119, 1146, 1147, 1148, 1149,
+     1142, 1143, 1144, 1122, 1145, 1146, 1147, 1148, 1149, 1123,
      1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
      1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
-     1170, 1171, 1172, 1173, 1175, 1176, 1177, 1178, 1179, 1180,
+     1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1180,
      1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
-     1191, 1192, 1193, 1194, 1195, 1196, 1197, 1199, 1200, 1201,
-     1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
-     1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1192,
-     1221, 1222, 1223, 1224, 1225, 1227, 1174, 1228, 1229, 1230,
-     1231, 1232, 1226, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
-
-     1198, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
-     1249, 1250, 1251, 1252, 1253, 1255, 1256, 1257, 1258, 1254,
-     1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
-     1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1256,
-     1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
+     1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
+     1201, 1202, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
+     1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221,
+     1222, 1223, 1224, 1225, 1197, 1226, 1227, 1228, 1229, 1230,
+     1231, 1179, 1233, 1234, 1235, 1236, 1237, 1238, 1232, 1239,
+
+     1240, 1241, 1242, 1243, 1244, 1203, 1245, 1246, 1247, 1248,
+     1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
+     1259, 1261, 1262, 1263, 1264, 1260, 1265, 1266, 1267, 1268,
+     1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
+     1279, 1280, 1281, 1282, 1283, 1262, 1284, 1285, 1286, 1287,
      1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
      1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
      1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
      1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
-     1328, 1329, 1331, 1332, 1333, 1334, 1307, 1335, 1336, 1337,
+     1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
 
-     1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
+     1339, 1340, 1341, 1314, 1342, 1343, 1344, 1345, 1346, 1347,
      1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
      1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
      1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377,
-     1378, 1379, 1380, 1381, 1382, 1383, 1384, 1357, 1385, 1330,
-     1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
+     1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387,
+     1388, 1389, 1390, 1391, 1392, 1365, 1393, 1338, 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,
@@ -1419,78 +1422,80 @@ static const flex_int16_t yy_nxt[2007] =
      1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
      1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
      1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525,
-     1526, 1527, 1528, 1529, 1530,   12,   12,   12,   12,   12,
-
-       36,   36,   36,   36,   36,   80,  300,   80,   80,   80,
-       99,  412,   99,  530,   99,  101,  101,  101,  101,  101,
-      116,  116,  116,  116,  116,  182,  101,  182,  182,  182,
-      204,  204,  204,  814,  813,  812,  811,  810,  809,  808,
-      807,  806,  805,  804,  803,  802,  801,  800,  799,  798,
-      797,  796,  795,  794,  793,  790,  789,  788,  787,  786,
-      785,  784,  783,  782,  781,  780,  779,  778,  777,  776,
-      775,  774,  773,  772,  771,  770,  769,  768,  767,  766,
-      765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
-      753,  750,  749,  748,  747,  746,  743,  742,  741,  740,
-
-      739,  738,  737,  736,  735,  734,  733,  732,  731,  728,
-      727,  726,  725,  724,  723,  722,  721,  720,  719,  718,
-      717,  716,  715,  714,  713,  712,  711,  710,  709,  708,
-      707,  706,  705,  704,  701,  700,  699,  698,  697,  696,
-      695,  694,  693,  692,  691,  690,  689,  688,  687,  686,
-      683,  682,  681,  680,  679,  678,  677,  676,  675,  674,
-      673,  672,  671,  670,  669,  668,  667,  666,  665,  664,
-      663,  662,  661,  660,  659,  658,  657,  656,  655,  654,
-      653,  652,  651,  650,  649,  648,  644,  643,  642,  641,
-      640,  639,  638,  637,  636,  635,  634,  633,  632,  631,
-
-      630,  629,  628,  627,  626,  625,  624,  623,  622,  621,
-      620,  619,  618,  617,  616,  615,  614,  613,  612,  611,
-      610,  609,  608,  607,  606,  605,  604,  603,  602,  601,
-      600,  599,  598,  597,  596,  595,  594,  593,  592,  591,
-      590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
-      580,  579,  578,  577,  576,  575,  574,  573,  572,  571,
-      568,  567,  566,  565,  564,  563,  562,  558,  557,  556,
-      555,  554,  553,  552,  551,  550,  549,  548,  547,  546,
-      545,  544,  540,  539,  538,  537,  536,  535,  534,  532,
-      531,  529,  528,  525,  524,  523,  522,  519,  518,  517,
-
-      516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
-      504,  503,  502,  499,  498,  497,  496,  495,  494,  493,
-      490,  489,  488,  487,  486,  485,  484,  483,  482,  481,
-      478,  477,  476,  475,  474,  471,  470,  469,  468,  467,
-      466,  465,  464,  463,  458,  457,  456,  455,  454,  453,
-      452,  451,  450,  449,  448,  447,  444,  443,  442,  441,
-      438,  437,  436,  435,  434,  433,  432,  431,  430,  429,
-      428,  425,  424,  422,  421,  416,  411,  408,  405,  404,
-      403,  402,  400,  399,  398,  397,  396,  395,  394,  391,
-      390,  389,  388,  387,  386,  385,  384,  381,  380,  379,
-
-      378,  377,  376,  375,  374,  373,  372,  371,  370,  366,
-      365,  364,  363,  362,  361,  360,  359,  355,  354,  353,
-      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
-      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
-      332,  331,  330,  329,  328,  323,  322,  321,  320,  319,
-      318,  317,  316,  314,  205,  311,  309,  307,  304,  303,
-      301,  299,  292,  291,  290,  288,  287,  285,  284,  283,
-      282,  281,  280,  265,  264,  260,  257,  256,  255,  254,
-      253,  251,  250,  249,  248,  245,  244,  243,  242,  241,
-      240,  239,  238,  237,  233,  232,  229,  226,  225,  224,
-
-      223,  220,  219,  218,  214,  213,  212,  211,  210,  209,
-      205,  198,  195,  194,  192,  190,  189,  181,  164,  145,
-      122,  110,  107,  106,  104,   43,  100,   98,   97,   88,
-       43, 1531,   11, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-
-     1531, 1531, 1531, 1531, 1531, 1531
+     1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
+
+     1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
+     1546,   12,   12,   12,   12,   12,   36,   36,   36,   36,
+       36,   80,  300,   80,   80,   80,   99,  412,   99,  530,
+       99,  101,  101,  101,  101,  101,  116,  116,  116,  116,
+      116,  182,  101,  182,  182,  182,  204,  204,  204,  815,
+      814,  813,  812,  811,  810,  809,  808,  807,  806,  805,
+      804,  803,  802,  801,  800,  799,  798,  797,  796,  795,
+      794,  791,  790,  789,  788,  787,  786,  785,  784,  783,
+      782,  781,  780,  779,  778,  777,  776,  775,  774,  773,
+      772,  771,  770,  769,  768,  767,  766,  765,  764,  763,
+
+      762,  761,  760,  759,  758,  757,  753,  750,  749,  748,
+      747,  746,  743,  742,  741,  740,  739,  738,  737,  736,
+      735,  734,  733,  732,  731,  728,  727,  726,  725,  724,
+      723,  722,  721,  720,  719,  718,  717,  716,  715,  714,
+      713,  712,  711,  710,  709,  708,  707,  706,  705,  704,
+      701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
+      691,  690,  689,  688,  687,  686,  683,  682,  681,  680,
+      679,  678,  677,  676,  675,  674,  673,  672,  671,  670,
+      669,  668,  667,  666,  665,  664,  663,  662,  661,  660,
+      659,  658,  657,  656,  655,  654,  653,  652,  651,  650,
+
+      649,  648,  644,  643,  642,  641,  640,  639,  638,  637,
+      636,  635,  634,  633,  632,  631,  630,  629,  628,  627,
+      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
+      616,  615,  614,  613,  612,  611,  610,  609,  608,  607,
+      606,  605,  604,  603,  602,  601,  600,  599,  598,  597,
+      596,  595,  594,  593,  592,  591,  590,  589,  588,  587,
+      586,  585,  584,  583,  582,  581,  580,  579,  578,  577,
+      576,  575,  574,  573,  572,  571,  568,  567,  566,  565,
+      564,  563,  562,  558,  557,  556,  555,  554,  553,  552,
+      551,  550,  549,  548,  547,  546,  545,  544,  540,  539,
+
+      538,  537,  536,  535,  534,  532,  531,  529,  528,  525,
+      524,  523,  522,  519,  518,  517,  516,  515,  514,  513,
+      512,  511,  510,  509,  508,  507,  504,  503,  502,  499,
+      498,  497,  496,  495,  494,  493,  490,  489,  488,  487,
+      486,  485,  484,  483,  482,  481,  478,  477,  476,  475,
+      474,  471,  470,  469,  468,  467,  466,  465,  464,  463,
+      458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
+      448,  447,  444,  443,  442,  441,  438,  437,  436,  435,
+      434,  433,  432,  431,  430,  429,  428,  425,  424,  422,
+      421,  416,  411,  408,  405,  404,  403,  402,  400,  399,
+
+      398,  397,  396,  395,  394,  391,  390,  389,  388,  387,
+      386,  385,  384,  381,  380,  379,  378,  377,  376,  375,
+      374,  373,  372,  371,  370,  366,  365,  364,  363,  362,
+      361,  360,  359,  355,  354,  353,  352,  351,  350,  349,
+      348,  347,  346,  345,  344,  343,  342,  341,  340,  339,
+      338,  337,  336,  335,  334,  333,  332,  331,  330,  329,
+      328,  323,  322,  321,  320,  319,  318,  317,  316,  314,
+      205,  311,  309,  307,  304,  303,  301,  299,  292,  291,
+      290,  288,  287,  285,  284,  283,  282,  281,  280,  265,
+      264,  260,  257,  256,  255,  254,  253,  251,  250,  249,
+
+      248,  245,  244,  243,  242,  241,  240,  239,  238,  237,
+      233,  232,  229,  226,  225,  224,  223,  220,  219,  218,
+      214,  213,  212,  211,  210,  209,  205,  198,  195,  194,
+      192,  190,  189,  181,  164,  145,  122,  110,  107,  106,
+      104,   43,  100,   98,   97,   88,   43, 1547,   11, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547
     } ;
 
-static const flex_int16_t yy_chk[2007] =
+static const flex_int16_t yy_chk[2023] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1563,156 +1568,158 @@ static const flex_int16_t yy_chk[2007] =
       407,  346,  383,  387,  415,  407,  425,  427,  425,  541,
       445,  374,  445,  313,  313,  313,  313,  313,  313,  454,
       542,  543,  645,  646,  454,  652,  543,  654,  654,  691,
-      723,  652,  691,  425,  727,  425,  541,  723,  728,  725,
-      725,  730,  731,  732,  728,  733,  646,  725,  542,  346,
-      645,  725,  734,  735,  346,  426,  426,  426,  426,  426,
-      736,  737,  738,  739,  426,  426,  426,  426,  426,  426,
-      740,  741,  742,  744,  745,  746,  747,  748,  749,  750,
-
-      751,  752,  754,  755,  756,  757,  758,  426,  426,  426,
-      426,  426,  426,  759,  760,  761,  762,  763,  764,  765,
-      766,  767,  745,  768,  769,  770,  771,  773,  774,  775,
-      776,  777,  778,  779,  780,  781,  782,  778,  783,  784,
-      785,  786,  789,  790,  791,  792,  795,  796,  797,  798,
-      799,  800,  801,  802,  799,  803,  804,  805,  807,  808,
-      809,  810,  811,  812,  813,  814,  815,  816,  817,  818,
-      819,  820,  821,  822,  823,  824,  825,  826,  827,  828,
-      829,  830,  831,  832,  834,  835,  836,  837,  838,  839,
-      840,  841,  842,  843,  844,  846,  847,  848,  849,  850,
-
-      851,  852,  853,  854,  855,  856,  857,  858,  859,  860,
-      861,  862,  863,  864,  865,  866,  867,  869,  870,  847,
-      871,  872,  846,  873,  874,  875,  876,  877,  879,  880,
-      881,  882,  883,  885,  886,  887,  888,  889,  890,  891,
-      892,  893,  894,  895,  896,  897,  898,  899,  900,  901,
-      902,  904,  905,  906,  908,  909,  910,  911,  912,  913,
-      901,  914,  915,  916,  917,  918,  919,  920,  921,  922,
-      923,  924,  925,  927,  928,  929,  930,  931,  932,  933,
-      934,  935,  936,  937,  938,  939,  940,  941,  943,  882,
-      942,  944,  945,  946,  947,  948,  950,  951,  952,  953,
-
-      954,  955,  956,  957,  958,  960,  961,  962,  963,  964,
-      965,  966,  967,  968,  969,  941,  970,  942,  971,  972,
-      973,  974,  976,  977,  978,  979,  980,  976,  981,  982,
-      983,  984,  985,  986,  987,  988,  989,  990,  991,  992,
-      993,  994,  995,  996,  997,  998, 1000, 1001, 1002, 1003,
-     1004, 1005, 1006, 1007, 1008, 1009, 1010, 1012, 1013, 1014,
-     1016, 1017, 1018, 1019, 1020, 1021, 1022,  977, 1023, 1024,
-     1025, 1026, 1027, 1028, 1029, 1031, 1032, 1033, 1034, 1035,
-     1036, 1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1048,
-     1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1032,
-
-     1058, 1059, 1060, 1061, 1062, 1033, 1065, 1067, 1068, 1069,
-     1070, 1071, 1072, 1073, 1074, 1076, 1077, 1078, 1079, 1081,
-     1082, 1083, 1084, 1085, 1088, 1089, 1090, 1091, 1092, 1093,
-     1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
-     1105, 1106, 1107, 1110, 1111, 1112, 1113, 1114, 1115, 1116,
-     1117, 1118, 1119, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
-     1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139,
-     1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1118,
-     1149, 1150, 1151, 1152, 1153, 1154, 1097, 1155, 1157, 1160,
-     1161, 1162, 1153, 1163, 1164, 1165, 1166, 1167, 1168, 1170,
-
-     1124, 1171, 1172, 1173, 1174, 1175, 1176, 1178, 1179, 1181,
-     1184, 1186, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1190,
-     1196, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
-     1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1192,
-     1217, 1218, 1221, 1223, 1224, 1225, 1226, 1227, 1229, 1230,
-     1231, 1232, 1233, 1234, 1236, 1237, 1239, 1240, 1241, 1242,
-     1244, 1245, 1246, 1247, 1248, 1249, 1250, 1252, 1254, 1256,
-     1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
-     1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
-     1277, 1278, 1279, 1280, 1281, 1282, 1256, 1283, 1284, 1285,
-
-     1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
-     1296, 1297, 1298, 1300, 1301, 1302, 1304, 1305, 1306, 1307,
-     1309, 1312, 1313, 1316, 1317, 1318, 1321, 1322, 1323, 1324,
-     1325, 1326, 1327, 1328, 1330, 1331, 1333, 1335, 1336, 1337,
-     1338, 1339, 1341, 1342, 1343, 1344, 1345, 1307, 1346, 1278,
-     1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1356, 1357,
-     1358, 1359, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1369,
-     1370, 1371, 1373, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
-     1382, 1383, 1384, 1385, 1387, 1388, 1390, 1393, 1396, 1398,
-     1399, 1401, 1402, 1404, 1405, 1406, 1407, 1408, 1409, 1411,
-
-     1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1422, 1423,
-     1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1434, 1435,
-     1436, 1437, 1438, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
-     1447, 1449, 1450, 1451, 1452, 1453, 1455, 1457, 1459, 1460,
-     1461, 1462, 1464, 1466, 1467, 1468, 1470, 1471, 1473, 1474,
-     1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486,
-     1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
-     1497, 1498, 1499, 1500, 1501, 1503, 1505, 1506, 1507, 1508,
-     1509, 1510, 1514, 1515, 1516, 1517, 1519, 1520, 1522, 1523,
-     1524, 1525, 1526, 1528, 1529, 1532, 1532, 1532, 1532, 1532,
-
-     1533, 1533, 1533, 1533, 1533, 1534, 1540, 1534, 1534, 1534,
-     1535, 1541, 1535, 1542, 1535, 1536, 1536, 1536, 1536, 1536,
-     1537, 1537, 1537, 1537, 1537, 1538, 1543, 1538, 1538, 1538,
-     1539, 1539, 1539,  715,  714,  713,  712,  711,  710,  709,
-      708,  707,  706,  705,  704,  703,  701,  700,  699,  698,
-      697,  696,  695,  694,  692,  690,  689,  688,  687,  686,
-      685,  684,  683,  682,  681,  680,  679,  678,  677,  676,
-      675,  673,  672,  671,  670,  669,  668,  667,  666,  665,
-      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
-      653,  651,  650,  649,  648,  647,  644,  643,  642,  640,
-
-      639,  637,  636,  635,  634,  633,  632,  631,  630,  627,
-      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
-      616,  615,  613,  612,  611,  610,  609,  608,  607,  606,
-      604,  603,  602,  601,  599,  598,  597,  596,  595,  594,
-      593,  591,  590,  589,  588,  587,  586,  585,  584,  583,
-      581,  580,  579,  578,  577,  576,  575,  574,  573,  572,
-      571,  570,  568,  567,  566,  565,  564,  563,  562,  561,
-      560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
-      550,  549,  548,  547,  546,  545,  539,  537,  534,  533,
-      532,  531,  529,  528,  527,  525,  524,  521,  520,  519,
-
-      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
-      508,  507,  506,  505,  504,  503,  502,  501,  500,  499,
-      498,  497,  496,  495,  494,  492,  490,  489,  488,  487,
-      486,  485,  484,  483,  482,  481,  480,  479,  477,  476,
-      475,  474,  473,  472,  471,  470,  469,  468,  467,  466,
-      465,  464,  463,  462,  461,  460,  458,  457,  456,  455,
-      453,  452,  451,  450,  449,  447,  446,  444,  443,  441,
-      440,  439,  438,  437,  436,  435,  433,  432,  431,  430,
-      429,  428,  423,  422,  420,  419,  418,  417,  416,  414,
-      413,  411,  408,  406,  405,  403,  402,  400,  399,  398,
-
-      397,  396,  395,  394,  393,  392,  391,  390,  389,  388,
-      386,  385,  384,  382,  381,  380,  379,  377,  376,  375,
-      373,  372,  371,  370,  369,  368,  367,  366,  365,  363,
-      361,  360,  359,  358,  357,  355,  354,  353,  352,  351,
-      350,  349,  348,  347,  345,  344,  343,  342,  341,  340,
-      339,  338,  337,  336,  335,  334,  332,  331,  330,  329,
-      326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
-      316,  312,  310,  307,  306,  303,  299,  292,  290,  289,
-      288,  287,  285,  284,  283,  282,  281,  280,  279,  277,
-      276,  275,  274,  273,  272,  271,  270,  268,  267,  266,
-
-      265,  264,  263,  262,  261,  260,  259,  258,  257,  255,
-      254,  253,  252,  251,  250,  249,  248,  246,  245,  244,
-      243,  242,  241,  240,  239,  237,  236,  235,  234,  233,
-      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
-      222,  221,  220,  219,  218,  216,  215,  214,  213,  212,
-      211,  210,  209,  207,  204,  202,  200,  198,  195,  194,
-      192,  189,  181,  180,  179,  177,  176,  174,  173,  172,
-      171,  170,  169,  165,  164,  162,  160,  159,  158,  157,
-      156,  154,  153,  152,  151,  149,  148,  147,  146,  145,
-      144,  143,  142,  141,  139,  138,  136,  134,  133,  132,
-
-      131,  129,  128,  127,  125,  124,  123,  122,  121,  120,
-      116,  110,  107,  106,  104,   99,   98,   79,   74,   68,
-       60,   53,   50,   49,   47,   43,   41,   39,   38,   24,
-       14,   11, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-     1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
-
-     1531, 1531, 1531, 1531, 1531, 1531
+      654,  652,  691,  425,  723,  425,  541,  727,  728,  725,
+      725,  723,  730,  731,  728,  732,  646,  725,  542,  346,
+      645,  725,  733,  734,  346,  426,  426,  426,  426,  426,
+      735,  736,  737,  738,  426,  426,  426,  426,  426,  426,
+      739,  740,  741,  742,  744,  745,  746,  747,  748,  749,
+
+      750,  751,  752,  754,  755,  756,  757,  426,  426,  426,
+      426,  426,  426,  758,  759,  760,  761,  762,  763,  764,
+      765,  766,  767,  745,  768,  769,  770,  771,  772,  774,
+      775,  776,  777,  778,  779,  780,  781,  782,  783,  779,
+      784,  785,  786,  787,  790,  791,  792,  793,  796,  797,
+      798,  799,  800,  801,  802,  803,  800,  804,  805,  806,
+      808,  809,  810,  811,  812,  813,  814,  815,  816,  817,
+      818,  819,  820,  821,  822,  823,  824,  825,  826,  827,
+      828,  829,  830,  831,  832,  833,  835,  836,  837,  838,
+      839,  840,  841,  842,  843,  844,  845,  847,  848,  849,
+
+      850,  851,  852,  853,  854,  855,  856,  857,  858,  859,
+      860,  861,  862,  863,  864,  865,  866,  867,  868,  869,
+      871,  848,  872,  873,  847,  874,  875,  876,  877,  878,
+      879,  881,  882,  883,  884,  885,  887,  888,  889,  890,
+      891,  892,  893,  894,  895,  896,  897,  898,  899,  900,
+      901,  902,  903,  904,  906,  907,  908,  910,  911,  912,
+      913,  914,  915,  903,  916,  917,  918,  919,  920,  921,
+      922,  923,  924,  925,  926,  927,  929,  930,  931,  932,
+      933,  934,  935,  936,  937,  938,  939,  940,  941,  942,
+      943,  945,  884,  944,  946,  947,  948,  949,  950,  952,
+
+      953,  954,  955,  956,  957,  958,  959,  960,  961,  963,
+      964,  965,  966,  967,  968,  969,  970,  971,  943,  972,
+      944,  973,  974,  975,  976,  977,  979,  980,  981,  982,
+      983,  979,  984,  985,  986,  987,  988,  989,  990,  991,
+      992,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
+     1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
+     1013, 1015, 1016, 1017, 1019, 1020, 1021, 1022, 1023, 1024,
+     1025,  980, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1034,
+     1035, 1036, 1037, 1038, 1039, 1040, 1042, 1043, 1044, 1045,
+     1046, 1047, 1048, 1049, 1052, 1053, 1054, 1055, 1056, 1057,
+
+     1058, 1059, 1060, 1035, 1061, 1062, 1063, 1064, 1065, 1036,
+     1066, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
+     1080, 1081, 1082, 1083, 1085, 1086, 1087, 1088, 1089, 1092,
+     1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
+     1103, 1104, 1105, 1106, 1107, 1109, 1110, 1111, 1114, 1115,
+     1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1125, 1126,
+     1127, 1128, 1129, 1130, 1131, 1132, 1134, 1135, 1136, 1137,
+     1138, 1139, 1140, 1141, 1143, 1144, 1145, 1146, 1147, 1148,
+     1149, 1150, 1151, 1152, 1122, 1153, 1154, 1155, 1156, 1157,
+     1158, 1101, 1159, 1160, 1162, 1165, 1166, 1167, 1158, 1168,
+
+     1169, 1170, 1171, 1172, 1173, 1128, 1175, 1176, 1177, 1178,
+     1179, 1180, 1181, 1183, 1184, 1186, 1189, 1191, 1193, 1194,
+     1195, 1196, 1197, 1199, 1200, 1195, 1201, 1203, 1204, 1205,
+     1206, 1207, 1208, 1209, 1210, 1211, 1212, 1214, 1215, 1216,
+     1217, 1218, 1219, 1220, 1221, 1197, 1222, 1223, 1224, 1227,
+     1229, 1230, 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239,
+     1240, 1242, 1243, 1245, 1246, 1247, 1248, 1250, 1251, 1252,
+     1253, 1254, 1255, 1256, 1258, 1260, 1262, 1264, 1265, 1266,
+     1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
+     1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1284, 1285,
+
+     1286, 1287, 1288, 1262, 1289, 1290, 1291, 1292, 1293, 1294,
+     1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
+     1305, 1307, 1308, 1309, 1311, 1312, 1313, 1314, 1316, 1319,
+     1320, 1321, 1324, 1325, 1326, 1329, 1330, 1331, 1332, 1333,
+     1334, 1335, 1336, 1338, 1339, 1341, 1343, 1344, 1345, 1346,
+     1347, 1349, 1350, 1351, 1352, 1314, 1353, 1285, 1354, 1355,
+     1356, 1357, 1358, 1359, 1360, 1361, 1362, 1364, 1365, 1366,
+     1367, 1368, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1378,
+     1379, 1380, 1382, 1384, 1385, 1386, 1387, 1388, 1389, 1390,
+     1391, 1392, 1393, 1394, 1396, 1397, 1399, 1402, 1405, 1407,
+
+     1408, 1409, 1411, 1412, 1414, 1415, 1416, 1417, 1418, 1419,
+     1421, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1432,
+     1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442,
+     1445, 1446, 1447, 1448, 1449, 1451, 1452, 1453, 1454, 1455,
+     1456, 1457, 1458, 1459, 1461, 1462, 1463, 1464, 1465, 1467,
+     1469, 1471, 1472, 1473, 1474, 1476, 1478, 1479, 1480, 1481,
+     1483, 1484, 1486, 1487, 1490, 1491, 1492, 1493, 1494, 1495,
+     1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
+     1506, 1507, 1508, 1509, 1510, 1511, 1513, 1514, 1515, 1516,
+     1517, 1519, 1521, 1522, 1523, 1524, 1525, 1526, 1530, 1531,
+
+     1532, 1533, 1535, 1536, 1538, 1539, 1540, 1541, 1542, 1544,
+     1545, 1548, 1548, 1548, 1548, 1548, 1549, 1549, 1549, 1549,
+     1549, 1550, 1556, 1550, 1550, 1550, 1551, 1557, 1551, 1558,
+     1551, 1552, 1552, 1552, 1552, 1552, 1553, 1553, 1553, 1553,
+     1553, 1554, 1559, 1554, 1554, 1554, 1555, 1555, 1555,  715,
+      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
+      704,  703,  701,  700,  699,  698,  697,  696,  695,  694,
+      692,  690,  689,  688,  687,  686,  685,  684,  683,  682,
+      681,  680,  679,  678,  677,  676,  675,  673,  672,  671,
+      670,  669,  668,  667,  666,  665,  664,  663,  662,  661,
+
+      660,  659,  658,  657,  656,  655,  653,  651,  650,  649,
+      648,  647,  644,  643,  642,  640,  639,  637,  636,  635,
+      634,  633,  632,  631,  630,  627,  626,  625,  624,  623,
+      622,  621,  620,  619,  618,  617,  616,  615,  613,  612,
+      611,  610,  609,  608,  607,  606,  604,  603,  602,  601,
+      599,  598,  597,  596,  595,  594,  593,  591,  590,  589,
+      588,  587,  586,  585,  584,  583,  581,  580,  579,  578,
+      577,  576,  575,  574,  573,  572,  571,  570,  568,  567,
+      566,  565,  564,  563,  562,  561,  560,  559,  558,  557,
+      556,  555,  554,  553,  552,  551,  550,  549,  548,  547,
+
+      546,  545,  539,  537,  534,  533,  532,  531,  529,  528,
+      527,  525,  524,  521,  520,  519,  518,  517,  516,  515,
+      514,  513,  512,  511,  510,  509,  508,  507,  506,  505,
+      504,  503,  502,  501,  500,  499,  498,  497,  496,  495,
+      494,  492,  490,  489,  488,  487,  486,  485,  484,  483,
+      482,  481,  480,  479,  477,  476,  475,  474,  473,  472,
+      471,  470,  469,  468,  467,  466,  465,  464,  463,  462,
+      461,  460,  458,  457,  456,  455,  453,  452,  451,  450,
+      449,  447,  446,  444,  443,  441,  440,  439,  438,  437,
+      436,  435,  433,  432,  431,  430,  429,  428,  423,  422,
+
+      420,  419,  418,  417,  416,  414,  413,  411,  408,  406,
+      405,  403,  402,  400,  399,  398,  397,  396,  395,  394,
+      393,  392,  391,  390,  389,  388,  386,  385,  384,  382,
+      381,  380,  379,  377,  376,  375,  373,  372,  371,  370,
+      369,  368,  367,  366,  365,  363,  361,  360,  359,  358,
+      357,  355,  354,  353,  352,  351,  350,  349,  348,  347,
+      345,  344,  343,  342,  341,  340,  339,  338,  337,  336,
+      335,  334,  332,  331,  330,  329,  326,  325,  324,  323,
+      322,  321,  320,  319,  318,  317,  316,  312,  310,  307,
+      306,  303,  299,  292,  290,  289,  288,  287,  285,  284,
+
+      283,  282,  281,  280,  279,  277,  276,  275,  274,  273,
+      272,  271,  270,  268,  267,  266,  265,  264,  263,  262,
+      261,  260,  259,  258,  257,  255,  254,  253,  252,  251,
+      250,  249,  248,  246,  245,  244,  243,  242,  241,  240,
+      239,  237,  236,  235,  234,  233,  232,  231,  230,  229,
+      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
+      218,  216,  215,  214,  213,  212,  211,  210,  209,  207,
+      204,  202,  200,  198,  195,  194,  192,  189,  181,  180,
+      179,  177,  176,  174,  173,  172,  171,  170,  169,  165,
+      164,  162,  160,  159,  158,  157,  156,  154,  153,  152,
+
+      151,  149,  148,  147,  146,  145,  144,  143,  142,  141,
+      139,  138,  136,  134,  133,  132,  131,  129,  128,  127,
+      125,  124,  123,  122,  121,  120,  116,  110,  107,  106,
+      104,   99,   98,   79,   74,   68,   60,   53,   50,   49,
+       47,   43,   41,   39,   38,   24,   14,   11, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+     1547, 1547
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1721,27 +1728,27 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[180] =
+static const flex_int16_t yy_rule_linenum[181] =
     {   0,
       147,  149,  151,  156,  157,  162,  163,  164,  176,  179,
       184,  191,  200,  209,  218,  227,  236,  245,  255,  264,
       273,  282,  291,  300,  309,  318,  327,  336,  345,  354,
-      366,  375,  384,  393,  402,  413,  424,  435,  446,  456,
-      466,  477,  488,  499,  510,  521,  532,  543,  554,  565,
-      576,  587,  598,  609,  618,  627,  637,  646,  656,  670,
-      686,  695,  704,  713,  722,  743,  764,  773,  783,  792,
-      803,  812,  821,  830,  839,  848,  858,  867,  878,  889,
-      901,  910,  919,  928,  937,  946,  955,  964,  973,  982,
-      992, 1003, 1015, 1024, 1033, 1043, 1053, 1063, 1073, 1083,
-
-     1093, 1102, 1112, 1121, 1130, 1139, 1148, 1158, 1168, 1177,
-     1187, 1196, 1205, 1214, 1223, 1232, 1241, 1250, 1259, 1268,
+      363,  375,  384,  393,  402,  411,  422,  433,  444,  455,
+      465,  475,  486,  497,  508,  519,  530,  541,  552,  563,
+      574,  585,  596,  607,  618,  627,  636,  646,  655,  665,
+      679,  695,  704,  713,  722,  731,  752,  773,  782,  792,
+      801,  812,  821,  830,  839,  848,  857,  867,  876,  887,
+      898,  910,  919,  928,  937,  946,  955,  964,  973,  982,
+      991, 1001, 1012, 1024, 1033, 1042, 1052, 1062, 1072, 1082,
+
+     1092, 1102, 1111, 1121, 1130, 1139, 1148, 1157, 1167, 1177,
+     1186, 1196, 1205, 1214, 1223, 1232, 1241, 1250, 1259, 1268,
      1277, 1286, 1295, 1304, 1313, 1322, 1331, 1340, 1349, 1358,
      1367, 1376, 1385, 1394, 1403, 1412, 1421, 1430, 1439, 1448,
-     1457, 1467, 1477, 1487, 1497, 1507, 1517, 1527, 1537, 1547,
-     1556, 1565, 1574, 1583, 1592, 1601, 1610, 1621, 1632, 1645,
-     1658, 1673, 1772, 1777, 1782, 1787, 1788, 1789, 1790, 1791,
-     1792, 1794, 1812, 1825, 1830, 1834, 1836, 1838, 1840
+     1457, 1466, 1476, 1486, 1496, 1506, 1516, 1526, 1536, 1546,
+     1556, 1565, 1574, 1583, 1592, 1601, 1610, 1619, 1630, 1641,
+     1654, 1667, 1682, 1781, 1786, 1791, 1796, 1797, 1798, 1799,
+     1800, 1801, 1803, 1821, 1834, 1839, 1843, 1845, 1847, 1849
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1794,7 +1801,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1797 "dhcp4_lexer.cc"
+#line 1804 "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
@@ -1820,8 +1827,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 1823 "dhcp4_lexer.cc"
-#line 1824 "dhcp4_lexer.cc"
+#line 1830 "dhcp4_lexer.cc"
+#line 1831 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2151,7 +2158,7 @@ YY_DECL
     }
 
 
-#line 2154 "dhcp4_lexer.cc"
+#line 2161 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2180,13 +2187,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 >= 1532 )
+                               if ( yy_current_state >= 1548 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1531 );
+               while ( yy_current_state != 1547 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2205,13 +2212,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 < 180 )
+                       else if ( yy_act < 181 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 180 )
+                       else if ( yy_act == 181 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 181 )
+                       else if ( yy_act == 182 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2523,6 +2530,18 @@ YY_RULE_SETUP
 case 29:
 YY_RULE_SETUP
 #line 345 "dhcp4_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::CONFIG_CONTROL:
+        return isc::dhcp::Dhcp4Parser::make_CONFIG_FETCH_WAIT_TIME(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
+    }
+}
+       YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 354 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
@@ -2532,9 +2551,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 30:
+case 31:
 YY_RULE_SETUP
-#line 354 "dhcp4_lexer.ll"
+#line 363 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2547,9 +2566,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 31:
+case 32:
 YY_RULE_SETUP
-#line 366 "dhcp4_lexer.ll"
+#line 375 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2559,9 +2578,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 32:
+case 33:
 YY_RULE_SETUP
-#line 375 "dhcp4_lexer.ll"
+#line 384 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2571,9 +2590,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 33:
+case 34:
 YY_RULE_SETUP
-#line 384 "dhcp4_lexer.ll"
+#line 393 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2583,9 +2602,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 34:
+case 35:
 YY_RULE_SETUP
-#line 393 "dhcp4_lexer.ll"
+#line 402 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2595,9 +2614,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 35:
+case 36:
 YY_RULE_SETUP
-#line 402 "dhcp4_lexer.ll"
+#line 411 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2609,9 +2628,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 36:
+case 37:
 YY_RULE_SETUP
-#line 413 "dhcp4_lexer.ll"
+#line 422 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2623,9 +2642,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 37:
+case 38:
 YY_RULE_SETUP
-#line 424 "dhcp4_lexer.ll"
+#line 433 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2637,9 +2656,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 38:
+case 39:
 YY_RULE_SETUP
-#line 435 "dhcp4_lexer.ll"
+#line 444 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2651,9 +2670,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 39:
+case 40:
 YY_RULE_SETUP
-#line 446 "dhcp4_lexer.ll"
+#line 455 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2664,9 +2683,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 40:
+case 41:
 YY_RULE_SETUP
-#line 456 "dhcp4_lexer.ll"
+#line 465 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2677,9 +2696,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 41:
+case 42:
 YY_RULE_SETUP
-#line 466 "dhcp4_lexer.ll"
+#line 475 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2691,9 +2710,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 42:
+case 43:
 YY_RULE_SETUP
-#line 477 "dhcp4_lexer.ll"
+#line 486 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2705,9 +2724,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 43:
+case 44:
 YY_RULE_SETUP
-#line 488 "dhcp4_lexer.ll"
+#line 497 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2719,9 +2738,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 44:
+case 45:
 YY_RULE_SETUP
-#line 499 "dhcp4_lexer.ll"
+#line 508 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2733,9 +2752,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 45:
+case 46:
 YY_RULE_SETUP
-#line 510 "dhcp4_lexer.ll"
+#line 519 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2747,9 +2766,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 46:
+case 47:
 YY_RULE_SETUP
-#line 521 "dhcp4_lexer.ll"
+#line 530 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2761,9 +2780,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 47:
+case 48:
 YY_RULE_SETUP
-#line 532 "dhcp4_lexer.ll"
+#line 541 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2775,9 +2794,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 48:
+case 49:
 YY_RULE_SETUP
-#line 543 "dhcp4_lexer.ll"
+#line 552 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2789,9 +2808,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 49:
+case 50:
 YY_RULE_SETUP
-#line 554 "dhcp4_lexer.ll"
+#line 563 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2803,9 +2822,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 50:
+case 51:
 YY_RULE_SETUP
-#line 565 "dhcp4_lexer.ll"
+#line 574 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2817,9 +2836,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 51:
+case 52:
 YY_RULE_SETUP
-#line 576 "dhcp4_lexer.ll"
+#line 585 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2831,9 +2850,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 52:
+case 53:
 YY_RULE_SETUP
-#line 587 "dhcp4_lexer.ll"
+#line 596 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2845,9 +2864,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 53:
+case 54:
 YY_RULE_SETUP
-#line 598 "dhcp4_lexer.ll"
+#line 607 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2859,9 +2878,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 54:
+case 55:
 YY_RULE_SETUP
-#line 609 "dhcp4_lexer.ll"
+#line 618 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2871,9 +2890,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 55:
+case 56:
 YY_RULE_SETUP
-#line 618 "dhcp4_lexer.ll"
+#line 627 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2883,9 +2902,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 56:
+case 57:
 YY_RULE_SETUP
-#line 627 "dhcp4_lexer.ll"
+#line 636 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2896,9 +2915,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 57:
+case 58:
 YY_RULE_SETUP
-#line 637 "dhcp4_lexer.ll"
+#line 646 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2908,9 +2927,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 58:
+case 59:
 YY_RULE_SETUP
-#line 646 "dhcp4_lexer.ll"
+#line 655 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2921,9 +2940,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 656 "dhcp4_lexer.ll"
+#line 665 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2938,9 +2957,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 670 "dhcp4_lexer.ll"
+#line 679 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2957,9 +2976,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 686 "dhcp4_lexer.ll"
+#line 695 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2969,9 +2988,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 695 "dhcp4_lexer.ll"
+#line 704 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2981,9 +3000,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 704 "dhcp4_lexer.ll"
+#line 713 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2993,9 +3012,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 713 "dhcp4_lexer.ll"
+#line 722 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -3005,9 +3024,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 65:
+case 66:
 YY_RULE_SETUP
-#line 722 "dhcp4_lexer.ll"
+#line 731 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3029,9 +3048,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 743 "dhcp4_lexer.ll"
+#line 752 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3053,9 +3072,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 764 "dhcp4_lexer.ll"
+#line 773 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3065,9 +3084,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 773 "dhcp4_lexer.ll"
+#line 782 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3078,9 +3097,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 783 "dhcp4_lexer.ll"
+#line 792 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3090,9 +3109,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 792 "dhcp4_lexer.ll"
+#line 801 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3104,9 +3123,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 803 "dhcp4_lexer.ll"
+#line 812 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3116,9 +3135,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 812 "dhcp4_lexer.ll"
+#line 821 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3128,9 +3147,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 821 "dhcp4_lexer.ll"
+#line 830 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3140,9 +3159,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 830 "dhcp4_lexer.ll"
+#line 839 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3152,9 +3171,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 839 "dhcp4_lexer.ll"
+#line 848 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3164,9 +3183,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 848 "dhcp4_lexer.ll"
+#line 857 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3177,9 +3196,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 858 "dhcp4_lexer.ll"
+#line 867 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3189,9 +3208,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 867 "dhcp4_lexer.ll"
+#line 876 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3203,9 +3222,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 878 "dhcp4_lexer.ll"
+#line 887 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3217,9 +3236,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 889 "dhcp4_lexer.ll"
+#line 898 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3231,9 +3250,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 901 "dhcp4_lexer.ll"
+#line 910 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3243,9 +3262,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 910 "dhcp4_lexer.ll"
+#line 919 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGING:
@@ -3255,9 +3274,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 919 "dhcp4_lexer.ll"
+#line 928 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3267,9 +3286,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 928 "dhcp4_lexer.ll"
+#line 937 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3279,9 +3298,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 937 "dhcp4_lexer.ll"
+#line 946 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3291,9 +3310,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 946 "dhcp4_lexer.ll"
+#line 955 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3303,9 +3322,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 955 "dhcp4_lexer.ll"
+#line 964 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3315,9 +3334,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 964 "dhcp4_lexer.ll"
+#line 973 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3327,9 +3346,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 973 "dhcp4_lexer.ll"
+#line 982 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3339,9 +3358,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 982 "dhcp4_lexer.ll"
+#line 991 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3352,9 +3371,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 992 "dhcp4_lexer.ll"
+#line 1001 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3366,9 +3385,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 1003 "dhcp4_lexer.ll"
+#line 1012 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3381,9 +3400,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1015 "dhcp4_lexer.ll"
+#line 1024 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3393,9 +3412,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1024 "dhcp4_lexer.ll"
+#line 1033 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3405,9 +3424,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1033 "dhcp4_lexer.ll"
+#line 1042 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3418,9 +3437,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1043 "dhcp4_lexer.ll"
+#line 1052 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3431,9 +3450,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1053 "dhcp4_lexer.ll"
+#line 1062 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3444,9 +3463,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1063 "dhcp4_lexer.ll"
+#line 1072 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3457,9 +3476,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1073 "dhcp4_lexer.ll"
+#line 1082 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3470,9 +3489,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1083 "dhcp4_lexer.ll"
+#line 1092 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3483,9 +3502,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1093 "dhcp4_lexer.ll"
+#line 1102 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3495,9 +3514,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1102 "dhcp4_lexer.ll"
+#line 1111 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3508,9 +3527,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1112 "dhcp4_lexer.ll"
+#line 1121 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3520,9 +3539,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1121 "dhcp4_lexer.ll"
+#line 1130 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3532,9 +3551,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1130 "dhcp4_lexer.ll"
+#line 1139 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3544,9 +3563,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1139 "dhcp4_lexer.ll"
+#line 1148 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3556,9 +3575,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1148 "dhcp4_lexer.ll"
+#line 1157 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3569,9 +3588,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1158 "dhcp4_lexer.ll"
+#line 1167 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3582,9 +3601,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1168 "dhcp4_lexer.ll"
+#line 1177 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3594,9 +3613,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1177 "dhcp4_lexer.ll"
+#line 1186 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3606,9 +3625,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1187 "dhcp4_lexer.ll"
+#line 1196 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3618,9 +3637,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1196 "dhcp4_lexer.ll"
+#line 1205 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3630,9 +3649,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1205 "dhcp4_lexer.ll"
+#line 1214 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3642,9 +3661,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1214 "dhcp4_lexer.ll"
+#line 1223 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3654,9 +3673,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1223 "dhcp4_lexer.ll"
+#line 1232 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3666,9 +3685,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1232 "dhcp4_lexer.ll"
+#line 1241 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3678,9 +3697,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1241 "dhcp4_lexer.ll"
+#line 1250 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3690,9 +3709,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1250 "dhcp4_lexer.ll"
+#line 1259 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3702,9 +3721,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1259 "dhcp4_lexer.ll"
+#line 1268 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3714,9 +3733,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1268 "dhcp4_lexer.ll"
+#line 1277 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3726,9 +3745,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1277 "dhcp4_lexer.ll"
+#line 1286 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3738,9 +3757,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1286 "dhcp4_lexer.ll"
+#line 1295 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3750,9 +3769,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1295 "dhcp4_lexer.ll"
+#line 1304 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3762,9 +3781,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1304 "dhcp4_lexer.ll"
+#line 1313 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3774,9 +3793,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1313 "dhcp4_lexer.ll"
+#line 1322 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3786,9 +3805,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1322 "dhcp4_lexer.ll"
+#line 1331 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3798,9 +3817,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1331 "dhcp4_lexer.ll"
+#line 1340 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3810,9 +3829,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1340 "dhcp4_lexer.ll"
+#line 1349 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3822,9 +3841,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1349 "dhcp4_lexer.ll"
+#line 1358 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3834,9 +3853,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1358 "dhcp4_lexer.ll"
+#line 1367 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3846,9 +3865,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1367 "dhcp4_lexer.ll"
+#line 1376 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3858,9 +3877,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1376 "dhcp4_lexer.ll"
+#line 1385 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3870,9 +3889,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1385 "dhcp4_lexer.ll"
+#line 1394 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3882,9 +3901,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1394 "dhcp4_lexer.ll"
+#line 1403 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3894,9 +3913,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1403 "dhcp4_lexer.ll"
+#line 1412 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3906,9 +3925,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1412 "dhcp4_lexer.ll"
+#line 1421 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3918,9 +3937,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1421 "dhcp4_lexer.ll"
+#line 1430 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3930,9 +3949,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1430 "dhcp4_lexer.ll"
+#line 1439 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3942,9 +3961,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1439 "dhcp4_lexer.ll"
+#line 1448 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3954,9 +3973,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1448 "dhcp4_lexer.ll"
+#line 1457 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3966,9 +3985,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1457 "dhcp4_lexer.ll"
+#line 1466 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3979,9 +3998,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1467 "dhcp4_lexer.ll"
+#line 1476 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3992,9 +4011,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1477 "dhcp4_lexer.ll"
+#line 1486 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -4005,9 +4024,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1487 "dhcp4_lexer.ll"
+#line 1496 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4018,9 +4037,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1497 "dhcp4_lexer.ll"
+#line 1506 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4031,9 +4050,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1507 "dhcp4_lexer.ll"
+#line 1516 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4044,9 +4063,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1517 "dhcp4_lexer.ll"
+#line 1526 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4057,9 +4076,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1527 "dhcp4_lexer.ll"
+#line 1536 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4070,9 +4089,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1537 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4083,9 +4102,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1547 "dhcp4_lexer.ll"
+#line 1556 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4095,9 +4114,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1556 "dhcp4_lexer.ll"
+#line 1565 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4107,9 +4126,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1565 "dhcp4_lexer.ll"
+#line 1574 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4119,9 +4138,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1574 "dhcp4_lexer.ll"
+#line 1583 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4131,9 +4150,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1583 "dhcp4_lexer.ll"
+#line 1592 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4143,9 +4162,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1592 "dhcp4_lexer.ll"
+#line 1601 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4155,9 +4174,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1601 "dhcp4_lexer.ll"
+#line 1610 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4167,9 +4186,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1610 "dhcp4_lexer.ll"
+#line 1619 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4181,9 +4200,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1621 "dhcp4_lexer.ll"
+#line 1630 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4195,9 +4214,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1632 "dhcp4_lexer.ll"
+#line 1641 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4211,9 +4230,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1645 "dhcp4_lexer.ll"
+#line 1654 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4227,9 +4246,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1658 "dhcp4_lexer.ll"
+#line 1667 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4243,9 +4262,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1673 "dhcp4_lexer.ll"
+#line 1682 "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.
@@ -4345,65 +4364,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 163:
-/* rule 163 can match eol */
+case 164:
+/* rule 164 can match eol */
 YY_RULE_SETUP
-#line 1772 "dhcp4_lexer.ll"
+#line 1781 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 164:
-/* rule 164 can match eol */
+case 165:
+/* rule 165 can match eol */
 YY_RULE_SETUP
-#line 1777 "dhcp4_lexer.ll"
+#line 1786 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1782 "dhcp4_lexer.ll"
+#line 1791 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1787 "dhcp4_lexer.ll"
+#line 1796 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1788 "dhcp4_lexer.ll"
+#line 1797 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1789 "dhcp4_lexer.ll"
+#line 1798 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1790 "dhcp4_lexer.ll"
+#line 1799 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1791 "dhcp4_lexer.ll"
+#line 1800 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1792 "dhcp4_lexer.ll"
+#line 1801 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1794 "dhcp4_lexer.ll"
+#line 1803 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4422,9 +4441,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1812 "dhcp4_lexer.ll"
+#line 1821 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4438,43 +4457,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1825 "dhcp4_lexer.ll"
+#line 1834 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1830 "dhcp4_lexer.ll"
+#line 1839 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1834 "dhcp4_lexer.ll"
+#line 1843 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1836 "dhcp4_lexer.ll"
+#line 1845 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1838 "dhcp4_lexer.ll"
+#line 1847 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1840 "dhcp4_lexer.ll"
+#line 1849 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1842 "dhcp4_lexer.ll"
+#line 1851 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4498,12 +4517,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1865 "dhcp4_lexer.ll"
+#line 1874 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4506 "dhcp4_lexer.cc"
+#line 4525 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -4822,7 +4841,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 >= 1532 )
+                       if ( yy_current_state >= 1548 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -4855,11 +4874,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 >= 1532 )
+               if ( yy_current_state >= 1548 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1531);
+       yy_is_jam = (yy_current_state == 1547);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5608,7 +5627,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1865 "dhcp4_lexer.ll"
+#line 1874 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index 9d37d5db4a6badc5d1496a2f635921721b909ee1..220acde32050fc928d90a8875dc2e6b3cd884e35 100644 (file)
@@ -250,30 +250,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -292,30 +292,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -334,30 +334,30 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -400,74 +400,74 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-      case 170: // "constant string"
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 171: // "constant string"
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < std::string > (); }
 #line 407 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 171: // "integer"
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 172: // "integer"
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < int64_t > (); }
 #line 413 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 172: // "floating point"
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 173: // "floating point"
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < double > (); }
 #line 419 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 173: // "boolean"
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 174: // "boolean"
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < bool > (); }
 #line 425 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 190: // value
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 191: // value
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 431 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 194: // map_value
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 195: // map_value
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 437 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 238: // socket_type
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 239: // socket_type
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 443 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 241: // outbound_interface_value
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 242: // outbound_interface_value
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 449 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 263: // db_type
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 264: // db_type
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 455 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 349: // hr_mode
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 350: // hr_mode
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 461 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 498: // ncr_protocol_value
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 499: // ncr_protocol_value
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 467 "dhcp4_parser.cc" // lalr1.cc:676
         break;
 
-      case 505: // replace_client_name_value
-#line 250 "dhcp4_parser.yy" // lalr1.cc:676
+      case 506: // replace_client_name_value
+#line 253 "dhcp4_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 473 "dhcp4_parser.cc" // lalr1.cc:676
         break;
@@ -686,30 +686,30 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -734,133 +734,133 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 259 "dhcp4_parser.yy" // lalr1.cc:919
+#line 262 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 740 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 4:
-#line 260 "dhcp4_parser.yy" // lalr1.cc:919
+#line 263 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.CONFIG; }
 #line 746 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 6:
-#line 261 "dhcp4_parser.yy" // lalr1.cc:919
+#line 264 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP4; }
 #line 752 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 8:
-#line 262 "dhcp4_parser.yy" // lalr1.cc:919
+#line 265 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 758 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 10:
-#line 263 "dhcp4_parser.yy" // lalr1.cc:919
+#line 266 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.SUBNET4; }
 #line 764 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 12:
-#line 264 "dhcp4_parser.yy" // lalr1.cc:919
+#line 267 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.POOLS; }
 #line 770 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 14:
-#line 265 "dhcp4_parser.yy" // lalr1.cc:919
+#line 268 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 776 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 16:
-#line 266 "dhcp4_parser.yy" // lalr1.cc:919
+#line 269 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP4; }
 #line 782 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 18:
-#line 267 "dhcp4_parser.yy" // lalr1.cc:919
+#line 270 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 788 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 20:
-#line 268 "dhcp4_parser.yy" // lalr1.cc:919
+#line 271 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 794 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 22:
-#line 269 "dhcp4_parser.yy" // lalr1.cc:919
+#line 272 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 800 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 24:
-#line 270 "dhcp4_parser.yy" // lalr1.cc:919
+#line 273 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 806 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 26:
-#line 271 "dhcp4_parser.yy" // lalr1.cc:919
+#line 274 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.LOGGING; }
 #line 812 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 28:
-#line 272 "dhcp4_parser.yy" // lalr1.cc:919
+#line 275 "dhcp4_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 818 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 30:
-#line 280 "dhcp4_parser.yy" // lalr1.cc:919
+#line 283 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 824 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 31:
-#line 281 "dhcp4_parser.yy" // lalr1.cc:919
+#line 284 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 830 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 32:
-#line 282 "dhcp4_parser.yy" // lalr1.cc:919
+#line 285 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 836 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 33:
-#line 283 "dhcp4_parser.yy" // lalr1.cc:919
+#line 286 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 842 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 34:
-#line 284 "dhcp4_parser.yy" // lalr1.cc:919
+#line 287 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 848 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 35:
-#line 285 "dhcp4_parser.yy" // lalr1.cc:919
+#line 288 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 854 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 36:
-#line 286 "dhcp4_parser.yy" // lalr1.cc:919
+#line 289 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 860 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 37:
-#line 289 "dhcp4_parser.yy" // lalr1.cc:919
+#line 292 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
@@ -869,7 +869,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 38:
-#line 294 "dhcp4_parser.yy" // lalr1.cc:919
+#line 297 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -880,7 +880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 39:
-#line 299 "dhcp4_parser.yy" // lalr1.cc:919
+#line 302 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -890,13 +890,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 40:
-#line 305 "dhcp4_parser.yy" // lalr1.cc:919
+#line 308 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 896 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 43:
-#line 312 "dhcp4_parser.yy" // lalr1.cc:919
+#line 315 "dhcp4_parser.yy" // lalr1.cc:919
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
@@ -905,7 +905,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 44:
-#line 316 "dhcp4_parser.yy" // lalr1.cc:919
+#line 319 "dhcp4_parser.yy" // lalr1.cc:919
     {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -915,7 +915,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 45:
-#line 323 "dhcp4_parser.yy" // lalr1.cc:919
+#line 326 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -924,7 +924,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46:
-#line 326 "dhcp4_parser.yy" // lalr1.cc:919
+#line 329 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -932,7 +932,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 49:
-#line 334 "dhcp4_parser.yy" // lalr1.cc:919
+#line 337 "dhcp4_parser.yy" // lalr1.cc:919
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -941,7 +941,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 50:
-#line 338 "dhcp4_parser.yy" // lalr1.cc:919
+#line 341 "dhcp4_parser.yy" // lalr1.cc:919
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -950,7 +950,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51:
-#line 345 "dhcp4_parser.yy" // lalr1.cc:919
+#line 348 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // List parsing about to start
 }
@@ -958,7 +958,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52:
-#line 347 "dhcp4_parser.yy" // lalr1.cc:919
+#line 350 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -967,7 +967,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 55:
-#line 356 "dhcp4_parser.yy" // lalr1.cc:919
+#line 359 "dhcp4_parser.yy" // lalr1.cc:919
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -976,7 +976,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 56:
-#line 360 "dhcp4_parser.yy" // lalr1.cc:919
+#line 363 "dhcp4_parser.yy" // lalr1.cc:919
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -985,7 +985,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57:
-#line 371 "dhcp4_parser.yy" // lalr1.cc:919
+#line 374 "dhcp4_parser.yy" // lalr1.cc:919
     {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
@@ -996,7 +996,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58:
-#line 381 "dhcp4_parser.yy" // lalr1.cc:919
+#line 384 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1007,7 +1007,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59:
-#line 386 "dhcp4_parser.yy" // lalr1.cc:919
+#line 389 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1020,7 +1020,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 68:
-#line 410 "dhcp4_parser.yy" // lalr1.cc:919
+#line 413 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1033,7 +1033,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 69:
-#line 417 "dhcp4_parser.yy" // lalr1.cc:919
+#line 420 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1043,7 +1043,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 70:
-#line 425 "dhcp4_parser.yy" // lalr1.cc:919
+#line 428 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the Dhcp4 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71:
-#line 429 "dhcp4_parser.yy" // lalr1.cc:919
+#line 432 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No global parameter is required
     // parsing completed
@@ -1062,7 +1062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 111:
-#line 479 "dhcp4_parser.yy" // lalr1.cc:919
+#line 482 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
@@ -1071,7 +1071,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 112:
-#line 484 "dhcp4_parser.yy" // lalr1.cc:919
+#line 487 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
@@ -1080,7 +1080,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 113:
-#line 489 "dhcp4_parser.yy" // lalr1.cc:919
+#line 492 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
@@ -1089,7 +1089,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 114:
-#line 494 "dhcp4_parser.yy" // lalr1.cc:919
+#line 497 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("calculate-tee-times", ctt);
@@ -1098,7 +1098,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 115:
-#line 499 "dhcp4_parser.yy" // lalr1.cc:919
+#line 502 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t1-percent", t1);
@@ -1107,7 +1107,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 116:
-#line 504 "dhcp4_parser.yy" // lalr1.cc:919
+#line 507 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t2-percent", t2);
@@ -1116,7 +1116,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 117:
-#line 509 "dhcp4_parser.yy" // lalr1.cc:919
+#line 512 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
@@ -1125,7 +1125,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 118:
-#line 514 "dhcp4_parser.yy" // lalr1.cc:919
+#line 517 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1133,7 +1133,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 119:
-#line 516 "dhcp4_parser.yy" // lalr1.cc:919
+#line 519 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
@@ -1143,7 +1143,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 120:
-#line 522 "dhcp4_parser.yy" // lalr1.cc:919
+#line 525 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("echo-client-id", echo);
@@ -1152,7 +1152,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 121:
-#line 527 "dhcp4_parser.yy" // lalr1.cc:919
+#line 530 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("match-client-id", match);
@@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 122:
-#line 532 "dhcp4_parser.yy" // lalr1.cc:919
+#line 535 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("authoritative", prf);
@@ -1170,7 +1170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 123:
-#line 538 "dhcp4_parser.yy" // lalr1.cc:919
+#line 541 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
@@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 124:
-#line 543 "dhcp4_parser.yy" // lalr1.cc:919
+#line 546 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1191,7 +1191,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 134:
-#line 562 "dhcp4_parser.yy" // lalr1.cc:919
+#line 565 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 135:
-#line 566 "dhcp4_parser.yy" // lalr1.cc:919
+#line 569 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No interfaces config param is required
     // parsing completed
@@ -1210,7 +1210,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 136:
-#line 571 "dhcp4_parser.yy" // lalr1.cc:919
+#line 574 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
@@ -1221,7 +1221,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 137:
-#line 576 "dhcp4_parser.yy" // lalr1.cc:919
+#line 579 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1230,7 +1230,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 138:
-#line 581 "dhcp4_parser.yy" // lalr1.cc:919
+#line 584 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
 }
@@ -1238,7 +1238,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 139:
-#line 583 "dhcp4_parser.yy" // lalr1.cc:919
+#line 586 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1247,19 +1247,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 140:
-#line 588 "dhcp4_parser.yy" // lalr1.cc:919
+#line 591 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
 #line 1253 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 141:
-#line 589 "dhcp4_parser.yy" // lalr1.cc:919
+#line 592 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
 #line 1259 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 142:
-#line 592 "dhcp4_parser.yy" // lalr1.cc:919
+#line 595 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.OUTBOUND_INTERFACE);
 }
@@ -1267,7 +1267,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 143:
-#line 594 "dhcp4_parser.yy" // lalr1.cc:919
+#line 597 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1276,7 +1276,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 144:
-#line 599 "dhcp4_parser.yy" // lalr1.cc:919
+#line 602 "dhcp4_parser.yy" // lalr1.cc:919
     {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
@@ -1284,7 +1284,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 145:
-#line 601 "dhcp4_parser.yy" // lalr1.cc:919
+#line 604 "dhcp4_parser.yy" // lalr1.cc:919
     {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
@@ -1292,7 +1292,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 146:
-#line 605 "dhcp4_parser.yy" // lalr1.cc:919
+#line 608 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
@@ -1301,7 +1301,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 147:
-#line 611 "dhcp4_parser.yy" // lalr1.cc:919
+#line 614 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
@@ -1312,7 +1312,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 148:
-#line 616 "dhcp4_parser.yy" // lalr1.cc:919
+#line 619 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1323,7 +1323,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 149:
-#line 623 "dhcp4_parser.yy" // lalr1.cc:919
+#line 626 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
@@ -1334,7 +1334,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 150:
-#line 628 "dhcp4_parser.yy" // lalr1.cc:919
+#line 631 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1343,7 +1343,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 154:
-#line 638 "dhcp4_parser.yy" // lalr1.cc:919
+#line 641 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1351,7 +1351,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 155:
-#line 640 "dhcp4_parser.yy" // lalr1.cc:919
+#line 643 "dhcp4_parser.yy" // lalr1.cc:919
     {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1371,7 +1371,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 156:
-#line 656 "dhcp4_parser.yy" // lalr1.cc:919
+#line 659 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
@@ -1382,7 +1382,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 157:
-#line 661 "dhcp4_parser.yy" // lalr1.cc:919
+#line 664 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1393,7 +1393,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 158:
-#line 668 "dhcp4_parser.yy" // lalr1.cc:919
+#line 671 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
@@ -1404,7 +1404,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 159:
-#line 673 "dhcp4_parser.yy" // lalr1.cc:919
+#line 676 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1413,7 +1413,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 164:
-#line 686 "dhcp4_parser.yy" // lalr1.cc:919
+#line 689 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1423,7 +1423,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 165:
-#line 690 "dhcp4_parser.yy" // lalr1.cc:919
+#line 693 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1433,7 +1433,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188:
-#line 722 "dhcp4_parser.yy" // lalr1.cc:919
+#line 725 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
@@ -1441,7 +1441,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 189:
-#line 724 "dhcp4_parser.yy" // lalr1.cc:919
+#line 727 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1450,31 +1450,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 190:
-#line 729 "dhcp4_parser.yy" // lalr1.cc:919
+#line 732 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1456 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 191:
-#line 730 "dhcp4_parser.yy" // lalr1.cc:919
+#line 733 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1462 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 192:
-#line 731 "dhcp4_parser.yy" // lalr1.cc:919
+#line 734 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1468 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 193:
-#line 732 "dhcp4_parser.yy" // lalr1.cc:919
+#line 735 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
 #line 1474 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 194:
-#line 735 "dhcp4_parser.yy" // lalr1.cc:919
+#line 738 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1482,7 +1482,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 195:
-#line 737 "dhcp4_parser.yy" // lalr1.cc:919
+#line 740 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1492,7 +1492,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 196:
-#line 743 "dhcp4_parser.yy" // lalr1.cc:919
+#line 746 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1500,7 +1500,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 197:
-#line 745 "dhcp4_parser.yy" // lalr1.cc:919
+#line 748 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -1510,7 +1510,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 198:
-#line 751 "dhcp4_parser.yy" // lalr1.cc:919
+#line 754 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1518,7 +1518,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 199:
-#line 753 "dhcp4_parser.yy" // lalr1.cc:919
+#line 756 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -1528,7 +1528,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 200:
-#line 759 "dhcp4_parser.yy" // lalr1.cc:919
+#line 762 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
@@ -1537,7 +1537,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 201:
-#line 764 "dhcp4_parser.yy" // lalr1.cc:919
+#line 767 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1545,7 +1545,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 202:
-#line 766 "dhcp4_parser.yy" // lalr1.cc:919
+#line 769 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -1555,7 +1555,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 203:
-#line 772 "dhcp4_parser.yy" // lalr1.cc:919
+#line 775 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
@@ -1564,7 +1564,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 204:
-#line 777 "dhcp4_parser.yy" // lalr1.cc:919
+#line 780 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
@@ -1573,7 +1573,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 205:
-#line 782 "dhcp4_parser.yy" // lalr1.cc:919
+#line 785 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
@@ -1582,7 +1582,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 206:
-#line 787 "dhcp4_parser.yy" // lalr1.cc:919
+#line 790 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
@@ -1591,7 +1591,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 207:
-#line 792 "dhcp4_parser.yy" // lalr1.cc:919
+#line 795 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
@@ -1600,7 +1600,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 208:
-#line 797 "dhcp4_parser.yy" // lalr1.cc:919
+#line 800 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
@@ -1609,7 +1609,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 209:
-#line 802 "dhcp4_parser.yy" // lalr1.cc:919
+#line 805 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
@@ -1618,7 +1618,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 210:
-#line 807 "dhcp4_parser.yy" // lalr1.cc:919
+#line 810 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1626,7 +1626,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 211:
-#line 809 "dhcp4_parser.yy" // lalr1.cc:919
+#line 812 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
@@ -1636,7 +1636,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 212:
-#line 815 "dhcp4_parser.yy" // lalr1.cc:919
+#line 818 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1644,7 +1644,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 213:
-#line 817 "dhcp4_parser.yy" // lalr1.cc:919
+#line 820 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
@@ -1654,7 +1654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 214:
-#line 823 "dhcp4_parser.yy" // lalr1.cc:919
+#line 826 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1662,7 +1662,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 215:
-#line 825 "dhcp4_parser.yy" // lalr1.cc:919
+#line 828 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("consistency", c);
@@ -1672,7 +1672,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 216:
-#line 831 "dhcp4_parser.yy" // lalr1.cc:919
+#line 834 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1680,7 +1680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 217:
-#line 833 "dhcp4_parser.yy" // lalr1.cc:919
+#line 836 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("serial-consistency", c);
@@ -1690,7 +1690,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 218:
-#line 839 "dhcp4_parser.yy" // lalr1.cc:919
+#line 842 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
@@ -1699,7 +1699,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 219:
-#line 844 "dhcp4_parser.yy" // lalr1.cc:919
+#line 847 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
@@ -1708,7 +1708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 220:
-#line 849 "dhcp4_parser.yy" // lalr1.cc:919
+#line 852 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
@@ -1719,7 +1719,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221:
-#line 854 "dhcp4_parser.yy" // lalr1.cc:919
+#line 857 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 229:
-#line 870 "dhcp4_parser.yy" // lalr1.cc:919
+#line 873 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -1737,7 +1737,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 230:
-#line 875 "dhcp4_parser.yy" // lalr1.cc:919
+#line 878 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -1746,7 +1746,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 231:
-#line 880 "dhcp4_parser.yy" // lalr1.cc:919
+#line 883 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
@@ -1755,7 +1755,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 232:
-#line 885 "dhcp4_parser.yy" // lalr1.cc:919
+#line 888 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
@@ -1764,7 +1764,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 233:
-#line 890 "dhcp4_parser.yy" // lalr1.cc:919
+#line 893 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -1773,7 +1773,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 234:
-#line 895 "dhcp4_parser.yy" // lalr1.cc:919
+#line 898 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
@@ -1784,7 +1784,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 235:
-#line 900 "dhcp4_parser.yy" // lalr1.cc:919
+#line 903 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1793,7 +1793,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 240:
-#line 913 "dhcp4_parser.yy" // lalr1.cc:919
+#line 916 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1803,7 +1803,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 241:
-#line 917 "dhcp4_parser.yy" // lalr1.cc:919
+#line 920 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1813,7 +1813,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 242:
-#line 923 "dhcp4_parser.yy" // lalr1.cc:919
+#line 926 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1823,7 +1823,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 243:
-#line 927 "dhcp4_parser.yy" // lalr1.cc:919
+#line 930 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1833,7 +1833,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 249:
-#line 942 "dhcp4_parser.yy" // lalr1.cc:919
+#line 945 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1841,7 +1841,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 250:
-#line 944 "dhcp4_parser.yy" // lalr1.cc:919
+#line 947 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -1851,7 +1851,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 251:
-#line 950 "dhcp4_parser.yy" // lalr1.cc:919
+#line 953 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1859,7 +1859,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 252:
-#line 952 "dhcp4_parser.yy" // lalr1.cc:919
+#line 955 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1868,7 +1868,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 253:
-#line 958 "dhcp4_parser.yy" // lalr1.cc:919
+#line 961 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
@@ -1879,7 +1879,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 254:
-#line 963 "dhcp4_parser.yy" // lalr1.cc:919
+#line 966 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 263:
-#line 981 "dhcp4_parser.yy" // lalr1.cc:919
+#line 984 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reclaim-timer-wait-time", value);
@@ -1898,7 +1898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 264:
-#line 986 "dhcp4_parser.yy" // lalr1.cc:919
+#line 989 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
@@ -1907,7 +1907,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 265:
-#line 991 "dhcp4_parser.yy" // lalr1.cc:919
+#line 994 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
@@ -1916,7 +1916,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 266:
-#line 996 "dhcp4_parser.yy" // lalr1.cc:919
+#line 999 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
@@ -1925,7 +1925,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 267:
-#line 1001 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1004 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
@@ -1934,7 +1934,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 268:
-#line 1006 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1009 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
@@ -1943,7 +1943,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 269:
-#line 1014 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1017 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet4", l);
@@ -1954,7 +1954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 270:
-#line 1019 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1022 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1963,7 +1963,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 275:
-#line 1039 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1042 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1973,7 +1973,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 276:
-#line 1043 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1046 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -1999,7 +1999,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 277:
-#line 1065 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1068 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the subnet4 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2009,7 +2009,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 278:
-#line 1069 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1072 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The subnet subnet4 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2019,7 +2019,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 308:
-#line 1110 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1113 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2027,7 +2027,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 309:
-#line 1112 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1115 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2037,7 +2037,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 310:
-#line 1118 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1121 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2045,7 +2045,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 311:
-#line 1120 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1123 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface", iface);
@@ -2055,7 +2055,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 312:
-#line 1126 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1129 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2063,7 +2063,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 313:
-#line 1128 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1131 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface-id", iface);
@@ -2073,7 +2073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 314:
-#line 1134 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1137 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2081,7 +2081,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 315:
-#line 1136 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1139 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-subnet", iface);
@@ -2091,7 +2091,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 316:
-#line 1142 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1145 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2099,7 +2099,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 317:
-#line 1144 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1147 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2109,7 +2109,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 318:
-#line 1150 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1153 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2117,7 +2117,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 319:
-#line 1152 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1155 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
@@ -2127,7 +2127,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 320:
-#line 1158 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1161 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
@@ -2138,7 +2138,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 321:
-#line 1163 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1166 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2147,7 +2147,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 322:
-#line 1168 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1171 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
@@ -2155,7 +2155,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 323:
-#line 1170 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1173 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2164,31 +2164,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 324:
-#line 1175 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1178 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2170 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 325:
-#line 1176 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1179 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2176 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 326:
-#line 1177 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1180 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2182 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 327:
-#line 1178 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1181 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2188 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 328:
-#line 1181 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1184 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
@@ -2197,7 +2197,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 329:
-#line 1188 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1191 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
@@ -2208,7 +2208,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 330:
-#line 1193 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1196 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2217,7 +2217,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 335:
-#line 1208 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1211 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2227,7 +2227,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 336:
-#line 1212 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1215 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
@@ -2235,7 +2235,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 361:
-#line 1248 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1251 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
@@ -2246,7 +2246,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 362:
-#line 1253 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1256 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2255,7 +2255,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 363:
-#line 1261 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1264 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2264,7 +2264,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 364:
-#line 1264 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1267 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // parsing completed
 }
@@ -2272,7 +2272,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 369:
-#line 1280 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1283 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2282,7 +2282,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 370:
-#line 1284 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1287 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2294,7 +2294,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 371:
-#line 1295 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1298 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2304,7 +2304,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 372:
-#line 1299 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1302 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2316,7 +2316,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 388:
-#line 1331 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1334 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
@@ -2325,7 +2325,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 390:
-#line 1338 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1341 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2333,7 +2333,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 391:
-#line 1340 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1343 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -2343,7 +2343,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 392:
-#line 1346 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1349 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2351,7 +2351,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 393:
-#line 1348 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1351 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
@@ -2361,7 +2361,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 394:
-#line 1354 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1357 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2369,7 +2369,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 395:
-#line 1356 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1359 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -2379,7 +2379,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 397:
-#line 1364 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1367 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2387,7 +2387,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 398:
-#line 1366 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1369 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -2397,7 +2397,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 399:
-#line 1372 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1375 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
@@ -2406,7 +2406,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 400:
-#line 1381 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1384 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
@@ -2417,7 +2417,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 401:
-#line 1386 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1389 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2426,7 +2426,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 406:
-#line 1405 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1408 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2436,7 +2436,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 407:
-#line 1409 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1412 "dhcp4_parser.yy" // lalr1.cc:919
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -2445,7 +2445,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 408:
-#line 1417 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1420 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2455,7 +2455,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 409:
-#line 1421 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1424 "dhcp4_parser.yy" // lalr1.cc:919
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -2464,7 +2464,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 424:
-#line 1454 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1457 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2472,7 +2472,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 425:
-#line 1456 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1459 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -2482,7 +2482,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 428:
-#line 1466 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1469 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
@@ -2491,7 +2491,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 429:
-#line 1471 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1474 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
@@ -2500,7 +2500,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 430:
-#line 1479 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1482 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
@@ -2511,7 +2511,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 431:
-#line 1484 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1487 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2520,7 +2520,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 436:
-#line 1499 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1502 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2530,7 +2530,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 437:
-#line 1503 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1506 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2540,7 +2540,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 438:
-#line 1509 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1512 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2550,7 +2550,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 439:
-#line 1513 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1516 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2560,7 +2560,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 449:
-#line 1532 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1535 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2568,7 +2568,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 450:
-#line 1534 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1537 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -2578,7 +2578,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 451:
-#line 1540 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1543 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2586,7 +2586,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 452:
-#line 1542 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1545 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2613,7 +2613,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 453:
-#line 1565 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1568 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2621,7 +2621,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 454:
-#line 1567 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1570 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2650,7 +2650,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 455:
-#line 1595 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1598 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
@@ -2661,7 +2661,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 456:
-#line 1600 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1603 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2670,7 +2670,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 461:
-#line 1613 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1616 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2680,7 +2680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 462:
-#line 1617 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1620 "dhcp4_parser.yy" // lalr1.cc:919
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -2689,7 +2689,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 463:
-#line 1622 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1625 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2699,7 +2699,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 464:
-#line 1626 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1629 "dhcp4_parser.yy" // lalr1.cc:919
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -2708,7 +2708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 484:
-#line 1657 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1660 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2716,7 +2716,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 485:
-#line 1659 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1662 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("next-server", next_server);
@@ -2726,7 +2726,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 486:
-#line 1665 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1668 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2734,7 +2734,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 487:
-#line 1667 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1670 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-hostname", srv);
@@ -2744,7 +2744,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 488:
-#line 1673 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1676 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2752,7 +2752,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 489:
-#line 1675 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1678 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("boot-file-name", bootfile);
@@ -2762,7 +2762,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 490:
-#line 1681 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1684 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2770,7 +2770,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 491:
-#line 1683 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1686 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
@@ -2780,7 +2780,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 492:
-#line 1689 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1692 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
@@ -2791,7 +2791,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 493:
-#line 1694 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1697 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2800,7 +2800,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 494:
-#line 1699 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1702 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2808,7 +2808,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 495:
-#line 1701 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1704 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -2818,7 +2818,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 496:
-#line 1707 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1710 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2826,7 +2826,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 497:
-#line 1709 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1712 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
@@ -2836,7 +2836,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 498:
-#line 1715 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1718 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2844,7 +2844,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 499:
-#line 1717 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1720 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-id", hw);
@@ -2854,7 +2854,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 500:
-#line 1723 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1726 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2862,7 +2862,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 501:
-#line 1725 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1728 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("circuit-id", hw);
@@ -2872,7 +2872,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 502:
-#line 1731 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1734 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2880,7 +2880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 503:
-#line 1733 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1736 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
@@ -2890,7 +2890,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 504:
-#line 1739 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1742 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2898,7 +2898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 505:
-#line 1741 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1744 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -2908,7 +2908,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 506:
-#line 1747 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1750 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
@@ -2919,7 +2919,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 507:
-#line 1752 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1755 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2928,7 +2928,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 508:
-#line 1760 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1763 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
@@ -2939,7 +2939,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 509:
-#line 1765 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1768 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2948,7 +2948,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 512:
-#line 1777 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1780 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
@@ -2959,7 +2959,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 513:
-#line 1782 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1785 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2968,7 +2968,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 516:
-#line 1791 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1794 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2978,7 +2978,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517:
-#line 1795 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1798 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2988,7 +2988,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 534:
-#line 1824 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1827 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2996,7 +2996,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 535:
-#line 1826 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1829 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -3006,7 +3006,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 536:
-#line 1832 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1835 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
@@ -3015,7 +3015,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 537:
-#line 1841 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1844 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
@@ -3024,7 +3024,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 538:
-#line 1848 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1851 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
@@ -3035,7 +3035,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 539:
-#line 1853 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1856 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3044,7 +3044,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 547:
-#line 1869 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1872 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3052,7 +3052,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 548:
-#line 1871 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1874 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -3062,7 +3062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 549:
-#line 1877 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1880 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3070,7 +3070,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 550:
-#line 1879 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1882 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -3080,7 +3080,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 551:
-#line 1888 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1891 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3088,7 +3088,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 552:
-#line 1890 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1893 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3126,7 +3126,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553:
-#line 1926 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1929 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
@@ -3137,7 +3137,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 554:
-#line 1931 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1934 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3148,7 +3148,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555:
-#line 1938 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1941 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3158,7 +3158,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556:
-#line 1942 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1945 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3168,7 +3168,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 577:
-#line 1972 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1975 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
@@ -3177,7 +3177,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 578:
-#line 1977 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1980 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3185,7 +3185,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 579:
-#line 1979 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1982 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3195,7 +3195,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 580:
-#line 1985 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1988 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3203,7 +3203,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 581:
-#line 1987 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1990 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3213,7 +3213,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 582:
-#line 1993 "dhcp4_parser.yy" // lalr1.cc:919
+#line 1996 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
@@ -3222,7 +3222,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 583:
-#line 1998 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2001 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3230,7 +3230,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 584:
-#line 2000 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2003 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3240,7 +3240,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 585:
-#line 2006 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2009 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
@@ -3249,7 +3249,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 586:
-#line 2011 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2014 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
@@ -3258,7 +3258,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 587:
-#line 2016 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2019 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
@@ -3266,7 +3266,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 588:
-#line 2018 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2021 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3275,19 +3275,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 589:
-#line 2024 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2027 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3281 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 590:
-#line 2025 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2028 "dhcp4_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3287 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
   case 591:
-#line 2028 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2031 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
@@ -3295,7 +3295,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 592:
-#line 2030 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2033 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3305,7 +3305,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 593:
-#line 2036 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2039 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
@@ -3314,7 +3314,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 594:
-#line 2041 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2044 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
@@ -3323,7 +3323,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 595:
-#line 2046 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2049 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
@@ -3331,7 +3331,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 596:
-#line 2048 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2051 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3340,7 +3340,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 597:
-#line 2054 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2057 "dhcp4_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3348,7 +3348,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 598:
-#line 2057 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2060 "dhcp4_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3356,7 +3356,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 599:
-#line 2060 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2063 "dhcp4_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3364,7 +3364,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 600:
-#line 2063 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2066 "dhcp4_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3372,7 +3372,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 601:
-#line 2066 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2069 "dhcp4_parser.yy" // lalr1.cc:919
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -3381,7 +3381,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 602:
-#line 2072 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2075 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3389,7 +3389,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 603:
-#line 2074 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2077 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
@@ -3399,7 +3399,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 604:
-#line 2080 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2083 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3407,7 +3407,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 605:
-#line 2082 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2085 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
@@ -3417,7 +3417,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 606:
-#line 2088 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2091 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3425,7 +3425,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 607:
-#line 2090 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2093 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
@@ -3435,7 +3435,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 608:
-#line 2099 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2102 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3443,7 +3443,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 609:
-#line 2101 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2104 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3452,7 +3452,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 610:
-#line 2106 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2109 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3460,7 +3460,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 611:
-#line 2108 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2111 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3469,7 +3469,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 612:
-#line 2113 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2116 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3477,7 +3477,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 613:
-#line 2115 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2118 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3486,7 +3486,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 614:
-#line 2120 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2123 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
@@ -3497,7 +3497,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 615:
-#line 2125 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2128 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -3507,7 +3507,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 616:
-#line 2131 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2134 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3517,7 +3517,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 617:
-#line 2135 "dhcp4_parser.yy" // lalr1.cc:919
+#line 2138 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // No config_control params are required
     // parsing completed
@@ -3525,8 +3525,8 @@ namespace isc { namespace dhcp {
 #line 3526 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 621:
-#line 2149 "dhcp4_parser.yy" // lalr1.cc:919
+  case 622:
+#line 2153 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
@@ -3536,8 +3536,8 @@ namespace isc { namespace dhcp {
 #line 3537 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 622:
-#line 2154 "dhcp4_parser.yy" // lalr1.cc:919
+  case 623:
+#line 2158 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3545,194 +3545,203 @@ namespace isc { namespace dhcp {
 #line 3546 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 623:
-#line 2164 "dhcp4_parser.yy" // lalr1.cc:919
+  case 624:
+#line 2163 "dhcp4_parser.yy" // lalr1.cc:919
+    {
+    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 3555 "dhcp4_parser.cc" // lalr1.cc:919
+    break;
+
+  case 625:
+#line 2173 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3557 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3566 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 624:
-#line 2169 "dhcp4_parser.yy" // lalr1.cc:919
+  case 626:
+#line 2178 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3566 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3575 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 625:
-#line 2174 "dhcp4_parser.yy" // lalr1.cc:919
+  case 627:
+#line 2183 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3576 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3585 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 626:
-#line 2178 "dhcp4_parser.yy" // lalr1.cc:919
+  case 628:
+#line 2187 "dhcp4_parser.yy" // lalr1.cc:919
     {
     // parsing completed
 }
-#line 3584 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3593 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 630:
-#line 2194 "dhcp4_parser.yy" // lalr1.cc:919
+  case 632:
+#line 2203 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3595 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3604 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 631:
-#line 2199 "dhcp4_parser.yy" // lalr1.cc:919
+  case 633:
+#line 2208 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3604 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3613 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 634:
-#line 2211 "dhcp4_parser.yy" // lalr1.cc:919
+  case 636:
+#line 2220 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3614 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3623 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 635:
-#line 2215 "dhcp4_parser.yy" // lalr1.cc:919
+  case 637:
+#line 2224 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
-#line 3622 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3631 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 645:
-#line 2232 "dhcp4_parser.yy" // lalr1.cc:919
+  case 647:
+#line 2241 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3631 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3640 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 646:
-#line 2237 "dhcp4_parser.yy" // lalr1.cc:919
+  case 648:
+#line 2246 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3639 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3648 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 647:
-#line 2239 "dhcp4_parser.yy" // lalr1.cc:919
+  case 649:
+#line 2248 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3649 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3658 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 648:
-#line 2245 "dhcp4_parser.yy" // lalr1.cc:919
+  case 650:
+#line 2254 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 3660 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3669 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 649:
-#line 2250 "dhcp4_parser.yy" // lalr1.cc:919
+  case 651:
+#line 2259 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3669 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3678 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 652:
-#line 2259 "dhcp4_parser.yy" // lalr1.cc:919
+  case 654:
+#line 2268 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3679 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3688 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 653:
-#line 2263 "dhcp4_parser.yy" // lalr1.cc:919
+  case 655:
+#line 2272 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
-#line 3687 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3696 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 660:
-#line 2277 "dhcp4_parser.yy" // lalr1.cc:919
+  case 662:
+#line 2286 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3695 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3704 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 661:
-#line 2279 "dhcp4_parser.yy" // lalr1.cc:919
+  case 663:
+#line 2288 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3705 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3714 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 662:
-#line 2285 "dhcp4_parser.yy" // lalr1.cc:919
+  case 664:
+#line 2294 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3714 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3723 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 663:
-#line 2290 "dhcp4_parser.yy" // lalr1.cc:919
+  case 665:
+#line 2299 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3723 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3732 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
-  case 664:
-#line 2295 "dhcp4_parser.yy" // lalr1.cc:919
+  case 666:
+#line 2304 "dhcp4_parser.yy" // lalr1.cc:919
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3732 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3741 "dhcp4_parser.cc" // lalr1.cc:919
     break;
 
 
-#line 3736 "dhcp4_parser.cc" // lalr1.cc:919
+#line 3745 "dhcp4_parser.cc" // lalr1.cc:919
             default:
               break;
             }
@@ -4002,120 +4011,121 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -822;
+  const short Dhcp4Parser::yypact_ninf_ = -828;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     413,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,    32,    35,    42,    56,    58,
-      60,    62,    64,    66,    79,    94,   150,   152,   156,   172,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,    35,   -88,
-      40,    80,    43,   189,    -6,   249,   118,   226,   251,   -49,
-     349,    36,   212,  -822,   193,   206,   247,   244,   263,  -822,
-    -822,  -822,  -822,  -822,   265,  -822,    81,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,   277,   308,   312,  -822,
-    -822,  -822,  -822,  -822,  -822,   314,   315,   322,   323,   324,
-     334,   338,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,   341,  -822,  -822,  -822,  -822,
-     114,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   342,  -822,   126,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,   360,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-     141,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,   147,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,   259,   287,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,   272,  -822,  -822,   379,
-    -822,  -822,  -822,   381,  -822,  -822,   328,   350,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   383,   387,  -822,  -822,  -822,  -822,   368,   392,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   157,  -822,  -822,  -822,   397,  -822,  -822,   398,  -822,
-     399,   401,  -822,  -822,   403,   404,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,   188,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   276,  -822,  -822,  -822,   280,  -822,  -822,  -822,    35,
-      35,  -822,   246,   420,   421,   422,   423,   434,  -822,    40,
-    -822,   435,   441,   442,   261,   281,   290,   445,   446,   449,
-     456,   457,   460,   294,   295,   296,   298,   325,   329,   299,
-     464,   465,   490,   491,   492,   496,   498,   499,   500,   501,
-     502,   503,   504,   339,   505,   509,   511,    80,  -822,   513,
-     514,   516,   351,    43,  -822,   521,   524,   525,   526,   527,
-     528,   364,   529,   532,   533,   189,  -822,   534,    -6,  -822,
-     535,   537,   538,   539,   541,   542,   543,   544,  -822,   249,
-    -822,   545,   546,   380,   548,   550,   552,   384,  -822,   226,
-     555,   388,   389,  -822,   251,   556,   559,     5,  -822,   394,
-     560,   561,   412,   581,   416,   417,   585,   586,   418,   419,
-     589,   590,   591,   592,   349,  -822,   593,    36,  -822,   594,
-     212,  -822,  -822,  -822,   595,   596,   597,    35,    35,    35,
-    -822,   598,   599,   600,  -822,  -822,  -822,   431,   432,   438,
-     602,   603,   606,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-     443,   607,   609,   610,   611,   612,   447,   -42,   613,   615,
-     616,   617,   618,  -822,   619,   612,   620,  -822,   623,   195,
-     203,  -822,  -822,   453,   454,   459,   625,   461,   462,  -822,
-     623,   463,   627,  -822,   466,  -822,   623,   467,   468,   469,
-     470,   471,   472,   473,  -822,   474,   475,  -822,   476,   477,
-     478,  -822,  -822,   479,  -822,  -822,  -822,   480,    35,  -822,
-    -822,   481,   482,  -822,   483,  -822,  -822,    20,   517,  -822,
-    -822,    13,   485,   486,   487,  -822,   630,  -822,   653,  -822,
-      35,    80,    36,  -822,  -822,  -822,   212,    43,   636,  -822,
-    -822,  -822,   187,   187,   654,  -822,   655,   656,   657,   658,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,    75,   659,
-     660,   661,   149,    49,  -822,   349,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,   662,  -822,  -822,
-    -822,  -822,   137,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,   663,   654,  -822,   284,
-     286,   288,   297,  -822,   301,  -822,  -822,  -822,  -822,  -822,
-    -822,   667,   668,   669,   670,   671,  -822,  -822,  -822,  -822,
-     672,   673,   674,   675,   676,  -822,   303,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,   307,  -822,   677,
-     678,  -822,  -822,   679,   681,  -822,  -822,   680,   684,  -822,
-    -822,   682,   686,  -822,  -822,   685,   687,  -822,  -822,  -822,
-    -822,  -822,  -822,    91,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,    92,  -822,  -822,   688,   689,  -822,  -822,   690,   692,
-    -822,   693,   694,   695,   696,   697,   698,   326,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-     332,  -822,  -822,  -822,   336,   512,  -822,   699,   700,  -822,
-    -822,  -822,  -822,   652,  -822,   164,  -822,   701,  -822,  -822,
-    -822,  -822,   702,   636,  -822,   704,   705,   706,   707,   522,
-     531,   547,   540,   549,   708,   710,   711,   712,   551,   553,
-     554,   557,   558,   187,  -822,  -822,   187,  -822,   654,   189,
-    -822,   655,   226,  -822,   656,   251,  -822,   657,   430,  -822,
-     658,    75,  -822,    51,   659,  -822,   249,  -822,   660,   -49,
-    -822,   661,   562,   563,   564,   565,   566,   567,   149,  -822,
-     713,   715,    49,  -822,  -822,  -822,   717,   718,    -6,  -822,
-     662,   722,  -822,    34,   663,  -822,  -822,   569,  -822,   377,
-     570,   571,   572,  -822,  -822,  -822,  -822,  -822,   573,   574,
-     575,   576,  -822,  -822,  -822,  -822,  -822,  -822,   358,  -822,
-     359,  -822,   719,  -822,   721,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   362,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,   726,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,   724,   744,  -822,  -822,  -822,  -822,  -822,
-     740,  -822,   369,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   579,   580,  -822,  -822,   582,   372,  -822,   623,  -822,
-     747,  -822,  -822,  -822,  -822,  -822,   390,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,   430,
-    -822,   749,   583,  -822,    51,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,   750,   584,   753,    34,  -822,  -822,   588,  -822,
-    -822,   754,  -822,   601,  -822,  -822,   755,  -822,  -822,   197,
-    -822,   -24,   755,  -822,  -822,   756,   757,   759,   391,  -822,
-    -822,  -822,  -822,  -822,  -822,   760,   614,   605,   626,   -24,
-    -822,   604,  -822,  -822,  -822,  -822,  -822
+     332,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,    32,    35,    38,    52,    56,
+      71,    75,    82,    84,   102,   110,   125,   143,   153,   163,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,    35,  -102,
+      17,   170,    42,   520,    39,    45,   168,   188,   281,   -12,
+     344,    37,   178,  -828,    74,   191,   217,   239,   253,  -828,
+    -828,  -828,  -828,  -828,   269,  -828,    57,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,   279,   294,   296,  -828,
+    -828,  -828,  -828,  -828,  -828,   298,   299,   321,   322,   323,
+     324,   325,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,   328,  -828,  -828,  -828,  -828,
+      59,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   329,  -828,    68,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,   330,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+      76,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,   115,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,   268,   284,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,   334,  -828,  -828,   333,
+    -828,  -828,  -828,   336,  -828,  -828,   335,   341,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   342,   343,  -828,  -828,  -828,  -828,   340,   346,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   123,  -828,  -828,  -828,   357,  -828,  -828,   362,  -828,
+     363,   364,  -828,  -828,   365,   368,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,   126,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   127,  -828,  -828,  -828,   370,   155,  -828,  -828,  -828,
+    -828,    35,    35,  -828,   165,   373,   374,   375,   378,   381,
+    -828,    17,  -828,   383,   385,   389,   164,   176,   221,   392,
+     393,   394,   396,   397,   399,   233,   235,   237,   230,   241,
+     245,   238,   409,   411,   412,   417,   419,   424,   425,   428,
+     429,   436,   437,   439,   440,   273,   443,   444,   447,   170,
+    -828,   451,   452,   453,   288,    42,  -828,   454,   460,   461,
+     462,   463,   477,   310,   479,   480,   481,   520,  -828,   482,
+      39,  -828,   499,   500,   501,   502,   503,   504,   505,   506,
+    -828,    45,  -828,   507,   508,   345,   509,   510,   512,   347,
+    -828,   188,   514,   348,   349,  -828,   281,   515,   516,    95,
+    -828,   350,   522,   523,   356,   525,   358,   360,   529,   530,
+     361,   367,   532,   533,   534,   535,   344,  -828,   538,    37,
+    -828,   539,   379,   178,  -828,  -828,  -828,   541,   545,   546,
+      35,    35,    35,  -828,   547,   548,   549,  -828,  -828,  -828,
+     387,   390,   395,   553,   557,   560,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,   398,   562,   563,   566,   568,   567,   404,
+     206,   577,   578,   579,   586,   585,  -828,   587,   567,   588,
+    -828,   591,   194,   204,  -828,  -828,   422,   426,   427,   594,
+     430,   442,  -828,   591,   445,   608,  -828,   448,  -828,   591,
+     449,   450,   455,   456,   457,   458,   459,  -828,   464,   465,
+    -828,   466,   473,   474,  -828,  -828,   476,  -828,  -828,  -828,
+     478,    35,  -828,  -828,   483,   484,  -828,   485,  -828,  -828,
+      28,   486,  -828,  -828,   -35,   487,   488,   489,  -828,   617,
+    -828,   618,  -828,  -828,    35,   170,    37,  -828,  -828,  -828,
+     178,    42,   607,  -828,  -828,  -828,   265,   265,   625,  -828,
+     626,   627,   641,   643,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,    11,   646,   650,   654,    62,   -34,  -828,   344,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   655,  -828,  -828,  -828,  -828,   108,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+     656,   625,  -828,   158,   177,   179,   215,  -828,   232,  -828,
+    -828,  -828,  -828,  -828,  -828,   662,   664,   666,   667,   668,
+    -828,  -828,  -828,  -828,   669,   670,   671,   673,   674,  -828,
+     234,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   240,  -828,   675,   677,  -828,  -828,   676,   680,  -828,
+    -828,   678,   682,  -828,  -828,   683,   685,  -828,  -828,   684,
+     689,  -828,  -828,  -828,  -828,  -828,  -828,    44,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,   113,  -828,  -828,   687,   691,
+    -828,  -828,   690,   692,  -828,   693,   694,   695,   696,   697,
+     698,   242,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,   243,  -828,  -828,  -828,   251,   536,
+    -828,   699,   700,  -828,  -828,  -828,  -828,   701,  -828,   151,
+    -828,   702,  -828,  -828,  -828,  -828,   706,   607,  -828,   707,
+     708,   709,   710,   543,   542,   550,   544,   551,   713,   715,
+     716,   717,   552,   554,   555,   556,   558,   265,  -828,  -828,
+     265,  -828,   625,   520,  -828,   626,   188,  -828,   627,   281,
+    -828,   641,   582,  -828,   643,    11,  -828,    73,   646,  -828,
+      45,  -828,   650,   -12,  -828,   654,   559,   561,   564,   565,
+     569,   570,    62,  -828,   721,   725,   -34,  -828,  -828,  -828,
+     724,   703,    39,  -828,   655,   730,  -828,    70,   656,  -828,
+    -828,   572,  -828,   286,   573,   574,   575,  -828,  -828,  -828,
+    -828,  -828,   576,   580,   581,   583,  -828,  -828,  -828,  -828,
+    -828,  -828,   264,  -828,   266,  -828,   727,  -828,   731,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,   272,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,   734,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,   732,   745,  -828,
+    -828,  -828,  -828,  -828,   741,  -828,   274,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,   584,   589,  -828,  -828,   590,
+     276,  -828,   591,  -828,   746,  -828,  -828,  -828,  -828,  -828,
+     282,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,   582,  -828,   752,   592,  -828,    73,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,   753,   593,   754,    70,
+    -828,  -828,   596,  -828,  -828,   681,  -828,   597,  -828,  -828,
+     755,  -828,  -828,   161,  -828,   -58,   755,  -828,  -828,   759,
+     760,   765,   283,  -828,  -828,  -828,  -828,  -828,  -828,   766,
+     598,   599,   602,   -58,  -828,   604,  -828,  -828,  -828,  -828,
+    -828
   };
 
   const unsigned short
@@ -4127,10 +4137,10 @@ namespace isc { namespace dhcp {
        1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
       35,    36,    58,     5,    70,     7,   134,     9,   277,    11,
      438,    13,   463,    15,   363,    17,   371,    19,   408,    21,
-     242,    23,   555,    25,   625,    27,   616,    29,    47,    41,
+     242,    23,   555,    25,   627,    27,   616,    29,    47,    41,
        0,     0,     0,     0,     0,   465,     0,   373,   410,     0,
        0,     0,     0,    49,     0,    48,     0,     0,    42,    68,
-     623,   608,   610,   612,     0,    67,     0,    60,    62,    64,
+     625,   608,   610,   612,     0,    67,     0,    60,    62,    64,
       65,    66,    63,   614,   123,   149,     0,     0,     0,   484,
      486,   488,   147,   156,   158,     0,     0,     0,     0,     0,
        0,     0,   118,   269,   361,   400,   329,   451,   453,   322,
@@ -4156,121 +4166,123 @@ namespace isc { namespace dhcp {
        0,     0,   587,   591,     0,     0,   595,   602,   604,   606,
      576,   574,   575,     0,   557,   559,   560,   561,   562,   563,
      564,   565,   566,   567,   568,   569,   570,   571,   572,   573,
-     630,     0,   627,   629,   621,     0,   618,   620,    46,     0,
-       0,    39,     0,     0,     0,     0,     0,     0,    57,     0,
-      59,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     632,     0,   629,   631,   622,     0,     0,   618,   620,   621,
+      46,     0,     0,    39,     0,     0,     0,     0,     0,     0,
+      57,     0,    59,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    71,     0,
-       0,     0,     0,     0,   135,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   278,     0,     0,   439,
-       0,     0,     0,     0,     0,     0,     0,     0,   464,     0,
-     364,     0,     0,     0,     0,     0,     0,     0,   372,     0,
-       0,     0,     0,   409,     0,     0,     0,     0,   243,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   556,     0,     0,   626,     0,
-       0,   617,    50,    43,     0,     0,     0,     0,     0,     0,
-      61,     0,     0,     0,   120,   121,   122,     0,     0,     0,
-       0,     0,     0,   111,   112,   113,   114,   115,   116,   117,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   537,     0,     0,     0,    73,     0,     0,
-       0,   146,   126,     0,     0,     0,     0,     0,     0,   328,
-       0,     0,     0,   280,     0,   441,     0,     0,     0,     0,
-       0,     0,     0,     0,   468,     0,     0,   388,     0,     0,
-       0,   399,   376,     0,   428,   429,   413,     0,     0,   245,
-     577,     0,     0,   582,     0,   585,   586,     0,     0,   593,
-     594,     0,     0,     0,     0,   558,     0,   628,     0,   619,
-       0,     0,     0,   609,   611,   613,     0,     0,     0,   485,
-     487,   489,     0,     0,   160,   119,   271,   365,   402,   331,
-      40,   452,   454,   324,   325,   326,   327,   323,     0,     0,
-     457,   236,     0,     0,   552,     0,    51,   137,   140,   141,
-     139,   144,   145,   143,   311,   313,   315,   432,   309,   317,
-     321,   319,     0,   450,   507,   495,   497,   501,   499,   505,
-     503,   491,   391,   202,   395,   393,   398,   425,   250,   252,
-     579,   581,   584,   589,   590,   588,   592,   597,   598,   599,
-     600,   601,   596,   603,   605,   607,     0,   160,    44,     0,
-       0,     0,     0,   154,     0,   151,   153,   188,   194,   196,
-     198,     0,     0,     0,     0,     0,   210,   212,   214,   216,
-       0,     0,     0,     0,     0,   187,     0,   166,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   181,   182,
-     183,   178,   184,   185,   186,   179,   180,     0,   164,     0,
-     161,   162,   275,     0,   272,   273,   369,     0,   366,   367,
-     406,     0,   403,   404,   335,     0,   332,   333,   229,   230,
-     231,   232,   233,     0,   222,   224,   225,   226,   227,   228,
-     516,     0,   514,   461,     0,   458,   459,   240,     0,   237,
-     238,     0,     0,     0,     0,     0,     0,     0,   255,   257,
-     258,   259,   260,   261,   262,   547,   549,   546,   544,   545,
-       0,   540,   542,   543,     0,    53,   436,     0,   433,   434,
-     492,   510,   511,     0,   634,     0,   632,     0,    69,   624,
-     615,   124,     0,     0,   150,     0,     0,     0,     0,     0,
+      71,     0,     0,     0,     0,     0,   135,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   278,     0,
+       0,   439,     0,     0,     0,     0,     0,     0,     0,     0,
+     464,     0,   364,     0,     0,     0,     0,     0,     0,     0,
+     372,     0,     0,     0,     0,   409,     0,     0,     0,     0,
+     243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
+     628,     0,     0,     0,   617,    50,    43,     0,     0,     0,
+       0,     0,     0,    61,     0,     0,     0,   120,   121,   122,
+       0,     0,     0,     0,     0,     0,   111,   112,   113,   114,
+     115,   116,   117,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   537,     0,     0,     0,
+      73,     0,     0,     0,   146,   126,     0,     0,     0,     0,
+       0,     0,   328,     0,     0,     0,   280,     0,   441,     0,
+       0,     0,     0,     0,     0,     0,     0,   468,     0,     0,
+     388,     0,     0,     0,   399,   376,     0,   428,   429,   413,
+       0,     0,   245,   577,     0,     0,   582,     0,   585,   586,
+       0,     0,   593,   594,     0,     0,     0,     0,   558,     0,
+     630,     0,   624,   619,     0,     0,     0,   609,   611,   613,
+       0,     0,     0,   485,   487,   489,     0,     0,   160,   119,
+     271,   365,   402,   331,    40,   452,   454,   324,   325,   326,
+     327,   323,     0,     0,   457,   236,     0,     0,   552,     0,
+      51,   137,   140,   141,   139,   144,   145,   143,   311,   313,
+     315,   432,   309,   317,   321,   319,     0,   450,   507,   495,
+     497,   501,   499,   505,   503,   491,   391,   202,   395,   393,
+     398,   425,   250,   252,   579,   581,   584,   589,   590,   588,
+     592,   597,   598,   599,   600,   601,   596,   603,   605,   607,
+       0,   160,    44,     0,     0,     0,     0,   154,     0,   151,
+     153,   188,   194,   196,   198,     0,     0,     0,     0,     0,
+     210,   212,   214,   216,     0,     0,     0,     0,     0,   187,
+       0,   166,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   181,   182,   183,   178,   184,   185,   186,   179,
+     180,     0,   164,     0,   161,   162,   275,     0,   272,   273,
+     369,     0,   366,   367,   406,     0,   403,   404,   335,     0,
+     332,   333,   229,   230,   231,   232,   233,     0,   222,   224,
+     225,   226,   227,   228,   516,     0,   514,   461,     0,   458,
+     459,   240,     0,   237,   238,     0,     0,     0,     0,     0,
+       0,     0,   255,   257,   258,   259,   260,   261,   262,   547,
+     549,   546,   544,   545,     0,   540,   542,   543,     0,    53,
+     436,     0,   433,   434,   492,   510,   511,     0,   636,     0,
+     634,     0,    69,   626,   615,   124,     0,     0,   150,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   148,   157,     0,   159,     0,     0,
-     270,     0,   373,   362,     0,   410,   401,     0,     0,   330,
-       0,     0,   221,   518,     0,   513,   465,   456,     0,     0,
-     235,     0,     0,     0,     0,     0,     0,     0,     0,   254,
-       0,     0,     0,   539,   554,    55,     0,    54,     0,   431,
-       0,     0,   509,     0,     0,   631,   622,     0,   152,     0,
-       0,     0,     0,   200,   203,   204,   205,   206,     0,     0,
-       0,     0,   218,   219,   207,   208,   209,   167,     0,   163,
-       0,   274,     0,   368,     0,   405,   360,   354,   342,   343,
-     357,   358,   359,   345,   346,   339,   340,   341,   352,   353,
-     351,     0,   337,   344,   355,   356,   347,   348,   349,   350,
-     334,   223,   534,     0,   532,   533,   525,   526,   530,   531,
-     527,   528,   529,     0,   519,   520,   522,   523,   524,   515,
-       0,   460,     0,   239,   263,   264,   265,   266,   267,   268,
-     256,     0,     0,   541,    52,     0,     0,   435,     0,   648,
-       0,   646,   644,   638,   642,   643,     0,   636,   640,   641,
-     639,   633,   155,   190,   191,   192,   193,   189,   195,   197,
-     199,   211,   213,   215,   217,   165,   276,   370,   407,     0,
-     336,     0,     0,   517,     0,   462,   241,   548,   550,    56,
-     437,   493,     0,     0,     0,     0,   635,   338,     0,   536,
-     521,     0,   645,     0,   637,   535,     0,   647,   652,     0,
-     650,     0,     0,   649,   660,     0,     0,     0,     0,   654,
-     656,   657,   658,   659,   651,     0,     0,     0,     0,     0,
-     653,     0,   662,   663,   664,   655,   661
+       0,     0,     0,     0,     0,     0,     0,     0,   148,   157,
+       0,   159,     0,     0,   270,     0,   373,   362,     0,   410,
+     401,     0,     0,   330,     0,     0,   221,   518,     0,   513,
+     465,   456,     0,     0,   235,     0,     0,     0,     0,     0,
+       0,     0,     0,   254,     0,     0,     0,   539,   554,    55,
+       0,    54,     0,   431,     0,     0,   509,     0,     0,   633,
+     623,     0,   152,     0,     0,     0,     0,   200,   203,   204,
+     205,   206,     0,     0,     0,     0,   218,   219,   207,   208,
+     209,   167,     0,   163,     0,   274,     0,   368,     0,   405,
+     360,   354,   342,   343,   357,   358,   359,   345,   346,   339,
+     340,   341,   352,   353,   351,     0,   337,   344,   355,   356,
+     347,   348,   349,   350,   334,   223,   534,     0,   532,   533,
+     525,   526,   530,   531,   527,   528,   529,     0,   519,   520,
+     522,   523,   524,   515,     0,   460,     0,   239,   263,   264,
+     265,   266,   267,   268,   256,     0,     0,   541,    52,     0,
+       0,   435,     0,   650,     0,   648,   646,   640,   644,   645,
+       0,   638,   642,   643,   641,   635,   155,   190,   191,   192,
+     193,   189,   195,   197,   199,   211,   213,   215,   217,   165,
+     276,   370,   407,     0,   336,     0,     0,   517,     0,   462,
+     241,   548,   550,    56,   437,   493,     0,     0,     0,     0,
+     637,   338,     0,   536,   521,     0,   647,     0,   639,   535,
+       0,   649,   654,     0,   652,     0,     0,   651,   662,     0,
+       0,     0,     0,   656,   658,   659,   660,   661,   653,     0,
+       0,     0,     0,     0,   655,     0,   664,   665,   666,   657,
+     663
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,   -46,  -822,  -472,  -822,
-     240,  -822,  -822,  -822,  -822,  -822,  -822,  -516,  -822,  -822,
-    -822,   -70,  -822,  -822,  -822,   415,  -822,  -822,  -822,  -822,
-     175,   361,   -47,   -44,     4,    12,    15,    19,  -822,  -822,
-    -822,  -822,    23,    26,  -822,  -822,   170,   357,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,   -40,  -822,  -822,  -822,  -822,  -822,
-    -822,   117,  -822,   -33,  -822,  -578,   -35,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,   -26,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,   -27,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,   -54,
-    -822,  -822,  -822,   -48,   355,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,   -50,  -822,  -822,  -822,  -822,  -822,  -822,  -821,
-    -822,  -822,  -822,   -16,  -822,  -822,  -822,   -11,   405,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -820,  -822,   -68,
-    -822,   -55,  -822,    27,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,   -15,  -822,  -822,  -178,   -63,  -822,  -822,  -822,  -822,
-    -822,    -4,  -822,  -822,  -822,     0,  -822,   406,  -822,   -66,
-    -822,  -822,  -822,  -822,  -822,   -64,  -822,  -822,  -822,  -822,
-    -822,   -19,  -822,  -822,  -822,    -9,  -822,  -822,  -822,     3,
-    -822,   414,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,   -10,  -822,  -822,  -822,    -5,   444,  -822,
-    -822,   -57,  -822,   -39,  -822,   -62,  -822,  -822,  -822,    11,
-    -822,  -822,  -822,    21,  -822,   437,    -7,  -822,    -3,  -822,
-       8,  -822,   236,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -817,  -822,  -822,  -822,  -822,  -822,    25,  -822,  -822,  -822,
-    -134,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,     9,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-     257,   409,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,
-    -822,  -822,  -822,  -822,  -822,  -822,  -822,  -822,   289,   407,
-    -822,  -822,  -822,  -822,  -822,  -822,   292,   411,  -822,  -822,
-    -822,     2,  -822,  -822,  -136,  -822,  -822,  -822,  -822,  -822,
-    -822,  -152,  -822,  -822,  -168,  -822,  -822,  -822,  -822,  -822
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,   -31,  -828,  -475,  -828,
+     231,  -828,  -828,  -828,  -828,  -828,  -828,  -519,  -828,  -828,
+    -828,   -70,  -828,  -828,  -828,   406,  -828,  -828,  -828,  -828,
+     109,   369,   -47,   -44,     4,    12,    15,    19,  -828,  -828,
+    -828,  -828,    23,    26,  -828,  -828,   187,   376,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,   -37,  -828,  -828,  -828,  -828,  -828,
+    -828,   117,  -828,   -41,  -828,  -585,   -28,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,   -26,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,   -53,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,   -54,
+    -828,  -828,  -828,   -48,   380,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,   -56,  -828,  -828,  -828,  -828,  -828,  -828,  -827,
+    -828,  -828,  -828,   -23,  -828,  -828,  -828,   -15,   402,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -824,  -828,   -68,
+    -828,   -55,  -828,    27,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,   -22,  -828,  -828,  -179,   -63,  -828,  -828,  -828,  -828,
+    -828,   -13,  -828,  -828,  -828,    -4,  -828,   401,  -828,   -66,
+    -828,  -828,  -828,  -828,  -828,   -64,  -828,  -828,  -828,  -828,
+    -828,   -19,  -828,  -828,  -828,    -5,  -828,  -828,  -828,    10,
+    -828,   388,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,   -11,  -828,  -828,  -828,   -10,   446,  -828,
+    -828,   -57,  -828,   -39,  -828,   -62,  -828,  -828,  -828,    18,
+    -828,  -828,  -828,    14,  -828,   441,    -7,  -828,    -3,  -828,
+       8,  -828,   244,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -821,  -828,  -828,  -828,  -828,  -828,    25,  -828,  -828,  -828,
+    -141,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,     5,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+     255,   410,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,  -828,   285,   405,
+    -828,  -828,  -828,  -828,  -828,  -828,  -828,   291,   413,  -828,
+    -828,  -828,     1,  -828,  -828,  -138,  -828,  -828,  -828,  -828,
+    -828,  -828,  -153,  -828,  -828,  -169,  -828,  -828,  -828,  -828,
+    -828
   };
 
   const short
@@ -4278,42 +4290,43 @@ namespace isc { namespace dhcp {
   {
       -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    38,    39,    40,    69,
-     611,    87,    88,    41,    68,    84,    85,   627,   795,   876,
-     877,   705,    43,    70,    96,    97,    98,   363,    45,    71,
+     615,    87,    88,    41,    68,    84,    85,   631,   799,   880,
+     881,   709,    43,    70,    96,    97,    98,   365,    45,    71,
      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     390,   150,   151,   152,   153,   372,   183,   184,    47,    72,
-     185,   409,   186,   410,   630,   187,   411,   633,   188,   154,
-     380,   155,   373,   684,   685,   686,   812,   156,   381,   157,
-     382,   729,   730,   731,   836,   706,   707,   708,   815,   997,
-     709,   816,   710,   817,   711,   818,   712,   713,   442,   714,
-     715,   716,   717,   718,   719,   720,   721,   824,   722,   825,
-     723,   826,   724,   827,   725,   726,   158,   398,   753,   754,
-     755,   756,   757,   758,   759,   159,   401,   768,   769,   770,
-     859,    61,    79,   311,   312,   313,   455,   314,   456,   160,
-     402,   777,   778,   779,   780,   781,   782,   783,   784,   161,
-     391,   733,   734,   735,   839,    49,    73,   210,   211,   212,
-     419,   213,   415,   214,   416,   215,   417,   216,   420,   217,
-     423,   218,   422,   162,   397,   617,   220,   163,   394,   745,
-     746,   747,   848,   931,   932,   164,   392,    55,    76,   737,
-     738,   739,   842,    57,    77,   276,   277,   278,   279,   280,
-     281,   282,   441,   283,   445,   284,   444,   285,   286,   446,
-     287,   165,   393,   741,   742,   743,   845,    59,    78,   297,
-     298,   299,   300,   301,   450,   302,   303,   304,   305,   222,
-     418,   797,   798,   799,   878,    51,    74,   235,   236,   237,
-     427,   166,   395,   167,   396,   168,   400,   764,   765,   766,
-     856,    53,    75,   252,   253,   254,   169,   377,   170,   378,
-     171,   379,   258,   437,   802,   881,   259,   431,   260,   432,
-     261,   434,   262,   433,   263,   436,   264,   435,   265,   430,
-     229,   424,   803,   172,   399,   761,   762,   853,   953,   954,
-     955,   956,   957,  1011,   958,   173,   174,   404,   790,   791,
-     792,   870,   793,   871,   175,   405,   176,   406,    63,    80,
-     333,   334,   335,   336,   460,   337,   461,   338,   339,   463,
-     340,   341,   342,   466,   665,   343,   467,   344,   345,   346,
-     470,   672,   347,   471,   348,   472,   349,   473,    99,   365,
-     100,   366,   101,   367,   177,   371,    67,    82,   355,   356,
-     357,   479,   102,   364,    65,    81,   351,   352,   353,   476,
-     805,   806,   883,   986,   987,   988,   989,  1024,   990,  1022,
-    1039,  1040,  1041,  1048,  1049,  1050,  1055,  1051,  1052,  1053
+     392,   150,   151,   152,   153,   374,   183,   184,    47,    72,
+     185,   411,   186,   412,   634,   187,   413,   637,   188,   154,
+     382,   155,   375,   688,   689,   690,   816,   156,   383,   157,
+     384,   733,   734,   735,   840,   710,   711,   712,   819,  1001,
+     713,   820,   714,   821,   715,   822,   716,   717,   444,   718,
+     719,   720,   721,   722,   723,   724,   725,   828,   726,   829,
+     727,   830,   728,   831,   729,   730,   158,   400,   757,   758,
+     759,   760,   761,   762,   763,   159,   403,   772,   773,   774,
+     863,    61,    79,   311,   312,   313,   457,   314,   458,   160,
+     404,   781,   782,   783,   784,   785,   786,   787,   788,   161,
+     393,   737,   738,   739,   843,    49,    73,   210,   211,   212,
+     421,   213,   417,   214,   418,   215,   419,   216,   422,   217,
+     425,   218,   424,   162,   399,   621,   220,   163,   396,   749,
+     750,   751,   852,   935,   936,   164,   394,    55,    76,   741,
+     742,   743,   846,    57,    77,   276,   277,   278,   279,   280,
+     281,   282,   443,   283,   447,   284,   446,   285,   286,   448,
+     287,   165,   395,   745,   746,   747,   849,    59,    78,   297,
+     298,   299,   300,   301,   452,   302,   303,   304,   305,   222,
+     420,   801,   802,   803,   882,    51,    74,   235,   236,   237,
+     429,   166,   397,   167,   398,   168,   402,   768,   769,   770,
+     860,    53,    75,   252,   253,   254,   169,   379,   170,   380,
+     171,   381,   258,   439,   806,   885,   259,   433,   260,   434,
+     261,   436,   262,   435,   263,   438,   264,   437,   265,   432,
+     229,   426,   807,   172,   401,   765,   766,   857,   957,   958,
+     959,   960,   961,  1015,   962,   173,   174,   406,   794,   795,
+     796,   874,   797,   875,   175,   407,   176,   408,    63,    80,
+     333,   334,   335,   336,   462,   337,   463,   338,   339,   465,
+     340,   341,   342,   468,   669,   343,   469,   344,   345,   346,
+     472,   676,   347,   473,   348,   474,   349,   475,    99,   367,
+     100,   368,   101,   369,   177,   373,    67,    82,   356,   357,
+     358,   481,   359,   102,   366,    65,    81,   351,   352,   353,
+     478,   809,   810,   887,   990,   991,   992,   993,  1028,   994,
+    1026,  1043,  1044,  1045,  1052,  1053,  1054,  1059,  1055,  1056,
+    1057
   };
 
   const unsigned short
@@ -4321,108 +4334,109 @@ namespace isc { namespace dhcp {
   {
       95,   139,   182,   201,   231,   248,   232,   274,   293,   310,
      330,   225,   295,   266,   296,   189,   223,   238,   250,   233,
-     288,   306,    83,   331,   640,   727,   202,   926,   927,   203,
-     644,   939,    30,   190,   224,   239,   251,   663,   289,   307,
-      31,   332,    32,   610,    33,   613,   614,   615,   616,    42,
-      89,   275,   294,   610,   221,   234,   249,   178,   179,   308,
-     309,   180,   125,    44,   181,    46,   226,    48,   255,    50,
-     227,    52,   256,    54,   230,   127,   128,   204,   109,   110,
-     111,   228,    86,   257,   369,   205,    56,   198,   206,   370,
-     199,   103,   207,   104,   851,   854,   208,   852,   855,   209,
-     219,    58,   105,   268,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   308,   309,   127,   128,   407,   124,   125,
-     268,    94,   408,  1044,   127,   128,  1045,  1046,  1047,   413,
-     127,   128,   127,   128,   414,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   425,   942,   943,   124,   125,   426,
-     428,   667,   668,   669,   670,   429,   664,    60,   126,    62,
-     457,   127,   128,    64,    94,   458,   129,   884,   785,   786,
-     885,   130,   131,   748,   749,   750,   751,   132,   752,    66,
-     979,   350,   980,   981,    90,   124,   671,   133,   926,   927,
-     134,   474,   939,    91,    92,    93,   475,   135,   136,   358,
-    1042,   137,   138,  1043,    94,    34,    35,    36,    37,   359,
-      94,   628,   629,    94,   107,   108,   109,   110,   111,    94,
-     687,    94,   631,   632,   354,   688,   689,   690,   691,   692,
-     693,   694,   695,   696,   697,   698,   699,   700,   701,   702,
-     703,   704,   247,   800,   115,   116,   117,   118,   119,   120,
-      94,   360,   361,   191,   192,   193,   268,   125,   908,   267,
-     771,   772,   773,   774,   775,   776,   362,   438,   194,   368,
-     127,   128,   195,   196,   197,   129,   109,   110,   111,   477,
-     440,   374,   198,   480,   478,   199,   132,   407,   481,   477,
-     439,   480,   808,   200,   809,   268,   810,   269,   270,    95,
-     413,   271,   272,   273,   813,   811,   833,   127,   128,   814,
-     833,   834,   375,   482,   483,   835,   376,   125,   383,   384,
-     268,   290,   269,   270,   291,   292,   385,   386,   387,   868,
-     127,   128,   127,   128,   869,   872,   448,   139,   388,   474,
-     873,   240,   389,   182,   874,   403,   412,   241,   242,   243,
-     244,   245,   246,   449,   247,   201,   189,    94,   231,    94,
-     232,   833,   425,   225,   421,  1009,  1005,  1006,   223,   248,
-    1010,   238,   457,   233,   190,   428,   453,  1016,   202,   274,
-    1020,   203,   250,   443,   293,   447,   224,   451,   295,   239,
-     296,   452,   288,  1025,  1059,   454,    94,   306,  1026,  1060,
-     251,   459,   462,   464,   330,   465,   221,   468,   469,   234,
-     289,   993,   994,   995,   996,   307,   484,   331,   226,    94,
-     249,    94,   227,   275,   485,   486,   487,   488,   294,   204,
-     127,   128,   255,   228,   494,   332,   256,   205,   489,   491,
-     206,   593,   594,   595,   207,   492,   493,   257,   208,   497,
-     498,   209,   219,   499,   495,   107,   108,   109,   110,   111,
-     500,   501,  1021,   496,   502,   503,   504,   505,   510,   511,
-     509,   506,   315,   316,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   115,   116,   117,   118,   119,
-     120,   328,   329,   123,   512,   513,   514,   507,   125,   268,
-     515,   508,   516,   517,   518,   519,   520,   521,   522,   524,
-     523,   127,   128,   525,   196,   526,   129,   528,   529,    94,
-     530,   139,   659,   198,   531,   533,   199,   182,   534,   535,
-     536,   537,   538,   540,   200,   539,   541,   542,   544,   546,
-     189,   547,   548,   549,   678,   550,   551,   552,   553,   555,
-     556,   557,   558,   787,   559,   330,   560,   561,   190,   563,
-     567,   564,   565,   568,   571,   572,   788,   570,   331,     1,
+     288,   306,   731,   331,   644,   930,   202,    89,   931,   203,
+     648,   943,    30,   190,   224,   239,   251,    83,   289,   307,
+      31,   332,    32,   614,    33,    42,   667,   855,   127,   128,
+     856,   275,   294,   614,   221,   234,   249,   178,   179,    44,
+     371,   180,   409,    46,   181,   372,   226,   410,   255,    86,
+     227,   415,   256,   109,   110,   111,   416,   204,    48,   427,
+     360,   228,    50,   257,   428,   205,   789,   790,   206,    52,
+    1048,    54,   207,  1049,  1050,  1051,   208,   308,   309,   209,
+     219,   109,   110,   111,   671,   672,   673,   674,   125,    56,
+     752,   753,   754,   755,   125,   756,   858,    58,   430,   859,
+     230,   127,   128,   431,   127,   128,   459,   127,   128,   476,
+     479,   460,    60,   198,   477,   480,   199,    94,   240,   675,
+     268,   124,   125,   268,   241,   242,   243,   244,   245,   246,
+      62,   247,   127,   128,   888,   127,   128,   889,   483,    94,
+      64,   409,    90,   484,  1046,   668,   812,  1047,   946,   947,
+      66,    91,    92,    93,   775,   776,   777,   778,   779,   780,
+     479,   103,   483,   350,   104,   813,   930,   814,    94,   931,
+     354,   355,   943,   105,   361,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   308,   309,    34,    35,    36,    37,
+      94,   632,   633,    94,   247,   804,    94,   983,   415,   984,
+     985,   362,   267,   815,   635,   636,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   817,   124,   837,   124,   125,
+     818,    94,   838,   837,    94,   872,   876,   363,   839,   126,
+     873,   877,   127,   128,   476,   912,   364,   129,   268,   878,
+     269,   270,   130,   131,   271,   272,   273,   837,   132,   427,
+     127,   128,  1009,   370,  1010,  1013,   440,   459,   133,   430,
+    1014,   134,  1020,   376,  1024,  1029,  1063,   441,   135,   136,
+    1030,  1064,   137,   138,   617,   618,   619,   620,   377,   691,
+     378,    95,   385,   386,   692,   693,   694,   695,   696,   697,
+     698,   699,   700,   701,   702,   703,   704,   705,   706,   707,
+     708,   997,   998,   999,  1000,   387,   388,   389,   390,   391,
+     485,   486,   405,   414,   423,   268,   487,   445,   497,   139,
+     449,    94,   442,   450,   451,   182,   453,   454,   455,   456,
+     498,   268,   290,   269,   270,   291,   292,   201,   189,    94,
+     231,   461,   232,   127,   128,   225,   464,   466,   467,   470,
+     223,   248,   471,   238,   482,   233,   190,   488,   489,   490,
+     202,   274,   491,   203,   250,   492,   293,   494,   224,   495,
+     295,   239,   296,   496,   288,   499,   500,   501,   502,   306,
+     503,   504,   251,   505,   509,   506,   330,   507,   221,   508,
+     512,   234,   289,   513,   510,   514,   515,   307,   511,   331,
+     226,   516,   249,   517,   227,   275,   127,   128,   518,   519,
+     294,   204,   520,   521,   255,   228,    94,   332,   256,   205,
+     522,   523,   206,   524,   525,   526,   207,   527,   528,   257,
+     208,   529,    94,   209,   219,   531,   532,   533,   536,   597,
+     598,   599,   534,  1025,   537,   538,   539,   540,   315,   316,
+     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
+     327,   541,   542,   543,   544,   545,   547,   328,   329,     1,
        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,   573,   789,   574,   332,   575,   576,   577,
-     578,   579,   580,   581,   582,   583,   584,   586,   588,   590,
-      94,   599,   600,   591,   592,   596,   597,   598,   601,   602,
-     603,   604,   606,   605,   607,   608,   609,   612,   618,    32,
-     619,   620,   621,   634,   635,   622,   623,   625,   626,   636,
-     637,   638,   639,   641,   642,   676,   643,   645,   646,   647,
-     648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-     658,   660,   661,   662,   666,   673,   674,   675,   677,   683,
-     882,   728,   732,   736,   740,   744,   760,   763,   767,   796,
-     804,   819,   820,   821,   822,   823,   828,   829,   830,   831,
-     832,   838,   875,   837,   841,   840,   843,   844,   846,   847,
-     850,   849,   858,   893,   857,   861,   860,   862,   863,   864,
-     865,   866,   867,   880,   894,   879,   887,   886,   889,   890,
-     891,   892,   898,   896,   899,   900,   901,   971,   895,   972,
-     897,   975,   902,   974,   903,   904,   978,  1007,   905,  1008,
-    1012,   906,  1013,   964,   965,   966,   967,   968,   969,   992,
-     998,   999,  1000,  1001,  1002,  1003,  1004,  1014,  1015,  1017,
-    1018,  1023,  1019,  1028,  1031,  1032,  1029,  1033,  1035,  1036,
-    1056,  1057,  1038,  1058,  1061,   624,   679,   682,   527,   201,
-     532,  1037,   274,   888,  1066,   293,  1063,   225,   916,   295,
-     928,   296,   223,   944,   490,   288,   248,  1062,   306,   310,
-     946,   934,   202,   929,   807,   203,   948,  1064,   907,   250,
-     224,   917,   787,   289,   918,   909,   307,   963,   231,   935,
-     232,   962,   569,   982,   949,   788,   275,   251,   970,   294,
-     221,   238,   925,   233,   941,   911,   984,   945,   910,   933,
-     543,  1027,   226,   789,   947,   940,   227,   249,   915,   239,
-     913,   936,   912,   204,   985,   937,   950,   228,   914,   255,
-     951,   205,   919,   256,   206,   562,   938,   983,   207,   234,
-     920,   952,   208,   921,   257,   209,   219,   922,   566,   961,
-     977,   923,   545,   976,   924,   930,   554,   960,   801,   959,
-    1030,   973,   794,   585,   680,   681,   991,   589,   587,  1034,
-    1054,  1065,     0,     0,     0,     0,     0,     0,     0,     0,
+      12,    13,    14,   549,   550,   551,   552,   553,   554,   555,
+     556,   558,   559,   561,   562,    94,   563,   560,   566,   570,
+     571,   564,   567,   568,   573,   139,   574,   575,   576,   577,
+     578,   182,   579,   580,   581,   582,   584,   585,   586,   587,
+     663,   583,   589,   591,   189,   594,   107,   108,   109,   110,
+     111,   592,   595,   596,   600,   601,   602,   791,   603,   330,
+     606,   604,   190,   682,   607,   608,   605,   610,   611,   609,
+     792,   612,   331,   613,    32,   616,   115,   116,   117,   118,
+     119,   120,   622,   623,   624,   191,   192,   193,   793,   125,
+     332,   625,   626,   638,   627,   629,   630,   639,   640,   641,
+     194,   642,   127,   128,   195,   196,   197,   129,   107,   108,
+     109,   110,   111,   643,   198,   646,   645,   199,   132,   647,
+     649,   650,   680,   681,   670,   200,   651,   652,   653,   654,
+     655,   687,   732,   736,   740,   656,   657,   658,   115,   116,
+     117,   118,   119,   120,   659,   660,   123,   661,   744,   662,
+     748,   125,   268,   764,   664,   665,   666,   767,   677,   678,
+     679,   771,   800,   808,   127,   128,   823,   196,   824,   129,
+     825,   826,   827,   832,   833,   834,   198,   835,   836,   199,
+     842,   841,   844,   845,   847,   848,  1040,   200,   851,   850,
+     853,    94,   854,   861,   862,   865,   864,   866,   867,   868,
+     869,   870,   871,   884,   683,   883,   979,   879,   890,   886,
+     891,   893,   894,   895,   896,   897,   898,   902,   900,   903,
+     904,   905,   899,   901,   906,   975,   907,   908,   909,   976,
+     978,   968,   910,   969,   982,  1011,   970,   971,  1016,  1012,
+    1017,   972,   973,   996,  1002,  1003,  1004,  1005,  1018,  1019,
+    1027,  1006,  1007,    94,  1008,  1021,  1032,  1035,  1037,   628,
+    1022,  1023,  1042,  1060,  1061,  1036,  1033,  1039,  1041,  1062,
+    1065,  1067,  1066,   201,  1068,  1070,   274,   493,   530,   293,
+     892,   225,   920,   295,   932,   296,   223,   948,   686,   288,
+     248,   535,   306,   310,   950,   938,   202,   933,   811,   203,
+     952,   913,   945,   250,   224,   921,   791,   289,   922,   911,
+     307,   967,   231,   939,   232,   966,   974,   986,   953,   792,
+     275,   251,   915,   294,   221,   238,   929,   233,   914,   546,
+     988,   949,   944,   937,  1031,   917,   226,   793,   951,   572,
+     227,   249,   916,   239,   569,   940,   919,   204,   989,   941,
+     954,   228,   565,   255,   955,   205,   923,   256,   206,   918,
+     942,   987,   207,   234,   924,   956,   208,   925,   257,   209,
+     219,   926,   980,   981,   964,   927,   548,  1034,   928,   934,
+     965,   977,   557,   963,   798,   685,   588,   684,   593,   995,
+     805,  1038,   590,  1058,  1069,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   916,
-       0,   928,     0,     0,   944,     0,     0,     0,     0,     0,
-       0,   946,   934,     0,   929,   982,     0,   948,     0,     0,
-       0,     0,   917,     0,     0,   918,     0,     0,   984,     0,
-     935,     0,     0,     0,     0,   949,     0,     0,     0,     0,
-       0,     0,     0,   925,     0,     0,   985,     0,   945,     0,
-     933,     0,     0,     0,     0,   947,     0,     0,     0,   983,
-       0,     0,   936,     0,     0,     0,   937,   950,     0,     0,
-       0,   951,     0,   919,     0,     0,     0,   938,     0,     0,
-       0,   920,   952,     0,   921,     0,     0,     0,   922,     0,
-       0,     0,   923,     0,     0,   924,   930
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   920,     0,   932,     0,     0,   948,     0,
+       0,     0,     0,     0,     0,   950,   938,     0,   933,   986,
+       0,   952,     0,     0,     0,     0,   921,     0,     0,   922,
+       0,     0,   988,     0,   939,     0,     0,     0,     0,   953,
+       0,     0,     0,     0,     0,     0,     0,   929,     0,     0,
+     989,     0,   949,     0,   937,     0,     0,     0,     0,   951,
+       0,     0,     0,   987,     0,     0,   940,     0,     0,     0,
+     941,   954,     0,     0,     0,   955,     0,   923,     0,     0,
+       0,   942,     0,     0,     0,   924,   956,     0,   925,     0,
+       0,     0,   926,     0,     0,     0,   927,     0,     0,   928,
+     934
   };
 
   const short
@@ -4430,292 +4444,294 @@ namespace isc { namespace dhcp {
   {
       70,    71,    72,    73,    74,    75,    74,    77,    78,    79,
       80,    73,    78,    76,    78,    72,    73,    74,    75,    74,
-      77,    78,    68,    80,   540,   603,    73,   848,   848,    73,
-     546,   848,     0,    72,    73,    74,    75,    17,    77,    78,
-       5,    80,     7,   515,     9,    87,    88,    89,    90,     7,
-      10,    77,    78,   525,    73,    74,    75,    14,    15,   108,
-     109,    18,    68,     7,    21,     7,    73,     7,    75,     7,
-      73,     7,    75,     7,    80,    81,    82,    73,    27,    28,
-      29,    73,   170,    75,     3,    73,     7,    93,    73,     8,
-      96,    11,    73,    13,     3,     3,    73,     6,     6,    73,
-      73,     7,    22,    69,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,   108,   109,    81,    82,     3,    67,    68,
-      69,   170,     8,   147,    81,    82,   150,   151,   152,     3,
-      81,    82,    81,    82,     8,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,     3,    94,    95,    67,    68,     8,
-       3,   138,   139,   140,   141,     8,   136,     7,    78,     7,
-       3,    81,    82,     7,   170,     8,    86,     3,   119,   120,
-       6,    91,    92,    98,    99,   100,   101,    97,   103,     7,
-     146,   145,   148,   149,   144,    67,   173,   107,  1009,  1009,
-     110,     3,  1009,   153,   154,   155,     8,   117,   118,     6,
-       3,   121,   122,     6,   170,   170,   171,   172,   173,     3,
-     170,    16,    17,   170,    25,    26,    27,    28,    29,   170,
-      33,   170,    19,    20,    12,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,   105,   106,    55,    56,    57,    58,    59,    60,
-     170,     4,     8,    64,    65,    66,    69,    68,   836,    33,
-     111,   112,   113,   114,   115,   116,     3,     8,    79,     4,
-      81,    82,    83,    84,    85,    86,    27,    28,    29,     3,
-       8,     4,    93,     3,     8,    96,    97,     3,     8,     3,
-       3,     3,     8,   104,     8,    69,     8,    71,    72,   369,
-       3,    75,    76,    77,     3,     8,     3,    81,    82,     8,
-       3,     8,     4,   359,   360,     8,     4,    68,     4,     4,
-      69,    70,    71,    72,    73,    74,     4,     4,     4,     3,
-      81,    82,    81,    82,     8,     3,     8,   407,     4,     3,
-       8,    92,     4,   413,     8,     4,     4,    98,    99,   100,
-     101,   102,   103,     3,   105,   425,   413,   170,   428,   170,
-     428,     3,     3,   425,     4,     3,     8,     8,   425,   439,
-       8,   428,     3,   428,   413,     3,     8,     8,   425,   449,
-       8,   425,   439,     4,   454,     4,   425,     4,   454,   428,
-     454,     4,   449,     3,     3,     3,   170,   454,     8,     8,
-     439,     4,     4,     4,   474,     4,   425,     4,     4,   428,
-     449,    34,    35,    36,    37,   454,   170,   474,   425,   170,
-     439,   170,   425,   449,     4,     4,     4,     4,   454,   425,
-      81,    82,   439,   425,   173,   474,   439,   425,     4,     4,
-     425,   487,   488,   489,   425,     4,     4,   439,   425,     4,
-       4,   425,   425,     4,   173,    25,    26,    27,    28,    29,
-       4,     4,   978,   173,     4,   171,   171,   171,     4,     4,
-     171,   173,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135,    55,    56,    57,    58,    59,
-      60,   142,   143,    63,     4,     4,     4,   172,    68,    69,
-       4,   172,     4,     4,     4,     4,     4,     4,     4,     4,
-     171,    81,    82,     4,    84,     4,    86,     4,     4,   170,
-       4,   591,   568,    93,   173,     4,    96,   597,     4,     4,
-       4,     4,     4,     4,   104,   171,     4,     4,     4,     4,
-     597,     4,     4,     4,   590,     4,     4,     4,     4,     4,
-       4,   171,     4,   623,     4,   625,     4,   173,   597,     4,
-       4,   173,   173,     4,     4,     4,   623,   173,   625,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   171,   623,     4,   625,   171,   171,     4,
-       4,   173,   173,     4,     4,     4,     4,     4,     4,     4,
-     170,   170,   170,     7,     7,     7,     7,     7,   170,     7,
-       7,     5,     5,   170,     5,     5,     5,   170,     5,     7,
-       5,     5,     5,   170,   170,     7,     7,     7,     5,   170,
-       5,   170,   170,   170,     7,     5,   170,   170,   170,   170,
-     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
-     170,   170,   170,   170,   137,   170,   170,   170,     5,    23,
-       8,     7,     7,     7,     7,     7,     7,     7,     7,     7,
-       7,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     3,   170,     6,     3,     6,     6,     3,     6,     3,
-       3,     6,     3,   171,     6,     3,     6,     4,     4,     4,
-       4,     4,     4,     3,   173,     6,     4,     6,     4,     4,
-       4,     4,     4,   173,     4,     4,     4,     4,   171,     4,
-     171,     3,   171,     6,   171,   171,     4,     8,   171,     8,
-       4,   173,     8,   171,   171,   171,   171,   171,   171,   170,
-     170,   170,   170,   170,   170,   170,   170,     3,     8,   170,
-     170,     4,   170,     4,     4,   171,   173,     4,   170,     5,
-       4,     4,     7,     4,     4,   525,   591,   597,   407,   839,
-     413,   170,   842,   813,   170,   845,   171,   839,   848,   845,
-     848,   845,   839,   853,   369,   842,   856,   173,   845,   859,
-     853,   848,   839,   848,   677,   839,   853,   171,   833,   856,
-     839,   848,   872,   842,   848,   838,   845,   861,   878,   848,
-     878,   859,   457,   883,   853,   872,   842,   856,   868,   845,
-     839,   878,   848,   878,   851,   841,   883,   853,   839,   848,
-     425,  1009,   839,   872,   853,   850,   839,   856,   847,   878,
-     844,   848,   842,   839,   883,   848,   853,   839,   845,   856,
-     853,   839,   848,   856,   839,   449,   848,   883,   839,   878,
-     848,   853,   839,   848,   856,   839,   839,   848,   454,   858,
-     880,   848,   428,   878,   848,   848,   439,   856,   642,   854,
-    1014,   872,   625,   474,   592,   596,   884,   480,   477,  1025,
-    1042,  1059,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      77,    78,   607,    80,   543,   852,    73,    10,   852,    73,
+     549,   852,     0,    72,    73,    74,    75,    68,    77,    78,
+       5,    80,     7,   518,     9,     7,    18,     3,    82,    83,
+       6,    77,    78,   528,    73,    74,    75,    15,    16,     7,
+       3,    19,     3,     7,    22,     8,    73,     8,    75,   171,
+      73,     3,    75,    28,    29,    30,     8,    73,     7,     3,
+       6,    73,     7,    75,     8,    73,   120,   121,    73,     7,
+     148,     7,    73,   151,   152,   153,    73,   109,   110,    73,
+      73,    28,    29,    30,   139,   140,   141,   142,    69,     7,
+      99,   100,   101,   102,    69,   104,     3,     7,     3,     6,
+      81,    82,    83,     8,    82,    83,     3,    82,    83,     3,
+       3,     8,     7,    94,     8,     8,    97,   171,    93,   174,
+      70,    68,    69,    70,    99,   100,   101,   102,   103,   104,
+       7,   106,    82,    83,     3,    82,    83,     6,     3,   171,
+       7,     3,   145,     8,     3,   137,     8,     6,    95,    96,
+       7,   154,   155,   156,   112,   113,   114,   115,   116,   117,
+       3,    11,     3,   146,    14,     8,  1013,     8,   171,  1013,
+      12,    13,  1013,    23,     3,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,   109,   110,   171,   172,   173,   174,
+     171,    17,    18,   171,   106,   107,   171,   147,     3,   149,
+     150,     4,    34,     8,    20,    21,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,     3,    68,     3,    68,    69,
+       8,   171,     8,     3,   171,     3,     3,     8,     8,    79,
+       8,     8,    82,    83,     3,   840,     3,    87,    70,     8,
+      72,    73,    92,    93,    76,    77,    78,     3,    98,     3,
+      82,    83,     8,     4,     8,     3,     8,     3,   108,     3,
+       8,   111,     8,     4,     8,     3,     3,     3,   118,   119,
+       8,     8,   122,   123,    88,    89,    90,    91,     4,    34,
+       4,   371,     4,     4,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    35,    36,    37,    38,     4,     4,     4,     4,     4,
+     361,   362,     4,     4,     4,    70,   171,     4,   174,   409,
+       4,   171,     8,     8,     3,   415,     4,     4,     8,     3,
+     174,    70,    71,    72,    73,    74,    75,   427,   415,   171,
+     430,     4,   430,    82,    83,   427,     4,     4,     4,     4,
+     427,   441,     4,   430,     4,   430,   415,     4,     4,     4,
+     427,   451,     4,   427,   441,     4,   456,     4,   427,     4,
+     456,   430,   456,     4,   451,   174,     4,     4,     4,   456,
+       4,     4,   441,     4,   174,   172,   476,   172,   427,   172,
+     172,   430,   451,     4,   173,     4,     4,   456,   173,   476,
+     427,     4,   441,     4,   427,   451,    82,    83,     4,     4,
+     456,   427,     4,     4,   441,   427,   171,   476,   441,   427,
+       4,     4,   427,     4,     4,   172,   427,     4,     4,   441,
+     427,     4,   171,   427,   427,     4,     4,     4,     4,   490,
+     491,   492,   174,   982,     4,     4,     4,     4,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,     4,   172,     4,     4,     4,     4,   143,   144,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,   171,     4,   172,     4,     4,
+       4,   174,   174,   174,   174,   595,     4,     4,   172,     4,
+     172,   601,   172,     4,     4,   174,     4,     4,     4,     4,
+     571,   174,     4,     4,   601,     4,    26,    27,    28,    29,
+      30,   172,     7,     7,     7,     7,     7,   627,   171,   629,
+       7,   171,   601,   594,     7,     5,   171,     5,     5,   171,
+     627,     5,   629,     5,     7,   171,    56,    57,    58,    59,
+      60,    61,     5,     5,     5,    65,    66,    67,   627,    69,
+     629,     5,     7,   171,     7,     7,     5,   171,   171,     5,
+      80,   171,    82,    83,    84,    85,    86,    87,    26,    27,
+      28,    29,    30,   171,    94,     7,   171,    97,    98,   171,
+     171,   171,     5,     5,   138,   105,   171,   171,   171,   171,
+     171,    24,     7,     7,     7,   171,   171,   171,    56,    57,
+      58,    59,    60,    61,   171,   171,    64,   171,     7,   171,
+       7,    69,    70,     7,   171,   171,   171,     7,   171,   171,
+     171,     7,     7,     7,    82,    83,     4,    85,     4,    87,
+       4,     4,     4,     4,     4,     4,    94,     4,     4,    97,
+       3,     6,     6,     3,     6,     3,     5,   105,     3,     6,
+       6,   171,     3,     6,     3,     3,     6,     4,     4,     4,
+       4,     4,     4,     3,   595,     6,     3,   171,     6,     8,
+       4,     4,     4,     4,     4,   172,   174,     4,   174,     4,
+       4,     4,   172,   172,   172,     4,   172,   172,   172,     4,
+       6,   172,   174,   172,     4,     8,   172,   172,     4,     8,
+       8,   172,   172,   171,   171,   171,   171,   171,     3,     8,
+       4,   171,   171,   171,   171,   171,     4,     4,     4,   528,
+     171,   171,     7,     4,     4,   172,   174,   171,   171,     4,
+       4,   172,   174,   843,   172,   171,   846,   371,   409,   849,
+     817,   843,   852,   849,   852,   849,   843,   857,   601,   846,
+     860,   415,   849,   863,   857,   852,   843,   852,   681,   843,
+     857,   842,   855,   860,   843,   852,   876,   846,   852,   837,
+     849,   865,   882,   852,   882,   863,   872,   887,   857,   876,
+     846,   860,   845,   849,   843,   882,   852,   882,   843,   427,
+     887,   857,   854,   852,  1013,   848,   843,   876,   857,   459,
+     843,   860,   846,   882,   456,   852,   851,   843,   887,   852,
+     857,   843,   451,   860,   857,   843,   852,   860,   843,   849,
+     852,   887,   843,   882,   852,   857,   843,   852,   860,   843,
+     843,   852,   882,   884,   860,   852,   430,  1018,   852,   852,
+     862,   876,   441,   858,   629,   600,   476,   596,   483,   888,
+     646,  1029,   479,  1046,  1063,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1009,
-      -1,  1009,    -1,    -1,  1014,    -1,    -1,    -1,    -1,    -1,
-      -1,  1014,  1009,    -1,  1009,  1025,    -1,  1014,    -1,    -1,
-      -1,    -1,  1009,    -1,    -1,  1009,    -1,    -1,  1025,    -1,
-    1009,    -1,    -1,    -1,    -1,  1014,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1009,    -1,    -1,  1025,    -1,  1014,    -1,
-    1009,    -1,    -1,    -1,    -1,  1014,    -1,    -1,    -1,  1025,
-      -1,    -1,  1009,    -1,    -1,    -1,  1009,  1014,    -1,    -1,
-      -1,  1014,    -1,  1009,    -1,    -1,    -1,  1009,    -1,    -1,
-      -1,  1009,  1014,    -1,  1009,    -1,    -1,    -1,  1009,    -1,
-      -1,    -1,  1009,    -1,    -1,  1009,  1009
+      -1,    -1,    -1,  1013,    -1,  1013,    -1,    -1,  1018,    -1,
+      -1,    -1,    -1,    -1,    -1,  1018,  1013,    -1,  1013,  1029,
+      -1,  1018,    -1,    -1,    -1,    -1,  1013,    -1,    -1,  1013,
+      -1,    -1,  1029,    -1,  1013,    -1,    -1,    -1,    -1,  1018,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1013,    -1,    -1,
+    1029,    -1,  1018,    -1,  1013,    -1,    -1,    -1,    -1,  1018,
+      -1,    -1,    -1,  1029,    -1,    -1,  1013,    -1,    -1,    -1,
+    1013,  1018,    -1,    -1,    -1,  1018,    -1,  1013,    -1,    -1,
+      -1,  1013,    -1,    -1,    -1,  1013,  1018,    -1,  1013,    -1,
+      -1,    -1,  1013,    -1,    -1,    -1,  1013,    -1,    -1,  1013,
+    1013
   };
 
   const unsigned short
   Dhcp4Parser::yystos_[] =
   {
-       0,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-       0,     5,     7,     9,   170,   171,   172,   173,   190,   191,
-     192,   197,     7,   206,     7,   212,     7,   232,     7,   329,
-       7,   409,     7,   425,     7,   361,     7,   367,     7,   391,
-       7,   305,     7,   482,     7,   528,     7,   520,   198,   193,
-     207,   213,   233,   330,   410,   426,   362,   368,   392,   306,
-     483,   529,   521,   190,   199,   200,   170,   195,   196,    10,
-     144,   153,   154,   155,   170,   205,   208,   209,   210,   512,
-     514,   516,   526,    11,    13,    22,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    67,    68,    78,    81,    82,    86,
-      91,    92,    97,   107,   110,   117,   118,   121,   122,   205,
-     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
-     225,   226,   227,   228,   243,   245,   251,   253,   290,   299,
-     313,   323,   347,   351,   359,   385,   415,   417,   419,   430,
-     432,   434,   457,   469,   470,   478,   480,   518,    14,    15,
-      18,    21,   205,   230,   231,   234,   236,   239,   242,   415,
-     417,    64,    65,    66,    79,    83,    84,    85,    93,    96,
-     104,   205,   216,   217,   218,   219,   220,   221,   226,   227,
-     331,   332,   333,   335,   337,   339,   341,   343,   345,   347,
-     350,   385,   403,   415,   417,   419,   430,   432,   434,   454,
-      80,   205,   343,   345,   385,   411,   412,   413,   415,   417,
-      92,    98,    99,   100,   101,   102,   103,   105,   205,   385,
-     415,   417,   427,   428,   429,   430,   432,   434,   436,   440,
-     442,   444,   446,   448,   450,   452,   359,    33,    69,    71,
-      72,    75,    76,    77,   205,   271,   369,   370,   371,   372,
-     373,   374,   375,   377,   379,   381,   382,   384,   415,   417,
-      70,    73,    74,   205,   271,   373,   379,   393,   394,   395,
-     396,   397,   399,   400,   401,   402,   415,   417,   108,   109,
-     205,   307,   308,   309,   311,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   142,   143,
-     205,   415,   417,   484,   485,   486,   487,   489,   491,   492,
-     494,   495,   496,   499,   501,   502,   503,   506,   508,   510,
-     145,   530,   531,   532,    12,   522,   523,   524,     6,     3,
-       4,     8,     3,   211,   527,   513,   515,   517,     4,     3,
-       8,   519,   229,   246,     4,     4,     4,   431,   433,   435,
-     244,   252,   254,     4,     4,     4,     4,     4,     4,     4,
-     224,   324,   360,   386,   352,   416,   418,   348,   291,   458,
-     420,   300,   314,     4,   471,   479,   481,     3,     8,   235,
-     237,   240,     4,     3,     8,   336,   338,   340,   404,   334,
-     342,     4,   346,   344,   455,     3,     8,   414,     3,     8,
-     453,   441,   443,   447,   445,   451,   449,   437,     8,     3,
-       8,   376,   272,     4,   380,   378,   383,     4,     8,     3,
-     398,     4,     4,     8,     3,   310,   312,     3,     8,     4,
-     488,   490,     4,   493,     4,     4,   497,   500,     4,     4,
-     504,   507,   509,   511,     3,     8,   533,     3,     8,   525,
-       3,     8,   190,   190,   170,     4,     4,     4,     4,     4,
-     209,     4,     4,     4,   173,   173,   173,     4,     4,     4,
-       4,     4,     4,   171,   171,   171,   173,   172,   172,   171,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   171,     4,     4,     4,   215,     4,     4,
-       4,   173,   231,     4,     4,     4,     4,     4,     4,   171,
-       4,     4,     4,   332,     4,   412,     4,     4,     4,     4,
-       4,     4,     4,     4,   429,     4,     4,   171,     4,     4,
-       4,   173,   371,     4,   173,   173,   395,     4,     4,   308,
-     173,     4,     4,   171,     4,   171,   171,     4,     4,   173,
-     173,     4,     4,     4,     4,   485,     4,   531,     4,   523,
-       4,     7,     7,   190,   190,   190,     7,     7,     7,   170,
-     170,   170,     7,     7,     5,   170,     5,     5,     5,     5,
-     192,   194,   170,    87,    88,    89,    90,   349,     5,     5,
-       5,     5,     7,     7,   194,     7,     5,   201,    16,    17,
-     238,    19,    20,   241,   170,   170,   170,     5,   170,   170,
-     201,   170,     7,   170,   201,   170,   170,   170,   170,   170,
-     170,   170,   170,   170,   170,   170,   170,   170,   170,   190,
-     170,   170,   170,    17,   136,   498,   137,   138,   139,   140,
-     141,   173,   505,   170,   170,   170,     5,     5,   190,   214,
-     530,   522,   230,    23,   247,   248,   249,    33,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,   205,   259,   260,   261,   264,
-     266,   268,   270,   271,   273,   274,   275,   276,   277,   278,
-     279,   280,   282,   284,   286,   288,   289,   259,     7,   255,
-     256,   257,     7,   325,   326,   327,     7,   363,   364,   365,
-       7,   387,   388,   389,     7,   353,   354,   355,    98,    99,
-     100,   101,   103,   292,   293,   294,   295,   296,   297,   298,
-       7,   459,   460,     7,   421,   422,   423,     7,   301,   302,
-     303,   111,   112,   113,   114,   115,   116,   315,   316,   317,
-     318,   319,   320,   321,   322,   119,   120,   205,   415,   417,
-     472,   473,   474,   476,   484,   202,     7,   405,   406,   407,
-     106,   436,   438,   456,     7,   534,   535,   255,     8,     8,
-       8,     8,   250,     3,     8,   262,   265,   267,   269,     4,
-       4,     4,     4,     4,   281,   283,   285,   287,     4,     4,
-       4,     4,     4,     3,     8,     8,   258,     6,     3,   328,
-       6,     3,   366,     6,     3,   390,     6,     3,   356,     6,
-       3,     3,     6,   461,     3,     6,   424,     6,     3,   304,
-       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
-     475,   477,     3,     8,     8,   170,   203,   204,   408,     6,
-       3,   439,     8,   536,     3,     6,     6,     4,   248,     4,
-       4,     4,     4,   171,   173,   171,   173,   171,     4,     4,
-       4,     4,   171,   171,   171,   171,   173,   260,   259,   257,
-     331,   327,   369,   365,   393,   389,   205,   216,   217,   218,
-     219,   220,   221,   226,   227,   271,   323,   341,   343,   345,
-     347,   357,   358,   385,   415,   417,   430,   432,   434,   454,
-     355,   293,    94,    95,   205,   271,   359,   385,   415,   417,
-     430,   432,   434,   462,   463,   464,   465,   466,   468,   460,
-     427,   423,   307,   303,   171,   171,   171,   171,   171,   171,
-     316,     4,     4,   473,     6,     3,   411,   407,     4,   146,
-     148,   149,   205,   271,   415,   417,   537,   538,   539,   540,
-     542,   535,   170,    34,    35,    36,    37,   263,   170,   170,
-     170,   170,   170,   170,   170,     8,     8,     8,     8,     3,
-       8,   467,     4,     8,     3,     8,     8,   170,   170,   170,
-       8,   201,   543,     4,   541,     3,     8,   358,     4,   173,
-     464,     4,   171,     4,   538,   170,     5,   170,     7,   544,
-     545,   546,     3,     6,   147,   150,   151,   152,   547,   548,
-     549,   551,   552,   553,   545,   550,     4,     4,     4,     3,
-       8,     4,   173,   171,   171,   548,   170
+       0,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   176,   177,   178,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
+       0,     5,     7,     9,   171,   172,   173,   174,   191,   192,
+     193,   198,     7,   207,     7,   213,     7,   233,     7,   330,
+       7,   410,     7,   426,     7,   362,     7,   368,     7,   392,
+       7,   306,     7,   483,     7,   530,     7,   521,   199,   194,
+     208,   214,   234,   331,   411,   427,   363,   369,   393,   307,
+     484,   531,   522,   191,   200,   201,   171,   196,   197,    10,
+     145,   154,   155,   156,   171,   206,   209,   210,   211,   513,
+     515,   517,   528,    11,    14,    23,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    68,    69,    79,    82,    83,    87,
+      92,    93,    98,   108,   111,   118,   119,   122,   123,   206,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     226,   227,   228,   229,   244,   246,   252,   254,   291,   300,
+     314,   324,   348,   352,   360,   386,   416,   418,   420,   431,
+     433,   435,   458,   470,   471,   479,   481,   519,    15,    16,
+      19,    22,   206,   231,   232,   235,   237,   240,   243,   416,
+     418,    65,    66,    67,    80,    84,    85,    86,    94,    97,
+     105,   206,   217,   218,   219,   220,   221,   222,   227,   228,
+     332,   333,   334,   336,   338,   340,   342,   344,   346,   348,
+     351,   386,   404,   416,   418,   420,   431,   433,   435,   455,
+      81,   206,   344,   346,   386,   412,   413,   414,   416,   418,
+      93,    99,   100,   101,   102,   103,   104,   106,   206,   386,
+     416,   418,   428,   429,   430,   431,   433,   435,   437,   441,
+     443,   445,   447,   449,   451,   453,   360,    34,    70,    72,
+      73,    76,    77,    78,   206,   272,   370,   371,   372,   373,
+     374,   375,   376,   378,   380,   382,   383,   385,   416,   418,
+      71,    74,    75,   206,   272,   374,   380,   394,   395,   396,
+     397,   398,   400,   401,   402,   403,   416,   418,   109,   110,
+     206,   308,   309,   310,   312,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   143,   144,
+     206,   416,   418,   485,   486,   487,   488,   490,   492,   493,
+     495,   496,   497,   500,   502,   503,   504,   507,   509,   511,
+     146,   532,   533,   534,    12,    13,   523,   524,   525,   527,
+       6,     3,     4,     8,     3,   212,   529,   514,   516,   518,
+       4,     3,     8,   520,   230,   247,     4,     4,     4,   432,
+     434,   436,   245,   253,   255,     4,     4,     4,     4,     4,
+       4,     4,   225,   325,   361,   387,   353,   417,   419,   349,
+     292,   459,   421,   301,   315,     4,   472,   480,   482,     3,
+       8,   236,   238,   241,     4,     3,     8,   337,   339,   341,
+     405,   335,   343,     4,   347,   345,   456,     3,     8,   415,
+       3,     8,   454,   442,   444,   448,   446,   452,   450,   438,
+       8,     3,     8,   377,   273,     4,   381,   379,   384,     4,
+       8,     3,   399,     4,     4,     8,     3,   311,   313,     3,
+       8,     4,   489,   491,     4,   494,     4,     4,   498,   501,
+       4,     4,   505,   508,   510,   512,     3,     8,   535,     3,
+       8,   526,     4,     3,     8,   191,   191,   171,     4,     4,
+       4,     4,     4,   210,     4,     4,     4,   174,   174,   174,
+       4,     4,     4,     4,     4,     4,   172,   172,   172,   174,
+     173,   173,   172,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,   172,     4,     4,     4,
+     216,     4,     4,     4,   174,   232,     4,     4,     4,     4,
+       4,     4,   172,     4,     4,     4,   333,     4,   413,     4,
+       4,     4,     4,     4,     4,     4,     4,   430,     4,     4,
+     172,     4,     4,     4,   174,   372,     4,   174,   174,   396,
+       4,     4,   309,   174,     4,     4,   172,     4,   172,   172,
+       4,     4,   174,   174,     4,     4,     4,     4,   486,     4,
+     533,     4,   172,   524,     4,     7,     7,   191,   191,   191,
+       7,     7,     7,   171,   171,   171,     7,     7,     5,   171,
+       5,     5,     5,     5,   193,   195,   171,    88,    89,    90,
+      91,   350,     5,     5,     5,     5,     7,     7,   195,     7,
+       5,   202,    17,    18,   239,    20,    21,   242,   171,   171,
+     171,     5,   171,   171,   202,   171,     7,   171,   202,   171,
+     171,   171,   171,   171,   171,   171,   171,   171,   171,   171,
+     171,   171,   171,   191,   171,   171,   171,    18,   137,   499,
+     138,   139,   140,   141,   142,   174,   506,   171,   171,   171,
+       5,     5,   191,   215,   532,   523,   231,    24,   248,   249,
+     250,    34,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,   206,
+     260,   261,   262,   265,   267,   269,   271,   272,   274,   275,
+     276,   277,   278,   279,   280,   281,   283,   285,   287,   289,
+     290,   260,     7,   256,   257,   258,     7,   326,   327,   328,
+       7,   364,   365,   366,     7,   388,   389,   390,     7,   354,
+     355,   356,    99,   100,   101,   102,   104,   293,   294,   295,
+     296,   297,   298,   299,     7,   460,   461,     7,   422,   423,
+     424,     7,   302,   303,   304,   112,   113,   114,   115,   116,
+     117,   316,   317,   318,   319,   320,   321,   322,   323,   120,
+     121,   206,   416,   418,   473,   474,   475,   477,   485,   203,
+       7,   406,   407,   408,   107,   437,   439,   457,     7,   536,
+     537,   256,     8,     8,     8,     8,   251,     3,     8,   263,
+     266,   268,   270,     4,     4,     4,     4,     4,   282,   284,
+     286,   288,     4,     4,     4,     4,     4,     3,     8,     8,
+     259,     6,     3,   329,     6,     3,   367,     6,     3,   391,
+       6,     3,   357,     6,     3,     3,     6,   462,     3,     6,
+     425,     6,     3,   305,     6,     3,     4,     4,     4,     4,
+       4,     4,     3,     8,   476,   478,     3,     8,     8,   171,
+     204,   205,   409,     6,     3,   440,     8,   538,     3,     6,
+       6,     4,   249,     4,     4,     4,     4,   172,   174,   172,
+     174,   172,     4,     4,     4,     4,   172,   172,   172,   172,
+     174,   261,   260,   258,   332,   328,   370,   366,   394,   390,
+     206,   217,   218,   219,   220,   221,   222,   227,   228,   272,
+     324,   342,   344,   346,   348,   358,   359,   386,   416,   418,
+     431,   433,   435,   455,   356,   294,    95,    96,   206,   272,
+     360,   386,   416,   418,   431,   433,   435,   463,   464,   465,
+     466,   467,   469,   461,   428,   424,   308,   304,   172,   172,
+     172,   172,   172,   172,   317,     4,     4,   474,     6,     3,
+     412,   408,     4,   147,   149,   150,   206,   272,   416,   418,
+     539,   540,   541,   542,   544,   537,   171,    35,    36,    37,
+      38,   264,   171,   171,   171,   171,   171,   171,   171,     8,
+       8,     8,     8,     3,     8,   468,     4,     8,     3,     8,
+       8,   171,   171,   171,     8,   202,   545,     4,   543,     3,
+       8,   359,     4,   174,   465,     4,   172,     4,   540,   171,
+       5,   171,     7,   546,   547,   548,     3,     6,   148,   151,
+     152,   153,   549,   550,   551,   553,   554,   555,   547,   552,
+       4,     4,     4,     3,     8,     4,   174,   172,   172,   550,
+     171
   };
 
   const unsigned short
   Dhcp4Parser::yyr1_[] =
   {
-       0,   174,   176,   175,   177,   175,   178,   175,   179,   175,
-     180,   175,   181,   175,   182,   175,   183,   175,   184,   175,
-     185,   175,   186,   175,   187,   175,   188,   175,   189,   175,
-     190,   190,   190,   190,   190,   190,   190,   191,   193,   192,
-     194,   195,   195,   196,   196,   198,   197,   199,   199,   200,
-     200,   202,   201,   203,   203,   204,   204,   205,   207,   206,
-     208,   208,   209,   209,   209,   209,   209,   209,   211,   210,
-     213,   212,   214,   214,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   216,   217,   218,   219,   220,   221,   222,   224,   223,
-     225,   226,   227,   229,   228,   230,   230,   231,   231,   231,
-     231,   231,   231,   231,   233,   232,   235,   234,   237,   236,
-     238,   238,   240,   239,   241,   241,   242,   244,   243,   246,
-     245,   247,   247,   248,   250,   249,   252,   251,   254,   253,
-     255,   255,   256,   256,   258,   257,   259,   259,   260,   260,
-     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
-     260,   260,   260,   260,   260,   260,   260,   260,   262,   261,
-     263,   263,   263,   263,   265,   264,   267,   266,   269,   268,
-     270,   272,   271,   273,   274,   275,   276,   277,   278,   279,
-     281,   280,   283,   282,   285,   284,   287,   286,   288,   289,
-     291,   290,   292,   292,   293,   293,   293,   293,   293,   294,
-     295,   296,   297,   298,   300,   299,   301,   301,   302,   302,
-     304,   303,   306,   305,   307,   307,   307,   308,   308,   310,
-     309,   312,   311,   314,   313,   315,   315,   316,   316,   316,
-     316,   316,   316,   317,   318,   319,   320,   321,   322,   324,
-     323,   325,   325,   326,   326,   328,   327,   330,   329,   331,
-     331,   332,   332,   332,   332,   332,   332,   332,   332,   332,
-     332,   332,   332,   332,   332,   332,   332,   332,   332,   332,
-     332,   332,   332,   332,   332,   332,   332,   332,   334,   333,
-     336,   335,   338,   337,   340,   339,   342,   341,   344,   343,
-     346,   345,   348,   347,   349,   349,   349,   349,   350,   352,
-     351,   353,   353,   354,   354,   356,   355,   357,   357,   358,
-     358,   358,   358,   358,   358,   358,   358,   358,   358,   358,
-     358,   358,   358,   358,   358,   358,   358,   358,   358,   358,
-     358,   360,   359,   362,   361,   363,   363,   364,   364,   366,
-     365,   368,   367,   369,   369,   370,   370,   371,   371,   371,
-     371,   371,   371,   371,   371,   371,   371,   372,   373,   374,
-     376,   375,   378,   377,   380,   379,   381,   383,   382,   384,
-     386,   385,   387,   387,   388,   388,   390,   389,   392,   391,
-     393,   393,   394,   394,   395,   395,   395,   395,   395,   395,
-     395,   395,   395,   396,   398,   397,   399,   400,   401,   402,
-     404,   403,   405,   405,   406,   406,   408,   407,   410,   409,
-     411,   411,   412,   412,   412,   412,   412,   412,   412,   414,
-     413,   416,   415,   418,   417,   420,   419,   421,   421,   422,
-     422,   424,   423,   426,   425,   427,   427,   428,   428,   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,   441,   440,   443,   442,   445,   444,
-     447,   446,   449,   448,   451,   450,   453,   452,   455,   454,
-     456,   456,   458,   457,   459,   459,   461,   460,   462,   462,
-     463,   463,   464,   464,   464,   464,   464,   464,   464,   464,
-     464,   464,   464,   465,   467,   466,   468,   469,   471,   470,
-     472,   472,   473,   473,   473,   473,   473,   475,   474,   477,
-     476,   479,   478,   481,   480,   483,   482,   484,   484,   485,
-     485,   485,   485,   485,   485,   485,   485,   485,   485,   485,
-     485,   485,   485,   485,   485,   485,   485,   486,   488,   487,
-     490,   489,   491,   493,   492,   494,   495,   497,   496,   498,
-     498,   500,   499,   501,   502,   504,   503,   505,   505,   505,
-     505,   505,   507,   506,   509,   508,   511,   510,   513,   512,
-     515,   514,   517,   516,   519,   518,   521,   520,   522,   522,
-     523,   525,   524,   527,   526,   529,   528,   530,   530,   531,
-     533,   532,   534,   534,   536,   535,   537,   537,   538,   538,
-     538,   538,   538,   538,   538,   539,   541,   540,   543,   542,
-     544,   544,   546,   545,   547,   547,   548,   548,   548,   548,
-     550,   549,   551,   552,   553
+       0,   175,   177,   176,   178,   176,   179,   176,   180,   176,
+     181,   176,   182,   176,   183,   176,   184,   176,   185,   176,
+     186,   176,   187,   176,   188,   176,   189,   176,   190,   176,
+     191,   191,   191,   191,   191,   191,   191,   192,   194,   193,
+     195,   196,   196,   197,   197,   199,   198,   200,   200,   201,
+     201,   203,   202,   204,   204,   205,   205,   206,   208,   207,
+     209,   209,   210,   210,   210,   210,   210,   210,   212,   211,
+     214,   213,   215,   215,   216,   216,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+     216,   217,   218,   219,   220,   221,   222,   223,   225,   224,
+     226,   227,   228,   230,   229,   231,   231,   232,   232,   232,
+     232,   232,   232,   232,   234,   233,   236,   235,   238,   237,
+     239,   239,   241,   240,   242,   242,   243,   245,   244,   247,
+     246,   248,   248,   249,   251,   250,   253,   252,   255,   254,
+     256,   256,   257,   257,   259,   258,   260,   260,   261,   261,
+     261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
+     261,   261,   261,   261,   261,   261,   261,   261,   263,   262,
+     264,   264,   264,   264,   266,   265,   268,   267,   270,   269,
+     271,   273,   272,   274,   275,   276,   277,   278,   279,   280,
+     282,   281,   284,   283,   286,   285,   288,   287,   289,   290,
+     292,   291,   293,   293,   294,   294,   294,   294,   294,   295,
+     296,   297,   298,   299,   301,   300,   302,   302,   303,   303,
+     305,   304,   307,   306,   308,   308,   308,   309,   309,   311,
+     310,   313,   312,   315,   314,   316,   316,   317,   317,   317,
+     317,   317,   317,   318,   319,   320,   321,   322,   323,   325,
+     324,   326,   326,   327,   327,   329,   328,   331,   330,   332,
+     332,   333,   333,   333,   333,   333,   333,   333,   333,   333,
+     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
+     333,   333,   333,   333,   333,   333,   333,   333,   335,   334,
+     337,   336,   339,   338,   341,   340,   343,   342,   345,   344,
+     347,   346,   349,   348,   350,   350,   350,   350,   351,   353,
+     352,   354,   354,   355,   355,   357,   356,   358,   358,   359,
+     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
+     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
+     359,   361,   360,   363,   362,   364,   364,   365,   365,   367,
+     366,   369,   368,   370,   370,   371,   371,   372,   372,   372,
+     372,   372,   372,   372,   372,   372,   372,   373,   374,   375,
+     377,   376,   379,   378,   381,   380,   382,   384,   383,   385,
+     387,   386,   388,   388,   389,   389,   391,   390,   393,   392,
+     394,   394,   395,   395,   396,   396,   396,   396,   396,   396,
+     396,   396,   396,   397,   399,   398,   400,   401,   402,   403,
+     405,   404,   406,   406,   407,   407,   409,   408,   411,   410,
+     412,   412,   413,   413,   413,   413,   413,   413,   413,   415,
+     414,   417,   416,   419,   418,   421,   420,   422,   422,   423,
+     423,   425,   424,   427,   426,   428,   428,   429,   429,   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,   442,   441,   444,   443,   446,   445,
+     448,   447,   450,   449,   452,   451,   454,   453,   456,   455,
+     457,   457,   459,   458,   460,   460,   462,   461,   463,   463,
+     464,   464,   465,   465,   465,   465,   465,   465,   465,   465,
+     465,   465,   465,   466,   468,   467,   469,   470,   472,   471,
+     473,   473,   474,   474,   474,   474,   474,   476,   475,   478,
+     477,   480,   479,   482,   481,   484,   483,   485,   485,   486,
+     486,   486,   486,   486,   486,   486,   486,   486,   486,   486,
+     486,   486,   486,   486,   486,   486,   486,   487,   489,   488,
+     491,   490,   492,   494,   493,   495,   496,   498,   497,   499,
+     499,   501,   500,   502,   503,   505,   504,   506,   506,   506,
+     506,   506,   508,   507,   510,   509,   512,   511,   514,   513,
+     516,   515,   518,   517,   520,   519,   522,   521,   523,   523,
+     524,   524,   526,   525,   527,   529,   528,   531,   530,   532,
+     532,   533,   535,   534,   536,   536,   538,   537,   539,   539,
+     540,   540,   540,   540,   540,   540,   540,   541,   543,   542,
+     545,   544,   546,   546,   548,   547,   549,   549,   550,   550,
+     550,   550,   552,   551,   553,   554,   555
   };
 
   const unsigned char
@@ -4783,11 +4799,11 @@ namespace isc { namespace dhcp {
        1,     0,     4,     3,     3,     0,     4,     1,     1,     1,
        1,     1,     0,     4,     0,     4,     0,     4,     0,     4,
        0,     4,     0,     4,     0,     6,     0,     4,     1,     3,
-       1,     0,     6,     0,     6,     0,     4,     1,     3,     1,
+       1,     1,     0,     6,     3,     0,     6,     0,     4,     1,
+       3,     1,     0,     6,     1,     3,     0,     4,     1,     3,
+       1,     1,     1,     1,     1,     1,     1,     3,     0,     4,
        0,     6,     1,     3,     0,     4,     1,     3,     1,     1,
-       1,     1,     1,     1,     1,     3,     0,     4,     0,     6,
-       1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
-       0,     4,     3,     3,     3
+       1,     1,     0,     4,     3,     3,     3
   };
 
 
@@ -4799,30 +4815,30 @@ namespace isc { namespace dhcp {
   {
   "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"",
   "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp4\"", "\"config-control\"",
-  "\"config-databases\"", "\"interfaces-config\"", "\"interfaces\"",
-  "\"dhcp-socket-type\"", "\"raw\"", "\"udp\"", "\"outbound-interface\"",
-  "\"same-as-inbound\"", "\"use-routing\"", "\"re-detect\"",
-  "\"sanity-checks\"", "\"lease-checks\"", "\"echo-client-id\"",
-  "\"match-client-id\"", "\"authoritative\"", "\"next-server\"",
-  "\"server-hostname\"", "\"boot-file-name\"", "\"lease-database\"",
-  "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"",
-  "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"",
-  "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"",
-  "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"",
-  "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"",
-  "\"max-reconnect-tries\"", "\"reconnect-wait-time\"",
-  "\"request-timeout\"", "\"tcp-keepalive\"", "\"tcp-nodelay\"",
-  "\"valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"",
-  "\"calculate-tee-times\"", "\"t1-percent\"", "\"t2-percent\"",
-  "\"decline-probation-period\"", "\"server-tag\"", "\"subnet4\"",
-  "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"",
-  "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
-  "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
-  "\"encapsulate\"", "\"array\"", "\"shared-networks\"", "\"pools\"",
-  "\"pool\"", "\"user-context\"", "\"comment\"", "\"subnet\"",
-  "\"interface\"", "\"id\"", "\"reservation-mode\"", "\"disabled\"",
-  "\"out-of-pool\"", "\"global\"", "\"all\"",
-  "\"host-reservation-identifiers\"", "\"client-classes\"",
+  "\"config-databases\"", "\"config-fetch-wait-time\"",
+  "\"interfaces-config\"", "\"interfaces\"", "\"dhcp-socket-type\"",
+  "\"raw\"", "\"udp\"", "\"outbound-interface\"", "\"same-as-inbound\"",
+  "\"use-routing\"", "\"re-detect\"", "\"sanity-checks\"",
+  "\"lease-checks\"", "\"echo-client-id\"", "\"match-client-id\"",
+  "\"authoritative\"", "\"next-server\"", "\"server-hostname\"",
+  "\"boot-file-name\"", "\"lease-database\"", "\"hosts-database\"",
+  "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"",
+  "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"",
+  "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"",
+  "\"connect-timeout\"", "\"contact-points\"", "\"keyspace\"",
+  "\"consistency\"", "\"serial-consistency\"", "\"max-reconnect-tries\"",
+  "\"reconnect-wait-time\"", "\"request-timeout\"", "\"tcp-keepalive\"",
+  "\"tcp-nodelay\"", "\"valid-lifetime\"", "\"renew-timer\"",
+  "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"",
+  "\"t2-percent\"", "\"decline-probation-period\"", "\"server-tag\"",
+  "\"subnet4\"", "\"4o6-interface\"", "\"4o6-interface-id\"",
+  "\"4o6-subnet\"", "\"option-def\"", "\"option-data\"", "\"name\"",
+  "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", "\"always-send\"",
+  "\"record-types\"", "\"encapsulate\"", "\"array\"",
+  "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"user-context\"",
+  "\"comment\"", "\"subnet\"", "\"interface\"", "\"id\"",
+  "\"reservation-mode\"", "\"disabled\"", "\"out-of-pool\"", "\"global\"",
+  "\"all\"", "\"host-reservation-identifiers\"", "\"client-classes\"",
   "\"require-client-classes\"", "\"test\"", "\"only-if-required\"",
   "\"client-class\"", "\"reservations\"", "\"duid\"", "\"hw-address\"",
   "\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"flex-id\"",
@@ -4930,11 +4946,11 @@ namespace isc { namespace dhcp {
   "dhcpddns_json_object", "$@115", "control_agent_json_object", "$@116",
   "config_control", "$@117", "sub_config_control", "$@118",
   "config_control_params", "config_control_param", "config_databases",
-  "$@119", "logging_object", "$@120", "sub_logging", "$@121",
-  "logging_params", "logging_param", "loggers", "$@122", "loggers_entries",
-  "logger_entry", "$@123", "logger_params", "logger_param", "debuglevel",
-  "severity", "$@124", "output_options_list", "$@125",
-  "output_options_list_content", "output_entry", "$@126",
+  "$@119", "config_fetch_wait_time", "logging_object", "$@120",
+  "sub_logging", "$@121", "logging_params", "logging_param", "loggers",
+  "$@122", "loggers_entries", "logger_entry", "$@123", "logger_params",
+  "logger_param", "debuglevel", "severity", "$@124", "output_options_list",
+  "$@125", "output_options_list_content", "output_entry", "$@126",
   "output_params_list", "output_params", "output", "$@127", "flush",
   "maxsize", "maxver", YY_NULLPTR
   };
@@ -4943,73 +4959,73 @@ namespace isc { namespace dhcp {
   const unsigned short
   Dhcp4Parser::yyrline_[] =
   {
-       0,   259,   259,   259,   260,   260,   261,   261,   262,   262,
-     263,   263,   264,   264,   265,   265,   266,   266,   267,   267,
-     268,   268,   269,   269,   270,   270,   271,   271,   272,   272,
-     280,   281,   282,   283,   284,   285,   286,   289,   294,   294,
-     305,   308,   309,   312,   316,   323,   323,   330,   331,   334,
-     338,   345,   345,   352,   353,   356,   360,   371,   381,   381,
-     397,   398,   402,   403,   404,   405,   406,   407,   410,   410,
-     425,   425,   434,   435,   440,   441,   442,   443,   444,   445,
-     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
-     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
-     476,   479,   484,   489,   494,   499,   504,   509,   514,   514,
-     522,   527,   532,   538,   538,   549,   550,   553,   554,   555,
-     556,   557,   558,   559,   562,   562,   571,   571,   581,   581,
-     588,   589,   592,   592,   599,   601,   605,   611,   611,   623,
-     623,   633,   634,   636,   638,   638,   656,   656,   668,   668,
-     678,   679,   682,   683,   686,   686,   696,   697,   700,   701,
-     702,   703,   704,   705,   706,   707,   708,   709,   710,   711,
-     712,   713,   714,   715,   716,   717,   718,   719,   722,   722,
-     729,   730,   731,   732,   735,   735,   743,   743,   751,   751,
-     759,   764,   764,   772,   777,   782,   787,   792,   797,   802,
-     807,   807,   815,   815,   823,   823,   831,   831,   839,   844,
-     849,   849,   859,   860,   863,   864,   865,   866,   867,   870,
-     875,   880,   885,   890,   895,   895,   905,   906,   909,   910,
-     913,   913,   923,   923,   933,   934,   935,   938,   939,   942,
-     942,   950,   950,   958,   958,   969,   970,   973,   974,   975,
-     976,   977,   978,   981,   986,   991,   996,  1001,  1006,  1014,
-    1014,  1027,  1028,  1031,  1032,  1039,  1039,  1065,  1065,  1076,
-    1077,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089,
-    1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,
-    1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1110,  1110,
-    1118,  1118,  1126,  1126,  1134,  1134,  1142,  1142,  1150,  1150,
-    1158,  1158,  1168,  1168,  1175,  1176,  1177,  1178,  1181,  1188,
-    1188,  1199,  1200,  1204,  1205,  1208,  1208,  1216,  1217,  1220,
-    1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
-    1231,  1232,  1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,
-    1241,  1248,  1248,  1261,  1261,  1270,  1271,  1274,  1275,  1280,
-    1280,  1295,  1295,  1309,  1310,  1313,  1314,  1317,  1318,  1319,
-    1320,  1321,  1322,  1323,  1324,  1325,  1326,  1329,  1331,  1336,
-    1338,  1338,  1346,  1346,  1354,  1354,  1362,  1364,  1364,  1372,
-    1381,  1381,  1393,  1394,  1399,  1400,  1405,  1405,  1417,  1417,
-    1429,  1430,  1435,  1436,  1441,  1442,  1443,  1444,  1445,  1446,
-    1447,  1448,  1449,  1452,  1454,  1454,  1462,  1464,  1466,  1471,
-    1479,  1479,  1491,  1492,  1495,  1496,  1499,  1499,  1509,  1509,
-    1519,  1520,  1523,  1524,  1525,  1526,  1527,  1528,  1529,  1532,
-    1532,  1540,  1540,  1565,  1565,  1595,  1595,  1605,  1606,  1609,
-    1610,  1613,  1613,  1622,  1622,  1631,  1632,  1635,  1636,  1640,
-    1641,  1642,  1643,  1644,  1645,  1646,  1647,  1648,  1649,  1650,
-    1651,  1652,  1653,  1654,  1657,  1657,  1665,  1665,  1673,  1673,
-    1681,  1681,  1689,  1689,  1699,  1699,  1707,  1707,  1715,  1715,
-    1723,  1723,  1731,  1731,  1739,  1739,  1747,  1747,  1760,  1760,
-    1770,  1771,  1777,  1777,  1787,  1788,  1791,  1791,  1801,  1802,
-    1805,  1806,  1809,  1810,  1811,  1812,  1813,  1814,  1815,  1816,
-    1817,  1818,  1819,  1822,  1824,  1824,  1832,  1841,  1848,  1848,
-    1858,  1859,  1862,  1863,  1864,  1865,  1866,  1869,  1869,  1877,
-    1877,  1888,  1888,  1926,  1926,  1938,  1938,  1948,  1949,  1952,
-    1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1962,
-    1963,  1964,  1965,  1966,  1967,  1968,  1969,  1972,  1977,  1977,
-    1985,  1985,  1993,  1998,  1998,  2006,  2011,  2016,  2016,  2024,
-    2025,  2028,  2028,  2036,  2041,  2046,  2046,  2054,  2057,  2060,
-    2063,  2066,  2072,  2072,  2080,  2080,  2088,  2088,  2099,  2099,
-    2106,  2106,  2113,  2113,  2120,  2120,  2131,  2131,  2141,  2142,
-    2146,  2149,  2149,  2164,  2164,  2174,  2174,  2185,  2186,  2190,
-    2194,  2194,  2206,  2207,  2211,  2211,  2219,  2220,  2223,  2224,
-    2225,  2226,  2227,  2228,  2229,  2232,  2237,  2237,  2245,  2245,
-    2255,  2256,  2259,  2259,  2267,  2268,  2271,  2272,  2273,  2274,
-    2277,  2277,  2285,  2290,  2295
+       0,   262,   262,   262,   263,   263,   264,   264,   265,   265,
+     266,   266,   267,   267,   268,   268,   269,   269,   270,   270,
+     271,   271,   272,   272,   273,   273,   274,   274,   275,   275,
+     283,   284,   285,   286,   287,   288,   289,   292,   297,   297,
+     308,   311,   312,   315,   319,   326,   326,   333,   334,   337,
+     341,   348,   348,   355,   356,   359,   363,   374,   384,   384,
+     400,   401,   405,   406,   407,   408,   409,   410,   413,   413,
+     428,   428,   437,   438,   443,   444,   445,   446,   447,   448,
+     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
+     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
+     479,   482,   487,   492,   497,   502,   507,   512,   517,   517,
+     525,   530,   535,   541,   541,   552,   553,   556,   557,   558,
+     559,   560,   561,   562,   565,   565,   574,   574,   584,   584,
+     591,   592,   595,   595,   602,   604,   608,   614,   614,   626,
+     626,   636,   637,   639,   641,   641,   659,   659,   671,   671,
+     681,   682,   685,   686,   689,   689,   699,   700,   703,   704,
+     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
+     715,   716,   717,   718,   719,   720,   721,   722,   725,   725,
+     732,   733,   734,   735,   738,   738,   746,   746,   754,   754,
+     762,   767,   767,   775,   780,   785,   790,   795,   800,   805,
+     810,   810,   818,   818,   826,   826,   834,   834,   842,   847,
+     852,   852,   862,   863,   866,   867,   868,   869,   870,   873,
+     878,   883,   888,   893,   898,   898,   908,   909,   912,   913,
+     916,   916,   926,   926,   936,   937,   938,   941,   942,   945,
+     945,   953,   953,   961,   961,   972,   973,   976,   977,   978,
+     979,   980,   981,   984,   989,   994,   999,  1004,  1009,  1017,
+    1017,  1030,  1031,  1034,  1035,  1042,  1042,  1068,  1068,  1079,
+    1080,  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,  1109,  1110,  1113,  1113,
+    1121,  1121,  1129,  1129,  1137,  1137,  1145,  1145,  1153,  1153,
+    1161,  1161,  1171,  1171,  1178,  1179,  1180,  1181,  1184,  1191,
+    1191,  1202,  1203,  1207,  1208,  1211,  1211,  1219,  1220,  1223,
+    1224,  1225,  1226,  1227,  1228,  1229,  1230,  1231,  1232,  1233,
+    1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,
+    1244,  1251,  1251,  1264,  1264,  1273,  1274,  1277,  1278,  1283,
+    1283,  1298,  1298,  1312,  1313,  1316,  1317,  1320,  1321,  1322,
+    1323,  1324,  1325,  1326,  1327,  1328,  1329,  1332,  1334,  1339,
+    1341,  1341,  1349,  1349,  1357,  1357,  1365,  1367,  1367,  1375,
+    1384,  1384,  1396,  1397,  1402,  1403,  1408,  1408,  1420,  1420,
+    1432,  1433,  1438,  1439,  1444,  1445,  1446,  1447,  1448,  1449,
+    1450,  1451,  1452,  1455,  1457,  1457,  1465,  1467,  1469,  1474,
+    1482,  1482,  1494,  1495,  1498,  1499,  1502,  1502,  1512,  1512,
+    1522,  1523,  1526,  1527,  1528,  1529,  1530,  1531,  1532,  1535,
+    1535,  1543,  1543,  1568,  1568,  1598,  1598,  1608,  1609,  1612,
+    1613,  1616,  1616,  1625,  1625,  1634,  1635,  1638,  1639,  1643,
+    1644,  1645,  1646,  1647,  1648,  1649,  1650,  1651,  1652,  1653,
+    1654,  1655,  1656,  1657,  1660,  1660,  1668,  1668,  1676,  1676,
+    1684,  1684,  1692,  1692,  1702,  1702,  1710,  1710,  1718,  1718,
+    1726,  1726,  1734,  1734,  1742,  1742,  1750,  1750,  1763,  1763,
+    1773,  1774,  1780,  1780,  1790,  1791,  1794,  1794,  1804,  1805,
+    1808,  1809,  1812,  1813,  1814,  1815,  1816,  1817,  1818,  1819,
+    1820,  1821,  1822,  1825,  1827,  1827,  1835,  1844,  1851,  1851,
+    1861,  1862,  1865,  1866,  1867,  1868,  1869,  1872,  1872,  1880,
+    1880,  1891,  1891,  1929,  1929,  1941,  1941,  1951,  1952,  1955,
+    1956,  1957,  1958,  1959,  1960,  1961,  1962,  1963,  1964,  1965,
+    1966,  1967,  1968,  1969,  1970,  1971,  1972,  1975,  1980,  1980,
+    1988,  1988,  1996,  2001,  2001,  2009,  2014,  2019,  2019,  2027,
+    2028,  2031,  2031,  2039,  2044,  2049,  2049,  2057,  2060,  2063,
+    2066,  2069,  2075,  2075,  2083,  2083,  2091,  2091,  2102,  2102,
+    2109,  2109,  2116,  2116,  2123,  2123,  2134,  2134,  2144,  2145,
+    2149,  2150,  2153,  2153,  2163,  2173,  2173,  2183,  2183,  2194,
+    2195,  2199,  2203,  2203,  2215,  2216,  2220,  2220,  2228,  2229,
+    2232,  2233,  2234,  2235,  2236,  2237,  2238,  2241,  2246,  2246,
+    2254,  2254,  2264,  2265,  2268,  2268,  2276,  2277,  2280,  2281,
+    2282,  2283,  2286,  2286,  2294,  2299,  2304
   };
 
   // Print the state stack on the debug stream.
@@ -5044,8 +5060,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:1242
 } } // isc::dhcp
-#line 5048 "dhcp4_parser.cc" // lalr1.cc:1242
-#line 2300 "dhcp4_parser.yy" // lalr1.cc:1243
+#line 5064 "dhcp4_parser.cc" // lalr1.cc:1242
+#line 2309 "dhcp4_parser.yy" // lalr1.cc:1243
 
 
 void
index 7c24acc20e673c00a76fc61cb122ebd1a339eec3..91d2a66b440ff21b5f9e5e33ad94a4abbfc36d13 100644 (file)
@@ -462,167 +462,168 @@ namespace isc { namespace dhcp {
         TOKEN_DHCP4 = 265,
         TOKEN_CONFIG_CONTROL = 266,
         TOKEN_CONFIG_DATABASES = 267,
-        TOKEN_INTERFACES_CONFIG = 268,
-        TOKEN_INTERFACES = 269,
-        TOKEN_DHCP_SOCKET_TYPE = 270,
-        TOKEN_RAW = 271,
-        TOKEN_UDP = 272,
-        TOKEN_OUTBOUND_INTERFACE = 273,
-        TOKEN_SAME_AS_INBOUND = 274,
-        TOKEN_USE_ROUTING = 275,
-        TOKEN_RE_DETECT = 276,
-        TOKEN_SANITY_CHECKS = 277,
-        TOKEN_LEASE_CHECKS = 278,
-        TOKEN_ECHO_CLIENT_ID = 279,
-        TOKEN_MATCH_CLIENT_ID = 280,
-        TOKEN_AUTHORITATIVE = 281,
-        TOKEN_NEXT_SERVER = 282,
-        TOKEN_SERVER_HOSTNAME = 283,
-        TOKEN_BOOT_FILE_NAME = 284,
-        TOKEN_LEASE_DATABASE = 285,
-        TOKEN_HOSTS_DATABASE = 286,
-        TOKEN_HOSTS_DATABASES = 287,
-        TOKEN_TYPE = 288,
-        TOKEN_MEMFILE = 289,
-        TOKEN_MYSQL = 290,
-        TOKEN_POSTGRESQL = 291,
-        TOKEN_CQL = 292,
-        TOKEN_USER = 293,
-        TOKEN_PASSWORD = 294,
-        TOKEN_HOST = 295,
-        TOKEN_PORT = 296,
-        TOKEN_PERSIST = 297,
-        TOKEN_LFC_INTERVAL = 298,
-        TOKEN_READONLY = 299,
-        TOKEN_CONNECT_TIMEOUT = 300,
-        TOKEN_CONTACT_POINTS = 301,
-        TOKEN_KEYSPACE = 302,
-        TOKEN_CONSISTENCY = 303,
-        TOKEN_SERIAL_CONSISTENCY = 304,
-        TOKEN_MAX_RECONNECT_TRIES = 305,
-        TOKEN_RECONNECT_WAIT_TIME = 306,
-        TOKEN_REQUEST_TIMEOUT = 307,
-        TOKEN_TCP_KEEPALIVE = 308,
-        TOKEN_TCP_NODELAY = 309,
-        TOKEN_VALID_LIFETIME = 310,
-        TOKEN_RENEW_TIMER = 311,
-        TOKEN_REBIND_TIMER = 312,
-        TOKEN_CALCULATE_TEE_TIMES = 313,
-        TOKEN_T1_PERCENT = 314,
-        TOKEN_T2_PERCENT = 315,
-        TOKEN_DECLINE_PROBATION_PERIOD = 316,
-        TOKEN_SERVER_TAG = 317,
-        TOKEN_SUBNET4 = 318,
-        TOKEN_SUBNET_4O6_INTERFACE = 319,
-        TOKEN_SUBNET_4O6_INTERFACE_ID = 320,
-        TOKEN_SUBNET_4O6_SUBNET = 321,
-        TOKEN_OPTION_DEF = 322,
-        TOKEN_OPTION_DATA = 323,
-        TOKEN_NAME = 324,
-        TOKEN_DATA = 325,
-        TOKEN_CODE = 326,
-        TOKEN_SPACE = 327,
-        TOKEN_CSV_FORMAT = 328,
-        TOKEN_ALWAYS_SEND = 329,
-        TOKEN_RECORD_TYPES = 330,
-        TOKEN_ENCAPSULATE = 331,
-        TOKEN_ARRAY = 332,
-        TOKEN_SHARED_NETWORKS = 333,
-        TOKEN_POOLS = 334,
-        TOKEN_POOL = 335,
-        TOKEN_USER_CONTEXT = 336,
-        TOKEN_COMMENT = 337,
-        TOKEN_SUBNET = 338,
-        TOKEN_INTERFACE = 339,
-        TOKEN_ID = 340,
-        TOKEN_RESERVATION_MODE = 341,
-        TOKEN_DISABLED = 342,
-        TOKEN_OUT_OF_POOL = 343,
-        TOKEN_GLOBAL = 344,
-        TOKEN_ALL = 345,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 346,
-        TOKEN_CLIENT_CLASSES = 347,
-        TOKEN_REQUIRE_CLIENT_CLASSES = 348,
-        TOKEN_TEST = 349,
-        TOKEN_ONLY_IF_REQUIRED = 350,
-        TOKEN_CLIENT_CLASS = 351,
-        TOKEN_RESERVATIONS = 352,
-        TOKEN_DUID = 353,
-        TOKEN_HW_ADDRESS = 354,
-        TOKEN_CIRCUIT_ID = 355,
-        TOKEN_CLIENT_ID = 356,
-        TOKEN_HOSTNAME = 357,
-        TOKEN_FLEX_ID = 358,
-        TOKEN_RELAY = 359,
-        TOKEN_IP_ADDRESS = 360,
-        TOKEN_IP_ADDRESSES = 361,
-        TOKEN_HOOKS_LIBRARIES = 362,
-        TOKEN_LIBRARY = 363,
-        TOKEN_PARAMETERS = 364,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 365,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 366,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 367,
-        TOKEN_HOLD_RECLAIMED_TIME = 368,
-        TOKEN_MAX_RECLAIM_LEASES = 369,
-        TOKEN_MAX_RECLAIM_TIME = 370,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 371,
-        TOKEN_DHCP4O6_PORT = 372,
-        TOKEN_CONTROL_SOCKET = 373,
-        TOKEN_SOCKET_TYPE = 374,
-        TOKEN_SOCKET_NAME = 375,
-        TOKEN_DHCP_QUEUE_CONTROL = 376,
-        TOKEN_DHCP_DDNS = 377,
-        TOKEN_ENABLE_UPDATES = 378,
-        TOKEN_QUALIFYING_SUFFIX = 379,
-        TOKEN_SERVER_IP = 380,
-        TOKEN_SERVER_PORT = 381,
-        TOKEN_SENDER_IP = 382,
-        TOKEN_SENDER_PORT = 383,
-        TOKEN_MAX_QUEUE_SIZE = 384,
-        TOKEN_NCR_PROTOCOL = 385,
-        TOKEN_NCR_FORMAT = 386,
-        TOKEN_OVERRIDE_NO_UPDATE = 387,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 388,
-        TOKEN_REPLACE_CLIENT_NAME = 389,
-        TOKEN_GENERATED_PREFIX = 390,
-        TOKEN_TCP = 391,
-        TOKEN_JSON = 392,
-        TOKEN_WHEN_PRESENT = 393,
-        TOKEN_NEVER = 394,
-        TOKEN_ALWAYS = 395,
-        TOKEN_WHEN_NOT_PRESENT = 396,
-        TOKEN_HOSTNAME_CHAR_SET = 397,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 398,
-        TOKEN_LOGGING = 399,
-        TOKEN_LOGGERS = 400,
-        TOKEN_OUTPUT_OPTIONS = 401,
-        TOKEN_OUTPUT = 402,
-        TOKEN_DEBUGLEVEL = 403,
-        TOKEN_SEVERITY = 404,
-        TOKEN_FLUSH = 405,
-        TOKEN_MAXSIZE = 406,
-        TOKEN_MAXVER = 407,
-        TOKEN_DHCP6 = 408,
-        TOKEN_DHCPDDNS = 409,
-        TOKEN_CONTROL_AGENT = 410,
-        TOKEN_TOPLEVEL_JSON = 411,
-        TOKEN_TOPLEVEL_DHCP4 = 412,
-        TOKEN_SUB_DHCP4 = 413,
-        TOKEN_SUB_INTERFACES4 = 414,
-        TOKEN_SUB_SUBNET4 = 415,
-        TOKEN_SUB_POOL4 = 416,
-        TOKEN_SUB_RESERVATION = 417,
-        TOKEN_SUB_OPTION_DEFS = 418,
-        TOKEN_SUB_OPTION_DEF = 419,
-        TOKEN_SUB_OPTION_DATA = 420,
-        TOKEN_SUB_HOOKS_LIBRARY = 421,
-        TOKEN_SUB_DHCP_DDNS = 422,
-        TOKEN_SUB_LOGGING = 423,
-        TOKEN_SUB_CONFIG_CONTROL = 424,
-        TOKEN_STRING = 425,
-        TOKEN_INTEGER = 426,
-        TOKEN_FLOAT = 427,
-        TOKEN_BOOLEAN = 428
+        TOKEN_CONFIG_FETCH_WAIT_TIME = 268,
+        TOKEN_INTERFACES_CONFIG = 269,
+        TOKEN_INTERFACES = 270,
+        TOKEN_DHCP_SOCKET_TYPE = 271,
+        TOKEN_RAW = 272,
+        TOKEN_UDP = 273,
+        TOKEN_OUTBOUND_INTERFACE = 274,
+        TOKEN_SAME_AS_INBOUND = 275,
+        TOKEN_USE_ROUTING = 276,
+        TOKEN_RE_DETECT = 277,
+        TOKEN_SANITY_CHECKS = 278,
+        TOKEN_LEASE_CHECKS = 279,
+        TOKEN_ECHO_CLIENT_ID = 280,
+        TOKEN_MATCH_CLIENT_ID = 281,
+        TOKEN_AUTHORITATIVE = 282,
+        TOKEN_NEXT_SERVER = 283,
+        TOKEN_SERVER_HOSTNAME = 284,
+        TOKEN_BOOT_FILE_NAME = 285,
+        TOKEN_LEASE_DATABASE = 286,
+        TOKEN_HOSTS_DATABASE = 287,
+        TOKEN_HOSTS_DATABASES = 288,
+        TOKEN_TYPE = 289,
+        TOKEN_MEMFILE = 290,
+        TOKEN_MYSQL = 291,
+        TOKEN_POSTGRESQL = 292,
+        TOKEN_CQL = 293,
+        TOKEN_USER = 294,
+        TOKEN_PASSWORD = 295,
+        TOKEN_HOST = 296,
+        TOKEN_PORT = 297,
+        TOKEN_PERSIST = 298,
+        TOKEN_LFC_INTERVAL = 299,
+        TOKEN_READONLY = 300,
+        TOKEN_CONNECT_TIMEOUT = 301,
+        TOKEN_CONTACT_POINTS = 302,
+        TOKEN_KEYSPACE = 303,
+        TOKEN_CONSISTENCY = 304,
+        TOKEN_SERIAL_CONSISTENCY = 305,
+        TOKEN_MAX_RECONNECT_TRIES = 306,
+        TOKEN_RECONNECT_WAIT_TIME = 307,
+        TOKEN_REQUEST_TIMEOUT = 308,
+        TOKEN_TCP_KEEPALIVE = 309,
+        TOKEN_TCP_NODELAY = 310,
+        TOKEN_VALID_LIFETIME = 311,
+        TOKEN_RENEW_TIMER = 312,
+        TOKEN_REBIND_TIMER = 313,
+        TOKEN_CALCULATE_TEE_TIMES = 314,
+        TOKEN_T1_PERCENT = 315,
+        TOKEN_T2_PERCENT = 316,
+        TOKEN_DECLINE_PROBATION_PERIOD = 317,
+        TOKEN_SERVER_TAG = 318,
+        TOKEN_SUBNET4 = 319,
+        TOKEN_SUBNET_4O6_INTERFACE = 320,
+        TOKEN_SUBNET_4O6_INTERFACE_ID = 321,
+        TOKEN_SUBNET_4O6_SUBNET = 322,
+        TOKEN_OPTION_DEF = 323,
+        TOKEN_OPTION_DATA = 324,
+        TOKEN_NAME = 325,
+        TOKEN_DATA = 326,
+        TOKEN_CODE = 327,
+        TOKEN_SPACE = 328,
+        TOKEN_CSV_FORMAT = 329,
+        TOKEN_ALWAYS_SEND = 330,
+        TOKEN_RECORD_TYPES = 331,
+        TOKEN_ENCAPSULATE = 332,
+        TOKEN_ARRAY = 333,
+        TOKEN_SHARED_NETWORKS = 334,
+        TOKEN_POOLS = 335,
+        TOKEN_POOL = 336,
+        TOKEN_USER_CONTEXT = 337,
+        TOKEN_COMMENT = 338,
+        TOKEN_SUBNET = 339,
+        TOKEN_INTERFACE = 340,
+        TOKEN_ID = 341,
+        TOKEN_RESERVATION_MODE = 342,
+        TOKEN_DISABLED = 343,
+        TOKEN_OUT_OF_POOL = 344,
+        TOKEN_GLOBAL = 345,
+        TOKEN_ALL = 346,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 347,
+        TOKEN_CLIENT_CLASSES = 348,
+        TOKEN_REQUIRE_CLIENT_CLASSES = 349,
+        TOKEN_TEST = 350,
+        TOKEN_ONLY_IF_REQUIRED = 351,
+        TOKEN_CLIENT_CLASS = 352,
+        TOKEN_RESERVATIONS = 353,
+        TOKEN_DUID = 354,
+        TOKEN_HW_ADDRESS = 355,
+        TOKEN_CIRCUIT_ID = 356,
+        TOKEN_CLIENT_ID = 357,
+        TOKEN_HOSTNAME = 358,
+        TOKEN_FLEX_ID = 359,
+        TOKEN_RELAY = 360,
+        TOKEN_IP_ADDRESS = 361,
+        TOKEN_IP_ADDRESSES = 362,
+        TOKEN_HOOKS_LIBRARIES = 363,
+        TOKEN_LIBRARY = 364,
+        TOKEN_PARAMETERS = 365,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 366,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 367,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 368,
+        TOKEN_HOLD_RECLAIMED_TIME = 369,
+        TOKEN_MAX_RECLAIM_LEASES = 370,
+        TOKEN_MAX_RECLAIM_TIME = 371,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 372,
+        TOKEN_DHCP4O6_PORT = 373,
+        TOKEN_CONTROL_SOCKET = 374,
+        TOKEN_SOCKET_TYPE = 375,
+        TOKEN_SOCKET_NAME = 376,
+        TOKEN_DHCP_QUEUE_CONTROL = 377,
+        TOKEN_DHCP_DDNS = 378,
+        TOKEN_ENABLE_UPDATES = 379,
+        TOKEN_QUALIFYING_SUFFIX = 380,
+        TOKEN_SERVER_IP = 381,
+        TOKEN_SERVER_PORT = 382,
+        TOKEN_SENDER_IP = 383,
+        TOKEN_SENDER_PORT = 384,
+        TOKEN_MAX_QUEUE_SIZE = 385,
+        TOKEN_NCR_PROTOCOL = 386,
+        TOKEN_NCR_FORMAT = 387,
+        TOKEN_OVERRIDE_NO_UPDATE = 388,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 389,
+        TOKEN_REPLACE_CLIENT_NAME = 390,
+        TOKEN_GENERATED_PREFIX = 391,
+        TOKEN_TCP = 392,
+        TOKEN_JSON = 393,
+        TOKEN_WHEN_PRESENT = 394,
+        TOKEN_NEVER = 395,
+        TOKEN_ALWAYS = 396,
+        TOKEN_WHEN_NOT_PRESENT = 397,
+        TOKEN_HOSTNAME_CHAR_SET = 398,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 399,
+        TOKEN_LOGGING = 400,
+        TOKEN_LOGGERS = 401,
+        TOKEN_OUTPUT_OPTIONS = 402,
+        TOKEN_OUTPUT = 403,
+        TOKEN_DEBUGLEVEL = 404,
+        TOKEN_SEVERITY = 405,
+        TOKEN_FLUSH = 406,
+        TOKEN_MAXSIZE = 407,
+        TOKEN_MAXVER = 408,
+        TOKEN_DHCP6 = 409,
+        TOKEN_DHCPDDNS = 410,
+        TOKEN_CONTROL_AGENT = 411,
+        TOKEN_TOPLEVEL_JSON = 412,
+        TOKEN_TOPLEVEL_DHCP4 = 413,
+        TOKEN_SUB_DHCP4 = 414,
+        TOKEN_SUB_INTERFACES4 = 415,
+        TOKEN_SUB_SUBNET4 = 416,
+        TOKEN_SUB_POOL4 = 417,
+        TOKEN_SUB_RESERVATION = 418,
+        TOKEN_SUB_OPTION_DEFS = 419,
+        TOKEN_SUB_OPTION_DEF = 420,
+        TOKEN_SUB_OPTION_DATA = 421,
+        TOKEN_SUB_HOOKS_LIBRARY = 422,
+        TOKEN_SUB_DHCP_DDNS = 423,
+        TOKEN_SUB_LOGGING = 424,
+        TOKEN_SUB_CONFIG_CONTROL = 425,
+        TOKEN_STRING = 426,
+        TOKEN_INTEGER = 427,
+        TOKEN_FLOAT = 428,
+        TOKEN_BOOLEAN = 429
       };
     };
 
@@ -764,30 +765,30 @@ namespace isc { namespace dhcp {
         // Type destructor.
 switch (yytype)
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -870,13 +871,13 @@ switch (yytype)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -1133,6 +1134,21 @@ switch (yytype)
         return symbol_type (token::TOKEN_CONFIG_DATABASES, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_CONFIG_FETCH_WAIT_TIME (location_type l)
+      {
+        return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_CONFIG_FETCH_WAIT_TIME (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -3854,12 +3870,12 @@ switch (yytype)
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1036,     ///< Last index in yytable_.
-      yynnts_ = 380,  ///< Number of nonterminal symbols.
+      yylast_ = 1040,     ///< Last index in yytable_.
+      yynnts_ = 381,  ///< Number of nonterminal symbols.
       yyfinal_ = 30, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 174  ///< Number of tokens.
+      yyntokens_ = 175  ///< Number of tokens.
     };
 
 
@@ -3919,9 +3935,9 @@ switch (yytype)
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174
     };
-    const unsigned user_token_number_max_ = 428;
+    const unsigned user_token_number_max_ = 429;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -3942,30 +3958,30 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -3984,30 +4000,30 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -4033,30 +4049,30 @@ switch (yytype)
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 190: // value
-      case 194: // map_value
-      case 238: // socket_type
-      case 241: // outbound_interface_value
-      case 263: // db_type
-      case 349: // hr_mode
-      case 498: // ncr_protocol_value
-      case 505: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 239: // socket_type
+      case 242: // outbound_interface_value
+      case 264: // db_type
+      case 350: // hr_mode
+      case 499: // ncr_protocol_value
+      case 506: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -4141,14 +4157,14 @@ switch (yytype)
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428
+     425,   426,   427,   428,   429
     };
     return token_type (yytoken_number_[type]);
   }
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:401
 } } // isc::dhcp
-#line 4152 "dhcp4_parser.h" // lalr1.cc:401
+#line 4168 "dhcp4_parser.h" // lalr1.cc:401
 
 
 
index d235c14926adf2ec130cc3ad131a3c018c9786ad..580a53e533e3e67ffd1feb0ba34ed6cce3a3fa1e 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201903231444
+// Generated 201903261016
 // A Bison parser, made by GNU Bison 3.3.2.
 
 // Locations for Bison parsers in C++
index bc115ead3e7efb8cb93b83ccf1721b8054360e5a..ceb7e7568507cffcb1c21c320b507242d93d55a0 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201903231444
+// Generated 201903261016
 // A Bison parser, made by GNU Bison 3.3.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index 67018271155e52c12fe789d82edcf251a830f042..7963b74d65777b9c84d93724429061ed292b8aea 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201903231444
+// Generated 201903261016
 // A Bison parser, made by GNU Bison 3.3.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it