]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1385] Regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Fri, 9 Oct 2020 12:44:12 +0000 (12:44 +0000)
committerFrancis Dupont <fdupont@isc.org>
Fri, 9 Oct 2020 14:55:21 +0000 (16:55 +0200)
12 files changed:
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
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/location.hh
src/bin/dhcp6/position.hh
src/bin/dhcp6/stack.hh

index 874afc8c80d84193ceca0a47b418bd3588c1120e..7149c1ea409da450e4599554e4d18a411b026f4f 100644 (file)
@@ -700,7 +700,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1852] =
+static const flex_int16_t yy_accept[1848] =
     {   0,
       193,  193,    0,    0,    0,    0,    0,    0,    0,    0,
       201,  199,   10,   11,  199,    1,  193,  190,  193,  193,
@@ -727,7 +727,7 @@ static const flex_int16_t yy_accept[1852] =
         0,    0,    0,  184,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   83,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -736,176 +736,175 @@ static const flex_int16_t yy_accept[1852] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,  198,  196,    0,  195,  194,    0,    0,
-        0,    0,    0,    0,    0,    0,  164,    0,  163,    0,
-        0,   88,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  165,    0,  164,    0,
+        0,   89,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,   35,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   85,    0,    0,
+        0,    0,    0,    0,    0,    0,   86,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   17,    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,    0,
-        0,    0,    0,   18,    0,    0,    0,    0,  197,  194,
-        0,    0,    0,    0,    0,    0,    0,  165,    0,  167,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   89,    0,    0,    0,    0,    0,    0,    0,   74,
-        0,    0,    0,    0,    0,    0,  111,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   38,    0,    0,
+        0,    0,   18,    0,    0,    0,    0,  197,  194,    0,
+        0,    0,    0,    0,    0,    0,  166,    0,  168,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       90,    0,    0,    0,    0,    0,    0,    0,   75,    0,
+        0,    0,    0,    0,    0,  112,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   38,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   74,    0,
 
-       73,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   77,    0,   39,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   78,    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,  108,
-        0,   31,    0,    0,   36,    0,    0,    0,    0,    0,
-        0,    0,   12,  169,  168,    0,    0,    0,  121,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  109,    0,   31,
+        0,    0,   36,    0,    0,    0,    0,    0,    0,    0,
+       12,  170,  169,    0,    0,    0,  122,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  101,
 
-      100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   33,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   76,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  122,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  117,    0,    0,
+        0,    0,    0,    0,    0,    0,   33,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        7,    0,    0,  170,    0,    0,    0,    0,    0,    0,
+        0,   77,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  123,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  118,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    7,    0,
+        0,  171,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   87,    0,    0,    0,    0,    0,    0,    0,    0,
+       88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  102,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   98,    0,    0,    0,    0,    0,
+        0,  103,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   80,    0,    0,    0,
+        0,    0,    0,    0,   81,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   80,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  115,    0,
+        0,    0,    0,    0,    0,    0,    0,  116,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  127,   96,    0,    0,    0,    0,
-        0,    0,  101,   32,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  103,   40,
+        0,    0,  128,   97,    0,    0,    0,    0,    0,    0,
+      102,   32,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  104,   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,    0,    0,    0,    0,    0,    0,   68,
+        0,    0,    0,    0,    0,    0,    0,   69,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  147,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   85,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  117,    0,    0,    0,    0,    0,   43,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   84,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  116,    0,    0,    0,    0,    0,
-        0,   43,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   37,    0,    0,    0,    0,
+        0,    0,    0,   37,    0,    0,    0,    0,   30,    0,
 
-       30,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  105,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  147,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  114,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  148,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       81,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  152,    0,    0,    0,  150,    0,    0,
+        0,  153,    0,    0,    0,  151,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  174,    0,    0,    0,    0,
-        0,    0,    0,    0,  114,    0,    0,    0,    0,    0,
-        0,    0,    0,  118,    0,    0,    0,    0,    0,   99,
+        0,    0,    0,  175,    0,    0,    0,    0,    0,    0,
+        0,    0,  115,    0,    0,    0,    0,    0,    0,    0,
+        0,  119,    0,    0,    0,    0,    0,    0,  100,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  113,   22,    0,  124,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  112,   22,    0,
-      123,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,  156,    0,    0,    0,    0,   71,
-        0,    0,    0,    0,    0,    0,  126,   34,    0,  145,
+        0,    0,  157,    0,    0,    0,    0,   72,    0,    0,
+        0,    0,    0,    0,  127,   34,    0,  146,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   59,    0,    0,    0,    0,
-        0,   92,   93,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   75,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   44,    0,    0,    0,    0,    0,
+        0,    0,    0,   59,    0,    0,    0,    0,    0,   93,
+       94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   76,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   44,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  121,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      120,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,  178,    0,   72,   86,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   56,    0,
-        0,    0,    0,    0,    0,    0,  153,    0,    0,  151,
-        0,  142,  141,    0,    0,    0,   49,    0,    0,   21,
-        0,    0,    0,    0,  166,    0,    0,    0,    0,    0,
-      107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  135,    0,    0,  144,
+        0,    0,  179,    0,   73,   87,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   56,    0,    0,    0,
+        0,    0,    0,    0,  154,    0,    0,  152,    0,  143,
+      142,    0,    0,    0,   49,    0,    0,   21,    0,    0,
+        0,    0,  167,    0,    0,    0,    0,    0,  108,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      124,    0,   15,    0,   41,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  155,    0,    0,    0,    0,    0,
-
-        0,    0,   57,    0,    0,  119,    0,    0,    0,    0,
-      110,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   78,    0,  172,    0,    0,  177,    0,   95,    0,
+        0,    0,    0,    0,    0,  136,    0,    0,  145,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  125,
+       15,    0,   41,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  156,    0,    0,    0,    0,    0,    0,    0,
+
+       57,    0,    0,  120,    0,    0,    0,    0,  111,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
+        0,  173,    0,    0,  178,    0,   96,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   14,    0,    0,    0,    0,    0,   48,
-        0,    0,    0,    0,    0,  180,    0,    0,  105,   27,
-
-        0,    0,    0,   50,  140,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  175,    0,  148,    0,    0,    0,
-        0,    0,    0,    0,    0,   25,    0,    0,    0,   24,
-        0,  154,    0,    0,    0,   52,    0,    0,    0,    0,
-        0,   97,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   14,    0,    0,    0,    0,    0,   48,    0,    0,
+        0,    0,    0,  181,    0,    0,  106,   27,    0,    0,
+
+        0,   50,  141,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  176,    0,  149,    0,    0,    0,    0,
+        0,    0,    0,    0,   25,    0,    0,   24,    0,  155,
+        0,    0,    0,   52,    0,    0,    0,    0,    0,   98,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       53,    0,    0,   94,    0,    0,    0,   42,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   53,    0,
+        0,   95,    0,    0,    0,   42,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  125,    0,    0,    0,   26,    0,    0,  176,
-        0,    0,    0,    0,    0,  136,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,   47,    0,    0,   20,    0,
-      179,   70,    0,    0,    0,    0,  173,  171,    0,   28,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
-        0,    0,    0,  160,    0,    0,    0,    0,    0,    0,
-        0,  133,    0,    0,    0,  109,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   83,    0,    0,    0,  138,
-        0,    0,    0,    0,    0,    0,    0,    0,   62,    0,
-        0,    0,    0,    0,    0,    0,    0,  161,   13,    0,
-        0,    0,    0,    0,    0,    0,    0,  139,  149,    0,
+        0,  126,    0,    0,    0,   26,    0,  177,    0,    0,
+        0,    0,    0,  137,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,   47,    0,    0,   20,    0,  180,   71,
+        0,    0,    0,    0,  174,  172,    0,   28,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
+        0,    0,  161,    0,    0,    0,    0,    0,    0,  134,
+        0,    0,    0,  110,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   84,    0,    0,    0,  139,    0,    0,
+        0,    0,    0,    0,    0,    0,   62,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  162,   13,    0,    0,
+        0,    0,    0,    0,    0,  140,  150,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,  143,    0,    0,    0,    0,
-        0,    0,    0,  132,    0,   55,   54,   19,    0,  157,
-        0,    0,    0,    0,   45,    0,    0,    0,   91,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  131,
-        0,    0,    0,   51,    0,    0,   46,  159,    0,    0,
-       69,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  144,    0,    0,    0,    0,    0,
+        0,  133,    0,   55,   54,   19,    0,  158,    0,    0,
+        0,    0,   45,    0,    0,    0,   92,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  132,    0,
+        0,   51,    0,    0,   46,  160,    0,    0,   70,    0,
+        0,    0,    0,    0,    0,    0,   68,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   66,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   29,    0,
-        0,   67,    0,    0,  137,    0,    0,    0,    0,  181,
-
-      158,    0,  106,    0,    0,    0,   63,    0,    0,    0,
-        0,    0,    0,  129,    0,  134,    0,   65,   58,    0,
-        0,    0,    0,    0,    0,  128,    0,    0,  162,    0,
-        0,    0,    0,    0,    0,    0,   64,    0,    0,    0,
-        0,    0,   90,   61,    0,    0,    0,    0,   60,  130,
-        0
+        0,    0,    0,    0,    0,   29,    0,    0,   67,    0,
+        0,  138,    0,    0,    0,    0,  159,    0,  107,    0,
+
+        0,    0,   63,    0,    0,    0,    0,    0,    0,  130,
+        0,  135,    0,   65,   58,    0,    0,    0,    0,    0,
+        0,  129,    0,    0,  163,    0,    0,    0,    0,    0,
+        0,    0,   64,    0,    0,    0,    0,    0,   91,   61,
+        0,    0,    0,    0,   60,  131,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -952,243 +951,242 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1864] =
+static const flex_int16_t yy_base[1860] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2251, 2252,   34, 2247,  145,    0,  207, 2252,  214,  221,
-       13,  228, 2252, 2227,  118,   25,    2,    6, 2252, 2252,
-       73,   11,   17, 2252, 2252, 2252,  104, 2235, 2188,    0,
-     2225,  108, 2242,   24,  262, 2252, 2184,   67, 2190,   84,
-       75,   88,  224,   91,   89,  290,  220, 2182,  206,  285,
-      206,  204,  212,   60,  232, 2191,  247,  294,  315,  307,
-      286, 2174,  230,  325,  354,  328, 2193,    0,  366,  382,
-      397,  411,  404, 2252,    0, 2252,  419,  425,  216,  225,
-      229,  227,  319,  329, 2252, 2190, 2231, 2252,  300, 2252,
-
-      438, 2218,  390, 2187,  331,   10,  406,  311,  408,  414,
-      420, 2228,    0,  491,  409, 2170, 2167, 2171,  402, 2167,
-     2175,  406, 2171, 2160, 2161, 2166,   78, 2176, 2159, 2168,
-     2168,   95, 2159,  239, 2160, 2158,  396, 2206, 2210, 2150,
-     2203, 2143, 2166, 2163, 2163, 2157,  336, 2150, 2148, 2149,
-     2141, 2146, 2140,  413, 2151, 2144, 2135, 2134, 2148,  423,
-     2134,  430,  422, 2128,  465,  420,  432, 2149, 2146, 2147,
-      423, 2145, 2180, 2179,  423, 2125, 2125, 2126,  462, 2118,
-     2135, 2127,    0,  456,  471,  471,  489,  479,  504, 2126,
-     2252,    0, 2171,  509, 2120,  494,  501,  507, 2174,  516,
-
-     2173,  503, 2172, 2252,  553, 2171,  526, 2130, 2122, 2109,
-     2120, 2124, 2125, 2122, 2119, 2118, 2109,  500, 2160, 2154,
-     2118, 2099, 2096, 2104, 2099, 2113, 2109, 2097, 2109, 2109,
-     2100, 2084, 2088, 2101, 2103, 2100, 2092, 2082, 2100, 2252,
-     2095,  498, 2080, 2079, 2131, 2078, 2088, 2091,  541, 2087,
-     2126, 2071, 2073, 2084, 2122, 2067, 2125, 2060, 2075,  535,
-     2065, 2071, 2080, 2061, 2059, 2059, 2065, 2056, 2055, 2062,
-     2052, 2111, 2067, 2066, 2060,  488, 2067, 2062, 2054, 2044,
-     2059, 2058, 2053, 2057,  166, 2055, 2041, 2047, 2054, 2036,
-     2037, 2040, 2037, 2036,  341, 2031, 2045, 2044, 2087, 2046,
-
-      399, 2037,  523, 2252, 2252,  536, 2252, 2252, 2024,    0,
-      520,  515, 2072,  548, 2082,  548, 2252, 2081, 2252, 2075,
-      598, 2252,  547, 2015, 2024, 2072, 2032, 2015, 2032, 2013,
-     2019, 2071, 2026, 2021, 2024, 2019,  543, 2252, 2021, 2065,
-     2059, 2017, 2014,  576, 2020, 2060, 2054, 2007, 2002, 1999,
-     2050, 2007, 1996, 2012, 2046, 1992,  621, 2006, 1991, 2004,
-     2002, 1990, 2000, 1995, 2002, 1997, 1993,  528, 1991, 1994,
-     1989, 1975, 1987, 1983, 2033,  546, 2027, 2252, 2026, 1976,
-     1975, 1974, 1967, 1969, 1981, 1972, 1961, 1978, 1973,  586,
-     2020, 1973, 1970, 1973, 2252, 1972, 1961, 1961, 1973,  570,
-
-     1948, 1949, 1970,  580, 1952, 2003, 1948, 1962, 1965, 1960,
-     1946, 1958, 1957, 1956, 1951, 1954, 1953, 1952, 1951,  572,
-     1994, 1953, 1992, 2252, 1934, 1933,  629, 1946, 2252, 2252,
-     1945,    0, 1934, 1926,  573, 1985, 1984, 2252, 1983, 2252,
-      604,  672,  603, 1982, 1924, 1935, 1974, 1927, 1929, 1928,
-     1916, 2252, 1921, 1927, 1930, 1913, 1928, 1915, 1914, 2252,
-      591, 1916, 1913,  607, 1911, 1913, 2252, 1921, 1918, 1903,
-     1916, 1911,  646, 1918, 1906, 1899, 1950, 2252, 1897, 1913,
-     1947, 1908, 1905, 1906, 1890, 1907, 1941, 1892, 1887, 1886,
-     1937, 1881,  560, 1900, 1874, 1881, 1886, 1896, 1930, 1934,
-
-     2252, 1879, 1875, 1873, 1882, 1876, 1883, 1867, 1867, 1877,
-     1865, 1879, 1868, 1864, 1862, 2252, 1919, 2252, 1861, 1872,
-     1911, 1856, 1861, 1870, 1864, 1858, 1867, 1909, 1903, 1865,
-     1848, 1848, 1843, 1863, 1838, 1844, 1849, 1842, 1850, 1854,
-     1837, 1895, 1836, 1888, 1833, 1834, 1833, 1845, 1834, 2252,
-     1844, 2252, 1833, 1831, 2252, 1842, 1878, 1838,    0, 1822,
-     1839, 1879, 2252, 2252, 2252,  608,  607,  653, 2252, 1830,
-     1829,  608, 1836, 1816, 1815, 1868, 1813, 1866, 1811, 1810,
-     1809, 1816, 1809, 1821, 1803, 1803, 1818, 1817, 1816, 1815,
-     1815, 1797, 1802, 1843, 1810, 1802, 1847, 1791, 1807, 1806,
-
-     2252, 1791, 1788, 1846, 1801, 1793, 1799, 1790, 1798, 1783,
-     1799, 1781, 1793, 1794,  570, 1776, 1770, 1775, 1790, 1787,
-     1788, 1767, 1777, 1783, 1826, 1781, 1773, 1764, 2252, 1765,
-     1767, 1776, 1774, 1813, 1812, 1763,   16, 1772, 1809, 1754,
-     1755, 1758, 1751, 2252, 1765, 1744, 1748, 1762, 1754, 1799,
-     1751, 1758, 1796, 2252, 1741, 1755, 1739, 1753, 1756, 1737,
-     1789, 1788, 1787, 1786, 1731, 1784, 1783, 2252, 1728, 1742,
-      655, 1743, 1742, 1739, 1739, 1776, 1736, 1719, 1724, 1726,
-     2252, 1732, 1722, 2252,  637,  631, 1716, 1714, 1721, 1731,
-     1723, 1710, 1704, 1762,  628, 1766,  643, 1760, 1720, 1758,
-
-     1757, 1709, 1707, 1715, 1718, 1702, 1703, 1694, 1749, 1700,
-     1708, 1709, 1745, 1706, 1700,  617, 1696,   20,  247,  224,
-      254, 2252,  309,  305,  339,  417,  454,  497,  546,  610,
-      599,  627,  625,  638,  643,  695,  697,  647,  639,  649,
-      696,  654,  704, 2252,  705,  658,  660,  656,  650,  653,
-      706,  675,  664,  677, 2252,  667,  678,  667,  680,  682,
-      726,  727,  670,  681,  666,  689,  668,  674,  729,  693,
-      677,  689,  733,  734,  735,  682,  737,  701,  696,  703,
-      699,  684,  696,  697,  704,  690, 2252,  755,  713,  715,
-      705,  717,  707,  720,  705,  712,  718,  710,  724,  764,
-
-      740,  727,  732,  729,  711,  718,  732,  777,  730,  728,
-      737, 2252,  727,  742,  739,  725,  732,  731,  729,  748,
-      745,  733,  740,  741,  750,  750,  740,  738,  737,  749,
-      745,  801,  758,  743,  744,  750,  766,  756, 2252,  766,
-      766,  759,  770,  768,  813,  755,  757,  772,  759,  758,
-      820,  777,  763,  766, 2252, 2252,  776,  781,  786,  774,
-      784,  786, 2252, 2252,  787,  774,  792,  779,  773,  778,
-      796,  783,  833,  784,  836,  782,  786,  844, 2252, 2252,
-      789,  793,  792,  789,  849,  802,  792,  793,  789,  802,
-      813,  797,  815,  810,  811,  813,  806,  808,  809,  810,
-
-      810,  812,  827,  868,  825,  830,  807,  830,  814, 2252,
-      821,  822,  836,  826,  824,  874,  832,  822,  837,  838,
-      825,  857,  865,  834,  829,  884,  885,  847,  887, 2252,
-      850,  854,  895,  843,  838,  839,  851,  858,  847,  848,
-      844,  847,  848,  858,  867,  903,  859,  854,  913,  870,
-      871,  862, 2252,  864,  867,  875,  877,  862,  878,  872,
-      919,  885,  869,  870, 2252,  886,  889,  872,  931,  874,
-      893, 2252,  892,  895,  875,  893,  933,  891,  887,  884,
-      937,  938,  900,  886,  904,  903,  904,  890,  905,  897,
-      904,  894,  912,  911,  898, 2252,  906,  912,  915,  960,
-
-     2252,  909,  914,  958,  909,  922,  916,  920,  918,  916,
-      918,  928,  973,  917,  922,  918,  977,  921,  933, 2252,
-      921,  929,  927,  978,  940,  926,  927,  936,  948,  936,
-      934,  939,  949,  950,  955,  996,  968,  973,  955,  952,
-      948,  962,  945,  945, 1005,  948, 2252,  948,  968,  967,
-      958,  947,  964,  971, 1014,  975,  968,  972,  976,  959,
-     1020,  967, 2252, 1017,  964,  967,  968,  969,  969,  990,
-      987,  992,  993,  979,  987,  996,  976,  991,  998, 1040,
-     2252, 1041, 1042,  984,  994, 1004, 1007,  995,  991,  998,
-     1007,  995, 1002, 1003, 1015, 1056, 1003, 1001, 1003, 1020,
-
-     1061, 1011, 1010, 1016, 1014, 1012, 1007, 1068, 1069, 1065,
-     1071, 2252, 1028, 1021, 1012, 1031, 1019, 1029, 1026, 1031,
-     1027, 1040, 1040, 2252, 1024, 1026, 1026, 2252, 1028, 1088,
-     1027, 1046, 1047, 1049, 1040, 1094, 1095, 1048, 1033, 1047,
-     1055, 1054, 1038, 1043, 1061, 2252, 1083, 1074, 1106, 1046,
-     1068, 1063, 1063, 1067, 2252, 1054, 1056, 1073, 1068, 1072,
-     1117, 1065, 1069, 2252, 1061, 1078, 1058, 1079, 1069, 2252,
-     1084, 1084, 1123, 1070, 1125, 1083, 1088, 1075, 1135, 1078,
-     1089, 1081, 1087, 1083, 1101, 1102, 1103, 2252, 2252, 1102,
-     2252, 1087, 1098, 1089, 1108, 1098, 1091, 1103, 1147, 1111,
-
-     1100, 1107, 1108, 1114, 2252, 1107, 1159, 1100, 1161, 2252,
-     1162, 1104, 1110, 1117, 1161, 1123, 2252, 2252, 1110, 2252,
-     1112, 1126, 1131, 1114, 1173, 1130, 1131, 1132, 1172, 1124,
-     1129, 1180, 1133, 1129, 1183, 2252, 1130, 1185, 1186, 1143,
-     1145, 2252, 2252, 1128, 1190, 1186, 1150, 1193, 1135, 1147,
-     1152, 1167, 1198, 2252, 1155, 1148, 1157, 1148, 1159, 1204,
-     1151, 1166, 1202, 1154, 2252, 1150, 1166, 1167, 1168, 1165,
-     1209, 1172, 1176, 1163, 1159, 1219, 1172, 1216, 1222, 1179,
-     2252, 1180, 1174, 1183, 1184, 1181, 1172, 1175, 1175, 1180,
-     1235, 1182, 1237, 1180, 1239, 1235, 1176, 1191, 1184, 1187,
-
-     1200, 1201, 1199, 1249, 2252, 1203, 2252, 2252, 1208, 1200,
-     1210, 1195, 1251, 1197, 1258, 1202, 1212, 1261, 2252, 1209,
-     1209, 1211, 1213, 1266, 1207, 1210, 2252, 1211, 1230, 2252,
-     1214, 2252, 2252, 1227, 1229, 1230, 2252, 1217, 1225, 2252,
-     1277, 1226, 1279, 1259, 2252, 1281, 1238, 1283, 1234, 1281,
-     2252, 1229, 1237, 1231, 1228, 1231, 1234, 1234, 1251, 1290,
-     1243, 1255, 1258, 1240, 1247, 1237, 2252, 1259, 1245, 2252,
-     1247, 1248, 1263, 1263, 1266, 1266, 1263, 1307, 1269, 1261,
-     2252, 1262, 2252, 1272, 2252, 1269, 1274, 1275, 1272, 1316,
-     1264, 1279, 1280, 1272, 2252, 1269, 1270, 1270, 1276, 1275,
-
-     1273, 1287, 2252, 1328, 1275, 2252, 1276, 1276, 1278, 1284,
-     2252, 1286, 1340, 1282, 1290, 1293, 1304, 1302, 1346, 1299,
-     1308, 2252, 1305, 2252, 1302, 1325, 2252, 1352, 2252, 1310,
-     1295, 1355, 1356, 1313, 1318, 1300, 1360, 1361, 1357, 1321,
-     1318, 1314, 1307, 1319, 1309, 1314, 1370, 1324, 1372, 1368,
-     1332, 1328, 1372, 1321, 1326, 1324, 1383, 1339, 1327, 1386,
-     1344, 1388, 1349, 1338, 1332, 1392, 1334, 1335, 1349, 1352,
-     1352, 1398, 1340, 1357, 1353, 1357, 1341, 1399, 1400, 1347,
-     1402, 1365, 1366, 2252, 1366, 1367, 1354, 1353, 1409, 2252,
-     1350, 1368, 1417, 1375, 1388, 2252, 1420, 1373, 2252, 2252,
-
-     1364, 1375, 1424, 2252, 2252, 1370, 1375, 1373, 1423, 1381,
-     1386, 1377, 1375, 1389, 2252, 1377, 2252, 1380, 1431, 1374,
-     1379, 1439, 1387, 1398, 1399, 2252, 1444, 1397, 1441, 2252,
-     1448, 2252, 1391, 1406, 1394, 2252, 1404, 1405, 1454, 1412,
-     1416, 2252, 1452, 1418, 1394, 1412, 1421, 1403, 1410, 1464,
-     1423, 1422, 1467, 1415, 1469, 1470, 1420, 1424, 1429, 1422,
-     2252, 1475, 1476, 2252, 1425, 1478, 1420, 2252, 1423, 1433,
-     1477, 1425, 1440, 1427, 1433, 1433, 1488, 1445, 1433, 1432,
-     1492, 1445, 2252, 1489, 1440, 1437, 2252, 1451, 1438, 2252,
-     1455, 1500, 1453, 1450, 1451, 2252, 1504, 1463, 1446, 1448,
-
-     1464, 1446, 1462, 1463, 1472, 2252, 1462, 1514, 2252, 1473,
-     2252, 2252, 1457, 1464, 1518, 1514, 2252, 2252, 1476, 2252,
-     1516, 1478, 1479, 1464, 1465, 1473, 1527, 1523, 1478, 2252,
-     1490, 1477, 1484, 2252, 1481, 1486, 1484, 1536, 1537, 1485,
-     1481, 2252, 1496, 1497, 1498, 2252, 1499, 1489, 1501, 1546,
-     1547, 1489, 1497, 1498, 1511, 2252, 1488, 1548, 1509, 2252,
-     1513, 1498, 1498, 1513, 1506, 1505, 1516, 1503, 2252, 1508,
-     1564, 1522, 1524, 1515, 1524, 1526, 1530, 2252, 2252, 1523,
-     1572, 1515, 1574, 1575, 1576, 1534, 1578, 2252, 2252, 1574,
-     1536, 1537, 1524, 1583, 1526, 1531, 1522, 1587, 1540, 1541,
-
-     1531, 1548, 1547, 1588, 1550, 2252, 1547, 1552, 1553, 1598,
-     1555, 1558, 1545, 2252, 1602, 2252, 2252, 2252, 1563, 2252,
-     1545, 1605, 1606, 1549, 2252, 1568, 1609, 1568, 2252, 1559,
-     1549, 1608, 1574, 1567, 1563, 1560, 1565, 1561, 1563, 2252,
-     1568, 1578, 1563, 2252, 1565, 1577, 2252, 2252, 1582, 1575,
-     2252, 1577, 1585, 1630, 1571, 1573, 1570, 1594, 1587, 1590,
-     1579, 1633, 1580, 1588, 1597, 1598, 1591, 1586, 1590, 1602,
-     1647, 2252, 1593, 1605, 1650, 1599, 1598, 1653, 1606, 1593,
-     1608, 1613, 1658, 1659, 1616, 1661, 1611, 1605, 2252, 1621,
-     1665, 2252, 1622, 1624, 2252, 1615, 1629, 1625, 1618, 2252,
-
-     2252, 1672, 2252, 1629, 1674, 1635, 2252, 1676, 1677, 1632,
-     1631, 1632, 1622, 2252, 1677, 2252, 1624, 2252, 2252, 1684,
-     1626, 1642, 1687, 1648, 1645, 2252, 1686, 1635, 2252, 1647,
-     1640, 1695, 1637, 1639, 1654, 1639, 2252, 1652, 1701, 1702,
-     1650, 1652, 2252, 2252, 1646, 1662, 1707, 1708, 2252, 2252,
-     2252, 1714, 1719, 1724, 1729, 1734, 1739, 1744, 1747, 1721,
-     1726, 1728, 1741
+     2247, 2248,   34, 2243,  145,    0,  207, 2248,  214,  221,
+       13,  228, 2248, 2223,  118,   25,    2,    6, 2248, 2248,
+       73,   11,   17, 2248, 2248, 2248,  104, 2231, 2184,    0,
+     2221,  108, 2238,   24,  262, 2248, 2180,   67, 2186,   84,
+       75,   88,  224,   91,   89,  290,  220, 2178,  206,  285,
+      206,  204,  212,   60,  232, 2187,  247,  294,  315,  307,
+      286, 2170,  230,  325,  354,  328, 2189,    0,  366,  382,
+      397,  411,  404, 2248,    0, 2248,  419,  425,  216,  225,
+      229,  227,  319,  329, 2248, 2186, 2227, 2248,  300, 2248,
+
+      438, 2214,  390, 2183,  331,   10,  406,  311,  408,  414,
+      420, 2224,    0,  491,  409, 2166, 2163, 2167,  402, 2163,
+     2171,  406, 2167, 2156, 2157, 2162,   78, 2172, 2155, 2164,
+     2164,   95, 2155,  239, 2156, 2154,  396, 2202, 2206, 2146,
+     2199, 2139, 2162, 2159, 2159, 2153,  336, 2146, 2144, 2145,
+     2137, 2142, 2136,  413, 2147, 2140, 2131, 2130, 2144,  423,
+     2130,  430,  422, 2124,  465,  420,  432, 2145, 2142, 2143,
+      423, 2141, 2176, 2175,  423, 2121, 2121, 2122,  462, 2114,
+     2131, 2123,    0,  456,  471,  471,  489,  479,  504, 2122,
+     2248,    0, 2167,  509, 2116,  494,  501,  507, 2170,  516,
+
+     2169,  503, 2168, 2248,  553, 2167,  526, 2126, 2118, 2105,
+     2116, 2120, 2121, 2118, 2115, 2114, 2105,  500, 2156, 2150,
+     2114, 2095, 2092, 2100, 2095, 2109, 2105, 2093, 2105, 2105,
+     2096, 2080, 2084, 2097, 2099, 2096, 2088, 2078, 2096, 2248,
+     2091, 2094, 2075, 2074, 2126, 2073, 2083, 2086,  541, 2082,
+     2121, 2066, 2068, 2079, 2117, 2062, 2120, 2055, 2070,  535,
+     2060, 2066, 2075, 2056, 2054, 2054, 2060, 2051, 2050, 2057,
+     2047, 2106, 2062, 2061, 2055,  487, 2062, 2057, 2049, 2039,
+     2054, 2053, 2048, 2052,  166, 2050, 2036, 2042, 2049, 2031,
+     2032, 2035, 2032, 2031,  341, 2026, 2040, 2039, 2082, 2041,
+
+      399, 2032,  523, 2248, 2248,  534, 2248, 2248, 2019,    0,
+      521,  504, 2067,  536, 2077,  548, 2248, 2076, 2248, 2070,
+      598, 2248,  547, 2010, 2019, 2067, 2027, 2010, 2027, 2008,
+     2014, 2066, 2021, 2016, 2019, 2014,  543, 2248, 2016, 2060,
+     2054, 2012, 2009,  576, 2015, 2055, 2049, 2002, 1997, 1994,
+     2045, 2002, 1991, 2007, 2041, 1987,  621, 2001, 1986, 1999,
+     1986, 1996, 1991, 1998, 1993, 1989,  528, 1987, 1990, 1985,
+     1971, 1983, 1979, 2029,  546, 2023, 2248, 2022, 1972, 1971,
+     1970, 1963, 1965, 1977, 1968, 1957, 1974, 1969,  586, 2016,
+     1969, 1966, 1969, 2248, 1968, 1957, 1957, 1969,  535, 1944,
+
+     1945, 1966,  579, 1948, 1999, 1944, 1958, 1961, 1956, 1942,
+     1954, 1953, 1952, 1947, 1950, 1949, 1948, 1947,  572, 1990,
+     1949, 1988, 2248, 1930, 1929,  624, 1942, 2248, 2248, 1941,
+        0, 1930, 1922,  573, 1981, 1980, 2248, 1979, 2248,  602,
+      672,  574, 1978, 1920, 1931, 1970, 1923, 1925, 1924, 1912,
+     2248, 1917, 1923, 1926, 1909, 1924, 1911, 1910, 2248,  591,
+     1912, 1909,  603, 1907, 1909, 2248, 1917, 1914, 1899, 1912,
+     1907,  653, 1914, 1902, 1895, 1946, 2248, 1893, 1909, 1943,
+     1904, 1901, 1902, 1904, 1938, 1889, 1884, 1883, 1934, 1878,
+      606, 1897, 1871, 1878, 1883, 1893, 1927, 1931, 2248, 1876,
+
+     1872, 1870, 1879, 1873, 1880, 1864, 1864, 1874, 1862, 1876,
+     1865, 1861, 1859, 2248, 1916, 2248, 1858, 1869, 1908, 1853,
+     1858, 1867, 1861, 1855, 1864, 1906, 1900, 1862, 1845, 1845,
+     1840, 1860, 1835, 1841, 1846, 1839, 1847, 1851, 1834, 1892,
+     1833, 1885, 1830, 1831, 1830, 1842, 1831, 2248, 1841, 2248,
+     1830, 1828, 2248, 1839, 1875, 1835,    0, 1819, 1836, 1876,
+     2248, 2248, 2248,  608,  607,  663, 2248, 1827, 1826,  613,
+     1833, 1813, 1812, 1865, 1810, 1863, 1808, 1807, 1806, 1813,
+     1806, 1818, 1800, 1800, 1815, 1814, 1802, 1812, 1811, 1811,
+     1793, 1798, 1839, 1806, 1798, 1843, 1787, 1803, 1802, 2248,
+
+     1787, 1784, 1842, 1797, 1789, 1795, 1786, 1794, 1779, 1795,
+     1777, 1791,  570, 1773, 1767, 1772, 1787, 1784, 1785, 1764,
+     1774, 1780, 1823, 1778, 1770, 1761, 2248, 1762, 1764, 1773,
+     1771, 1810, 1809, 1760,   16, 1769, 1806, 1751, 1752, 1755,
+     1748, 2248, 1762, 1741, 1745, 1759, 1751, 1796, 1748, 1755,
+     1793, 2248, 1738, 1752, 1736, 1750, 1753, 1734, 1786, 1785,
+     1784, 1783, 1728, 1781, 1780, 2248, 1725, 1739,  656, 1740,
+     1739, 1736, 1736, 1773, 1733, 1716, 1721, 1723, 2248, 1729,
+     1719, 2248,  638,  631, 1713, 1711, 1718, 1728, 1720, 1707,
+     1701, 1759,  628, 1763,  643, 1757, 1717, 1755, 1754, 1706,
+
+     1704, 1712, 1715, 1699, 1700, 1709, 1690, 1745, 1696, 1704,
+     1705, 1741, 1702, 1696,  643, 1692,   20,  247,  224,  254,
+     2248,  309,  305,  339,  417,  454,  498,  508,  570,  589,
+      587,  614,  622,  671,  673,  626,  618,  647,  682,  648,
+      700, 2248,  702,  656,  658,  654,  648,  651,  704,  667,
+      656,  675, 2248,  665,  676,  665,  678,  680,  724,  725,
+      668,  679,  664,  687,  666,  672,  727,  691,  675,  687,
+      731,  732,  733,  680,  735,  699,  694,  701,  697,  682,
+      694,  695,  702,  688, 2248,  753,  711,  713,  703,  715,
+      705,  718,  703,  710,  716,  708,  722,  762,  738,  725,
+
+      730,  727,  709,  716,  730,  775,  728,  726,  735, 2248,
+      725,  740,  737,  723,  730,  729,  727,  746,  743,  731,
+      738,  739,  748,  752,  749,  739,  737,  737,  748,  744,
+      800,  757,  742,  743,  749,  765,  755, 2248,  765,  765,
+      758,  769,  767,  812,  754,  756,  771,  758,  818,  775,
+      761,  764, 2248, 2248,  774,  779,  784,  772,  782,  784,
+     2248, 2248,  785,  772,  790,  777,  771,  776,  794,  781,
+      831,  782,  834,  780,  784,  842, 2248, 2248,  787,  791,
+      790,  787,  847,  800,  790,  791,  787,  800,  811,  795,
+      813,  808,  809,  811,  804,  806,  807,  808,  808,  810,
+
+      825,  866,  823,  828,  805,  828,  812, 2248,  819,  820,
+      834,  824,  822,  872,  830,  820,  835,  836,  823,  855,
+      863,  832,  827,  882,  883,  845,  885, 2248,  848,  852,
+      893,  841,  836,  837,  849,  856,  845,  846,  842,  845,
+      846,  856,  865,  901,  849,  858,  854,  912,  869,  870,
+      861, 2248,  863,  866,  874,  876,  861,  877,  871,  918,
+      884,  868,  869, 2248,  885,  888,  871,  930,  873, 2248,
+      890,  893,  873,  891,  931,  889,  885,  882,  935,  936,
+      898,  884,  902,  901,  902,  888,  903,  895,  902,  892,
+      910,  909,  896, 2248,  904,  910,  913,  958, 2248,  907,
+
+      912,  956,  907,  920,  914,  918,  916,  914,  916,  926,
+      971,  915,  920,  916,  975,  919,  931, 2248,  919,  927,
+      925,  976,  938,  924,  925,  934,  946,  933,  932,  937,
+      947,  948,  953,  994,  966,  971,  953,  950,  946,  960,
+      943,  943, 1003,  946, 2248,  946,  966,  965,  956,  945,
+      962,  969, 1012,  973,  966,  970,  974,  957,  974, 1019,
+      966, 2248, 1016,  963,  968,  967,  968,  968,  989,  986,
+      991,  992,  978,  986,  995,  975,  990,  997, 1039, 2248,
+     1040, 1041,  992, 1002, 1004,  993,  989,  996, 1005,  993,
+     1000, 1001, 1013, 1054, 1001,  999, 1001, 1018, 1059, 1009,
+
+     1008, 1014, 1012, 1010, 1005, 1066, 1067, 1063, 1069, 2248,
+     1026, 1019, 1010, 1029, 1017, 1027, 1024, 1029, 1025, 1038,
+     1038, 2248, 1022, 1024, 1024, 2248, 1025, 1086, 1025, 1044,
+     1045, 1047, 1038, 1092, 1093, 1046, 1031, 1045, 1053, 1052,
+     1036, 1041, 1059, 2248, 1081, 1072, 1104, 1044, 1066, 1061,
+     1061, 1065, 2248, 1052, 1054, 1071, 1066, 1070, 1115, 1063,
+     1067, 2248, 1059, 1076, 1056, 1077, 1067, 1118, 2248, 1083,
+     1084, 1122, 1069, 1124, 1082, 1088, 1074, 1134, 1077, 1088,
+     1080, 1086, 1082, 1100, 1101, 1102, 2248, 2248, 1101, 2248,
+     1086, 1087, 1106, 1096, 1089, 1101, 1145, 1109, 1098, 1105,
+
+     1106, 1112, 2248, 1105, 1157, 1098, 1159, 2248, 1160, 1102,
+     1108, 1115, 1159, 1121, 2248, 2248, 1108, 2248, 1110, 1124,
+     1129, 1112, 1171, 1128, 1129, 1130, 1170, 1122, 1127, 1178,
+     1131, 1127, 1181, 2248, 1128, 1183, 1184, 1141, 1143, 2248,
+     2248, 1126, 1188, 1184, 1148, 1191, 1133, 1145, 1150, 1165,
+     1196, 2248, 1153, 1146, 1155, 1146, 1157, 1202, 1149, 1164,
+     1200, 1152, 2248, 1148, 1164, 1165, 1166, 1163, 1207, 1170,
+     1160, 1175, 1162, 1158, 1218, 1171, 1215, 1221, 1178, 2248,
+     1180, 1173, 1182, 1183, 1181, 1171, 1174, 1174, 1179, 1234,
+     1235, 1178, 1237, 1233, 1174, 1189, 1182, 1185, 1198, 1199,
+
+     1197, 1247, 2248, 1201, 2248, 2248, 1206, 1198, 1208, 1193,
+     1249, 1195, 1256, 1200, 1210, 1259, 2248, 1207, 1207, 1209,
+     1211, 1264, 1205, 1208, 2248, 1209, 1228, 2248, 1212, 2248,
+     2248, 1225, 1227, 1228, 2248, 1215, 1223, 2248, 1275, 1224,
+     1277, 1257, 2248, 1279, 1236, 1281, 1232, 1279, 2248, 1227,
+     1235, 1229, 1226, 1229, 1232, 1232, 1249, 1288, 1241, 1253,
+     1256, 1244, 1239, 1246, 1236, 2248, 1259, 1244, 2248, 1246,
+     1247, 1262, 1262, 1265, 1265, 1262, 1306, 1268, 1260, 2248,
+     2248, 1270, 2248, 1267, 1272, 1273, 1270, 1314, 1262, 1277,
+     1278, 1270, 2248, 1267, 1268, 1268, 1274, 1273, 1271, 1285,
+
+     2248, 1326, 1273, 2248, 1274, 1274, 1276, 1282, 2248, 1284,
+     1338, 1280, 1288, 1291, 1302, 1300, 1344, 1297, 1306, 2248,
+     1303, 2248, 1300, 1323, 2248, 1350, 2248, 1308, 1293, 1353,
+     1354, 1311, 1316, 1298, 1358, 1359, 1355, 1319, 1316, 1312,
+     1305, 1360, 1318, 1308, 1313, 1369, 1323, 1371, 1368, 1331,
+     1327, 1372, 1320, 1325, 1323, 1382, 1338, 1384, 1342, 1386,
+     1347, 1336, 1330, 1390, 1332, 1333, 1347, 1350, 1350, 1396,
+     1338, 1355, 1351, 1355, 1339, 1397, 1398, 1345, 1400, 1363,
+     1364, 2248, 1364, 1365, 1352, 1351, 1407, 2248, 1348, 1366,
+     1415, 1373, 1386, 2248, 1418, 1371, 2248, 2248, 1362, 1373,
+
+     1422, 2248, 2248, 1368, 1373, 1371, 1421, 1379, 1384, 1372,
+     1376, 1374, 1388, 2248, 1376, 2248, 1379, 1430, 1373, 1378,
+     1438, 1386, 1397, 1398, 2248, 1443, 1396, 2248, 1446, 2248,
+     1389, 1404, 1392, 2248, 1402, 1403, 1452, 1410, 1414, 2248,
+     1450, 1416, 1392, 1410, 1419, 1401, 1408, 1462, 1421, 1420,
+     1465, 1413, 1467, 1468, 1418, 1422, 1427, 1420, 2248, 1473,
+     1474, 2248, 1423, 1476, 1418, 2248, 1421, 1431, 1475, 1423,
+     1438, 1425, 1440, 1432, 1432, 1487, 1444, 1432, 1431, 1491,
+     1444, 2248, 1488, 1439, 1436, 2248, 1450, 2248, 1453, 1498,
+     1451, 1448, 1449, 2248, 1502, 1461, 1444, 1446, 1462, 1444,
+
+     1460, 1461, 1470, 2248, 1460, 1512, 2248, 1471, 2248, 2248,
+     1455, 1462, 1516, 1512, 2248, 2248, 1474, 2248, 1514, 1476,
+     1477, 1462, 1463, 1471, 1525, 1473, 1522, 1477, 2248, 1489,
+     1476, 1483, 2248, 1480, 1485, 1483, 1535, 1536, 1479, 2248,
+     1494, 1495, 1496, 2248, 1497, 1487, 1499, 1544, 1545, 1487,
+     1495, 1496, 1509, 2248, 1486, 1546, 1507, 2248, 1511, 1496,
+     1496, 1511, 1504, 1503, 1514, 1501, 2248, 1517, 1507, 1563,
+     1521, 1523, 1514, 1523, 1525, 1529, 2248, 2248, 1570, 1513,
+     1572, 1573, 1574, 1532, 1576, 2248, 2248, 1572, 1534, 1535,
+     1522, 1581, 1524, 1529, 1520, 1585, 1538, 1539, 1529, 1546,
+
+     1545, 1586, 1530, 1549, 2248, 1546, 1551, 1552, 1597, 1554,
+     1557, 2248, 1600, 2248, 2248, 2248, 1561, 2248, 1543, 1603,
+     1604, 1547, 2248, 1566, 1607, 1566, 2248, 1557, 1547, 1606,
+     1572, 1565, 1561, 1615, 1559, 1564, 1560, 1562, 2248, 1567,
+     1577, 2248, 1563, 1575, 2248, 2248, 1580, 1573, 2248, 1575,
+     1583, 1628, 1569, 1571, 1568, 1592, 2248, 1585, 1588, 1577,
+     1631, 1578, 1586, 1595, 1588, 1583, 1587, 1599, 1644, 2248,
+     1590, 1602, 1647, 1596, 1595, 1650, 1603, 1590, 1605, 1610,
+     1655, 1612, 1657, 1607, 1601, 2248, 1617, 1661, 2248, 1618,
+     1620, 2248, 1611, 1625, 1621, 1614, 2248, 1668, 2248, 1625,
+
+     1670, 1631, 2248, 1672, 1673, 1628, 1627, 1628, 1618, 2248,
+     1673, 2248, 1620, 2248, 2248, 1680, 1622, 1638, 1683, 1644,
+     1641, 2248, 1682, 1631, 2248, 1643, 1636, 1691, 1633, 1635,
+     1650, 1635, 2248, 1648, 1697, 1698, 1646, 1648, 2248, 2248,
+     1642, 1658, 1703, 1704, 2248, 2248, 2248, 1710, 1715, 1720,
+     1725, 1730, 1735, 1740, 1743, 1717, 1722, 1724, 1737
     } ;
 
-static const flex_int16_t yy_def[1864] =
+static const flex_int16_t yy_def[1860] =
     {   0,
-     1852, 1852, 1853, 1853, 1852, 1852, 1852, 1852, 1852, 1852,
-     1851, 1851, 1851, 1851, 1851, 1854, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1855,
-     1851, 1851, 1851, 1856,   15, 1851,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1857,   45,   45,   45,   45,
+     1848, 1848, 1849, 1849, 1848, 1848, 1848, 1848, 1848, 1848,
+     1847, 1847, 1847, 1847, 1847, 1850, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1851,
+     1847, 1847, 1847, 1852,   15, 1847,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1853,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1854, 1851, 1851,
-     1851, 1851, 1851, 1851, 1858, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1855, 1851, 1856, 1851,
+       45,   45,   45,   45,   45,   45,   45, 1850, 1847, 1847,
+     1847, 1847, 1847, 1847, 1854, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1851, 1847, 1852, 1847,
 
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1859,   45, 1857,   45,   45,   45,   45,   45,   45,
+     1847,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1855,   45, 1853,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1858, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1860,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1854, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1856,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 1859, 1851, 1857,   45,   45,   45,   45,   45,
+       45,   45, 1855, 1847, 1853,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1196,189 +1194,188 @@ static const flex_int16_t yy_def[1864] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1861,
-       45,   45,   45,   45,   45,   45, 1851,   45, 1851,   45,
-     1857, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851,   45,   45,
+       45,   45, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1857,
+       45,   45,   45,   45,   45,   45, 1847,   45, 1847,   45,
+     1853, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45, 1851, 1851,
-     1851, 1862,   45,   45,   45,   45,   45, 1851,   45, 1851,
-       45, 1857,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45, 1851,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45, 1847, 1847, 1847,
+     1858,   45,   45,   45,   45,   45, 1847,   45, 1847,   45,
+     1853,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1847,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45,   45,   45,   45,   45, 1847,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
 
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45, 1851,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45, 1847,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
-       45, 1851,   45,   45, 1851,   45,   45, 1851, 1863,   45,
-       45,   45, 1851, 1851, 1851,   45,   45,   45, 1851,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45, 1847,
+       45,   45, 1847,   45,   45, 1847, 1859,   45,   45,   45,
+     1847, 1847, 1847,   45,   45,   45, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
 
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1851,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1847,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
+     1847,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45,   45,
+       45,   45,   45,   45, 1847,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851,   45,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851, 1851,   45,   45,   45,   45,
-       45,   45, 1851, 1851,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851, 1851,
+       45,   45, 1847, 1847,   45,   45,   45,   45,   45,   45,
+     1847, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1851,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45,   45, 1847,   45,
 
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45,   45,
+       45,   45,   45,   45, 1847,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1851,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45, 1851,   45,   45,
+       45, 1847,   45,   45,   45, 1847,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45, 1851,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847, 1847,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851, 1851,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 1851,   45,   45,   45,   45, 1851,
-       45,   45,   45,   45,   45,   45, 1851, 1851,   45, 1851,
+       45,   45, 1847,   45,   45,   45,   45, 1847,   45,   45,
+       45,   45,   45,   45, 1847, 1847,   45, 1847,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45,   45,
-       45, 1851, 1851,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45, 1847,
+     1847,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 1851,   45, 1851, 1851,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851,   45,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45, 1851,
-       45, 1851, 1851,   45,   45,   45, 1851,   45,   45, 1851,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45, 1851,
+       45,   45, 1847,   45, 1847, 1847,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
+       45,   45,   45,   45, 1847,   45,   45, 1847,   45, 1847,
+     1847,   45,   45,   45, 1847,   45,   45, 1847,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45, 1847,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1851,   45, 1851,   45, 1851,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45,   45,   45,   45,   45,
-
-       45,   45, 1851,   45,   45, 1851,   45,   45,   45,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45, 1851,   45,   45, 1851,   45, 1851,   45,
+       45,   45,   45,   45,   45, 1847,   45,   45, 1847,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
+     1847,   45, 1847,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45,   45,   45,
+
+     1847,   45,   45, 1847,   45,   45,   45,   45, 1847,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
+       45, 1847,   45,   45, 1847,   45, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45, 1851,
-       45,   45,   45,   45,   45, 1851,   45,   45, 1851, 1851,
-
-       45,   45,   45, 1851, 1851,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1851,   45, 1851,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45, 1851,
-       45, 1851,   45,   45,   45, 1851,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45,   45,   45,   45, 1847,   45,   45,
+       45,   45,   45, 1847,   45,   45, 1847, 1847,   45,   45,
+
+       45, 1847, 1847,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45, 1847,   45,   45,   45,   45,
+       45,   45,   45,   45, 1847,   45,   45, 1847,   45, 1847,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1851,   45,   45, 1851,   45,   45,   45, 1851,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45, 1847,   45,   45,   45, 1847,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1851,   45,   45,   45, 1851,   45,   45, 1851,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45, 1851,   45,   45, 1851,   45,
-     1851, 1851,   45,   45,   45,   45, 1851, 1851,   45, 1851,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
-       45,   45,   45, 1851,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45, 1851,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45,   45, 1851,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851, 1851,   45,
-       45,   45,   45,   45,   45,   45,   45, 1851, 1851,   45,
+       45, 1847,   45,   45,   45, 1847,   45, 1847,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45, 1847,   45,   45, 1847,   45, 1847, 1847,
+       45,   45,   45,   45, 1847, 1847,   45, 1847,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45,   45, 1847,
+       45,   45,   45, 1847,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1847,   45,   45,   45, 1847,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1847, 1847,   45,   45,
+       45,   45,   45,   45,   45, 1847, 1847,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 1851,   45,   45,   45,   45,
-       45,   45,   45, 1851,   45, 1851, 1851, 1851,   45, 1851,
-       45,   45,   45,   45, 1851,   45,   45,   45, 1851,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1851,
-       45,   45,   45, 1851,   45,   45, 1851, 1851,   45,   45,
-     1851,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1847,   45,   45,   45,   45,   45,
+       45, 1847,   45, 1847, 1847, 1847,   45, 1847,   45,   45,
+       45,   45, 1847,   45,   45,   45, 1847,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1847,   45,
+       45, 1847,   45,   45, 1847, 1847,   45,   45, 1847,   45,
+       45,   45,   45,   45,   45,   45, 1847,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1847,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1851,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1851,   45,
-       45, 1851,   45,   45, 1851,   45,   45,   45,   45, 1851,
-
-     1851,   45, 1851,   45,   45,   45, 1851,   45,   45,   45,
-       45,   45,   45, 1851,   45, 1851,   45, 1851, 1851,   45,
-       45,   45,   45,   45,   45, 1851,   45,   45, 1851,   45,
-       45,   45,   45,   45,   45,   45, 1851,   45,   45,   45,
-       45,   45, 1851, 1851,   45,   45,   45,   45, 1851, 1851,
-        0, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851
+       45,   45,   45,   45,   45, 1847,   45,   45, 1847,   45,
+       45, 1847,   45,   45,   45,   45, 1847,   45, 1847,   45,
+
+       45,   45, 1847,   45,   45,   45,   45,   45,   45, 1847,
+       45, 1847,   45, 1847, 1847,   45,   45,   45,   45,   45,
+       45, 1847,   45,   45, 1847,   45,   45,   45,   45,   45,
+       45,   45, 1847,   45,   45,   45,   45,   45, 1847, 1847,
+       45,   45,   45,   45, 1847, 1847,    0, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847
     } ;
 
-static const flex_int16_t yy_nxt[2326] =
+static const flex_int16_t yy_nxt[2322] =
     {   0,
-     1851,   13,   14,   13, 1851,   15,   16, 1851,   17,   18,
+     1847,   13,   14,   13, 1847,   15,   16, 1847,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       84,  755,   37,   14,   37,   85,   25,   26,   38,  100,
-      838,   27,   37,   14,   37,   42,   28,   42,   38,   90,
+       84,  753,   37,   14,   37,   85,   25,   26,   38,  100,
+      837,   27,   37,   14,   37,   42,   28,   42,   38,   90,
        91,   29,  197,   30,   13,   14,   13,   89,   90,   25,
        31,   91,   13,   14,   13,   13,   14,   13,   32,   40,
-      756,   13,   14,   13,   33,   40,  101,   90,   91,  197,
+      754,   13,   14,   13,   33,   40,  101,   90,   91,  197,
        89,   34,   35,   13,   14,   13,   93,   15,   16,   94,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
        23,   24,   13,   14,   13,   89,   39,  103,   25,   26,
@@ -1395,76 +1392,76 @@ static const flex_int16_t yy_nxt[2326] =
        57,   58,   59,   60,   61,   62,   63,   64,   65,   51,
 
        66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
-       76,   77,   55,   45,   45,   45,   45,   45,   79,  409,
+       76,   77,   55,   45,   45,   45,   45,   45,   79,  408,
        80,   80,   80,   80,   80,   79,  105,   82,   82,   82,
-       82,   82,  410,   81,   83,   83,   83,   83,   83,   79,
+       82,   82,  409,   81,   83,   83,   83,   83,   83,   79,
        81,   82,   82,   82,   82,   82,  184,   81,  108,  105,
-      103,  119,  839,  131,   81,  185,   81,  184,  109,  120,
+      103,  119,  838,  131,   81,  185,   81,  184,  109,  120,
       134,  135,  121,   81,  132,  122,  186,  123,  136,  124,
-       81,  108,  184,  840,  133,  164,  115,   81,   45,  165,
+       81,  108,  184,  839,  133,  164,  115,   81,   45,  165,
       139,  185,  116,  187,   45,  117,  109,   45,  232,   45,
       140,   45,  141,   45,  186,  113,  143,  144,   45,   45,
 
-      145,   45,   45,  841,  233,  100,  146,   45,   45,   45,
+      145,   45,   45,  840,  233,  100,  146,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
       125,  160,   45,  126,  127,  161,   45,  128,  129,  147,
        45,  107,  101,  148,  199,  162,  317,  149,   45,  185,
-      130,  420,   45,  110,   45,  114,  842,  155,  843,  150,
+      130,  419,   45,  110,   45,  114,  841,  155,  842,  150,
       152,  196,  153,  151,  154,  156,  186,  157,  173,  174,
       166,  199,  158,  159,  167,  188,  179,  168,  108,   83,
        83,   83,   83,   83,  169,  170,  180,  196,  109,  171,
       172,  181,   81,   79,  189,   80,   80,   80,   80,   80,
 
-      248,  175,  844,  176,  249,   87,  177,   87,   81,  426,
+      248,  175,  843,  176,  249,   87,  177,   87,   81,  425,
        88,   88,   88,   88,   88,   81,  109,   83,   83,   83,
        83,   83,   79,  178,   82,   82,   82,   82,   82,  194,
        81,   81,   88,   88,   88,   88,   88,   81,   88,   88,
        88,   88,   88,   99,  198,  200,  202,  201,  194,  211,
        99,  198,  236,   81,  216,  237,  199,  194,  212,  238,
-       81,  427,  213,  217,  218,  206,  845,  270,  290,  202,
+       81,  426,  213,  217,  218,  206,  844,  270,  290,  202,
       262,  271,  198,  200,  201,  273,  207,  282,  283,  198,
        99,  256,  291,  295,   99,  263,  264,  265,   99,  267,
-      284,  303,  268,  269,  285,  201,   99,  305,  286,  846,
+      284,  303,  268,  269,  285,  201,   99,  305,  286,  845,
 
        99,  304,   99,  192,  205,  205,  205,  205,  205,  304,
       274,  275,  276,  205,  205,  205,  205,  205,  205,  303,
       305,  277,  299,  278,  303,  279,  280,  304,  281,  314,
       305,  312,  315,  316,  320,  307,  205,  205,  205,  205,
-      205,  205,  318,  360,  399,  381,  847,  400,  312,  429,
-      334,  368,  306,  308,  312,  435,  316,  314,  335,  315,
-      361,  320,  429,  336,  337,  318,  321,  321,  321,  321,
-      321,  323,  429,  433,  437,  321,  321,  321,  321,  321,
-      321,  382,  439,  434,  435,  430,  464,  435,  457,  492,
-      493,  516,  465,  848,  494,  383,  502,  437,  321,  321,
-
-      321,  321,  321,  321,  369,  458,  503,  370,  562,  621,
-      439,  442,  442,  442,  442,  442,  443,  733,  734,  622,
-      442,  442,  442,  442,  442,  442,  478,  548,  526,  531,
-      549,  479,  527,  532,  555,  566,  562,  567,  562,  556,
-      685,  686,  584,  442,  442,  442,  442,  442,  442,  517,
-      585,  601,  586,  587,  588,  591,  602,  801,  684,  849,
-      787,  850,  566,  687,  567,  690,  568,  685,  592,  686,
-      593,  788,  691,  800,  834,  810,  851,  852,  835,  480,
-      801,  811,  836,  853,  481,   45,   45,   45,   45,   45,
-      813,  814,  854,  815,   45,   45,   45,   45,   45,   45,
-
-      855,  800,  856,  857,  858,  859,  861,  862,  860,  863,
+      205,  205,  318,  398,  434,  380,  399,  846,  312,  428,
+      334,  367,  306,  308,  312,  847,  316,  314,  335,  315,
+      428,  320,  436,  336,  337,  318,  321,  321,  321,  321,
+      321,  323,  428,  434,  432,  321,  321,  321,  321,  321,
+      321,  381,  438,  429,  433,  436,  463,  434,  456,  490,
+      491,  514,  464,  524,  492,  382,  500,  525,  321,  321,
+
+      321,  321,  321,  321,  368,  457,  501,  369,  560,  560,
+      438,  441,  441,  441,  441,  441,  442,  731,  732,  848,
+      441,  441,  441,  441,  441,  441,  477,  546,  529,  553,
+      547,  478,  530,  564,  554,  565,  560,  566,  849,  850,
+      683,  684,  582,  441,  441,  441,  441,  441,  441,  515,
+      583,  590,  584,  585,  586,  619,  587,  799,  600,  851,
+      564,  785,  565,  601,  591,  620,  592,  683,  682,  684,
+      688,  852,  786,  685,  798,  808,  853,  689,  854,  479,
+      799,  809,  855,  856,  480,   45,   45,   45,   45,   45,
+      811,  812,  859,  813,   45,   45,   45,   45,   45,   45,
+
+      833,  860,  798,  857,  834,  861,  858,  862,  835,  863,
       864,  865,  866,  867,  868,  869,  870,   45,   45,   45,
        45,   45,   45,  871,  872,  873,  874,  875,  876,  877,
       878,  879,  880,  881,  882,  883,  884,  885,  886,  887,
-      888,  889,  890,  891,  892,  893,  894,  895,  896,  897,
-      899,  900,  901,  904,  905,  906,  898,  908,  909,  902,
-      910,  907,  911,  903,  912,  913,  914,  915,  916,  917,
+      888,  889,  890,  891,  892,  893,  894,  895,  897,  898,
+      899,  902,  903,  904,  896,  906,  907,  900,  908,  905,
+      909,  901,  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,  923,  951,  952,  953,  954,  955,  956,
-      957,  958,  959,  960,  961,  962,  963,  964,  965,  967,
-      968,  969,  970,  966,  971,  972,  973,  974,  975,  976,
+      948,  921,  949,  950,  951,  952,  953,  954,  955,  956,
+      957,  958,  959,  960,  961,  962,  963,  964,  966,  967,
+      968,  969,  965,  970,  971,  972,  973,  974,  975,  976,
       977,  978,  979,  980,  981,  982,  983,  984,  985,  986,
-      987,  988,  990,  991,  992,  989,  993,  994,  995,  996,
+      988,  989,  990,  987,  991,  992,  993,  994,  995,  996,
       997,  998,  999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
      1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
      1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026,
@@ -1472,66 +1469,66 @@ static const flex_int16_t yy_nxt[2326] =
      1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
 
      1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
-     1057, 1058, 1059, 1060, 1038, 1061, 1062, 1037, 1063, 1064,
+     1057, 1058, 1036, 1059, 1060, 1035, 1061, 1062, 1063, 1064,
      1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
-     1075, 1076, 1077, 1078, 1079, 1080, 1081, 1083, 1084, 1085,
+     1075, 1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085,
      1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
-     1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
-     1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116,
-     1106, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
+     1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1105, 1106,
+     1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1104, 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, 1082, 1140, 1141, 1142, 1143, 1144,
+     1136, 1137, 1138, 1081, 1139, 1140, 1141, 1142, 1143, 1144,
 
-     1145, 1146, 1147, 1149, 1148, 1150, 1151, 1152, 1153, 1154,
+     1145, 1147, 1146, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
      1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
-     1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174,
-     1147, 1148, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
-     1183, 1184, 1185, 1186, 1187, 1188, 1189, 1191, 1193, 1194,
-     1195, 1190, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
+     1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1145, 1146,
+     1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
+     1183, 1184, 1185, 1186, 1187, 1188, 1190, 1192, 1193, 1194,
+     1189, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
      1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
      1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
      1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
-     1234, 1192, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
+     1191, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
 
      1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
      1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
      1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
-     1273, 1274, 1252, 1275, 1276, 1277, 1278, 1279, 1253, 1280,
+     1250, 1273, 1274, 1275, 1276, 1277, 1251, 1278, 1279, 1280,
      1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
      1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
      1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
      1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320,
-     1321, 1322, 1323, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
+     1321, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
      1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
 
-     1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
+     1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1351, 1352,
      1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
-     1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
-     1344, 1373, 1374, 1375, 1376, 1324, 1377, 1378, 1379, 1380,
-     1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1390, 1391,
-     1392, 1393, 1394, 1352, 1395, 1389, 1396, 1397, 1398, 1399,
+     1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1342, 1371,
+     1372, 1373, 1374, 1322, 1375, 1376, 1377, 1378, 1379, 1380,
+     1381, 1382, 1383, 1384, 1385, 1386, 1388, 1389, 1390, 1391,
+     1392, 1350, 1393, 1387, 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, 1426, 1427, 1428, 1429, 1425,
+     1420, 1421, 1422, 1424, 1425, 1426, 1427, 1423, 1428, 1429,
      1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
 
-     1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1426, 1448,
+     1440, 1441, 1442, 1443, 1444, 1445, 1424, 1446, 1447, 1448,
      1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
      1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468,
      1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478,
      1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
      1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498,
-     1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
-     1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1508,
-     1519, 1520, 1521, 1495, 1522, 1523, 1524, 1525, 1526, 1528,
+     1499, 1500, 1501, 1502, 1503, 1504, 1505, 1507, 1508, 1509,
+     1510, 1511, 1512, 1513, 1514, 1515, 1516, 1506, 1517, 1518,
+     1519, 1493, 1520, 1521, 1522, 1523, 1524, 1525, 1527, 1528,
      1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538,
 
      1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548,
      1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558,
      1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568,
      1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578,
-     1579, 1580, 1581, 1582, 1583, 1584, 1527, 1585, 1586, 1587,
-     1588, 1589, 1563, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
+     1579, 1580, 1581, 1582, 1583, 1526, 1584, 1585, 1586, 1587,
+     1561, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
      1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606,
      1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
      1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626,
@@ -1557,88 +1554,88 @@ static const flex_int16_t yy_nxt[2326] =
      1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806,
      1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816,
      1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826,
-     1827, 1828, 1829, 1830, 1832, 1831, 1833, 1834, 1835, 1836,
+     1828, 1827, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836,
 
      1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846,
-     1847, 1848, 1849, 1850,   12,   12,   12,   12,   12,   36,
-       36,   36,   36,   36,   78,  310,   78,   78,   78,   97,
-      432,   97,  559,   97,   99,   99,   99,   99,   99,  112,
-      112,  112,  112,  112,  183,   99,  183,  183,  183,  203,
-      203,  203,  837,  833,  832,  831,  830,  829,  828,  827,
-      826,  825,  824,  823,  822,  821,  820,  819,  818,  817,
-      816,  812,  809,  808,  807,  806,  805,  804,  803,  802,
-      799,  798,  797,  796,  795,  794,  793,  792,  791,  790,
-      789,  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,  754,  753,  752,  751,  750,  749,  748,  747,  746,
-      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
-      735,  732,  731,  730,  729,  728,  727,  726,  725,  724,
-      723,  722,  721,  720,  719,  718,  717,  716,  715,  714,
-      713,  712,  711,  710,  709,  708,  707,  706,  705,  704,
-      703,  702,  701,  700,  699,  698,  697,  696,  695,  694,
-      693,  692,  689,  688,  684,  683,  682,  681,  680,  679,
-      678,  677,  676,  675,  674,  673,  672,  671,  670,  669,
-
-      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
-      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
-      648,  647,  646,  645,  644,  643,  642,  641,  640,  639,
-      638,  637,  636,  635,  634,  633,  632,  631,  630,  629,
-      628,  627,  626,  625,  624,  623,  620,  619,  618,  617,
-      616,  615,  614,  613,  612,  611,  610,  609,  608,  607,
-      606,  605,  604,  603,  600,  599,  598,  597,  596,  595,
-      594,  590,  589,  583,  582,  581,  580,  579,  578,  577,
-      576,  575,  574,  573,  572,  571,  570,  569,  565,  564,
-      563,  561,  560,  558,  557,  554,  553,  552,  551,  550,
-
-      547,  546,  545,  544,  543,  542,  541,  540,  539,  538,
-      537,  536,  535,  534,  533,  530,  529,  528,  525,  524,
-      523,  522,  521,  520,  519,  518,  515,  514,  513,  512,
-      511,  510,  509,  508,  507,  506,  505,  504,  501,  500,
-      499,  498,  497,  496,  495,  491,  490,  489,  488,  487,
-      486,  485,  484,  483,  482,  477,  476,  475,  474,  473,
-      472,  471,  470,  469,  468,  467,  466,  463,  462,  461,
-      460,  459,  456,  455,  454,  453,  452,  451,  450,  449,
-      448,  447,  446,  445,  444,  441,  440,  438,  436,  431,
-      428,  425,  424,  423,  422,  421,  419,  418,  417,  416,
-
-      415,  414,  413,  412,  411,  408,  407,  406,  405,  404,
-      403,  402,  401,  398,  397,  396,  395,  394,  393,  392,
-      391,  390,  389,  388,  387,  386,  385,  384,  380,  379,
-      378,  377,  376,  375,  374,  373,  372,  371,  367,  366,
-      365,  364,  363,  362,  359,  358,  357,  356,  355,  354,
-      353,  352,  351,  350,  349,  348,  347,  346,  345,  344,
-      343,  342,  341,  340,  339,  338,  333,  332,  331,  330,
-      329,  328,  327,  326,  325,  324,  322,  204,  319,  317,
-      313,  311,  309,  302,  301,  300,  298,  297,  296,  294,
-      293,  292,  289,  288,  287,  272,  266,  261,  260,  259,
-
-      258,  257,  255,  254,  253,  252,  251,  250,  247,  246,
-      245,  244,  243,  242,  241,  240,  239,  235,  234,  231,
-      228,  227,  226,  225,  222,  221,  220,  219,  215,  214,
-      210,  209,  208,  204,  195,  193,  191,  190,  182,  163,
-      142,  118,  104,  102,   43,   98,   96,   95,   86,   43,
-     1851,   11, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851
+       12,   12,   12,   12,   12,   36,   36,   36,   36,   36,
+       78,  310,   78,   78,   78,   97,  431,   97,  557,   97,
+       99,   99,   99,   99,   99,  112,  112,  112,  112,  112,
+      183,   99,  183,  183,  183,  203,  203,  203,  836,  832,
+      831,  830,  829,  828,  827,  826,  825,  824,  823,  822,
+      821,  820,  819,  818,  817,  816,  815,  814,  810,  807,
+      806,  805,  804,  803,  802,  801,  800,  797,  796,  795,
+      794,  793,  792,  791,  790,  789,  788,  787,  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,  755,  752,  751,
+      750,  749,  748,  747,  746,  745,  744,  743,  742,  741,
+      740,  739,  738,  737,  736,  735,  734,  733,  730,  729,
+      728,  727,  726,  725,  724,  723,  722,  721,  720,  719,
+      718,  717,  716,  715,  714,  713,  712,  711,  710,  709,
+      708,  707,  706,  705,  704,  703,  702,  701,  700,  699,
+      698,  697,  696,  695,  694,  693,  692,  691,  690,  687,
+      686,  682,  681,  680,  679,  678,  677,  676,  675,  674,
+      673,  672,  671,  670,  669,  668,  667,  666,  665,  664,
+
+      663,  662,  661,  660,  659,  658,  657,  656,  655,  654,
+      653,  652,  651,  650,  649,  648,  647,  646,  645,  644,
+      643,  642,  641,  640,  639,  638,  637,  636,  635,  634,
+      633,  632,  631,  630,  629,  628,  627,  626,  625,  624,
+      623,  622,  621,  618,  617,  616,  615,  614,  613,  612,
+      611,  610,  609,  608,  607,  606,  605,  604,  603,  602,
+      599,  598,  597,  596,  595,  594,  593,  589,  588,  581,
+      580,  579,  578,  577,  576,  575,  574,  573,  572,  571,
+      570,  569,  568,  567,  563,  562,  561,  559,  558,  556,
+      555,  552,  551,  550,  549,  548,  545,  544,  543,  542,
+
+      541,  540,  539,  538,  537,  536,  535,  534,  533,  532,
+      531,  528,  527,  526,  523,  522,  521,  520,  519,  518,
+      517,  516,  513,  512,  511,  510,  509,  508,  507,  506,
+      505,  504,  503,  502,  499,  498,  497,  496,  495,  494,
+      493,  489,  488,  487,  486,  485,  484,  483,  482,  481,
+      476,  475,  474,  473,  472,  471,  470,  469,  468,  467,
+      466,  465,  462,  461,  460,  459,  458,  455,  454,  453,
+      452,  451,  450,  449,  448,  447,  446,  445,  444,  443,
+      440,  439,  437,  435,  430,  427,  424,  423,  422,  421,
+      420,  418,  417,  416,  415,  414,  413,  412,  411,  410,
+
+      407,  406,  405,  404,  403,  402,  401,  400,  397,  396,
+      395,  394,  393,  392,  391,  390,  389,  388,  387,  386,
+      385,  384,  383,  379,  378,  377,  376,  375,  374,  373,
+      372,  371,  370,  366,  365,  364,  363,  362,  361,  360,
+      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
+      349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
+      339,  338,  333,  332,  331,  330,  329,  328,  327,  326,
+      325,  324,  322,  204,  319,  317,  313,  311,  309,  302,
+      301,  300,  298,  297,  296,  294,  293,  292,  289,  288,
+      287,  272,  266,  261,  260,  259,  258,  257,  255,  254,
+
+      253,  252,  251,  250,  247,  246,  245,  244,  243,  242,
+      241,  240,  239,  235,  234,  231,  228,  227,  226,  225,
+      222,  221,  220,  219,  215,  214,  210,  209,  208,  204,
+      195,  193,  191,  190,  182,  163,  142,  118,  104,  102,
+       43,   98,   96,   95,   86,   43, 1847,   11, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847
     } ;
 
-static const flex_int16_t yy_chk[2326] =
+static const flex_int16_t yy_chk[2322] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  637,    3,    3,    3,   21,    1,    1,    3,   44,
-      718,    1,    4,    4,    4,   13,    1,   13,    4,   27,
+       21,  635,    3,    3,    3,   21,    1,    1,    3,   44,
+      717,    1,    4,    4,    4,   13,    1,   13,    4,   27,
        28,    1,  106,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      637,    8,    8,    8,    1,    8,   44,   27,   28,  106,
+      635,    8,    8,    8,    1,    8,   44,   27,   28,  106,
        26,    1,    1,    2,    2,    2,   32,    2,    2,   33,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    9,    9,    9,   31,    5,   48,    2,    2,
@@ -1659,235 +1656,235 @@ static const flex_int16_t yy_chk[2326] =
        17,   17,   17,   17,   17,   19,   62,   19,   19,   19,
        19,   19,  285,   17,   20,   20,   20,   20,   20,   22,
        19,   22,   22,   22,   22,   22,   89,   20,   53,   62,
-       57,   59,  719,   61,   22,   90,   17,   92,   53,   59,
+       57,   59,  718,   61,   22,   90,   17,   92,   53,   59,
        62,   63,   59,   19,   61,   59,   91,   59,   63,   59,
-       20,   53,   89,  720,   61,   73,   57,   22,   45,   73,
+       20,   53,   89,  719,   61,   73,   57,   22,   45,   73,
        65,   90,   57,   92,   45,   57,   53,   45,  134,   45,
        65,   45,   65,   45,   91,   56,   67,   67,   45,   45,
 
-       67,   45,   56,  721,  134,   99,   67,   45,   45,   45,
+       67,   45,   56,  720,  134,   99,   67,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        60,   71,   56,   60,   60,   71,   56,   60,   60,   68,
        56,   69,   99,   68,  108,   71,  295,   68,   56,   93,
-       60,  295,   56,   76,   56,   56,  723,   70,  724,   68,
+       60,  295,   56,   76,   56,   56,  722,   70,  723,   68,
        69,  105,   69,   68,   69,   70,   94,   70,   75,   75,
        74,  108,   70,   70,   74,   93,   76,   74,   75,   79,
        79,   79,   79,   79,   74,   74,   76,  105,   75,   74,
        74,   76,   79,   80,   94,   80,   80,   80,   80,   80,
 
-      147,   75,  725,   75,  147,   81,   75,   81,   80,  301,
+      147,   75,  724,   75,  147,   81,   75,   81,   80,  301,
        81,   81,   81,   81,   81,   79,   75,   83,   83,   83,
        83,   83,   82,   75,   82,   82,   82,   82,   82,  103,
        83,   80,   87,   87,   87,   87,   87,   82,   88,   88,
        88,   88,   88,  101,  107,  109,  111,  110,  115,  119,
       101,  154,  137,   83,  122,  137,  175,  103,  119,  137,
-       82,  301,  119,  122,  122,  115,  726,  163,  171,  111,
+       82,  301,  119,  122,  122,  115,  725,  163,  171,  111,
       160,  163,  107,  109,  110,  165,  115,  166,  166,  154,
       101,  154,  171,  175,  101,  160,  160,  160,  101,  162,
-      167,  184,  162,  162,  167,  179,  101,  186,  167,  727,
+      167,  184,  162,  162,  167,  179,  101,  186,  167,  726,
 
       101,  185,  101,  101,  114,  114,  114,  114,  114,  188,
       165,  165,  165,  114,  114,  114,  114,  114,  114,  184,
       186,  165,  179,  165,  187,  165,  165,  185,  165,  196,
       189,  194,  197,  198,  202,  188,  114,  114,  114,  114,
-      114,  114,  200,  242,  276,  260,  728,  276,  207,  303,
-      218,  249,  187,  189,  194,  312,  198,  196,  218,  197,
-      242,  202,  306,  218,  218,  200,  205,  205,  205,  205,
-      205,  207,  303,  311,  314,  205,  205,  205,  205,  205,
-      205,  260,  316,  311,  312,  306,  344,  323,  337,  368,
-      368,  390,  344,  729,  368,  260,  376,  314,  205,  205,
-
-      205,  205,  205,  205,  249,  337,  376,  249,  435,  493,
-      316,  321,  321,  321,  321,  321,  323,  615,  615,  493,
-      321,  321,  321,  321,  321,  321,  357,  420,  400,  404,
-      420,  357,  400,  404,  427,  441,  435,  441,  443,  427,
-      566,  567,  461,  321,  321,  321,  321,  321,  321,  390,
-      461,  473,  461,  461,  461,  464,  473,  686,  568,  730,
-      671,  731,  441,  568,  441,  572,  443,  566,  464,  567,
-      464,  671,  572,  685,  716,  695,  732,  733,  716,  357,
-      686,  695,  716,  734,  357,  442,  442,  442,  442,  442,
-      697,  697,  735,  697,  442,  442,  442,  442,  442,  442,
-
-      736,  685,  737,  738,  739,  740,  741,  742,  740,  743,
-      745,  746,  747,  748,  749,  750,  751,  442,  442,  442,
-      442,  442,  442,  752,  753,  754,  756,  757,  758,  759,
+      114,  114,  200,  276,  312,  260,  276,  727,  207,  303,
+      218,  249,  187,  189,  194,  728,  198,  196,  218,  197,
+      306,  202,  314,  218,  218,  200,  205,  205,  205,  205,
+      205,  207,  303,  312,  311,  205,  205,  205,  205,  205,
+      205,  260,  316,  306,  311,  314,  344,  323,  337,  367,
+      367,  389,  344,  399,  367,  260,  375,  399,  205,  205,
+
+      205,  205,  205,  205,  249,  337,  375,  249,  434,  442,
+      316,  321,  321,  321,  321,  321,  323,  613,  613,  729,
+      321,  321,  321,  321,  321,  321,  357,  419,  403,  426,
+      419,  357,  403,  440,  426,  440,  434,  442,  730,  731,
+      564,  565,  460,  321,  321,  321,  321,  321,  321,  389,
+      460,  463,  460,  460,  460,  491,  460,  684,  472,  732,
+      440,  669,  440,  472,  463,  491,  463,  564,  566,  565,
+      570,  733,  669,  566,  683,  693,  734,  570,  735,  357,
+      684,  693,  736,  737,  357,  441,  441,  441,  441,  441,
+      695,  695,  739,  695,  441,  441,  441,  441,  441,  441,
+
+      715,  740,  683,  738,  715,  741,  738,  743,  715,  744,
+      745,  746,  747,  748,  749,  750,  751,  441,  441,  441,
+      441,  441,  441,  752,  754,  755,  756,  757,  758,  759,
       760,  761,  762,  763,  764,  765,  766,  767,  768,  769,
       770,  771,  772,  773,  774,  775,  776,  777,  778,  779,
-      780,  781,  781,  782,  783,  784,  779,  785,  786,  781,
-      788,  784,  789,  781,  790,  791,  792,  793,  794,  795,
+      779,  780,  781,  782,  777,  783,  784,  779,  786,  782,
+      787,  779,  788,  789,  790,  791,  792,  793,  794,  795,
       796,  797,  798,  799,  800,  801,  802,  803,  804,  805,
-      806,  807,  808,  809,  810,  811,  813,  814,  815,  816,
+      806,  807,  808,  809,  811,  812,  813,  814,  815,  816,
       817,  818,  819,  820,  821,  822,  823,  824,  825,  826,
 
-      827,  828,  829,  801,  830,  831,  832,  833,  834,  835,
-      836,  837,  838,  840,  841,  842,  843,  844,  845,  846,
-      847,  848,  849,  845,  850,  851,  852,  853,  854,  857,
-      858,  859,  860,  861,  862,  865,  866,  867,  868,  869,
-      870,  871,  872,  873,  874,  871,  875,  876,  877,  878,
+      827,  799,  828,  829,  830,  831,  832,  833,  834,  835,
+      836,  837,  839,  840,  841,  842,  843,  844,  845,  846,
+      847,  848,  844,  849,  850,  851,  852,  855,  856,  857,
+      858,  859,  860,  863,  864,  865,  866,  867,  868,  869,
+      870,  871,  872,  869,  873,  874,  875,  876,  879,  880,
       881,  882,  883,  884,  885,  886,  887,  888,  889,  890,
       891,  892,  893,  894,  895,  896,  897,  898,  899,  900,
-      901,  902,  903,  904,  905,  906,  907,  908,  909,  911,
+      901,  902,  903,  904,  905,  906,  907,  909,  910,  911,
       912,  913,  914,  915,  916,  917,  918,  919,  920,  921,
-      922,  923,  924,  925,  926,  927,  928,  929,  931,  932,
+      922,  923,  924,  925,  926,  927,  929,  930,  931,  932,
 
       933,  934,  935,  936,  937,  938,  939,  940,  941,  942,
-      943,  944,  945,  946,  923,  947,  948,  922,  949,  950,
-      951,  952,  954,  955,  956,  957,  958,  959,  960,  961,
-      962,  963,  964,  966,  967,  968,  969,  970,  971,  973,
+      943,  944,  921,  945,  946,  920,  947,  948,  949,  950,
+      951,  953,  954,  955,  956,  957,  958,  959,  960,  961,
+      962,  963,  965,  966,  967,  968,  969,  971,  972,  973,
       974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
       984,  985,  986,  987,  988,  989,  990,  991,  992,  993,
-      994,  995,  997,  998,  999, 1000, 1002, 1003, 1004, 1005,
-      993, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
-     1015, 1016, 1017, 1018, 1019, 1021, 1022, 1023, 1024, 1025,
-     1026, 1027, 1028, 1029,  969, 1030, 1031, 1032, 1033, 1034,
-
-     1035, 1036, 1037, 1039, 1038, 1040, 1041, 1042, 1043, 1044,
-     1045, 1046, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
-     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1064, 1065, 1066,
-     1037, 1038, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
-     1075, 1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085,
-     1086, 1082, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
+      995,  996,  997,  998, 1000, 1001, 1002, 1003,  991, 1004,
+     1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
+     1015, 1016, 1017, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
+     1026, 1027, 1028,  968, 1029, 1030, 1031, 1032, 1033, 1034,
+
+     1035, 1037, 1036, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
+     1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
+     1056, 1057, 1058, 1059, 1060, 1061, 1063, 1064, 1035, 1036,
+     1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+     1075, 1076, 1077, 1078, 1079, 1081, 1082, 1083, 1084, 1085,
+     1081, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
      1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
-     1105, 1106, 1107, 1108, 1109, 1110, 1111, 1113, 1114, 1115,
-     1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1125, 1126,
-     1127, 1083, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136,
-
-     1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1147,
-     1148, 1149, 1150, 1151, 1152, 1153, 1154, 1156, 1157, 1158,
-     1159, 1160, 1161, 1162, 1163, 1165, 1166, 1167, 1168, 1169,
-     1171, 1172, 1147, 1173, 1174, 1175, 1176, 1177, 1148, 1178,
-     1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1190,
+     1105, 1106, 1107, 1108, 1109, 1111, 1112, 1113, 1114, 1115,
+     1116, 1117, 1118, 1119, 1120, 1121, 1123, 1124, 1125, 1127,
+     1082, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136,
+
+     1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147,
+     1148, 1149, 1150, 1151, 1152, 1154, 1155, 1156, 1157, 1158,
+     1159, 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1168, 1170,
+     1145, 1171, 1172, 1173, 1174, 1175, 1146, 1176, 1177, 1178,
+     1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1189, 1191,
      1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
-     1202, 1203, 1204, 1206, 1207, 1208, 1209, 1211, 1212, 1213,
-     1214, 1215, 1216, 1219, 1221, 1222, 1223, 1224, 1225, 1226,
-     1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1237,
-     1238, 1239, 1240, 1241, 1244, 1245, 1246, 1247, 1248, 1249,
-
-     1250, 1251, 1252, 1253, 1255, 1256, 1257, 1258, 1259, 1260,
-     1261, 1262, 1263, 1264, 1266, 1267, 1268, 1269, 1270, 1271,
-     1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1282,
-     1252, 1283, 1284, 1285, 1286, 1229, 1287, 1288, 1289, 1290,
+     1202, 1204, 1205, 1206, 1207, 1209, 1210, 1211, 1212, 1213,
+     1214, 1217, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
+     1227, 1228, 1229, 1230, 1231, 1232, 1233, 1235, 1236, 1237,
+     1238, 1239, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
+
+     1250, 1251, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
+     1261, 1262, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
+     1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1250, 1281,
+     1282, 1283, 1284, 1227, 1285, 1286, 1287, 1288, 1289, 1290,
      1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
-     1301, 1302, 1303, 1260, 1304, 1298, 1306, 1309, 1310, 1311,
-     1312, 1313, 1314, 1315, 1316, 1317, 1318, 1320, 1321, 1322,
-     1323, 1324, 1325, 1326, 1328, 1329, 1331, 1334, 1335, 1336,
-     1338, 1339, 1341, 1342, 1343, 1344, 1346, 1347, 1348, 1343,
-     1349, 1350, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
-
-     1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, 1344, 1369,
-     1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380,
-     1382, 1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
-     1394, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1404, 1405,
-     1407, 1408, 1409, 1410, 1412, 1413, 1414, 1415, 1416, 1417,
-     1418, 1419, 1420, 1421, 1423, 1425, 1426, 1428, 1430, 1431,
+     1301, 1258, 1302, 1296, 1304, 1307, 1308, 1309, 1310, 1311,
+     1312, 1313, 1314, 1315, 1316, 1318, 1319, 1320, 1321, 1322,
+     1323, 1324, 1326, 1327, 1329, 1332, 1333, 1334, 1336, 1337,
+     1339, 1340, 1341, 1342, 1344, 1345, 1346, 1341, 1347, 1348,
+     1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
+
+     1360, 1361, 1362, 1363, 1364, 1365, 1342, 1367, 1368, 1370,
+     1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1382,
+     1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1394,
+     1395, 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1405, 1406,
+     1407, 1408, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
+     1418, 1419, 1421, 1423, 1424, 1426, 1428, 1429, 1430, 1431,
      1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
-     1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1440,
-     1451, 1452, 1453, 1426, 1454, 1455, 1456, 1456, 1457, 1458,
+     1442, 1443, 1444, 1445, 1446, 1447, 1448, 1438, 1449, 1450,
+     1451, 1424, 1452, 1453, 1454, 1455, 1455, 1456, 1457, 1458,
      1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468,
 
      1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478,
-     1479, 1480, 1481, 1482, 1483, 1485, 1486, 1487, 1488, 1489,
-     1491, 1492, 1493, 1494, 1495, 1497, 1498, 1501, 1502, 1503,
-     1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1516,
-     1518, 1519, 1520, 1521, 1522, 1523, 1457, 1524, 1525, 1527,
-     1528, 1529, 1495, 1531, 1533, 1534, 1535, 1537, 1538, 1539,
-     1540, 1541, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
-     1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
-     1562, 1563, 1565, 1566, 1567, 1569, 1570, 1571, 1572, 1573,
-     1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1584,
-
-     1585, 1586, 1588, 1589, 1591, 1592, 1593, 1594, 1595, 1597,
-     1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1607, 1608,
-     1610, 1613, 1614, 1615, 1616, 1619, 1621, 1622, 1623, 1624,
-     1625, 1626, 1627, 1628, 1629, 1631, 1632, 1633, 1635, 1636,
-     1637, 1638, 1639, 1640, 1641, 1643, 1644, 1645, 1647, 1648,
-     1649, 1650, 1651, 1652, 1653, 1654, 1655, 1657, 1658, 1659,
-     1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1670, 1671,
-     1672, 1673, 1674, 1675, 1676, 1677, 1680, 1681, 1682, 1683,
-     1684, 1685, 1686, 1687, 1690, 1691, 1692, 1693, 1694, 1695,
-     1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705,
-
-     1707, 1708, 1709, 1710, 1711, 1712, 1713, 1715, 1719, 1721,
-     1722, 1723, 1724, 1726, 1727, 1728, 1730, 1731, 1732, 1733,
-     1734, 1735, 1736, 1737, 1738, 1739, 1741, 1742, 1743, 1745,
-     1746, 1749, 1750, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
-     1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768,
-     1769, 1770, 1771, 1773, 1774, 1775, 1776, 1777, 1778, 1779,
-     1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1790,
-     1791, 1793, 1794, 1796, 1797, 1798, 1799, 1802, 1804, 1805,
-     1806, 1808, 1809, 1810, 1811, 1812, 1813, 1815, 1817, 1820,
-     1821, 1822, 1823, 1824, 1825, 1824, 1827, 1828, 1830, 1831,
-
-     1832, 1833, 1834, 1835, 1836, 1838, 1839, 1840, 1841, 1842,
-     1845, 1846, 1847, 1848, 1852, 1852, 1852, 1852, 1852, 1853,
-     1853, 1853, 1853, 1853, 1854, 1860, 1854, 1854, 1854, 1855,
-     1861, 1855, 1862, 1855, 1856, 1856, 1856, 1856, 1856, 1857,
-     1857, 1857, 1857, 1857, 1858, 1863, 1858, 1858, 1858, 1859,
-     1859, 1859,  717,  715,  714,  713,  712,  711,  710,  709,
-      708,  707,  706,  705,  704,  703,  702,  701,  700,  699,
-      698,  696,  694,  693,  692,  691,  690,  689,  688,  687,
-      683,  682,  680,  679,  678,  677,  676,  675,  674,  673,
-      672,  670,  669,  667,  666,  665,  664,  663,  662,  661,
-
-      660,  659,  658,  657,  656,  655,  653,  652,  651,  650,
-      649,  648,  647,  646,  645,  643,  642,  641,  640,  639,
-      638,  636,  635,  634,  633,  632,  631,  630,  628,  627,
-      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
-      616,  614,  613,  612,  611,  610,  609,  608,  607,  606,
-      605,  604,  603,  602,  600,  599,  598,  597,  596,  595,
-      594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
-      584,  583,  582,  581,  580,  579,  578,  577,  576,  575,
-      574,  573,  571,  570,  562,  561,  560,  558,  557,  556,
-      554,  553,  551,  549,  548,  547,  546,  545,  544,  543,
-
-      542,  541,  540,  539,  538,  537,  536,  535,  534,  533,
-      532,  531,  530,  529,  528,  527,  526,  525,  524,  523,
-      522,  521,  520,  519,  517,  515,  514,  513,  512,  511,
-      510,  509,  508,  507,  506,  505,  504,  503,  502,  500,
-      499,  498,  497,  496,  495,  494,  492,  491,  490,  489,
-      488,  487,  486,  485,  484,  483,  482,  481,  480,  479,
-      477,  476,  475,  474,  472,  471,  470,  469,  468,  466,
-      465,  463,  462,  459,  458,  457,  456,  455,  454,  453,
-      451,  450,  449,  448,  447,  446,  445,  444,  439,  437,
-      436,  434,  433,  431,  428,  426,  425,  423,  422,  421,
-
-      419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
-      409,  408,  407,  406,  405,  403,  402,  401,  399,  398,
-      397,  396,  394,  393,  392,  391,  389,  388,  387,  386,
-      385,  384,  383,  382,  381,  380,  379,  377,  375,  374,
-      373,  372,  371,  370,  369,  367,  366,  365,  364,  363,
-      362,  361,  360,  359,  358,  356,  355,  354,  353,  352,
-      351,  350,  349,  348,  347,  346,  345,  343,  342,  341,
-      340,  339,  336,  335,  334,  333,  332,  331,  330,  329,
-      328,  327,  326,  325,  324,  320,  318,  315,  313,  309,
-      302,  300,  299,  298,  297,  296,  294,  293,  292,  291,
-
-      290,  289,  288,  287,  286,  284,  283,  282,  281,  280,
-      279,  278,  277,  275,  274,  273,  272,  271,  270,  269,
-      268,  267,  266,  265,  264,  263,  262,  261,  259,  258,
-      257,  256,  255,  254,  253,  252,  251,  250,  248,  247,
-      246,  245,  244,  243,  241,  239,  238,  237,  236,  235,
-      234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
-      224,  223,  222,  221,  220,  219,  217,  216,  215,  214,
-      213,  212,  211,  210,  209,  208,  206,  203,  201,  199,
-      195,  193,  190,  182,  181,  180,  178,  177,  176,  174,
-      173,  172,  170,  169,  168,  164,  161,  159,  158,  157,
-
-      156,  155,  153,  152,  151,  150,  149,  148,  146,  145,
-      144,  143,  142,  141,  140,  139,  138,  136,  135,  133,
-      131,  130,  129,  128,  126,  125,  124,  123,  121,  120,
-      118,  117,  116,  112,  104,  102,   97,   96,   77,   72,
-       66,   58,   49,   47,   43,   41,   39,   38,   24,   14,
-       11, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
-     1851, 1851, 1851, 1851, 1851
+     1479, 1480, 1481, 1483, 1484, 1485, 1486, 1487, 1489, 1490,
+     1491, 1492, 1493, 1495, 1496, 1499, 1500, 1501, 1504, 1505,
+     1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1515, 1517,
+     1518, 1519, 1520, 1521, 1522, 1456, 1523, 1524, 1526, 1527,
+     1493, 1529, 1531, 1532, 1533, 1535, 1536, 1537, 1538, 1539,
+     1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
+     1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1560, 1561,
+     1563, 1564, 1565, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
+     1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1583, 1584,
+
+     1585, 1587, 1589, 1590, 1591, 1592, 1593, 1595, 1596, 1597,
+     1598, 1599, 1600, 1601, 1602, 1603, 1605, 1606, 1608, 1611,
+     1612, 1613, 1614, 1617, 1619, 1620, 1621, 1622, 1623, 1624,
+     1625, 1626, 1627, 1628, 1630, 1631, 1632, 1634, 1635, 1636,
+     1637, 1638, 1639, 1641, 1642, 1643, 1645, 1646, 1647, 1648,
+     1649, 1650, 1651, 1652, 1653, 1655, 1656, 1657, 1659, 1660,
+     1661, 1662, 1663, 1664, 1665, 1666, 1668, 1669, 1670, 1671,
+     1672, 1673, 1674, 1675, 1676, 1679, 1680, 1681, 1682, 1683,
+     1684, 1685, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
+     1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1706,
+
+     1707, 1708, 1709, 1710, 1711, 1713, 1717, 1719, 1720, 1721,
+     1722, 1724, 1725, 1726, 1728, 1729, 1730, 1731, 1732, 1733,
+     1734, 1735, 1736, 1737, 1738, 1740, 1741, 1743, 1744, 1747,
+     1748, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1758, 1759,
+     1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
+     1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780,
+     1781, 1782, 1783, 1784, 1785, 1787, 1788, 1790, 1791, 1793,
+     1794, 1795, 1796, 1798, 1800, 1801, 1802, 1804, 1805, 1806,
+     1807, 1808, 1809, 1811, 1813, 1816, 1817, 1818, 1819, 1820,
+     1821, 1820, 1823, 1824, 1826, 1827, 1828, 1829, 1830, 1831,
+
+     1832, 1834, 1835, 1836, 1837, 1838, 1841, 1842, 1843, 1844,
+     1848, 1848, 1848, 1848, 1848, 1849, 1849, 1849, 1849, 1849,
+     1850, 1856, 1850, 1850, 1850, 1851, 1857, 1851, 1858, 1851,
+     1852, 1852, 1852, 1852, 1852, 1853, 1853, 1853, 1853, 1853,
+     1854, 1859, 1854, 1854, 1854, 1855, 1855, 1855,  716,  714,
+      713,  712,  711,  710,  709,  708,  707,  706,  705,  704,
+      703,  702,  701,  700,  699,  698,  697,  696,  694,  692,
+      691,  690,  689,  688,  687,  686,  685,  681,  680,  678,
+      677,  676,  675,  674,  673,  672,  671,  670,  668,  667,
+      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
+
+      655,  654,  653,  651,  650,  649,  648,  647,  646,  645,
+      644,  643,  641,  640,  639,  638,  637,  636,  634,  633,
+      632,  631,  630,  629,  628,  626,  625,  624,  623,  622,
+      621,  620,  619,  618,  617,  616,  615,  614,  612,  611,
+      610,  609,  608,  607,  606,  605,  604,  603,  602,  601,
+      599,  598,  597,  596,  595,  594,  593,  592,  591,  590,
+      589,  588,  587,  586,  585,  584,  583,  582,  581,  580,
+      579,  578,  577,  576,  575,  574,  573,  572,  571,  569,
+      568,  560,  559,  558,  556,  555,  554,  552,  551,  549,
+      547,  546,  545,  544,  543,  542,  541,  540,  539,  538,
+
+      537,  536,  535,  534,  533,  532,  531,  530,  529,  528,
+      527,  526,  525,  524,  523,  522,  521,  520,  519,  518,
+      517,  515,  513,  512,  511,  510,  509,  508,  507,  506,
+      505,  504,  503,  502,  501,  500,  498,  497,  496,  495,
+      494,  493,  492,  490,  489,  488,  487,  486,  485,  484,
+      483,  482,  481,  480,  479,  478,  476,  475,  474,  473,
+      471,  470,  469,  468,  467,  465,  464,  462,  461,  458,
+      457,  456,  455,  454,  453,  452,  450,  449,  448,  447,
+      446,  445,  444,  443,  438,  436,  435,  433,  432,  430,
+      427,  425,  424,  422,  421,  420,  418,  417,  416,  415,
+
+      414,  413,  412,  411,  410,  409,  408,  407,  406,  405,
+      404,  402,  401,  400,  398,  397,  396,  395,  393,  392,
+      391,  390,  388,  387,  386,  385,  384,  383,  382,  381,
+      380,  379,  378,  376,  374,  373,  372,  371,  370,  369,
+      368,  366,  365,  364,  363,  362,  361,  360,  359,  358,
+      356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
+      346,  345,  343,  342,  341,  340,  339,  336,  335,  334,
+      333,  332,  331,  330,  329,  328,  327,  326,  325,  324,
+      320,  318,  315,  313,  309,  302,  300,  299,  298,  297,
+      296,  294,  293,  292,  291,  290,  289,  288,  287,  286,
+
+      284,  283,  282,  281,  280,  279,  278,  277,  275,  274,
+      273,  272,  271,  270,  269,  268,  267,  266,  265,  264,
+      263,  262,  261,  259,  258,  257,  256,  255,  254,  253,
+      252,  251,  250,  248,  247,  246,  245,  244,  243,  242,
+      241,  239,  238,  237,  236,  235,  234,  233,  232,  231,
+      230,  229,  228,  227,  226,  225,  224,  223,  222,  221,
+      220,  219,  217,  216,  215,  214,  213,  212,  211,  210,
+      209,  208,  206,  203,  201,  199,  195,  193,  190,  182,
+      181,  180,  178,  177,  176,  174,  173,  172,  170,  169,
+      168,  164,  161,  159,  158,  157,  156,  155,  153,  152,
+
+      151,  150,  149,  148,  146,  145,  144,  143,  142,  141,
+      140,  139,  138,  136,  135,  133,  131,  130,  129,  128,
+      126,  125,  124,  123,  121,  120,  118,  117,  116,  112,
+      104,  102,   97,   96,   77,   72,   66,   58,   49,   47,
+       43,   41,   39,   38,   24,   14,   11, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+     1847
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1904,21 +1901,21 @@ static const flex_int16_t yy_rule_linenum[200] =
       361,  373,  382,  391,  400,  409,  420,  431,  442,  453,
       464,  475,  486,  497,  508,  519,  530,  541,  552,  563,
       574,  585,  594,  605,  616,  627,  638,  649,  658,  667,
-      676,  685,  696,  707,  718,  729,  740,  751,  761,  772,
-      781,  791,  805,  821,  830,  839,  848,  857,  879,  901,
-      910,  920,  929,  940,  949,  958,  967,  976,  985,  995,
-     1004, 1015, 1026, 1037, 1048, 1060, 1069, 1078, 1087, 1096,
-
-     1105, 1114, 1123, 1132, 1141, 1151, 1162, 1174, 1183, 1192,
-     1202, 1212, 1222, 1232, 1242, 1252, 1261, 1271, 1280, 1289,
-     1298, 1307, 1317, 1327, 1336, 1346, 1355, 1364, 1373, 1382,
-     1391, 1400, 1409, 1418, 1427, 1436, 1445, 1454, 1463, 1472,
-     1481, 1490, 1499, 1508, 1517, 1526, 1535, 1544, 1553, 1562,
-     1571, 1580, 1589, 1598, 1607, 1616, 1625, 1634, 1643, 1652,
-     1661, 1673, 1685, 1695, 1705, 1715, 1725, 1735, 1745, 1755,
-     1765, 1775, 1784, 1793, 1802, 1811, 1822, 1833, 1846, 1859,
-     1872, 1881, 1980, 1985, 1990, 1995, 1996, 1997, 1998, 1999,
-     2000, 2002, 2020, 2033, 2038, 2042, 2044, 2046, 2048
+      676,  685,  696,  707,  718,  729,  740,  751,  762,  772,
+      783,  792,  802,  816,  832,  841,  850,  859,  868,  890,
+      912,  921,  931,  940,  951,  960,  969,  978,  987,  996,
+     1006, 1015, 1026, 1037, 1048, 1059, 1071, 1080, 1089, 1098,
+
+     1107, 1116, 1125, 1134, 1143, 1152, 1162, 1173, 1185, 1194,
+     1203, 1213, 1223, 1233, 1243, 1253, 1263, 1272, 1282, 1291,
+     1300, 1309, 1318, 1328, 1338, 1347, 1357, 1366, 1375, 1384,
+     1393, 1402, 1411, 1420, 1429, 1438, 1447, 1456, 1465, 1474,
+     1483, 1492, 1501, 1510, 1519, 1528, 1537, 1546, 1555, 1564,
+     1573, 1582, 1591, 1600, 1609, 1618, 1627, 1636, 1645, 1654,
+     1663, 1672, 1684, 1696, 1706, 1716, 1726, 1736, 1746, 1756,
+     1766, 1776, 1786, 1795, 1804, 1813, 1822, 1833, 1844, 1857,
+     1870, 1883, 1982, 1987, 1992, 1997, 1998, 1999, 2000, 2001,
+     2002, 2004, 2022, 2035, 2040, 2044, 2046, 2048, 2050
 
     } ;
 
@@ -1972,7 +1969,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1975 "dhcp4_lexer.cc"
+#line 1972 "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
@@ -1998,8 +1995,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 2001 "dhcp4_lexer.cc"
-#line 2002 "dhcp4_lexer.cc"
+#line 1998 "dhcp4_lexer.cc"
+#line 1999 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2327,7 +2324,7 @@ YY_DECL
     }
 
 
-#line 2330 "dhcp4_lexer.cc"
+#line 2327 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2356,13 +2353,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 >= 1852 )
+                               if ( yy_current_state >= 1848 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1851 );
+               while ( yy_current_state != 1847 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -3224,6 +3221,20 @@ YY_RULE_SETUP
 case 68:
 YY_RULE_SETUP
 #line 751 "dhcp4_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser4Context::DHCP4:
+    case isc::dhcp::Parser4Context::SUBNET4:
+    case isc::dhcp::Parser4Context::SHARED_NETWORK:
+        return isc::dhcp::Dhcp4Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
+    }
+}
+       YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 762 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3234,9 +3245,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 761 "dhcp4_lexer.ll"
+#line 772 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3248,9 +3259,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 772 "dhcp4_lexer.ll"
+#line 783 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3260,9 +3271,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 781 "dhcp4_lexer.ll"
+#line 792 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3273,9 +3284,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 791 "dhcp4_lexer.ll"
+#line 802 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3290,9 +3301,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 805 "dhcp4_lexer.ll"
+#line 816 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -3309,9 +3320,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 821 "dhcp4_lexer.ll"
+#line 832 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3321,9 +3332,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 830 "dhcp4_lexer.ll"
+#line 841 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3333,9 +3344,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 839 "dhcp4_lexer.ll"
+#line 850 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3345,9 +3356,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 848 "dhcp4_lexer.ll"
+#line 859 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -3357,9 +3368,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 857 "dhcp4_lexer.ll"
+#line 868 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3382,9 +3393,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 879 "dhcp4_lexer.ll"
+#line 890 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3407,9 +3418,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 901 "dhcp4_lexer.ll"
+#line 912 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3419,9 +3430,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 910 "dhcp4_lexer.ll"
+#line 921 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3432,9 +3443,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 920 "dhcp4_lexer.ll"
+#line 931 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3444,9 +3455,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 929 "dhcp4_lexer.ll"
+#line 940 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3458,9 +3469,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 940 "dhcp4_lexer.ll"
+#line 951 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3470,9 +3481,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 949 "dhcp4_lexer.ll"
+#line 960 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3482,9 +3493,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 958 "dhcp4_lexer.ll"
+#line 969 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3494,9 +3505,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 967 "dhcp4_lexer.ll"
+#line 978 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3506,9 +3517,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 976 "dhcp4_lexer.ll"
+#line 987 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3518,9 +3529,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 985 "dhcp4_lexer.ll"
+#line 996 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3531,9 +3542,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 995 "dhcp4_lexer.ll"
+#line 1006 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3543,9 +3554,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 1004 "dhcp4_lexer.ll"
+#line 1015 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3557,9 +3568,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 1015 "dhcp4_lexer.ll"
+#line 1026 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3571,9 +3582,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1026 "dhcp4_lexer.ll"
+#line 1037 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3585,9 +3596,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1037 "dhcp4_lexer.ll"
+#line 1048 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3599,9 +3610,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1048 "dhcp4_lexer.ll"
+#line 1059 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3613,9 +3624,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1060 "dhcp4_lexer.ll"
+#line 1071 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3625,9 +3636,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1069 "dhcp4_lexer.ll"
+#line 1080 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3637,9 +3648,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1078 "dhcp4_lexer.ll"
+#line 1089 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3649,9 +3660,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1087 "dhcp4_lexer.ll"
+#line 1098 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3661,9 +3672,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1096 "dhcp4_lexer.ll"
+#line 1107 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3673,9 +3684,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1105 "dhcp4_lexer.ll"
+#line 1116 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3685,9 +3696,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1114 "dhcp4_lexer.ll"
+#line 1125 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3697,9 +3708,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1123 "dhcp4_lexer.ll"
+#line 1134 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3709,9 +3720,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1132 "dhcp4_lexer.ll"
+#line 1143 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3721,9 +3732,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1141 "dhcp4_lexer.ll"
+#line 1152 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3734,9 +3745,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1151 "dhcp4_lexer.ll"
+#line 1162 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3748,9 +3759,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1162 "dhcp4_lexer.ll"
+#line 1173 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3763,9 +3774,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1174 "dhcp4_lexer.ll"
+#line 1185 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3775,9 +3786,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1183 "dhcp4_lexer.ll"
+#line 1194 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3787,9 +3798,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1192 "dhcp4_lexer.ll"
+#line 1203 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3800,9 +3811,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1202 "dhcp4_lexer.ll"
+#line 1213 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3813,9 +3824,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1212 "dhcp4_lexer.ll"
+#line 1223 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3826,9 +3837,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1222 "dhcp4_lexer.ll"
+#line 1233 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3839,9 +3850,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1232 "dhcp4_lexer.ll"
+#line 1243 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3852,9 +3863,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1242 "dhcp4_lexer.ll"
+#line 1253 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3865,9 +3876,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1252 "dhcp4_lexer.ll"
+#line 1263 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3877,9 +3888,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1261 "dhcp4_lexer.ll"
+#line 1272 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3890,9 +3901,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1271 "dhcp4_lexer.ll"
+#line 1282 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3902,9 +3913,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1280 "dhcp4_lexer.ll"
+#line 1291 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3914,9 +3925,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1289 "dhcp4_lexer.ll"
+#line 1300 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3926,9 +3937,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1298 "dhcp4_lexer.ll"
+#line 1309 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3938,9 +3949,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1307 "dhcp4_lexer.ll"
+#line 1318 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3951,9 +3962,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1317 "dhcp4_lexer.ll"
+#line 1328 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3964,9 +3975,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1327 "dhcp4_lexer.ll"
+#line 1338 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3976,9 +3987,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1336 "dhcp4_lexer.ll"
+#line 1347 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3988,9 +3999,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1346 "dhcp4_lexer.ll"
+#line 1357 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4000,9 +4011,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1355 "dhcp4_lexer.ll"
+#line 1366 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4012,9 +4023,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1364 "dhcp4_lexer.ll"
+#line 1375 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4024,9 +4035,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1373 "dhcp4_lexer.ll"
+#line 1384 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4036,9 +4047,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1382 "dhcp4_lexer.ll"
+#line 1393 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4048,9 +4059,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1391 "dhcp4_lexer.ll"
+#line 1402 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4060,9 +4071,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1400 "dhcp4_lexer.ll"
+#line 1411 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4072,9 +4083,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1409 "dhcp4_lexer.ll"
+#line 1420 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4084,9 +4095,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1418 "dhcp4_lexer.ll"
+#line 1429 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4096,9 +4107,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1427 "dhcp4_lexer.ll"
+#line 1438 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4108,9 +4119,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1436 "dhcp4_lexer.ll"
+#line 1447 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4120,9 +4131,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1445 "dhcp4_lexer.ll"
+#line 1456 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4132,9 +4143,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1454 "dhcp4_lexer.ll"
+#line 1465 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4144,9 +4155,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1463 "dhcp4_lexer.ll"
+#line 1474 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4156,9 +4167,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1472 "dhcp4_lexer.ll"
+#line 1483 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4168,9 +4179,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1481 "dhcp4_lexer.ll"
+#line 1492 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4180,9 +4191,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1490 "dhcp4_lexer.ll"
+#line 1501 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4192,9 +4203,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1499 "dhcp4_lexer.ll"
+#line 1510 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4204,9 +4215,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1508 "dhcp4_lexer.ll"
+#line 1519 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4216,9 +4227,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1517 "dhcp4_lexer.ll"
+#line 1528 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4228,9 +4239,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1526 "dhcp4_lexer.ll"
+#line 1537 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4240,9 +4251,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1535 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4252,9 +4263,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1544 "dhcp4_lexer.ll"
+#line 1555 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4264,9 +4275,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1553 "dhcp4_lexer.ll"
+#line 1564 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4276,9 +4287,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1562 "dhcp4_lexer.ll"
+#line 1573 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4288,9 +4299,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1571 "dhcp4_lexer.ll"
+#line 1582 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4300,9 +4311,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1580 "dhcp4_lexer.ll"
+#line 1591 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4312,9 +4323,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1589 "dhcp4_lexer.ll"
+#line 1600 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4324,9 +4335,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1598 "dhcp4_lexer.ll"
+#line 1609 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4336,9 +4347,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1607 "dhcp4_lexer.ll"
+#line 1618 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4348,9 +4359,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1616 "dhcp4_lexer.ll"
+#line 1627 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4360,9 +4371,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1625 "dhcp4_lexer.ll"
+#line 1636 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4372,9 +4383,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1634 "dhcp4_lexer.ll"
+#line 1645 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4384,9 +4395,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1643 "dhcp4_lexer.ll"
+#line 1654 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4396,9 +4407,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1652 "dhcp4_lexer.ll"
+#line 1663 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4408,9 +4419,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1661 "dhcp4_lexer.ll"
+#line 1672 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4423,9 +4434,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1673 "dhcp4_lexer.ll"
+#line 1684 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4438,9 +4449,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1685 "dhcp4_lexer.ll"
+#line 1696 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4451,9 +4462,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1695 "dhcp4_lexer.ll"
+#line 1706 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4464,9 +4475,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1705 "dhcp4_lexer.ll"
+#line 1716 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -4477,9 +4488,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1715 "dhcp4_lexer.ll"
+#line 1726 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4490,9 +4501,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1725 "dhcp4_lexer.ll"
+#line 1736 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4503,9 +4514,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1735 "dhcp4_lexer.ll"
+#line 1746 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4516,9 +4527,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1745 "dhcp4_lexer.ll"
+#line 1756 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4529,9 +4540,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1755 "dhcp4_lexer.ll"
+#line 1766 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4542,9 +4553,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1765 "dhcp4_lexer.ll"
+#line 1776 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4555,9 +4566,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1775 "dhcp4_lexer.ll"
+#line 1786 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4567,9 +4578,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1784 "dhcp4_lexer.ll"
+#line 1795 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4579,9 +4590,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1793 "dhcp4_lexer.ll"
+#line 1804 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4591,9 +4602,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1802 "dhcp4_lexer.ll"
+#line 1813 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4603,9 +4614,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1811 "dhcp4_lexer.ll"
+#line 1822 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4617,9 +4628,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1822 "dhcp4_lexer.ll"
+#line 1833 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4631,9 +4642,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1833 "dhcp4_lexer.ll"
+#line 1844 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4647,9 +4658,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1846 "dhcp4_lexer.ll"
+#line 1857 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4663,9 +4674,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1859 "dhcp4_lexer.ll"
+#line 1870 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4679,21 +4690,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 181:
-YY_RULE_SETUP
-#line 1872 "dhcp4_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::DHCP4:
-        return isc::dhcp::Dhcp4Parser::make_IP_RESERVATIONS_UNIQUE(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
-    }
-}
-       YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 1881 "dhcp4_lexer.ll"
+#line 1883 "dhcp4_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -4796,7 +4795,7 @@ YY_RULE_SETUP
 case 183:
 /* rule 183 can match eol */
 YY_RULE_SETUP
-#line 1980 "dhcp4_lexer.ll"
+#line 1982 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -4805,7 +4804,7 @@ YY_RULE_SETUP
 case 184:
 /* rule 184 can match eol */
 YY_RULE_SETUP
-#line 1985 "dhcp4_lexer.ll"
+#line 1987 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -4813,7 +4812,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 1990 "dhcp4_lexer.ll"
+#line 1992 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -4821,37 +4820,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 1995 "dhcp4_lexer.ll"
+#line 1997 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 1996 "dhcp4_lexer.ll"
+#line 1998 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 1997 "dhcp4_lexer.ll"
+#line 1999 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 1998 "dhcp4_lexer.ll"
+#line 2000 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 190:
 YY_RULE_SETUP
-#line 1999 "dhcp4_lexer.ll"
+#line 2001 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 191:
 YY_RULE_SETUP
-#line 2000 "dhcp4_lexer.ll"
+#line 2002 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 2002 "dhcp4_lexer.ll"
+#line 2004 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4872,7 +4871,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 2020 "dhcp4_lexer.ll"
+#line 2022 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4888,7 +4887,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 2033 "dhcp4_lexer.ll"
+#line 2035 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -4896,33 +4895,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 2038 "dhcp4_lexer.ll"
+#line 2040 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 2042 "dhcp4_lexer.ll"
+#line 2044 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 2044 "dhcp4_lexer.ll"
+#line 2046 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 2046 "dhcp4_lexer.ll"
+#line 2048 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 2048 "dhcp4_lexer.ll"
+#line 2050 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2050 "dhcp4_lexer.ll"
+#line 2052 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4948,10 +4947,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 2073 "dhcp4_lexer.ll"
+#line 2075 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4954 "dhcp4_lexer.cc"
+#line 4953 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5270,7 +5269,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 >= 1852 )
+                       if ( yy_current_state >= 1848 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5303,11 +5302,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 >= 1852 )
+               if ( yy_current_state >= 1848 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1851);
+       yy_is_jam = (yy_current_state == 1847);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6056,7 +6055,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2073 "dhcp4_lexer.ll"
+#line 2075 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index dac47bb0ab03d75ff46ab9f88e1ac7a3f7406ab6..907f0062e91111ecfad101830862a6a09ff39b35 100644 (file)
@@ -1355,81 +1355,81 @@ namespace isc { namespace dhcp {
 #line 1356 "dhcp4_parser.cc"
     break;
 
-  case 149: // $@24: %empty
+  case 149: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean"
 #line 662 "dhcp4_parser.yy"
+                                                         {
+    ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location));
+    ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("ddns-update-on-renew", b);
+}
+#line 1366 "dhcp4_parser.cc"
+    break;
+
+  case 150: // $@24: %empty
+#line 668 "dhcp4_parser.yy"
                                      {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1365 "dhcp4_parser.cc"
+#line 1375 "dhcp4_parser.cc"
     break;
 
-  case 150: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string"
-#line 665 "dhcp4_parser.yy"
+  case 151: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string"
+#line 671 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
     ctx.leave();
 }
-#line 1375 "dhcp4_parser.cc"
+#line 1385 "dhcp4_parser.cc"
     break;
 
-  case 151: // $@25: %empty
-#line 671 "dhcp4_parser.yy"
+  case 152: // $@25: %empty
+#line 677 "dhcp4_parser.yy"
                                                      {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1384 "dhcp4_parser.cc"
+#line 1394 "dhcp4_parser.cc"
     break;
 
-  case 152: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string"
-#line 674 "dhcp4_parser.yy"
+  case 153: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string"
+#line 680 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
     ctx.leave();
 }
-#line 1394 "dhcp4_parser.cc"
+#line 1404 "dhcp4_parser.cc"
     break;
 
-  case 153: // store_extended_info: "store-extended-info" ":" "boolean"
-#line 680 "dhcp4_parser.yy"
+  case 154: // store_extended_info: "store-extended-info" ":" "boolean"
+#line 686 "dhcp4_parser.yy"
                                                        {
     ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("store-extended-info", b);
 }
-#line 1404 "dhcp4_parser.cc"
+#line 1414 "dhcp4_parser.cc"
     break;
 
-  case 154: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
-#line 686 "dhcp4_parser.yy"
+  case 155: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
+#line 692 "dhcp4_parser.yy"
                                                                              {
     ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location));
     ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("statistic-default-sample-count", count);
 }
-#line 1414 "dhcp4_parser.cc"
+#line 1424 "dhcp4_parser.cc"
     break;
 
-  case 155: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
-#line 692 "dhcp4_parser.yy"
+  case 156: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
+#line 698 "dhcp4_parser.yy"
                                                                          {
     ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("statistic-default-sample-age", age);
 }
-#line 1424 "dhcp4_parser.cc"
-    break;
-
-  case 156: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean"
-#line 698 "dhcp4_parser.yy"
-                                                             {
-    ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location));
-    ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("ip-reservations-unique", unique);
-}
 #line 1434 "dhcp4_parser.cc"
     break;
 
@@ -2386,8 +2386,8 @@ namespace isc { namespace dhcp {
 #line 2387 "dhcp4_parser.cc"
     break;
 
-  case 370: // $@57: %empty
-#line 1383 "dhcp4_parser.yy"
+  case 371: // $@57: %empty
+#line 1384 "dhcp4_parser.yy"
                {
     ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2395,8 +2395,8 @@ namespace isc { namespace dhcp {
 #line 2396 "dhcp4_parser.cc"
     break;
 
-  case 371: // subnet: "subnet" $@57 ":" "constant string"
-#line 1386 "dhcp4_parser.yy"
+  case 372: // subnet: "subnet" $@57 ":" "constant string"
+#line 1387 "dhcp4_parser.yy"
                {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2405,8 +2405,8 @@ namespace isc { namespace dhcp {
 #line 2406 "dhcp4_parser.cc"
     break;
 
-  case 372: // $@58: %empty
-#line 1392 "dhcp4_parser.yy"
+  case 373: // $@58: %empty
+#line 1393 "dhcp4_parser.yy"
                                            {
     ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2414,8 +2414,8 @@ namespace isc { namespace dhcp {
 #line 2415 "dhcp4_parser.cc"
     break;
 
-  case 373: // subnet_4o6_interface: "4o6-interface" $@58 ":" "constant string"
-#line 1395 "dhcp4_parser.yy"
+  case 374: // subnet_4o6_interface: "4o6-interface" $@58 ":" "constant string"
+#line 1396 "dhcp4_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface", iface);
@@ -2424,8 +2424,8 @@ namespace isc { namespace dhcp {
 #line 2425 "dhcp4_parser.cc"
     break;
 
-  case 374: // $@59: %empty
-#line 1401 "dhcp4_parser.yy"
+  case 375: // $@59: %empty
+#line 1402 "dhcp4_parser.yy"
                                                  {
     ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2433,8 +2433,8 @@ namespace isc { namespace dhcp {
 #line 2434 "dhcp4_parser.cc"
     break;
 
-  case 375: // subnet_4o6_interface_id: "4o6-interface-id" $@59 ":" "constant string"
-#line 1404 "dhcp4_parser.yy"
+  case 376: // subnet_4o6_interface_id: "4o6-interface-id" $@59 ":" "constant string"
+#line 1405 "dhcp4_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface-id", iface);
@@ -2443,8 +2443,8 @@ namespace isc { namespace dhcp {
 #line 2444 "dhcp4_parser.cc"
     break;
 
-  case 376: // $@60: %empty
-#line 1410 "dhcp4_parser.yy"
+  case 377: // $@60: %empty
+#line 1411 "dhcp4_parser.yy"
                                      {
     ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2452,8 +2452,8 @@ namespace isc { namespace dhcp {
 #line 2453 "dhcp4_parser.cc"
     break;
 
-  case 377: // subnet_4o6_subnet: "4o6-subnet" $@60 ":" "constant string"
-#line 1413 "dhcp4_parser.yy"
+  case 378: // subnet_4o6_subnet: "4o6-subnet" $@60 ":" "constant string"
+#line 1414 "dhcp4_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-subnet", iface);
@@ -2462,8 +2462,8 @@ namespace isc { namespace dhcp {
 #line 2463 "dhcp4_parser.cc"
     break;
 
-  case 378: // $@61: %empty
-#line 1419 "dhcp4_parser.yy"
+  case 379: // $@61: %empty
+#line 1420 "dhcp4_parser.yy"
                      {
     ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2471,8 +2471,8 @@ namespace isc { namespace dhcp {
 #line 2472 "dhcp4_parser.cc"
     break;
 
-  case 379: // interface: "interface" $@61 ":" "constant string"
-#line 1422 "dhcp4_parser.yy"
+  case 380: // interface: "interface" $@61 ":" "constant string"
+#line 1423 "dhcp4_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2481,8 +2481,8 @@ namespace isc { namespace dhcp {
 #line 2482 "dhcp4_parser.cc"
     break;
 
-  case 380: // $@62: %empty
-#line 1428 "dhcp4_parser.yy"
+  case 381: // $@62: %empty
+#line 1429 "dhcp4_parser.yy"
                            {
     ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2490,8 +2490,8 @@ namespace isc { namespace dhcp {
 #line 2491 "dhcp4_parser.cc"
     break;
 
-  case 381: // client_class: "client-class" $@62 ":" "constant string"
-#line 1431 "dhcp4_parser.yy"
+  case 382: // client_class: "client-class" $@62 ":" "constant string"
+#line 1432 "dhcp4_parser.yy"
                {
     ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
@@ -2500,8 +2500,8 @@ namespace isc { namespace dhcp {
 #line 2501 "dhcp4_parser.cc"
     break;
 
-  case 382: // $@63: %empty
-#line 1437 "dhcp4_parser.yy"
+  case 383: // $@63: %empty
+#line 1438 "dhcp4_parser.yy"
                                                {
     ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2512,8 +2512,8 @@ namespace isc { namespace dhcp {
 #line 2513 "dhcp4_parser.cc"
     break;
 
-  case 383: // require_client_classes: "require-client-classes" $@63 ":" list_strings
-#line 1443 "dhcp4_parser.yy"
+  case 384: // require_client_classes: "require-client-classes" $@63 ":" list_strings
+#line 1444 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2521,8 +2521,8 @@ namespace isc { namespace dhcp {
 #line 2522 "dhcp4_parser.cc"
     break;
 
-  case 384: // $@64: %empty
-#line 1448 "dhcp4_parser.yy"
+  case 385: // $@64: %empty
+#line 1449 "dhcp4_parser.yy"
                                    {
     ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.RESERVATION_MODE);
@@ -2530,8 +2530,8 @@ namespace isc { namespace dhcp {
 #line 2531 "dhcp4_parser.cc"
     break;
 
-  case 385: // reservation_mode: "reservation-mode" $@64 ":" hr_mode
-#line 1451 "dhcp4_parser.yy"
+  case 386: // reservation_mode: "reservation-mode" $@64 ":" hr_mode
+#line 1452 "dhcp4_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2539,32 +2539,32 @@ namespace isc { namespace dhcp {
 #line 2540 "dhcp4_parser.cc"
     break;
 
-  case 386: // hr_mode: "disabled"
-#line 1456 "dhcp4_parser.yy"
+  case 387: // hr_mode: "disabled"
+#line 1457 "dhcp4_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2546 "dhcp4_parser.cc"
     break;
 
-  case 387: // hr_mode: "out-of-pool"
-#line 1457 "dhcp4_parser.yy"
+  case 388: // hr_mode: "out-of-pool"
+#line 1458 "dhcp4_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2552 "dhcp4_parser.cc"
     break;
 
-  case 388: // hr_mode: "global"
-#line 1458 "dhcp4_parser.yy"
+  case 389: // hr_mode: "global"
+#line 1459 "dhcp4_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2558 "dhcp4_parser.cc"
     break;
 
-  case 389: // hr_mode: "all"
-#line 1459 "dhcp4_parser.yy"
+  case 390: // hr_mode: "all"
+#line 1460 "dhcp4_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2564 "dhcp4_parser.cc"
     break;
 
-  case 390: // id: "id" ":" "integer"
-#line 1462 "dhcp4_parser.yy"
+  case 391: // id: "id" ":" "integer"
+#line 1463 "dhcp4_parser.yy"
                      {
     ctx.unique("id", ctx.loc2pos(yystack_[2].location));
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2573,8 +2573,8 @@ namespace isc { namespace dhcp {
 #line 2574 "dhcp4_parser.cc"
     break;
 
-  case 391: // $@65: %empty
-#line 1470 "dhcp4_parser.yy"
+  case 392: // $@65: %empty
+#line 1471 "dhcp4_parser.yy"
                                  {
     ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2585,8 +2585,8 @@ namespace isc { namespace dhcp {
 #line 2586 "dhcp4_parser.cc"
     break;
 
-  case 392: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]"
-#line 1476 "dhcp4_parser.yy"
+  case 393: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]"
+#line 1477 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2594,8 +2594,8 @@ namespace isc { namespace dhcp {
 #line 2595 "dhcp4_parser.cc"
     break;
 
-  case 397: // $@66: %empty
-#line 1491 "dhcp4_parser.yy"
+  case 398: // $@66: %empty
+#line 1492 "dhcp4_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2604,16 +2604,16 @@ namespace isc { namespace dhcp {
 #line 2605 "dhcp4_parser.cc"
     break;
 
-  case 398: // shared_network: "{" $@66 shared_network_params "}"
-#line 1495 "dhcp4_parser.yy"
+  case 399: // shared_network: "{" $@66 shared_network_params "}"
+#line 1496 "dhcp4_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
 #line 2613 "dhcp4_parser.cc"
     break;
 
-  case 436: // $@67: %empty
-#line 1544 "dhcp4_parser.yy"
+  case 438: // $@67: %empty
+#line 1546 "dhcp4_parser.yy"
                             {
     ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2624,8 +2624,8 @@ namespace isc { namespace dhcp {
 #line 2625 "dhcp4_parser.cc"
     break;
 
-  case 437: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]"
-#line 1550 "dhcp4_parser.yy"
+  case 439: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]"
+#line 1552 "dhcp4_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2633,8 +2633,8 @@ namespace isc { namespace dhcp {
 #line 2634 "dhcp4_parser.cc"
     break;
 
-  case 438: // $@68: %empty
-#line 1558 "dhcp4_parser.yy"
+  case 440: // $@68: %empty
+#line 1560 "dhcp4_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2642,16 +2642,16 @@ namespace isc { namespace dhcp {
 #line 2643 "dhcp4_parser.cc"
     break;
 
-  case 439: // sub_option_def_list: "{" $@68 option_def_list "}"
-#line 1561 "dhcp4_parser.yy"
+  case 441: // sub_option_def_list: "{" $@68 option_def_list "}"
+#line 1563 "dhcp4_parser.yy"
                                  {
     // parsing completed
 }
 #line 2651 "dhcp4_parser.cc"
     break;
 
-  case 444: // $@69: %empty
-#line 1577 "dhcp4_parser.yy"
+  case 446: // $@69: %empty
+#line 1579 "dhcp4_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2660,8 +2660,8 @@ namespace isc { namespace dhcp {
 #line 2661 "dhcp4_parser.cc"
     break;
 
-  case 445: // option_def_entry: "{" $@69 option_def_params "}"
-#line 1581 "dhcp4_parser.yy"
+  case 447: // option_def_entry: "{" $@69 option_def_params "}"
+#line 1583 "dhcp4_parser.yy"
                                    {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2672,8 +2672,8 @@ namespace isc { namespace dhcp {
 #line 2673 "dhcp4_parser.cc"
     break;
 
-  case 446: // $@70: %empty
-#line 1592 "dhcp4_parser.yy"
+  case 448: // $@70: %empty
+#line 1594 "dhcp4_parser.yy"
                                {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2682,8 +2682,8 @@ namespace isc { namespace dhcp {
 #line 2683 "dhcp4_parser.cc"
     break;
 
-  case 447: // sub_option_def: "{" $@70 option_def_params "}"
-#line 1596 "dhcp4_parser.yy"
+  case 449: // sub_option_def: "{" $@70 option_def_params "}"
+#line 1598 "dhcp4_parser.yy"
                                    {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2694,8 +2694,8 @@ namespace isc { namespace dhcp {
 #line 2695 "dhcp4_parser.cc"
     break;
 
-  case 463: // code: "code" ":" "integer"
-#line 1628 "dhcp4_parser.yy"
+  case 465: // code: "code" ":" "integer"
+#line 1630 "dhcp4_parser.yy"
                          {
     ctx.unique("code", ctx.loc2pos(yystack_[2].location));
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2704,8 +2704,8 @@ namespace isc { namespace dhcp {
 #line 2705 "dhcp4_parser.cc"
     break;
 
-  case 465: // $@71: %empty
-#line 1636 "dhcp4_parser.yy"
+  case 467: // $@71: %empty
+#line 1638 "dhcp4_parser.yy"
                       {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2713,8 +2713,8 @@ namespace isc { namespace dhcp {
 #line 2714 "dhcp4_parser.cc"
     break;
 
-  case 466: // option_def_type: "type" $@71 ":" "constant string"
-#line 1639 "dhcp4_parser.yy"
+  case 468: // option_def_type: "type" $@71 ":" "constant string"
+#line 1641 "dhcp4_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -2723,8 +2723,8 @@ namespace isc { namespace dhcp {
 #line 2724 "dhcp4_parser.cc"
     break;
 
-  case 467: // $@72: %empty
-#line 1645 "dhcp4_parser.yy"
+  case 469: // $@72: %empty
+#line 1647 "dhcp4_parser.yy"
                                       {
     ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2732,8 +2732,8 @@ namespace isc { namespace dhcp {
 #line 2733 "dhcp4_parser.cc"
     break;
 
-  case 468: // option_def_record_types: "record-types" $@72 ":" "constant string"
-#line 1648 "dhcp4_parser.yy"
+  case 470: // option_def_record_types: "record-types" $@72 ":" "constant string"
+#line 1650 "dhcp4_parser.yy"
                {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
@@ -2742,8 +2742,8 @@ namespace isc { namespace dhcp {
 #line 2743 "dhcp4_parser.cc"
     break;
 
-  case 469: // $@73: %empty
-#line 1654 "dhcp4_parser.yy"
+  case 471: // $@73: %empty
+#line 1656 "dhcp4_parser.yy"
              {
     ctx.unique("space", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2751,8 +2751,8 @@ namespace isc { namespace dhcp {
 #line 2752 "dhcp4_parser.cc"
     break;
 
-  case 470: // space: "space" $@73 ":" "constant string"
-#line 1657 "dhcp4_parser.yy"
+  case 472: // space: "space" $@73 ":" "constant string"
+#line 1659 "dhcp4_parser.yy"
                {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -2761,8 +2761,8 @@ namespace isc { namespace dhcp {
 #line 2762 "dhcp4_parser.cc"
     break;
 
-  case 472: // $@74: %empty
-#line 1665 "dhcp4_parser.yy"
+  case 474: // $@74: %empty
+#line 1667 "dhcp4_parser.yy"
                                     {
     ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2770,8 +2770,8 @@ namespace isc { namespace dhcp {
 #line 2771 "dhcp4_parser.cc"
     break;
 
-  case 473: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string"
-#line 1668 "dhcp4_parser.yy"
+  case 475: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string"
+#line 1670 "dhcp4_parser.yy"
                {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -2780,8 +2780,8 @@ namespace isc { namespace dhcp {
 #line 2781 "dhcp4_parser.cc"
     break;
 
-  case 474: // option_def_array: "array" ":" "boolean"
-#line 1674 "dhcp4_parser.yy"
+  case 476: // option_def_array: "array" ":" "boolean"
+#line 1676 "dhcp4_parser.yy"
                                       {
     ctx.unique("array", ctx.loc2pos(yystack_[2].location));
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2790,8 +2790,8 @@ namespace isc { namespace dhcp {
 #line 2791 "dhcp4_parser.cc"
     break;
 
-  case 475: // $@75: %empty
-#line 1684 "dhcp4_parser.yy"
+  case 477: // $@75: %empty
+#line 1686 "dhcp4_parser.yy"
                               {
     ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2802,8 +2802,8 @@ namespace isc { namespace dhcp {
 #line 2803 "dhcp4_parser.cc"
     break;
 
-  case 476: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]"
-#line 1690 "dhcp4_parser.yy"
+  case 478: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]"
+#line 1692 "dhcp4_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2811,8 +2811,8 @@ namespace isc { namespace dhcp {
 #line 2812 "dhcp4_parser.cc"
     break;
 
-  case 481: // $@76: %empty
-#line 1709 "dhcp4_parser.yy"
+  case 483: // $@76: %empty
+#line 1711 "dhcp4_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2821,8 +2821,8 @@ namespace isc { namespace dhcp {
 #line 2822 "dhcp4_parser.cc"
     break;
 
-  case 482: // option_data_entry: "{" $@76 option_data_params "}"
-#line 1713 "dhcp4_parser.yy"
+  case 484: // option_data_entry: "{" $@76 option_data_params "}"
+#line 1715 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -2830,8 +2830,8 @@ namespace isc { namespace dhcp {
 #line 2831 "dhcp4_parser.cc"
     break;
 
-  case 483: // $@77: %empty
-#line 1721 "dhcp4_parser.yy"
+  case 485: // $@77: %empty
+#line 1723 "dhcp4_parser.yy"
                                 {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2840,8 +2840,8 @@ namespace isc { namespace dhcp {
 #line 2841 "dhcp4_parser.cc"
     break;
 
-  case 484: // sub_option_data: "{" $@77 option_data_params "}"
-#line 1725 "dhcp4_parser.yy"
+  case 486: // sub_option_data: "{" $@77 option_data_params "}"
+#line 1727 "dhcp4_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -2849,8 +2849,8 @@ namespace isc { namespace dhcp {
 #line 2850 "dhcp4_parser.cc"
     break;
 
-  case 499: // $@78: %empty
-#line 1758 "dhcp4_parser.yy"
+  case 501: // $@78: %empty
+#line 1760 "dhcp4_parser.yy"
                        {
     ctx.unique("data", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2858,8 +2858,8 @@ namespace isc { namespace dhcp {
 #line 2859 "dhcp4_parser.cc"
     break;
 
-  case 500: // option_data_data: "data" $@78 ":" "constant string"
-#line 1761 "dhcp4_parser.yy"
+  case 502: // option_data_data: "data" $@78 ":" "constant string"
+#line 1763 "dhcp4_parser.yy"
                {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -2868,8 +2868,8 @@ namespace isc { namespace dhcp {
 #line 2869 "dhcp4_parser.cc"
     break;
 
-  case 503: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 1771 "dhcp4_parser.yy"
+  case 505: // option_data_csv_format: "csv-format" ":" "boolean"
+#line 1773 "dhcp4_parser.yy"
                                                  {
     ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2878,8 +2878,8 @@ namespace isc { namespace dhcp {
 #line 2879 "dhcp4_parser.cc"
     break;
 
-  case 504: // option_data_always_send: "always-send" ":" "boolean"
-#line 1777 "dhcp4_parser.yy"
+  case 506: // option_data_always_send: "always-send" ":" "boolean"
+#line 1779 "dhcp4_parser.yy"
                                                    {
     ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2888,8 +2888,8 @@ namespace isc { namespace dhcp {
 #line 2889 "dhcp4_parser.cc"
     break;
 
-  case 505: // $@79: %empty
-#line 1786 "dhcp4_parser.yy"
+  case 507: // $@79: %empty
+#line 1788 "dhcp4_parser.yy"
                   {
     ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2900,8 +2900,8 @@ namespace isc { namespace dhcp {
 #line 2901 "dhcp4_parser.cc"
     break;
 
-  case 506: // pools_list: "pools" $@79 ":" "[" pools_list_content "]"
-#line 1792 "dhcp4_parser.yy"
+  case 508: // pools_list: "pools" $@79 ":" "[" pools_list_content "]"
+#line 1794 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2909,8 +2909,8 @@ namespace isc { namespace dhcp {
 #line 2910 "dhcp4_parser.cc"
     break;
 
-  case 511: // $@80: %empty
-#line 1807 "dhcp4_parser.yy"
+  case 513: // $@80: %empty
+#line 1809 "dhcp4_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2919,8 +2919,8 @@ namespace isc { namespace dhcp {
 #line 2920 "dhcp4_parser.cc"
     break;
 
-  case 512: // pool_list_entry: "{" $@80 pool_params "}"
-#line 1811 "dhcp4_parser.yy"
+  case 514: // pool_list_entry: "{" $@80 pool_params "}"
+#line 1813 "dhcp4_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2929,8 +2929,8 @@ namespace isc { namespace dhcp {
 #line 2930 "dhcp4_parser.cc"
     break;
 
-  case 513: // $@81: %empty
-#line 1817 "dhcp4_parser.yy"
+  case 515: // $@81: %empty
+#line 1819 "dhcp4_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2939,8 +2939,8 @@ namespace isc { namespace dhcp {
 #line 2940 "dhcp4_parser.cc"
     break;
 
-  case 514: // sub_pool4: "{" $@81 pool_params "}"
-#line 1821 "dhcp4_parser.yy"
+  case 516: // sub_pool4: "{" $@81 pool_params "}"
+#line 1823 "dhcp4_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2949,8 +2949,8 @@ namespace isc { namespace dhcp {
 #line 2950 "dhcp4_parser.cc"
     break;
 
-  case 524: // $@82: %empty
-#line 1840 "dhcp4_parser.yy"
+  case 526: // $@82: %empty
+#line 1842 "dhcp4_parser.yy"
                  {
     ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2958,8 +2958,8 @@ namespace isc { namespace dhcp {
 #line 2959 "dhcp4_parser.cc"
     break;
 
-  case 525: // pool_entry: "pool" $@82 ":" "constant string"
-#line 1843 "dhcp4_parser.yy"
+  case 527: // pool_entry: "pool" $@82 ":" "constant string"
+#line 1845 "dhcp4_parser.yy"
                {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -2968,16 +2968,16 @@ namespace isc { namespace dhcp {
 #line 2969 "dhcp4_parser.cc"
     break;
 
-  case 526: // $@83: %empty
-#line 1849 "dhcp4_parser.yy"
+  case 528: // $@83: %empty
+#line 1851 "dhcp4_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2977 "dhcp4_parser.cc"
     break;
 
-  case 527: // user_context: "user-context" $@83 ":" map_value
-#line 1851 "dhcp4_parser.yy"
+  case 529: // user_context: "user-context" $@83 ":" map_value
+#line 1853 "dhcp4_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -3003,16 +3003,16 @@ namespace isc { namespace dhcp {
 #line 3004 "dhcp4_parser.cc"
     break;
 
-  case 528: // $@84: %empty
-#line 1874 "dhcp4_parser.yy"
+  case 530: // $@84: %empty
+#line 1876 "dhcp4_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3012 "dhcp4_parser.cc"
     break;
 
-  case 529: // comment: "comment" $@84 ":" "constant string"
-#line 1876 "dhcp4_parser.yy"
+  case 531: // comment: "comment" $@84 ":" "constant string"
+#line 1878 "dhcp4_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -3040,8 +3040,8 @@ namespace isc { namespace dhcp {
 #line 3041 "dhcp4_parser.cc"
     break;
 
-  case 530: // $@85: %empty
-#line 1904 "dhcp4_parser.yy"
+  case 532: // $@85: %empty
+#line 1906 "dhcp4_parser.yy"
                            {
     ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3052,8 +3052,8 @@ namespace isc { namespace dhcp {
 #line 3053 "dhcp4_parser.cc"
     break;
 
-  case 531: // reservations: "reservations" $@85 ":" "[" reservations_list "]"
-#line 1910 "dhcp4_parser.yy"
+  case 533: // reservations: "reservations" $@85 ":" "[" reservations_list "]"
+#line 1912 "dhcp4_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3061,8 +3061,8 @@ namespace isc { namespace dhcp {
 #line 3062 "dhcp4_parser.cc"
     break;
 
-  case 536: // $@86: %empty
-#line 1923 "dhcp4_parser.yy"
+  case 538: // $@86: %empty
+#line 1925 "dhcp4_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3071,8 +3071,8 @@ namespace isc { namespace dhcp {
 #line 3072 "dhcp4_parser.cc"
     break;
 
-  case 537: // reservation: "{" $@86 reservation_params "}"
-#line 1927 "dhcp4_parser.yy"
+  case 539: // reservation: "{" $@86 reservation_params "}"
+#line 1929 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -3080,8 +3080,8 @@ namespace isc { namespace dhcp {
 #line 3081 "dhcp4_parser.cc"
     break;
 
-  case 538: // $@87: %empty
-#line 1932 "dhcp4_parser.yy"
+  case 540: // $@87: %empty
+#line 1934 "dhcp4_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3090,8 +3090,8 @@ namespace isc { namespace dhcp {
 #line 3091 "dhcp4_parser.cc"
     break;
 
-  case 539: // sub_reservation: "{" $@87 reservation_params "}"
-#line 1936 "dhcp4_parser.yy"
+  case 541: // sub_reservation: "{" $@87 reservation_params "}"
+#line 1938 "dhcp4_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -3099,8 +3099,8 @@ namespace isc { namespace dhcp {
 #line 3100 "dhcp4_parser.cc"
     break;
 
-  case 559: // $@88: %empty
-#line 1967 "dhcp4_parser.yy"
+  case 561: // $@88: %empty
+#line 1969 "dhcp4_parser.yy"
                          {
     ctx.unique("next-server", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3108,8 +3108,8 @@ namespace isc { namespace dhcp {
 #line 3109 "dhcp4_parser.cc"
     break;
 
-  case 560: // next_server: "next-server" $@88 ":" "constant string"
-#line 1970 "dhcp4_parser.yy"
+  case 562: // next_server: "next-server" $@88 ":" "constant string"
+#line 1972 "dhcp4_parser.yy"
                {
     ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("next-server", next_server);
@@ -3118,8 +3118,8 @@ namespace isc { namespace dhcp {
 #line 3119 "dhcp4_parser.cc"
     break;
 
-  case 561: // $@89: %empty
-#line 1976 "dhcp4_parser.yy"
+  case 563: // $@89: %empty
+#line 1978 "dhcp4_parser.yy"
                                  {
     ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3127,8 +3127,8 @@ namespace isc { namespace dhcp {
 #line 3128 "dhcp4_parser.cc"
     break;
 
-  case 562: // server_hostname: "server-hostname" $@89 ":" "constant string"
-#line 1979 "dhcp4_parser.yy"
+  case 564: // server_hostname: "server-hostname" $@89 ":" "constant string"
+#line 1981 "dhcp4_parser.yy"
                {
     ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-hostname", srv);
@@ -3137,8 +3137,8 @@ namespace isc { namespace dhcp {
 #line 3138 "dhcp4_parser.cc"
     break;
 
-  case 563: // $@90: %empty
-#line 1985 "dhcp4_parser.yy"
+  case 565: // $@90: %empty
+#line 1987 "dhcp4_parser.yy"
                                {
     ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3146,8 +3146,8 @@ namespace isc { namespace dhcp {
 #line 3147 "dhcp4_parser.cc"
     break;
 
-  case 564: // boot_file_name: "boot-file-name" $@90 ":" "constant string"
-#line 1988 "dhcp4_parser.yy"
+  case 566: // boot_file_name: "boot-file-name" $@90 ":" "constant string"
+#line 1990 "dhcp4_parser.yy"
                {
     ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("boot-file-name", bootfile);
@@ -3156,8 +3156,8 @@ namespace isc { namespace dhcp {
 #line 3157 "dhcp4_parser.cc"
     break;
 
-  case 565: // $@91: %empty
-#line 1994 "dhcp4_parser.yy"
+  case 567: // $@91: %empty
+#line 1996 "dhcp4_parser.yy"
                        {
     ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3165,8 +3165,8 @@ namespace isc { namespace dhcp {
 #line 3166 "dhcp4_parser.cc"
     break;
 
-  case 566: // ip_address: "ip-address" $@91 ":" "constant string"
-#line 1997 "dhcp4_parser.yy"
+  case 568: // ip_address: "ip-address" $@91 ":" "constant string"
+#line 1999 "dhcp4_parser.yy"
                {
     ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
@@ -3175,8 +3175,8 @@ namespace isc { namespace dhcp {
 #line 3176 "dhcp4_parser.cc"
     break;
 
-  case 567: // $@92: %empty
-#line 2003 "dhcp4_parser.yy"
+  case 569: // $@92: %empty
+#line 2005 "dhcp4_parser.yy"
                            {
     ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3187,8 +3187,8 @@ namespace isc { namespace dhcp {
 #line 3188 "dhcp4_parser.cc"
     break;
 
-  case 568: // ip_addresses: "ip-addresses" $@92 ":" list_strings
-#line 2009 "dhcp4_parser.yy"
+  case 570: // ip_addresses: "ip-addresses" $@92 ":" list_strings
+#line 2011 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3196,8 +3196,8 @@ namespace isc { namespace dhcp {
 #line 3197 "dhcp4_parser.cc"
     break;
 
-  case 569: // $@93: %empty
-#line 2014 "dhcp4_parser.yy"
+  case 571: // $@93: %empty
+#line 2016 "dhcp4_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3205,8 +3205,8 @@ namespace isc { namespace dhcp {
 #line 3206 "dhcp4_parser.cc"
     break;
 
-  case 570: // duid: "duid" $@93 ":" "constant string"
-#line 2017 "dhcp4_parser.yy"
+  case 572: // duid: "duid" $@93 ":" "constant string"
+#line 2019 "dhcp4_parser.yy"
                {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -3215,8 +3215,8 @@ namespace isc { namespace dhcp {
 #line 3216 "dhcp4_parser.cc"
     break;
 
-  case 571: // $@94: %empty
-#line 2023 "dhcp4_parser.yy"
+  case 573: // $@94: %empty
+#line 2025 "dhcp4_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3224,8 +3224,8 @@ namespace isc { namespace dhcp {
 #line 3225 "dhcp4_parser.cc"
     break;
 
-  case 572: // hw_address: "hw-address" $@94 ":" "constant string"
-#line 2026 "dhcp4_parser.yy"
+  case 574: // hw_address: "hw-address" $@94 ":" "constant string"
+#line 2028 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
@@ -3234,8 +3234,8 @@ namespace isc { namespace dhcp {
 #line 3235 "dhcp4_parser.cc"
     break;
 
-  case 573: // $@95: %empty
-#line 2032 "dhcp4_parser.yy"
+  case 575: // $@95: %empty
+#line 2034 "dhcp4_parser.yy"
                            {
     ctx.unique("client-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3243,8 +3243,8 @@ namespace isc { namespace dhcp {
 #line 3244 "dhcp4_parser.cc"
     break;
 
-  case 574: // client_id_value: "client-id" $@95 ":" "constant string"
-#line 2035 "dhcp4_parser.yy"
+  case 576: // client_id_value: "client-id" $@95 ":" "constant string"
+#line 2037 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-id", hw);
@@ -3253,8 +3253,8 @@ namespace isc { namespace dhcp {
 #line 3254 "dhcp4_parser.cc"
     break;
 
-  case 575: // $@96: %empty
-#line 2041 "dhcp4_parser.yy"
+  case 577: // $@96: %empty
+#line 2043 "dhcp4_parser.yy"
                              {
     ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3262,8 +3262,8 @@ namespace isc { namespace dhcp {
 #line 3263 "dhcp4_parser.cc"
     break;
 
-  case 576: // circuit_id_value: "circuit-id" $@96 ":" "constant string"
-#line 2044 "dhcp4_parser.yy"
+  case 578: // circuit_id_value: "circuit-id" $@96 ":" "constant string"
+#line 2046 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("circuit-id", hw);
@@ -3272,8 +3272,8 @@ namespace isc { namespace dhcp {
 #line 3273 "dhcp4_parser.cc"
     break;
 
-  case 577: // $@97: %empty
-#line 2050 "dhcp4_parser.yy"
+  case 579: // $@97: %empty
+#line 2052 "dhcp4_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3281,8 +3281,8 @@ namespace isc { namespace dhcp {
 #line 3282 "dhcp4_parser.cc"
     break;
 
-  case 578: // flex_id_value: "flex-id" $@97 ":" "constant string"
-#line 2053 "dhcp4_parser.yy"
+  case 580: // flex_id_value: "flex-id" $@97 ":" "constant string"
+#line 2055 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
@@ -3291,8 +3291,8 @@ namespace isc { namespace dhcp {
 #line 3292 "dhcp4_parser.cc"
     break;
 
-  case 579: // $@98: %empty
-#line 2059 "dhcp4_parser.yy"
+  case 581: // $@98: %empty
+#line 2061 "dhcp4_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3300,8 +3300,8 @@ namespace isc { namespace dhcp {
 #line 3301 "dhcp4_parser.cc"
     break;
 
-  case 580: // hostname: "hostname" $@98 ":" "constant string"
-#line 2062 "dhcp4_parser.yy"
+  case 582: // hostname: "hostname" $@98 ":" "constant string"
+#line 2064 "dhcp4_parser.yy"
                {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -3310,8 +3310,8 @@ namespace isc { namespace dhcp {
 #line 3311 "dhcp4_parser.cc"
     break;
 
-  case 581: // $@99: %empty
-#line 2068 "dhcp4_parser.yy"
+  case 583: // $@99: %empty
+#line 2070 "dhcp4_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3322,8 +3322,8 @@ namespace isc { namespace dhcp {
 #line 3323 "dhcp4_parser.cc"
     break;
 
-  case 582: // reservation_client_classes: "client-classes" $@99 ":" list_strings
-#line 2074 "dhcp4_parser.yy"
+  case 584: // reservation_client_classes: "client-classes" $@99 ":" list_strings
+#line 2076 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3331,8 +3331,8 @@ namespace isc { namespace dhcp {
 #line 3332 "dhcp4_parser.cc"
     break;
 
-  case 583: // $@100: %empty
-#line 2082 "dhcp4_parser.yy"
+  case 585: // $@100: %empty
+#line 2084 "dhcp4_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3343,8 +3343,8 @@ namespace isc { namespace dhcp {
 #line 3344 "dhcp4_parser.cc"
     break;
 
-  case 584: // relay: "relay" $@100 ":" "{" relay_map "}"
-#line 2088 "dhcp4_parser.yy"
+  case 586: // relay: "relay" $@100 ":" "{" relay_map "}"
+#line 2090 "dhcp4_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3352,8 +3352,8 @@ namespace isc { namespace dhcp {
 #line 3353 "dhcp4_parser.cc"
     break;
 
-  case 587: // $@101: %empty
-#line 2100 "dhcp4_parser.yy"
+  case 589: // $@101: %empty
+#line 2102 "dhcp4_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3364,8 +3364,8 @@ namespace isc { namespace dhcp {
 #line 3365 "dhcp4_parser.cc"
     break;
 
-  case 588: // client_classes: "client-classes" $@101 ":" "[" client_classes_list "]"
-#line 2106 "dhcp4_parser.yy"
+  case 590: // client_classes: "client-classes" $@101 ":" "[" client_classes_list "]"
+#line 2108 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3373,8 +3373,8 @@ namespace isc { namespace dhcp {
 #line 3374 "dhcp4_parser.cc"
     break;
 
-  case 591: // $@102: %empty
-#line 2115 "dhcp4_parser.yy"
+  case 593: // $@102: %empty
+#line 2117 "dhcp4_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3383,8 +3383,8 @@ namespace isc { namespace dhcp {
 #line 3384 "dhcp4_parser.cc"
     break;
 
-  case 592: // client_class_entry: "{" $@102 client_class_params "}"
-#line 2119 "dhcp4_parser.yy"
+  case 594: // client_class_entry: "{" $@102 client_class_params "}"
+#line 2121 "dhcp4_parser.yy"
                                      {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3393,8 +3393,8 @@ namespace isc { namespace dhcp {
 #line 3394 "dhcp4_parser.cc"
     break;
 
-  case 609: // $@103: %empty
-#line 2148 "dhcp4_parser.yy"
+  case 611: // $@103: %empty
+#line 2150 "dhcp4_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3402,8 +3402,8 @@ namespace isc { namespace dhcp {
 #line 3403 "dhcp4_parser.cc"
     break;
 
-  case 610: // client_class_test: "test" $@103 ":" "constant string"
-#line 2151 "dhcp4_parser.yy"
+  case 612: // client_class_test: "test" $@103 ":" "constant string"
+#line 2153 "dhcp4_parser.yy"
                {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -3412,8 +3412,8 @@ namespace isc { namespace dhcp {
 #line 3413 "dhcp4_parser.cc"
     break;
 
-  case 611: // only_if_required: "only-if-required" ":" "boolean"
-#line 2157 "dhcp4_parser.yy"
+  case 613: // only_if_required: "only-if-required" ":" "boolean"
+#line 2159 "dhcp4_parser.yy"
                                                  {
     ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3422,8 +3422,8 @@ namespace isc { namespace dhcp {
 #line 3423 "dhcp4_parser.cc"
     break;
 
-  case 612: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2165 "dhcp4_parser.yy"
+  case 614: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2167 "dhcp4_parser.yy"
                                          {
     ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3432,8 +3432,8 @@ namespace isc { namespace dhcp {
 #line 3433 "dhcp4_parser.cc"
     break;
 
-  case 613: // $@104: %empty
-#line 2173 "dhcp4_parser.yy"
+  case 615: // $@104: %empty
+#line 2175 "dhcp4_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3444,8 +3444,8 @@ namespace isc { namespace dhcp {
 #line 3445 "dhcp4_parser.cc"
     break;
 
-  case 614: // control_socket: "control-socket" $@104 ":" "{" control_socket_params "}"
-#line 2179 "dhcp4_parser.yy"
+  case 616: // control_socket: "control-socket" $@104 ":" "{" control_socket_params "}"
+#line 2181 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3453,8 +3453,8 @@ namespace isc { namespace dhcp {
 #line 3454 "dhcp4_parser.cc"
     break;
 
-  case 622: // $@105: %empty
-#line 2195 "dhcp4_parser.yy"
+  case 624: // $@105: %empty
+#line 2197 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3462,8 +3462,8 @@ namespace isc { namespace dhcp {
 #line 3463 "dhcp4_parser.cc"
     break;
 
-  case 623: // control_socket_type: "socket-type" $@105 ":" "constant string"
-#line 2198 "dhcp4_parser.yy"
+  case 625: // control_socket_type: "socket-type" $@105 ":" "constant string"
+#line 2200 "dhcp4_parser.yy"
                {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -3472,8 +3472,8 @@ namespace isc { namespace dhcp {
 #line 3473 "dhcp4_parser.cc"
     break;
 
-  case 624: // $@106: %empty
-#line 2204 "dhcp4_parser.yy"
+  case 626: // $@106: %empty
+#line 2206 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3481,8 +3481,8 @@ namespace isc { namespace dhcp {
 #line 3482 "dhcp4_parser.cc"
     break;
 
-  case 625: // control_socket_name: "socket-name" $@106 ":" "constant string"
-#line 2207 "dhcp4_parser.yy"
+  case 627: // control_socket_name: "socket-name" $@106 ":" "constant string"
+#line 2209 "dhcp4_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -3491,8 +3491,8 @@ namespace isc { namespace dhcp {
 #line 3492 "dhcp4_parser.cc"
     break;
 
-  case 626: // $@107: %empty
-#line 2216 "dhcp4_parser.yy"
+  case 628: // $@107: %empty
+#line 2218 "dhcp4_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3503,8 +3503,8 @@ namespace isc { namespace dhcp {
 #line 3504 "dhcp4_parser.cc"
     break;
 
-  case 627: // dhcp_queue_control: "dhcp-queue-control" $@107 ":" "{" queue_control_params "}"
-#line 2222 "dhcp4_parser.yy"
+  case 629: // dhcp_queue_control: "dhcp-queue-control" $@107 ":" "{" queue_control_params "}"
+#line 2224 "dhcp4_parser.yy"
                                                            {
     // The enable queue parameter is required.
     ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3514,8 +3514,8 @@ namespace isc { namespace dhcp {
 #line 3515 "dhcp4_parser.cc"
     break;
 
-  case 636: // enable_queue: "enable-queue" ":" "boolean"
-#line 2241 "dhcp4_parser.yy"
+  case 638: // enable_queue: "enable-queue" ":" "boolean"
+#line 2243 "dhcp4_parser.yy"
                                          {
     ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3524,8 +3524,8 @@ namespace isc { namespace dhcp {
 #line 3525 "dhcp4_parser.cc"
     break;
 
-  case 637: // $@108: %empty
-#line 2247 "dhcp4_parser.yy"
+  case 639: // $@108: %empty
+#line 2249 "dhcp4_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3533,8 +3533,8 @@ namespace isc { namespace dhcp {
 #line 3534 "dhcp4_parser.cc"
     break;
 
-  case 638: // queue_type: "queue-type" $@108 ":" "constant string"
-#line 2250 "dhcp4_parser.yy"
+  case 640: // queue_type: "queue-type" $@108 ":" "constant string"
+#line 2252 "dhcp4_parser.yy"
                {
     ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("queue-type", qt);
@@ -3543,8 +3543,8 @@ namespace isc { namespace dhcp {
 #line 3544 "dhcp4_parser.cc"
     break;
 
-  case 639: // capacity: "capacity" ":" "integer"
-#line 2256 "dhcp4_parser.yy"
+  case 641: // capacity: "capacity" ":" "integer"
+#line 2258 "dhcp4_parser.yy"
                                  {
     ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3553,8 +3553,8 @@ namespace isc { namespace dhcp {
 #line 3554 "dhcp4_parser.cc"
     break;
 
-  case 640: // $@109: %empty
-#line 2262 "dhcp4_parser.yy"
+  case 642: // $@109: %empty
+#line 2264 "dhcp4_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3562,8 +3562,8 @@ namespace isc { namespace dhcp {
 #line 3563 "dhcp4_parser.cc"
     break;
 
-  case 641: // arbitrary_map_entry: "constant string" $@109 ":" value
-#line 2265 "dhcp4_parser.yy"
+  case 643: // arbitrary_map_entry: "constant string" $@109 ":" value
+#line 2267 "dhcp4_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3571,8 +3571,8 @@ namespace isc { namespace dhcp {
 #line 3572 "dhcp4_parser.cc"
     break;
 
-  case 642: // $@110: %empty
-#line 2272 "dhcp4_parser.yy"
+  case 644: // $@110: %empty
+#line 2274 "dhcp4_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3583,8 +3583,8 @@ namespace isc { namespace dhcp {
 #line 3584 "dhcp4_parser.cc"
     break;
 
-  case 643: // dhcp_ddns: "dhcp-ddns" $@110 ":" "{" dhcp_ddns_params "}"
-#line 2278 "dhcp4_parser.yy"
+  case 645: // dhcp_ddns: "dhcp-ddns" $@110 ":" "{" dhcp_ddns_params "}"
+#line 2280 "dhcp4_parser.yy"
                                                        {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3594,8 +3594,8 @@ namespace isc { namespace dhcp {
 #line 3595 "dhcp4_parser.cc"
     break;
 
-  case 644: // $@111: %empty
-#line 2285 "dhcp4_parser.yy"
+  case 646: // $@111: %empty
+#line 2287 "dhcp4_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3604,8 +3604,8 @@ namespace isc { namespace dhcp {
 #line 3605 "dhcp4_parser.cc"
     break;
 
-  case 645: // sub_dhcp_ddns: "{" $@111 dhcp_ddns_params "}"
-#line 2289 "dhcp4_parser.yy"
+  case 647: // sub_dhcp_ddns: "{" $@111 dhcp_ddns_params "}"
+#line 2291 "dhcp4_parser.yy"
                                   {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3614,8 +3614,8 @@ namespace isc { namespace dhcp {
 #line 3615 "dhcp4_parser.cc"
     break;
 
-  case 666: // enable_updates: "enable-updates" ":" "boolean"
-#line 2319 "dhcp4_parser.yy"
+  case 668: // enable_updates: "enable-updates" ":" "boolean"
+#line 2321 "dhcp4_parser.yy"
                                              {
     ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3624,8 +3624,8 @@ namespace isc { namespace dhcp {
 #line 3625 "dhcp4_parser.cc"
     break;
 
-  case 667: // $@112: %empty
-#line 2325 "dhcp4_parser.yy"
+  case 669: // $@112: %empty
+#line 2327 "dhcp4_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3633,8 +3633,8 @@ namespace isc { namespace dhcp {
 #line 3634 "dhcp4_parser.cc"
     break;
 
-  case 668: // server_ip: "server-ip" $@112 ":" "constant string"
-#line 2328 "dhcp4_parser.yy"
+  case 670: // server_ip: "server-ip" $@112 ":" "constant string"
+#line 2330 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3643,8 +3643,8 @@ namespace isc { namespace dhcp {
 #line 3644 "dhcp4_parser.cc"
     break;
 
-  case 669: // server_port: "server-port" ":" "integer"
-#line 2334 "dhcp4_parser.yy"
+  case 671: // server_port: "server-port" ":" "integer"
+#line 2336 "dhcp4_parser.yy"
                                        {
     ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3653,8 +3653,8 @@ namespace isc { namespace dhcp {
 #line 3654 "dhcp4_parser.cc"
     break;
 
-  case 670: // $@113: %empty
-#line 2340 "dhcp4_parser.yy"
+  case 672: // $@113: %empty
+#line 2342 "dhcp4_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3662,8 +3662,8 @@ namespace isc { namespace dhcp {
 #line 3663 "dhcp4_parser.cc"
     break;
 
-  case 671: // sender_ip: "sender-ip" $@113 ":" "constant string"
-#line 2343 "dhcp4_parser.yy"
+  case 673: // sender_ip: "sender-ip" $@113 ":" "constant string"
+#line 2345 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3672,8 +3672,8 @@ namespace isc { namespace dhcp {
 #line 3673 "dhcp4_parser.cc"
     break;
 
-  case 672: // sender_port: "sender-port" ":" "integer"
-#line 2349 "dhcp4_parser.yy"
+  case 674: // sender_port: "sender-port" ":" "integer"
+#line 2351 "dhcp4_parser.yy"
                                        {
     ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3682,8 +3682,8 @@ namespace isc { namespace dhcp {
 #line 3683 "dhcp4_parser.cc"
     break;
 
-  case 673: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2355 "dhcp4_parser.yy"
+  case 675: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2357 "dhcp4_parser.yy"
                                              {
     ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3692,8 +3692,8 @@ namespace isc { namespace dhcp {
 #line 3693 "dhcp4_parser.cc"
     break;
 
-  case 674: // $@114: %empty
-#line 2361 "dhcp4_parser.yy"
+  case 676: // $@114: %empty
+#line 2363 "dhcp4_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
@@ -3701,8 +3701,8 @@ namespace isc { namespace dhcp {
 #line 3702 "dhcp4_parser.cc"
     break;
 
-  case 675: // ncr_protocol: "ncr-protocol" $@114 ":" ncr_protocol_value
-#line 2364 "dhcp4_parser.yy"
+  case 677: // ncr_protocol: "ncr-protocol" $@114 ":" ncr_protocol_value
+#line 2366 "dhcp4_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3710,20 +3710,20 @@ namespace isc { namespace dhcp {
 #line 3711 "dhcp4_parser.cc"
     break;
 
-  case 676: // ncr_protocol_value: "udp"
-#line 2370 "dhcp4_parser.yy"
+  case 678: // ncr_protocol_value: "udp"
+#line 2372 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3717 "dhcp4_parser.cc"
     break;
 
-  case 677: // ncr_protocol_value: "tcp"
-#line 2371 "dhcp4_parser.yy"
+  case 679: // ncr_protocol_value: "tcp"
+#line 2373 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3723 "dhcp4_parser.cc"
     break;
 
-  case 678: // $@115: %empty
-#line 2374 "dhcp4_parser.yy"
+  case 680: // $@115: %empty
+#line 2376 "dhcp4_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
@@ -3731,8 +3731,8 @@ namespace isc { namespace dhcp {
 #line 3732 "dhcp4_parser.cc"
     break;
 
-  case 679: // ncr_format: "ncr-format" $@115 ":" "JSON"
-#line 2377 "dhcp4_parser.yy"
+  case 681: // ncr_format: "ncr-format" $@115 ":" "JSON"
+#line 2379 "dhcp4_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3741,8 +3741,8 @@ namespace isc { namespace dhcp {
 #line 3742 "dhcp4_parser.cc"
     break;
 
-  case 680: // $@116: %empty
-#line 2384 "dhcp4_parser.yy"
+  case 682: // $@116: %empty
+#line 2386 "dhcp4_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3750,8 +3750,8 @@ namespace isc { namespace dhcp {
 #line 3751 "dhcp4_parser.cc"
     break;
 
-  case 681: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string"
-#line 2387 "dhcp4_parser.yy"
+  case 683: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string"
+#line 2389 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3760,8 +3760,8 @@ namespace isc { namespace dhcp {
 #line 3761 "dhcp4_parser.cc"
     break;
 
-  case 682: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2394 "dhcp4_parser.yy"
+  case 684: // dep_override_no_update: "override-no-update" ":" "boolean"
+#line 2396 "dhcp4_parser.yy"
                                                          {
     ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3770,8 +3770,8 @@ namespace isc { namespace dhcp {
 #line 3771 "dhcp4_parser.cc"
     break;
 
-  case 683: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2401 "dhcp4_parser.yy"
+  case 685: // dep_override_client_update: "override-client-update" ":" "boolean"
+#line 2403 "dhcp4_parser.yy"
                                                                  {
     ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3780,8 +3780,8 @@ namespace isc { namespace dhcp {
 #line 3781 "dhcp4_parser.cc"
     break;
 
-  case 684: // $@117: %empty
-#line 2408 "dhcp4_parser.yy"
+  case 686: // $@117: %empty
+#line 2410 "dhcp4_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -3789,8 +3789,8 @@ namespace isc { namespace dhcp {
 #line 3790 "dhcp4_parser.cc"
     break;
 
-  case 685: // dep_replace_client_name: "replace-client-name" $@117 ":" ddns_replace_client_name_value
-#line 2411 "dhcp4_parser.yy"
+  case 687: // dep_replace_client_name: "replace-client-name" $@117 ":" ddns_replace_client_name_value
+#line 2413 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3798,8 +3798,8 @@ namespace isc { namespace dhcp {
 #line 3799 "dhcp4_parser.cc"
     break;
 
-  case 686: // $@118: %empty
-#line 2417 "dhcp4_parser.yy"
+  case 688: // $@118: %empty
+#line 2419 "dhcp4_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3807,8 +3807,8 @@ namespace isc { namespace dhcp {
 #line 3808 "dhcp4_parser.cc"
     break;
 
-  case 687: // dep_generated_prefix: "generated-prefix" $@118 ":" "constant string"
-#line 2420 "dhcp4_parser.yy"
+  case 689: // dep_generated_prefix: "generated-prefix" $@118 ":" "constant string"
+#line 2422 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
@@ -3817,8 +3817,8 @@ namespace isc { namespace dhcp {
 #line 3818 "dhcp4_parser.cc"
     break;
 
-  case 688: // $@119: %empty
-#line 2427 "dhcp4_parser.yy"
+  case 690: // $@119: %empty
+#line 2429 "dhcp4_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3826,8 +3826,8 @@ namespace isc { namespace dhcp {
 #line 3827 "dhcp4_parser.cc"
     break;
 
-  case 689: // dep_hostname_char_set: "hostname-char-set" $@119 ":" "constant string"
-#line 2430 "dhcp4_parser.yy"
+  case 691: // dep_hostname_char_set: "hostname-char-set" $@119 ":" "constant string"
+#line 2432 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
@@ -3836,8 +3836,8 @@ namespace isc { namespace dhcp {
 #line 3837 "dhcp4_parser.cc"
     break;
 
-  case 690: // $@120: %empty
-#line 2437 "dhcp4_parser.yy"
+  case 692: // $@120: %empty
+#line 2439 "dhcp4_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3845,8 +3845,8 @@ namespace isc { namespace dhcp {
 #line 3846 "dhcp4_parser.cc"
     break;
 
-  case 691: // dep_hostname_char_replacement: "hostname-char-replacement" $@120 ":" "constant string"
-#line 2440 "dhcp4_parser.yy"
+  case 693: // dep_hostname_char_replacement: "hostname-char-replacement" $@120 ":" "constant string"
+#line 2442 "dhcp4_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
@@ -3855,8 +3855,8 @@ namespace isc { namespace dhcp {
 #line 3856 "dhcp4_parser.cc"
     break;
 
-  case 692: // $@121: %empty
-#line 2449 "dhcp4_parser.yy"
+  case 694: // $@121: %empty
+#line 2451 "dhcp4_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3867,8 +3867,8 @@ namespace isc { namespace dhcp {
 #line 3868 "dhcp4_parser.cc"
     break;
 
-  case 693: // config_control: "config-control" $@121 ":" "{" config_control_params "}"
-#line 2455 "dhcp4_parser.yy"
+  case 695: // config_control: "config-control" $@121 ":" "{" config_control_params "}"
+#line 2457 "dhcp4_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -3877,8 +3877,8 @@ namespace isc { namespace dhcp {
 #line 3878 "dhcp4_parser.cc"
     break;
 
-  case 694: // $@122: %empty
-#line 2461 "dhcp4_parser.yy"
+  case 696: // $@122: %empty
+#line 2463 "dhcp4_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3887,8 +3887,8 @@ namespace isc { namespace dhcp {
 #line 3888 "dhcp4_parser.cc"
     break;
 
-  case 695: // sub_config_control: "{" $@122 config_control_params "}"
-#line 2465 "dhcp4_parser.yy"
+  case 697: // sub_config_control: "{" $@122 config_control_params "}"
+#line 2467 "dhcp4_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
@@ -3896,8 +3896,8 @@ namespace isc { namespace dhcp {
 #line 3897 "dhcp4_parser.cc"
     break;
 
-  case 700: // $@123: %empty
-#line 2480 "dhcp4_parser.yy"
+  case 702: // $@123: %empty
+#line 2482 "dhcp4_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3908,8 +3908,8 @@ namespace isc { namespace dhcp {
 #line 3909 "dhcp4_parser.cc"
     break;
 
-  case 701: // config_databases: "config-databases" $@123 ":" "[" database_list "]"
-#line 2486 "dhcp4_parser.yy"
+  case 703: // config_databases: "config-databases" $@123 ":" "[" database_list "]"
+#line 2488 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3917,8 +3917,8 @@ namespace isc { namespace dhcp {
 #line 3918 "dhcp4_parser.cc"
     break;
 
-  case 702: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2491 "dhcp4_parser.yy"
+  case 704: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 2493 "dhcp4_parser.yy"
                                                              {
     ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3927,8 +3927,8 @@ namespace isc { namespace dhcp {
 #line 3928 "dhcp4_parser.cc"
     break;
 
-  case 703: // $@124: %empty
-#line 2499 "dhcp4_parser.yy"
+  case 705: // $@124: %empty
+#line 2501 "dhcp4_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3939,8 +3939,8 @@ namespace isc { namespace dhcp {
 #line 3940 "dhcp4_parser.cc"
     break;
 
-  case 704: // loggers: "loggers" $@124 ":" "[" loggers_entries "]"
-#line 2505 "dhcp4_parser.yy"
+  case 706: // loggers: "loggers" $@124 ":" "[" loggers_entries "]"
+#line 2507 "dhcp4_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3948,8 +3948,8 @@ namespace isc { namespace dhcp {
 #line 3949 "dhcp4_parser.cc"
     break;
 
-  case 707: // $@125: %empty
-#line 2517 "dhcp4_parser.yy"
+  case 709: // $@125: %empty
+#line 2519 "dhcp4_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -3958,16 +3958,16 @@ namespace isc { namespace dhcp {
 #line 3959 "dhcp4_parser.cc"
     break;
 
-  case 708: // logger_entry: "{" $@125 logger_params "}"
-#line 2521 "dhcp4_parser.yy"
+  case 710: // logger_entry: "{" $@125 logger_params "}"
+#line 2523 "dhcp4_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
 #line 3967 "dhcp4_parser.cc"
     break;
 
-  case 718: // debuglevel: "debuglevel" ":" "integer"
-#line 2538 "dhcp4_parser.yy"
+  case 720: // debuglevel: "debuglevel" ":" "integer"
+#line 2540 "dhcp4_parser.yy"
                                      {
     ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3976,8 +3976,8 @@ namespace isc { namespace dhcp {
 #line 3977 "dhcp4_parser.cc"
     break;
 
-  case 719: // $@126: %empty
-#line 2544 "dhcp4_parser.yy"
+  case 721: // $@126: %empty
+#line 2546 "dhcp4_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3985,8 +3985,8 @@ namespace isc { namespace dhcp {
 #line 3986 "dhcp4_parser.cc"
     break;
 
-  case 720: // severity: "severity" $@126 ":" "constant string"
-#line 2547 "dhcp4_parser.yy"
+  case 722: // severity: "severity" $@126 ":" "constant string"
+#line 2549 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -3995,8 +3995,8 @@ namespace isc { namespace dhcp {
 #line 3996 "dhcp4_parser.cc"
     break;
 
-  case 721: // $@127: %empty
-#line 2553 "dhcp4_parser.yy"
+  case 723: // $@127: %empty
+#line 2555 "dhcp4_parser.yy"
                                     {
     ctx.unique("output_options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4007,8 +4007,8 @@ namespace isc { namespace dhcp {
 #line 4008 "dhcp4_parser.cc"
     break;
 
-  case 722: // output_options_list: "output_options" $@127 ":" "[" output_options_list_content "]"
-#line 2559 "dhcp4_parser.yy"
+  case 724: // output_options_list: "output_options" $@127 ":" "[" output_options_list_content "]"
+#line 2561 "dhcp4_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4016,8 +4016,8 @@ namespace isc { namespace dhcp {
 #line 4017 "dhcp4_parser.cc"
     break;
 
-  case 725: // $@128: %empty
-#line 2568 "dhcp4_parser.yy"
+  case 727: // $@128: %empty
+#line 2570 "dhcp4_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -4026,16 +4026,16 @@ namespace isc { namespace dhcp {
 #line 4027 "dhcp4_parser.cc"
     break;
 
-  case 726: // output_entry: "{" $@128 output_params_list "}"
-#line 2572 "dhcp4_parser.yy"
+  case 728: // output_entry: "{" $@128 output_params_list "}"
+#line 2574 "dhcp4_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
 #line 4035 "dhcp4_parser.cc"
     break;
 
-  case 734: // $@129: %empty
-#line 2587 "dhcp4_parser.yy"
+  case 736: // $@129: %empty
+#line 2589 "dhcp4_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4043,8 +4043,8 @@ namespace isc { namespace dhcp {
 #line 4044 "dhcp4_parser.cc"
     break;
 
-  case 735: // output: "output" $@129 ":" "constant string"
-#line 2590 "dhcp4_parser.yy"
+  case 737: // output: "output" $@129 ":" "constant string"
+#line 2592 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -4053,8 +4053,8 @@ namespace isc { namespace dhcp {
 #line 4054 "dhcp4_parser.cc"
     break;
 
-  case 736: // flush: "flush" ":" "boolean"
-#line 2596 "dhcp4_parser.yy"
+  case 738: // flush: "flush" ":" "boolean"
+#line 2598 "dhcp4_parser.yy"
                            {
     ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4063,8 +4063,8 @@ namespace isc { namespace dhcp {
 #line 4064 "dhcp4_parser.cc"
     break;
 
-  case 737: // maxsize: "maxsize" ":" "integer"
-#line 2602 "dhcp4_parser.yy"
+  case 739: // maxsize: "maxsize" ":" "integer"
+#line 2604 "dhcp4_parser.yy"
                                {
     ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4073,8 +4073,8 @@ namespace isc { namespace dhcp {
 #line 4074 "dhcp4_parser.cc"
     break;
 
-  case 738: // maxver: "maxver" ":" "integer"
-#line 2608 "dhcp4_parser.yy"
+  case 740: // maxver: "maxver" ":" "integer"
+#line 2610 "dhcp4_parser.yy"
                              {
     ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4083,8 +4083,8 @@ namespace isc { namespace dhcp {
 #line 4084 "dhcp4_parser.cc"
     break;
 
-  case 739: // $@130: %empty
-#line 2614 "dhcp4_parser.yy"
+  case 741: // $@130: %empty
+#line 2616 "dhcp4_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4092,8 +4092,8 @@ namespace isc { namespace dhcp {
 #line 4093 "dhcp4_parser.cc"
     break;
 
-  case 740: // pattern: "pattern" $@130 ":" "constant string"
-#line 2617 "dhcp4_parser.yy"
+  case 742: // pattern: "pattern" $@130 ":" "constant string"
+#line 2619 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
@@ -4452,132 +4452,132 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -905;
+  const short Dhcp4Parser::yypact_ninf_ = -915;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     524,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,    33,    41,    59,    68,    82,    93,
-     117,   131,   142,   153,   176,   214,   239,   250,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,    41,   -78,   208,   104,    88,   223,
-     -44,   230,   124,    56,   178,   -81,   493,    42,  -905,   135,
-     221,   238,   264,   276,  -905,   283,  -905,  -905,  -905,   286,
-     288,   297,  -905,  -905,  -905,  -905,  -905,  -905,   301,   311,
-     312,   314,   328,   336,   345,   347,   357,   358,   359,  -905,
-     378,   379,   381,   382,   385,  -905,  -905,  -905,   393,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,   394,  -905,  -905,  -905,  -905,  -905,  -905,   395,  -905,
-     397,  -905,    53,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,   399,  -905,    78,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,   400,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,    84,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    94,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,   321,   370,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,   405,
-    -905,  -905,   411,  -905,  -905,  -905,   413,  -905,  -905,   412,
-     419,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,   420,   421,  -905,  -905,  -905,  -905,
-     415,   424,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,   118,  -905,  -905,  -905,   429,  -905,
-    -905,   432,  -905,   434,   435,  -905,  -905,   436,   439,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,   136,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,   445,   187,  -905,  -905,  -905,  -905,
-      41,    41,  -905,   261,   449,  -905,   453,   455,   456,   271,
-     272,   273,   462,   470,   471,   473,   474,   475,   294,   295,
-     296,   299,   302,   289,   305,   309,   313,   303,   307,   498,
-     315,   318,   319,   323,   326,   499,   506,   517,   330,   519,
-     522,   523,   525,   526,   527,   528,   529,   530,   531,   538,
-     539,   338,   540,   541,   560,   561,   562,   573,   387,   591,
-    -905,   104,  -905,   593,   594,   595,   408,    88,  -905,   597,
-     598,   599,   600,   601,   604,   422,   606,   609,   612,   223,
-    -905,   615,   -44,  -905,   616,   618,   619,   620,   621,   622,
-     623,   624,  -905,   230,  -905,   630,   631,   447,   647,   648,
-     649,   463,  -905,    56,   650,   464,   467,  -905,   178,   656,
-     657,    27,  -905,   472,   658,   659,   476,   661,   477,   478,
-     665,   672,   485,   486,   675,   676,   677,   679,   493,  -905,
-     680,   495,    42,  -905,  -905,  -905,   682,   681,   683,   684,
-     685,  -905,  -905,  -905,   500,   504,   505,   688,   690,   693,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,   532,  -905,  -905,  -905,  -905,  -905,    -4,   533,   534,
-    -905,   708,   709,   710,   711,   712,   535,   291,   713,   715,
-     720,   721,   722,  -905,   723,   724,   725,   726,   545,   546,
-    -905,   731,  -905,   732,   191,   207,  -905,  -905,   549,   550,
-     551,   736,   553,   554,  -905,   732,   555,   738,  -905,   557,
-    -905,   732,   558,   559,   563,   564,   565,   566,   567,  -905,
-     568,   569,  -905,   570,   571,   572,  -905,  -905,   574,  -905,
-    -905,  -905,   575,   712,  -905,  -905,   576,   577,  -905,   578,
-    -905,  -905,    31,   590,  -905,  -905,    -4,   579,   580,   581,
-    -905,   745,  -905,  -905,    41,   104,    42,    88,   663,  -905,
-    -905,  -905,   507,   507,   744,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,   755,   764,   765,   766,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,    99,   767,   768,   769,
-     229,    58,   -66,   211,   493,  -905,  -905,   770,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,   771,
-    -905,  -905,  -905,  -905,   134,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,   744,  -905,   188,   195,   196,  -905,   199,
-    -905,  -905,  -905,  -905,  -905,  -905,   775,   776,   777,   778,
-     779,  -905,  -905,  -905,  -905,   780,   781,   782,   783,   784,
-     785,  -905,   217,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,   231,  -905,   786,   714,  -905,  -905,
-     787,   788,  -905,  -905,   789,   791,  -905,  -905,   790,   794,
-    -905,  -905,   792,   796,  -905,  -905,  -905,  -905,  -905,  -905,
-      34,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    71,  -905,
-    -905,   795,   797,  -905,  -905,   798,   799,  -905,   801,   802,
-     803,   804,   805,   806,   232,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,   807,   808,   809,  -905,   235,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,   253,  -905,
-    -905,  -905,   810,  -905,   811,  -905,  -905,  -905,   270,  -905,
-    -905,  -905,  -905,  -905,   306,  -905,    90,  -905,   614,  -905,
-     812,   813,  -905,  -905,  -905,  -905,   719,   814,  -905,  -905,
-    -905,   815,   663,  -905,   817,   818,   819,   820,   627,   536,
-     635,   634,   637,   824,   825,   826,   827,   642,   643,   644,
-     645,   646,   651,   507,  -905,  -905,   507,  -905,   744,   223,
-    -905,   755,    56,  -905,   764,   178,  -905,   765,   510,  -905,
-     766,    99,  -905,   282,   767,  -905,   230,  -905,   768,   -81,
-    -905,   769,   652,   653,   654,   655,   660,   664,   229,  -905,
-     668,   666,   667,    58,  -905,   832,   833,   -66,  -905,   700,
-     835,   686,   836,   211,  -905,  -905,   284,   770,  -905,  -905,
-     840,   844,   -44,  -905,   771,   845,  -905,  -905,   662,  -905,
-     373,   678,   691,   707,  -905,  -905,  -905,  -905,  -905,   727,
-     734,   735,   742,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-     322,  -905,   325,  -905,   867,  -905,   889,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,   333,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,   849,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,   901,   907,
-    -905,  -905,  -905,  -905,  -905,   905,  -905,   366,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-     743,   793,  -905,  -905,   800,  -905,    41,  -905,  -905,   930,
-    -905,  -905,  -905,  -905,  -905,   367,  -905,  -905,  -905,  -905,
-    -905,  -905,   816,   368,  -905,   732,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,   510,  -905,   970,   821,  -905,   282,  -905,
-    -905,  -905,  -905,  -905,  -905,   973,   822,   977,   284,  -905,
-    -905,  -905,  -905,  -905,   828,  -905,  -905,   843,  -905,   829,
-    -905,  -905,   976,  -905,  -905,   122,  -905,   -90,   976,  -905,
-    -905,   980,   981,   982,  -905,   369,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,   983,   823,   830,   831,   984,   -90,  -905,
-     834,  -905,  -905,  -905,   837,  -905,  -905,  -905
+     555,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,    31,    41,    49,    54,    59,    70,
+      72,    78,    95,   108,   111,   121,   145,   161,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,    41,  -156,    27,   115,    68,   235,
+     193,   245,   -32,    66,   181,   -82,   564,   123,  -915,   133,
+     166,   191,   162,   212,  -915,   210,  -915,  -915,  -915,   222,
+     223,   225,  -915,  -915,  -915,  -915,  -915,  -915,   239,   248,
+     254,   268,   283,   299,   310,   314,   316,   327,   334,  -915,
+     354,   361,   365,   373,   385,  -915,  -915,  -915,   386,   393,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,   394,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+     395,  -915,    89,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,   398,  -915,   102,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,   400,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,   119,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,   122,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,   242,   402,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+     380,  -915,  -915,   405,  -915,  -915,  -915,   406,  -915,  -915,
+     403,   409,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   410,   412,  -915,  -915,  -915,
+    -915,   413,   415,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   129,  -915,  -915,  -915,   416,
+    -915,  -915,   419,  -915,   421,   422,  -915,  -915,   424,   433,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,   159,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   435,   200,  -915,  -915,  -915,
+    -915,    41,    41,  -915,   224,   436,  -915,   437,   440,   447,
+     258,   261,   262,   451,   452,   454,   456,   457,   460,   275,
+     276,   277,   282,   288,   287,   289,   291,   294,   296,   297,
+     486,   303,   304,   305,   306,   309,   499,   500,   501,   317,
+     319,   502,   508,   512,   515,   518,   520,   523,   524,   529,
+     530,   531,   532,   333,   533,   534,   535,   536,   537,   538,
+     541,  -915,   115,  -915,   542,   543,   544,   357,    68,  -915,
+     546,   547,   548,   550,   551,   572,   387,   574,   576,   578,
+     235,  -915,   579,   193,  -915,   580,   582,   583,   584,   585,
+     586,   587,   588,  -915,   245,  -915,   590,   591,   408,   592,
+     595,   596,   411,  -915,    66,   597,   414,   420,  -915,   181,
+     598,   601,   203,  -915,   425,   609,   610,   429,   616,   431,
+     432,   619,   620,   434,   438,   621,   623,   624,   625,   564,
+    -915,   632,   458,   123,  -915,  -915,  -915,   645,   643,   644,
+     656,   657,  -915,  -915,  -915,   396,   478,   479,   662,   663,
+     670,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,   487,  -915,  -915,  -915,  -915,  -915,   -89,   488,
+     491,  -915,  -915,   677,   679,   680,   681,   682,   498,   180,
+     683,   686,   687,   689,   688,  -915,   690,   691,   692,   693,
+     507,   513,   698,  -915,   699,   132,   140,  -915,  -915,   516,
+     517,   539,   702,   556,   559,  -915,   699,   560,   716,  -915,
+     561,  -915,   699,   562,   563,   565,   566,   567,   568,   569,
+    -915,   570,   571,  -915,   573,   575,   577,  -915,  -915,   589,
+    -915,  -915,  -915,   593,   682,  -915,  -915,   594,   599,  -915,
+     600,  -915,  -915,    12,   549,  -915,  -915,   -89,   602,   603,
+     604,  -915,   719,  -915,  -915,    41,   115,   123,    68,   701,
+    -915,  -915,  -915,   519,   519,   720,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   737,   754,   756,   758,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,   257,   760,   761,
+     762,   194,    99,   -58,    58,   564,  -915,  -915,   764,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+     765,  -915,  -915,  -915,  -915,   246,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,   720,  -915,   202,   211,   213,  -915,
+     234,  -915,  -915,  -915,  -915,  -915,  -915,   722,   769,   770,
+     771,   772,  -915,  -915,  -915,  -915,   773,   775,   776,   777,
+     780,   781,  -915,   236,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   237,  -915,   784,   783,  -915,
+    -915,   788,   792,  -915,  -915,   790,   794,  -915,  -915,   793,
+     795,  -915,  -915,   796,   797,  -915,  -915,  -915,  -915,  -915,
+    -915,    61,  -915,  -915,  -915,  -915,  -915,  -915,  -915,    83,
+    -915,  -915,   798,   800,  -915,  -915,   799,   803,  -915,   804,
+     805,   806,   807,   808,   809,   243,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,   810,   811,   812,  -915,   251,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,   338,
+    -915,  -915,  -915,   813,  -915,   814,  -915,  -915,  -915,   342,
+    -915,  -915,  -915,  -915,  -915,   346,  -915,    90,  -915,   612,
+    -915,   801,   816,  -915,  -915,  -915,  -915,   779,   815,  -915,
+    -915,  -915,   818,   701,  -915,   819,   820,   821,   822,   630,
+     635,   638,   637,   640,   827,   828,   829,   830,   646,   647,
+     648,   649,   650,   651,   519,  -915,  -915,   519,  -915,   720,
+     235,  -915,   737,    66,  -915,   754,   181,  -915,   756,   581,
+    -915,   758,   257,  -915,   446,   760,  -915,   245,  -915,   761,
+     -82,  -915,   762,   653,   654,   655,   658,   659,   660,   194,
+    -915,   665,   661,   664,    99,  -915,   831,   836,   -58,  -915,
+     666,   842,   671,   843,    58,  -915,  -915,    36,   764,  -915,
+    -915,   846,   852,   193,  -915,   765,   864,  -915,  -915,   704,
+    -915,   358,   708,   709,   721,  -915,  -915,  -915,  -915,  -915,
+     725,   728,   735,   736,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,   348,  -915,   349,  -915,   868,  -915,   869,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,   372,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+     877,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+     903,   929,  -915,  -915,  -915,  -915,  -915,   925,  -915,   375,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,   746,   789,  -915,  -915,   802,  -915,    41,  -915,
+    -915,   977,  -915,  -915,  -915,  -915,  -915,   376,  -915,  -915,
+    -915,  -915,  -915,  -915,   817,   378,  -915,   699,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   581,  -915,   979,   823,  -915,
+     446,  -915,  -915,  -915,  -915,  -915,  -915,   981,   824,   982,
+      36,  -915,  -915,  -915,  -915,  -915,   832,  -915,  -915,   983,
+    -915,   833,  -915,  -915,   980,  -915,  -915,   105,  -915,  -120,
+     980,  -915,  -915,   985,   986,   988,  -915,   384,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   989,   825,   826,   834,   990,
+    -120,  -915,   838,  -915,  -915,  -915,   839,  -915,  -915,  -915
   };
 
   const short
@@ -4587,459 +4587,461 @@ namespace isc { namespace dhcp {
       20,    22,    24,    26,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     1,    43,
       36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
-      56,     5,    60,     7,   168,     9,   326,    11,   513,    13,
-     538,    15,   438,    17,   446,    19,   483,    21,   291,    23,
-     644,    25,   694,    27,    45,    39,     0,     0,     0,     0,
-       0,   540,     0,   448,   485,     0,     0,     0,    47,     0,
-      46,     0,     0,    40,    58,     0,   692,   157,   183,     0,
-       0,     0,   559,   561,   563,   181,   190,   192,     0,     0,
+      56,     5,    60,     7,   168,     9,   326,    11,   515,    13,
+     540,    15,   440,    17,   448,    19,   485,    21,   291,    23,
+     646,    25,   696,    27,    45,    39,     0,     0,     0,     0,
+       0,   542,     0,   450,   487,     0,     0,     0,    47,     0,
+      46,     0,     0,    40,    58,     0,   694,   157,   183,     0,
+       0,     0,   561,   563,   565,   181,   190,   192,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,   130,
-       0,     0,     0,     0,     0,   138,   145,   147,     0,   318,
-     436,   475,   391,   526,   528,   384,   256,   587,   530,   283,
-     302,     0,   270,   613,   626,   642,   149,   151,     0,   703,
+       0,     0,     0,     0,     0,   138,   145,   147,     0,     0,
+     318,   438,   477,   392,   528,   530,   385,   256,   589,   532,
+     283,   302,     0,   270,   615,   628,   644,   150,   152,   705,
        0,   118,     0,    62,    64,    65,    66,    67,    68,    99,
      100,   101,   102,   103,    69,    97,    86,    87,    88,   107,
-     108,   109,   110,   111,   112,   105,   106,   113,   114,   115,
-     117,    72,    73,    94,    74,    75,    76,   116,    80,    81,
+     108,   109,   110,   111,   112,   113,   105,   106,   114,   115,
+     116,    72,    73,    94,    74,    75,    76,   117,    80,    81,
       70,    98,    71,    78,    79,    92,    93,    95,    89,    90,
       91,    77,    82,    83,    84,    85,    96,   104,   170,   172,
      176,     0,   167,     0,   159,   161,   162,   163,   164,   165,
-     166,   372,   374,   376,   505,   370,   378,     0,   382,   380,
-     583,   369,   330,   331,   332,   333,   334,   355,   356,   357,
+     166,   373,   375,   377,   507,   371,   379,     0,   383,   381,
+     585,   370,   330,   331,   332,   333,   334,   355,   356,   357,
      358,   359,   345,   346,   360,   361,   362,   363,   364,   365,
-     366,   367,   368,     0,   328,   337,   350,   351,   352,   338,
-     340,   341,   343,   339,   335,   336,   353,   354,   342,   347,
-     348,   349,   344,   524,   523,   519,   520,   518,     0,   515,
-     517,   521,   522,   581,   569,   571,   575,   573,   579,   577,
-     565,   558,   552,   556,   557,     0,   541,   542,   553,   554,
-     555,   549,   544,   550,   546,   547,   548,   551,   545,     0,
-     465,   236,     0,   469,   467,   472,     0,   461,   462,     0,
-     449,   450,   452,   464,   453,   454,   455,   471,   456,   457,
-     458,   459,   460,   499,     0,     0,   497,   498,   501,   502,
-       0,   486,   487,   489,   490,   491,   492,   493,   494,   495,
-     496,   298,   300,   295,     0,   293,   296,   297,     0,   680,
-     667,     0,   670,     0,     0,   674,   678,     0,     0,   684,
-     686,   688,   690,   665,   663,   664,     0,   646,   648,   649,
-     650,   651,   652,   653,   654,   655,   660,   656,   657,   658,
-     659,   661,   662,   700,     0,     0,   696,   698,   699,    44,
-       0,     0,    37,     0,     0,    57,     0,     0,     0,     0,
+     366,   367,   368,   369,     0,   328,   337,   350,   351,   352,
+     338,   340,   341,   343,   339,   335,   336,   353,   354,   342,
+     347,   348,   349,   344,   526,   525,   521,   522,   520,     0,
+     517,   519,   523,   524,   583,   571,   573,   577,   575,   581,
+     579,   567,   560,   554,   558,   559,     0,   543,   544,   555,
+     556,   557,   551,   546,   552,   548,   549,   550,   553,   547,
+       0,   467,   236,     0,   471,   469,   474,     0,   463,   464,
+       0,   451,   452,   454,   466,   455,   456,   457,   473,   458,
+     459,   460,   461,   462,   501,     0,     0,   499,   500,   503,
+     504,     0,   488,   489,   491,   492,   493,   494,   495,   496,
+     497,   498,   298,   300,   295,     0,   293,   296,   297,     0,
+     682,   669,     0,   672,     0,     0,   676,   680,     0,     0,
+     686,   688,   690,   692,   667,   665,   666,     0,   648,   650,
+     651,   652,   653,   654,   655,   656,   657,   662,   658,   659,
+     660,   661,   663,   664,   702,     0,     0,   698,   700,   701,
+      44,     0,     0,    37,     0,     0,    57,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      55,     0,    61,     0,     0,     0,     0,     0,   169,     0,
+       0,    55,     0,    61,     0,     0,     0,     0,     0,   169,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     327,     0,     0,   514,     0,     0,     0,     0,     0,     0,
-       0,     0,   539,     0,   439,     0,     0,     0,     0,     0,
-       0,     0,   447,     0,     0,     0,     0,   484,     0,     0,
-       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   645,
-       0,     0,     0,   695,    48,    41,     0,     0,     0,     0,
-       0,   132,   133,   134,     0,     0,     0,     0,     0,     0,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,     0,   154,   155,   135,   136,   137,     0,     0,     0,
-     153,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
-     156,     0,    63,     0,     0,     0,   180,   160,     0,     0,
-       0,     0,     0,     0,   390,     0,     0,     0,   329,     0,
-     516,     0,     0,     0,     0,     0,     0,     0,     0,   543,
-       0,     0,   463,     0,     0,     0,   474,   451,     0,   503,
-     504,   488,     0,     0,   294,   666,     0,     0,   669,     0,
-     672,   673,     0,     0,   682,   683,     0,     0,     0,     0,
-     647,     0,   702,   697,     0,     0,     0,     0,     0,   560,
-     562,   564,     0,     0,   194,   131,   140,   141,   142,   143,
-     144,   139,   146,   148,   320,   440,   477,   393,    38,   527,
-     529,   386,   387,   388,   389,   385,     0,     0,   532,   285,
-       0,     0,     0,     0,     0,   150,   152,     0,    49,   171,
-     174,   175,   173,   178,   179,   177,   373,   375,   377,   507,
-     371,   379,   383,   381,     0,   525,   582,   570,   572,   576,
-     574,   580,   578,   566,   466,   237,   470,   468,   473,   500,
-     299,   301,   681,   668,   671,   676,   677,   675,   679,   685,
-     687,   689,   691,   194,    42,     0,     0,     0,   188,     0,
-     185,   187,   223,   229,   231,   233,     0,     0,     0,     0,
-       0,   245,   247,   249,   251,     0,     0,     0,     0,     0,
-       0,   222,     0,   200,   202,   203,   204,   205,   206,   207,
-     208,   209,   210,   211,   215,   216,   217,   212,   218,   219,
-     220,   213,   214,   221,     0,   198,     0,   195,   196,   324,
-       0,   321,   322,   444,     0,   441,   442,   481,     0,   478,
-     479,   397,     0,   394,   395,   265,   266,   267,   268,   269,
-       0,   258,   260,   261,   262,   263,   264,   591,     0,   589,
-     536,     0,   533,   534,   289,     0,   286,   287,     0,     0,
-       0,     0,     0,     0,     0,   304,   306,   307,   308,   309,
-     310,   311,     0,     0,     0,   279,     0,   272,   274,   275,
-     276,   277,   278,   622,   624,   621,   619,   620,     0,   615,
-     617,   618,     0,   637,     0,   640,   633,   634,     0,   628,
-     630,   631,   632,   635,     0,   707,     0,   705,    51,   511,
-       0,   508,   509,   567,   585,   586,     0,     0,    59,   693,
-     158,     0,     0,   184,     0,     0,     0,     0,     0,     0,
+       0,   327,     0,     0,   516,     0,     0,     0,     0,     0,
+       0,     0,     0,   541,     0,   441,     0,     0,     0,     0,
+       0,     0,     0,   449,     0,     0,     0,     0,   486,     0,
+       0,     0,     0,   292,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   182,   191,     0,   193,     0,     0,
-     319,     0,   448,   437,     0,   485,   476,     0,     0,   392,
-       0,     0,   257,   593,     0,   588,   540,   531,     0,     0,
-     284,     0,     0,     0,     0,     0,     0,     0,     0,   303,
-       0,     0,     0,     0,   271,     0,     0,     0,   614,     0,
-       0,     0,     0,     0,   627,   643,     0,     0,   704,    53,
-       0,    52,     0,   506,     0,     0,   584,   701,     0,   186,
-       0,     0,     0,     0,   235,   238,   239,   240,   241,     0,
-       0,     0,     0,   253,   254,   242,   243,   244,   255,   201,
-       0,   197,     0,   323,     0,   443,     0,   480,   435,   416,
-     417,   418,   404,   405,   421,   422,   423,   424,   425,   407,
-     408,   426,   427,   428,   429,   430,   431,   432,   433,   434,
-     401,   402,   403,   414,   415,   413,     0,   399,   406,   419,
-     420,   409,   410,   411,   412,   396,   259,   609,     0,   607,
-     608,   600,   601,   605,   606,   602,   603,   604,     0,   594,
-     595,   597,   598,   599,   590,     0,   535,     0,   288,   312,
-     313,   314,   315,   316,   317,   305,   280,   281,   282,   273,
-       0,     0,   616,   636,     0,   639,     0,   629,   721,     0,
-     719,   717,   711,   715,   716,     0,   709,   713,   714,   712,
-     706,    50,     0,     0,   510,     0,   189,   225,   226,   227,
-     228,   224,   230,   232,   234,   246,   248,   250,   252,   199,
-     325,   445,   482,     0,   398,     0,     0,   592,     0,   537,
-     290,   623,   625,   638,   641,     0,     0,     0,     0,   708,
-      54,   512,   568,   400,     0,   611,   596,     0,   718,     0,
-     710,   610,     0,   720,   725,     0,   723,     0,     0,   722,
-     734,     0,     0,     0,   739,     0,   727,   729,   730,   731,
-     732,   733,   724,     0,     0,     0,     0,     0,     0,   726,
-       0,   736,   737,   738,     0,   728,   735,   740
+     647,     0,     0,     0,   697,    48,    41,     0,     0,     0,
+       0,     0,   132,   133,   134,     0,     0,     0,     0,     0,
+       0,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,     0,   155,   156,   135,   136,   137,     0,     0,
+       0,   149,   154,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   614,     0,     0,     0,     0,
+       0,     0,     0,    63,     0,     0,     0,   180,   160,     0,
+       0,     0,     0,     0,     0,   391,     0,     0,     0,   329,
+       0,   518,     0,     0,     0,     0,     0,     0,     0,     0,
+     545,     0,     0,   465,     0,     0,     0,   476,   453,     0,
+     505,   506,   490,     0,     0,   294,   668,     0,     0,   671,
+       0,   674,   675,     0,     0,   684,   685,     0,     0,     0,
+       0,   649,     0,   704,   699,     0,     0,     0,     0,     0,
+     562,   564,   566,     0,     0,   194,   131,   140,   141,   142,
+     143,   144,   139,   146,   148,   320,   442,   479,   394,    38,
+     529,   531,   387,   388,   389,   390,   386,     0,     0,   534,
+     285,     0,     0,     0,     0,     0,   151,   153,     0,    49,
+     171,   174,   175,   173,   178,   179,   177,   374,   376,   378,
+     509,   372,   380,   384,   382,     0,   527,   584,   572,   574,
+     578,   576,   582,   580,   568,   468,   237,   472,   470,   475,
+     502,   299,   301,   683,   670,   673,   678,   679,   677,   681,
+     687,   689,   691,   693,   194,    42,     0,     0,     0,   188,
+       0,   185,   187,   223,   229,   231,   233,     0,     0,     0,
+       0,     0,   245,   247,   249,   251,     0,     0,     0,     0,
+       0,     0,   222,     0,   200,   202,   203,   204,   205,   206,
+     207,   208,   209,   210,   211,   215,   216,   217,   212,   218,
+     219,   220,   213,   214,   221,     0,   198,     0,   195,   196,
+     324,     0,   321,   322,   446,     0,   443,   444,   483,     0,
+     480,   481,   398,     0,   395,   396,   265,   266,   267,   268,
+     269,     0,   258,   260,   261,   262,   263,   264,   593,     0,
+     591,   538,     0,   535,   536,   289,     0,   286,   287,     0,
+       0,     0,     0,     0,     0,     0,   304,   306,   307,   308,
+     309,   310,   311,     0,     0,     0,   279,     0,   272,   274,
+     275,   276,   277,   278,   624,   626,   623,   621,   622,     0,
+     617,   619,   620,     0,   639,     0,   642,   635,   636,     0,
+     630,   632,   633,   634,   637,     0,   709,     0,   707,    51,
+     513,     0,   510,   511,   569,   587,   588,     0,     0,    59,
+     695,   158,     0,     0,   184,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   182,   191,     0,   193,     0,
+       0,   319,     0,   450,   439,     0,   487,   478,     0,     0,
+     393,     0,     0,   257,   595,     0,   590,   542,   533,     0,
+       0,   284,     0,     0,     0,     0,     0,     0,     0,     0,
+     303,     0,     0,     0,     0,   271,     0,     0,     0,   616,
+       0,     0,     0,     0,     0,   629,   645,     0,     0,   706,
+      53,     0,    52,     0,   508,     0,     0,   586,   703,     0,
+     186,     0,     0,     0,     0,   235,   238,   239,   240,   241,
+       0,     0,     0,     0,   253,   254,   242,   243,   244,   255,
+     201,     0,   197,     0,   323,     0,   445,     0,   482,   437,
+     417,   418,   419,   405,   406,   422,   423,   424,   425,   426,
+     408,   409,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   402,   403,   404,   415,   416,   414,     0,   400,
+     407,   420,   421,   410,   411,   412,   413,   397,   259,   611,
+       0,   609,   610,   602,   603,   607,   608,   604,   605,   606,
+       0,   596,   597,   599,   600,   601,   592,     0,   537,     0,
+     288,   312,   313,   314,   315,   316,   317,   305,   280,   281,
+     282,   273,     0,     0,   618,   638,     0,   641,     0,   631,
+     723,     0,   721,   719,   713,   717,   718,     0,   711,   715,
+     716,   714,   708,    50,     0,     0,   512,     0,   189,   225,
+     226,   227,   228,   224,   230,   232,   234,   246,   248,   250,
+     252,   199,   325,   447,   484,     0,   399,     0,     0,   594,
+       0,   539,   290,   625,   627,   640,   643,     0,     0,     0,
+       0,   710,    54,   514,   570,   401,     0,   613,   598,     0,
+     720,     0,   712,   612,     0,   722,   727,     0,   725,     0,
+       0,   724,   736,     0,     0,     0,   741,     0,   729,   731,
+     732,   733,   734,   735,   726,     0,     0,     0,     0,     0,
+       0,   728,     0,   738,   739,   740,     0,   730,   737,   742
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,   -52,  -905,  -518,  -905,   167,
-    -905,  -905,  -905,  -905,  -905,  -905,  -580,  -905,  -905,  -905,
-     -67,  -905,  -905,  -905,  -905,  -905,  -905,   346,   542,   -40,
-     -28,   -24,    -1,     1,    11,    19,    22,    25,    26,  -905,
-    -905,  -905,  -905,    29,    30,    32,    37,    40,    43,  -905,
-     354,    44,  -905,    45,  -905,    47,  -905,    48,  -905,    50,
-    -905,  -905,  -905,  -905,  -905,   348,   537,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,   100,  -905,  -905,  -905,  -905,  -905,  -905,
-     263,  -905,    79,  -905,  -640,    85,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,   -63,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    69,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    46,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,    60,  -905,  -905,  -905,
-      63,   502,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    61,
-    -905,  -905,  -905,  -905,  -905,  -905,  -904,  -905,  -905,  -905,
-      83,  -905,  -905,  -905,    87,   547,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -901,  -905,   -65,  -905,    52,  -905,
-      51,  -905,  -905,  -905,  -905,  -905,  -905,  -905,    77,  -905,
-    -905,  -115,   -46,  -905,  -905,  -905,  -905,  -905,    86,  -905,
-    -905,  -905,    89,  -905,   521,  -905,   -42,  -905,  -905,  -905,
-    -905,  -905,   -36,  -905,  -905,  -905,  -905,  -905,   -35,  -905,
-    -905,  -905,    92,  -905,  -905,  -905,    97,  -905,   543,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-      54,  -905,  -905,  -905,    55,   582,  -905,  -905,   -51,  -905,
-     -11,  -905,   -25,  -905,  -905,  -905,    91,  -905,  -905,  -905,
-      95,  -905,   552,   -55,  -905,     0,  -905,     7,  -905,   329,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -900,  -905,  -905,
-    -905,  -905,  -905,    96,  -905,  -905,  -905,  -103,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,    75,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,    73,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,   353,   520,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905,  -905,   396,   518,  -905,  -905,
-    -905,  -905,  -905,  -905,    72,  -905,  -905,   -95,  -905,  -905,
-    -905,  -905,  -905,  -905,  -114,  -905,  -905,  -133,  -905,  -905,
-    -905,  -905,  -905,  -905,  -905
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   -52,  -915,  -520,  -915,   371,
+    -915,  -915,  -915,  -915,  -915,  -915,  -575,  -915,  -915,  -915,
+     -67,  -915,  -915,  -915,  -915,  -915,  -915,   350,   545,   -40,
+     -28,   -24,    -1,     1,    11,    19,    22,    25,    26,  -915,
+    -915,  -915,  -915,    29,    30,    32,    37,    40,    43,  -915,
+     362,    44,  -915,    45,  -915,    47,    48,  -915,    50,  -915,
+      51,  -915,  -915,  -915,  -915,   352,   540,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,   109,  -915,  -915,  -915,  -915,  -915,  -915,
+     267,  -915,    84,  -915,  -641,    91,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,   -63,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,    75,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,    56,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,    62,  -915,  -915,  -915,
+      69,   506,  -915,  -915,  -915,  -915,  -915,  -915,  -915,    63,
+    -915,  -915,  -915,  -915,  -915,  -915,  -914,  -915,  -915,  -915,
+      96,  -915,  -915,  -915,    93,   553,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -905,  -915,   -65,  -915,    53,  -915,
+      55,  -915,  -915,  -915,  -915,  -915,  -915,  -915,    80,  -915,
+    -915,  -106,   -46,  -915,  -915,  -915,  -915,  -915,   100,  -915,
+    -915,  -915,    97,  -915,   552,  -915,   -42,  -915,  -915,  -915,
+    -915,  -915,   -36,  -915,  -915,  -915,  -915,  -915,   -35,  -915,
+    -915,  -915,   101,  -915,  -915,  -915,   104,  -915,   554,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+      57,  -915,  -915,  -915,    60,   558,  -915,  -915,   -51,  -915,
+     -11,  -915,   -25,  -915,  -915,  -915,    98,  -915,  -915,  -915,
+     103,  -915,   557,   -55,  -915,     0,  -915,     7,  -915,   329,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -901,  -915,  -915,
+    -915,  -915,  -915,   107,  -915,  -915,  -915,   -95,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,    81,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,    74,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,   359,   526,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915,  -915,   401,   527,  -915,  -915,
+    -915,  -915,  -915,  -915,    79,  -915,  -915,   -97,  -915,  -915,
+    -915,  -915,  -915,  -915,  -111,  -915,  -915,  -129,  -915,  -915,
+    -915,  -915,  -915,  -915,  -915
   };
 
   const short
   Dhcp4Parser::yydefgoto_[] =
   {
       -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    36,    37,    38,    65,   669,
-      82,    83,    39,    64,    79,    80,   689,   878,   970,   971,
-     761,    41,    66,    85,   394,    43,    67,   142,   143,   144,
+      23,    24,    25,    26,    27,    36,    37,    38,    65,   670,
+      82,    83,    39,    64,    79,    80,   690,   879,   971,   972,
+     762,    41,    66,    85,   395,    43,    67,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   419,   156,   157,   158,   159,   160,   161,   162,   425,
-     661,   163,   426,   164,   427,   165,   446,   166,   447,   167,
-     168,   169,   170,   171,   397,   203,   204,    45,    68,   205,
-     453,   206,   454,   692,   207,   455,   695,   208,   172,   405,
-     173,   398,   739,   740,   741,   891,   174,   406,   175,   407,
-     786,   787,   788,   916,   762,   763,   764,   894,  1111,   765,
-     895,   766,   896,   767,   897,   768,   769,   486,   770,   771,
-     772,   773,   774,   775,   776,   777,   903,   778,   904,   779,
-     905,   780,   906,   781,   782,   783,   176,   436,   810,   811,
-     812,   813,   814,   815,   816,   177,   442,   846,   847,   848,
-     849,   850,   178,   439,   825,   826,   827,   939,    59,    75,
-     344,   345,   346,   499,   347,   500,   179,   440,   834,   835,
-     836,   837,   838,   839,   840,   841,   180,   429,   790,   791,
-     792,   919,    47,    69,   243,   244,   245,   463,   246,   459,
-     247,   460,   248,   461,   249,   464,   250,   467,   251,   466,
-     181,   435,   675,   253,   182,   432,   802,   803,   804,   928,
-    1036,  1037,   183,   430,    53,    72,   794,   795,   796,   922,
-      55,    73,   309,   310,   311,   312,   313,   314,   315,   485,
-     316,   489,   317,   488,   318,   319,   490,   320,   184,   431,
-     798,   799,   800,   925,    57,    74,   330,   331,   332,   333,
-     334,   494,   335,   336,   337,   338,   255,   462,   880,   881,
-     882,   972,    49,    70,   268,   269,   270,   471,   185,   433,
-     186,   434,   187,   438,   821,   822,   823,   936,    51,    71,
-     285,   286,   287,   188,   402,   189,   403,   190,   404,   291,
-     481,   885,   975,   292,   475,   293,   476,   294,   478,   295,
-     477,   296,   480,   297,   479,   298,   474,   262,   468,   886,
-     191,   437,   818,   819,   933,  1058,  1059,  1060,  1061,  1062,
-    1125,  1063,   192,   193,   443,   858,   859,   860,   955,   861,
-     956,   194,   444,   868,   869,   870,   871,   960,   872,   873,
-     962,   195,   445,    61,    76,   366,   367,   368,   369,   505,
-     370,   371,   507,   372,   373,   374,   510,   727,   375,   511,
-     376,   504,   377,   378,   379,   514,   380,   515,   381,   516,
-     382,   517,   196,   396,    63,    77,   385,   386,   387,   520,
-     388,   197,   449,   876,   877,   966,  1095,  1096,  1097,  1098,
-    1137,  1099,  1135,  1155,  1156,  1157,  1165,  1166,  1167,  1173,
-    1168,  1169,  1170,  1171,  1177
+     155,   420,   156,   157,   158,   159,   160,   161,   162,   426,
+     662,   163,   427,   164,   428,   165,   166,   448,   167,   449,
+     168,   169,   170,   171,   398,   203,   204,    45,    68,   205,
+     454,   206,   455,   693,   207,   456,   696,   208,   172,   406,
+     173,   399,   740,   741,   742,   892,   174,   407,   175,   408,
+     787,   788,   789,   917,   763,   764,   765,   895,  1113,   766,
+     896,   767,   897,   768,   898,   769,   770,   487,   771,   772,
+     773,   774,   775,   776,   777,   778,   904,   779,   905,   780,
+     906,   781,   907,   782,   783,   784,   176,   438,   811,   812,
+     813,   814,   815,   816,   817,   177,   444,   847,   848,   849,
+     850,   851,   178,   441,   826,   827,   828,   940,    59,    75,
+     345,   346,   347,   500,   348,   501,   179,   442,   835,   836,
+     837,   838,   839,   840,   841,   842,   180,   431,   791,   792,
+     793,   920,    47,    69,   244,   245,   246,   464,   247,   460,
+     248,   461,   249,   462,   250,   465,   251,   468,   252,   467,
+     181,   437,   676,   254,   182,   434,   803,   804,   805,   929,
+    1038,  1039,   183,   432,    53,    72,   795,   796,   797,   923,
+      55,    73,   310,   311,   312,   313,   314,   315,   316,   486,
+     317,   490,   318,   489,   319,   320,   491,   321,   184,   433,
+     799,   800,   801,   926,    57,    74,   331,   332,   333,   334,
+     335,   495,   336,   337,   338,   339,   256,   463,   881,   882,
+     883,   973,    49,    70,   269,   270,   271,   472,   185,   435,
+     186,   436,   187,   440,   822,   823,   824,   937,    51,    71,
+     286,   287,   288,   188,   403,   189,   404,   190,   405,   292,
+     482,   886,   976,   293,   476,   294,   477,   295,   479,   296,
+     478,   297,   481,   298,   480,   299,   475,   263,   469,   887,
+     191,   439,   819,   820,   934,  1060,  1061,  1062,  1063,  1064,
+    1127,  1065,   192,   193,   445,   859,   860,   861,   956,   862,
+     957,   194,   446,   869,   870,   871,   872,   961,   873,   874,
+     963,   195,   447,    61,    76,   367,   368,   369,   370,   506,
+     371,   372,   508,   373,   374,   375,   511,   728,   376,   512,
+     377,   505,   378,   379,   380,   515,   381,   516,   382,   517,
+     383,   518,   196,   397,    63,    77,   386,   387,   388,   521,
+     389,   197,   450,   877,   878,   967,  1097,  1098,  1099,  1100,
+    1139,  1101,  1137,  1157,  1158,  1159,  1167,  1168,  1169,  1175,
+    1170,  1171,  1172,  1173,  1179
   };
 
   const short
   Dhcp4Parser::yytable_[] =
   {
-     141,   202,   221,   264,   281,   265,   307,   326,   343,   363,
-     308,   327,    78,   784,   259,   702,   288,   209,   256,   271,
-     283,   706,   321,   339,  1031,   364,   299,  1032,  1044,   222,
-     123,   124,   328,    28,   254,   267,   282,   931,   329,   121,
-     932,   223,   341,   342,   258,   224,    29,   668,    30,   725,
-      31,   263,   123,   124,   383,   384,   451,   210,   257,   272,
-     284,   452,   322,   340,   218,   365,    40,   219,   225,   260,
-     226,   289,   853,   854,   934,    42,   261,   935,   290,  1160,
-     227,   457,  1161,  1162,  1163,  1164,   458,   469,   228,    44,
-     300,   229,   470,   967,   230,   231,   968,   472,   232,   233,
-      46,   234,   473,   198,   199,   668,   235,   200,   140,   236,
-     201,    81,   237,   238,   239,    86,   240,   241,    87,   242,
-     252,   501,   266,   140,    48,  1158,   502,    88,  1159,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    50,   518,
-     301,   389,   302,   303,   519,   140,   304,   305,   306,    52,
-     341,   342,   123,   124,   123,   124,   656,   657,   658,   659,
-      54,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,    56,   123,   124,   120,   121,   660,   726,
-     522,   451,   842,   843,   844,   523,   888,   122,   522,   457,
-     123,   124,   892,   889,   890,   125,   120,   893,   690,   691,
-     126,   127,   805,   806,   807,   808,   128,   809,    84,  1031,
-     913,    58,  1032,  1044,   390,   914,   129,   693,   694,   130,
-      32,    33,    34,    35,   913,   948,   131,   132,   953,   915,
-     949,   133,   391,   954,   134,   140,    60,   140,   135,    90,
-      91,    92,    93,    94,   280,   883,   957,    62,    92,    93,
-      94,   958,   301,   323,   302,   303,   324,   325,   136,   137,
-     138,   139,   392,   963,   123,   124,  1000,   140,   964,   393,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     399,   395,   400,   140,   112,   113,   114,   115,   116,   117,
-     118,   401,   211,   212,   213,   408,   121,   123,   124,   518,
-      92,    93,    94,   121,   965,   409,   410,   214,   411,   123,
-     124,   215,   216,   217,   125,   913,   123,   124,   469,   482,
-    1119,   218,   412,  1120,   219,   128,  1123,   273,   524,   525,
-     413,  1124,   220,   274,   275,   276,   277,   278,   279,   414,
-     280,   415,   862,   863,   864,   828,   829,   830,   831,   832,
-     833,   416,   417,   418,   120,   121,   301,   140,   301,   501,
-    1138,   472,  1178,   483,  1130,  1139,  1141,  1179,   123,   124,
-     123,   124,   420,   421,   141,   422,   423,   136,   137,   424,
-     202,  1047,  1048,   671,   672,   673,   674,   428,   441,   448,
-     865,   450,   221,   456,   465,   264,   209,   265,  1107,  1108,
-    1109,  1110,   140,   484,   259,   487,   281,   491,   256,   140,
-     492,   271,   493,   497,   495,   496,   307,   498,   288,   222,
-     308,   326,   283,   503,   254,   327,   506,   267,   508,   509,
-     512,   223,   321,   513,   258,   224,   210,   339,   282,   521,
-     526,   363,  1088,   527,  1089,  1090,   328,   528,   257,   529,
-     530,   272,   329,   531,   532,   533,   534,   364,   225,   260,
-     226,   140,   284,   140,   535,   536,   261,   537,   538,   539,
-     227,   545,   322,   289,   540,   541,   542,   340,   228,   543,
-     290,   229,   544,   549,   230,   231,   546,   550,   232,   233,
-     547,   234,   551,   557,   548,   552,   235,   365,   553,   236,
-     558,   554,   237,   238,   239,   555,   240,   241,   556,   242,
-     252,   559,   560,   561,   266,  1142,   562,   563,   573,   564,
-     565,   566,   567,   568,   569,   570,    90,    91,    92,    93,
-      94,   742,   571,   572,   574,   575,   743,   744,   745,   746,
-     747,   748,   749,   750,   751,   752,   753,   754,   755,   756,
-     757,   758,   759,   760,   576,   577,   578,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   579,   141,   580,
-     202,   112,   113,   114,   115,   116,   117,   118,   119,   123,
-     124,   301,   734,   121,   301,   581,   209,   583,   584,   585,
-     586,   588,   589,   590,   591,   592,   123,   124,   593,   216,
-     595,   125,   594,   596,   845,   855,   597,   363,   218,   599,
-     601,   219,   602,   603,   604,   605,   606,   607,   608,   220,
-     851,   856,   866,   364,   610,   611,   210,   612,   348,   349,
-     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   613,   614,   615,   618,   616,   619,   361,   362,   620,
-     622,   623,   626,   627,   625,   629,   628,   630,   631,   632,
-     852,   857,   867,   365,   136,   137,   633,   634,   635,   636,
-     637,   638,   140,   639,   641,   642,   644,   738,   645,   649,
-     646,   647,   648,   650,   651,   652,   140,   653,   654,   140,
-       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,   664,   665,   666,   667,   918,   676,    30,
-     677,   655,   662,   663,   670,   678,   679,   976,   985,   680,
-     681,   682,   683,   684,   685,   686,   687,   688,   696,   697,
-     698,   699,   700,   701,   703,   704,   705,   707,   708,   728,
-     733,   785,   709,   710,   711,   712,   713,   714,   715,   716,
-     717,   718,   789,   719,   720,   722,   723,   724,   730,   731,
-     732,   793,   797,   801,   817,   820,   824,   875,   879,   898,
-     899,   900,   901,   902,   907,   908,   909,   910,   911,   912,
-     721,   921,   917,   920,   924,   923,   926,   927,   929,   930,
-     938,   937,   941,   969,   940,   942,   943,   944,   945,   946,
-     947,   950,   951,   952,   959,   961,   974,   984,   973,   978,
-     977,   980,   981,   982,   983,   986,   987,   988,   989,   990,
-     991,   992,   993,   994,   995,   996,  1080,  1081,   997,  1084,
-    1086,   998,  1069,  1070,  1071,  1072,  1101,  1102,  1152,  1105,
-    1073,  1106,   221,  1126,  1074,   307,  1077,  1078,   326,   308,
-    1076,  1008,   327,  1033,   259,  1030,  1049,  1112,   256,   281,
-    1050,   321,   343,  1041,   339,  1121,  1085,  1039,  1055,   222,
-    1113,   288,  1053,   328,   254,   283,   845,  1051,  1009,   329,
-     855,   223,  1083,  1038,   258,   224,  1114,  1122,  1052,  1091,
-    1010,   282,   851,  1092,  1011,   264,   856,   265,   257,  1127,
-    1128,   322,   866,  1129,   340,  1093,  1115,  1040,   225,   260,
-     226,   271,  1054,  1116,  1117,   284,   261,  1012,  1042,  1013,
-     227,  1118,  1131,  1056,  1136,  1043,   289,   267,   228,  1014,
-    1057,   229,   852,   290,   230,   231,   857,  1015,   232,   233,
-    1016,   234,   867,  1017,  1018,  1094,   235,  1019,  1020,   236,
-    1021,   272,   237,   238,   239,  1022,   240,   241,  1023,   242,
-     252,  1024,  1025,  1026,  1144,  1027,  1028,  1147,  1029,  1035,
-    1034,  1149,  1132,  1154,  1174,  1175,  1176,  1180,  1184,  1133,
-     729,   735,   979,   582,   587,   737,   887,  1001,   999,  1079,
-    1046,  1068,  1067,   624,  1003,  1140,  1002,  1045,  1143,  1075,
-    1005,  1004,  1148,  1145,   617,  1181,   598,  1151,  1153,  1007,
-    1182,  1183,  1006,  1186,   266,  1146,  1187,  1103,  1104,  1066,
-    1064,  1065,  1082,   884,  1134,   609,  1087,   874,   640,  1100,
-     643,   621,   736,  1150,  1172,  1185,     0,     0,     0,     0,
-       0,     0,     0,     0,   600,     0,  1008,     0,  1033,     0,
-    1030,  1049,     0,     0,     0,  1050,     0,     0,  1041,     0,
-       0,  1091,  1039,  1055,     0,  1092,     0,  1053,     0,     0,
-       0,     0,  1051,  1009,     0,     0,     0,  1093,  1038,     0,
-       0,     0,     0,  1052,     0,  1010,     0,     0,     0,  1011,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1040,     0,     0,     0,     0,  1054,     0,     0,
-       0,     0,  1012,  1042,  1013,     0,     0,  1094,  1056,     0,
-    1043,     0,     0,     0,  1014,  1057,     0,     0,     0,     0,
-       0,     0,  1015,     0,     0,  1016,     0,     0,  1017,  1018,
-       0,     0,  1019,  1020,     0,  1021,     0,     0,     0,     0,
-    1022,     0,     0,  1023,     0,     0,  1024,  1025,  1026,     0,
-    1027,  1028,     0,  1029,  1035,  1034
+     141,   202,   221,   265,   282,   266,   308,   327,   344,   364,
+     309,   328,    78,   785,   260,  1033,   289,   209,   257,   272,
+     284,   703,   322,   340,  1034,   365,   300,   707,  1046,   222,
+     726,    28,   329,    81,   255,   268,   283,    84,   330,   124,
+     125,   223,   342,   343,   259,   224,    29,   669,    30,  1162,
+      31,   121,  1163,  1164,  1165,  1166,    40,   210,   258,   273,
+     285,    42,   323,   341,   932,   366,    44,   933,   225,   261,
+     226,   290,   657,   658,   659,   660,   262,    46,   291,    48,
+     227,   854,   855,   198,   199,    50,   935,   200,   228,   936,
+     201,   229,   452,   968,   230,   231,   969,   453,   232,   233,
+     301,   234,    52,   661,   669,   458,   235,   140,  1160,   236,
+     459,  1161,   237,   238,   239,    54,   240,   241,    56,   242,
+     243,   302,   470,   267,   253,   473,    86,   471,    58,    87,
+     474,   140,   502,   124,   125,   384,   385,   503,    88,   390,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,   691,
+     692,   302,    60,   303,   304,   124,   125,   305,   306,   307,
+     694,   695,   519,   124,   125,   124,   125,   520,    62,   391,
+     393,   727,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   117,   118,   119,   120,   392,   124,   125,   121,   122,
+     863,   864,   865,   523,  1090,   452,  1091,  1092,   524,   123,
+     889,  1033,   124,   125,   523,   394,   458,   126,   396,   890,
+    1034,   891,   127,   128,  1046,   140,   400,   401,   129,   402,
+      32,    33,    34,    35,   843,   844,   845,   893,   130,   914,
+     914,   131,   894,   409,   915,   916,   949,   866,   132,   133,
+     483,   950,   410,   134,   954,   140,   135,   140,   411,   955,
+     136,    90,    91,    92,    93,    94,   302,   324,   303,   304,
+     325,   326,   412,    92,    93,    94,  1001,   122,   124,   125,
+     137,   138,   139,   672,   673,   674,   675,   413,   140,   264,
+     124,   125,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   218,   414,   140,   219,   112,   113,   114,   115,
+     116,   117,   118,   119,   415,   211,   212,   213,   416,   122,
+     417,   829,   830,   831,   832,   833,   834,   342,   343,   122,
+     214,   418,   124,   125,   215,   216,   217,   126,   419,   525,
+     526,   958,   124,   125,   218,   964,   959,   219,   129,   519,
+     965,   914,   470,   274,   966,   220,  1121,  1122,   421,   275,
+     276,   277,   278,   279,   280,   422,   281,   281,   884,   423,
+     140,   806,   807,   808,   809,  1125,   810,   424,   502,  1140,
+    1126,   473,   140,  1132,  1141,   141,  1143,  1180,   485,   425,
+     429,   202,  1181,  1109,  1110,  1111,  1112,   430,   443,   451,
+     137,   138,   457,   221,   466,   484,   265,   209,   266,   488,
+     492,   493,   494,   527,   496,   260,   497,   282,   499,   257,
+     504,   498,   272,   507,   140,   509,   510,   308,   513,   289,
+     222,   309,   327,   284,   140,   255,   328,   514,   268,   522,
+     528,   529,   223,   322,   530,   259,   224,   210,   340,   283,
+     532,   531,   364,   533,   534,   535,   536,   329,   537,   258,
+     538,   539,   273,   330,   540,   541,   542,   543,   365,   225,
+     261,   226,   544,   285,    92,    93,    94,   262,   545,   546,
+     547,   227,   548,   323,   290,   549,   550,   551,   341,   228,
+     552,   291,   229,   553,   554,   230,   231,   555,   556,   232,
+     233,   557,   234,   558,   559,   560,   563,   235,   366,   561,
+     236,   562,   564,   237,   238,   239,   565,   240,   241,   566,
+     242,   243,   567,   575,   568,   253,   267,   569,   570,   121,
+     122,   302,  1144,   571,   572,   573,   574,   576,   577,   578,
+     579,   580,   581,   124,   125,   582,   584,   585,   586,   587,
+     589,   590,   591,   743,   592,   593,  1049,  1050,   744,   745,
+     746,   747,   748,   749,   750,   751,   752,   753,   754,   755,
+     756,   757,   758,   759,   760,   761,   594,   595,   596,   141,
+     597,   202,   598,   600,   602,   650,   603,   604,   605,   606,
+     607,   608,   609,   735,   611,   612,   614,   209,   613,   615,
+     616,   619,   623,   617,   302,   624,   620,    90,    91,    92,
+      93,    94,   621,   627,   628,   846,   856,   626,   364,   629,
+     630,   631,   632,   633,   634,   637,   635,   638,   639,   640,
+     636,   852,   857,   867,   365,   140,   642,   210,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   643,   645,
+     646,   647,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   124,   125,   648,   649,   122,   302,   651,   652,   653,
+     654,   853,   858,   868,   366,   655,   656,   663,   124,   125,
+     664,   216,   665,   126,   666,   667,   668,   671,   677,    30,
+     218,   678,   679,   219,   680,   681,   686,   682,   683,   684,
+     685,   220,   687,   688,   689,   697,   698,   700,   140,   729,
+     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   705,   734,   739,   899,   786,   699,   362,
+     363,     1,     2,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,   790,   701,   137,   138,   702,   704,
+     706,   708,   709,   140,   710,   711,   712,   713,   714,   715,
+     716,   794,   717,   798,   718,   802,   719,   818,   821,   825,
+     140,   876,   880,   900,   901,   902,   903,   908,   720,   909,
+     910,   911,   721,   723,   912,   913,   919,   977,   724,   725,
+     918,   731,   732,   733,   921,   922,   924,   925,   928,   927,
+     931,   970,   930,   939,   938,   941,   942,   974,   943,   944,
+     945,   946,   947,   948,   951,   952,   953,   960,   962,   975,
+     985,   978,   979,   981,   982,   983,   984,   986,   987,   988,
+     989,   990,   991,   992,   993,  1082,   994,   995,   996,   997,
+    1083,   999,   998,  1071,  1072,  1073,  1086,  1088,  1074,  1075,
+    1076,  1079,  1103,   221,  1080,  1104,   308,  1078,  1085,   327,
+     309,  1087,  1009,   328,  1035,   260,  1032,  1051,  1107,   257,
+     282,  1052,   322,   344,  1043,   340,  1123,  1124,  1041,  1057,
+     222,  1128,   289,  1055,   329,   255,   284,   846,  1053,  1010,
+     330,   856,   223,  1108,  1040,   259,   224,  1114,  1115,  1054,
+    1093,  1011,   283,   852,  1094,  1012,   265,   857,   266,   258,
+    1116,  1129,   323,   867,  1117,   341,  1095,  1118,  1042,   225,
+     261,   226,   272,  1056,  1119,  1120,   285,   262,  1013,  1044,
+    1014,   227,  1130,  1131,  1058,  1133,  1045,   290,   268,   228,
+    1015,  1059,   229,   853,   291,   230,   231,   858,  1016,   232,
+     233,  1017,   234,   868,  1018,  1019,  1096,   235,  1020,  1021,
+     236,  1022,   273,   237,   238,   239,  1023,   240,   241,  1024,
+     242,   243,  1025,  1026,  1027,   253,  1028,  1029,  1134,  1030,
+    1031,  1138,  1036,  1146,  1037,  1149,  1151,  1156,  1154,  1176,
+    1177,  1135,  1178,  1182,  1186,   722,   736,   583,   588,   730,
+     738,   888,   980,  1002,  1070,  1000,  1142,  1048,   625,  1069,
+    1081,  1047,  1077,  1003,  1150,  1147,  1184,  1183,  1004,  1145,
+    1005,  1153,  1155,   599,  1185,  1006,   267,  1188,  1189,  1008,
+    1007,   601,  1106,  1105,   885,  1148,  1136,  1068,  1089,  1084,
+    1067,   610,  1066,  1152,   875,   641,   618,  1102,   737,  1174,
+     644,  1187,     0,   622,     0,     0,     0,     0,  1009,     0,
+    1035,     0,  1032,  1051,     0,     0,     0,  1052,     0,     0,
+    1043,     0,     0,  1093,  1041,  1057,     0,  1094,     0,  1055,
+       0,     0,     0,     0,  1053,  1010,     0,     0,     0,  1095,
+    1040,     0,     0,     0,     0,  1054,     0,  1011,     0,     0,
+       0,  1012,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  1042,     0,     0,     0,     0,  1056,
+       0,     0,     0,     0,  1013,  1044,  1014,     0,     0,  1096,
+    1058,     0,  1045,     0,     0,     0,  1015,  1059,     0,     0,
+       0,     0,     0,     0,  1016,     0,     0,  1017,     0,     0,
+    1018,  1019,     0,     0,  1020,  1021,     0,  1022,     0,     0,
+       0,     0,  1023,     0,     0,  1024,     0,     0,  1025,  1026,
+    1027,     0,  1028,  1029,     0,  1030,  1031,     0,  1036,     0,
+    1037
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
       67,    68,    69,    70,    71,    70,    73,    74,    75,    76,
-      73,    74,    64,   653,    69,   595,    71,    68,    69,    70,
-      71,   601,    73,    74,   928,    76,    72,   928,   928,    69,
-      96,    97,    74,     0,    69,    70,    71,     3,    74,    83,
-       6,    69,   123,   124,    69,    69,     5,   565,     7,    18,
-       9,    95,    96,    97,    12,    13,     3,    68,    69,    70,
-      71,     8,    73,    74,   108,    76,     7,   111,    69,    69,
-      69,    71,   138,   139,     3,     7,    69,     6,    71,   169,
-      69,     3,   172,   173,   174,   175,     8,     3,    69,     7,
-      34,    69,     8,     3,    69,    69,     6,     3,    69,    69,
-       7,    69,     8,    15,    16,   623,    69,    19,   189,    69,
-      22,   189,    69,    69,    69,    11,    69,    69,    14,    69,
-      69,     3,    70,   189,     7,     3,     8,    23,     6,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,     7,     3,
-      84,     6,    86,    87,     8,   189,    90,    91,    92,     7,
-     123,   124,    96,    97,    96,    97,   160,   161,   162,   163,
-       7,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,     7,    96,    97,    82,    83,   192,   158,
-       3,     3,   134,   135,   136,     8,     8,    93,     3,     3,
-      96,    97,     3,     8,     8,   101,    82,     8,    17,    18,
-     106,   107,   113,   114,   115,   116,   112,   118,    10,  1123,
-       3,     7,  1123,  1123,     3,     8,   122,    20,    21,   125,
-     189,   190,   191,   192,     3,     3,   132,   133,     3,     8,
-       8,   137,     4,     8,   140,   189,     7,   189,   144,    26,
-      27,    28,    29,    30,   120,   121,     3,     7,    28,    29,
-      30,     8,    84,    85,    86,    87,    88,    89,   164,   165,
-     166,   167,     8,     3,    96,    97,   916,   189,     8,     3,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-       4,     8,     4,   189,    71,    72,    73,    74,    75,    76,
-      77,     4,    79,    80,    81,     4,    83,    96,    97,     3,
-      28,    29,    30,    83,     8,     4,     4,    94,     4,    96,
-      97,    98,    99,   100,   101,     3,    96,    97,     3,     8,
-       8,   108,     4,     8,   111,   112,     3,   107,   390,   391,
-       4,     8,   119,   113,   114,   115,   116,   117,   118,     4,
-     120,     4,   141,   142,   143,   126,   127,   128,   129,   130,
-     131,     4,     4,     4,    82,    83,    84,   189,    84,     3,
-       3,     3,     3,     3,     8,     8,     8,     8,    96,    97,
-      96,    97,     4,     4,   451,     4,     4,   164,   165,     4,
-     457,   109,   110,   102,   103,   104,   105,     4,     4,     4,
-     189,     4,   469,     4,     4,   472,   457,   472,    35,    36,
-      37,    38,   189,     8,   469,     4,   483,     4,   469,   189,
-       8,   472,     3,     8,     4,     4,   493,     3,   483,   469,
-     493,   498,   483,     4,   469,   498,     4,   472,     4,     4,
-       4,   469,   493,     4,   469,   469,   457,   498,   483,     4,
-     189,   518,   168,     4,   170,   171,   498,     4,   469,     4,
-       4,   472,   498,   192,   192,   192,     4,   518,   469,   469,
-     469,   189,   483,   189,     4,     4,   469,     4,     4,     4,
-     469,   192,   493,   483,   190,   190,   190,   498,   469,   190,
-     483,   469,   190,   190,   469,   469,   191,   190,   469,   469,
-     191,   469,     4,     4,   191,   190,   469,   518,   190,   469,
-       4,   192,   469,   469,   469,   192,   469,   469,   192,   469,
-     469,     4,   192,     4,   472,  1105,     4,     4,   190,     4,
-       4,     4,     4,     4,     4,     4,    26,    27,    28,    29,
-      30,    34,     4,     4,     4,     4,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,     4,     4,     4,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,     4,   645,   192,
-     647,    71,    72,    73,    74,    75,    76,    77,    78,    96,
-      97,    84,   644,    83,    84,     4,   647,     4,     4,     4,
-     192,     4,     4,     4,     4,     4,    96,    97,     4,    99,
-       4,   101,   190,     4,   681,   682,     4,   684,   108,     4,
-       4,   111,     4,     4,     4,     4,     4,     4,     4,   119,
-     681,   682,   683,   684,     4,     4,   647,   190,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,     4,     4,     4,     4,   192,   192,   164,   165,   192,
-       4,     4,     4,     4,   192,     4,   190,   190,   190,     4,
-     681,   682,   683,   684,   164,   165,     4,   192,   192,     4,
-       4,     4,   189,     4,     4,   190,     4,    24,     7,   189,
-       7,     7,     7,   189,   189,     7,   189,     7,     5,   189,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,     5,     5,     5,     5,     3,     5,     7,
-       5,   189,   189,   189,   189,     5,     5,     8,   192,     7,
-       7,     7,     7,     7,   189,   189,     5,     5,   189,   189,
-     189,     5,   189,   189,   189,     7,   189,   189,   189,   159,
-       5,     7,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,     7,   189,   189,   189,   189,   189,   189,   189,
-     189,     7,     7,     7,     7,     7,     7,     7,     7,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     623,     3,     6,     6,     3,     6,     6,     3,     6,     3,
-       3,     6,     3,   189,     6,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     3,   190,     6,     4,
-       6,     4,     4,     4,     4,   190,   192,   190,     4,     4,
-       4,     4,   190,   190,   190,   190,     4,     4,   192,     4,
-       4,   190,   190,   190,   190,   190,     6,     3,     5,     4,
-     190,   189,   919,     4,   190,   922,   190,   190,   925,   922,
-     192,   928,   925,   928,   919,   928,   933,   189,   919,   936,
-     933,   922,   939,   928,   925,     8,   190,   928,   933,   919,
-     189,   936,   933,   925,   919,   936,   953,   933,   928,   925,
-     957,   919,   192,   928,   919,   919,   189,     8,   933,   966,
-     928,   936,   953,   966,   928,   972,   957,   972,   919,     8,
-       3,   922,   963,     8,   925,   966,   189,   928,   919,   919,
-     919,   972,   933,   189,   189,   936,   919,   928,   928,   928,
-     919,   189,   189,   933,     4,   928,   936,   972,   919,   928,
-     933,   919,   953,   936,   919,   919,   957,   928,   919,   919,
-     928,   919,   963,   928,   928,   966,   919,   928,   928,   919,
-     928,   972,   919,   919,   919,   928,   919,   919,   928,   919,
-     919,   928,   928,   928,     4,   928,   928,     4,   928,   928,
-     928,     4,   189,     7,     4,     4,     4,     4,     4,   189,
-     636,   645,   892,   451,   457,   647,   733,   918,   913,   953,
-     931,   941,   939,   501,   921,   189,   919,   930,  1123,   948,
-     924,   922,   190,   192,   493,   192,   469,   189,   189,   927,
-     190,   190,   925,   189,   972,  1128,   189,   972,   974,   938,
-     934,   936,   957,   704,  1086,   483,   963,   684,   518,   967,
-     522,   498,   646,  1138,  1158,  1178,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   472,    -1,  1123,    -1,  1123,    -1,
-    1123,  1128,    -1,    -1,    -1,  1128,    -1,    -1,  1123,    -1,
-      -1,  1138,  1123,  1128,    -1,  1138,    -1,  1128,    -1,    -1,
-      -1,    -1,  1128,  1123,    -1,    -1,    -1,  1138,  1123,    -1,
-      -1,    -1,    -1,  1128,    -1,  1123,    -1,    -1,    -1,  1123,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1123,    -1,    -1,    -1,    -1,  1128,    -1,    -1,
-      -1,    -1,  1123,  1123,  1123,    -1,    -1,  1138,  1128,    -1,
-    1123,    -1,    -1,    -1,  1123,  1128,    -1,    -1,    -1,    -1,
-      -1,    -1,  1123,    -1,    -1,  1123,    -1,    -1,  1123,  1123,
-      -1,    -1,  1123,  1123,    -1,  1123,    -1,    -1,    -1,    -1,
-    1123,    -1,    -1,  1123,    -1,    -1,  1123,  1123,  1123,    -1,
-    1123,  1123,    -1,  1123,  1123,  1123
+      73,    74,    64,   654,    69,   929,    71,    68,    69,    70,
+      71,   596,    73,    74,   929,    76,    72,   602,   929,    69,
+      18,     0,    74,   189,    69,    70,    71,    10,    74,    97,
+      98,    69,   124,   125,    69,    69,     5,   567,     7,   169,
+       9,    83,   172,   173,   174,   175,     7,    68,    69,    70,
+      71,     7,    73,    74,     3,    76,     7,     6,    69,    69,
+      69,    71,   161,   162,   163,   164,    69,     7,    71,     7,
+      69,   139,   140,    15,    16,     7,     3,    19,    69,     6,
+      22,    69,     3,     3,    69,    69,     6,     8,    69,    69,
+      34,    69,     7,   192,   624,     3,    69,   189,     3,    69,
+       8,     6,    69,    69,    69,     7,    69,    69,     7,    69,
+      69,    85,     3,    70,    69,     3,    11,     8,     7,    14,
+       8,   189,     3,    97,    98,    12,    13,     8,    23,     6,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    17,
+      18,    85,     7,    87,    88,    97,    98,    91,    92,    93,
+      20,    21,     3,    97,    98,    97,    98,     8,     7,     3,
+       8,   159,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,     4,    97,    98,    83,    84,
+     142,   143,   144,     3,   168,     3,   170,   171,     8,    94,
+       8,  1125,    97,    98,     3,     3,     3,   102,     8,     8,
+    1125,     8,   107,   108,  1125,   189,     4,     4,   113,     4,
+     189,   190,   191,   192,   135,   136,   137,     3,   123,     3,
+       3,   126,     8,     4,     8,     8,     3,   189,   133,   134,
+       8,     8,     4,   138,     3,   189,   141,   189,     4,     8,
+     145,    26,    27,    28,    29,    30,    85,    86,    87,    88,
+      89,    90,     4,    28,    29,    30,   917,    84,    97,    98,
+     165,   166,   167,   103,   104,   105,   106,     4,   189,    96,
+      97,    98,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,   109,     4,   189,   112,    71,    72,    73,    74,
+      75,    76,    77,    78,     4,    80,    81,    82,     4,    84,
+       4,   127,   128,   129,   130,   131,   132,   124,   125,    84,
+      95,     4,    97,    98,    99,   100,   101,   102,     4,   391,
+     392,     3,    97,    98,   109,     3,     8,   112,   113,     3,
+       8,     3,     3,   108,     8,   120,     8,     8,     4,   114,
+     115,   116,   117,   118,   119,     4,   121,   121,   122,     4,
+     189,   114,   115,   116,   117,     3,   119,     4,     3,     3,
+       8,     3,   189,     8,     8,   452,     8,     3,     8,     4,
+       4,   458,     8,    35,    36,    37,    38,     4,     4,     4,
+     165,   166,     4,   470,     4,     3,   473,   458,   473,     4,
+       4,     8,     3,   189,     4,   470,     4,   484,     3,   470,
+       4,     8,   473,     4,   189,     4,     4,   494,     4,   484,
+     470,   494,   499,   484,   189,   470,   499,     4,   473,     4,
+       4,     4,   470,   494,     4,   470,   470,   458,   499,   484,
+     192,     4,   519,   192,   192,     4,     4,   499,     4,   470,
+       4,     4,   473,   499,     4,   190,   190,   190,   519,   470,
+     470,   470,   190,   484,    28,    29,    30,   470,   190,   192,
+     191,   470,   191,   494,   484,   191,   190,   190,   499,   470,
+       4,   484,   470,   190,   190,   470,   470,   192,   192,   470,
+     470,   192,   470,     4,     4,     4,     4,   470,   519,   192,
+     470,   192,     4,   470,   470,   470,     4,   470,   470,     4,
+     470,   470,     4,   190,     4,   470,   473,     4,     4,    83,
+      84,    85,  1107,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,    97,    98,     4,     4,     4,     4,   192,
+       4,     4,     4,    34,     4,     4,   110,   111,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,     4,   190,     4,   646,
+       4,   648,     4,     4,     4,   189,     4,     4,     4,     4,
+       4,     4,     4,   645,     4,     4,     4,   648,   190,     4,
+       4,     4,     4,   192,    85,     4,   192,    26,    27,    28,
+      29,    30,   192,     4,     4,   682,   683,   192,   685,   190,
+       4,   190,   190,     4,     4,     4,   192,     4,     4,     4,
+     192,   682,   683,   684,   685,   189,     4,   648,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,   190,     4,
+       7,     7,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    97,    98,     7,     7,    84,    85,   189,   189,     7,
+       7,   682,   683,   684,   685,     5,   189,   189,    97,    98,
+     189,   100,     5,   102,     5,     5,     5,   189,     5,     7,
+     109,     5,     5,   112,     5,     7,   189,     7,     7,     7,
+       7,   120,   189,     5,     5,   189,   189,     5,   189,   160,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,     7,     5,    24,     4,     7,   189,   165,
+     166,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,     7,   189,   165,   166,   189,   189,
+     189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
+     189,     7,   189,     7,   189,     7,   189,     7,     7,     7,
+     189,     7,     7,     4,     4,     4,     4,     4,   189,     4,
+       4,     4,   189,   189,     4,     4,     3,     8,   189,   189,
+       6,   189,   189,   189,     6,     3,     6,     3,     3,     6,
+       3,   189,     6,     3,     6,     6,     3,     6,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+     190,     6,     4,     4,     4,     4,     4,   192,   190,   192,
+     190,     4,     4,     4,     4,     4,   190,   190,   190,   190,
+       4,   190,   192,   190,   190,   190,     4,     4,   190,   190,
+     190,   190,     6,   920,   190,     3,   923,   192,   192,   926,
+     923,   190,   929,   926,   929,   920,   929,   934,     4,   920,
+     937,   934,   923,   940,   929,   926,     8,     8,   929,   934,
+     920,     4,   937,   934,   926,   920,   937,   954,   934,   929,
+     926,   958,   920,   189,   929,   920,   920,   189,   189,   934,
+     967,   929,   937,   954,   967,   929,   973,   958,   973,   920,
+     189,     8,   923,   964,   189,   926,   967,   189,   929,   920,
+     920,   920,   973,   934,   189,   189,   937,   920,   929,   929,
+     929,   920,     3,     8,   934,   189,   929,   937,   973,   920,
+     929,   934,   920,   954,   937,   920,   920,   958,   929,   920,
+     920,   929,   920,   964,   929,   929,   967,   920,   929,   929,
+     920,   929,   973,   920,   920,   920,   929,   920,   920,   929,
+     920,   920,   929,   929,   929,   920,   929,   929,   189,   929,
+     929,     4,   929,     4,   929,     4,     4,     7,     5,     4,
+       4,   189,     4,     4,     4,   624,   646,   452,   458,   637,
+     648,   734,   893,   919,   942,   914,   189,   932,   502,   940,
+     954,   931,   949,   920,   190,   192,   190,   192,   922,  1125,
+     923,   189,   189,   470,   190,   925,   973,   189,   189,   928,
+     926,   473,   975,   973,   705,  1130,  1088,   939,   964,   958,
+     937,   484,   935,  1140,   685,   519,   494,   968,   647,  1160,
+     523,  1180,    -1,   499,    -1,    -1,    -1,    -1,  1125,    -1,
+    1125,    -1,  1125,  1130,    -1,    -1,    -1,  1130,    -1,    -1,
+    1125,    -1,    -1,  1140,  1125,  1130,    -1,  1140,    -1,  1130,
+      -1,    -1,    -1,    -1,  1130,  1125,    -1,    -1,    -1,  1140,
+    1125,    -1,    -1,    -1,    -1,  1130,    -1,  1125,    -1,    -1,
+      -1,  1125,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  1125,    -1,    -1,    -1,    -1,  1130,
+      -1,    -1,    -1,    -1,  1125,  1125,  1125,    -1,    -1,  1140,
+    1130,    -1,  1125,    -1,    -1,    -1,  1125,  1130,    -1,    -1,
+      -1,    -1,    -1,    -1,  1125,    -1,    -1,  1125,    -1,    -1,
+    1125,  1125,    -1,    -1,  1125,  1125,    -1,  1125,    -1,    -1,
+      -1,    -1,  1125,    -1,    -1,  1125,    -1,    -1,  1125,  1125,
+    1125,    -1,  1125,  1125,    -1,  1125,  1125,    -1,  1125,    -1,
+    1125
   };
 
   const short
@@ -5057,113 +5059,113 @@ namespace isc { namespace dhcp {
       26,    27,    28,    29,    30,    31,    32,    33,    57,    58,
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      82,    83,    93,    96,    97,   101,   106,   107,   112,   122,
-     125,   132,   133,   137,   140,   144,   164,   165,   166,   167,
+      79,    83,    84,    94,    97,    98,   102,   107,   108,   113,
+     123,   126,   133,   134,   138,   141,   145,   165,   166,   167,
      189,   223,   230,   231,   232,   233,   234,   235,   236,   237,
      238,   239,   240,   241,   242,   243,   245,   246,   247,   248,
-     249,   250,   251,   254,   256,   258,   260,   262,   263,   264,
+     249,   250,   251,   254,   256,   258,   259,   261,   263,   264,
      265,   266,   281,   283,   289,   291,   329,   338,   345,   359,
      369,   393,   397,   405,   431,   461,   463,   465,   476,   478,
      480,   503,   515,   516,   524,   534,   565,   574,    15,    16,
       19,    22,   223,   268,   269,   272,   274,   277,   280,   461,
-     463,    79,    80,    81,    94,    98,    99,   100,   108,   111,
-     119,   223,   232,   233,   234,   235,   236,   237,   238,   239,
+     463,    80,    81,    82,    95,    99,   100,   101,   109,   112,
+     120,   223,   232,   233,   234,   235,   236,   237,   238,   239,
      240,   241,   246,   247,   248,   249,   250,   251,   254,   256,
-     258,   260,   262,   377,   378,   379,   381,   383,   385,   387,
-     389,   391,   393,   396,   431,   449,   461,   463,   465,   476,
-     478,   480,   500,    95,   223,   389,   391,   431,   457,   458,
-     459,   461,   463,   107,   113,   114,   115,   116,   117,   118,
-     120,   223,   431,   461,   463,   473,   474,   475,   476,   478,
-     480,   482,   486,   488,   490,   492,   494,   496,   498,   405,
-      34,    84,    86,    87,    90,    91,    92,   223,   309,   415,
-     416,   417,   418,   419,   420,   421,   423,   425,   427,   428,
-     430,   461,   463,    85,    88,    89,   223,   309,   419,   425,
-     439,   440,   441,   442,   443,   445,   446,   447,   448,   461,
-     463,   123,   124,   223,   353,   354,   355,   357,   145,   146,
+     258,   259,   261,   263,   377,   378,   379,   381,   383,   385,
+     387,   389,   391,   393,   396,   431,   449,   461,   463,   465,
+     476,   478,   480,   500,    96,   223,   389,   391,   431,   457,
+     458,   459,   461,   463,   108,   114,   115,   116,   117,   118,
+     119,   121,   223,   431,   461,   463,   473,   474,   475,   476,
+     478,   480,   482,   486,   488,   490,   492,   494,   496,   498,
+     405,    34,    85,    87,    88,    91,    92,    93,   223,   309,
+     415,   416,   417,   418,   419,   420,   421,   423,   425,   427,
+     428,   430,   461,   463,    86,    89,    90,   223,   309,   419,
+     425,   439,   440,   441,   442,   443,   445,   446,   447,   448,
+     461,   463,   124,   125,   223,   353,   354,   355,   357,   146,
      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   164,   165,   223,   461,   463,   538,   539,   540,   541,
-     543,   544,   546,   547,   548,   551,   553,   555,   556,   557,
-     559,   561,   563,    12,    13,   569,   570,   571,   573,     6,
-       3,     4,     8,     3,   227,     8,   566,   267,   284,     4,
-       4,     4,   477,   479,   481,   282,   290,   292,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   244,
-       4,     4,     4,     4,     4,   252,   255,   257,     4,   370,
-     406,   432,   398,   462,   464,   394,   330,   504,   466,   346,
-     360,     4,   339,   517,   525,   535,   259,   261,     4,   575,
-       4,     3,     8,   273,   275,   278,     4,     3,     8,   382,
-     384,   386,   450,   380,   388,     4,   392,   390,   501,     3,
-       8,   460,     3,     8,   499,   487,   489,   493,   491,   497,
-     495,   483,     8,     3,     8,   422,   310,     4,   426,   424,
-     429,     4,     8,     3,   444,     4,     4,     8,     3,   356,
-     358,     3,     8,     4,   554,   542,     4,   545,     4,     4,
-     549,   552,     4,     4,   558,   560,   562,   564,     3,     8,
-     572,     4,     3,     8,   208,   208,   189,     4,     4,     4,
-       4,   192,   192,   192,     4,     4,     4,     4,     4,     4,
-     190,   190,   190,   190,   190,   192,   191,   191,   191,   190,
-     190,     4,   190,   190,   192,   192,   192,     4,     4,     4,
-     192,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   190,     4,     4,     4,     4,     4,     4,
-     192,     4,   231,     4,     4,     4,   192,   269,     4,     4,
-       4,     4,     4,     4,   190,     4,     4,     4,   378,     4,
-     458,     4,     4,     4,     4,     4,     4,     4,     4,   475,
-       4,     4,   190,     4,     4,     4,   192,   417,     4,   192,
-     192,   441,     4,     4,   354,   192,     4,     4,   190,     4,
-     190,   190,     4,     4,   192,   192,     4,     4,     4,     4,
-     539,     4,   190,   570,     4,     7,     7,     7,     7,   189,
-     189,   189,     7,     7,     5,   189,   160,   161,   162,   163,
-     192,   253,   189,   189,     5,     5,     5,     5,   210,   212,
-     189,   102,   103,   104,   105,   395,     5,     5,     5,     5,
-       7,     7,     7,     7,     7,   189,   189,     5,     5,   219,
-      17,    18,   276,    20,    21,   279,   189,   189,   189,     5,
-     189,   189,   219,   189,     7,   189,   219,   189,   189,   189,
+     157,   158,   165,   166,   223,   461,   463,   538,   539,   540,
+     541,   543,   544,   546,   547,   548,   551,   553,   555,   556,
+     557,   559,   561,   563,    12,    13,   569,   570,   571,   573,
+       6,     3,     4,     8,     3,   227,     8,   566,   267,   284,
+       4,     4,     4,   477,   479,   481,   282,   290,   292,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+     244,     4,     4,     4,     4,     4,   252,   255,   257,     4,
+       4,   370,   406,   432,   398,   462,   464,   394,   330,   504,
+     466,   346,   360,     4,   339,   517,   525,   535,   260,   262,
+     575,     4,     3,     8,   273,   275,   278,     4,     3,     8,
+     382,   384,   386,   450,   380,   388,     4,   392,   390,   501,
+       3,     8,   460,     3,     8,   499,   487,   489,   493,   491,
+     497,   495,   483,     8,     3,     8,   422,   310,     4,   426,
+     424,   429,     4,     8,     3,   444,     4,     4,     8,     3,
+     356,   358,     3,     8,     4,   554,   542,     4,   545,     4,
+       4,   549,   552,     4,     4,   558,   560,   562,   564,     3,
+       8,   572,     4,     3,     8,   208,   208,   189,     4,     4,
+       4,     4,   192,   192,   192,     4,     4,     4,     4,     4,
+       4,   190,   190,   190,   190,   190,   192,   191,   191,   191,
+     190,   190,     4,   190,   190,   192,   192,   192,     4,     4,
+       4,   192,   192,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,   190,     4,     4,     4,     4,
+       4,     4,     4,   231,     4,     4,     4,   192,   269,     4,
+       4,     4,     4,     4,     4,   190,     4,     4,     4,   378,
+       4,   458,     4,     4,     4,     4,     4,     4,     4,     4,
+     475,     4,     4,   190,     4,     4,     4,   192,   417,     4,
+     192,   192,   441,     4,     4,   354,   192,     4,     4,   190,
+       4,   190,   190,     4,     4,   192,   192,     4,     4,     4,
+       4,   539,     4,   190,   570,     4,     7,     7,     7,     7,
+     189,   189,   189,     7,     7,     5,   189,   161,   162,   163,
+     164,   192,   253,   189,   189,     5,     5,     5,     5,   210,
+     212,   189,   103,   104,   105,   106,   395,     5,     5,     5,
+       5,     7,     7,     7,     7,     7,   189,   189,     5,     5,
+     219,    17,    18,   276,    20,    21,   279,   189,   189,   189,
+       5,   189,   189,   219,   189,     7,   189,   219,   189,   189,
      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   212,   189,   189,   189,    18,   158,   550,   159,   253,
-     189,   189,   189,     5,   208,   230,   569,   268,    24,   285,
-     286,   287,    34,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,   223,   297,   298,   299,   302,   304,   306,   308,   309,
-     311,   312,   313,   314,   315,   316,   317,   318,   320,   322,
-     324,   326,   327,   328,   297,     7,   293,   294,   295,     7,
-     371,   372,   373,     7,   409,   410,   411,     7,   433,   434,
-     435,     7,   399,   400,   401,   113,   114,   115,   116,   118,
-     331,   332,   333,   334,   335,   336,   337,     7,   505,   506,
-       7,   467,   468,   469,     7,   347,   348,   349,   126,   127,
-     128,   129,   130,   131,   361,   362,   363,   364,   365,   366,
-     367,   368,   134,   135,   136,   223,   340,   341,   342,   343,
-     344,   461,   463,   138,   139,   223,   461,   463,   518,   519,
-     520,   522,   141,   142,   143,   189,   461,   463,   526,   527,
-     528,   529,   531,   532,   538,     7,   576,   577,   220,     7,
-     451,   452,   453,   121,   482,   484,   502,   293,     8,     8,
-       8,   288,     3,     8,   300,   303,   305,   307,     4,     4,
-       4,     4,     4,   319,   321,   323,   325,     4,     4,     4,
-       4,     4,     4,     3,     8,     8,   296,     6,     3,   374,
-       6,     3,   412,     6,     3,   436,     6,     3,   402,     6,
-       3,     3,     6,   507,     3,     6,   470,     6,     3,   350,
-       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
-       4,     4,     4,     3,     8,   521,   523,     3,     8,     4,
-     530,     4,   533,     3,     8,     8,   578,     3,     6,   189,
-     221,   222,   454,     6,     3,   485,     8,     6,     4,   286,
-       4,     4,     4,     4,   190,   192,   190,   192,   190,     4,
-       4,     4,     4,   190,   190,   190,   190,   192,   190,   298,
-     297,   295,   377,   373,   415,   411,   439,   435,   223,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   246,
-     247,   248,   249,   250,   251,   254,   256,   258,   260,   262,
-     309,   369,   387,   389,   391,   393,   403,   404,   431,   461,
-     463,   476,   478,   480,   500,   401,   332,   109,   110,   223,
-     309,   405,   431,   461,   463,   476,   478,   480,   508,   509,
-     510,   511,   512,   514,   506,   473,   469,   353,   349,   190,
-     190,   190,   190,   190,   190,   362,   192,   190,   190,   341,
-       4,     4,   519,   192,     4,   190,     4,   527,   168,   170,
-     171,   223,   309,   461,   463,   579,   580,   581,   582,   584,
-     577,     6,     3,   457,   453,     4,   189,    35,    36,    37,
-      38,   301,   189,   189,   189,   189,   189,   189,   189,     8,
-       8,     8,     8,     3,     8,   513,     4,     8,     3,     8,
-       8,   189,   189,   189,   208,   585,     4,   583,     3,     8,
-     189,     8,   219,   404,     4,   192,   510,     4,   190,     4,
-     580,   189,     5,   189,     7,   586,   587,   588,     3,     6,
-     169,   172,   173,   174,   175,   589,   590,   591,   593,   594,
-     595,   596,   587,   592,     4,     4,     4,   597,     3,     8,
-       4,   192,   190,   190,     4,   590,   189,   189
+     189,   189,   212,   189,   189,   189,    18,   159,   550,   160,
+     253,   189,   189,   189,     5,   208,   230,   569,   268,    24,
+     285,   286,   287,    34,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,   223,   297,   298,   299,   302,   304,   306,   308,
+     309,   311,   312,   313,   314,   315,   316,   317,   318,   320,
+     322,   324,   326,   327,   328,   297,     7,   293,   294,   295,
+       7,   371,   372,   373,     7,   409,   410,   411,     7,   433,
+     434,   435,     7,   399,   400,   401,   114,   115,   116,   117,
+     119,   331,   332,   333,   334,   335,   336,   337,     7,   505,
+     506,     7,   467,   468,   469,     7,   347,   348,   349,   127,
+     128,   129,   130,   131,   132,   361,   362,   363,   364,   365,
+     366,   367,   368,   135,   136,   137,   223,   340,   341,   342,
+     343,   344,   461,   463,   139,   140,   223,   461,   463,   518,
+     519,   520,   522,   142,   143,   144,   189,   461,   463,   526,
+     527,   528,   529,   531,   532,   538,     7,   576,   577,   220,
+       7,   451,   452,   453,   122,   482,   484,   502,   293,     8,
+       8,     8,   288,     3,     8,   300,   303,   305,   307,     4,
+       4,     4,     4,     4,   319,   321,   323,   325,     4,     4,
+       4,     4,     4,     4,     3,     8,     8,   296,     6,     3,
+     374,     6,     3,   412,     6,     3,   436,     6,     3,   402,
+       6,     3,     3,     6,   507,     3,     6,   470,     6,     3,
+     350,     6,     3,     4,     4,     4,     4,     4,     4,     3,
+       8,     4,     4,     4,     3,     8,   521,   523,     3,     8,
+       4,   530,     4,   533,     3,     8,     8,   578,     3,     6,
+     189,   221,   222,   454,     6,     3,   485,     8,     6,     4,
+     286,     4,     4,     4,     4,   190,   192,   190,   192,   190,
+       4,     4,     4,     4,   190,   190,   190,   190,   192,   190,
+     298,   297,   295,   377,   373,   415,   411,   439,   435,   223,
+     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
+     246,   247,   248,   249,   250,   251,   254,   256,   258,   259,
+     261,   263,   309,   369,   387,   389,   391,   393,   403,   404,
+     431,   461,   463,   476,   478,   480,   500,   401,   332,   110,
+     111,   223,   309,   405,   431,   461,   463,   476,   478,   480,
+     508,   509,   510,   511,   512,   514,   506,   473,   469,   353,
+     349,   190,   190,   190,   190,   190,   190,   362,   192,   190,
+     190,   341,     4,     4,   519,   192,     4,   190,     4,   527,
+     168,   170,   171,   223,   309,   461,   463,   579,   580,   581,
+     582,   584,   577,     6,     3,   457,   453,     4,   189,    35,
+      36,    37,    38,   301,   189,   189,   189,   189,   189,   189,
+     189,     8,     8,     8,     8,     3,     8,   513,     4,     8,
+       3,     8,     8,   189,   189,   189,   208,   585,     4,   583,
+       3,     8,   189,     8,   219,   404,     4,   192,   510,     4,
+     190,     4,   580,   189,     5,   189,     7,   586,   587,   588,
+       3,     6,   169,   172,   173,   174,   175,   589,   590,   591,
+     593,   594,   595,   596,   587,   592,     4,     4,     4,   597,
+       3,     8,     4,   192,   190,   190,     4,   590,   189,   189
   };
 
   const short
@@ -5183,8 +5185,8 @@ namespace isc { namespace dhcp {
      231,   231,   231,   231,   231,   231,   231,   231,   231,   232,
      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
      244,   243,   245,   246,   247,   248,   249,   250,   252,   251,
-     253,   253,   253,   253,   253,   255,   254,   257,   256,   259,
-     258,   261,   260,   262,   263,   264,   265,   267,   266,   268,
+     253,   253,   253,   253,   253,   255,   254,   257,   256,   258,
+     260,   259,   262,   261,   263,   264,   265,   267,   266,   268,
      268,   269,   269,   269,   269,   269,   269,   269,   271,   270,
      273,   272,   275,   274,   276,   276,   278,   277,   279,   279,
      280,   282,   281,   284,   283,   285,   285,   286,   288,   287,
@@ -5206,44 +5208,44 @@ namespace isc { namespace dhcp {
      378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
      378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
      378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
-     380,   379,   382,   381,   384,   383,   386,   385,   388,   387,
-     390,   389,   392,   391,   394,   393,   395,   395,   395,   395,
-     396,   398,   397,   399,   399,   400,   400,   402,   401,   403,
-     403,   404,   404,   404,   404,   404,   404,   404,   404,   404,
+     378,   380,   379,   382,   381,   384,   383,   386,   385,   388,
+     387,   390,   389,   392,   391,   394,   393,   395,   395,   395,
+     395,   396,   398,   397,   399,   399,   400,   400,   402,   401,
+     403,   403,   404,   404,   404,   404,   404,   404,   404,   404,
      404,   404,   404,   404,   404,   404,   404,   404,   404,   404,
      404,   404,   404,   404,   404,   404,   404,   404,   404,   404,
-     404,   404,   404,   404,   404,   404,   406,   405,   408,   407,
-     409,   409,   410,   410,   412,   411,   414,   413,   415,   415,
-     416,   416,   417,   417,   417,   417,   417,   417,   417,   417,
-     417,   417,   418,   419,   420,   422,   421,   424,   423,   426,
-     425,   427,   429,   428,   430,   432,   431,   433,   433,   434,
-     434,   436,   435,   438,   437,   439,   439,   440,   440,   441,
-     441,   441,   441,   441,   441,   441,   441,   441,   442,   444,
-     443,   445,   446,   447,   448,   450,   449,   451,   451,   452,
-     452,   454,   453,   456,   455,   457,   457,   458,   458,   458,
-     458,   458,   458,   458,   460,   459,   462,   461,   464,   463,
-     466,   465,   467,   467,   468,   468,   470,   469,   472,   471,
-     473,   473,   474,   474,   475,   475,   475,   475,   475,   475,
-     475,   475,   475,   475,   475,   475,   475,   475,   475,   477,
-     476,   479,   478,   481,   480,   483,   482,   485,   484,   487,
-     486,   489,   488,   491,   490,   493,   492,   495,   494,   497,
-     496,   499,   498,   501,   500,   502,   502,   504,   503,   505,
-     505,   507,   506,   508,   508,   509,   509,   510,   510,   510,
-     510,   510,   510,   510,   510,   510,   510,   510,   511,   513,
-     512,   514,   515,   517,   516,   518,   518,   519,   519,   519,
-     519,   519,   521,   520,   523,   522,   525,   524,   526,   526,
-     527,   527,   527,   527,   527,   527,   528,   530,   529,   531,
-     533,   532,   535,   534,   537,   536,   538,   538,   539,   539,
+     404,   404,   404,   404,   404,   404,   404,   404,   406,   405,
+     408,   407,   409,   409,   410,   410,   412,   411,   414,   413,
+     415,   415,   416,   416,   417,   417,   417,   417,   417,   417,
+     417,   417,   417,   417,   418,   419,   420,   422,   421,   424,
+     423,   426,   425,   427,   429,   428,   430,   432,   431,   433,
+     433,   434,   434,   436,   435,   438,   437,   439,   439,   440,
+     440,   441,   441,   441,   441,   441,   441,   441,   441,   441,
+     442,   444,   443,   445,   446,   447,   448,   450,   449,   451,
+     451,   452,   452,   454,   453,   456,   455,   457,   457,   458,
+     458,   458,   458,   458,   458,   458,   460,   459,   462,   461,
+     464,   463,   466,   465,   467,   467,   468,   468,   470,   469,
+     472,   471,   473,   473,   474,   474,   475,   475,   475,   475,
+     475,   475,   475,   475,   475,   475,   475,   475,   475,   475,
+     475,   477,   476,   479,   478,   481,   480,   483,   482,   485,
+     484,   487,   486,   489,   488,   491,   490,   493,   492,   495,
+     494,   497,   496,   499,   498,   501,   500,   502,   502,   504,
+     503,   505,   505,   507,   506,   508,   508,   509,   509,   510,
+     510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
+     511,   513,   512,   514,   515,   517,   516,   518,   518,   519,
+     519,   519,   519,   519,   521,   520,   523,   522,   525,   524,
+     526,   526,   527,   527,   527,   527,   527,   527,   528,   530,
+     529,   531,   533,   532,   535,   534,   537,   536,   538,   538,
      539,   539,   539,   539,   539,   539,   539,   539,   539,   539,
-     539,   539,   539,   539,   539,   539,   540,   542,   541,   543,
-     545,   544,   546,   547,   549,   548,   550,   550,   552,   551,
-     554,   553,   555,   556,   558,   557,   560,   559,   562,   561,
-     564,   563,   566,   565,   568,   567,   569,   569,   570,   570,
-     572,   571,   573,   575,   574,   576,   576,   578,   577,   579,
-     579,   580,   580,   580,   580,   580,   580,   580,   581,   583,
-     582,   585,   584,   586,   586,   588,   587,   589,   589,   590,
-     590,   590,   590,   590,   592,   591,   593,   594,   595,   597,
-     596
+     539,   539,   539,   539,   539,   539,   539,   539,   540,   542,
+     541,   543,   545,   544,   546,   547,   549,   548,   550,   550,
+     552,   551,   554,   553,   555,   556,   558,   557,   560,   559,
+     562,   561,   564,   563,   566,   565,   568,   567,   569,   569,
+     570,   570,   572,   571,   573,   575,   574,   576,   576,   578,
+     577,   579,   579,   580,   580,   580,   580,   580,   580,   580,
+     581,   583,   582,   585,   584,   586,   586,   588,   587,   589,
+     589,   590,   590,   590,   590,   590,   592,   591,   593,   594,
+     595,   597,   596
   };
 
   const signed char
@@ -5263,8 +5265,8 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        0,     4,     3,     3,     3,     3,     3,     3,     0,     4,
-       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       4,     0,     4,     3,     3,     3,     3,     0,     6,     1,
+       1,     1,     1,     1,     1,     0,     4,     0,     4,     3,
+       0,     4,     0,     4,     3,     3,     3,     0,     6,     1,
        3,     1,     1,     1,     1,     1,     1,     1,     0,     4,
        0,     4,     0,     4,     1,     1,     0,     4,     1,     1,
        3,     0,     6,     0,     6,     1,     3,     1,     0,     4,
@@ -5286,44 +5288,44 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     4,     1,     1,     1,     1,
-       3,     0,     6,     0,     1,     1,     3,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     4,     0,     4,     1,     1,     1,
+       1,     3,     0,     6,     0,     1,     1,     3,     0,     4,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     6,     0,     4,
-       0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     3,     1,     0,     4,     0,     4,     0,
-       4,     1,     0,     4,     3,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     0,     1,     1,     3,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     1,     1,     3,     3,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
+       0,     4,     0,     1,     1,     3,     0,     4,     0,     4,
        0,     1,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
+       1,     1,     1,     1,     1,     3,     1,     0,     4,     0,
+       4,     0,     4,     1,     0,     4,     3,     0,     6,     0,
+       1,     1,     3,     0,     4,     0,     4,     0,     1,     1,
+       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     1,     1,     3,     3,     0,     6,     0,
+       1,     1,     3,     0,     4,     0,     4,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     0,     4,
+       0,     4,     0,     6,     0,     1,     1,     3,     0,     4,
+       0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     0,     4,     0,     4,     0,     4,     0,
        4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
-       4,     0,     4,     0,     6,     1,     1,     0,     6,     1,
-       3,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     3,     3,     0,     6,     1,     3,     1,     1,     1,
-       1,     1,     0,     4,     0,     4,     0,     6,     1,     3,
-       1,     1,     1,     1,     1,     1,     3,     0,     4,     3,
-       0,     4,     0,     6,     0,     4,     1,     3,     1,     1,
+       4,     0,     4,     0,     4,     0,     6,     1,     1,     0,
+       6,     1,     3,     0,     4,     0,     1,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     3,     3,     0,     6,     1,     3,     1,
+       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
+       1,     3,     1,     1,     1,     1,     1,     1,     3,     0,
+       4,     3,     0,     4,     0,     6,     0,     4,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     3,     0,     4,     3,
-       0,     4,     3,     3,     0,     4,     1,     1,     0,     4,
-       0,     4,     3,     3,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     6,     0,     4,     1,     3,     1,     1,
-       0,     6,     3,     0,     6,     1,     3,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     0,     6,     1,     3,     0,     4,     1,     3,     1,
-       1,     1,     1,     1,     0,     4,     3,     3,     3,     0,
-       4
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     0,
+       4,     3,     0,     4,     3,     3,     0,     4,     1,     1,
+       0,     4,     0,     4,     3,     3,     0,     4,     0,     4,
+       0,     4,     0,     4,     0,     6,     0,     4,     1,     3,
+       1,     1,     0,     6,     3,     0,     6,     1,     3,     0,
+       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       3,     0,     4,     0,     6,     1,     3,     0,     4,     1,
+       3,     1,     1,     1,     1,     1,     0,     4,     3,     3,
+       3,     0,     4
   };
 
 
@@ -5358,10 +5360,10 @@ namespace isc { namespace dhcp {
   "\"ddns-send-updates\"", "\"ddns-override-no-update\"",
   "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"",
   "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"",
-  "\"store-extended-info\"", "\"subnet4\"", "\"4o6-interface\"",
-  "\"4o6-interface-id\"", "\"4o6-subnet\"", "\"option-def\"",
-  "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"",
-  "\"csv-format\"", "\"always-send\"", "\"record-types\"",
+  "\"ddns-update-on-renew\"", "\"store-extended-info\"", "\"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\"",
@@ -5385,10 +5387,9 @@ namespace isc { namespace dhcp {
   "\"override-no-update\"", "\"override-client-update\"",
   "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"",
   "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"",
-  "\"hostname-char-set\"", "\"hostname-char-replacement\"",
-  "\"ip-reservations-unique\"", "\"loggers\"", "\"output_options\"",
-  "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"",
-  "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON",
+  "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"loggers\"",
+  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
+  "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON",
   "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4",
   "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
   "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS",
@@ -5408,10 +5409,10 @@ namespace isc { namespace dhcp {
   "ddns_send_updates", "ddns_override_no_update",
   "ddns_override_client_update", "ddns_replace_client_name", "$@21",
   "ddns_replace_client_name_value", "ddns_generated_prefix", "$@22",
-  "ddns_qualifying_suffix", "$@23", "hostname_char_set", "$@24",
-  "hostname_char_replacement", "$@25", "store_extended_info",
-  "statistic_default_sample_count", "statistic_default_sample_age",
-  "ip_reservations_unique", "interfaces_config", "$@26",
+  "ddns_qualifying_suffix", "$@23", "ddns_update_on_renew",
+  "hostname_char_set", "$@24", "hostname_char_replacement", "$@25",
+  "store_extended_info", "statistic_default_sample_count",
+  "statistic_default_sample_age", "interfaces_config", "$@26",
   "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
   "$@27", "interfaces_list", "$@28", "dhcp_socket_type", "$@29",
   "socket_type", "outbound_interface", "$@30", "outbound_interface_value",
@@ -5516,7 +5517,7 @@ namespace isc { namespace dhcp {
      512,   518,   524,   530,   536,   542,   548,   554,   560,   566,
      572,   572,   581,   587,   593,   599,   605,   611,   617,   617,
      626,   629,   632,   635,   638,   644,   644,   653,   653,   662,
-     662,   671,   671,   680,   686,   692,   698,   704,   704,   716,
+     668,   668,   677,   677,   686,   692,   698,   704,   704,   716,
      717,   720,   721,   722,   723,   724,   725,   726,   729,   729,
      738,   738,   749,   749,   757,   758,   761,   761,   769,   771,
      775,   782,   782,   795,   795,   806,   807,   809,   811,   811,
@@ -5538,44 +5539,44 @@ namespace isc { namespace dhcp {
     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,
-    1383,  1383,  1392,  1392,  1401,  1401,  1410,  1410,  1419,  1419,
-    1428,  1428,  1437,  1437,  1448,  1448,  1456,  1457,  1458,  1459,
-    1462,  1470,  1470,  1482,  1483,  1487,  1488,  1491,  1491,  1499,
-    1500,  1503,  1504,  1505,  1506,  1507,  1508,  1509,  1510,  1511,
+    1381,  1384,  1384,  1393,  1393,  1402,  1402,  1411,  1411,  1420,
+    1420,  1429,  1429,  1438,  1438,  1449,  1449,  1457,  1458,  1459,
+    1460,  1463,  1471,  1471,  1483,  1484,  1488,  1489,  1492,  1492,
+    1500,  1501,  1504,  1505,  1506,  1507,  1508,  1509,  1510,  1511,
     1512,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,  1521,
     1522,  1523,  1524,  1525,  1526,  1527,  1528,  1529,  1530,  1531,
-    1532,  1533,  1534,  1535,  1536,  1537,  1544,  1544,  1558,  1558,
-    1567,  1568,  1571,  1572,  1577,  1577,  1592,  1592,  1606,  1607,
-    1610,  1611,  1614,  1615,  1616,  1617,  1618,  1619,  1620,  1621,
-    1622,  1623,  1626,  1628,  1634,  1636,  1636,  1645,  1645,  1654,
-    1654,  1663,  1665,  1665,  1674,  1684,  1684,  1697,  1698,  1703,
-    1704,  1709,  1709,  1721,  1721,  1733,  1734,  1739,  1740,  1745,
-    1746,  1747,  1748,  1749,  1750,  1751,  1752,  1753,  1756,  1758,
-    1758,  1767,  1769,  1771,  1777,  1786,  1786,  1799,  1800,  1803,
-    1804,  1807,  1807,  1817,  1817,  1827,  1828,  1831,  1832,  1833,
-    1834,  1835,  1836,  1837,  1840,  1840,  1849,  1849,  1874,  1874,
-    1904,  1904,  1915,  1916,  1919,  1920,  1923,  1923,  1932,  1932,
-    1941,  1942,  1945,  1946,  1950,  1951,  1952,  1953,  1954,  1955,
-    1956,  1957,  1958,  1959,  1960,  1961,  1962,  1963,  1964,  1967,
-    1967,  1976,  1976,  1985,  1985,  1994,  1994,  2003,  2003,  2014,
-    2014,  2023,  2023,  2032,  2032,  2041,  2041,  2050,  2050,  2059,
-    2059,  2068,  2068,  2082,  2082,  2093,  2094,  2100,  2100,  2111,
-    2112,  2115,  2115,  2125,  2126,  2129,  2130,  2133,  2134,  2135,
-    2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2146,  2148,
-    2148,  2157,  2165,  2173,  2173,  2184,  2185,  2188,  2189,  2190,
-    2191,  2192,  2195,  2195,  2204,  2204,  2216,  2216,  2229,  2230,
-    2233,  2234,  2235,  2236,  2237,  2238,  2241,  2247,  2247,  2256,
-    2262,  2262,  2272,  2272,  2285,  2285,  2295,  2296,  2299,  2300,
+    1532,  1533,  1534,  1535,  1536,  1537,  1538,  1539,  1546,  1546,
+    1560,  1560,  1569,  1570,  1573,  1574,  1579,  1579,  1594,  1594,
+    1608,  1609,  1612,  1613,  1616,  1617,  1618,  1619,  1620,  1621,
+    1622,  1623,  1624,  1625,  1628,  1630,  1636,  1638,  1638,  1647,
+    1647,  1656,  1656,  1665,  1667,  1667,  1676,  1686,  1686,  1699,
+    1700,  1705,  1706,  1711,  1711,  1723,  1723,  1735,  1736,  1741,
+    1742,  1747,  1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,
+    1758,  1760,  1760,  1769,  1771,  1773,  1779,  1788,  1788,  1801,
+    1802,  1805,  1806,  1809,  1809,  1819,  1819,  1829,  1830,  1833,
+    1834,  1835,  1836,  1837,  1838,  1839,  1842,  1842,  1851,  1851,
+    1876,  1876,  1906,  1906,  1917,  1918,  1921,  1922,  1925,  1925,
+    1934,  1934,  1943,  1944,  1947,  1948,  1952,  1953,  1954,  1955,
+    1956,  1957,  1958,  1959,  1960,  1961,  1962,  1963,  1964,  1965,
+    1966,  1969,  1969,  1978,  1978,  1987,  1987,  1996,  1996,  2005,
+    2005,  2016,  2016,  2025,  2025,  2034,  2034,  2043,  2043,  2052,
+    2052,  2061,  2061,  2070,  2070,  2084,  2084,  2095,  2096,  2102,
+    2102,  2113,  2114,  2117,  2117,  2127,  2128,  2131,  2132,  2135,
+    2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,  2145,
+    2148,  2150,  2150,  2159,  2167,  2175,  2175,  2186,  2187,  2190,
+    2191,  2192,  2193,  2194,  2197,  2197,  2206,  2206,  2218,  2218,
+    2231,  2232,  2235,  2236,  2237,  2238,  2239,  2240,  2243,  2249,
+    2249,  2258,  2264,  2264,  2274,  2274,  2287,  2287,  2297,  2298,
     2301,  2302,  2303,  2304,  2305,  2306,  2307,  2308,  2309,  2310,
-    2311,  2312,  2313,  2314,  2315,  2316,  2319,  2325,  2325,  2334,
-    2340,  2340,  2349,  2355,  2361,  2361,  2370,  2371,  2374,  2374,
-    2384,  2384,  2394,  2401,  2408,  2408,  2417,  2417,  2427,  2427,
-    2437,  2437,  2449,  2449,  2461,  2461,  2471,  2472,  2476,  2477,
-    2480,  2480,  2491,  2499,  2499,  2512,  2513,  2517,  2517,  2525,
-    2526,  2529,  2530,  2531,  2532,  2533,  2534,  2535,  2538,  2544,
-    2544,  2553,  2553,  2564,  2565,  2568,  2568,  2576,  2577,  2580,
-    2581,  2582,  2583,  2584,  2587,  2587,  2596,  2602,  2608,  2614,
-    2614
+    2311,  2312,  2313,  2314,  2315,  2316,  2317,  2318,  2321,  2327,
+    2327,  2336,  2342,  2342,  2351,  2357,  2363,  2363,  2372,  2373,
+    2376,  2376,  2386,  2386,  2396,  2403,  2410,  2410,  2419,  2419,
+    2429,  2429,  2439,  2439,  2451,  2451,  2463,  2463,  2473,  2474,
+    2478,  2479,  2482,  2482,  2493,  2501,  2501,  2514,  2515,  2519,
+    2519,  2527,  2528,  2531,  2532,  2533,  2534,  2535,  2536,  2537,
+    2540,  2546,  2546,  2555,  2555,  2566,  2567,  2570,  2570,  2578,
+    2579,  2582,  2583,  2584,  2585,  2586,  2589,  2589,  2598,  2604,
+    2610,  2616,  2616
   };
 
   void
@@ -5608,9 +5609,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 5612 "dhcp4_parser.cc"
+#line 5613 "dhcp4_parser.cc"
 
-#line 2623 "dhcp4_parser.yy"
+#line 2625 "dhcp4_parser.yy"
 
 
 void
index fc28bf4d01a9904366bc11360e0948045cd5f2c6..ea4f80909c8e99e1ebbe4263b06aecd76c3d74d9 100644 (file)
@@ -560,96 +560,96 @@ namespace isc { namespace dhcp {
     TOKEN_DDNS_REPLACE_CLIENT_NAME = 329, // "ddns-replace-client-name"
     TOKEN_DDNS_GENERATED_PREFIX = 330, // "ddns-generated-prefix"
     TOKEN_DDNS_QUALIFYING_SUFFIX = 331, // "ddns-qualifying-suffix"
-    TOKEN_STORE_EXTENDED_INFO = 332, // "store-extended-info"
-    TOKEN_SUBNET4 = 333,           // "subnet4"
-    TOKEN_SUBNET_4O6_INTERFACE = 334, // "4o6-interface"
-    TOKEN_SUBNET_4O6_INTERFACE_ID = 335, // "4o6-interface-id"
-    TOKEN_SUBNET_4O6_SUBNET = 336, // "4o6-subnet"
-    TOKEN_OPTION_DEF = 337,        // "option-def"
-    TOKEN_OPTION_DATA = 338,       // "option-data"
-    TOKEN_NAME = 339,              // "name"
-    TOKEN_DATA = 340,              // "data"
-    TOKEN_CODE = 341,              // "code"
-    TOKEN_SPACE = 342,             // "space"
-    TOKEN_CSV_FORMAT = 343,        // "csv-format"
-    TOKEN_ALWAYS_SEND = 344,       // "always-send"
-    TOKEN_RECORD_TYPES = 345,      // "record-types"
-    TOKEN_ENCAPSULATE = 346,       // "encapsulate"
-    TOKEN_ARRAY = 347,             // "array"
-    TOKEN_SHARED_NETWORKS = 348,   // "shared-networks"
-    TOKEN_POOLS = 349,             // "pools"
-    TOKEN_POOL = 350,              // "pool"
-    TOKEN_USER_CONTEXT = 351,      // "user-context"
-    TOKEN_COMMENT = 352,           // "comment"
-    TOKEN_SUBNET = 353,            // "subnet"
-    TOKEN_INTERFACE = 354,         // "interface"
-    TOKEN_ID = 355,                // "id"
-    TOKEN_RESERVATION_MODE = 356,  // "reservation-mode"
-    TOKEN_DISABLED = 357,          // "disabled"
-    TOKEN_OUT_OF_POOL = 358,       // "out-of-pool"
-    TOKEN_GLOBAL = 359,            // "global"
-    TOKEN_ALL = 360,               // "all"
-    TOKEN_HOST_RESERVATION_IDENTIFIERS = 361, // "host-reservation-identifiers"
-    TOKEN_CLIENT_CLASSES = 362,    // "client-classes"
-    TOKEN_REQUIRE_CLIENT_CLASSES = 363, // "require-client-classes"
-    TOKEN_TEST = 364,              // "test"
-    TOKEN_ONLY_IF_REQUIRED = 365,  // "only-if-required"
-    TOKEN_CLIENT_CLASS = 366,      // "client-class"
-    TOKEN_RESERVATIONS = 367,      // "reservations"
-    TOKEN_DUID = 368,              // "duid"
-    TOKEN_HW_ADDRESS = 369,        // "hw-address"
-    TOKEN_CIRCUIT_ID = 370,        // "circuit-id"
-    TOKEN_CLIENT_ID = 371,         // "client-id"
-    TOKEN_HOSTNAME = 372,          // "hostname"
-    TOKEN_FLEX_ID = 373,           // "flex-id"
-    TOKEN_RELAY = 374,             // "relay"
-    TOKEN_IP_ADDRESS = 375,        // "ip-address"
-    TOKEN_IP_ADDRESSES = 376,      // "ip-addresses"
-    TOKEN_HOOKS_LIBRARIES = 377,   // "hooks-libraries"
-    TOKEN_LIBRARY = 378,           // "library"
-    TOKEN_PARAMETERS = 379,        // "parameters"
-    TOKEN_EXPIRED_LEASES_PROCESSING = 380, // "expired-leases-processing"
-    TOKEN_RECLAIM_TIMER_WAIT_TIME = 381, // "reclaim-timer-wait-time"
-    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 382, // "flush-reclaimed-timer-wait-time"
-    TOKEN_HOLD_RECLAIMED_TIME = 383, // "hold-reclaimed-time"
-    TOKEN_MAX_RECLAIM_LEASES = 384, // "max-reclaim-leases"
-    TOKEN_MAX_RECLAIM_TIME = 385,  // "max-reclaim-time"
-    TOKEN_UNWARNED_RECLAIM_CYCLES = 386, // "unwarned-reclaim-cycles"
-    TOKEN_DHCP4O6_PORT = 387,      // "dhcp4o6-port"
-    TOKEN_DHCP_MULTI_THREADING = 388, // "multi-threading"
-    TOKEN_ENABLE_MULTI_THREADING = 389, // "enable-multi-threading"
-    TOKEN_THREAD_POOL_SIZE = 390,  // "thread-pool-size"
-    TOKEN_PACKET_QUEUE_SIZE = 391, // "packet-queue-size"
-    TOKEN_CONTROL_SOCKET = 392,    // "control-socket"
-    TOKEN_SOCKET_TYPE = 393,       // "socket-type"
-    TOKEN_SOCKET_NAME = 394,       // "socket-name"
-    TOKEN_DHCP_QUEUE_CONTROL = 395, // "dhcp-queue-control"
-    TOKEN_ENABLE_QUEUE = 396,      // "enable-queue"
-    TOKEN_QUEUE_TYPE = 397,        // "queue-type"
-    TOKEN_CAPACITY = 398,          // "capacity"
-    TOKEN_DHCP_DDNS = 399,         // "dhcp-ddns"
-    TOKEN_ENABLE_UPDATES = 400,    // "enable-updates"
-    TOKEN_QUALIFYING_SUFFIX = 401, // "qualifying-suffix"
-    TOKEN_SERVER_IP = 402,         // "server-ip"
-    TOKEN_SERVER_PORT = 403,       // "server-port"
-    TOKEN_SENDER_IP = 404,         // "sender-ip"
-    TOKEN_SENDER_PORT = 405,       // "sender-port"
-    TOKEN_MAX_QUEUE_SIZE = 406,    // "max-queue-size"
-    TOKEN_NCR_PROTOCOL = 407,      // "ncr-protocol"
-    TOKEN_NCR_FORMAT = 408,        // "ncr-format"
-    TOKEN_OVERRIDE_NO_UPDATE = 409, // "override-no-update"
-    TOKEN_OVERRIDE_CLIENT_UPDATE = 410, // "override-client-update"
-    TOKEN_REPLACE_CLIENT_NAME = 411, // "replace-client-name"
-    TOKEN_GENERATED_PREFIX = 412,  // "generated-prefix"
-    TOKEN_TCP = 413,               // "tcp"
-    TOKEN_JSON = 414,              // "JSON"
-    TOKEN_WHEN_PRESENT = 415,      // "when-present"
-    TOKEN_NEVER = 416,             // "never"
-    TOKEN_ALWAYS = 417,            // "always"
-    TOKEN_WHEN_NOT_PRESENT = 418,  // "when-not-present"
-    TOKEN_HOSTNAME_CHAR_SET = 419, // "hostname-char-set"
-    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 420, // "hostname-char-replacement"
-    TOKEN_IP_RESERVATIONS_UNIQUE = 421, // "ip-reservations-unique"
+    TOKEN_DDNS_UPDATE_ON_RENEW = 332, // "ddns-update-on-renew"
+    TOKEN_STORE_EXTENDED_INFO = 333, // "store-extended-info"
+    TOKEN_SUBNET4 = 334,           // "subnet4"
+    TOKEN_SUBNET_4O6_INTERFACE = 335, // "4o6-interface"
+    TOKEN_SUBNET_4O6_INTERFACE_ID = 336, // "4o6-interface-id"
+    TOKEN_SUBNET_4O6_SUBNET = 337, // "4o6-subnet"
+    TOKEN_OPTION_DEF = 338,        // "option-def"
+    TOKEN_OPTION_DATA = 339,       // "option-data"
+    TOKEN_NAME = 340,              // "name"
+    TOKEN_DATA = 341,              // "data"
+    TOKEN_CODE = 342,              // "code"
+    TOKEN_SPACE = 343,             // "space"
+    TOKEN_CSV_FORMAT = 344,        // "csv-format"
+    TOKEN_ALWAYS_SEND = 345,       // "always-send"
+    TOKEN_RECORD_TYPES = 346,      // "record-types"
+    TOKEN_ENCAPSULATE = 347,       // "encapsulate"
+    TOKEN_ARRAY = 348,             // "array"
+    TOKEN_SHARED_NETWORKS = 349,   // "shared-networks"
+    TOKEN_POOLS = 350,             // "pools"
+    TOKEN_POOL = 351,              // "pool"
+    TOKEN_USER_CONTEXT = 352,      // "user-context"
+    TOKEN_COMMENT = 353,           // "comment"
+    TOKEN_SUBNET = 354,            // "subnet"
+    TOKEN_INTERFACE = 355,         // "interface"
+    TOKEN_ID = 356,                // "id"
+    TOKEN_RESERVATION_MODE = 357,  // "reservation-mode"
+    TOKEN_DISABLED = 358,          // "disabled"
+    TOKEN_OUT_OF_POOL = 359,       // "out-of-pool"
+    TOKEN_GLOBAL = 360,            // "global"
+    TOKEN_ALL = 361,               // "all"
+    TOKEN_HOST_RESERVATION_IDENTIFIERS = 362, // "host-reservation-identifiers"
+    TOKEN_CLIENT_CLASSES = 363,    // "client-classes"
+    TOKEN_REQUIRE_CLIENT_CLASSES = 364, // "require-client-classes"
+    TOKEN_TEST = 365,              // "test"
+    TOKEN_ONLY_IF_REQUIRED = 366,  // "only-if-required"
+    TOKEN_CLIENT_CLASS = 367,      // "client-class"
+    TOKEN_RESERVATIONS = 368,      // "reservations"
+    TOKEN_DUID = 369,              // "duid"
+    TOKEN_HW_ADDRESS = 370,        // "hw-address"
+    TOKEN_CIRCUIT_ID = 371,        // "circuit-id"
+    TOKEN_CLIENT_ID = 372,         // "client-id"
+    TOKEN_HOSTNAME = 373,          // "hostname"
+    TOKEN_FLEX_ID = 374,           // "flex-id"
+    TOKEN_RELAY = 375,             // "relay"
+    TOKEN_IP_ADDRESS = 376,        // "ip-address"
+    TOKEN_IP_ADDRESSES = 377,      // "ip-addresses"
+    TOKEN_HOOKS_LIBRARIES = 378,   // "hooks-libraries"
+    TOKEN_LIBRARY = 379,           // "library"
+    TOKEN_PARAMETERS = 380,        // "parameters"
+    TOKEN_EXPIRED_LEASES_PROCESSING = 381, // "expired-leases-processing"
+    TOKEN_RECLAIM_TIMER_WAIT_TIME = 382, // "reclaim-timer-wait-time"
+    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 383, // "flush-reclaimed-timer-wait-time"
+    TOKEN_HOLD_RECLAIMED_TIME = 384, // "hold-reclaimed-time"
+    TOKEN_MAX_RECLAIM_LEASES = 385, // "max-reclaim-leases"
+    TOKEN_MAX_RECLAIM_TIME = 386,  // "max-reclaim-time"
+    TOKEN_UNWARNED_RECLAIM_CYCLES = 387, // "unwarned-reclaim-cycles"
+    TOKEN_DHCP4O6_PORT = 388,      // "dhcp4o6-port"
+    TOKEN_DHCP_MULTI_THREADING = 389, // "multi-threading"
+    TOKEN_ENABLE_MULTI_THREADING = 390, // "enable-multi-threading"
+    TOKEN_THREAD_POOL_SIZE = 391,  // "thread-pool-size"
+    TOKEN_PACKET_QUEUE_SIZE = 392, // "packet-queue-size"
+    TOKEN_CONTROL_SOCKET = 393,    // "control-socket"
+    TOKEN_SOCKET_TYPE = 394,       // "socket-type"
+    TOKEN_SOCKET_NAME = 395,       // "socket-name"
+    TOKEN_DHCP_QUEUE_CONTROL = 396, // "dhcp-queue-control"
+    TOKEN_ENABLE_QUEUE = 397,      // "enable-queue"
+    TOKEN_QUEUE_TYPE = 398,        // "queue-type"
+    TOKEN_CAPACITY = 399,          // "capacity"
+    TOKEN_DHCP_DDNS = 400,         // "dhcp-ddns"
+    TOKEN_ENABLE_UPDATES = 401,    // "enable-updates"
+    TOKEN_QUALIFYING_SUFFIX = 402, // "qualifying-suffix"
+    TOKEN_SERVER_IP = 403,         // "server-ip"
+    TOKEN_SERVER_PORT = 404,       // "server-port"
+    TOKEN_SENDER_IP = 405,         // "sender-ip"
+    TOKEN_SENDER_PORT = 406,       // "sender-port"
+    TOKEN_MAX_QUEUE_SIZE = 407,    // "max-queue-size"
+    TOKEN_NCR_PROTOCOL = 408,      // "ncr-protocol"
+    TOKEN_NCR_FORMAT = 409,        // "ncr-format"
+    TOKEN_OVERRIDE_NO_UPDATE = 410, // "override-no-update"
+    TOKEN_OVERRIDE_CLIENT_UPDATE = 411, // "override-client-update"
+    TOKEN_REPLACE_CLIENT_NAME = 412, // "replace-client-name"
+    TOKEN_GENERATED_PREFIX = 413,  // "generated-prefix"
+    TOKEN_TCP = 414,               // "tcp"
+    TOKEN_JSON = 415,              // "JSON"
+    TOKEN_WHEN_PRESENT = 416,      // "when-present"
+    TOKEN_NEVER = 417,             // "never"
+    TOKEN_ALWAYS = 418,            // "always"
+    TOKEN_WHEN_NOT_PRESENT = 419,  // "when-not-present"
+    TOKEN_HOSTNAME_CHAR_SET = 420, // "hostname-char-set"
+    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 421, // "hostname-char-replacement"
     TOKEN_LOGGERS = 422,           // "loggers"
     TOKEN_OUTPUT_OPTIONS = 423,    // "output_options"
     TOKEN_OUTPUT = 424,            // "output"
@@ -771,96 +771,96 @@ namespace isc { namespace dhcp {
         S_DDNS_REPLACE_CLIENT_NAME = 74,         // "ddns-replace-client-name"
         S_DDNS_GENERATED_PREFIX = 75,            // "ddns-generated-prefix"
         S_DDNS_QUALIFYING_SUFFIX = 76,           // "ddns-qualifying-suffix"
-        S_STORE_EXTENDED_INFO = 77,              // "store-extended-info"
-        S_SUBNET4 = 78,                          // "subnet4"
-        S_SUBNET_4O6_INTERFACE = 79,             // "4o6-interface"
-        S_SUBNET_4O6_INTERFACE_ID = 80,          // "4o6-interface-id"
-        S_SUBNET_4O6_SUBNET = 81,                // "4o6-subnet"
-        S_OPTION_DEF = 82,                       // "option-def"
-        S_OPTION_DATA = 83,                      // "option-data"
-        S_NAME = 84,                             // "name"
-        S_DATA = 85,                             // "data"
-        S_CODE = 86,                             // "code"
-        S_SPACE = 87,                            // "space"
-        S_CSV_FORMAT = 88,                       // "csv-format"
-        S_ALWAYS_SEND = 89,                      // "always-send"
-        S_RECORD_TYPES = 90,                     // "record-types"
-        S_ENCAPSULATE = 91,                      // "encapsulate"
-        S_ARRAY = 92,                            // "array"
-        S_SHARED_NETWORKS = 93,                  // "shared-networks"
-        S_POOLS = 94,                            // "pools"
-        S_POOL = 95,                             // "pool"
-        S_USER_CONTEXT = 96,                     // "user-context"
-        S_COMMENT = 97,                          // "comment"
-        S_SUBNET = 98,                           // "subnet"
-        S_INTERFACE = 99,                        // "interface"
-        S_ID = 100,                              // "id"
-        S_RESERVATION_MODE = 101,                // "reservation-mode"
-        S_DISABLED = 102,                        // "disabled"
-        S_OUT_OF_POOL = 103,                     // "out-of-pool"
-        S_GLOBAL = 104,                          // "global"
-        S_ALL = 105,                             // "all"
-        S_HOST_RESERVATION_IDENTIFIERS = 106,    // "host-reservation-identifiers"
-        S_CLIENT_CLASSES = 107,                  // "client-classes"
-        S_REQUIRE_CLIENT_CLASSES = 108,          // "require-client-classes"
-        S_TEST = 109,                            // "test"
-        S_ONLY_IF_REQUIRED = 110,                // "only-if-required"
-        S_CLIENT_CLASS = 111,                    // "client-class"
-        S_RESERVATIONS = 112,                    // "reservations"
-        S_DUID = 113,                            // "duid"
-        S_HW_ADDRESS = 114,                      // "hw-address"
-        S_CIRCUIT_ID = 115,                      // "circuit-id"
-        S_CLIENT_ID = 116,                       // "client-id"
-        S_HOSTNAME = 117,                        // "hostname"
-        S_FLEX_ID = 118,                         // "flex-id"
-        S_RELAY = 119,                           // "relay"
-        S_IP_ADDRESS = 120,                      // "ip-address"
-        S_IP_ADDRESSES = 121,                    // "ip-addresses"
-        S_HOOKS_LIBRARIES = 122,                 // "hooks-libraries"
-        S_LIBRARY = 123,                         // "library"
-        S_PARAMETERS = 124,                      // "parameters"
-        S_EXPIRED_LEASES_PROCESSING = 125,       // "expired-leases-processing"
-        S_RECLAIM_TIMER_WAIT_TIME = 126,         // "reclaim-timer-wait-time"
-        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 127, // "flush-reclaimed-timer-wait-time"
-        S_HOLD_RECLAIMED_TIME = 128,             // "hold-reclaimed-time"
-        S_MAX_RECLAIM_LEASES = 129,              // "max-reclaim-leases"
-        S_MAX_RECLAIM_TIME = 130,                // "max-reclaim-time"
-        S_UNWARNED_RECLAIM_CYCLES = 131,         // "unwarned-reclaim-cycles"
-        S_DHCP4O6_PORT = 132,                    // "dhcp4o6-port"
-        S_DHCP_MULTI_THREADING = 133,            // "multi-threading"
-        S_ENABLE_MULTI_THREADING = 134,          // "enable-multi-threading"
-        S_THREAD_POOL_SIZE = 135,                // "thread-pool-size"
-        S_PACKET_QUEUE_SIZE = 136,               // "packet-queue-size"
-        S_CONTROL_SOCKET = 137,                  // "control-socket"
-        S_SOCKET_TYPE = 138,                     // "socket-type"
-        S_SOCKET_NAME = 139,                     // "socket-name"
-        S_DHCP_QUEUE_CONTROL = 140,              // "dhcp-queue-control"
-        S_ENABLE_QUEUE = 141,                    // "enable-queue"
-        S_QUEUE_TYPE = 142,                      // "queue-type"
-        S_CAPACITY = 143,                        // "capacity"
-        S_DHCP_DDNS = 144,                       // "dhcp-ddns"
-        S_ENABLE_UPDATES = 145,                  // "enable-updates"
-        S_QUALIFYING_SUFFIX = 146,               // "qualifying-suffix"
-        S_SERVER_IP = 147,                       // "server-ip"
-        S_SERVER_PORT = 148,                     // "server-port"
-        S_SENDER_IP = 149,                       // "sender-ip"
-        S_SENDER_PORT = 150,                     // "sender-port"
-        S_MAX_QUEUE_SIZE = 151,                  // "max-queue-size"
-        S_NCR_PROTOCOL = 152,                    // "ncr-protocol"
-        S_NCR_FORMAT = 153,                      // "ncr-format"
-        S_OVERRIDE_NO_UPDATE = 154,              // "override-no-update"
-        S_OVERRIDE_CLIENT_UPDATE = 155,          // "override-client-update"
-        S_REPLACE_CLIENT_NAME = 156,             // "replace-client-name"
-        S_GENERATED_PREFIX = 157,                // "generated-prefix"
-        S_TCP = 158,                             // "tcp"
-        S_JSON = 159,                            // "JSON"
-        S_WHEN_PRESENT = 160,                    // "when-present"
-        S_NEVER = 161,                           // "never"
-        S_ALWAYS = 162,                          // "always"
-        S_WHEN_NOT_PRESENT = 163,                // "when-not-present"
-        S_HOSTNAME_CHAR_SET = 164,               // "hostname-char-set"
-        S_HOSTNAME_CHAR_REPLACEMENT = 165,       // "hostname-char-replacement"
-        S_IP_RESERVATIONS_UNIQUE = 166,          // "ip-reservations-unique"
+        S_DDNS_UPDATE_ON_RENEW = 77,             // "ddns-update-on-renew"
+        S_STORE_EXTENDED_INFO = 78,              // "store-extended-info"
+        S_SUBNET4 = 79,                          // "subnet4"
+        S_SUBNET_4O6_INTERFACE = 80,             // "4o6-interface"
+        S_SUBNET_4O6_INTERFACE_ID = 81,          // "4o6-interface-id"
+        S_SUBNET_4O6_SUBNET = 82,                // "4o6-subnet"
+        S_OPTION_DEF = 83,                       // "option-def"
+        S_OPTION_DATA = 84,                      // "option-data"
+        S_NAME = 85,                             // "name"
+        S_DATA = 86,                             // "data"
+        S_CODE = 87,                             // "code"
+        S_SPACE = 88,                            // "space"
+        S_CSV_FORMAT = 89,                       // "csv-format"
+        S_ALWAYS_SEND = 90,                      // "always-send"
+        S_RECORD_TYPES = 91,                     // "record-types"
+        S_ENCAPSULATE = 92,                      // "encapsulate"
+        S_ARRAY = 93,                            // "array"
+        S_SHARED_NETWORKS = 94,                  // "shared-networks"
+        S_POOLS = 95,                            // "pools"
+        S_POOL = 96,                             // "pool"
+        S_USER_CONTEXT = 97,                     // "user-context"
+        S_COMMENT = 98,                          // "comment"
+        S_SUBNET = 99,                           // "subnet"
+        S_INTERFACE = 100,                       // "interface"
+        S_ID = 101,                              // "id"
+        S_RESERVATION_MODE = 102,                // "reservation-mode"
+        S_DISABLED = 103,                        // "disabled"
+        S_OUT_OF_POOL = 104,                     // "out-of-pool"
+        S_GLOBAL = 105,                          // "global"
+        S_ALL = 106,                             // "all"
+        S_HOST_RESERVATION_IDENTIFIERS = 107,    // "host-reservation-identifiers"
+        S_CLIENT_CLASSES = 108,                  // "client-classes"
+        S_REQUIRE_CLIENT_CLASSES = 109,          // "require-client-classes"
+        S_TEST = 110,                            // "test"
+        S_ONLY_IF_REQUIRED = 111,                // "only-if-required"
+        S_CLIENT_CLASS = 112,                    // "client-class"
+        S_RESERVATIONS = 113,                    // "reservations"
+        S_DUID = 114,                            // "duid"
+        S_HW_ADDRESS = 115,                      // "hw-address"
+        S_CIRCUIT_ID = 116,                      // "circuit-id"
+        S_CLIENT_ID = 117,                       // "client-id"
+        S_HOSTNAME = 118,                        // "hostname"
+        S_FLEX_ID = 119,                         // "flex-id"
+        S_RELAY = 120,                           // "relay"
+        S_IP_ADDRESS = 121,                      // "ip-address"
+        S_IP_ADDRESSES = 122,                    // "ip-addresses"
+        S_HOOKS_LIBRARIES = 123,                 // "hooks-libraries"
+        S_LIBRARY = 124,                         // "library"
+        S_PARAMETERS = 125,                      // "parameters"
+        S_EXPIRED_LEASES_PROCESSING = 126,       // "expired-leases-processing"
+        S_RECLAIM_TIMER_WAIT_TIME = 127,         // "reclaim-timer-wait-time"
+        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 128, // "flush-reclaimed-timer-wait-time"
+        S_HOLD_RECLAIMED_TIME = 129,             // "hold-reclaimed-time"
+        S_MAX_RECLAIM_LEASES = 130,              // "max-reclaim-leases"
+        S_MAX_RECLAIM_TIME = 131,                // "max-reclaim-time"
+        S_UNWARNED_RECLAIM_CYCLES = 132,         // "unwarned-reclaim-cycles"
+        S_DHCP4O6_PORT = 133,                    // "dhcp4o6-port"
+        S_DHCP_MULTI_THREADING = 134,            // "multi-threading"
+        S_ENABLE_MULTI_THREADING = 135,          // "enable-multi-threading"
+        S_THREAD_POOL_SIZE = 136,                // "thread-pool-size"
+        S_PACKET_QUEUE_SIZE = 137,               // "packet-queue-size"
+        S_CONTROL_SOCKET = 138,                  // "control-socket"
+        S_SOCKET_TYPE = 139,                     // "socket-type"
+        S_SOCKET_NAME = 140,                     // "socket-name"
+        S_DHCP_QUEUE_CONTROL = 141,              // "dhcp-queue-control"
+        S_ENABLE_QUEUE = 142,                    // "enable-queue"
+        S_QUEUE_TYPE = 143,                      // "queue-type"
+        S_CAPACITY = 144,                        // "capacity"
+        S_DHCP_DDNS = 145,                       // "dhcp-ddns"
+        S_ENABLE_UPDATES = 146,                  // "enable-updates"
+        S_QUALIFYING_SUFFIX = 147,               // "qualifying-suffix"
+        S_SERVER_IP = 148,                       // "server-ip"
+        S_SERVER_PORT = 149,                     // "server-port"
+        S_SENDER_IP = 150,                       // "sender-ip"
+        S_SENDER_PORT = 151,                     // "sender-port"
+        S_MAX_QUEUE_SIZE = 152,                  // "max-queue-size"
+        S_NCR_PROTOCOL = 153,                    // "ncr-protocol"
+        S_NCR_FORMAT = 154,                      // "ncr-format"
+        S_OVERRIDE_NO_UPDATE = 155,              // "override-no-update"
+        S_OVERRIDE_CLIENT_UPDATE = 156,          // "override-client-update"
+        S_REPLACE_CLIENT_NAME = 157,             // "replace-client-name"
+        S_GENERATED_PREFIX = 158,                // "generated-prefix"
+        S_TCP = 159,                             // "tcp"
+        S_JSON = 160,                            // "JSON"
+        S_WHEN_PRESENT = 161,                    // "when-present"
+        S_NEVER = 162,                           // "never"
+        S_ALWAYS = 163,                          // "always"
+        S_WHEN_NOT_PRESENT = 164,                // "when-not-present"
+        S_HOSTNAME_CHAR_SET = 165,               // "hostname-char-set"
+        S_HOSTNAME_CHAR_REPLACEMENT = 166,       // "hostname-char-replacement"
         S_LOGGERS = 167,                         // "loggers"
         S_OUTPUT_OPTIONS = 168,                  // "output_options"
         S_OUTPUT = 169,                          // "output"
@@ -952,14 +952,14 @@ namespace isc { namespace dhcp {
         S_255_22 = 255,                          // $@22
         S_ddns_qualifying_suffix = 256,          // ddns_qualifying_suffix
         S_257_23 = 257,                          // $@23
-        S_hostname_char_set = 258,               // hostname_char_set
-        S_259_24 = 259,                          // $@24
-        S_hostname_char_replacement = 260,       // hostname_char_replacement
-        S_261_25 = 261,                          // $@25
-        S_store_extended_info = 262,             // store_extended_info
-        S_statistic_default_sample_count = 263,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 264,    // statistic_default_sample_age
-        S_ip_reservations_unique = 265,          // ip_reservations_unique
+        S_ddns_update_on_renew = 258,            // ddns_update_on_renew
+        S_hostname_char_set = 259,               // hostname_char_set
+        S_260_24 = 260,                          // $@24
+        S_hostname_char_replacement = 261,       // hostname_char_replacement
+        S_262_25 = 262,                          // $@25
+        S_store_extended_info = 263,             // store_extended_info
+        S_statistic_default_sample_count = 264,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 265,    // statistic_default_sample_age
         S_interfaces_config = 266,               // interfaces_config
         S_267_26 = 267,                          // $@26
         S_interfaces_config_params = 268,        // interfaces_config_params
@@ -1582,13 +1582,13 @@ switch (yykind)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -2846,6 +2846,21 @@ switch (yykind)
         return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_DDNS_UPDATE_ON_RENEW (location_type l)
+      {
+        return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_DDNS_UPDATE_ON_RENEW (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4181,21 +4196,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_IP_RESERVATIONS_UNIQUE (location_type l)
-      {
-        return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_IP_RESERVATIONS_UNIQUE (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4916,7 +4916,7 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1175,     ///< Last index in yytable_.
+      yylast_ = 1180,     ///< Last index in yytable_.
       yynnts_ = 405,  ///< Number of nonterminal symbols.
       yyfinal_ = 28 ///< Termination state number.
     };
index f36457944f7584719fcca497d58ecb68cc603128..1ab54aa53d1c563b7fbeaeec6ea486c49f172173 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Locations for Bison parsers in C++
index ff1e8b107fbe5589e6aa0773d5d6490dd2e7d4bd..7211aa816f2470abb0fa5be46d55b454cccca6e6 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index c7e28b23ab980553a47a1bc0db06049dc6817d07..af3aa42bc6c051f5e248eec7eb3a1f66370cfae8 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index cb2c1e1aeae368adb979eedf274a826f6d5331f3..988c70d0d2ce6ee6ba855bea176ba124088e4aee 100644 (file)
@@ -700,7 +700,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1887] =
+static const flex_int16_t yy_accept[1883] =
     {   0,
       200,  200,    0,    0,    0,    0,    0,    0,    0,    0,
       208,  206,   10,   11,  206,    1,  200,  197,  200,  200,
@@ -722,13 +722,13 @@ static const flex_int16_t yy_accept[1887] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
-        8,    0,    0,    0,  162,    0,    0,  163,    0,    0,
+        8,    0,    0,    0,  163,    0,    0,  164,    0,    0,
 
         0,    0,    0,    0,    0,  191,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  112,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  113,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -736,179 +736,179 @@ static const flex_int16_t yy_accept[1887] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,  205,  203,    0,
-      202,  201,    0,    0,    0,    0,    0,    0,  161,    0,
-       28,    0,   27,    0,    0,  119,    0,    0,    0,    0,
+      202,  201,    0,    0,    0,    0,    0,    0,  162,    0,
+       28,    0,   27,    0,    0,  120,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,   55,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  116,    0,    0,    0,    0,    0,    0,    0,
+        0,  117,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  204,  201,    0,    0,    0,    0,    0,   29,
-        0,   31,    0,    0,    0,    0,    0,    0,    0,    0,
-      120,    0,    0,    0,    0,    0,    0,    0,   97,    0,
-        0,    0,    0,    0,    0,    0,    0,  146,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
+        0,  204,  201,    0,    0,    0,    0,    0,   29,    0,
+       31,    0,    0,    0,    0,    0,    0,    0,    0,  121,
+        0,    0,    0,    0,    0,    0,    0,   98,    0,    0,
+        0,    0,    0,    0,    0,    0,  147,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,   96,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  106,    0,   59,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   97,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
+        0,   59,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  141,    0,  166,
-       51,    0,   56,    0,    0,    0,    0,    0,   37,   34,
-       33,    0,    0,    0,  154,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  142,    0,  167,   51,    0,
+       56,    0,    0,    0,    0,    0,   37,   34,   33,    0,
+        0,    0,  155,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,  132,    0,    0,    0,    0,
-        0,    0,    0,    0,  165,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  133,    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,   53,    0,    0,
-       32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  155,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  150,
+        0,    0,    0,    0,    0,   53,    0,    0,   32,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    7,   35,    0,    0,    0,    0,    0,    0,    0,
+      100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  156,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  151,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
+       35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  119,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  134,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  131,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  101,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  135,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  132,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  102,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  110,
 
-        0,  109,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  108,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  109,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  150,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  149,    0,
+        0,    0,    0,  160,  130,    0,    0,    0,    0,    0,
+        0,    0,  134,   52,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  136,    0,   60,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  159,  129,    0,    0,    0,
-        0,    0,    0,    0,  133,   52,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  135,
-        0,   60,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   91,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  186,
+        0,    0,   92,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  187,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  115,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  148,    0,    0,    0,    0,    0,
-        0,    0,   63,    0,    0,    0,    0,    0,    0,    0,
+      116,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  149,    0,    0,    0,    0,    0,    0,
+       63,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,   57,  100,    0,    0,
-        0,  145,    0,    0,    0,    0,   50,    0,    0,    0,
+        0,    0,    0,    0,   57,  101,    0,    0,    0,  146,
+        0,    0,    0,    0,   50,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  137,    0,    0,    0,    0,
+        0,    0,    0,  138,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  187,    0,    0,    0,    0,    0,    0,
+        0,    0,  188,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  110,    0,    0,    0,    0,    0,    0,    0,
+        0,  111,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   41,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
-        0,    0,  160,   14,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   41,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
+      161,   14,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  151,    0,    0,    0,    0,    0,    0,
-      136,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  147,
-
-      164,    0,   40,    0,  156,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       20,    0,    0,    0,   94,    0,    0,    0,    0,    0,
-      158,   54,    0,  102,    0,  185,    0,    0,    0,    0,
+        0,  152,    0,    0,    0,    0,    0,    0,    0,  137,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   82,    0,    0,    0,    0,    0,  125,  126,    0,
-        0,    0,    0,    0,    0,    0,    0,   98,    0,    0,
-        0,    0,    0,    0,    0,    0,   64,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  148,  165,
+
+        0,   40,    0,  157,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   20,    0,
+        0,    0,   95,    0,    0,    0,    0,    0,  159,   54,
+        0,  103,    0,  186,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
+        0,    0,    0,    0,    0,  126,  127,    0,    0,    0,
+        0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
+        0,    0,    0,    0,   64,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  153,    0,    0,    0,    0,    0,    0,    0,
+        0,  154,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,    0,    0,    0,    0,    0,  122,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   95,  117,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
-        0,    0,    0,   17,    0,   15,    0,  182,  181,    0,
-        0,    0,   69,    0,    0,    0,    0,    0,   30,    0,
-        0,    0,  140,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  175,
-        0,  184,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  111,    0,  144,    0,   43,    0,   61,
+       96,  118,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   79,    0,    0,    0,    0,    0,
+        0,   17,    0,   15,    0,  183,  182,    0,    0,    0,
+       69,    0,    0,    0,    0,    0,   30,    0,    0,    0,
+      141,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  176,    0,
+      185,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  112,    0,  145,   43,    0,   61,    0,    0,
 
+        0,    0,    0,    0,    0,    0,    0,    0,   19,    0,
+        0,    0,    0,    0,    0,    0,  114,   80,    0,    0,
+      153,    0,    0,    0,    0,    0,  144,    0,    0,    0,
+        0,    0,    0,    0,    0,  108,    0,    0,  129,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       19,    0,    0,    0,    0,    0,    0,    0,  113,   80,
-        0,    0,  152,    0,    0,    0,    0,    0,  143,    0,
-        0,    0,    0,    0,    0,    0,    0,  107,    0,    0,
-      128,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  105,    0,    0,
-        0,  167,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
+      168,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   42,    0,
-
-        0,    0,    0,   68,    0,    0,    0,    0,    0,    0,
-      138,   47,    0,    0,    0,   70,  180,   38,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   12,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   45,    0,    0,
-        0,   44,    0,   18,    0,    0,    0,   72,    0,    0,
-        0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   42,    0,    0,    0,
+
+        0,   68,    0,    0,    0,    0,    0,    0,  139,   47,
+        0,    0,    0,   70,  181,   38,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   12,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   45,    0,    0,   44,
+        0,   18,    0,    0,    0,   72,    0,    0,    0,    0,
+        0,  131,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   76,    0,  127,    0,    0,    0,   62,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  103,    0,
-        0,    0,    0,    0,  157,    0,    0,    0,   46,    0,
+       76,    0,  128,    0,    0,    0,   62,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  104,    0,    0,
+        0,    0,    0,  158,    0,    0,    0,   46,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  176,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   67,
-        0,    0,    0,   93,    0,    0,    0,    0,   36,    0,
-       48,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   24,    0,    0,    0,    0,    0,
-        0,    0,    0,  173,    0,    0,    0,    0,  142,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  114,
-        0,    0,    0,  178,    0,    0,    0,    0,    0,    0,
-        0,    0,   85,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   25,   39,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,  179,    0,   13,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  183,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  172,    0,   78,    0,   77,    0,   21,
-       73,    0,    0,    0,    0,    0,   65,    0,    0,    0,
-      124,    0,    0,    0,    0,    0,    0,    0,    0,  104,
-        0,    0,  171,    0,    0,    0,    0,   71,    0,    0,
-        0,   66,    0,   23,    0,    0,   92,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  177,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   67,    0,    0,
+        0,   94,    0,    0,    0,    0,   36,    0,   48,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   24,    0,    0,    0,    0,    0,    0,
+        0,  174,    0,    0,    0,    0,  143,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  115,    0,    0,
+        0,  179,    0,    0,    0,    0,    0,    0,    0,    0,
+       85,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   25,   39,    0,    0,    0,    0,    0,    0,    0,
+
+        0,  180,    0,   13,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  184,    0,    0,    0,    0,    0,    0,    0,
+        0,  173,    0,   78,    0,   77,    0,   21,   73,    0,
+        0,    0,    0,    0,   65,    0,    0,    0,  125,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  105,    0,
+        0,  172,    0,    0,    0,   71,    0,    0,    0,   66,
+        0,   23,    0,    0,   93,    0,    0,    0,    0,    0,
+        0,    0,   91,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   89,    0,
 
-       89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       49,    0,    0,   90,    0,    0,  177,    0,    0,    0,
-        0,  188,   75,   74,   22,    0,  122,  139,    0,    0,
-        0,   86,    0,    0,    0,    0,    0,    0,  169,    0,
-      174,    0,   88,   81,    0,    0,    0,    0,    0,    0,
-      168,    0,    0,   26,    0,    0,    0,    0,    0,    0,
-        0,   87,    0,    0,    0,    0,    0,  123,   84,    0,
-        0,    0,    0,   83,  170,    0
+        0,    0,    0,    0,    0,    0,    0,   49,    0,    0,
+       90,    0,    0,  178,    0,    0,    0,    0,   75,   74,
+       22,    0,  123,  140,    0,    0,    0,   86,    0,    0,
+        0,    0,    0,    0,  170,    0,  175,    0,   88,   81,
+        0,    0,    0,    0,    0,    0,  169,    0,    0,   26,
+        0,    0,    0,    0,    0,    0,    0,   87,    0,    0,
+        0,    0,    0,  124,   84,    0,    0,    0,    0,   83,
+      171,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -955,450 +955,450 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1899] =
+static const flex_int16_t yy_base[1895] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2287, 2288,   34, 2283,  145,    0,  207, 2288,  214,  221,
-       13,  228, 2288, 2263,  118,   25,    2,    6, 2288, 2288,
-       73,   11,   17, 2288, 2288, 2288,  104, 2271, 2224,    0,
-     2261,  108, 2278,   24,  256, 2288,   67, 2227, 2247,   84,
-       75, 2247,   88,  226,   91,   89,  284,  196,  203,  279,
-      193,  224,  216,   60,  242, 2227,  286,  288,  314,  300,
-      319, 2210,  204,  324,  356,  329, 2229,    0,  380,  400,
-      420,  427,  406, 2288,    0, 2288,  385,  443,  238,  241,
-      310,  269,  299,  314, 2288, 2226, 2267, 2288,  405, 2288,
-
-      419,  400, 2224, 2265,  326,   10,  262,  407,  224,  409,
-      352,  206, 2264,    0,  472,  412, 2206,  415, 2214,  406,
-     2210, 2199, 2200, 2205,  444, 2215, 2198, 2207,  327,  433,
-      226, 2201, 2199,  445, 2188, 2246,  399, 2191, 2244, 2184,
-     2207, 2204, 2204, 2198,  339, 2191, 2189, 2190, 2182, 2187,
-     2181,  412, 2192, 2185, 2176, 2175, 2189,  462, 2227, 2174,
-      443, 2186,  421, 2174,  482, 2175,  445, 2187, 2184, 2185,
-      293, 2183, 2218, 2217,  477, 2163, 2163, 2167, 2163, 2155,
-     2172, 2164,    0,  478,  493,  486,  481,  500,  505, 2163,
-     2288,    0,  510, 2158, 2288,  498,  505, 2288, 2212,  508,
-
-     2211,  513, 2210,  515, 2209, 2288,  561, 2208,  525, 2167,
-     2159, 2163, 2164, 2159, 2158, 2149,  501, 2200, 2194, 2158,
-     2139, 2136, 2144, 2150, 2138, 2152, 2148, 2149, 2149, 2144,
-     2136, 2138, 2122, 2126, 2139, 2141, 2138, 2130, 2120, 2123,
-     2137, 2288, 2123, 2131,   80, 2116, 2115, 2167, 2114, 2124,
-     2164,  505, 2123, 2162, 2107, 2109, 2120, 2158,  532, 2162,
-     2097, 2112,  538, 2102, 2108, 2117, 2098, 2096, 2099, 2095,
-     2101, 2092, 2091, 2104, 2097, 2087, 2098, 2102, 2101, 2095,
-      220, 2102, 2097, 2089, 2079, 2094, 2089, 2093,  500, 2091,
-     2077, 2083, 2090, 2072, 2073, 2076, 2073, 2072,  562, 2067,
-
-     2081, 2080, 2079, 2082, 2064, 2072,  543, 2288, 2288,  553,
-     2288, 2288, 2059,    0,  520, 2106,  554, 2117, 2288,  556,
-     2288, 2116, 2288, 2110,  606, 2288,  555, 2050, 2069, 2052,
-     2069, 2057, 2109, 2064, 2059, 2062, 2057,  537, 2288, 2059,
-      586, 2098, 2056, 2053, 2054,  584, 2058, 2098, 2046, 2041,
-     2038, 2034, 2036, 2087, 2044, 2033, 2049, 2083, 2029,  607,
-     2042, 2042, 2025, 2026, 2039, 2037, 2025, 2035, 2030, 2037,
-     2032, 2017,  574, 2026, 2029, 2024,  577, 2023, 2019, 2069,
-      422,  563, 2288, 2063, 2013, 2012, 2005, 2007, 2019, 2010,
-     1999, 2016, 2005, 2010,  596, 2057, 2010,  589, 2007, 2010,
-
-     2010, 2008, 1997, 1997, 2009,  583, 1984, 1985, 2006,  595,
-     1988, 1985, 1999, 2002, 1997, 1983, 1995, 1994, 1993, 1988,
-     1991, 1990, 1989, 1988,  558, 2031, 1990, 2029, 2028, 1970,
-      652, 1983, 2288, 2288, 1982,    0,  604, 2024, 2023, 2288,
-     2022, 2288,  616,  664,  629, 2021, 2015, 1968, 1970, 1958,
-     2288, 1963, 1969, 1972, 1955, 1970, 1957, 1956, 2288, 1966,
-      610, 1957, 1954, 1966,  566, 1951, 1953, 2288, 1959, 1944,
-     1946, 1957, 1955, 1950,  653, 1957, 1945, 1938, 1989, 2288,
-     1936, 1952, 1986, 1990, 1946, 1940, 1942, 1943, 1927, 1944,
-     1978, 1929, 1924, 1923, 1925, 1921, 1917,  556, 1936, 1910,
-
-     1917, 1922, 1915, 1931, 1965, 1969, 2288, 1914, 1910, 1966,
-     1917, 1911, 1918, 1903, 1913, 1901, 1915, 1904, 1900, 1902,
-     1897, 2288, 1954, 2288, 1896, 1895, 1888, 1905, 1944, 1943,
-     1888, 1893, 1902, 1896, 1890, 1899,  688, 1936, 1898, 1881,
-     1881, 1876, 1872, 1878, 1883, 1876, 1884, 1888, 1871, 1929,
-     1870, 1922, 1867, 1868, 1867, 1879, 1868, 2288, 1878, 2288,
-     2288, 1867, 2288, 1877, 1913, 1873,    0, 1916, 2288, 2288,
-     2288,  636,  632,  691, 2288,  618, 1875, 1855, 1908, 1853,
-     1906, 1851, 1850, 1849, 1856, 1849, 1857, 1860, 1842, 1842,
-     1857, 1856, 1855, 1854, 1838, 1853, 1835, 1882, 1849, 1887,
-
-     1831, 1833, 1845, 1845, 1844, 2288, 1829, 1826, 1884, 1839,
-     1831, 1837, 1828, 1836, 2288, 1821, 1832, 1836, 1818, 1830,
-     1831,  636, 1813, 1807, 1812, 1809, 1824, 1823, 1824, 1803,
-     1813, 1819, 1862, 1817, 1816, 1808, 1799, 2288, 1800, 1802,
-     2288, 1810, 1849, 1848,   16, 1809, 1846, 1791, 1792, 1795,
-     1796, 1787, 2288, 1801, 1787,  692, 1779, 1783, 1799, 1796,
-     1788, 1833, 1785, 1792, 1830, 2288, 1776, 1774, 1788, 1772,
-     1786, 1789, 1823, 1822, 1821, 1820, 1765, 1818, 1817, 2288,
-     1762, 1776,  698, 1777, 1776, 1773, 1773, 1810, 1770, 1759,
-     1761, 2288, 2288,  663,  659, 1753, 1770, 1762, 1749, 1743,
-
-     1764, 1805,  657, 1799, 1759, 1797, 1796, 1748, 1742, 1745,
-     1753, 1756, 1740, 1741, 1732, 1787, 1747, 1737, 1745, 1783,
-     1744,  659, 1735, 1737, 1741, 1778,    2,   91,  170, 2288,
-      227,  290,  299,  378,  407,  465,  497,  505,  544,  542,
-      577,  594,  605,  611,  695,  701,  655,  668,  654,  666,
-      711,  670,  721, 2288,  723,  679,  677,  679,  675,  669,
-      724,  687,  676, 2288,  678,  689,  678,  691,  694,  738,
-      681,  740,  683,  698, 2288,  692,  686,  697,  682,  693,
-      706,  685,  691,  746,  710,  694,  694,  707,  751,  752,
-      753,  700,  718,  713,  720,  715,  700,  712,  713,  719,
-
-      706, 2288,  771,  729,  731,  721,  733,  723,  736,  727,
-      733,  777,  753,  740,  722,  729,  743,  788,  738, 2288,
-      736,  751,  748,  734,  741,  740,  738,  757,  754,  755,
-      743,  750,  751,  760,  760,  750,  763,  749,  748,  754,
-      810,  752,  753,  759,  775,  758,  812,  767, 2288,  777,
-      777,  770,  781,  779,  824,  766,  768,  783,  784,  772,
-      770,  832,  789,  775,  778, 2288, 2288,  794,  793,  794,
-      799,  787,  797,  799, 2288, 2288,  799,  801,  788,  806,
-      793,  791,  809,  796,  796,  847,  794,  798,  856, 2288,
-      857, 2288,  802,  816,  816,  861,  809,  808,  812,  806,
-
-      866,  819,  809,  810,  806,  816,  820,  831,  815,  833,
-      828,  830,  823,  825,  826,  838,  828,  843,  884,  841,
-      846,  823,  846,  830, 2288,  837,  838,  852,  843,  841,
-      891,  838,  853,  871,  879,  848,  897,  859,  899, 2288,
-      865,  853,  848,  849,  861,  868,  857,  858,  854,  872,
-      858,  859,  869,  878,  914,  869,  864,  917,  924,  881,
-      873, 2288,  877,  885,  887,  872,  888,  878,  890,  884,
-      931,  897,  881,  882, 2288,  898,  901,  884,  886,  944,
-      887,  906, 2288,  905,  908,  889,  907,  895,  948,  906,
-      902,  899,  952,  901,  954,  916,  902,  920,  919,  905,
-
-      920,  912,  908,  926,  925,  912, 2288, 2288,  920,  967,
-      920, 2288,  928,  931,  924,  977, 2288,  926,  932,  976,
-      927,  928,  940,  934,  938,  936,  934,  945,  990,  934,
-      939,  993,  994,  938,  950, 2288,  938,  946,  944,  995,
-      957,  944,  945,  954,  966,  953,  951,  965,  966,  982,
-      987,  969,  974,  957,  957,  959,  959,  979,  978,  969,
-      958,  975,  982, 1025,  967,  987,  980,  984,  988,  971,
-     1032,  979,  983, 2288, 1030,  979,  978,  978, 1001,  998,
-     1038,  987, 1005, 1006,  992, 1000, 1009,  989, 1004, 1011,
-     1053, 1054, 2288, 1007, 1056, 1057,  999, 1009, 1019, 1022,
-
-     1005, 1007, 1007, 1014, 1023, 1011, 1018, 1013, 1020, 1032,
-     1073, 1020, 1019, 1036, 1077, 1027, 1031, 1029, 1027, 1022,
-     1083, 1084, 1034, 1086, 1082, 1088, 1041, 2288, 1046, 1039,
-     1030, 1049, 1043, 1038, 1048, 1045, 1050, 1046, 1058, 2288,
-     1043, 1045, 2288, 2288, 1045, 1105, 1044, 1063, 1064, 1066,
-     1057, 1111, 1112, 1065, 1050, 1064, 1072, 1054, 1059, 1098,
-     1089, 1121, 1076, 1076, 1080, 1067, 1069, 1086, 1081, 1085,
-     1130, 1078, 1082, 2288, 1079, 1075, 1092, 1072, 1093, 1083,
-     2288, 1098, 1096, 1099, 1084, 1096, 1101, 1087, 1147, 1101,
-     1106, 1093, 1104, 1096, 1102, 1098, 1116, 1117, 1118, 2288,
-
-     2288, 1116, 2288, 1118, 2288, 1103, 1114, 1105, 1124, 1114,
-     1166, 1123, 1120, 1164, 1128, 1117, 1124, 1129, 1126, 1132,
-     2288, 1125, 1117, 1178, 2288, 1179, 1126, 1133, 1177, 1139,
-     2288, 2288, 1136, 2288, 1127, 2288, 1127, 1130, 1144, 1149,
-     1132, 1143, 1192, 1149, 1150, 1151, 1191, 1147, 1198, 1151,
-     1200, 2288, 1147, 1202, 1203, 1160, 1162, 2288, 2288, 1145,
-     1207, 1203, 1167, 1151, 1163, 1182, 1213, 2288, 1170, 1161,
-     1172, 1217, 1164, 1179, 1215, 1167, 2288, 1163, 1179, 1167,
-     1181, 1182, 1179, 1223, 1186, 1190, 1178, 1178, 1233, 1229,
-     1235, 1192, 2288, 1194, 1193, 1195, 1189, 1198, 1199, 1196,
-
-     1186, 1189, 1189, 1248, 1196, 1251, 1198, 1253, 1196, 1255,
-     2288, 1213, 1192, 1207, 1200, 1203, 1217, 1220, 1219, 1217,
-     1267, 1220, 2288, 2288, 1216, 1226, 1211, 1267, 1228, 1214,
-     1275, 1276, 1220, 1230, 1279, 1236, 2288, 1228, 1228, 1230,
-     1232, 1285, 1228, 2288, 1229, 2288, 1231, 2288, 2288, 1244,
-     1246, 1247, 2288, 1234, 1242, 1294, 1243, 1275, 2288, 1297,
-     1247, 1294, 2288, 1242, 1250, 1244, 1241, 1244, 1247, 1247,
-     1243, 1265, 1304, 1257, 1269, 1272, 1254, 1314, 1262, 2288,
-     1257, 2288, 1259, 1318, 1272, 1263, 1278, 1278, 1281, 1281,
-     1278, 1322, 1284, 2288, 1276, 2288, 1277, 2288, 1287, 2288,
-
-     1327, 1289, 1290, 1287, 1331, 1279, 1294, 1334, 1296, 1288,
-     2288, 1285, 1285, 1291, 1290, 1288, 1303, 1303, 2288, 2288,
-     1344, 1291, 2288, 1308, 1293, 1293, 1295, 1301, 2288, 1356,
-     1298, 1308, 1319, 1317, 1361, 1314, 1323, 2288, 1320, 1339,
-     2288, 1323, 1308, 1368, 1369, 1326, 1331, 1313, 1373, 1374,
-     1375, 1371, 1335, 1332, 1328, 1321, 1333, 2288, 1323, 1336,
-     1384, 2288, 1322, 1381, 1344, 1341, 1385, 1333, 1339, 1337,
-     1396, 1352, 1340, 1399, 1349, 1401, 1362, 1351, 1345, 1405,
-     1347, 1356, 1349, 1363, 1366, 1411, 1353, 1370, 1366, 1356,
-     1371, 1355, 1413, 1414, 1415, 1362, 1417, 1380, 2288, 1380,
-
-     1367, 1366, 1422, 2288, 1363, 1381, 1430, 1400, 1432, 1385,
-     2288, 2288, 1376, 1387, 1436, 2288, 2288, 2288, 1382, 1387,
-     1385, 1435, 1393, 1398, 1389, 1387, 1388, 2288, 1446, 1392,
-     1443, 1386, 1391, 1452, 1400, 1411, 1412, 2288, 1457, 1410,
-     1455, 2288, 1413, 2288, 1404, 1419, 1407, 2288, 1417, 1418,
-     1419, 1468, 1426, 2288, 1465, 1431, 1407, 1425, 1426, 1435,
-     1417, 1423, 1425, 1479, 1438, 1437, 1429, 1483, 1433, 1437,
-     1442, 1435, 2288, 1488, 2288, 1437, 1490, 1432, 2288, 1435,
-     1445, 1489, 1437, 1452, 1439, 1445, 1445, 1456, 2288, 1450,
-     1445, 1444, 1504, 1457, 2288, 1501, 1452, 1449, 2288, 1463,
-
-     1450, 1466, 1468, 1513, 1466, 1463, 1471, 1465, 2288, 1518,
-     1459, 1461, 1477, 1470, 1460, 1476, 1477, 1471, 1487, 2288,
-     1477, 1529, 1488, 2288, 1472, 1479, 1533, 1529, 2288, 1491,
-     2288, 1531, 1493, 1494, 1479, 1480, 1488, 1542, 1538, 1493,
-     1505, 1502, 1493, 1500, 2288, 1497, 1502, 1500, 1552, 1553,
-     1501, 1511, 1498, 2288, 1513, 1514, 1515, 1516, 2288, 1506,
-     1518, 1563, 1520, 1565, 1507, 1515, 1509, 1517, 1530, 2288,
-     1507, 1567, 1528, 2288, 1532, 1517, 1517, 1532, 1525, 1524,
-     1535, 1522, 2288, 1527, 1583, 1541, 1532, 1544, 1535, 1544,
-     1546, 1550, 2288, 2288, 1543, 1533, 1593, 1536, 1595, 1537,
-
-     1597, 1555, 1599, 2288, 1600, 2288, 1596, 1558, 1555, 1560,
-     1547, 1606, 1549, 1554, 1545, 1610, 1563, 1564, 1554, 1571,
-     1570, 1611, 1573, 2288, 1570, 1619, 1576, 1577, 1622, 1579,
-     1582, 1569, 1578, 2288, 1627, 2288, 1580, 2288, 1589, 2288,
-     2288, 1571, 1631, 1578, 1633, 1576, 2288, 1595, 1636, 1595,
-     2288, 1586, 1576, 1635, 1601, 1594, 1590, 1587, 1592, 2288,
-     1588, 1590, 2288, 1595, 1605, 1590, 1599, 2288, 1600, 1594,
-     1606, 2288, 1602, 2288, 1612, 1605, 2288, 1607, 1615, 1660,
-     1601, 1603, 1600, 1624, 1617, 1620, 1609, 1663, 1610, 1618,
-     1627, 1628, 1629, 1630, 1623, 1618, 1619, 1623, 1635, 1680,
-
-     2288, 1626, 1638, 1683, 1632, 1631, 1686, 1639, 1626, 1641,
-     1646, 1691, 1692, 1693, 1694, 1651, 1696, 1697, 1647, 1641,
-     2288, 1657, 1701, 2288, 1658, 1660, 2288, 1651, 1665, 1661,
-     1654, 2288, 2288, 2288, 2288, 1708, 2288, 2288, 1665, 1710,
-     1671, 2288, 1712, 1713, 1668, 1667, 1668, 1658, 2288, 1713,
-     2288, 1660, 2288, 2288, 1720, 1662, 1678, 1723, 1684, 1681,
-     2288, 1722, 1671, 2288, 1683, 1676, 1731, 1673, 1675, 1690,
-     1675, 2288, 1688, 1737, 1738, 1686, 1688, 2288, 2288, 1682,
-     1698, 1743, 1744, 2288, 2288, 2288, 1750, 1755, 1760, 1765,
-     1770, 1775, 1780, 1783, 1757, 1762, 1764, 1777
+     2283, 2284,   34, 2279,  145,    0,  207, 2284,  214,  221,
+       13,  228, 2284, 2259,  118,   25,    2,    6, 2284, 2284,
+       73,   11,   17, 2284, 2284, 2284,  104, 2267, 2220,    0,
+     2257,  108, 2274,   24,  256, 2284,   67, 2223, 2243,   84,
+       75, 2243,   88,  226,   91,   89,  284,  196,  203,  279,
+      193,  224,  216,   60,  242, 2223,  286,  288,  314,  300,
+      319, 2206,  204,  324,  356,  329, 2225,    0,  380,  400,
+      420,  427,  406, 2284,    0, 2284,  385,  443,  238,  241,
+      310,  269,  299,  314, 2284, 2222, 2263, 2284,  405, 2284,
+
+      419,  400, 2220, 2261,  326,   10,  262,  407,  224,  409,
+      352,  206, 2260,    0,  472,  412, 2202,  415, 2210,  406,
+     2206, 2195, 2196, 2201,  444, 2211, 2194, 2203,  327,  433,
+      226, 2197, 2195,  445, 2184, 2242,  399, 2187, 2240, 2180,
+     2203, 2200, 2200, 2194,  339, 2187, 2185, 2186, 2178, 2183,
+     2177,  412, 2188, 2181, 2172, 2171, 2185,  462, 2223, 2170,
+      443, 2182,  421, 2170,  482, 2171,  445, 2183, 2180, 2181,
+      293, 2179, 2214, 2213,  477, 2159, 2159, 2163, 2159, 2151,
+     2168, 2160,    0,  478,  493,  486,  481,  500,  505, 2159,
+     2284,    0,  510, 2154, 2284,  498,  505, 2284, 2208,  508,
+
+     2207,  513, 2206,  515, 2205, 2284,  561, 2204,  525, 2163,
+     2155, 2159, 2160, 2155, 2154, 2145,  501, 2196, 2190, 2154,
+     2135, 2132, 2140, 2146, 2134, 2148, 2144, 2145, 2145, 2140,
+     2132, 2134, 2118, 2122, 2135, 2137, 2134, 2126, 2116, 2119,
+     2133, 2284, 2119, 2127, 2130, 2111, 2110, 2162, 2109, 2119,
+     2159,  505, 2118, 2157, 2102, 2104, 2115, 2153,  532, 2157,
+     2092, 2107,  538, 2097, 2103, 2112, 2093, 2091, 2094, 2090,
+     2096, 2087, 2086, 2099, 2092, 2082, 2093, 2097, 2096, 2090,
+      220, 2097, 2092, 2084, 2074, 2089, 2084, 2088,  500, 2086,
+     2072, 2078, 2085, 2067, 2068, 2071, 2068, 2067,  562, 2062,
+
+     2076, 2075, 2074, 2077, 2059, 2067,  543, 2284, 2284,  553,
+     2284, 2284, 2054,    0,  520, 2101,  554, 2112, 2284,  556,
+     2284, 2111, 2284, 2105,  606, 2284,  555, 2045, 2064, 2047,
+     2064, 2052, 2104, 2059, 2054, 2057, 2052,   80, 2284, 2054,
+      586, 2093, 2051, 2048, 2049,  583, 2053, 2093, 2041, 2036,
+     2033, 2029, 2031, 2082, 2039, 2028, 2044, 2078, 2024,  607,
+     2037, 2037, 2020, 2021, 2034, 2021, 2031, 2026, 2033, 2028,
+     2013,  574, 2022, 2025, 2020,  534, 2019, 2015, 2065,  422,
+      563, 2284, 2059, 2009, 2008, 2001, 2003, 2015, 2006, 1995,
+     2012, 2001, 2006,  596, 2053, 2006,  588, 2003, 2006, 2006,
+
+     2004, 1993, 1993, 2005,  580, 1980, 1981, 2002,  590, 1984,
+     1981, 1995, 1998, 1993, 1979, 1991, 1990, 1989, 1984, 1987,
+     1986, 1985, 1984,  558, 2027, 1986, 2025, 2024, 1966,  639,
+     1979, 2284, 2284, 1978,    0,  610, 2020, 2019, 2284, 2018,
+     2284,  617,  665,  611, 2017, 2011, 1964, 1966, 1954, 2284,
+     1959, 1965, 1968, 1951, 1966, 1953, 1952, 2284, 1962,  634,
+     1953, 1950, 1962,  566, 1947, 1949, 2284, 1955, 1940, 1942,
+     1953, 1951, 1946,  652, 1953, 1941, 1934, 1985, 2284, 1932,
+     1948, 1982, 1986, 1942, 1936, 1938, 1939, 1941, 1975, 1926,
+     1921, 1920, 1922, 1918, 1914,  556, 1933, 1907, 1914, 1919,
+
+     1912, 1928, 1962, 1966, 2284, 1911, 1907, 1963, 1914, 1908,
+     1915, 1900, 1910, 1898, 1912, 1901, 1897, 1899, 1894, 2284,
+     1951, 2284, 1893, 1892, 1885, 1902, 1941, 1940, 1885, 1890,
+     1899, 1893, 1887, 1896,  653, 1933, 1895, 1878, 1878, 1873,
+     1869, 1875, 1880, 1873, 1881, 1885, 1868, 1926, 1867, 1919,
+     1864, 1865, 1864, 1876, 1865, 2284, 1875, 2284, 2284, 1864,
+     2284, 1874, 1910, 1870,    0, 1913, 2284, 2284, 2284,  635,
+      638,  656, 2284,  607, 1872, 1852, 1905, 1850, 1903, 1848,
+     1847, 1846, 1853, 1846, 1854, 1857, 1839, 1839, 1854, 1853,
+     1841, 1851, 1850, 1834, 1849, 1831, 1878, 1845, 1883, 1827,
+
+     1829, 1841, 1841, 1840, 2284, 1825, 1822, 1880, 1835, 1827,
+     1833, 1824, 1832, 2284, 1817, 1828, 1832, 1814, 1828,  621,
+     1810, 1804, 1809, 1806, 1821, 1820, 1821, 1800, 1810, 1816,
+     1859, 1814, 1813, 1805, 1796, 2284, 1797, 1799, 2284, 1807,
+     1846, 1845,   16, 1806, 1843, 1788, 1789, 1792, 1793, 1784,
+     2284, 1798, 1784,  693, 1776, 1780, 1796, 1793, 1785, 1830,
+     1782, 1789, 1827, 2284, 1773, 1771, 1785, 1769, 1783, 1786,
+     1820, 1819, 1818, 1817, 1762, 1815, 1814, 2284, 1759, 1773,
+      699, 1774, 1773, 1770, 1770, 1807, 1767, 1756, 1758, 2284,
+     2284,  665,  634, 1750, 1767, 1759, 1746, 1740, 1761, 1802,
+
+      658, 1796, 1756, 1794, 1793, 1745, 1739, 1742, 1750, 1753,
+     1737, 1738, 1747, 1728, 1783, 1743, 1733, 1741, 1779, 1740,
+      660, 1731, 1733, 1737, 1774,    2,   91,  170, 2284,  227,
+      290,  299,  378,  407,  465,  497,  505,  533,  555,  574,
+      602,  627,  679,  681,  640,  657,  644,  663,  708,  667,
+      718, 2284,  719,  676,  674,  676,  673,  667,  722,  685,
+      674, 2284,  676,  687,  676,  689,  691,  735,  678,  738,
+      681,  696, 2284,  690,  684,  695,  680,  691,  704,  683,
+      689,  744,  708,  692,  692,  705,  749,  750,  751,  698,
+      716,  711,  718,  713,  698,  710,  711,  717,  704, 2284,
+
+      769,  727,  729,  719,  731,  721,  734,  725,  731,  775,
+      751,  738,  720,  727,  741,  786,  736, 2284,  734,  749,
+      746,  732,  739,  738,  736,  755,  752,  753,  741,  748,
+      749,  758,  762,  759,  749,  762,  748,  747,  753,  810,
+      751,  752,  758,  774,  757,  811,  766, 2284,  776,  776,
+      769,  780,  778,  823,  765,  767,  782,  783,  771,  830,
+      787,  773,  776, 2284, 2284,  792,  791,  792,  797,  785,
+      795,  797, 2284, 2284,  797,  799,  786,  804,  791,  789,
+      807,  794,  794,  845,  792,  796,  854, 2284,  855, 2284,
+      800,  814,  814,  859,  807,  806,  810,  804,  864,  817,
+
+      807,  808,  804,  814,  818,  829,  813,  831,  826,  828,
+      821,  823,  824,  836,  826,  841,  882,  839,  844,  821,
+      844,  828, 2284,  835,  836,  850,  841,  839,  889,  836,
+      851,  869,  877,  846,  895,  857,  897, 2284,  863,  851,
+      846,  847,  859,  866,  855,  856,  852,  870,  856,  857,
+      867,  876,  912,  859,  868,  863,  917,  923,  881,  872,
+     2284,  876,  884,  886,  871,  887,  877,  889,  883,  930,
+      896,  880,  881, 2284,  897,  900,  883,  885,  943,  886,
+     2284,  903,  906,  886,  905,  893,  946,  904,  900,  897,
+      950,  899,  952,  914,  900,  918,  917,  903,  918,  910,
+
+      906,  924,  923,  910, 2284, 2284,  918,  965,  918, 2284,
+      926,  929,  922,  975, 2284,  924,  930,  974,  925,  926,
+      938,  932,  936,  934,  932,  943,  988,  932,  937,  991,
+      992,  936,  948, 2284,  936,  944,  942,  993,  955,  941,
+      943,  952,  964,  951,  949,  963,  964,  980,  985,  967,
+      972,  955,  955,  957,  957,  977,  976,  967,  956,  973,
+      980, 1023,  965,  985,  978,  982,  986,  969,  986, 1031,
+      978,  982, 2284, 1029,  978,  977,  979, 1000,  997, 1037,
+      986, 1004, 1005,  991,  999, 1008,  988, 1003, 1010, 1052,
+     1053, 2284, 1006, 1055, 1056, 1007, 1017, 1019, 1003, 1005,
+
+     1005, 1012, 1021, 1009, 1016, 1011, 1018, 1030, 1071, 1018,
+     1017, 1034, 1075, 1025, 1029, 1027, 1025, 1020, 1081, 1082,
+     1032, 1084, 1080, 1086, 1039, 2284, 1044, 1037, 1028, 1047,
+     1041, 1036, 1046, 1043, 1048, 1044, 1056, 2284, 1040, 1043,
+     2284, 2284, 1043, 1103, 1042, 1061, 1062, 1064, 1055, 1109,
+     1110, 1063, 1048, 1062, 1070, 1052, 1057, 1096, 1087, 1119,
+     1074, 1074, 1078, 1065, 1067, 1084, 1079, 1083, 1128, 1076,
+     1080, 2284, 1077, 1073, 1090, 1070, 1091, 1081, 1132, 2284,
+     1097, 1095, 1099, 1083, 1095, 1100, 1086, 1147, 1100, 1105,
+     1092, 1103, 1095, 1101, 1097, 1115, 1116, 1117, 2284, 2284,
+
+     1115, 2284, 1117, 2284, 1102, 1103, 1122, 1112, 1164, 1121,
+     1118, 1162, 1126, 1115, 1122, 1127, 1124, 1130, 2284, 1123,
+     1115, 1176, 2284, 1177, 1124, 1131, 1175, 1137, 2284, 2284,
+     1134, 2284, 1125, 2284, 1125, 1128, 1142, 1147, 1130, 1141,
+     1190, 1147, 1148, 1149, 1189, 1145, 1196, 1149, 1198, 2284,
+     1145, 1200, 1201, 1158, 1160, 2284, 2284, 1143, 1205, 1201,
+     1165, 1149, 1161, 1180, 1211, 2284, 1168, 1159, 1170, 1215,
+     1162, 1177, 1213, 1165, 2284, 1161, 1177, 1165, 1179, 1180,
+     1177, 1221, 1184, 1174, 1189, 1177, 1177, 1232, 1228, 1234,
+     1191, 2284, 1193, 1192, 1195, 1188, 1197, 1198, 1195, 1185,
+
+     1188, 1188, 1248, 1195, 1250, 1251, 1194, 1253, 2284, 1211,
+     1190, 1205, 1198, 1201, 1215, 1218, 1217, 1215, 1265, 1218,
+     2284, 2284, 1214, 1224, 1209, 1265, 1226, 1212, 1273, 1274,
+     1218, 1228, 1277, 1234, 2284, 1226, 1226, 1228, 1230, 1283,
+     1226, 2284, 1227, 2284, 1229, 2284, 2284, 1242, 1244, 1245,
+     2284, 1232, 1240, 1292, 1241, 1273, 2284, 1295, 1245, 1292,
+     2284, 1240, 1248, 1242, 1239, 1242, 1245, 1245, 1241, 1263,
+     1302, 1255, 1267, 1270, 1258, 1253, 1313, 1261, 2284, 1256,
+     2284, 1258, 1318, 1271, 1262, 1277, 1277, 1280, 1280, 1277,
+     1321, 1283, 2284, 1275, 2284, 2284, 1285, 2284, 1325, 1287,
+
+     1288, 1285, 1329, 1277, 1292, 1332, 1294, 1286, 2284, 1283,
+     1283, 1289, 1288, 1286, 1301, 1301, 2284, 2284, 1342, 1289,
+     2284, 1306, 1291, 1291, 1293, 1299, 2284, 1354, 1296, 1306,
+     1317, 1315, 1359, 1312, 1321, 2284, 1318, 1337, 2284, 1321,
+     1306, 1366, 1367, 1324, 1329, 1311, 1371, 1372, 1373, 1369,
+     1333, 1330, 1326, 1319, 1374, 1332, 2284, 1322, 1335, 1383,
+     2284, 1321, 1380, 1344, 1340, 1384, 1333, 1338, 1336, 1395,
+     1351, 1397, 1347, 1399, 1360, 1349, 1343, 1403, 1345, 1354,
+     1347, 1361, 1364, 1409, 1351, 1368, 1364, 1354, 1369, 1353,
+     1411, 1412, 1413, 1360, 1415, 1378, 2284, 1378, 1365, 1364,
+
+     1420, 2284, 1361, 1379, 1428, 1398, 1430, 1383, 2284, 2284,
+     1374, 1385, 1434, 2284, 2284, 2284, 1380, 1385, 1383, 1433,
+     1391, 1396, 1384, 1388, 1386, 1387, 2284, 1445, 1391, 1442,
+     1385, 1390, 1451, 1399, 1410, 1411, 2284, 1456, 1410, 2284,
+     1411, 2284, 1402, 1417, 1405, 2284, 1415, 1416, 1417, 1466,
+     1424, 2284, 1463, 1429, 1405, 1423, 1424, 1433, 1415, 1421,
+     1423, 1477, 1436, 1435, 1427, 1481, 1431, 1435, 1440, 1433,
+     2284, 1486, 2284, 1435, 1488, 1430, 2284, 1433, 1443, 1487,
+     1435, 1450, 1437, 1452, 1444, 1444, 1455, 2284, 1449, 1444,
+     1443, 1503, 1456, 2284, 1500, 1451, 1448, 2284, 1462, 1464,
+
+     1466, 1511, 1464, 1461, 1469, 1463, 2284, 1516, 1457, 1459,
+     1475, 1468, 1458, 1474, 1475, 1469, 1485, 2284, 1475, 1527,
+     1486, 2284, 1470, 1477, 1531, 1527, 2284, 1489, 2284, 1529,
+     1491, 1492, 1477, 1478, 1486, 1540, 1488, 1537, 1492, 1504,
+     1501, 1492, 1499, 2284, 1496, 1501, 1499, 1551, 1552, 1509,
+     1496, 2284, 1511, 1512, 1513, 1514, 2284, 1504, 1516, 1561,
+     1518, 1563, 1505, 1513, 1507, 1515, 1528, 2284, 1505, 1565,
+     1526, 2284, 1530, 1515, 1515, 1530, 1523, 1522, 1533, 1520,
+     2284, 1536, 1526, 1582, 1540, 1531, 1543, 1534, 1543, 1545,
+     1549, 2284, 2284, 1531, 1591, 1534, 1593, 1535, 1595, 1553,
+
+     1597, 2284, 1598, 2284, 1594, 1556, 1553, 1558, 1545, 1604,
+     1547, 1552, 1543, 1608, 1561, 1562, 1552, 1569, 1568, 1609,
+     1553, 1572, 2284, 1569, 1618, 1575, 1576, 1621, 1578, 1581,
+     1576, 2284, 1625, 2284, 1578, 2284, 1587, 2284, 2284, 1569,
+     1629, 1576, 1631, 1574, 2284, 1593, 1634, 1593, 2284, 1584,
+     1574, 1633, 1599, 1592, 1588, 1642, 1586, 1591, 2284, 1587,
+     1589, 2284, 1594, 1604, 1597, 2284, 1598, 1592, 1604, 2284,
+     1600, 2284, 1610, 1603, 2284, 1605, 1613, 1658, 1599, 1601,
+     1598, 1622, 2284, 1615, 1618, 1607, 1661, 1608, 1616, 1625,
+     1626, 1627, 1620, 1615, 1616, 1620, 1632, 1677, 2284, 1623,
+
+     1635, 1680, 1629, 1628, 1683, 1636, 1623, 1638, 1643, 1688,
+     1689, 1690, 1647, 1692, 1693, 1643, 1637, 2284, 1653, 1697,
+     2284, 1654, 1656, 2284, 1647, 1661, 1657, 1650, 2284, 2284,
+     2284, 1704, 2284, 2284, 1661, 1706, 1667, 2284, 1708, 1709,
+     1664, 1663, 1664, 1654, 2284, 1709, 2284, 1656, 2284, 2284,
+     1716, 1658, 1674, 1719, 1680, 1677, 2284, 1718, 1667, 2284,
+     1679, 1672, 1727, 1669, 1671, 1686, 1671, 2284, 1684, 1733,
+     1734, 1682, 1684, 2284, 2284, 1678, 1694, 1739, 1740, 2284,
+     2284, 2284, 1746, 1751, 1756, 1761, 1766, 1771, 1776, 1779,
+     1753, 1758, 1760, 1773
 
     } ;
 
-static const flex_int16_t yy_def[1899] =
+static const flex_int16_t yy_def[1895] =
     {   0,
-     1887, 1887, 1888, 1888, 1887, 1887, 1887, 1887, 1887, 1887,
-     1886, 1886, 1886, 1886, 1886, 1889, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1890,
-     1886, 1886, 1886, 1891,   15, 1886,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1892,   45,   45,   45,
+     1883, 1883, 1884, 1884, 1883, 1883, 1883, 1883, 1883, 1883,
+     1882, 1882, 1882, 1882, 1882, 1885, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1886,
+     1882, 1882, 1882, 1887,   15, 1882,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1888,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1889, 1886, 1886,
-     1886, 1886, 1886, 1886, 1893, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1890, 1886, 1891, 1886,
+       45,   45,   45,   45,   45,   45,   45, 1885, 1882, 1882,
+     1882, 1882, 1882, 1882, 1889, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1886, 1882, 1887, 1882,
 
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1894,   45, 1892,   45,   45,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1890,   45, 1888,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1893, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1895,   45,   45, 1886,   45,   45, 1886,   45,   45,
+       45,   45, 1889, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1891,   45,   45, 1882,   45,   45, 1882,   45,   45,
 
-       45,   45,   45,   45, 1894, 1886, 1892,   45,   45,   45,
+       45,   45,   45,   45, 1890, 1882, 1888,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1896,   45,   45,   45,   45, 1886,   45,
-     1886,   45, 1886,   45, 1892, 1886,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
+       45,   45,   45,   45,   45,   45, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1892,   45,   45,   45,   45, 1882,   45,
+     1882,   45, 1882,   45, 1888, 1882,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886, 1886, 1886, 1897,   45,   45,   45, 1886,
-       45, 1886,   45, 1892,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
+       45, 1882, 1882, 1882, 1893,   45,   45,   45, 1882,   45,
+     1882,   45, 1888,   45,   45,   45,   45,   45,   45, 1882,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 1886,   45,   45,   45,
+       45,   45,   45,   45, 1882,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1882,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1886,   45, 1886,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45, 1886,
-     1886,   45, 1886,   45,   45, 1886, 1898,   45, 1886, 1886,
-     1886,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1882,   45, 1882, 1882,   45,
+     1882,   45,   45, 1882, 1894,   45, 1882, 1882, 1882,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 1886,   45,   45,   45,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1882,   45,   45,   45,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1886,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
+       45,   45,   45,   45,   45, 1882,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1886, 1886,   45,   45,   45,   45,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1882,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1882,
 
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1886, 1886,   45,   45,   45,
-       45,   45,   45,   45, 1886, 1886,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1882, 1882,   45,   45,   45,   45,   45,
+       45,   45, 1882, 1882,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45, 1882,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 1886, 1886,   45,   45,
-       45, 1886,   45,   45,   45,   45, 1886,   45,   45,   45,
+       45,   45,   45,   45, 1882, 1882,   45,   45,   45, 1882,
+       45,   45,   45,   45, 1882,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1886,   45,   45,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45,   45, 1886, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-
-     1886,   45, 1886,   45, 1886,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1882,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+     1882, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
-     1886, 1886,   45, 1886,   45, 1886,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45, 1886, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45,   45,   45,   45,   45,   45, 1886,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45, 1882,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
-
+       45,   45,   45,   45,   45,   45,   45,   45, 1882, 1882,
+
+       45, 1882,   45, 1882,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45, 1882, 1882,
+       45, 1882,   45, 1882,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1882,
+       45,   45,   45,   45,   45, 1882, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45, 1882,   45,   45,   45,   45,
+       45,   45,   45,   45, 1882,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1886,   45,   45,   45,
-       45,   45,   45, 1886,   45, 1886,   45, 1886, 1886,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45, 1886,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45, 1886,   45, 1886,   45, 1886,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45, 1886, 1886,
-       45,   45, 1886,   45,   45,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45,   45,   45,   45,
+     1882, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1882,   45,   45,   45,   45,   45,
+       45, 1882,   45, 1882,   45, 1882, 1882,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1882,   45, 1882, 1882,   45, 1882,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
+       45,   45,   45,   45,   45,   45, 1882, 1882,   45,   45,
+     1882,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45, 1882,   45,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
-
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-     1886, 1886,   45,   45,   45, 1886, 1886, 1886,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1886,   45,   45,
-       45, 1886,   45, 1886,   45,   45,   45, 1886,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45, 1886,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45, 1886,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45,   45,   45, 1886,   45,   45,   45,   45, 1886,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1886,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45, 1886,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1886, 1886,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45, 1886,   45, 1886,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+
+       45, 1882,   45,   45,   45,   45,   45,   45, 1882, 1882,
+       45,   45,   45, 1882, 1882, 1882,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45, 1882,
+       45, 1882,   45,   45,   45, 1882,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1886,   45, 1886,   45, 1886,   45, 1886,
-     1886,   45,   45,   45,   45,   45, 1886,   45,   45,   45,
-     1886,   45,   45,   45,   45,   45,   45,   45,   45, 1886,
-       45,   45, 1886,   45,   45,   45,   45, 1886,   45,   45,
-       45, 1886,   45, 1886,   45,   45, 1886,   45,   45,   45,
+     1882,   45, 1882,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45, 1882,   45,   45,
+
+       45,   45,   45,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45, 1882,   45,   45,   45,   45, 1882,   45, 1882,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1882,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45,   45,   45,   45, 1882,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45, 1882,   45,   45,   45,   45,   45,   45,   45,   45,
+     1882,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882, 1882,   45,   45,   45,   45,   45,   45,   45,
+
+       45, 1882,   45, 1882,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
+       45, 1882,   45, 1882,   45, 1882,   45, 1882, 1882,   45,
+       45,   45,   45,   45, 1882,   45,   45,   45, 1882,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
+       45, 1882,   45,   45,   45, 1882,   45,   45,   45, 1882,
+       45, 1882,   45,   45, 1882,   45,   45,   45,   45,   45,
+       45,   45, 1882,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1882,   45,
 
-     1886,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45, 1886,   45,   45, 1886,   45,   45,   45,
-       45, 1886, 1886, 1886, 1886,   45, 1886, 1886,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45,   45, 1886,   45,
-     1886,   45, 1886, 1886,   45,   45,   45,   45,   45,   45,
-     1886,   45,   45, 1886,   45,   45,   45,   45,   45,   45,
-       45, 1886,   45,   45,   45,   45,   45, 1886, 1886,   45,
-       45,   45,   45, 1886, 1886,    0, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+     1882,   45,   45, 1882,   45,   45,   45,   45, 1882, 1882,
+     1882,   45, 1882, 1882,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45,   45, 1882,   45, 1882,   45, 1882, 1882,
+       45,   45,   45,   45,   45,   45, 1882,   45,   45, 1882,
+       45,   45,   45,   45,   45,   45,   45, 1882,   45,   45,
+       45,   45,   45, 1882, 1882,   45,   45,   45,   45, 1882,
+     1882,    0, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882
 
     } ;
 
-static const flex_int16_t yy_nxt[2362] =
+static const flex_int16_t yy_nxt[2358] =
     {   0,
-     1886,   13,   14,   13, 1886,   15,   16,  849,   17,   18,
+     1882,   13,   14,   13, 1882,   15,   16,  848,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       84,  764,   37,   14,   37,   85,   25,   26,   38,  100,
-     1886,   27,   37,   14,   37,   42,   28,   42,   38,   90,
+       84,  762,   37,   14,   37,   85,   25,   26,   38,  100,
+     1882,   27,   37,   14,   37,   42,   28,   42,   38,   90,
        91,   29,  197,   30,   13,   14,   13,   89,   90,   25,
        31,   91,   13,   14,   13,   13,   14,   13,   32,   40,
-      765,   13,   14,   13,   33,   40,  101,   90,   91,  197,
+      763,   13,   14,   13,   33,   40,  101,   90,   91,  197,
        89,   34,   35,   13,   14,   13,   93,   15,   16,   94,
        17,   18,   19,   20,   21,   22,   22,   22,   22,   22,
        23,   24,   13,   14,   13,   89,   39,  102,   25,   26,
 
        13,   14,   13,   27,   39,   42,  105,   42,   28,   42,
       106,   42,   41,   29,  108,   30,  111,  112,   92,  134,
-       41,   25,   31,  102,  135,  365,   87,  136,   87,  105,
+       41,   25,   31,  102,  135,  455,   87,  136,   87,  105,
        32,   88,   88,   88,   88,   88,   33,  108,  106,  111,
-      850,  112,  366,   34,   35,   44,   44,   44,   45,   45,
+      849,  112,  456,   34,   35,   44,   44,   44,   45,   45,
        46,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   47,   45,   45,
        48,   49,   50,   45,   51,   52,   53,   45,   45,   45,
@@ -1406,13 +1406,13 @@ static const flex_int16_t yy_nxt[2362] =
        58,   45,   59,   60,   61,   62,   63,   64,   65,   51,
 
        66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
-       76,   77,   56,   45,   45,   45,   45,   45,   79,  851,
+       76,   77,   56,   45,   45,   45,   45,   45,   79,  850,
        80,   80,   80,   80,   80,   79,  102,   82,   82,   82,
        82,   82,  204,   81,   83,   83,   83,   83,   83,   79,
        81,   82,   82,   82,   82,   82,  105,   81,  118,  164,
       109,  129,  116,  165,   81,  204,   81,  201,  117,  119,
       110,  130,  120,   81,  121,  132,  122,  198,  184,  105,
-       81,  185,  133,  109,  852,  233,  405,   81,   45,  406,
+       81,  185,  133,  109,  851,  233,  404,   81,   45,  405,
       131,   45,   45,   45,  201,   45,   45,   45,  110,  114,
       137,  234,   45,   45,  184,   45,   45,  185,  199,  184,
 
@@ -1420,130 +1420,130 @@ static const flex_int16_t yy_nxt[2362] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,  123,  187,   45,  124,  125,  185,
        45,  126,  127,  145,   45,  141,  142,  146,  294,  143,
-      108,  147,   45,  853,  128,  144,   45,  186,   45,  115,
+      108,  147,   45,  852,  128,  144,   45,  186,   45,  115,
       153,  186,  295,  148,  111,  188,  196,  149,  154,  150,
-      155,  151,  854,  152,  158,  156,  157,  159,  160,  166,
+      155,  151,  853,  152,  158,  156,  157,  159,  160,  166,
       173,  174,  228,  167,  229,  186,  168,  111,  161,  189,
       109,  162,  196,  169,  170,  203,  251,  180,  171,  172,
       110,  230,  181,   83,   83,   83,   83,   83,   88,   88,
 
        88,   88,   88,  175,  242,  176,   81,  252,  177,  178,
       100,   79,  203,   80,   80,   80,   80,   80,  110,   83,
-       83,   83,   83,   83,   99,  179,   81,  855,   87,   81,
+       83,   83,   83,   83,   99,  179,   81,  854,   87,   81,
        87,   99,   81,   88,   88,   88,   88,   88,   79,  193,
        82,   82,   82,   82,   82,  200,  202,  101,  243,   81,
-      200,  193,  856,   81,  215,   81,   88,   88,   88,   88,
+      200,  193,  855,   81,  215,   81,   88,   88,   88,   88,
        88,   99,  211,  216,  217,   99,  275,  193,  208,   99,
-      276,  212,  508,  200,  202,  213,   81,   99,  259,  209,
-      231,   99,  509,   99,  192,  207,  207,  207,  207,  207,
+      276,  212,  506,  200,  202,  213,   81,   99,  259,  209,
+      231,   99,  507,   99,  192,  207,  207,  207,  207,  207,
       222,  223,  278,  232,  207,  207,  207,  207,  207,  207,
 
       224,  237,  271,  288,  238,  272,  273,  289,  239,  265,
-      201,  290,  309,  307,  857,  373,  307,  207,  207,  207,
+      201,  290,  309,  307,  856,  372,  307,  207,  207,  207,
       207,  207,  207,  308,  266,  267,  268,  279,  280,  281,
       308,  309,  315,  317,  320,  309,  318,  299,  282,  322,
-      283,  307,  284,  285,  310,  286,  324,  315,  386,  308,
-      858,  335,  859,  414,  312,  315,  311,  320,  320,  336,
-      437,  317,  322,  318,  337,  338,  415,  321,  374,  433,
-      327,  375,  425,  324,  325,  325,  325,  325,  325,  433,
-      439,  382,  456,  325,  325,  325,  325,  325,  325,  437,
-      441,  459,  433,  860,  465,  437,  460,  441,  387,  457,
-
-      466,  522,  434,  439,  861,  629,  325,  325,  325,  325,
-      325,  325,  480,  556,  596,  630,  557,  481,  441,  444,
-      444,  444,  444,  444,  445,  510,  862,  597,  444,  444,
-      444,  444,  444,  444,  496,  497,  498,  503,  526,  568,
-      499,  535,  527,  504,  540,  536,  863,  572,  541,  573,
-      864,  444,  444,  444,  444,  444,  444,  563,  606,  523,
-      865,  588,  564,  607,  568,  482,  695,  568,  694,  589,
-      483,  590,  591,  592,  572,  697,  573,   45,   45,   45,
-       45,   45,  698,  742,  743,  813,   45,   45,   45,   45,
-       45,   45,  574,  666,  695,  694,  693,  775,  667,  812,
-
-      866,  696,  776,  802,  821,  822,  867,  823,  813,   45,
-       45,   45,   45,   45,   45,  803,  842,  868,  869,  870,
-      843,  873,  871,  874,  844,  872,  875,  812,  876,  877,
+      283,  307,  284,  285,  310,  286,  324,  315,  385,  308,
+      857,  335,  858,  413,  312,  315,  311,  320,  320,  336,
+      436,  317,  322,  318,  337,  338,  414,  321,  373,  432,
+      327,  374,  424,  324,  325,  325,  325,  325,  325,  432,
+      438,  381,  859,  325,  325,  325,  325,  325,  325,  436,
+      440,  458,  432,  464,  501,  436,  459,  440,  386,  465,
+
+      502,  520,  433,  438,  860,  627,  325,  325,  325,  325,
+      325,  325,  479,  554,  595,  628,  555,  480,  440,  443,
+      443,  443,  443,  443,  444,  508,  861,  596,  443,  443,
+      443,  443,  443,  443,  494,  495,  496,  524,  533,  538,
+      497,  525,  534,  539,  561,  566,  566,  862,  570,  562,
+      571,  443,  443,  443,  443,  443,  443,  605,  664,  521,
+      811,  691,  606,  665,  695,  481,  694,  692,  740,  741,
+      482,  696,  693,  566,  572,  570,  863,  571,   45,   45,
+       45,   45,   45,  811,  864,  586,  865,   45,   45,   45,
+       45,   45,   45,  587,  692,  588,  589,  590,  773,  591,
+
+      693,  810,  866,  774,  800,  819,  820,  867,  821,  868,
+       45,   45,   45,   45,   45,   45,  801,  841,  871,  869,
+      872,  842,  870,  873,  874,  843,  875,  876,  877,  810,
       878,  879,  880,  881,  882,  883,  884,  885,  886,  887,
-      888,  777,  889,  890,  891,  892,  893,  894,  895,  896,
+      888,  889,  775,  890,  891,  892,  893,  894,  895,  896,
       897,  898,  899,  900,  901,  902,  903,  904,  905,  906,
-      907,  908,  909,  910,  911,  912,  913,  915,  916,  919,
-      920,  921,  923,  914,  924,  917,  925,  922,  926,  918,
+      907,  908,  909,  910,  911,  913,  914,  917,  918,  919,
+      921,  912,  922,  915,  923,  920,  924,  916,  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,  935,  963,  964,  965,
-      966,  967,  968,  969,  970,  971,  972,  973,  974,  975,
-      977,  978,  979,  980,  976,  981,  982,  983,  984,  985,
+      957,  958,  959,  960,  933,  961,  962,  963,  964,  965,
+      966,  967,  968,  969,  970,  971,  972,  973,  974,  976,
+      977,  978,  979,  975,  980,  981,  982,  983,  984,  985,
       986,  987,  988,  989,  990,  991,  992,  993,  994,  995,
-      996,  997,  998,  999, 1000, 1002, 1003, 1004, 1001, 1005,
+      996,  997,  998, 1000, 1001, 1002,  999, 1003, 1004, 1005,
      1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
      1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
-     1026, 1027, 1028, 1029, 1030, 1031, 1032, 1034, 1035, 1036,
-     1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1033, 1045,
+     1026, 1027, 1028, 1029, 1030, 1032, 1033, 1034, 1035, 1036,
+     1037, 1038, 1039, 1040, 1041, 1042, 1031, 1043, 1044, 1045,
 
      1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
      1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
-     1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1051, 1074,
-     1075, 1050, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
-     1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
-     1096, 1097, 1098, 1099, 1094, 1100, 1101, 1102, 1103, 1104,
+     1066, 1067, 1068, 1069, 1070, 1071, 1049, 1072, 1073, 1048,
+     1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
+     1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1095,
+     1096, 1097, 1098, 1093, 1099, 1100, 1101, 1102, 1103, 1104,
      1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
-     1115, 1116, 1117, 1118, 1120, 1121, 1122, 1123, 1124, 1125,
-     1126, 1127, 1128, 1129, 1119, 1130, 1131, 1132, 1133, 1134,
+     1115, 1116, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
+     1126, 1127, 1117, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
      1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
 
-     1145, 1146, 1147, 1148, 1149, 1150, 1151, 1095, 1152, 1153,
-     1154, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1161, 1163,
+     1145, 1146, 1147, 1148, 1149, 1150, 1094, 1151, 1152, 1153,
+     1154, 1155, 1156, 1157, 1158, 1160, 1159, 1161, 1162, 1163,
      1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
      1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
-     1184, 1185, 1186, 1187, 1160, 1161, 1188, 1189, 1190, 1191,
+     1184, 1185, 1158, 1159, 1186, 1187, 1188, 1189, 1190, 1191,
      1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
-     1202, 1203, 1205, 1207, 1208, 1209, 1204, 1210, 1211, 1212,
+     1202, 1204, 1206, 1207, 1208, 1203, 1209, 1210, 1211, 1212,
      1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
      1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
      1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
 
-     1243, 1244, 1245, 1246, 1247, 1248, 1206, 1249, 1250, 1251,
+     1243, 1244, 1245, 1246, 1247, 1205, 1248, 1249, 1250, 1251,
      1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261,
      1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
      1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
-     1282, 1283, 1284, 1285, 1286, 1287, 1288, 1266, 1289, 1290,
-     1291, 1292, 1293, 1267, 1294, 1295, 1296, 1297, 1298, 1299,
+     1282, 1283, 1284, 1285, 1286, 1264, 1287, 1288, 1289, 1290,
+     1291, 1265, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
      1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309,
      1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
      1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
      1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
 
-     1340, 1341, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
+     1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
      1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
-     1361, 1362, 1363, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
+     1361, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
      1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
-     1382, 1383, 1384, 1385, 1386, 1358, 1387, 1388, 1389, 1390,
-     1391, 1392, 1393, 1394, 1342, 1395, 1396, 1397, 1398, 1399,
-     1400, 1401, 1402, 1403, 1405, 1406, 1364, 1407, 1408, 1409,
-     1410, 1404, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
+     1382, 1383, 1384, 1356, 1385, 1386, 1387, 1388, 1389, 1390,
+     1391, 1392, 1340, 1393, 1394, 1395, 1396, 1397, 1398, 1399,
+     1400, 1401, 1403, 1404, 1362, 1405, 1406, 1407, 1408, 1402,
+     1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
      1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428,
      1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
 
      1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448,
      1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
-     1459, 1460, 1461, 1462, 1440, 1463, 1464, 1465, 1466, 1467,
+     1459, 1460, 1438, 1461, 1462, 1463, 1464, 1465, 1466, 1467,
      1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477,
      1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
      1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497,
      1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
      1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517,
-     1518, 1519, 1520, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
-     1529, 1530, 1531, 1521, 1532, 1533, 1534, 1508, 1535, 1536,
+     1518, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
+     1529, 1519, 1530, 1531, 1532, 1506, 1533, 1534, 1535, 1536,
 
-     1537, 1538, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547,
+     1537, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547,
      1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557,
      1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567,
      1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577,
      1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587,
-     1588, 1589, 1591, 1592, 1593, 1594, 1590, 1595, 1596, 1539,
-     1597, 1598, 1599, 1600, 1574, 1601, 1602, 1603, 1604, 1605,
+     1588, 1590, 1591, 1592, 1593, 1589, 1594, 1595, 1538, 1596,
+     1597, 1598, 1572, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
      1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
      1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
      1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
@@ -1572,97 +1572,96 @@ static const flex_int16_t yy_nxt[2362] =
 
      1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845,
      1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855,
-     1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865,
-     1867, 1866, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
-     1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885,
-       12,   12,   12,   12,   12,   36,   36,   36,   36,   36,
-       78,  314,   78,   78,   78,   97,  436,   97,  567,   97,
-       99,   99,   99,   99,   99,  113,  113,  113,  113,  113,
-      183,   99,  183,  183,  183,  205,  205,  205,  848,  847,
-      846,  845,  841,  840,  839,  838,  837,  836,  835,  834,
-
-      833,  832,  831,  830,  829,  828,  827,  826,  825,  824,
-      820,  819,  818,  817,  816,  815,  814,  811,  810,  809,
-      808,  807,  806,  805,  804,  801,  800,  799,  798,  797,
-      796,  795,  794,  793,  792,  791,  790,  789,  788,  787,
-      786,  785,  784,  783,  782,  781,  780,  779,  778,  774,
-      773,  772,  771,  770,  769,  768,  767,  766,  763,  762,
-      761,  760,  759,  758,  757,  756,  755,  754,  753,  752,
-      751,  750,  749,  748,  747,  746,  745,  744,  741,  740,
-      739,  738,  737,  736,  735,  734,  733,  732,  731,  730,
-      729,  728,  727,  726,  725,  724,  723,  722,  721,  720,
-
-      719,  718,  717,  716,  715,  714,  713,  712,  711,  710,
-      709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
-      699,  693,  692,  691,  690,  689,  688,  687,  686,  685,
-      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
-      674,  673,  672,  671,  670,  669,  668,  665,  664,  663,
-      662,  661,  660,  659,  658,  657,  656,  655,  654,  653,
-      652,  651,  650,  649,  648,  647,  646,  645,  644,  643,
-      642,  641,  640,  639,  638,  637,  636,  635,  634,  633,
-      632,  631,  628,  627,  626,  625,  624,  623,  622,  621,
-      620,  619,  618,  617,  616,  615,  614,  613,  612,  611,
-
-      610,  609,  608,  605,  604,  603,  602,  601,  600,  599,
-      598,  595,  594,  593,  587,  586,  585,  584,  583,  582,
-      581,  580,  579,  578,  577,  576,  575,  571,  570,  569,
-      566,  565,  562,  561,  560,  559,  558,  555,  554,  553,
-      552,  551,  550,  549,  548,  547,  546,  545,  544,  543,
-      542,  539,  538,  537,  534,  533,  532,  531,  530,  529,
-      528,  525,  524,  521,  520,  519,  518,  517,  516,  515,
-      514,  513,  512,  511,  507,  506,  505,  502,  501,  500,
-      495,  494,  493,  492,  491,  490,  489,  488,  487,  486,
-      485,  484,  479,  478,  477,  476,  475,  474,  473,  472,
-
-      471,  470,  469,  468,  467,  464,  463,  462,  461,  458,
-      455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
-      443,  442,  440,  438,  435,  432,  431,  430,  429,  428,
-      427,  426,  424,  423,  422,  421,  420,  419,  418,  417,
-      416,  413,  412,  411,  410,  409,  408,  407,  404,  403,
-      402,  401,  400,  399,  398,  397,  396,  395,  394,  393,
-      392,  391,  390,  389,  388,  385,  384,  383,  381,  380,
-      379,  378,  377,  376,  372,  371,  370,  369,  368,  367,
-      364,  363,  362,  361,  360,  359,  358,  357,  356,  355,
-      354,  353,  352,  351,  350,  349,  348,  347,  346,  345,
-
-      344,  343,  342,  341,  340,  339,  334,  333,  332,  331,
-      330,  329,  328,  326,  206,  323,  321,  319,  316,  313,
-      306,  305,  304,  303,  302,  301,  300,  298,  297,  296,
-      293,  292,  291,  287,  277,  274,  270,  269,  264,  263,
-      262,  261,  260,  258,  257,  256,  255,  254,  253,  250,
-      249,  248,  247,  246,  245,  244,  241,  240,  236,  235,
-      227,  226,  225,  221,  220,  219,  218,  214,  210,  206,
-      195,  194,  191,  190,  182,  163,  140,  107,  104,  103,
-       43,   98,   96,   95,   86,   43, 1886,   11, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886
+     1856, 1857, 1858, 1859, 1860, 1861, 1863, 1862, 1864, 1865,
+     1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
+     1876, 1877, 1878, 1879, 1880, 1881,   12,   12,   12,   12,
+       12,   36,   36,   36,   36,   36,   78,  314,   78,   78,
+       78,   97,  435,   97,  565,   97,   99,   99,   99,   99,
+       99,  113,  113,  113,  113,  113,  183,   99,  183,  183,
+      183,  205,  205,  205,  847,  846,  845,  844,  840,  839,
+      838,  837,  836,  835,  834,  833,  832,  831,  830,  829,
+
+      828,  827,  826,  825,  824,  823,  822,  818,  817,  816,
+      815,  814,  813,  812,  809,  808,  807,  806,  805,  804,
+      803,  802,  799,  798,  797,  796,  795,  794,  793,  792,
+      791,  790,  789,  788,  787,  786,  785,  784,  783,  782,
+      781,  780,  779,  778,  777,  776,  772,  771,  770,  769,
+      768,  767,  766,  765,  764,  761,  760,  759,  758,  757,
+      756,  755,  754,  753,  752,  751,  750,  749,  748,  747,
+      746,  745,  744,  743,  742,  739,  738,  737,  736,  735,
+      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
+      724,  723,  722,  721,  720,  719,  718,  717,  716,  715,
+
+      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
+      704,  703,  702,  701,  700,  699,  698,  697,  691,  690,
+      689,  688,  687,  686,  685,  684,  683,  682,  681,  680,
+      679,  678,  677,  676,  675,  674,  673,  672,  671,  670,
+      669,  668,  667,  666,  663,  662,  661,  660,  659,  658,
+      657,  656,  655,  654,  653,  652,  651,  650,  649,  648,
+      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
+      637,  636,  635,  634,  633,  632,  631,  630,  629,  626,
+      625,  624,  623,  622,  621,  620,  619,  618,  617,  616,
+      615,  614,  613,  612,  611,  610,  609,  608,  607,  604,
+
+      603,  602,  601,  600,  599,  598,  597,  594,  593,  592,
+      585,  584,  583,  582,  581,  580,  579,  578,  577,  576,
+      575,  574,  573,  569,  568,  567,  564,  563,  560,  559,
+      558,  557,  556,  553,  552,  551,  550,  549,  548,  547,
+      546,  545,  544,  543,  542,  541,  540,  537,  536,  535,
+      532,  531,  530,  529,  528,  527,  526,  523,  522,  519,
+      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
+      505,  504,  503,  500,  499,  498,  493,  492,  491,  490,
+      489,  488,  487,  486,  485,  484,  483,  478,  477,  476,
+      475,  474,  473,  472,  471,  470,  469,  468,  467,  466,
+
+      463,  462,  461,  460,  457,  454,  453,  452,  451,  450,
+      449,  448,  447,  446,  445,  442,  441,  439,  437,  434,
+      431,  430,  429,  428,  427,  426,  425,  423,  422,  421,
+      420,  419,  418,  417,  416,  415,  412,  411,  410,  409,
+      408,  407,  406,  403,  402,  401,  400,  399,  398,  397,
+      396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
+      384,  383,  382,  380,  379,  378,  377,  376,  375,  371,
+      370,  369,  368,  367,  366,  365,  364,  363,  362,  361,
+      360,  359,  358,  357,  356,  355,  354,  353,  352,  351,
+      350,  349,  348,  347,  346,  345,  344,  343,  342,  341,
+
+      340,  339,  334,  333,  332,  331,  330,  329,  328,  326,
+      206,  323,  321,  319,  316,  313,  306,  305,  304,  303,
+      302,  301,  300,  298,  297,  296,  293,  292,  291,  287,
+      277,  274,  270,  269,  264,  263,  262,  261,  260,  258,
+      257,  256,  255,  254,  253,  250,  249,  248,  247,  246,
+      245,  244,  241,  240,  236,  235,  227,  226,  225,  221,
+      220,  219,  218,  214,  210,  206,  195,  194,  191,  190,
+      182,  163,  140,  107,  104,  103,   43,   98,   96,   95,
+       86,   43, 1882,   11, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882
     } ;
 
-static const flex_int16_t yy_chk[2362] =
+static const flex_int16_t yy_chk[2358] =
     {   0,
-        0,    1,    1,    1,    0,    1,    1,  727,    1,    1,
+        0,    1,    1,    1,    0,    1,    1,  726,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  645,    3,    3,    3,   21,    1,    1,    3,   44,
+       21,  643,    3,    3,    3,   21,    1,    1,    3,   44,
         0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
        28,    1,  106,    1,    5,    5,    5,   26,   32,    1,
         1,   33,    6,    6,    6,    7,    7,    7,    1,    7,
-      645,    8,    8,    8,    1,    8,   44,   27,   28,  106,
+      643,    8,    8,    8,    1,    8,   44,   27,   28,  106,
        26,    1,    1,    2,    2,    2,   32,    2,    2,   33,
         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
         2,    2,    9,    9,    9,   31,    5,   47,    2,    2,
 
        10,   10,   10,    2,    6,   37,   50,   37,    2,   42,
        51,   42,    9,    2,   53,    2,   55,   56,   31,   64,
-       10,    2,    2,   47,   64,  245,   25,   64,   25,   50,
+       10,    2,    2,   47,   64,  338,   25,   64,   25,   50,
         2,   25,   25,   25,   25,   25,    2,   53,   51,   55,
-      728,   56,  245,    2,    2,   15,   15,   15,   15,   15,
+      727,   56,  338,    2,    2,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
@@ -1670,13 +1669,13 @@ static const flex_int16_t yy_chk[2362] =
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
 
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   15,   15,   15,   15,   17,  729,
+       15,   15,   15,   15,   15,   15,   15,   15,   17,  728,
        17,   17,   17,   17,   17,   19,   58,   19,   19,   19,
        19,   19,  112,   17,   20,   20,   20,   20,   20,   22,
        19,   22,   22,   22,   22,   22,   62,   20,   59,   73,
        54,   61,   58,   73,   22,  112,   17,  109,   58,   59,
        54,   61,   59,   19,   59,   63,   59,  107,   89,   62,
-       20,   90,   63,   54,  731,  131,  281,   22,   45,  281,
+       20,   90,   63,   54,  730,  131,  281,   22,   45,  281,
        62,   45,   45,   45,  109,   45,   45,   45,   54,   57,
        65,  131,   45,   45,   89,   45,   57,   90,  107,   92,
 
@@ -1684,229 +1683,228 @@ static const flex_int16_t yy_chk[2362] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   60,   92,   57,   60,   60,   93,
        57,   60,   60,   68,   57,   67,   67,   68,  171,   67,
-       69,   68,   57,  732,   60,   67,   57,   91,   57,   57,
+       69,   68,   57,  731,   60,   67,   57,   91,   57,   57,
        70,   94,  171,   68,   76,   93,  105,   68,   70,   69,
-       70,   69,  733,   69,   71,   70,   70,   71,   71,   74,
+       70,   69,  732,   69,   71,   70,   70,   71,   71,   74,
        75,   75,  129,   74,  129,   91,   74,   76,   71,   94,
        75,   71,  105,   74,   74,  111,  145,   76,   74,   74,
        75,  129,   76,   79,   79,   79,   79,   79,   87,   87,
 
        87,   87,   87,   75,  137,   75,   79,  145,   75,   75,
        99,   80,  111,   80,   80,   80,   80,   80,   75,   83,
-       83,   83,   83,   83,  101,   75,   80,  734,   81,   79,
+       83,   83,   83,   83,  101,   75,   80,  733,   81,   79,
        81,  101,   83,   81,   81,   81,   81,   81,   82,  102,
        82,   82,   82,   82,   82,  108,  110,   99,  137,   80,
-      152,  116,  735,   82,  120,   83,   88,   88,   88,   88,
+      152,  116,  734,   82,  120,   83,   88,   88,   88,   88,
        88,  101,  118,  120,  120,  101,  163,  102,  116,  101,
-      163,  118,  381,  108,  110,  118,   82,  101,  152,  116,
-      130,  101,  381,  101,  101,  115,  115,  115,  115,  115,
+      163,  118,  380,  108,  110,  118,   82,  101,  152,  116,
+      130,  101,  380,  101,  101,  115,  115,  115,  115,  115,
       125,  125,  165,  130,  115,  115,  115,  115,  115,  115,
 
       125,  134,  161,  167,  134,  161,  161,  167,  134,  158,
-      175,  167,  186,  184,  736,  252,  187,  115,  115,  115,
+      175,  167,  186,  184,  735,  252,  187,  115,  115,  115,
       115,  115,  115,  185,  158,  158,  158,  165,  165,  165,
       188,  189,  193,  196,  200,  186,  197,  175,  165,  202,
       165,  184,  165,  165,  187,  165,  204,  209,  263,  185,
-      737,  217,  738,  289,  189,  193,  188,  200,  259,  217,
+      736,  217,  737,  289,  189,  193,  188,  200,  259,  217,
       315,  196,  202,  197,  217,  217,  289,  299,  252,  307,
       209,  252,  299,  204,  207,  207,  207,  207,  207,  310,
-      317,  259,  338,  207,  207,  207,  207,  207,  207,  315,
-      320,  341,  307,  739,  346,  327,  341,  382,  263,  338,
-
-      346,  395,  310,  317,  740,  498,  207,  207,  207,  207,
-      207,  207,  360,  425,  465,  498,  425,  360,  320,  325,
-      325,  325,  325,  325,  327,  382,  741,  465,  325,  325,
-      325,  325,  325,  325,  373,  373,  373,  377,  398,  437,
-      373,  406,  398,  377,  410,  406,  742,  443,  410,  443,
-      743,  325,  325,  325,  325,  325,  325,  431,  475,  395,
-      744,  461,  431,  475,  445,  360,  573,  437,  572,  461,
-      360,  461,  461,  461,  443,  576,  443,  444,  444,  444,
-      444,  444,  576,  622,  622,  695,  444,  444,  444,  444,
-      444,  444,  445,  537,  573,  572,  574,  656,  537,  694,
-
-      745,  574,  656,  683,  703,  703,  746,  703,  695,  444,
-      444,  444,  444,  444,  444,  683,  722,  747,  748,  749,
-      722,  751,  750,  752,  722,  750,  753,  694,  755,  756,
-      757,  758,  759,  760,  761,  762,  763,  765,  766,  767,
-      768,  656,  769,  770,  771,  772,  773,  774,  776,  777,
+      317,  259,  738,  207,  207,  207,  207,  207,  207,  315,
+      320,  341,  307,  346,  376,  327,  341,  381,  263,  346,
+
+      376,  394,  310,  317,  739,  496,  207,  207,  207,  207,
+      207,  207,  360,  424,  464,  496,  424,  360,  320,  325,
+      325,  325,  325,  325,  327,  381,  740,  464,  325,  325,
+      325,  325,  325,  325,  372,  372,  372,  397,  405,  409,
+      372,  397,  405,  409,  430,  436,  444,  741,  442,  430,
+      442,  325,  325,  325,  325,  325,  325,  474,  535,  394,
+      693,  572,  474,  535,  574,  360,  572,  570,  620,  620,
+      360,  574,  571,  436,  444,  442,  742,  442,  443,  443,
+      443,  443,  443,  693,  743,  460,  744,  443,  443,  443,
+      443,  443,  443,  460,  570,  460,  460,  460,  654,  460,
+
+      571,  692,  745,  654,  681,  701,  701,  746,  701,  747,
+      443,  443,  443,  443,  443,  443,  681,  721,  749,  748,
+      750,  721,  748,  751,  753,  721,  754,  755,  756,  692,
+      757,  758,  759,  760,  761,  763,  764,  765,  766,  767,
+      768,  769,  654,  770,  771,  772,  774,  775,  776,  777,
       778,  779,  780,  781,  782,  783,  784,  785,  786,  787,
       788,  789,  790,  791,  792,  793,  794,  795,  796,  797,
-      798,  799,  800,  794,  801,  796,  803,  799,  804,  796,
+      798,  792,  799,  794,  801,  797,  802,  794,  803,  804,
       805,  806,  807,  808,  809,  810,  811,  812,  813,  814,
-      815,  816,  817,  818,  819,  821,  822,  823,  824,  825,
+      815,  816,  817,  819,  820,  821,  822,  823,  824,  825,
 
       826,  827,  828,  829,  830,  831,  832,  833,  834,  835,
-      836,  837,  838,  839,  840,  841,  813,  842,  843,  844,
-      845,  846,  847,  848,  850,  851,  852,  853,  854,  855,
-      856,  857,  858,  859,  855,  860,  861,  862,  863,  864,
-      865,  868,  869,  870,  871,  872,  873,  874,  877,  878,
-      879,  880,  881,  882,  883,  884,  885,  886,  883,  887,
-      888,  889,  891,  893,  894,  895,  896,  897,  898,  899,
+      836,  837,  838,  839,  811,  840,  841,  842,  843,  844,
+      845,  846,  847,  849,  850,  851,  852,  853,  854,  855,
+      856,  857,  858,  854,  859,  860,  861,  862,  863,  866,
+      867,  868,  869,  870,  871,  872,  875,  876,  877,  878,
+      879,  880,  881,  882,  883,  884,  881,  885,  886,  887,
+      889,  891,  892,  893,  894,  895,  896,  897,  898,  899,
       900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
       910,  911,  912,  913,  914,  915,  916,  917,  918,  919,
-      920,  921,  922,  923,  924,  926,  927,  928,  916,  929,
+      920,  921,  922,  924,  925,  926,  914,  927,  928,  929,
 
-      930,  931,  932,  933,  934,  935,  936,  937,  938,  939,
+      930,  931,  932,  933,  934,  935,  936,  937,  939,  940,
       941,  942,  943,  944,  945,  946,  947,  948,  949,  950,
-      951,  952,  953,  954,  955,  956,  957,  958,  935,  959,
-      960,  934,  961,  963,  964,  965,  966,  967,  968,  969,
-      970,  971,  972,  973,  974,  976,  977,  978,  979,  980,
-      981,  982,  984,  985,  980,  986,  987,  988,  989,  990,
+      951,  952,  953,  954,  955,  956,  933,  957,  958,  932,
+      959,  960,  962,  963,  964,  965,  966,  967,  968,  969,
+      970,  971,  972,  973,  975,  976,  977,  978,  979,  980,
+      982,  983,  984,  979,  985,  986,  987,  988,  989,  990,
       991,  992,  993,  994,  995,  996,  997,  998,  999, 1000,
-     1001, 1002, 1003, 1004, 1005, 1006, 1009, 1010, 1011, 1013,
-     1014, 1015, 1016, 1018, 1004, 1019, 1020, 1021, 1022, 1023,
+     1001, 1002, 1003, 1004, 1007, 1008, 1009, 1011, 1012, 1013,
+     1014, 1016, 1002, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
      1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
 
-     1034, 1035, 1037, 1038, 1039, 1040, 1041,  980, 1042, 1043,
-     1044, 1045, 1046, 1047, 1048, 1049, 1050, 1052, 1051, 1053,
+     1035, 1036, 1037, 1038, 1039, 1040,  979, 1041, 1042, 1043,
+     1044, 1045, 1046, 1047, 1048, 1050, 1049, 1051, 1052, 1053,
      1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
-     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
-     1075, 1076, 1077, 1078, 1050, 1051, 1079, 1080, 1081, 1082,
-     1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
-     1094, 1095, 1096, 1097, 1098, 1099, 1095, 1100, 1101, 1102,
+     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1074,
+     1075, 1076, 1048, 1049, 1077, 1078, 1079, 1080, 1081, 1082,
+     1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1093,
+     1094, 1095, 1096, 1097, 1098, 1094, 1099, 1100, 1101, 1102,
      1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
      1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
-     1123, 1124, 1125, 1126, 1127, 1129, 1130, 1131, 1132, 1133,
+     1123, 1124, 1125, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
 
-     1134, 1135, 1136, 1137, 1138, 1139, 1096, 1141, 1142, 1145,
+     1134, 1135, 1136, 1137, 1139, 1095, 1140, 1143, 1144, 1145,
      1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
      1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
-     1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1175, 1176,
-     1177, 1178, 1179, 1180, 1182, 1183, 1184, 1160, 1185, 1186,
-     1187, 1188, 1189, 1161, 1190, 1191, 1192, 1193, 1194, 1195,
-     1196, 1197, 1198, 1199, 1202, 1204, 1206, 1207, 1208, 1209,
-     1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
-     1220, 1222, 1223, 1224, 1226, 1227, 1228, 1229, 1230, 1233,
-     1235, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
-
-     1246, 1247, 1248, 1249, 1250, 1251, 1253, 1254, 1255, 1256,
-     1257, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1269,
-     1270, 1271, 1272, 1273, 1274, 1275, 1276, 1278, 1279, 1280,
+     1166, 1167, 1168, 1169, 1170, 1171, 1173, 1174, 1175, 1176,
+     1177, 1178, 1179, 1181, 1182, 1158, 1183, 1184, 1185, 1186,
+     1187, 1159, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
+     1196, 1197, 1198, 1201, 1203, 1205, 1206, 1207, 1208, 1209,
+     1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1220,
+     1221, 1222, 1224, 1225, 1226, 1227, 1228, 1231, 1233, 1235,
+     1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
+
+     1246, 1247, 1248, 1249, 1251, 1252, 1253, 1254, 1255, 1258,
+     1259, 1260, 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1269,
+     1270, 1271, 1272, 1273, 1274, 1276, 1277, 1278, 1279, 1280,
      1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
-     1291, 1292, 1294, 1295, 1296, 1266, 1297, 1298, 1299, 1300,
-     1301, 1302, 1303, 1304, 1247, 1305, 1306, 1307, 1308, 1309,
-     1310, 1312, 1313, 1314, 1315, 1316, 1272, 1317, 1318, 1319,
-     1320, 1314, 1321, 1322, 1325, 1326, 1327, 1328, 1329, 1330,
-     1331, 1332, 1333, 1334, 1335, 1336, 1338, 1339, 1340, 1341,
-     1342, 1343, 1345, 1347, 1350, 1351, 1352, 1354, 1355, 1356,
-
-     1357, 1358, 1360, 1361, 1362, 1364, 1365, 1366, 1367, 1368,
+     1291, 1293, 1294, 1264, 1295, 1296, 1297, 1298, 1299, 1300,
+     1301, 1302, 1245, 1303, 1304, 1305, 1306, 1307, 1308, 1310,
+     1311, 1312, 1313, 1314, 1270, 1315, 1316, 1317, 1318, 1312,
+     1319, 1320, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330,
+     1331, 1332, 1333, 1334, 1336, 1337, 1338, 1339, 1340, 1341,
+     1343, 1345, 1348, 1349, 1350, 1352, 1353, 1354, 1355, 1356,
+
+     1358, 1359, 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368,
      1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378,
-     1379, 1381, 1383, 1384, 1358, 1385, 1386, 1387, 1388, 1389,
-     1390, 1391, 1392, 1393, 1395, 1397, 1399, 1401, 1402, 1403,
-     1404, 1405, 1406, 1407, 1408, 1409, 1410, 1412, 1413, 1414,
-     1415, 1416, 1417, 1418, 1421, 1422, 1424, 1425, 1426, 1427,
-     1428, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1439,
-     1440, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
-     1451, 1452, 1453, 1454, 1455, 1456, 1457, 1459, 1460, 1461,
-     1463, 1464, 1465, 1453, 1466, 1467, 1468, 1440, 1469, 1470,
+     1380, 1382, 1356, 1383, 1384, 1385, 1386, 1387, 1388, 1389,
+     1390, 1391, 1392, 1394, 1397, 1399, 1400, 1401, 1402, 1403,
+     1404, 1405, 1406, 1407, 1408, 1410, 1411, 1412, 1413, 1414,
+     1415, 1416, 1419, 1420, 1422, 1423, 1424, 1425, 1426, 1428,
+     1429, 1430, 1431, 1432, 1433, 1434, 1435, 1437, 1438, 1440,
+     1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
+     1451, 1452, 1453, 1454, 1455, 1456, 1458, 1459, 1460, 1462,
+     1463, 1451, 1464, 1465, 1466, 1438, 1467, 1468, 1469, 1469,
 
      1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
      1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
-     1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1500,
-     1501, 1502, 1503, 1505, 1506, 1507, 1508, 1509, 1510, 1513,
-     1514, 1515, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526,
-     1527, 1529, 1530, 1531, 1532, 1533, 1529, 1534, 1535, 1471,
-     1536, 1537, 1539, 1540, 1508, 1541, 1543, 1545, 1546, 1547,
-     1549, 1550, 1551, 1552, 1553, 1555, 1556, 1557, 1558, 1559,
+     1490, 1491, 1492, 1493, 1494, 1495, 1496, 1498, 1499, 1500,
+     1501, 1503, 1504, 1505, 1506, 1507, 1508, 1511, 1512, 1513,
+     1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526,
+     1528, 1529, 1530, 1531, 1532, 1528, 1533, 1534, 1470, 1535,
+     1536, 1538, 1506, 1539, 1541, 1543, 1544, 1545, 1547, 1548,
+     1549, 1550, 1551, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
      1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569,
-     1570, 1571, 1572, 1574, 1576, 1577, 1578, 1580, 1581, 1582,
-
-     1583, 1584, 1585, 1586, 1587, 1588, 1590, 1591, 1592, 1593,
-     1594, 1596, 1597, 1598, 1600, 1601, 1602, 1603, 1604, 1605,
-     1606, 1607, 1608, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
-     1617, 1618, 1619, 1621, 1622, 1623, 1625, 1626, 1627, 1628,
-     1630, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
-     1641, 1642, 1643, 1644, 1646, 1647, 1648, 1649, 1650, 1651,
-     1652, 1653, 1655, 1656, 1657, 1658, 1660, 1661, 1662, 1663,
-     1664, 1665, 1666, 1667, 1668, 1669, 1671, 1672, 1673, 1675,
-     1676, 1677, 1678, 1679, 1680, 1681, 1682, 1684, 1685, 1686,
-     1687, 1688, 1689, 1690, 1691, 1692, 1695, 1696, 1697, 1698,
-
-     1699, 1700, 1701, 1702, 1703, 1705, 1707, 1708, 1709, 1710,
+     1570, 1572, 1574, 1575, 1576, 1578, 1579, 1580, 1581, 1582,
+
+     1583, 1584, 1585, 1586, 1587, 1589, 1590, 1591, 1592, 1593,
+     1595, 1596, 1597, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
+     1606, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
+     1617, 1619, 1620, 1621, 1623, 1624, 1625, 1626, 1628, 1630,
+     1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
+     1641, 1642, 1643, 1645, 1646, 1647, 1648, 1649, 1650, 1651,
+     1653, 1654, 1655, 1656, 1658, 1659, 1660, 1661, 1662, 1663,
+     1664, 1665, 1666, 1667, 1669, 1670, 1671, 1673, 1674, 1675,
+     1676, 1677, 1678, 1679, 1680, 1682, 1683, 1684, 1685, 1686,
+     1687, 1688, 1689, 1690, 1691, 1694, 1695, 1696, 1697, 1698,
+
+     1699, 1700, 1701, 1703, 1705, 1706, 1707, 1708, 1709, 1710,
      1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
-     1721, 1722, 1723, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
-     1732, 1733, 1735, 1737, 1739, 1742, 1743, 1744, 1745, 1746,
-     1748, 1749, 1750, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
-     1759, 1761, 1762, 1764, 1765, 1766, 1767, 1769, 1770, 1771,
-     1773, 1775, 1776, 1778, 1779, 1780, 1781, 1782, 1783, 1784,
-     1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794,
-     1795, 1796, 1797, 1798, 1799, 1800, 1802, 1803, 1804, 1805,
-     1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
-
-     1816, 1817, 1818, 1819, 1820, 1822, 1823, 1825, 1826, 1828,
-     1829, 1830, 1831, 1836, 1839, 1840, 1841, 1843, 1844, 1845,
-     1846, 1847, 1848, 1850, 1852, 1855, 1856, 1857, 1858, 1859,
-     1860, 1859, 1862, 1863, 1865, 1866, 1867, 1868, 1869, 1870,
-     1871, 1873, 1874, 1875, 1876, 1877, 1880, 1881, 1882, 1883,
-     1887, 1887, 1887, 1887, 1887, 1888, 1888, 1888, 1888, 1888,
-     1889, 1895, 1889, 1889, 1889, 1890, 1896, 1890, 1897, 1890,
-     1891, 1891, 1891, 1891, 1891, 1892, 1892, 1892, 1892, 1892,
-     1893, 1898, 1893, 1893, 1893, 1894, 1894, 1894,  726,  725,
-      724,  723,  721,  720,  719,  718,  717,  716,  715,  714,
-
-      713,  712,  711,  710,  709,  708,  707,  706,  705,  704,
-      702,  701,  700,  699,  698,  697,  696,  691,  690,  689,
-      688,  687,  686,  685,  684,  682,  681,  679,  678,  677,
-      676,  675,  674,  673,  672,  671,  670,  669,  668,  667,
-      665,  664,  663,  662,  661,  660,  659,  658,  657,  655,
-      654,  652,  651,  650,  649,  648,  647,  646,  644,  643,
-      642,  640,  639,  637,  636,  635,  634,  633,  632,  631,
-      630,  629,  628,  627,  626,  625,  624,  623,  621,  620,
-      619,  618,  617,  616,  614,  613,  612,  611,  610,  609,
-      608,  607,  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,  568,  566,  565,  564,  562,  559,  557,  556,  555,
-      554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
-      544,  543,  542,  541,  540,  539,  538,  536,  535,  534,
-      533,  532,  531,  530,  529,  528,  527,  526,  525,  523,
-      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
-      511,  510,  509,  508,  506,  505,  504,  503,  502,  501,
-      500,  499,  497,  496,  495,  494,  493,  492,  491,  490,
-      489,  488,  487,  486,  485,  484,  483,  482,  481,  479,
-
-      478,  477,  476,  474,  473,  472,  471,  470,  469,  467,
-      466,  464,  463,  462,  460,  458,  457,  456,  455,  454,
-      453,  452,  450,  449,  448,  447,  446,  441,  439,  438,
-      435,  432,  430,  429,  428,  427,  426,  424,  423,  422,
-      421,  420,  419,  418,  417,  416,  415,  414,  413,  412,
-      411,  409,  408,  407,  405,  404,  403,  402,  401,  400,
-      399,  397,  396,  394,  393,  392,  391,  390,  389,  388,
-      387,  386,  385,  384,  380,  379,  378,  376,  375,  374,
-      372,  371,  370,  369,  368,  367,  366,  365,  364,  363,
-      362,  361,  359,  358,  357,  356,  355,  354,  353,  352,
-
-      351,  350,  349,  348,  347,  345,  344,  343,  342,  340,
-      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
-      324,  322,  318,  316,  313,  306,  305,  304,  303,  302,
-      301,  300,  298,  297,  296,  295,  294,  293,  292,  291,
-      290,  288,  287,  286,  285,  284,  283,  282,  280,  279,
-      278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
-      268,  267,  266,  265,  264,  262,  261,  260,  258,  257,
-      256,  255,  254,  253,  251,  250,  249,  248,  247,  246,
-      244,  243,  241,  240,  239,  238,  237,  236,  235,  234,
-      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
-
-      223,  222,  221,  220,  219,  218,  216,  215,  214,  213,
-      212,  211,  210,  208,  205,  203,  201,  199,  194,  190,
-      182,  181,  180,  179,  178,  177,  176,  174,  173,  172,
-      170,  169,  168,  166,  164,  162,  160,  159,  157,  156,
-      155,  154,  153,  151,  150,  149,  148,  147,  146,  144,
-      143,  142,  141,  140,  139,  138,  136,  135,  133,  132,
-      128,  127,  126,  124,  123,  122,  121,  119,  117,  113,
-      104,  103,   97,   96,   77,   72,   66,   52,   49,   48,
-       43,   41,   39,   38,   24,   14,   11, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
-     1886
+     1721, 1722, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
+     1733, 1735, 1737, 1740, 1741, 1742, 1743, 1744, 1746, 1747,
+     1748, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
+     1760, 1761, 1763, 1764, 1765, 1767, 1768, 1769, 1771, 1773,
+     1774, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1784, 1785,
+     1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
+     1796, 1797, 1798, 1800, 1801, 1802, 1803, 1804, 1805, 1806,
+     1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816,
+
+     1817, 1819, 1820, 1822, 1823, 1825, 1826, 1827, 1828, 1832,
+     1835, 1836, 1837, 1839, 1840, 1841, 1842, 1843, 1844, 1846,
+     1848, 1851, 1852, 1853, 1854, 1855, 1856, 1855, 1858, 1859,
+     1861, 1862, 1863, 1864, 1865, 1866, 1867, 1869, 1870, 1871,
+     1872, 1873, 1876, 1877, 1878, 1879, 1883, 1883, 1883, 1883,
+     1883, 1884, 1884, 1884, 1884, 1884, 1885, 1891, 1885, 1885,
+     1885, 1886, 1892, 1886, 1893, 1886, 1887, 1887, 1887, 1887,
+     1887, 1888, 1888, 1888, 1888, 1888, 1889, 1894, 1889, 1889,
+     1889, 1890, 1890, 1890,  725,  724,  723,  722,  720,  719,
+      718,  717,  716,  715,  714,  713,  712,  711,  710,  709,
+
+      708,  707,  706,  705,  704,  703,  702,  700,  699,  698,
+      697,  696,  695,  694,  689,  688,  687,  686,  685,  684,
+      683,  682,  680,  679,  677,  676,  675,  674,  673,  672,
+      671,  670,  669,  668,  667,  666,  665,  663,  662,  661,
+      660,  659,  658,  657,  656,  655,  653,  652,  650,  649,
+      648,  647,  646,  645,  644,  642,  641,  640,  638,  637,
+      635,  634,  633,  632,  631,  630,  629,  628,  627,  626,
+      625,  624,  623,  622,  621,  619,  618,  617,  616,  615,
+      613,  612,  611,  610,  609,  608,  607,  606,  604,  603,
+      602,  601,  600,  599,  598,  597,  596,  595,  594,  593,
+
+      592,  591,  590,  589,  588,  587,  586,  585,  584,  583,
+      582,  581,  580,  579,  578,  577,  576,  575,  566,  564,
+      563,  562,  560,  557,  555,  554,  553,  552,  551,  550,
+      549,  548,  547,  546,  545,  544,  543,  542,  541,  540,
+      539,  538,  537,  536,  534,  533,  532,  531,  530,  529,
+      528,  527,  526,  525,  524,  523,  521,  519,  518,  517,
+      516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
+      506,  504,  503,  502,  501,  500,  499,  498,  497,  495,
+      494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
+      484,  483,  482,  481,  480,  478,  477,  476,  475,  473,
+
+      472,  471,  470,  469,  468,  466,  465,  463,  462,  461,
+      459,  457,  456,  455,  454,  453,  452,  451,  449,  448,
+      447,  446,  445,  440,  438,  437,  434,  431,  429,  428,
+      427,  426,  425,  423,  422,  421,  420,  419,  418,  417,
+      416,  415,  414,  413,  412,  411,  410,  408,  407,  406,
+      404,  403,  402,  401,  400,  399,  398,  396,  395,  393,
+      392,  391,  390,  389,  388,  387,  386,  385,  384,  383,
+      379,  378,  377,  375,  374,  373,  371,  370,  369,  368,
+      367,  366,  365,  364,  363,  362,  361,  359,  358,  357,
+      356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
+
+      345,  344,  343,  342,  340,  337,  336,  335,  334,  333,
+      332,  331,  330,  329,  328,  324,  322,  318,  316,  313,
+      306,  305,  304,  303,  302,  301,  300,  298,  297,  296,
+      295,  294,  293,  292,  291,  290,  288,  287,  286,  285,
+      284,  283,  282,  280,  279,  278,  277,  276,  275,  274,
+      273,  272,  271,  270,  269,  268,  267,  266,  265,  264,
+      262,  261,  260,  258,  257,  256,  255,  254,  253,  251,
+      250,  249,  248,  247,  246,  245,  244,  243,  241,  240,
+      239,  238,  237,  236,  235,  234,  233,  232,  231,  230,
+      229,  228,  227,  226,  225,  224,  223,  222,  221,  220,
+
+      219,  218,  216,  215,  214,  213,  212,  211,  210,  208,
+      205,  203,  201,  199,  194,  190,  182,  181,  180,  179,
+      178,  177,  176,  174,  173,  172,  170,  169,  168,  166,
+      164,  162,  160,  159,  157,  156,  155,  154,  153,  151,
+      150,  149,  148,  147,  146,  144,  143,  142,  141,  140,
+      139,  138,  136,  135,  133,  132,  128,  127,  126,  124,
+      123,  122,  121,  119,  117,  113,  104,  103,   97,   96,
+       77,   72,   66,   52,   49,   48,   43,   41,   39,   38,
+       24,   14,   11, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
+     1882, 1882, 1882, 1882, 1882, 1882, 1882
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1926,20 +1924,20 @@ static const flex_int16_t yy_rule_linenum[207] =
       662,  673,  684,  695,  706,  717,  728,  739,  750,  761,
       772,  783,  792,  803,  814,  825,  836,  847,  858,  869,
       880,  889,  898,  907,  916,  927,  938,  949,  960,  971,
-      982,  992, 1003, 1012, 1021, 1036, 1052, 1061, 1070, 1079,
-
-     1088, 1097, 1106, 1115, 1124, 1133, 1142, 1166, 1190, 1199,
-     1209, 1219, 1228, 1238, 1249, 1258, 1267, 1276, 1285, 1294,
-     1304, 1313, 1322, 1331, 1342, 1353, 1364, 1375, 1386, 1395,
-     1404, 1413, 1422, 1431, 1440, 1449, 1458, 1467, 1477, 1489,
-     1502, 1511, 1520, 1530, 1540, 1549, 1560, 1570, 1579, 1589,
-     1599, 1608, 1617, 1626, 1635, 1645, 1654, 1663, 1672, 1681,
-     1690, 1699, 1708, 1717, 1726, 1735, 1744, 1753, 1762, 1771,
-     1780, 1789, 1798, 1807, 1816, 1825, 1834, 1843, 1852, 1861,
-     1870, 1879, 1888, 1897, 1906, 1915, 1924, 1933, 1942, 2041,
-     2046, 2051, 2056, 2057, 2058, 2059, 2060, 2061, 2063, 2081,
-
-     2094, 2099, 2103, 2105, 2107, 2109
+      982,  993, 1003, 1014, 1023, 1032, 1047, 1063, 1072, 1081,
+
+     1090, 1099, 1108, 1117, 1126, 1135, 1144, 1153, 1177, 1201,
+     1210, 1220, 1230, 1239, 1249, 1260, 1269, 1278, 1287, 1296,
+     1305, 1315, 1324, 1333, 1342, 1353, 1364, 1375, 1386, 1397,
+     1406, 1415, 1424, 1433, 1442, 1451, 1460, 1469, 1478, 1488,
+     1500, 1513, 1522, 1531, 1541, 1551, 1560, 1571, 1581, 1590,
+     1600, 1610, 1619, 1628, 1637, 1646, 1656, 1665, 1674, 1683,
+     1692, 1701, 1710, 1719, 1728, 1737, 1746, 1755, 1764, 1773,
+     1782, 1791, 1800, 1809, 1818, 1827, 1836, 1845, 1854, 1863,
+     1872, 1881, 1890, 1899, 1908, 1917, 1926, 1935, 1944, 2043,
+     2048, 2053, 2058, 2059, 2060, 2061, 2062, 2063, 2065, 2083,
+
+     2096, 2101, 2105, 2107, 2109, 2111
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1992,7 +1990,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1995 "dhcp6_lexer.cc"
+#line 1993 "dhcp6_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -2018,8 +2016,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 2021 "dhcp6_lexer.cc"
-#line 2022 "dhcp6_lexer.cc"
+#line 2019 "dhcp6_lexer.cc"
+#line 2020 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2349,7 +2347,7 @@ YY_DECL
     }
 
 
-#line 2352 "dhcp6_lexer.cc"
+#line 2350 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2378,13 +2376,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 >= 1887 )
+                               if ( yy_current_state >= 1883 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1886 );
+               while ( yy_current_state != 1882 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -3544,6 +3542,20 @@ YY_RULE_SETUP
 case 91:
 YY_RULE_SETUP
 #line 982 "dhcp6_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::DHCP6:
+    case isc::dhcp::Parser6Context::SUBNET6:
+    case isc::dhcp::Parser6Context::SHARED_NETWORK:
+        return isc::dhcp::Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
+    }
+}
+       YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 993 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3554,9 +3566,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 992 "dhcp6_lexer.ll"
+#line 1003 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3568,9 +3580,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1003 "dhcp6_lexer.ll"
+#line 1014 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3580,9 +3592,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1012 "dhcp6_lexer.ll"
+#line 1023 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3592,9 +3604,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1021 "dhcp6_lexer.ll"
+#line 1032 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3610,9 +3622,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1036 "dhcp6_lexer.ll"
+#line 1047 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3629,9 +3641,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1052 "dhcp6_lexer.ll"
+#line 1063 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3641,9 +3653,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1061 "dhcp6_lexer.ll"
+#line 1072 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3653,9 +3665,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1070 "dhcp6_lexer.ll"
+#line 1081 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3665,9 +3677,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1079 "dhcp6_lexer.ll"
+#line 1090 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3677,9 +3689,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1088 "dhcp6_lexer.ll"
+#line 1099 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3689,9 +3701,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1097 "dhcp6_lexer.ll"
+#line 1108 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3701,9 +3713,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1106 "dhcp6_lexer.ll"
+#line 1117 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3713,9 +3725,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1115 "dhcp6_lexer.ll"
+#line 1126 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3725,9 +3737,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1124 "dhcp6_lexer.ll"
+#line 1135 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3737,9 +3749,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1133 "dhcp6_lexer.ll"
+#line 1144 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -3749,9 +3761,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1142 "dhcp6_lexer.ll"
+#line 1153 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3776,9 +3788,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1166 "dhcp6_lexer.ll"
+#line 1177 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3803,9 +3815,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1190 "dhcp6_lexer.ll"
+#line 1201 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3815,9 +3827,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1199 "dhcp6_lexer.ll"
+#line 1210 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3828,9 +3840,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1209 "dhcp6_lexer.ll"
+#line 1220 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3841,9 +3853,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1219 "dhcp6_lexer.ll"
+#line 1230 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3853,9 +3865,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1228 "dhcp6_lexer.ll"
+#line 1239 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3866,9 +3878,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1238 "dhcp6_lexer.ll"
+#line 1249 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3880,9 +3892,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1249 "dhcp6_lexer.ll"
+#line 1260 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3892,9 +3904,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1258 "dhcp6_lexer.ll"
+#line 1269 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3904,9 +3916,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1267 "dhcp6_lexer.ll"
+#line 1278 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3916,9 +3928,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1276 "dhcp6_lexer.ll"
+#line 1287 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3928,9 +3940,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1285 "dhcp6_lexer.ll"
+#line 1296 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3940,9 +3952,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1294 "dhcp6_lexer.ll"
+#line 1305 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3953,9 +3965,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1304 "dhcp6_lexer.ll"
+#line 1315 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3965,9 +3977,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1313 "dhcp6_lexer.ll"
+#line 1324 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3977,9 +3989,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1322 "dhcp6_lexer.ll"
+#line 1333 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3989,9 +4001,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1331 "dhcp6_lexer.ll"
+#line 1342 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4003,9 +4015,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1342 "dhcp6_lexer.ll"
+#line 1353 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4017,9 +4029,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1353 "dhcp6_lexer.ll"
+#line 1364 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4031,9 +4043,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1364 "dhcp6_lexer.ll"
+#line 1375 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4045,9 +4057,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1375 "dhcp6_lexer.ll"
+#line 1386 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4059,9 +4071,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1386 "dhcp6_lexer.ll"
+#line 1397 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4071,9 +4083,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1395 "dhcp6_lexer.ll"
+#line 1406 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4083,9 +4095,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1404 "dhcp6_lexer.ll"
+#line 1415 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4095,9 +4107,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1413 "dhcp6_lexer.ll"
+#line 1424 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4107,9 +4119,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1422 "dhcp6_lexer.ll"
+#line 1433 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4119,9 +4131,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1431 "dhcp6_lexer.ll"
+#line 1442 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4131,9 +4143,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1440 "dhcp6_lexer.ll"
+#line 1451 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -4143,9 +4155,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1449 "dhcp6_lexer.ll"
+#line 1460 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4155,9 +4167,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1458 "dhcp6_lexer.ll"
+#line 1469 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -4167,9 +4179,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1467 "dhcp6_lexer.ll"
+#line 1478 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4180,9 +4192,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1477 "dhcp6_lexer.ll"
+#line 1488 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4195,9 +4207,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1489 "dhcp6_lexer.ll"
+#line 1500 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4211,9 +4223,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1502 "dhcp6_lexer.ll"
+#line 1513 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4223,9 +4235,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1511 "dhcp6_lexer.ll"
+#line 1522 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -4235,9 +4247,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1520 "dhcp6_lexer.ll"
+#line 1531 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4248,9 +4260,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1530 "dhcp6_lexer.ll"
+#line 1541 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4261,9 +4273,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1540 "dhcp6_lexer.ll"
+#line 1551 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4273,9 +4285,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1549 "dhcp6_lexer.ll"
+#line 1560 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -4287,9 +4299,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1560 "dhcp6_lexer.ll"
+#line 1571 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4300,9 +4312,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1570 "dhcp6_lexer.ll"
+#line 1581 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4312,9 +4324,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1579 "dhcp6_lexer.ll"
+#line 1590 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4325,9 +4337,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1589 "dhcp6_lexer.ll"
+#line 1600 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4338,9 +4350,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1599 "dhcp6_lexer.ll"
+#line 1610 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -4350,9 +4362,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1608 "dhcp6_lexer.ll"
+#line 1619 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4362,9 +4374,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1617 "dhcp6_lexer.ll"
+#line 1628 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4374,9 +4386,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1626 "dhcp6_lexer.ll"
+#line 1637 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4386,9 +4398,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1635 "dhcp6_lexer.ll"
+#line 1646 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4399,9 +4411,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1645 "dhcp6_lexer.ll"
+#line 1656 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -4411,9 +4423,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1654 "dhcp6_lexer.ll"
+#line 1665 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4423,9 +4435,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1663 "dhcp6_lexer.ll"
+#line 1674 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4435,9 +4447,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1672 "dhcp6_lexer.ll"
+#line 1683 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4447,9 +4459,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1681 "dhcp6_lexer.ll"
+#line 1692 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4459,9 +4471,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1690 "dhcp6_lexer.ll"
+#line 1701 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4471,9 +4483,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1699 "dhcp6_lexer.ll"
+#line 1710 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4483,9 +4495,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1708 "dhcp6_lexer.ll"
+#line 1719 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4495,9 +4507,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1717 "dhcp6_lexer.ll"
+#line 1728 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4507,9 +4519,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1726 "dhcp6_lexer.ll"
+#line 1737 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4519,9 +4531,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1735 "dhcp6_lexer.ll"
+#line 1746 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4531,9 +4543,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1744 "dhcp6_lexer.ll"
+#line 1755 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4543,9 +4555,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1753 "dhcp6_lexer.ll"
+#line 1764 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4555,9 +4567,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1762 "dhcp6_lexer.ll"
+#line 1773 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4567,9 +4579,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1771 "dhcp6_lexer.ll"
+#line 1782 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4579,9 +4591,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1780 "dhcp6_lexer.ll"
+#line 1791 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4591,9 +4603,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1789 "dhcp6_lexer.ll"
+#line 1800 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4603,9 +4615,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1798 "dhcp6_lexer.ll"
+#line 1809 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4615,9 +4627,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1807 "dhcp6_lexer.ll"
+#line 1818 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4627,9 +4639,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1816 "dhcp6_lexer.ll"
+#line 1827 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4639,9 +4651,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1825 "dhcp6_lexer.ll"
+#line 1836 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4651,9 +4663,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1834 "dhcp6_lexer.ll"
+#line 1845 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4663,9 +4675,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1843 "dhcp6_lexer.ll"
+#line 1854 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4675,9 +4687,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1852 "dhcp6_lexer.ll"
+#line 1863 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -4687,9 +4699,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1861 "dhcp6_lexer.ll"
+#line 1872 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4699,9 +4711,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 1870 "dhcp6_lexer.ll"
+#line 1881 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4711,9 +4723,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 1879 "dhcp6_lexer.ll"
+#line 1890 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4723,9 +4735,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 1888 "dhcp6_lexer.ll"
+#line 1899 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4735,9 +4747,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 1897 "dhcp6_lexer.ll"
+#line 1908 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4747,9 +4759,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 1906 "dhcp6_lexer.ll"
+#line 1917 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4759,9 +4771,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 1915 "dhcp6_lexer.ll"
+#line 1926 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -4771,9 +4783,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 1924 "dhcp6_lexer.ll"
+#line 1935 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4783,21 +4795,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 1933 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::DHCP6:
-        return isc::dhcp::Dhcp6Parser::make_IP_RESERVATIONS_UNIQUE(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
-    }
-}
-       YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 1942 "dhcp6_lexer.ll"
+#line 1944 "dhcp6_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -4900,7 +4900,7 @@ YY_RULE_SETUP
 case 190:
 /* rule 190 can match eol */
 YY_RULE_SETUP
-#line 2041 "dhcp6_lexer.ll"
+#line 2043 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -4909,7 +4909,7 @@ YY_RULE_SETUP
 case 191:
 /* rule 191 can match eol */
 YY_RULE_SETUP
-#line 2046 "dhcp6_lexer.ll"
+#line 2048 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -4917,7 +4917,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 2051 "dhcp6_lexer.ll"
+#line 2053 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -4925,37 +4925,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 2056 "dhcp6_lexer.ll"
+#line 2058 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 2057 "dhcp6_lexer.ll"
+#line 2059 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 2058 "dhcp6_lexer.ll"
+#line 2060 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 2059 "dhcp6_lexer.ll"
+#line 2061 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 2060 "dhcp6_lexer.ll"
+#line 2062 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 2061 "dhcp6_lexer.ll"
+#line 2063 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 2063 "dhcp6_lexer.ll"
+#line 2065 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4976,7 +4976,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 2081 "dhcp6_lexer.ll"
+#line 2083 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4992,7 +4992,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 2094 "dhcp6_lexer.ll"
+#line 2096 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -5000,33 +5000,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 2099 "dhcp6_lexer.ll"
+#line 2101 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 203:
 YY_RULE_SETUP
-#line 2103 "dhcp6_lexer.ll"
+#line 2105 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 204:
 YY_RULE_SETUP
-#line 2105 "dhcp6_lexer.ll"
+#line 2107 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 2107 "dhcp6_lexer.ll"
+#line 2109 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 206:
 YY_RULE_SETUP
-#line 2109 "dhcp6_lexer.ll"
+#line 2111 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2111 "dhcp6_lexer.ll"
+#line 2113 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -5052,7 +5052,7 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 207:
 YY_RULE_SETUP
-#line 2134 "dhcp6_lexer.ll"
+#line 2136 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
 #line 5058 "dhcp6_lexer.cc"
@@ -5374,7 +5374,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 >= 1887 )
+                       if ( yy_current_state >= 1883 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5407,11 +5407,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 >= 1887 )
+               if ( yy_current_state >= 1883 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1886);
+       yy_is_jam = (yy_current_state == 1882);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6160,7 +6160,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2134 "dhcp6_lexer.ll"
+#line 2136 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 3de964ad9176ecd007f00a6c5d0ac91abfb11795..21689a4a53e1ab63116a64c2bf289a472425da8d 100644 (file)
@@ -1350,100 +1350,100 @@ namespace isc { namespace dhcp {
 #line 1351 "dhcp6_parser.cc"
     break;
 
-  case 152: // $@25: %empty
+  case 152: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean"
 #line 670 "dhcp6_parser.yy"
+                                                         {
+    ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location));
+    ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("ddns-update-on-renew", b);
+}
+#line 1361 "dhcp6_parser.cc"
+    break;
+
+  case 153: // $@25: %empty
+#line 676 "dhcp6_parser.yy"
                                      {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1360 "dhcp6_parser.cc"
+#line 1370 "dhcp6_parser.cc"
     break;
 
-  case 153: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string"
-#line 673 "dhcp6_parser.yy"
+  case 154: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string"
+#line 679 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
     ctx.leave();
 }
-#line 1370 "dhcp6_parser.cc"
+#line 1380 "dhcp6_parser.cc"
     break;
 
-  case 154: // $@26: %empty
-#line 679 "dhcp6_parser.yy"
+  case 155: // $@26: %empty
+#line 685 "dhcp6_parser.yy"
                                                      {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1379 "dhcp6_parser.cc"
+#line 1389 "dhcp6_parser.cc"
     break;
 
-  case 155: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string"
-#line 682 "dhcp6_parser.yy"
+  case 156: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string"
+#line 688 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
     ctx.leave();
 }
-#line 1389 "dhcp6_parser.cc"
+#line 1399 "dhcp6_parser.cc"
     break;
 
-  case 156: // store_extended_info: "store-extended-info" ":" "boolean"
-#line 688 "dhcp6_parser.yy"
+  case 157: // store_extended_info: "store-extended-info" ":" "boolean"
+#line 694 "dhcp6_parser.yy"
                                                        {
     ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("store-extended-info", b);
 }
-#line 1399 "dhcp6_parser.cc"
+#line 1409 "dhcp6_parser.cc"
     break;
 
-  case 157: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
-#line 694 "dhcp6_parser.yy"
+  case 158: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
+#line 700 "dhcp6_parser.yy"
                                                                              {
     ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location));
     ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("statistic-default-sample-count", count);
 }
-#line 1409 "dhcp6_parser.cc"
+#line 1419 "dhcp6_parser.cc"
     break;
 
-  case 158: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
-#line 700 "dhcp6_parser.yy"
+  case 159: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
+#line 706 "dhcp6_parser.yy"
                                                                          {
     ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("statistic-default-sample-age", age);
 }
-#line 1419 "dhcp6_parser.cc"
+#line 1429 "dhcp6_parser.cc"
     break;
 
-  case 159: // $@27: %empty
-#line 706 "dhcp6_parser.yy"
+  case 160: // $@27: %empty
+#line 712 "dhcp6_parser.yy"
                        {
     ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1428 "dhcp6_parser.cc"
+#line 1438 "dhcp6_parser.cc"
     break;
 
-  case 160: // server_tag: "server-tag" $@27 ":" "constant string"
-#line 709 "dhcp6_parser.yy"
+  case 161: // server_tag: "server-tag" $@27 ":" "constant string"
+#line 715 "dhcp6_parser.yy"
                {
     ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
     ctx.leave();
 }
-#line 1438 "dhcp6_parser.cc"
-    break;
-
-  case 161: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean"
-#line 715 "dhcp6_parser.yy"
-                                                             {
-    ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location));
-    ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("ip-reservations-unique", unique);
-}
 #line 1448 "dhcp6_parser.cc"
     break;
 
@@ -2369,8 +2369,8 @@ namespace isc { namespace dhcp {
 #line 2370 "dhcp6_parser.cc"
     break;
 
-  case 368: // $@59: %empty
-#line 1393 "dhcp6_parser.yy"
+  case 369: // $@59: %empty
+#line 1394 "dhcp6_parser.yy"
                {
     ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2378,8 +2378,8 @@ namespace isc { namespace dhcp {
 #line 2379 "dhcp6_parser.cc"
     break;
 
-  case 369: // subnet: "subnet" $@59 ":" "constant string"
-#line 1396 "dhcp6_parser.yy"
+  case 370: // subnet: "subnet" $@59 ":" "constant string"
+#line 1397 "dhcp6_parser.yy"
                {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2388,8 +2388,8 @@ namespace isc { namespace dhcp {
 #line 2389 "dhcp6_parser.cc"
     break;
 
-  case 370: // $@60: %empty
-#line 1402 "dhcp6_parser.yy"
+  case 371: // $@60: %empty
+#line 1403 "dhcp6_parser.yy"
                      {
     ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2397,8 +2397,8 @@ namespace isc { namespace dhcp {
 #line 2398 "dhcp6_parser.cc"
     break;
 
-  case 371: // interface: "interface" $@60 ":" "constant string"
-#line 1405 "dhcp6_parser.yy"
+  case 372: // interface: "interface" $@60 ":" "constant string"
+#line 1406 "dhcp6_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2407,8 +2407,8 @@ namespace isc { namespace dhcp {
 #line 2408 "dhcp6_parser.cc"
     break;
 
-  case 372: // $@61: %empty
-#line 1411 "dhcp6_parser.yy"
+  case 373: // $@61: %empty
+#line 1412 "dhcp6_parser.yy"
                            {
     ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2416,8 +2416,8 @@ namespace isc { namespace dhcp {
 #line 2417 "dhcp6_parser.cc"
     break;
 
-  case 373: // interface_id: "interface-id" $@61 ":" "constant string"
-#line 1414 "dhcp6_parser.yy"
+  case 374: // interface_id: "interface-id" $@61 ":" "constant string"
+#line 1415 "dhcp6_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface-id", iface);
@@ -2426,8 +2426,8 @@ namespace isc { namespace dhcp {
 #line 2427 "dhcp6_parser.cc"
     break;
 
-  case 374: // $@62: %empty
-#line 1420 "dhcp6_parser.yy"
+  case 375: // $@62: %empty
+#line 1421 "dhcp6_parser.yy"
                            {
     ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2435,8 +2435,8 @@ namespace isc { namespace dhcp {
 #line 2436 "dhcp6_parser.cc"
     break;
 
-  case 375: // client_class: "client-class" $@62 ":" "constant string"
-#line 1423 "dhcp6_parser.yy"
+  case 376: // client_class: "client-class" $@62 ":" "constant string"
+#line 1424 "dhcp6_parser.yy"
                {
     ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
@@ -2445,8 +2445,8 @@ namespace isc { namespace dhcp {
 #line 2446 "dhcp6_parser.cc"
     break;
 
-  case 376: // $@63: %empty
-#line 1429 "dhcp6_parser.yy"
+  case 377: // $@63: %empty
+#line 1430 "dhcp6_parser.yy"
                                                {
     ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2457,8 +2457,8 @@ namespace isc { namespace dhcp {
 #line 2458 "dhcp6_parser.cc"
     break;
 
-  case 377: // require_client_classes: "require-client-classes" $@63 ":" list_strings
-#line 1435 "dhcp6_parser.yy"
+  case 378: // require_client_classes: "require-client-classes" $@63 ":" list_strings
+#line 1436 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2466,8 +2466,8 @@ namespace isc { namespace dhcp {
 #line 2467 "dhcp6_parser.cc"
     break;
 
-  case 378: // $@64: %empty
-#line 1440 "dhcp6_parser.yy"
+  case 379: // $@64: %empty
+#line 1441 "dhcp6_parser.yy"
                                    {
     ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.RESERVATION_MODE);
@@ -2475,8 +2475,8 @@ namespace isc { namespace dhcp {
 #line 2476 "dhcp6_parser.cc"
     break;
 
-  case 379: // reservation_mode: "reservation-mode" $@64 ":" hr_mode
-#line 1443 "dhcp6_parser.yy"
+  case 380: // reservation_mode: "reservation-mode" $@64 ":" hr_mode
+#line 1444 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2484,32 +2484,32 @@ namespace isc { namespace dhcp {
 #line 2485 "dhcp6_parser.cc"
     break;
 
-  case 380: // hr_mode: "disabled"
-#line 1448 "dhcp6_parser.yy"
+  case 381: // hr_mode: "disabled"
+#line 1449 "dhcp6_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2491 "dhcp6_parser.cc"
     break;
 
-  case 381: // hr_mode: "out-of-pool"
-#line 1449 "dhcp6_parser.yy"
+  case 382: // hr_mode: "out-of-pool"
+#line 1450 "dhcp6_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2497 "dhcp6_parser.cc"
     break;
 
-  case 382: // hr_mode: "global"
-#line 1450 "dhcp6_parser.yy"
+  case 383: // hr_mode: "global"
+#line 1451 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2503 "dhcp6_parser.cc"
     break;
 
-  case 383: // hr_mode: "all"
-#line 1451 "dhcp6_parser.yy"
+  case 384: // hr_mode: "all"
+#line 1452 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2509 "dhcp6_parser.cc"
     break;
 
-  case 384: // id: "id" ":" "integer"
-#line 1454 "dhcp6_parser.yy"
+  case 385: // id: "id" ":" "integer"
+#line 1455 "dhcp6_parser.yy"
                      {
     ctx.unique("id", ctx.loc2pos(yystack_[2].location));
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2518,8 +2518,8 @@ namespace isc { namespace dhcp {
 #line 2519 "dhcp6_parser.cc"
     break;
 
-  case 385: // rapid_commit: "rapid-commit" ":" "boolean"
-#line 1460 "dhcp6_parser.yy"
+  case 386: // rapid_commit: "rapid-commit" ":" "boolean"
+#line 1461 "dhcp6_parser.yy"
                                          {
     ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location));
     ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2528,8 +2528,8 @@ namespace isc { namespace dhcp {
 #line 2529 "dhcp6_parser.cc"
     break;
 
-  case 386: // $@65: %empty
-#line 1468 "dhcp6_parser.yy"
+  case 387: // $@65: %empty
+#line 1469 "dhcp6_parser.yy"
                                  {
     ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2540,8 +2540,8 @@ namespace isc { namespace dhcp {
 #line 2541 "dhcp6_parser.cc"
     break;
 
-  case 387: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]"
-#line 1474 "dhcp6_parser.yy"
+  case 388: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]"
+#line 1475 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2549,8 +2549,8 @@ namespace isc { namespace dhcp {
 #line 2550 "dhcp6_parser.cc"
     break;
 
-  case 392: // $@66: %empty
-#line 1489 "dhcp6_parser.yy"
+  case 393: // $@66: %empty
+#line 1490 "dhcp6_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2559,16 +2559,16 @@ namespace isc { namespace dhcp {
 #line 2560 "dhcp6_parser.cc"
     break;
 
-  case 393: // shared_network: "{" $@66 shared_network_params "}"
-#line 1493 "dhcp6_parser.yy"
+  case 394: // shared_network: "{" $@66 shared_network_params "}"
+#line 1494 "dhcp6_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
 #line 2568 "dhcp6_parser.cc"
     break;
 
-  case 431: // $@67: %empty
-#line 1542 "dhcp6_parser.yy"
+  case 433: // $@67: %empty
+#line 1544 "dhcp6_parser.yy"
                             {
     ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2579,8 +2579,8 @@ namespace isc { namespace dhcp {
 #line 2580 "dhcp6_parser.cc"
     break;
 
-  case 432: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]"
-#line 1548 "dhcp6_parser.yy"
+  case 434: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]"
+#line 1550 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2588,8 +2588,8 @@ namespace isc { namespace dhcp {
 #line 2589 "dhcp6_parser.cc"
     break;
 
-  case 433: // $@68: %empty
-#line 1556 "dhcp6_parser.yy"
+  case 435: // $@68: %empty
+#line 1558 "dhcp6_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2597,16 +2597,16 @@ namespace isc { namespace dhcp {
 #line 2598 "dhcp6_parser.cc"
     break;
 
-  case 434: // sub_option_def_list: "{" $@68 option_def_list "}"
-#line 1559 "dhcp6_parser.yy"
+  case 436: // sub_option_def_list: "{" $@68 option_def_list "}"
+#line 1561 "dhcp6_parser.yy"
                                  {
     // parsing completed
 }
 #line 2606 "dhcp6_parser.cc"
     break;
 
-  case 439: // $@69: %empty
-#line 1575 "dhcp6_parser.yy"
+  case 441: // $@69: %empty
+#line 1577 "dhcp6_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2615,8 +2615,8 @@ namespace isc { namespace dhcp {
 #line 2616 "dhcp6_parser.cc"
     break;
 
-  case 440: // option_def_entry: "{" $@69 option_def_params "}"
-#line 1579 "dhcp6_parser.yy"
+  case 442: // option_def_entry: "{" $@69 option_def_params "}"
+#line 1581 "dhcp6_parser.yy"
                                    {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2627,8 +2627,8 @@ namespace isc { namespace dhcp {
 #line 2628 "dhcp6_parser.cc"
     break;
 
-  case 441: // $@70: %empty
-#line 1590 "dhcp6_parser.yy"
+  case 443: // $@70: %empty
+#line 1592 "dhcp6_parser.yy"
                                {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2637,8 +2637,8 @@ namespace isc { namespace dhcp {
 #line 2638 "dhcp6_parser.cc"
     break;
 
-  case 442: // sub_option_def: "{" $@70 option_def_params "}"
-#line 1594 "dhcp6_parser.yy"
+  case 444: // sub_option_def: "{" $@70 option_def_params "}"
+#line 1596 "dhcp6_parser.yy"
                                    {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2649,8 +2649,8 @@ namespace isc { namespace dhcp {
 #line 2650 "dhcp6_parser.cc"
     break;
 
-  case 458: // code: "code" ":" "integer"
-#line 1626 "dhcp6_parser.yy"
+  case 460: // code: "code" ":" "integer"
+#line 1628 "dhcp6_parser.yy"
                          {
     ctx.unique("code", ctx.loc2pos(yystack_[2].location));
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2659,8 +2659,8 @@ namespace isc { namespace dhcp {
 #line 2660 "dhcp6_parser.cc"
     break;
 
-  case 460: // $@71: %empty
-#line 1634 "dhcp6_parser.yy"
+  case 462: // $@71: %empty
+#line 1636 "dhcp6_parser.yy"
                       {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2668,8 +2668,8 @@ namespace isc { namespace dhcp {
 #line 2669 "dhcp6_parser.cc"
     break;
 
-  case 461: // option_def_type: "type" $@71 ":" "constant string"
-#line 1637 "dhcp6_parser.yy"
+  case 463: // option_def_type: "type" $@71 ":" "constant string"
+#line 1639 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -2678,8 +2678,8 @@ namespace isc { namespace dhcp {
 #line 2679 "dhcp6_parser.cc"
     break;
 
-  case 462: // $@72: %empty
-#line 1643 "dhcp6_parser.yy"
+  case 464: // $@72: %empty
+#line 1645 "dhcp6_parser.yy"
                                       {
     ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2687,8 +2687,8 @@ namespace isc { namespace dhcp {
 #line 2688 "dhcp6_parser.cc"
     break;
 
-  case 463: // option_def_record_types: "record-types" $@72 ":" "constant string"
-#line 1646 "dhcp6_parser.yy"
+  case 465: // option_def_record_types: "record-types" $@72 ":" "constant string"
+#line 1648 "dhcp6_parser.yy"
                {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
@@ -2697,8 +2697,8 @@ namespace isc { namespace dhcp {
 #line 2698 "dhcp6_parser.cc"
     break;
 
-  case 464: // $@73: %empty
-#line 1652 "dhcp6_parser.yy"
+  case 466: // $@73: %empty
+#line 1654 "dhcp6_parser.yy"
              {
     ctx.unique("space", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2706,8 +2706,8 @@ namespace isc { namespace dhcp {
 #line 2707 "dhcp6_parser.cc"
     break;
 
-  case 465: // space: "space" $@73 ":" "constant string"
-#line 1655 "dhcp6_parser.yy"
+  case 467: // space: "space" $@73 ":" "constant string"
+#line 1657 "dhcp6_parser.yy"
                {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -2716,8 +2716,8 @@ namespace isc { namespace dhcp {
 #line 2717 "dhcp6_parser.cc"
     break;
 
-  case 467: // $@74: %empty
-#line 1663 "dhcp6_parser.yy"
+  case 469: // $@74: %empty
+#line 1665 "dhcp6_parser.yy"
                                     {
     ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2725,8 +2725,8 @@ namespace isc { namespace dhcp {
 #line 2726 "dhcp6_parser.cc"
     break;
 
-  case 468: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string"
-#line 1666 "dhcp6_parser.yy"
+  case 470: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string"
+#line 1668 "dhcp6_parser.yy"
                {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -2735,8 +2735,8 @@ namespace isc { namespace dhcp {
 #line 2736 "dhcp6_parser.cc"
     break;
 
-  case 469: // option_def_array: "array" ":" "boolean"
-#line 1672 "dhcp6_parser.yy"
+  case 471: // option_def_array: "array" ":" "boolean"
+#line 1674 "dhcp6_parser.yy"
                                       {
     ctx.unique("array", ctx.loc2pos(yystack_[2].location));
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2745,8 +2745,8 @@ namespace isc { namespace dhcp {
 #line 2746 "dhcp6_parser.cc"
     break;
 
-  case 470: // $@75: %empty
-#line 1682 "dhcp6_parser.yy"
+  case 472: // $@75: %empty
+#line 1684 "dhcp6_parser.yy"
                               {
     ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2757,8 +2757,8 @@ namespace isc { namespace dhcp {
 #line 2758 "dhcp6_parser.cc"
     break;
 
-  case 471: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]"
-#line 1688 "dhcp6_parser.yy"
+  case 473: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]"
+#line 1690 "dhcp6_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2766,8 +2766,8 @@ namespace isc { namespace dhcp {
 #line 2767 "dhcp6_parser.cc"
     break;
 
-  case 476: // $@76: %empty
-#line 1707 "dhcp6_parser.yy"
+  case 478: // $@76: %empty
+#line 1709 "dhcp6_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2776,8 +2776,8 @@ namespace isc { namespace dhcp {
 #line 2777 "dhcp6_parser.cc"
     break;
 
-  case 477: // option_data_entry: "{" $@76 option_data_params "}"
-#line 1711 "dhcp6_parser.yy"
+  case 479: // option_data_entry: "{" $@76 option_data_params "}"
+#line 1713 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -2785,8 +2785,8 @@ namespace isc { namespace dhcp {
 #line 2786 "dhcp6_parser.cc"
     break;
 
-  case 478: // $@77: %empty
-#line 1719 "dhcp6_parser.yy"
+  case 480: // $@77: %empty
+#line 1721 "dhcp6_parser.yy"
                                 {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2795,8 +2795,8 @@ namespace isc { namespace dhcp {
 #line 2796 "dhcp6_parser.cc"
     break;
 
-  case 479: // sub_option_data: "{" $@77 option_data_params "}"
-#line 1723 "dhcp6_parser.yy"
+  case 481: // sub_option_data: "{" $@77 option_data_params "}"
+#line 1725 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -2804,8 +2804,8 @@ namespace isc { namespace dhcp {
 #line 2805 "dhcp6_parser.cc"
     break;
 
-  case 494: // $@78: %empty
-#line 1756 "dhcp6_parser.yy"
+  case 496: // $@78: %empty
+#line 1758 "dhcp6_parser.yy"
                        {
     ctx.unique("data", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2813,8 +2813,8 @@ namespace isc { namespace dhcp {
 #line 2814 "dhcp6_parser.cc"
     break;
 
-  case 495: // option_data_data: "data" $@78 ":" "constant string"
-#line 1759 "dhcp6_parser.yy"
+  case 497: // option_data_data: "data" $@78 ":" "constant string"
+#line 1761 "dhcp6_parser.yy"
                {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -2823,8 +2823,8 @@ namespace isc { namespace dhcp {
 #line 2824 "dhcp6_parser.cc"
     break;
 
-  case 498: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 1769 "dhcp6_parser.yy"
+  case 500: // option_data_csv_format: "csv-format" ":" "boolean"
+#line 1771 "dhcp6_parser.yy"
                                                  {
     ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2833,8 +2833,8 @@ namespace isc { namespace dhcp {
 #line 2834 "dhcp6_parser.cc"
     break;
 
-  case 499: // option_data_always_send: "always-send" ":" "boolean"
-#line 1775 "dhcp6_parser.yy"
+  case 501: // option_data_always_send: "always-send" ":" "boolean"
+#line 1777 "dhcp6_parser.yy"
                                                    {
     ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2843,8 +2843,8 @@ namespace isc { namespace dhcp {
 #line 2844 "dhcp6_parser.cc"
     break;
 
-  case 500: // $@79: %empty
-#line 1784 "dhcp6_parser.yy"
+  case 502: // $@79: %empty
+#line 1786 "dhcp6_parser.yy"
                   {
     ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2855,8 +2855,8 @@ namespace isc { namespace dhcp {
 #line 2856 "dhcp6_parser.cc"
     break;
 
-  case 501: // pools_list: "pools" $@79 ":" "[" pools_list_content "]"
-#line 1790 "dhcp6_parser.yy"
+  case 503: // pools_list: "pools" $@79 ":" "[" pools_list_content "]"
+#line 1792 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2864,8 +2864,8 @@ namespace isc { namespace dhcp {
 #line 2865 "dhcp6_parser.cc"
     break;
 
-  case 506: // $@80: %empty
-#line 1805 "dhcp6_parser.yy"
+  case 508: // $@80: %empty
+#line 1807 "dhcp6_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2874,8 +2874,8 @@ namespace isc { namespace dhcp {
 #line 2875 "dhcp6_parser.cc"
     break;
 
-  case 507: // pool_list_entry: "{" $@80 pool_params "}"
-#line 1809 "dhcp6_parser.yy"
+  case 509: // pool_list_entry: "{" $@80 pool_params "}"
+#line 1811 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2884,8 +2884,8 @@ namespace isc { namespace dhcp {
 #line 2885 "dhcp6_parser.cc"
     break;
 
-  case 508: // $@81: %empty
-#line 1815 "dhcp6_parser.yy"
+  case 510: // $@81: %empty
+#line 1817 "dhcp6_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2894,8 +2894,8 @@ namespace isc { namespace dhcp {
 #line 2895 "dhcp6_parser.cc"
     break;
 
-  case 509: // sub_pool6: "{" $@81 pool_params "}"
-#line 1819 "dhcp6_parser.yy"
+  case 511: // sub_pool6: "{" $@81 pool_params "}"
+#line 1821 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2904,8 +2904,8 @@ namespace isc { namespace dhcp {
 #line 2905 "dhcp6_parser.cc"
     break;
 
-  case 519: // $@82: %empty
-#line 1838 "dhcp6_parser.yy"
+  case 521: // $@82: %empty
+#line 1840 "dhcp6_parser.yy"
                  {
     ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2913,8 +2913,8 @@ namespace isc { namespace dhcp {
 #line 2914 "dhcp6_parser.cc"
     break;
 
-  case 520: // pool_entry: "pool" $@82 ":" "constant string"
-#line 1841 "dhcp6_parser.yy"
+  case 522: // pool_entry: "pool" $@82 ":" "constant string"
+#line 1843 "dhcp6_parser.yy"
                {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -2923,16 +2923,16 @@ namespace isc { namespace dhcp {
 #line 2924 "dhcp6_parser.cc"
     break;
 
-  case 521: // $@83: %empty
-#line 1847 "dhcp6_parser.yy"
+  case 523: // $@83: %empty
+#line 1849 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2932 "dhcp6_parser.cc"
     break;
 
-  case 522: // user_context: "user-context" $@83 ":" map_value
-#line 1849 "dhcp6_parser.yy"
+  case 524: // user_context: "user-context" $@83 ":" map_value
+#line 1851 "dhcp6_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2958,16 +2958,16 @@ namespace isc { namespace dhcp {
 #line 2959 "dhcp6_parser.cc"
     break;
 
-  case 523: // $@84: %empty
-#line 1872 "dhcp6_parser.yy"
+  case 525: // $@84: %empty
+#line 1874 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2967 "dhcp6_parser.cc"
     break;
 
-  case 524: // comment: "comment" $@84 ":" "constant string"
-#line 1874 "dhcp6_parser.yy"
+  case 526: // comment: "comment" $@84 ":" "constant string"
+#line 1876 "dhcp6_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2995,8 +2995,8 @@ namespace isc { namespace dhcp {
 #line 2996 "dhcp6_parser.cc"
     break;
 
-  case 525: // $@85: %empty
-#line 1902 "dhcp6_parser.yy"
+  case 527: // $@85: %empty
+#line 1904 "dhcp6_parser.yy"
                         {
     ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3007,8 +3007,8 @@ namespace isc { namespace dhcp {
 #line 3008 "dhcp6_parser.cc"
     break;
 
-  case 526: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]"
-#line 1908 "dhcp6_parser.yy"
+  case 528: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]"
+#line 1910 "dhcp6_parser.yy"
                                                               {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3016,8 +3016,8 @@ namespace isc { namespace dhcp {
 #line 3017 "dhcp6_parser.cc"
     break;
 
-  case 531: // $@86: %empty
-#line 1923 "dhcp6_parser.yy"
+  case 533: // $@86: %empty
+#line 1925 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3026,8 +3026,8 @@ namespace isc { namespace dhcp {
 #line 3027 "dhcp6_parser.cc"
     break;
 
-  case 532: // pd_pool_entry: "{" $@86 pd_pool_params "}"
-#line 1927 "dhcp6_parser.yy"
+  case 534: // pd_pool_entry: "{" $@86 pd_pool_params "}"
+#line 1929 "dhcp6_parser.yy"
                                 {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3038,8 +3038,8 @@ namespace isc { namespace dhcp {
 #line 3039 "dhcp6_parser.cc"
     break;
 
-  case 533: // $@87: %empty
-#line 1935 "dhcp6_parser.yy"
+  case 535: // $@87: %empty
+#line 1937 "dhcp6_parser.yy"
                             {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3048,8 +3048,8 @@ namespace isc { namespace dhcp {
 #line 3049 "dhcp6_parser.cc"
     break;
 
-  case 534: // sub_pd_pool: "{" $@87 pd_pool_params "}"
-#line 1939 "dhcp6_parser.yy"
+  case 536: // sub_pd_pool: "{" $@87 pd_pool_params "}"
+#line 1941 "dhcp6_parser.yy"
                                 {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3060,8 +3060,8 @@ namespace isc { namespace dhcp {
 #line 3061 "dhcp6_parser.cc"
     break;
 
-  case 548: // $@88: %empty
-#line 1964 "dhcp6_parser.yy"
+  case 550: // $@88: %empty
+#line 1966 "dhcp6_parser.yy"
                   {
     ctx.unique("prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3069,8 +3069,8 @@ namespace isc { namespace dhcp {
 #line 3070 "dhcp6_parser.cc"
     break;
 
-  case 549: // pd_prefix: "prefix" $@88 ":" "constant string"
-#line 1967 "dhcp6_parser.yy"
+  case 551: // pd_prefix: "prefix" $@88 ":" "constant string"
+#line 1969 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
@@ -3079,8 +3079,8 @@ namespace isc { namespace dhcp {
 #line 3080 "dhcp6_parser.cc"
     break;
 
-  case 550: // pd_prefix_len: "prefix-len" ":" "integer"
-#line 1973 "dhcp6_parser.yy"
+  case 552: // pd_prefix_len: "prefix-len" ":" "integer"
+#line 1975 "dhcp6_parser.yy"
                                         {
     ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3089,8 +3089,8 @@ namespace isc { namespace dhcp {
 #line 3090 "dhcp6_parser.cc"
     break;
 
-  case 551: // $@89: %empty
-#line 1979 "dhcp6_parser.yy"
+  case 553: // $@89: %empty
+#line 1981 "dhcp6_parser.yy"
                                  {
     ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3098,8 +3098,8 @@ namespace isc { namespace dhcp {
 #line 3099 "dhcp6_parser.cc"
     break;
 
-  case 552: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string"
-#line 1982 "dhcp6_parser.yy"
+  case 554: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string"
+#line 1984 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix", prf);
@@ -3108,8 +3108,8 @@ namespace isc { namespace dhcp {
 #line 3109 "dhcp6_parser.cc"
     break;
 
-  case 553: // excluded_prefix_len: "excluded-prefix-len" ":" "integer"
-#line 1988 "dhcp6_parser.yy"
+  case 555: // excluded_prefix_len: "excluded-prefix-len" ":" "integer"
+#line 1990 "dhcp6_parser.yy"
                                                        {
     ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3118,8 +3118,8 @@ namespace isc { namespace dhcp {
 #line 3119 "dhcp6_parser.cc"
     break;
 
-  case 554: // pd_delegated_len: "delegated-len" ":" "integer"
-#line 1994 "dhcp6_parser.yy"
+  case 556: // pd_delegated_len: "delegated-len" ":" "integer"
+#line 1996 "dhcp6_parser.yy"
                                               {
     ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location));
     ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3128,8 +3128,8 @@ namespace isc { namespace dhcp {
 #line 3129 "dhcp6_parser.cc"
     break;
 
-  case 555: // $@90: %empty
-#line 2003 "dhcp6_parser.yy"
+  case 557: // $@90: %empty
+#line 2005 "dhcp6_parser.yy"
                            {
     ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3140,8 +3140,8 @@ namespace isc { namespace dhcp {
 #line 3141 "dhcp6_parser.cc"
     break;
 
-  case 556: // reservations: "reservations" $@90 ":" "[" reservations_list "]"
-#line 2009 "dhcp6_parser.yy"
+  case 558: // reservations: "reservations" $@90 ":" "[" reservations_list "]"
+#line 2011 "dhcp6_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3149,8 +3149,8 @@ namespace isc { namespace dhcp {
 #line 3150 "dhcp6_parser.cc"
     break;
 
-  case 561: // $@91: %empty
-#line 2022 "dhcp6_parser.yy"
+  case 563: // $@91: %empty
+#line 2024 "dhcp6_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3159,8 +3159,8 @@ namespace isc { namespace dhcp {
 #line 3160 "dhcp6_parser.cc"
     break;
 
-  case 562: // reservation: "{" $@91 reservation_params "}"
-#line 2026 "dhcp6_parser.yy"
+  case 564: // reservation: "{" $@91 reservation_params "}"
+#line 2028 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -3168,8 +3168,8 @@ namespace isc { namespace dhcp {
 #line 3169 "dhcp6_parser.cc"
     break;
 
-  case 563: // $@92: %empty
-#line 2031 "dhcp6_parser.yy"
+  case 565: // $@92: %empty
+#line 2033 "dhcp6_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3178,8 +3178,8 @@ namespace isc { namespace dhcp {
 #line 3179 "dhcp6_parser.cc"
     break;
 
-  case 564: // sub_reservation: "{" $@92 reservation_params "}"
-#line 2035 "dhcp6_parser.yy"
+  case 566: // sub_reservation: "{" $@92 reservation_params "}"
+#line 2037 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -3187,8 +3187,8 @@ namespace isc { namespace dhcp {
 #line 3188 "dhcp6_parser.cc"
     break;
 
-  case 580: // $@93: %empty
-#line 2062 "dhcp6_parser.yy"
+  case 582: // $@93: %empty
+#line 2064 "dhcp6_parser.yy"
                            {
     ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3199,8 +3199,8 @@ namespace isc { namespace dhcp {
 #line 3200 "dhcp6_parser.cc"
     break;
 
-  case 581: // ip_addresses: "ip-addresses" $@93 ":" list_strings
-#line 2068 "dhcp6_parser.yy"
+  case 583: // ip_addresses: "ip-addresses" $@93 ":" list_strings
+#line 2070 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3208,8 +3208,8 @@ namespace isc { namespace dhcp {
 #line 3209 "dhcp6_parser.cc"
     break;
 
-  case 582: // $@94: %empty
-#line 2073 "dhcp6_parser.yy"
+  case 584: // $@94: %empty
+#line 2075 "dhcp6_parser.yy"
                    {
     ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3220,8 +3220,8 @@ namespace isc { namespace dhcp {
 #line 3221 "dhcp6_parser.cc"
     break;
 
-  case 583: // prefixes: "prefixes" $@94 ":" list_strings
-#line 2079 "dhcp6_parser.yy"
+  case 585: // prefixes: "prefixes" $@94 ":" list_strings
+#line 2081 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3229,8 +3229,8 @@ namespace isc { namespace dhcp {
 #line 3230 "dhcp6_parser.cc"
     break;
 
-  case 584: // $@95: %empty
-#line 2084 "dhcp6_parser.yy"
+  case 586: // $@95: %empty
+#line 2086 "dhcp6_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3238,8 +3238,8 @@ namespace isc { namespace dhcp {
 #line 3239 "dhcp6_parser.cc"
     break;
 
-  case 585: // duid: "duid" $@95 ":" "constant string"
-#line 2087 "dhcp6_parser.yy"
+  case 587: // duid: "duid" $@95 ":" "constant string"
+#line 2089 "dhcp6_parser.yy"
                {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -3248,8 +3248,8 @@ namespace isc { namespace dhcp {
 #line 3249 "dhcp6_parser.cc"
     break;
 
-  case 586: // $@96: %empty
-#line 2093 "dhcp6_parser.yy"
+  case 588: // $@96: %empty
+#line 2095 "dhcp6_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3257,8 +3257,8 @@ namespace isc { namespace dhcp {
 #line 3258 "dhcp6_parser.cc"
     break;
 
-  case 587: // hw_address: "hw-address" $@96 ":" "constant string"
-#line 2096 "dhcp6_parser.yy"
+  case 589: // hw_address: "hw-address" $@96 ":" "constant string"
+#line 2098 "dhcp6_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
@@ -3267,8 +3267,8 @@ namespace isc { namespace dhcp {
 #line 3268 "dhcp6_parser.cc"
     break;
 
-  case 588: // $@97: %empty
-#line 2102 "dhcp6_parser.yy"
+  case 590: // $@97: %empty
+#line 2104 "dhcp6_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3276,8 +3276,8 @@ namespace isc { namespace dhcp {
 #line 3277 "dhcp6_parser.cc"
     break;
 
-  case 589: // hostname: "hostname" $@97 ":" "constant string"
-#line 2105 "dhcp6_parser.yy"
+  case 591: // hostname: "hostname" $@97 ":" "constant string"
+#line 2107 "dhcp6_parser.yy"
                {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -3286,8 +3286,8 @@ namespace isc { namespace dhcp {
 #line 3287 "dhcp6_parser.cc"
     break;
 
-  case 590: // $@98: %empty
-#line 2111 "dhcp6_parser.yy"
+  case 592: // $@98: %empty
+#line 2113 "dhcp6_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3295,8 +3295,8 @@ namespace isc { namespace dhcp {
 #line 3296 "dhcp6_parser.cc"
     break;
 
-  case 591: // flex_id_value: "flex-id" $@98 ":" "constant string"
-#line 2114 "dhcp6_parser.yy"
+  case 593: // flex_id_value: "flex-id" $@98 ":" "constant string"
+#line 2116 "dhcp6_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
@@ -3305,8 +3305,8 @@ namespace isc { namespace dhcp {
 #line 3306 "dhcp6_parser.cc"
     break;
 
-  case 592: // $@99: %empty
-#line 2120 "dhcp6_parser.yy"
+  case 594: // $@99: %empty
+#line 2122 "dhcp6_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3317,8 +3317,8 @@ namespace isc { namespace dhcp {
 #line 3318 "dhcp6_parser.cc"
     break;
 
-  case 593: // reservation_client_classes: "client-classes" $@99 ":" list_strings
-#line 2126 "dhcp6_parser.yy"
+  case 595: // reservation_client_classes: "client-classes" $@99 ":" list_strings
+#line 2128 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3326,8 +3326,8 @@ namespace isc { namespace dhcp {
 #line 3327 "dhcp6_parser.cc"
     break;
 
-  case 594: // $@100: %empty
-#line 2134 "dhcp6_parser.yy"
+  case 596: // $@100: %empty
+#line 2136 "dhcp6_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3338,8 +3338,8 @@ namespace isc { namespace dhcp {
 #line 3339 "dhcp6_parser.cc"
     break;
 
-  case 595: // relay: "relay" $@100 ":" "{" relay_map "}"
-#line 2140 "dhcp6_parser.yy"
+  case 597: // relay: "relay" $@100 ":" "{" relay_map "}"
+#line 2142 "dhcp6_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3347,8 +3347,8 @@ namespace isc { namespace dhcp {
 #line 3348 "dhcp6_parser.cc"
     break;
 
-  case 598: // $@101: %empty
-#line 2149 "dhcp6_parser.yy"
+  case 600: // $@101: %empty
+#line 2151 "dhcp6_parser.yy"
                        {
     ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3356,8 +3356,8 @@ namespace isc { namespace dhcp {
 #line 3357 "dhcp6_parser.cc"
     break;
 
-  case 599: // ip_address: "ip-address" $@101 ":" "constant string"
-#line 2152 "dhcp6_parser.yy"
+  case 601: // ip_address: "ip-address" $@101 ":" "constant string"
+#line 2154 "dhcp6_parser.yy"
                {
     ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
@@ -3366,8 +3366,8 @@ namespace isc { namespace dhcp {
 #line 3367 "dhcp6_parser.cc"
     break;
 
-  case 600: // $@102: %empty
-#line 2161 "dhcp6_parser.yy"
+  case 602: // $@102: %empty
+#line 2163 "dhcp6_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3378,8 +3378,8 @@ namespace isc { namespace dhcp {
 #line 3379 "dhcp6_parser.cc"
     break;
 
-  case 601: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]"
-#line 2167 "dhcp6_parser.yy"
+  case 603: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]"
+#line 2169 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3387,8 +3387,8 @@ namespace isc { namespace dhcp {
 #line 3388 "dhcp6_parser.cc"
     break;
 
-  case 604: // $@103: %empty
-#line 2176 "dhcp6_parser.yy"
+  case 606: // $@103: %empty
+#line 2178 "dhcp6_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3397,8 +3397,8 @@ namespace isc { namespace dhcp {
 #line 3398 "dhcp6_parser.cc"
     break;
 
-  case 605: // client_class_entry: "{" $@103 client_class_params "}"
-#line 2180 "dhcp6_parser.yy"
+  case 607: // client_class_entry: "{" $@103 client_class_params "}"
+#line 2182 "dhcp6_parser.yy"
                                      {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3407,8 +3407,8 @@ namespace isc { namespace dhcp {
 #line 3408 "dhcp6_parser.cc"
     break;
 
-  case 618: // $@104: %empty
-#line 2205 "dhcp6_parser.yy"
+  case 620: // $@104: %empty
+#line 2207 "dhcp6_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3416,8 +3416,8 @@ namespace isc { namespace dhcp {
 #line 3417 "dhcp6_parser.cc"
     break;
 
-  case 619: // client_class_test: "test" $@104 ":" "constant string"
-#line 2208 "dhcp6_parser.yy"
+  case 621: // client_class_test: "test" $@104 ":" "constant string"
+#line 2210 "dhcp6_parser.yy"
                {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -3426,8 +3426,8 @@ namespace isc { namespace dhcp {
 #line 3427 "dhcp6_parser.cc"
     break;
 
-  case 620: // only_if_required: "only-if-required" ":" "boolean"
-#line 2214 "dhcp6_parser.yy"
+  case 622: // only_if_required: "only-if-required" ":" "boolean"
+#line 2216 "dhcp6_parser.yy"
                                                  {
     ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3436,8 +3436,8 @@ namespace isc { namespace dhcp {
 #line 3437 "dhcp6_parser.cc"
     break;
 
-  case 621: // $@105: %empty
-#line 2223 "dhcp6_parser.yy"
+  case 623: // $@105: %empty
+#line 2225 "dhcp6_parser.yy"
                      {
     ctx.unique("server-id", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3448,8 +3448,8 @@ namespace isc { namespace dhcp {
 #line 3449 "dhcp6_parser.cc"
     break;
 
-  case 622: // server_id: "server-id" $@105 ":" "{" server_id_params "}"
-#line 2229 "dhcp6_parser.yy"
+  case 624: // server_id: "server-id" $@105 ":" "{" server_id_params "}"
+#line 2231 "dhcp6_parser.yy"
                                                        {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3459,8 +3459,8 @@ namespace isc { namespace dhcp {
 #line 3460 "dhcp6_parser.cc"
     break;
 
-  case 634: // $@106: %empty
-#line 2251 "dhcp6_parser.yy"
+  case 636: // $@106: %empty
+#line 2253 "dhcp6_parser.yy"
                      {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DUID_TYPE);
@@ -3468,8 +3468,8 @@ namespace isc { namespace dhcp {
 #line 3469 "dhcp6_parser.cc"
     break;
 
-  case 635: // server_id_type: "type" $@106 ":" duid_type
-#line 2254 "dhcp6_parser.yy"
+  case 637: // server_id_type: "type" $@106 ":" duid_type
+#line 2256 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3477,26 +3477,26 @@ namespace isc { namespace dhcp {
 #line 3478 "dhcp6_parser.cc"
     break;
 
-  case 636: // duid_type: "LLT"
-#line 2259 "dhcp6_parser.yy"
+  case 638: // duid_type: "LLT"
+#line 2261 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
 #line 3484 "dhcp6_parser.cc"
     break;
 
-  case 637: // duid_type: "EN"
-#line 2260 "dhcp6_parser.yy"
+  case 639: // duid_type: "EN"
+#line 2262 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
 #line 3490 "dhcp6_parser.cc"
     break;
 
-  case 638: // duid_type: "LL"
-#line 2261 "dhcp6_parser.yy"
+  case 640: // duid_type: "LL"
+#line 2263 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
 #line 3496 "dhcp6_parser.cc"
     break;
 
-  case 639: // htype: "htype" ":" "integer"
-#line 2264 "dhcp6_parser.yy"
+  case 641: // htype: "htype" ":" "integer"
+#line 2266 "dhcp6_parser.yy"
                            {
     ctx.unique("htype", ctx.loc2pos(yystack_[2].location));
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3505,8 +3505,8 @@ namespace isc { namespace dhcp {
 #line 3506 "dhcp6_parser.cc"
     break;
 
-  case 640: // $@107: %empty
-#line 2270 "dhcp6_parser.yy"
+  case 642: // $@107: %empty
+#line 2272 "dhcp6_parser.yy"
                        {
     ctx.unique("identifier", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3514,8 +3514,8 @@ namespace isc { namespace dhcp {
 #line 3515 "dhcp6_parser.cc"
     break;
 
-  case 641: // identifier: "identifier" $@107 ":" "constant string"
-#line 2273 "dhcp6_parser.yy"
+  case 643: // identifier: "identifier" $@107 ":" "constant string"
+#line 2275 "dhcp6_parser.yy"
                {
     ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
@@ -3524,8 +3524,8 @@ namespace isc { namespace dhcp {
 #line 3525 "dhcp6_parser.cc"
     break;
 
-  case 642: // time: "time" ":" "integer"
-#line 2279 "dhcp6_parser.yy"
+  case 644: // time: "time" ":" "integer"
+#line 2281 "dhcp6_parser.yy"
                          {
     ctx.unique("time", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3534,8 +3534,8 @@ namespace isc { namespace dhcp {
 #line 3535 "dhcp6_parser.cc"
     break;
 
-  case 643: // enterprise_id: "enterprise-id" ":" "integer"
-#line 2285 "dhcp6_parser.yy"
+  case 645: // enterprise_id: "enterprise-id" ":" "integer"
+#line 2287 "dhcp6_parser.yy"
                                            {
     ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3544,8 +3544,8 @@ namespace isc { namespace dhcp {
 #line 3545 "dhcp6_parser.cc"
     break;
 
-  case 644: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2293 "dhcp6_parser.yy"
+  case 646: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2295 "dhcp6_parser.yy"
                                          {
     ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3554,8 +3554,8 @@ namespace isc { namespace dhcp {
 #line 3555 "dhcp6_parser.cc"
     break;
 
-  case 645: // $@108: %empty
-#line 2301 "dhcp6_parser.yy"
+  case 647: // $@108: %empty
+#line 2303 "dhcp6_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3566,8 +3566,8 @@ namespace isc { namespace dhcp {
 #line 3567 "dhcp6_parser.cc"
     break;
 
-  case 646: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}"
-#line 2307 "dhcp6_parser.yy"
+  case 648: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}"
+#line 2309 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3575,8 +3575,8 @@ namespace isc { namespace dhcp {
 #line 3576 "dhcp6_parser.cc"
     break;
 
-  case 654: // $@109: %empty
-#line 2323 "dhcp6_parser.yy"
+  case 656: // $@109: %empty
+#line 2325 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3584,8 +3584,8 @@ namespace isc { namespace dhcp {
 #line 3585 "dhcp6_parser.cc"
     break;
 
-  case 655: // socket_type: "socket-type" $@109 ":" "constant string"
-#line 2326 "dhcp6_parser.yy"
+  case 657: // socket_type: "socket-type" $@109 ":" "constant string"
+#line 2328 "dhcp6_parser.yy"
                {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -3594,8 +3594,8 @@ namespace isc { namespace dhcp {
 #line 3595 "dhcp6_parser.cc"
     break;
 
-  case 656: // $@110: %empty
-#line 2332 "dhcp6_parser.yy"
+  case 658: // $@110: %empty
+#line 2334 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3603,8 +3603,8 @@ namespace isc { namespace dhcp {
 #line 3604 "dhcp6_parser.cc"
     break;
 
-  case 657: // socket_name: "socket-name" $@110 ":" "constant string"
-#line 2335 "dhcp6_parser.yy"
+  case 659: // socket_name: "socket-name" $@110 ":" "constant string"
+#line 2337 "dhcp6_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -3613,8 +3613,8 @@ namespace isc { namespace dhcp {
 #line 3614 "dhcp6_parser.cc"
     break;
 
-  case 658: // $@111: %empty
-#line 2344 "dhcp6_parser.yy"
+  case 660: // $@111: %empty
+#line 2346 "dhcp6_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3625,8 +3625,8 @@ namespace isc { namespace dhcp {
 #line 3626 "dhcp6_parser.cc"
     break;
 
-  case 659: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}"
-#line 2350 "dhcp6_parser.yy"
+  case 661: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}"
+#line 2352 "dhcp6_parser.yy"
                                                            {
     // The enable queue parameter is required.
     ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3636,8 +3636,8 @@ namespace isc { namespace dhcp {
 #line 3637 "dhcp6_parser.cc"
     break;
 
-  case 668: // enable_queue: "enable-queue" ":" "boolean"
-#line 2369 "dhcp6_parser.yy"
+  case 670: // enable_queue: "enable-queue" ":" "boolean"
+#line 2371 "dhcp6_parser.yy"
                                          {
     ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3646,8 +3646,8 @@ namespace isc { namespace dhcp {
 #line 3647 "dhcp6_parser.cc"
     break;
 
-  case 669: // $@112: %empty
-#line 2375 "dhcp6_parser.yy"
+  case 671: // $@112: %empty
+#line 2377 "dhcp6_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3655,8 +3655,8 @@ namespace isc { namespace dhcp {
 #line 3656 "dhcp6_parser.cc"
     break;
 
-  case 670: // queue_type: "queue-type" $@112 ":" "constant string"
-#line 2378 "dhcp6_parser.yy"
+  case 672: // queue_type: "queue-type" $@112 ":" "constant string"
+#line 2380 "dhcp6_parser.yy"
                {
     ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("queue-type", qt);
@@ -3665,8 +3665,8 @@ namespace isc { namespace dhcp {
 #line 3666 "dhcp6_parser.cc"
     break;
 
-  case 671: // capacity: "capacity" ":" "integer"
-#line 2384 "dhcp6_parser.yy"
+  case 673: // capacity: "capacity" ":" "integer"
+#line 2386 "dhcp6_parser.yy"
                                  {
     ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3675,8 +3675,8 @@ namespace isc { namespace dhcp {
 #line 3676 "dhcp6_parser.cc"
     break;
 
-  case 672: // $@113: %empty
-#line 2390 "dhcp6_parser.yy"
+  case 674: // $@113: %empty
+#line 2392 "dhcp6_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3684,8 +3684,8 @@ namespace isc { namespace dhcp {
 #line 3685 "dhcp6_parser.cc"
     break;
 
-  case 673: // arbitrary_map_entry: "constant string" $@113 ":" value
-#line 2393 "dhcp6_parser.yy"
+  case 675: // arbitrary_map_entry: "constant string" $@113 ":" value
+#line 2395 "dhcp6_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3693,8 +3693,8 @@ namespace isc { namespace dhcp {
 #line 3694 "dhcp6_parser.cc"
     break;
 
-  case 674: // $@114: %empty
-#line 2400 "dhcp6_parser.yy"
+  case 676: // $@114: %empty
+#line 2402 "dhcp6_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3705,8 +3705,8 @@ namespace isc { namespace dhcp {
 #line 3706 "dhcp6_parser.cc"
     break;
 
-  case 675: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}"
-#line 2406 "dhcp6_parser.yy"
+  case 677: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}"
+#line 2408 "dhcp6_parser.yy"
                                                        {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3716,8 +3716,8 @@ namespace isc { namespace dhcp {
 #line 3717 "dhcp6_parser.cc"
     break;
 
-  case 676: // $@115: %empty
-#line 2413 "dhcp6_parser.yy"
+  case 678: // $@115: %empty
+#line 2415 "dhcp6_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3726,8 +3726,8 @@ namespace isc { namespace dhcp {
 #line 3727 "dhcp6_parser.cc"
     break;
 
-  case 677: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}"
-#line 2417 "dhcp6_parser.yy"
+  case 679: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}"
+#line 2419 "dhcp6_parser.yy"
                                   {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3736,8 +3736,8 @@ namespace isc { namespace dhcp {
 #line 3737 "dhcp6_parser.cc"
     break;
 
-  case 698: // enable_updates: "enable-updates" ":" "boolean"
-#line 2447 "dhcp6_parser.yy"
+  case 700: // enable_updates: "enable-updates" ":" "boolean"
+#line 2449 "dhcp6_parser.yy"
                                              {
     ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3746,8 +3746,8 @@ namespace isc { namespace dhcp {
 #line 3747 "dhcp6_parser.cc"
     break;
 
-  case 699: // $@116: %empty
-#line 2454 "dhcp6_parser.yy"
+  case 701: // $@116: %empty
+#line 2456 "dhcp6_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3755,8 +3755,8 @@ namespace isc { namespace dhcp {
 #line 3756 "dhcp6_parser.cc"
     break;
 
-  case 700: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string"
-#line 2457 "dhcp6_parser.yy"
+  case 702: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string"
+#line 2459 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3765,8 +3765,8 @@ namespace isc { namespace dhcp {
 #line 3766 "dhcp6_parser.cc"
     break;
 
-  case 701: // $@117: %empty
-#line 2463 "dhcp6_parser.yy"
+  case 703: // $@117: %empty
+#line 2465 "dhcp6_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3774,8 +3774,8 @@ namespace isc { namespace dhcp {
 #line 3775 "dhcp6_parser.cc"
     break;
 
-  case 702: // server_ip: "server-ip" $@117 ":" "constant string"
-#line 2466 "dhcp6_parser.yy"
+  case 704: // server_ip: "server-ip" $@117 ":" "constant string"
+#line 2468 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3784,8 +3784,8 @@ namespace isc { namespace dhcp {
 #line 3785 "dhcp6_parser.cc"
     break;
 
-  case 703: // server_port: "server-port" ":" "integer"
-#line 2472 "dhcp6_parser.yy"
+  case 705: // server_port: "server-port" ":" "integer"
+#line 2474 "dhcp6_parser.yy"
                                        {
     ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3794,8 +3794,8 @@ namespace isc { namespace dhcp {
 #line 3795 "dhcp6_parser.cc"
     break;
 
-  case 704: // $@118: %empty
-#line 2478 "dhcp6_parser.yy"
+  case 706: // $@118: %empty
+#line 2480 "dhcp6_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3803,8 +3803,8 @@ namespace isc { namespace dhcp {
 #line 3804 "dhcp6_parser.cc"
     break;
 
-  case 705: // sender_ip: "sender-ip" $@118 ":" "constant string"
-#line 2481 "dhcp6_parser.yy"
+  case 707: // sender_ip: "sender-ip" $@118 ":" "constant string"
+#line 2483 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3813,8 +3813,8 @@ namespace isc { namespace dhcp {
 #line 3814 "dhcp6_parser.cc"
     break;
 
-  case 706: // sender_port: "sender-port" ":" "integer"
-#line 2487 "dhcp6_parser.yy"
+  case 708: // sender_port: "sender-port" ":" "integer"
+#line 2489 "dhcp6_parser.yy"
                                        {
     ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3823,8 +3823,8 @@ namespace isc { namespace dhcp {
 #line 3824 "dhcp6_parser.cc"
     break;
 
-  case 707: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2493 "dhcp6_parser.yy"
+  case 709: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2495 "dhcp6_parser.yy"
                                              {
     ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3833,8 +3833,8 @@ namespace isc { namespace dhcp {
 #line 3834 "dhcp6_parser.cc"
     break;
 
-  case 708: // $@119: %empty
-#line 2499 "dhcp6_parser.yy"
+  case 710: // $@119: %empty
+#line 2501 "dhcp6_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
@@ -3842,8 +3842,8 @@ namespace isc { namespace dhcp {
 #line 3843 "dhcp6_parser.cc"
     break;
 
-  case 709: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value
-#line 2502 "dhcp6_parser.yy"
+  case 711: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value
+#line 2504 "dhcp6_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3851,20 +3851,20 @@ namespace isc { namespace dhcp {
 #line 3852 "dhcp6_parser.cc"
     break;
 
-  case 710: // ncr_protocol_value: "UDP"
-#line 2508 "dhcp6_parser.yy"
+  case 712: // ncr_protocol_value: "UDP"
+#line 2510 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3858 "dhcp6_parser.cc"
     break;
 
-  case 711: // ncr_protocol_value: "TCP"
-#line 2509 "dhcp6_parser.yy"
+  case 713: // ncr_protocol_value: "TCP"
+#line 2511 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3864 "dhcp6_parser.cc"
     break;
 
-  case 712: // $@120: %empty
-#line 2512 "dhcp6_parser.yy"
+  case 714: // $@120: %empty
+#line 2514 "dhcp6_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
@@ -3872,8 +3872,8 @@ namespace isc { namespace dhcp {
 #line 3873 "dhcp6_parser.cc"
     break;
 
-  case 713: // ncr_format: "ncr-format" $@120 ":" "JSON"
-#line 2515 "dhcp6_parser.yy"
+  case 715: // ncr_format: "ncr-format" $@120 ":" "JSON"
+#line 2517 "dhcp6_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3882,8 +3882,8 @@ namespace isc { namespace dhcp {
 #line 3883 "dhcp6_parser.cc"
     break;
 
-  case 714: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2522 "dhcp6_parser.yy"
+  case 716: // dep_override_no_update: "override-no-update" ":" "boolean"
+#line 2524 "dhcp6_parser.yy"
                                                          {
     ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3892,8 +3892,8 @@ namespace isc { namespace dhcp {
 #line 3893 "dhcp6_parser.cc"
     break;
 
-  case 715: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2529 "dhcp6_parser.yy"
+  case 717: // dep_override_client_update: "override-client-update" ":" "boolean"
+#line 2531 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3902,8 +3902,8 @@ namespace isc { namespace dhcp {
 #line 3903 "dhcp6_parser.cc"
     break;
 
-  case 716: // $@121: %empty
-#line 2536 "dhcp6_parser.yy"
+  case 718: // $@121: %empty
+#line 2538 "dhcp6_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -3911,8 +3911,8 @@ namespace isc { namespace dhcp {
 #line 3912 "dhcp6_parser.cc"
     break;
 
-  case 717: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value
-#line 2539 "dhcp6_parser.yy"
+  case 719: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value
+#line 2541 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -3920,8 +3920,8 @@ namespace isc { namespace dhcp {
 #line 3921 "dhcp6_parser.cc"
     break;
 
-  case 718: // $@122: %empty
-#line 2545 "dhcp6_parser.yy"
+  case 720: // $@122: %empty
+#line 2547 "dhcp6_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3929,8 +3929,8 @@ namespace isc { namespace dhcp {
 #line 3930 "dhcp6_parser.cc"
     break;
 
-  case 719: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string"
-#line 2548 "dhcp6_parser.yy"
+  case 721: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string"
+#line 2550 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
@@ -3939,8 +3939,8 @@ namespace isc { namespace dhcp {
 #line 3940 "dhcp6_parser.cc"
     break;
 
-  case 720: // $@123: %empty
-#line 2555 "dhcp6_parser.yy"
+  case 722: // $@123: %empty
+#line 2557 "dhcp6_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3948,8 +3948,8 @@ namespace isc { namespace dhcp {
 #line 3949 "dhcp6_parser.cc"
     break;
 
-  case 721: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string"
-#line 2558 "dhcp6_parser.yy"
+  case 723: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string"
+#line 2560 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
@@ -3958,8 +3958,8 @@ namespace isc { namespace dhcp {
 #line 3959 "dhcp6_parser.cc"
     break;
 
-  case 722: // $@124: %empty
-#line 2565 "dhcp6_parser.yy"
+  case 724: // $@124: %empty
+#line 2567 "dhcp6_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3967,8 +3967,8 @@ namespace isc { namespace dhcp {
 #line 3968 "dhcp6_parser.cc"
     break;
 
-  case 723: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string"
-#line 2568 "dhcp6_parser.yy"
+  case 725: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string"
+#line 2570 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
@@ -3977,8 +3977,8 @@ namespace isc { namespace dhcp {
 #line 3978 "dhcp6_parser.cc"
     break;
 
-  case 724: // $@125: %empty
-#line 2577 "dhcp6_parser.yy"
+  case 726: // $@125: %empty
+#line 2579 "dhcp6_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3989,8 +3989,8 @@ namespace isc { namespace dhcp {
 #line 3990 "dhcp6_parser.cc"
     break;
 
-  case 725: // config_control: "config-control" $@125 ":" "{" config_control_params "}"
-#line 2583 "dhcp6_parser.yy"
+  case 727: // config_control: "config-control" $@125 ":" "{" config_control_params "}"
+#line 2585 "dhcp6_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -3999,8 +3999,8 @@ namespace isc { namespace dhcp {
 #line 4000 "dhcp6_parser.cc"
     break;
 
-  case 726: // $@126: %empty
-#line 2589 "dhcp6_parser.yy"
+  case 728: // $@126: %empty
+#line 2591 "dhcp6_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4009,8 +4009,8 @@ namespace isc { namespace dhcp {
 #line 4010 "dhcp6_parser.cc"
     break;
 
-  case 727: // sub_config_control: "{" $@126 config_control_params "}"
-#line 2593 "dhcp6_parser.yy"
+  case 729: // sub_config_control: "{" $@126 config_control_params "}"
+#line 2595 "dhcp6_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
@@ -4018,8 +4018,8 @@ namespace isc { namespace dhcp {
 #line 4019 "dhcp6_parser.cc"
     break;
 
-  case 732: // $@127: %empty
-#line 2608 "dhcp6_parser.yy"
+  case 734: // $@127: %empty
+#line 2610 "dhcp6_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4030,8 +4030,8 @@ namespace isc { namespace dhcp {
 #line 4031 "dhcp6_parser.cc"
     break;
 
-  case 733: // config_databases: "config-databases" $@127 ":" "[" database_list "]"
-#line 2614 "dhcp6_parser.yy"
+  case 735: // config_databases: "config-databases" $@127 ":" "[" database_list "]"
+#line 2616 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4039,8 +4039,8 @@ namespace isc { namespace dhcp {
 #line 4040 "dhcp6_parser.cc"
     break;
 
-  case 734: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2619 "dhcp6_parser.yy"
+  case 736: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 2621 "dhcp6_parser.yy"
                                                              {
     ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4049,8 +4049,8 @@ namespace isc { namespace dhcp {
 #line 4050 "dhcp6_parser.cc"
     break;
 
-  case 735: // $@128: %empty
-#line 2627 "dhcp6_parser.yy"
+  case 737: // $@128: %empty
+#line 2629 "dhcp6_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4061,8 +4061,8 @@ namespace isc { namespace dhcp {
 #line 4062 "dhcp6_parser.cc"
     break;
 
-  case 736: // loggers: "loggers" $@128 ":" "[" loggers_entries "]"
-#line 2633 "dhcp6_parser.yy"
+  case 738: // loggers: "loggers" $@128 ":" "[" loggers_entries "]"
+#line 2635 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4070,8 +4070,8 @@ namespace isc { namespace dhcp {
 #line 4071 "dhcp6_parser.cc"
     break;
 
-  case 739: // $@129: %empty
-#line 2645 "dhcp6_parser.yy"
+  case 741: // $@129: %empty
+#line 2647 "dhcp6_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -4080,16 +4080,16 @@ namespace isc { namespace dhcp {
 #line 4081 "dhcp6_parser.cc"
     break;
 
-  case 740: // logger_entry: "{" $@129 logger_params "}"
-#line 2649 "dhcp6_parser.yy"
+  case 742: // logger_entry: "{" $@129 logger_params "}"
+#line 2651 "dhcp6_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
 #line 4089 "dhcp6_parser.cc"
     break;
 
-  case 750: // debuglevel: "debuglevel" ":" "integer"
-#line 2666 "dhcp6_parser.yy"
+  case 752: // debuglevel: "debuglevel" ":" "integer"
+#line 2668 "dhcp6_parser.yy"
                                      {
     ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4098,8 +4098,8 @@ namespace isc { namespace dhcp {
 #line 4099 "dhcp6_parser.cc"
     break;
 
-  case 751: // $@130: %empty
-#line 2672 "dhcp6_parser.yy"
+  case 753: // $@130: %empty
+#line 2674 "dhcp6_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4107,8 +4107,8 @@ namespace isc { namespace dhcp {
 #line 4108 "dhcp6_parser.cc"
     break;
 
-  case 752: // severity: "severity" $@130 ":" "constant string"
-#line 2675 "dhcp6_parser.yy"
+  case 754: // severity: "severity" $@130 ":" "constant string"
+#line 2677 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -4117,8 +4117,8 @@ namespace isc { namespace dhcp {
 #line 4118 "dhcp6_parser.cc"
     break;
 
-  case 753: // $@131: %empty
-#line 2681 "dhcp6_parser.yy"
+  case 755: // $@131: %empty
+#line 2683 "dhcp6_parser.yy"
                                     {
     ctx.unique("output_options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4129,8 +4129,8 @@ namespace isc { namespace dhcp {
 #line 4130 "dhcp6_parser.cc"
     break;
 
-  case 754: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]"
-#line 2687 "dhcp6_parser.yy"
+  case 756: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]"
+#line 2689 "dhcp6_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4138,8 +4138,8 @@ namespace isc { namespace dhcp {
 #line 4139 "dhcp6_parser.cc"
     break;
 
-  case 757: // $@132: %empty
-#line 2696 "dhcp6_parser.yy"
+  case 759: // $@132: %empty
+#line 2698 "dhcp6_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -4148,16 +4148,16 @@ namespace isc { namespace dhcp {
 #line 4149 "dhcp6_parser.cc"
     break;
 
-  case 758: // output_entry: "{" $@132 output_params_list "}"
-#line 2700 "dhcp6_parser.yy"
+  case 760: // output_entry: "{" $@132 output_params_list "}"
+#line 2702 "dhcp6_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
 #line 4157 "dhcp6_parser.cc"
     break;
 
-  case 766: // $@133: %empty
-#line 2715 "dhcp6_parser.yy"
+  case 768: // $@133: %empty
+#line 2717 "dhcp6_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4165,8 +4165,8 @@ namespace isc { namespace dhcp {
 #line 4166 "dhcp6_parser.cc"
     break;
 
-  case 767: // output: "output" $@133 ":" "constant string"
-#line 2718 "dhcp6_parser.yy"
+  case 769: // output: "output" $@133 ":" "constant string"
+#line 2720 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -4175,8 +4175,8 @@ namespace isc { namespace dhcp {
 #line 4176 "dhcp6_parser.cc"
     break;
 
-  case 768: // flush: "flush" ":" "boolean"
-#line 2724 "dhcp6_parser.yy"
+  case 770: // flush: "flush" ":" "boolean"
+#line 2726 "dhcp6_parser.yy"
                            {
     ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4185,8 +4185,8 @@ namespace isc { namespace dhcp {
 #line 4186 "dhcp6_parser.cc"
     break;
 
-  case 769: // maxsize: "maxsize" ":" "integer"
-#line 2730 "dhcp6_parser.yy"
+  case 771: // maxsize: "maxsize" ":" "integer"
+#line 2732 "dhcp6_parser.yy"
                                {
     ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4195,8 +4195,8 @@ namespace isc { namespace dhcp {
 #line 4196 "dhcp6_parser.cc"
     break;
 
-  case 770: // maxver: "maxver" ":" "integer"
-#line 2736 "dhcp6_parser.yy"
+  case 772: // maxver: "maxver" ":" "integer"
+#line 2738 "dhcp6_parser.yy"
                              {
     ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -4205,8 +4205,8 @@ namespace isc { namespace dhcp {
 #line 4206 "dhcp6_parser.cc"
     break;
 
-  case 771: // $@134: %empty
-#line 2742 "dhcp6_parser.yy"
+  case 773: // $@134: %empty
+#line 2744 "dhcp6_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4214,8 +4214,8 @@ namespace isc { namespace dhcp {
 #line 4215 "dhcp6_parser.cc"
     break;
 
-  case 772: // pattern: "pattern" $@134 ":" "constant string"
-#line 2745 "dhcp6_parser.yy"
+  case 774: // pattern: "pattern" $@134 ":" "constant string"
+#line 2747 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
@@ -4574,139 +4574,139 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -941;
+  const short Dhcp6Parser::yypact_ninf_ = -942;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     503,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,    37,    34,    41,    74,    80,
-      88,   118,   124,   140,   141,   142,   189,   216,   217,   230,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,    34,  -157,
-     202,   115,    28,   513,   139,   187,   261,   -27,    65,    25,
-     -75,   636,    55,  -941,   245,   236,    53,   244,   263,  -941,
-     269,  -941,  -941,  -941,  -941,  -941,  -941,   265,   279,   280,
-     286,   288,   305,   306,   341,   359,   361,   365,   368,   375,
-     405,  -941,   406,   408,   409,   416,   418,  -941,  -941,  -941,
-     421,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,   422,  -941,  -941,
-    -941,  -941,  -941,  -941,   424,  -941,   425,  -941,    48,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,   428,  -941,   101,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   429,
-     430,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,   104,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   129,
-    -941,  -941,  -941,  -941,  -941,   431,  -941,   432,   434,  -941,
-    -941,  -941,  -941,  -941,  -941,   137,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,   283,   304,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,   336,  -941,  -941,   436,  -941,  -941,  -941,
-     444,  -941,  -941,   374,   446,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   448,   449,
-    -941,  -941,  -941,  -941,   442,   451,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   138,  -941,
-    -941,  -941,   452,  -941,  -941,   456,  -941,   464,   465,  -941,
-    -941,   468,   469,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-     197,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   470,   205,
-    -941,  -941,  -941,  -941,    34,    34,  -941,   258,   471,  -941,
-     472,   473,   474,   476,   481,   483,   291,   292,   293,   294,
-     297,   298,   299,   302,   308,   289,   311,   317,   309,   322,
-     500,   323,   324,   325,   326,   330,   501,   502,   519,   331,
-     520,   530,   531,   532,   533,   536,   537,   538,   539,   540,
-     541,   543,   544,   545,   546,   547,   355,   548,   550,   551,
-     552,   566,   567,   372,   569,  -941,   115,  -941,   577,   382,
-      28,  -941,   580,   581,   582,   583,   584,   391,   392,   586,
-     587,   590,   513,  -941,   592,   139,  -941,   594,   401,   605,
-     412,   413,   187,  -941,   608,   609,   610,   611,   613,   614,
-     615,  -941,   261,  -941,   617,   618,   427,   622,   623,   624,
-     438,  -941,    65,   625,   439,   440,  -941,    25,   626,   628,
-     -62,  -941,   441,   632,   638,   445,   640,   447,   450,   642,
-     643,   454,   455,   652,   653,   654,   655,   636,  -941,   656,
-     463,    55,  -941,  -941,  -941,   658,   657,   477,   659,   660,
-     661,   662,   665,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,   478,  -941,  -941,
-    -941,  -941,  -941,  -106,   479,   480,  -941,   666,   668,   673,
-     672,   484,   307,   675,   677,   678,   695,   694,   697,   698,
-     699,   719,   720,  -941,   729,   732,   733,   734,   549,   553,
-    -941,   737,  -941,   738,  -941,  -941,   739,   740,   554,   555,
-     556,  -941,  -941,   738,   557,   741,  -941,   560,  -941,   563,
-    -941,   568,  -941,  -941,  -941,   738,   738,   738,   570,   571,
-     572,   573,  -941,   574,   575,  -941,   576,   578,   579,  -941,
-    -941,   585,  -941,  -941,  -941,   589,   672,  -941,  -941,   603,
-     604,  -941,   606,  -941,  -941,   -54,   499,  -941,  -941,  -106,
-     607,   612,   616,  -941,   742,  -941,  -941,    34,   115,  -941,
-      55,    28,   287,   287,   756,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,   757,   759,   771,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,   772,   -76,    34,    72,   644,
-     773,   774,   776,    66,   167,   211,    62,   190,   636,  -941,
-    -941,   777,  -941,  -941,   795,   798,  -941,  -941,  -941,  -941,
-    -941,   -41,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,   756,  -941,   233,   277,   290,  -941,  -941,  -941,  -941,
-     802,   806,   807,   808,   810,  -941,   811,   812,  -941,  -941,
-    -941,   813,   814,   815,   816,  -941,   303,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   332,  -941,
-     817,   818,  -941,  -941,   819,   821,  -941,  -941,   820,   824,
-    -941,  -941,   822,   826,  -941,  -941,   825,   827,  -941,  -941,
-    -941,    82,  -941,  -941,  -941,   828,  -941,  -941,  -941,   195,
-    -941,  -941,  -941,  -941,   338,  -941,  -941,  -941,   196,  -941,
-    -941,   829,   833,  -941,  -941,   831,   837,  -941,   838,   839,
-     840,   841,   842,   843,   339,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,   844,   845,   846,  -941,  -941,  -941,
-    -941,   340,  -941,  -941,  -941,  -941,  -941,  -941,   847,   848,
-     849,  -941,   351,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,   352,  -941,  -941,  -941,   850,  -941,
-     851,  -941,  -941,  -941,   354,  -941,  -941,  -941,  -941,  -941,
-     358,  -941,   208,  -941,   635,  -941,   835,   853,  -941,  -941,
-     852,   854,  -941,  -941,  -941,   855,  -941,   856,  -941,  -941,
-    -941,   857,   861,   862,   863,   670,   669,   674,   671,   676,
-     866,   679,   680,   869,   871,   872,   681,   682,   683,   684,
-     287,  -941,  -941,   287,  -941,   756,   513,  -941,   757,    65,
-    -941,   759,    25,  -941,   771,   667,  -941,   772,   -76,  -941,
-    -941,    72,  -941,   877,   644,  -941,   159,   773,  -941,   261,
-    -941,   774,   -75,  -941,   776,   686,   688,   689,   692,   701,
-     702,    66,  -941,   888,   889,   704,   705,   711,   167,  -941,
-     714,   722,   725,   211,  -941,   891,   926,    62,  -941,   731,
-     930,   751,   935,   190,  -941,  -941,   193,   777,  -941,  -941,
-     934,   953,   139,  -941,   795,   187,  -941,   798,   955,  -941,
-    -941,   394,   663,   768,   778,  -941,  -941,  -941,  -941,  -941,
-     779,  -941,  -941,   781,   782,   786,  -941,  -941,  -941,  -941,
-    -941,   377,  -941,   378,  -941,   960,  -941,   963,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-     380,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   787,
-    -941,  -941,   983,  -941,  -941,  -941,  -941,  -941,   982,   989,
-    -941,  -941,  -941,  -941,  -941,   997,  -941,   386,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,   201,   823,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,   830,   832,  -941,  -941,
-     836,  -941,    34,  -941,  -941,  1005,  -941,  -941,  -941,  -941,
-    -941,   388,  -941,  -941,  -941,  -941,  -941,  -941,   858,   389,
-    -941,   390,  -941,   859,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-     667,  -941,  -941,  1009,   860,  -941,   159,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  1014,   834,
-    1017,   193,  -941,  -941,  -941,  -941,  -941,  -941,   864,  -941,
-    -941,  1019,  -941,   865,  -941,  -941,  1015,  -941,  -941,   257,
-    -941,   -24,  1015,  -941,  -941,  1021,  1024,  1026,  -941,   399,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  1031,   867,   868,
-     870,  1032,   -24,  -941,   873,  -941,  -941,  -941,   874,  -941,
-    -941,  -941
+     174,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,    49,    34,    64,    81,    87,
+     103,   118,   120,   155,   176,   177,   191,   232,   252,   286,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,    34,  -144,
+      57,   159,    43,   514,   183,   229,   237,   131,   178,    91,
+     -85,   636,   121,  -942,   111,   243,   298,   303,   309,  -942,
+     328,  -942,  -942,  -942,  -942,  -942,  -942,   341,   387,   410,
+     416,   417,   419,   423,   425,   426,   429,   431,   432,   433,
+     435,  -942,   437,   445,   446,   447,   449,  -942,  -942,  -942,
+     450,   451,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   452,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,   453,  -942,    60,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,   455,  -942,    61,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   457,
+     465,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   101,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+     108,  -942,  -942,  -942,  -942,  -942,   466,  -942,   469,   470,
+    -942,  -942,  -942,  -942,  -942,  -942,   184,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,   364,   392,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,   399,  -942,  -942,   471,  -942,  -942,
+    -942,   472,  -942,  -942,   473,   474,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   475,
+     481,  -942,  -942,  -942,  -942,   478,   485,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   188,
+    -942,  -942,  -942,   486,  -942,  -942,   487,  -942,   488,   489,
+    -942,  -942,   492,   493,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,   192,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   494,
+     194,  -942,  -942,  -942,  -942,    34,    34,  -942,   292,   497,
+    -942,   501,   502,   503,   504,   505,   507,   280,   319,   323,
+     324,   325,   326,   327,   329,   335,   333,   338,   339,   343,
+     344,   522,   345,   346,   348,   349,   350,   527,   541,   542,
+     351,   352,   549,   550,   551,   552,   553,   567,   568,   569,
+     570,   579,   580,   582,   583,   584,   585,   586,   393,   588,
+     589,   590,   592,   595,   596,   598,  -942,   159,  -942,   607,
+     412,    43,  -942,   609,   610,   611,   612,   614,   421,   420,
+     617,   619,   620,   514,  -942,   623,   183,  -942,   624,   434,
+     625,   439,   441,   229,  -942,   626,   627,   637,   638,   639,
+     640,   641,  -942,   237,  -942,   642,   643,   442,   644,   645,
+     651,   456,  -942,   178,   653,   458,   459,  -942,    91,   656,
+     657,   -77,  -942,   462,   659,   661,   468,   663,   476,   477,
+     664,   665,   479,   480,   666,   667,   672,   673,   636,  -942,
+     674,   483,   121,  -942,  -942,  -942,   678,   676,   491,   677,
+     682,   683,   684,   680,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   495,  -942,
+    -942,  -942,  -942,  -942,   -14,   496,   498,  -942,  -942,   689,
+     691,   692,   693,   506,    -2,   694,   696,   697,   699,   698,
+     722,   723,   733,   734,   735,  -942,   736,   737,   738,   739,
+     554,   555,   742,  -942,   743,  -942,  -942,   744,   745,   556,
+     557,   558,  -942,  -942,   743,   559,   752,  -942,   565,  -942,
+     571,  -942,   572,  -942,  -942,  -942,   743,   743,   743,   573,
+     574,   575,   576,  -942,   577,   578,  -942,   581,   587,   604,
+    -942,  -942,   605,  -942,  -942,  -942,   606,   693,  -942,  -942,
+     608,   613,  -942,   615,  -942,  -942,  -109,   531,  -942,  -942,
+     -14,   616,   618,   621,  -942,   760,  -942,  -942,    34,   159,
+    -942,   121,    43,   110,   110,   759,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,   770,   773,   774,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,   775,   -75,    34,   160,
+     566,   776,   778,   779,   195,   100,   -28,   196,   180,   636,
+    -942,  -942,   797,  -942,  -942,   799,   800,  -942,  -942,  -942,
+    -942,  -942,   -69,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,   759,  -942,   239,   281,   284,  -942,  -942,  -942,
+    -942,   763,   807,   810,   812,   813,  -942,   815,   816,  -942,
+    -942,  -942,   817,   818,   819,   820,  -942,   301,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   331,
+    -942,   821,   822,  -942,  -942,   823,   825,  -942,  -942,   824,
+     828,  -942,  -942,   826,   831,  -942,  -942,   829,   833,  -942,
+    -942,  -942,    75,  -942,  -942,  -942,   832,  -942,  -942,  -942,
+     169,  -942,  -942,  -942,  -942,   368,  -942,  -942,  -942,   182,
+    -942,  -942,   836,   834,  -942,  -942,   837,   841,  -942,   835,
+     842,   843,   844,   845,   846,   370,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,   847,   848,   849,  -942,  -942,
+    -942,  -942,   371,  -942,  -942,  -942,  -942,  -942,  -942,   850,
+     851,   852,  -942,   378,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,   379,  -942,  -942,  -942,   853,
+    -942,   854,  -942,  -942,  -942,   380,  -942,  -942,  -942,  -942,
+    -942,   381,  -942,   271,  -942,   629,  -942,   839,   856,  -942,
+    -942,   855,   857,  -942,  -942,  -942,   858,  -942,   861,  -942,
+    -942,  -942,   859,   860,   864,   865,   675,   662,   679,   670,
+     681,   867,   685,   686,   868,   870,   871,   687,   690,   700,
+     695,   110,  -942,  -942,   110,  -942,   759,   514,  -942,   770,
+     178,  -942,   773,    91,  -942,   774,   668,  -942,   775,   -75,
+    -942,  -942,   160,  -942,   872,   566,  -942,   -24,   776,  -942,
+     237,  -942,   778,   -85,  -942,   779,   703,   705,   706,   712,
+     717,   726,   195,  -942,   874,   876,   762,   768,   771,   100,
+    -942,   721,   781,   782,   -28,  -942,   877,   878,   196,  -942,
+     731,   883,   786,   887,   180,  -942,  -942,   104,   797,  -942,
+    -942,   888,   893,   183,  -942,   799,   229,  -942,   800,   928,
+    -942,  -942,   136,   753,   780,   788,  -942,  -942,  -942,  -942,
+    -942,   791,  -942,  -942,   794,   796,   809,  -942,  -942,  -942,
+    -942,  -942,   382,  -942,   389,  -942,   927,  -942,   932,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,   391,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,   840,  -942,  -942,   937,  -942,  -942,  -942,  -942,  -942,
+     949,   969,  -942,  -942,  -942,  -942,  -942,   968,  -942,   395,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   285,   862,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   863,   866,
+    -942,  -942,   869,  -942,    34,  -942,  -942,  1010,  -942,  -942,
+    -942,  -942,  -942,   401,  -942,  -942,  -942,  -942,  -942,  -942,
+     873,   402,  -942,   403,  -942,   875,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,   668,  -942,  -942,  1017,   830,  -942,   -24,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    1018,   827,  1019,   104,  -942,  -942,  -942,  -942,  -942,  -942,
+     879,  -942,  -942,  1021,  -942,   881,  -942,  -942,  1022,  -942,
+    -942,   332,  -942,   167,  1022,  -942,  -942,  1024,  1027,  1029,
+    -942,   405,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  1030,
+     838,   884,   885,  1032,   167,  -942,   882,  -942,  -942,  -942,
+     889,  -942,  -942,  -942
   };
 
   const short
@@ -4717,175 +4717,175 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
       35,    36,    58,     5,    62,     7,   164,     9,   326,    11,
-     508,    13,   533,    15,   563,    17,   433,    19,   441,    21,
-     478,    23,   291,    25,   676,    27,   726,    29,    47,    41,
-       0,     0,     0,     0,     0,     0,   565,     0,   443,   480,
+     510,    13,   535,    15,   565,    17,   435,    19,   443,    21,
+     480,    23,   291,    25,   678,    27,   728,    29,    47,    41,
+       0,     0,     0,     0,     0,     0,   567,     0,   445,   482,
        0,     0,     0,    49,     0,    48,     0,     0,    42,    60,
-       0,   122,   724,   162,   176,   178,   180,     0,     0,     0,
+       0,   122,   726,   162,   176,   178,   180,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   159,     0,     0,     0,     0,     0,   141,   148,   150,
-       0,   318,   431,   470,   521,   523,   378,   386,   251,   268,
-     259,   244,   600,   555,   283,   302,   621,     0,   270,   645,
-     658,   674,   152,   154,     0,   735,     0,   121,     0,    64,
+       0,   160,     0,     0,     0,     0,     0,   141,   148,   150,
+       0,     0,   318,   433,   472,   523,   525,   379,   387,   251,
+     268,   259,   244,   602,   557,   283,   302,   623,     0,   270,
+     647,   660,   676,   153,   155,   737,     0,   121,     0,    64,
       66,    67,    68,    69,    70,    71,    72,    73,    74,   102,
      103,   104,   105,   106,    75,   110,   111,   112,   113,   114,
-     115,   108,   109,   116,   117,   118,   100,   120,    78,    79,
-      80,    81,    97,    82,    84,    83,   119,    88,    89,    76,
+     115,   116,   108,   109,   117,   118,   119,   100,    78,    79,
+      80,    81,    97,    82,    84,    83,   120,    88,    89,    76,
      101,    77,    86,    87,    95,    96,    98,    85,    90,    91,
       92,    93,    94,    99,   107,   173,     0,   172,     0,   166,
-     168,   169,   170,   171,   500,   525,   368,   370,   372,     0,
-       0,   376,   374,   594,   367,   330,   331,   332,   333,   334,
+     168,   169,   170,   171,   502,   527,   369,   371,   373,     0,
+       0,   377,   375,   596,   368,   330,   331,   332,   333,   334,
      335,   336,   337,   353,   354,   355,   356,   357,   360,   361,
-     362,   363,   364,   365,   358,   359,   366,     0,   328,   341,
-     342,   343,   346,   347,   349,   344,   345,   338,   339,   351,
-     352,   340,   348,   350,   519,   518,   514,   515,   513,     0,
-     510,   512,   516,   517,   548,     0,   551,     0,     0,   547,
-     541,   542,   540,   545,   546,     0,   535,   537,   538,   543,
-     544,   539,   592,   580,   582,   584,   586,   588,   590,   579,
-     576,   577,   578,     0,   566,   567,   571,   572,   569,   573,
-     574,   575,   570,     0,   460,   224,     0,   464,   462,   467,
-       0,   456,   457,     0,   444,   445,   447,   459,   448,   449,
-     450,   466,   451,   452,   453,   454,   455,   494,     0,     0,
-     492,   493,   496,   497,     0,   481,   482,   484,   485,   486,
-     487,   488,   489,   490,   491,   298,   300,   295,     0,   293,
-     296,   297,     0,   699,   701,     0,   704,     0,     0,   708,
-     712,     0,     0,   716,   718,   720,   722,   697,   695,   696,
-       0,   678,   680,   692,   681,   682,   683,   684,   685,   686,
-     687,   688,   689,   690,   691,   693,   694,   732,     0,     0,
-     728,   730,   731,    46,     0,     0,    39,     0,     0,    59,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     362,   363,   364,   365,   366,   358,   359,   367,     0,   328,
+     341,   342,   343,   346,   347,   349,   344,   345,   338,   339,
+     351,   352,   340,   348,   350,   521,   520,   516,   517,   515,
+       0,   512,   514,   518,   519,   550,     0,   553,     0,     0,
+     549,   543,   544,   542,   547,   548,     0,   537,   539,   540,
+     545,   546,   541,   594,   582,   584,   586,   588,   590,   592,
+     581,   578,   579,   580,     0,   568,   569,   573,   574,   571,
+     575,   576,   577,   572,     0,   462,   224,     0,   466,   464,
+     469,     0,   458,   459,     0,   446,   447,   449,   461,   450,
+     451,   452,   468,   453,   454,   455,   456,   457,   496,     0,
+       0,   494,   495,   498,   499,     0,   483,   484,   486,   487,
+     488,   489,   490,   491,   492,   493,   298,   300,   295,     0,
+     293,   296,   297,     0,   701,   703,     0,   706,     0,     0,
+     710,   714,     0,     0,   718,   720,   722,   724,   699,   697,
+     698,     0,   680,   682,   694,   683,   684,   685,   686,   687,
+     688,   689,   690,   691,   692,   693,   695,   696,   734,     0,
+       0,   730,   732,   733,    46,     0,     0,    39,     0,     0,
+      59,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    57,     0,    63,     0,     0,
-       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   327,     0,     0,   509,     0,     0,     0,
-       0,     0,     0,   534,     0,     0,     0,     0,     0,     0,
-       0,   564,     0,   434,     0,     0,     0,     0,     0,     0,
-       0,   442,     0,     0,     0,     0,   479,     0,     0,     0,
-       0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   677,     0,
-       0,     0,   727,    50,    43,     0,     0,     0,     0,     0,
-       0,     0,     0,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,     0,   157,   158,
-     138,   139,   140,     0,     0,     0,   156,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    57,     0,    63,     0,
+       0,     0,   165,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   327,     0,     0,   511,     0,     0,
+       0,     0,     0,     0,   536,     0,     0,     0,     0,     0,
+       0,     0,   566,     0,   436,     0,     0,     0,     0,     0,
+       0,     0,   444,     0,     0,     0,     0,   481,     0,     0,
+       0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   679,
+       0,     0,     0,   729,    50,    43,     0,     0,     0,     0,
+       0,     0,     0,     0,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,     0,   158,
+     159,   138,   139,   140,     0,     0,     0,   152,   157,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   644,     0,     0,     0,     0,     0,     0,
-     161,     0,    65,     0,   175,   167,     0,     0,     0,     0,
-       0,   384,   385,     0,     0,     0,   329,     0,   511,     0,
-     550,     0,   553,   554,   536,     0,     0,     0,     0,     0,
-       0,     0,   568,     0,     0,   458,     0,     0,     0,   469,
-     446,     0,   498,   499,   483,     0,     0,   294,   698,     0,
-       0,   703,     0,   706,   707,     0,     0,   714,   715,     0,
-       0,     0,     0,   679,     0,   734,   729,     0,     0,   123,
-       0,     0,     0,     0,   182,   160,   143,   144,   145,   146,
-     147,   142,   149,   151,   320,   435,   472,    40,   522,   524,
-     380,   381,   382,   383,   379,   388,     0,    47,     0,     0,
-       0,   557,   285,     0,     0,     0,     0,     0,     0,   153,
-     155,     0,    51,   174,   502,   527,   369,   371,   373,   377,
-     375,     0,   520,   549,   552,   593,   581,   583,   585,   587,
-     589,   591,   461,   225,   465,   463,   468,   495,   299,   301,
-     700,   702,   705,   710,   711,   709,   713,   717,   719,   721,
-     723,   182,    44,     0,     0,     0,   211,   217,   219,   221,
-       0,     0,     0,     0,     0,   235,     0,     0,   238,   240,
-     242,     0,     0,     0,     0,   210,     0,   188,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   202,   209,
-     203,   204,   205,   200,   201,   206,   207,   208,     0,   186,
-       0,   183,   184,   324,     0,   321,   322,   439,     0,   436,
-     437,   476,     0,   473,   474,   392,     0,   389,   390,   257,
-     258,     0,   253,   255,   256,     0,   266,   267,   263,     0,
-     261,   264,   265,   249,     0,   246,   248,   604,     0,   602,
-     561,     0,   558,   559,   289,     0,   286,   287,     0,     0,
-       0,     0,     0,     0,     0,   304,   306,   307,   308,   309,
-     310,   311,   634,   640,     0,     0,     0,   633,   630,   631,
-     632,     0,   623,   625,   628,   626,   627,   629,     0,     0,
-       0,   279,     0,   272,   274,   275,   276,   277,   278,   654,
-     656,   653,   651,   652,     0,   647,   649,   650,     0,   669,
-       0,   672,   665,   666,     0,   660,   662,   663,   664,   667,
-       0,   739,     0,   737,    53,   506,     0,   503,   504,   531,
-       0,   528,   529,   598,   597,     0,   596,     0,    61,   725,
-     163,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   646,     0,     0,     0,     0,
+       0,     0,     0,    65,     0,   175,   167,     0,     0,     0,
+       0,     0,   385,   386,     0,     0,     0,   329,     0,   513,
+       0,   552,     0,   555,   556,   538,     0,     0,     0,     0,
+       0,     0,     0,   570,     0,     0,   460,     0,     0,     0,
+     471,   448,     0,   500,   501,   485,     0,     0,   294,   700,
+       0,     0,   705,     0,   708,   709,     0,     0,   716,   717,
+       0,     0,     0,     0,   681,     0,   736,   731,     0,     0,
+     123,     0,     0,     0,     0,   182,   161,   143,   144,   145,
+     146,   147,   142,   149,   151,   320,   437,   474,    40,   524,
+     526,   381,   382,   383,   384,   380,   389,     0,    47,     0,
+       0,     0,   559,   285,     0,     0,     0,     0,     0,     0,
+     154,   156,     0,    51,   174,   504,   529,   370,   372,   374,
+     378,   376,     0,   522,   551,   554,   595,   583,   585,   587,
+     589,   591,   593,   463,   225,   467,   465,   470,   497,   299,
+     301,   702,   704,   707,   712,   713,   711,   715,   719,   721,
+     723,   725,   182,    44,     0,     0,     0,   211,   217,   219,
+     221,     0,     0,     0,     0,     0,   235,     0,     0,   238,
+     240,   242,     0,     0,     0,     0,   210,     0,   188,   190,
+     191,   192,   193,   194,   195,   196,   197,   198,   199,   202,
+     209,   203,   204,   205,   200,   201,   206,   207,   208,     0,
+     186,     0,   183,   184,   324,     0,   321,   322,   441,     0,
+     438,   439,   478,     0,   475,   476,   393,     0,   390,   391,
+     257,   258,     0,   253,   255,   256,     0,   266,   267,   263,
+       0,   261,   264,   265,   249,     0,   246,   248,   606,     0,
+     604,   563,     0,   560,   561,   289,     0,   286,   287,     0,
+       0,     0,     0,     0,     0,     0,   304,   306,   307,   308,
+     309,   310,   311,   636,   642,     0,     0,     0,   635,   632,
+     633,   634,     0,   625,   627,   630,   628,   629,   631,     0,
+       0,     0,   279,     0,   272,   274,   275,   276,   277,   278,
+     656,   658,   655,   653,   654,     0,   649,   651,   652,     0,
+     671,     0,   674,   667,   668,     0,   662,   664,   665,   666,
+     669,     0,   741,     0,   739,    53,   508,     0,   505,   506,
+     533,     0,   530,   531,   600,   599,     0,   598,     0,    61,
+     727,   163,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   177,   179,     0,   181,     0,     0,   319,     0,   443,
-     432,     0,   480,   471,     0,     0,   387,     0,     0,   252,
-     269,     0,   260,     0,     0,   245,   606,     0,   601,   565,
-     556,     0,     0,   284,     0,     0,     0,     0,     0,     0,
-       0,     0,   303,     0,     0,     0,     0,     0,     0,   622,
-       0,     0,     0,     0,   271,     0,     0,     0,   646,     0,
-       0,     0,     0,     0,   659,   675,     0,     0,   736,    55,
-       0,    54,     0,   501,     0,     0,   526,     0,     0,   595,
-     733,     0,     0,     0,     0,   223,   226,   227,   228,   229,
-       0,   237,   230,     0,     0,     0,   232,   233,   234,   231,
-     189,     0,   185,     0,   323,     0,   438,     0,   475,   430,
-     407,   408,   409,   411,   412,   413,   400,   401,   416,   417,
-     418,   419,   420,   423,   424,   425,   426,   427,   428,   421,
-     422,   429,   396,   397,   398,   399,   405,   406,   404,   410,
-       0,   394,   402,   414,   415,   403,   391,   254,   262,     0,
-     247,   618,     0,   616,   617,   613,   614,   615,     0,   607,
-     608,   610,   611,   612,   603,     0,   560,     0,   288,   312,
-     313,   314,   315,   316,   317,   305,     0,     0,   639,   642,
-     643,   624,   280,   281,   282,   273,     0,     0,   648,   668,
-       0,   671,     0,   661,   753,     0,   751,   749,   743,   747,
-     748,     0,   741,   745,   746,   744,   738,    52,     0,     0,
-     505,     0,   530,     0,   213,   214,   215,   216,   212,   218,
-     220,   222,   236,   239,   241,   243,   187,   325,   440,   477,
-       0,   393,   250,     0,     0,   605,     0,   562,   290,   636,
-     637,   638,   635,   641,   655,   657,   670,   673,     0,     0,
-       0,     0,   740,    56,   507,   532,   599,   395,     0,   620,
-     609,     0,   750,     0,   742,   619,     0,   752,   757,     0,
-     755,     0,     0,   754,   766,     0,     0,     0,   771,     0,
-     759,   761,   762,   763,   764,   765,   756,     0,     0,     0,
-       0,     0,     0,   758,     0,   768,   769,   770,     0,   760,
-     767,   772
+       0,     0,   177,   179,     0,   181,     0,     0,   319,     0,
+     445,   434,     0,   482,   473,     0,     0,   388,     0,     0,
+     252,   269,     0,   260,     0,     0,   245,   608,     0,   603,
+     567,   558,     0,     0,   284,     0,     0,     0,     0,     0,
+       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
+     624,     0,     0,     0,     0,   271,     0,     0,     0,   648,
+       0,     0,     0,     0,     0,   661,   677,     0,     0,   738,
+      55,     0,    54,     0,   503,     0,     0,   528,     0,     0,
+     597,   735,     0,     0,     0,     0,   223,   226,   227,   228,
+     229,     0,   237,   230,     0,     0,     0,   232,   233,   234,
+     231,   189,     0,   185,     0,   323,     0,   440,     0,   477,
+     432,   408,   409,   410,   412,   413,   414,   401,   402,   417,
+     418,   419,   420,   421,   424,   425,   426,   427,   428,   429,
+     430,   422,   423,   431,   397,   398,   399,   400,   406,   407,
+     405,   411,     0,   395,   403,   415,   416,   404,   392,   254,
+     262,     0,   247,   620,     0,   618,   619,   615,   616,   617,
+       0,   609,   610,   612,   613,   614,   605,     0,   562,     0,
+     288,   312,   313,   314,   315,   316,   317,   305,     0,     0,
+     641,   644,   645,   626,   280,   281,   282,   273,     0,     0,
+     650,   670,     0,   673,     0,   663,   755,     0,   753,   751,
+     745,   749,   750,     0,   743,   747,   748,   746,   740,    52,
+       0,     0,   507,     0,   532,     0,   213,   214,   215,   216,
+     212,   218,   220,   222,   236,   239,   241,   243,   187,   325,
+     442,   479,     0,   394,   250,     0,     0,   607,     0,   564,
+     290,   638,   639,   640,   637,   643,   657,   659,   672,   675,
+       0,     0,     0,     0,   742,    56,   509,   534,   601,   396,
+       0,   622,   611,     0,   752,     0,   744,   621,     0,   754,
+     759,     0,   757,     0,     0,   756,   768,     0,     0,     0,
+     773,     0,   761,   763,   764,   765,   766,   767,   758,     0,
+       0,     0,     0,     0,     0,   760,     0,   770,   771,   772,
+       0,   762,   769,   774
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,    -4,  -941,  -531,  -941,
-     176,  -941,  -941,  -941,  -941,   162,  -941,  -560,  -941,  -941,
-    -941,   -71,  -941,  -941,  -941,  -941,  -941,  -941,   369,   588,
-    -941,  -941,   -59,   -43,   -40,   -39,   -37,   -23,   -21,   -19,
-     -18,   -15,    -3,    -1,    16,  -941,    29,    30,    32,    33,
-    -941,   379,    35,  -941,    45,  -941,    46,  -941,    47,  -941,
-      50,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-     370,   593,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,   295,  -941,    85,  -941,  -657,    93,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,   -47,  -941,  -693,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-      70,  -941,  -941,  -941,  -941,  -941,    77,  -676,  -941,  -941,
-    -941,  -941,    76,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-      49,  -941,  -941,  -941,  -941,  -941,  -941,  -941,    64,  -941,
-    -941,  -941,    67,   558,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,    59,  -941,  -941,  -941,  -941,  -941,  -941,  -940,  -941,
-    -941,  -941,    95,  -941,  -941,  -941,   102,   591,  -941,  -941,
-    -938,  -941,  -937,  -941,     9,  -941,    54,  -941,    51,  -941,
-    -941,  -941,  -936,  -941,  -941,  -941,  -941,    84,  -941,  -941,
-    -123,   987,  -941,  -941,  -941,  -941,  -941,    98,  -941,  -941,
-    -941,   106,  -941,   562,  -941,   -73,  -941,  -941,  -941,  -941,
-    -941,   -66,  -941,  -941,  -941,  -941,  -941,    17,  -941,  -941,
-    -941,   105,  -941,  -941,  -941,   110,  -941,   564,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,    56,
-    -941,  -941,  -941,    60,   598,  -941,  -941,   -55,  -941,     1,
-    -941,  -941,  -941,  -941,  -941,    57,  -941,  -941,  -941,    52,
-     595,  -941,  -941,  -941,  -941,  -941,  -941,  -941,   -58,  -941,
-    -941,  -941,    94,  -941,  -941,  -941,   107,  -941,   596,   364,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -930,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,   111,  -941,  -941,  -941,   -97,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,    92,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,    86,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,    78,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,   384,   559,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941,  -941,   433,   561,  -941,  -941,
-    -941,  -941,  -941,  -941,    83,  -941,  -941,  -107,  -941,  -941,
-    -941,  -941,  -941,  -941,  -127,  -941,  -941,  -145,  -941,  -941,
-    -941,  -941,  -941,  -941,  -941
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,    -4,  -942,  -540,  -942,
+     394,  -942,  -942,  -942,  -942,   347,  -942,  -527,  -942,  -942,
+    -942,   -71,  -942,  -942,  -942,  -942,  -942,  -942,   373,   591,
+    -942,  -942,   -59,   -43,   -40,   -39,   -37,   -23,   -21,   -19,
+     -18,   -15,    -3,    -1,    16,  -942,    29,    30,    32,    33,
+    -942,   384,    35,  -942,    45,  -942,    46,    47,  -942,    50,
+    -942,    51,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+     367,   593,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,   294,  -942,    92,  -942,  -658,    96,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,   -47,  -942,  -694,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+      74,  -942,  -942,  -942,  -942,  -942,    82,  -677,  -942,  -942,
+    -942,  -942,    78,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+      48,  -942,  -942,  -942,  -942,  -942,  -942,  -942,    68,  -942,
+    -942,  -942,    71,   534,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,    65,  -942,  -942,  -942,  -942,  -942,  -942,  -941,  -942,
+    -942,  -942,    97,  -942,  -942,  -942,   105,   601,  -942,  -942,
+    -939,  -942,  -938,  -942,     9,  -942,    54,  -942,    53,  -942,
+    -942,  -942,  -937,  -942,  -942,  -942,  -942,    93,  -942,  -942,
+    -117,   990,  -942,  -942,  -942,  -942,  -942,   106,  -942,  -942,
+    -942,   109,  -942,   560,  -942,   -73,  -942,  -942,  -942,  -942,
+    -942,   -66,  -942,  -942,  -942,  -942,  -942,    17,  -942,  -942,
+    -942,   116,  -942,  -942,  -942,   112,  -942,   594,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,    62,
+    -942,  -942,  -942,    66,   599,  -942,  -942,   -55,  -942,     1,
+    -942,  -942,  -942,  -942,  -942,    63,  -942,  -942,  -942,    67,
+     597,  -942,  -942,  -942,  -942,  -942,  -942,  -942,   -58,  -942,
+    -942,  -942,    89,  -942,  -942,  -942,    94,  -942,   600,   366,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -931,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,   114,  -942,  -942,  -942,   -94,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,    98,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,    88,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,    84,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,   386,   561,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942,  -942,   430,   562,  -942,  -942,
+    -942,  -942,  -942,  -942,    90,  -942,  -942,  -103,  -942,  -942,
+    -942,  -942,  -942,  -942,  -122,  -942,  -942,  -139,  -942,  -942,
+    -942,  -942,  -942,  -942,  -942
   };
 
   const short
@@ -4893,305 +4893,305 @@ namespace isc { namespace dhcp {
   {
       -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    83,    39,    40,    69,
-     688,    87,    88,    41,    68,    84,    85,   713,   914,  1020,
-    1021,   775,    43,    70,    90,   408,    45,    71,   148,   149,
-     150,   410,   151,   152,   153,   154,   155,   156,   157,   158,
+     689,    87,    88,    41,    68,    84,    85,   714,   915,  1021,
+    1022,   776,    43,    70,    90,   409,    45,    71,   148,   149,
+     150,   411,   151,   152,   153,   154,   155,   156,   157,   158,
      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     436,   681,   169,   437,   170,   438,   171,   461,   172,   462,
-     173,   174,   175,   176,   430,   177,   178,   412,    47,    72,
-     208,   209,   210,   468,   211,   179,   413,   180,   414,   181,
-     415,   800,   801,   802,   953,   776,   777,   778,   931,  1168,
-     779,   932,   780,   933,   781,   934,   782,   783,   505,   784,
-     785,   786,   787,   788,   789,   790,   791,   792,   793,   940,
-     794,   795,   943,   796,   944,   797,   945,   182,   450,   834,
-     835,   836,   973,   183,   447,   821,   822,   823,   824,   184,
-     449,   829,   830,   831,   832,   185,   448,   186,   457,   882,
-     883,   884,   885,   886,   187,   453,   845,   846,   847,   982,
-      63,    80,   358,   359,   360,   518,   361,   519,   188,   454,
-     854,   855,   856,   857,   858,   859,   860,   861,   189,   440,
-     804,   805,   806,   956,    49,    73,   247,   248,   249,   474,
-     250,   475,   251,   476,   252,   480,   253,   479,   190,   445,
-     694,   255,   256,   191,   446,   816,   817,   818,   965,  1090,
-    1091,   192,   441,    57,    77,   808,   809,   810,   959,    59,
-      78,   323,   324,   325,   326,   327,   328,   329,   504,   330,
-     508,   331,   507,   332,   333,   509,   334,   193,   442,   812,
-     813,   814,   962,    61,    79,   344,   345,   346,   347,   348,
-     513,   349,   350,   351,   352,   258,   472,   916,   917,   918,
-    1022,    51,    74,   269,   270,   271,   484,   194,   443,   195,
-     444,   261,   473,   920,   921,   922,  1025,    53,    75,   285,
-     286,   287,   487,   288,   289,   489,   290,   291,   196,   452,
-     841,   842,   843,   979,    55,    76,   303,   304,   305,   306,
-     495,   307,   496,   308,   497,   309,   498,   310,   499,   311,
-     500,   312,   494,   263,   481,   925,   926,  1028,   197,   451,
-     838,   839,   976,  1108,  1109,  1110,  1111,  1112,  1183,  1113,
-     198,   455,   871,   872,   873,   993,  1192,   874,   875,   994,
-     876,   877,   199,   200,   458,   894,   895,   896,  1005,   897,
-    1006,   201,   459,   904,   905,   906,   907,  1010,   908,   909,
-    1012,   202,   460,    65,    81,   380,   381,   382,   383,   523,
-     384,   524,   385,   386,   526,   387,   388,   389,   529,   745,
-     390,   530,   391,   392,   393,   533,   394,   534,   395,   535,
-     396,   536,   203,   411,    67,    82,   399,   400,   401,   539,
-     402,   204,   464,   912,   913,  1016,  1151,  1152,  1153,  1154,
-    1200,  1155,  1198,  1219,  1220,  1221,  1229,  1230,  1231,  1237,
-    1232,  1233,  1234,  1235,  1241
+     437,   682,   169,   438,   170,   439,   171,   172,   463,   173,
+     464,   174,   175,   176,   177,   431,   178,   413,    47,    72,
+     208,   209,   210,   469,   211,   179,   414,   180,   415,   181,
+     416,   801,   802,   803,   954,   777,   778,   779,   932,  1170,
+     780,   933,   781,   934,   782,   935,   783,   784,   506,   785,
+     786,   787,   788,   789,   790,   791,   792,   793,   794,   941,
+     795,   796,   944,   797,   945,   798,   946,   182,   452,   835,
+     836,   837,   974,   183,   449,   822,   823,   824,   825,   184,
+     451,   830,   831,   832,   833,   185,   450,   186,   459,   883,
+     884,   885,   886,   887,   187,   455,   846,   847,   848,   983,
+      63,    80,   359,   360,   361,   519,   362,   520,   188,   456,
+     855,   856,   857,   858,   859,   860,   861,   862,   189,   442,
+     805,   806,   807,   957,    49,    73,   248,   249,   250,   475,
+     251,   476,   252,   477,   253,   481,   254,   480,   190,   447,
+     695,   256,   257,   191,   448,   817,   818,   819,   966,  1092,
+    1093,   192,   443,    57,    77,   809,   810,   811,   960,    59,
+      78,   324,   325,   326,   327,   328,   329,   330,   505,   331,
+     509,   332,   508,   333,   334,   510,   335,   193,   444,   813,
+     814,   815,   963,    61,    79,   345,   346,   347,   348,   349,
+     514,   350,   351,   352,   353,   259,   473,   917,   918,   919,
+    1023,    51,    74,   270,   271,   272,   485,   194,   445,   195,
+     446,   262,   474,   921,   922,   923,  1026,    53,    75,   286,
+     287,   288,   488,   289,   290,   490,   291,   292,   196,   454,
+     842,   843,   844,   980,    55,    76,   304,   305,   306,   307,
+     496,   308,   497,   309,   498,   310,   499,   311,   500,   312,
+     501,   313,   495,   264,   482,   926,   927,  1029,   197,   453,
+     839,   840,   977,  1110,  1111,  1112,  1113,  1114,  1185,  1115,
+     198,   457,   872,   873,   874,   994,  1194,   875,   876,   995,
+     877,   878,   199,   200,   460,   895,   896,   897,  1006,   898,
+    1007,   201,   461,   905,   906,   907,   908,  1011,   909,   910,
+    1013,   202,   462,    65,    81,   381,   382,   383,   384,   524,
+     385,   525,   386,   387,   527,   388,   389,   390,   530,   746,
+     391,   531,   392,   393,   394,   534,   395,   535,   396,   536,
+     397,   537,   203,   412,    67,    82,   400,   401,   402,   540,
+     403,   204,   465,   913,   914,  1017,  1153,  1154,  1155,  1156,
+    1202,  1157,  1200,  1221,  1222,  1223,  1231,  1232,  1233,  1239,
+    1234,  1235,  1236,  1237,  1243
   };
 
   const short
   Dhcp6Parser::yytable_[] =
   {
-     147,   207,   224,   265,   279,   299,   342,   321,   340,   357,
-     377,   868,    38,   343,   225,   262,   798,   212,   259,   272,
-     283,   301,   828,   335,   353,  1083,   378,  1084,  1085,  1089,
-     226,   322,   341,   227,   228,  1095,   229,    30,   819,    31,
-      86,    32,   122,    33,   205,   206,   355,   356,    42,   687,
-     230,   466,   231,   719,   232,   233,   467,   405,   234,   355,
-     356,   676,   677,   678,   679,   725,   726,   727,   397,   398,
-     235,   293,   236,   213,   260,   273,   284,   302,   923,   336,
-     354,    44,   379,   266,   280,   968,   314,    46,   969,   237,
-     257,   268,   282,   300,   680,    48,   315,   337,   316,   317,
-     338,   339,   238,   239,   470,   240,   241,   482,   242,   471,
-     743,   744,   483,   124,   125,   687,   124,   125,   243,   244,
-     245,   820,   146,   246,   254,    50,    91,    92,   267,   281,
-      93,    52,   485,    94,    95,    96,   315,   486,   316,   317,
-     492,   520,   318,   319,   320,   493,   521,    54,    56,    58,
-     124,   125,  1224,   124,   125,  1225,  1226,  1227,  1228,    97,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   819,   826,   862,   827,
-     848,   849,   850,   851,   852,   853,    60,   761,   971,   977,
-     537,   972,   978,   124,   125,   538,   889,   890,   541,   123,
-     126,  1017,    89,   542,  1018,   127,   128,   129,   130,   131,
-     264,   132,   146,    62,    64,   146,   133,   124,   125,   123,
-     315,    34,    35,    36,    37,   134,   466,    66,   135,   404,
-    1083,   928,  1084,  1085,  1089,   136,   221,   124,   125,   222,
-    1095,   403,   406,   137,   138,   124,   125,   123,   139,   146,
-    1222,   140,   146,  1223,   315,   141,   407,  1101,  1102,   416,
-     274,   275,   276,   277,   278,   124,   125,   409,   124,   125,
-     541,   124,   125,   417,   418,   929,   142,   143,   144,   145,
-     419,   501,   420,   470,   221,   828,  1051,   222,   930,   124,
-     125,   863,   864,   865,   866,   868,   950,   502,   756,   421,
-     422,   951,   146,   757,   758,   759,   760,   761,   762,   763,
-     764,   765,   766,   767,   768,   769,   770,   771,   772,   773,
-     774,   123,  1189,  1190,  1191,   950,   146,   898,   899,   900,
-     952,   974,   991,   998,   503,   423,   975,   992,   999,   124,
-     125,   878,   879,   880,  1003,  1007,   146,  1013,   315,  1004,
-    1008,   537,  1014,   424,   146,   425,  1015,   292,  1144,   426,
-    1145,  1146,   427,   293,   294,   295,   296,   297,   298,   428,
-     950,   482,   511,  1180,   146,  1176,  1177,   901,  1181,   520,
-     146,  1201,   485,   492,  1188,   147,  1202,  1204,  1205,   207,
-     543,   544,  1242,   690,   691,   692,   693,  1243,   146,   429,
-     431,   224,   432,   433,   265,   212,  1164,  1165,  1166,  1167,
-     434,   279,   435,   225,   262,   439,   456,   259,   463,   465,
-     272,   299,   469,   477,   478,   488,   490,   283,   491,   226,
-     506,   321,   227,   228,   342,   229,   340,   301,   510,   512,
-     516,   343,   514,   515,   517,   545,   522,   335,   146,   230,
-     525,   231,   353,   232,   233,   322,   377,   234,   527,   528,
-     341,   213,   531,   532,   540,   546,   547,   548,   549,   235,
-     550,   236,   378,   260,   146,   551,   273,   552,   562,   553,
-     554,   555,   556,   284,   266,   557,   558,   559,   237,   257,
-     560,   280,   268,   302,   567,   573,   574,   565,   561,   282,
-     563,   238,   239,   336,   240,   241,   564,   242,   354,   300,
-     566,   568,   569,   575,   577,   570,   571,   243,   244,   245,
-     572,   576,   246,   254,   578,   579,   580,   581,   379,   267,
-     582,   583,   584,   585,   586,   587,   281,   588,   589,   590,
-     591,   592,   594,   593,   595,   596,   597,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     598,   599,   600,   601,   114,   115,   116,   117,   118,   119,
-     120,   603,   604,   123,   606,   607,   608,   609,   610,   611,
-     613,   614,   612,   214,   615,   215,   617,   147,   619,   620,
-     207,   124,   125,   216,   217,   218,   219,   220,   126,   621,
-     622,   623,   625,   626,   627,   628,   212,   629,   630,   631,
-     221,   633,   634,   222,   133,   635,   636,   637,   638,   641,
-     645,   223,   646,   867,   881,   891,   649,   377,   639,   642,
-     643,   648,   650,   651,   652,   653,   655,   656,   654,   869,
-     887,   892,   902,   378,   657,   658,   659,   660,   661,   662,
-     664,   665,   667,   752,   668,   746,   670,   671,   672,   673,
-     674,   684,   213,   685,   669,   675,   682,   683,   686,    32,
-     695,   689,   696,   697,   142,   143,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-     698,   699,   700,   701,   702,   870,   888,   893,   903,   379,
-     146,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   124,   125,   703,   704,   114,   115,
-     116,   117,   118,   119,   120,   121,   705,   123,   315,   706,
-     707,   708,   711,   712,   714,   715,   709,   751,   721,   833,
-     710,   716,   717,   718,   720,   124,   125,   722,   217,   218,
-     723,   220,   126,   799,   803,   724,   807,   728,   729,   730,
-     731,   732,   733,   734,   221,   735,   736,   222,   811,   815,
-     837,   840,   737,   844,   911,   223,   738,   362,   363,   364,
+     147,   207,   224,   266,   280,   300,   343,   322,   341,   358,
+     378,   869,    38,   344,   225,   263,   799,   212,   260,   273,
+     284,   302,   829,   336,   354,  1085,   379,  1086,  1087,  1091,
+     226,   323,   342,   227,   228,  1097,   229,   356,   357,    31,
+     820,    32,   688,    33,   294,   356,   357,   124,   316,    30,
+     230,   924,   231,    86,   232,   233,   744,   745,   234,   205,
+     206,   125,   126,   467,   471,   125,   126,    89,   468,   472,
+     235,    42,   236,   213,   261,   274,   285,   303,   969,   337,
+     355,   970,   380,   267,   281,  1103,  1104,   720,    44,   237,
+     258,   269,   283,   301,    46,   691,   692,   693,   694,   726,
+     727,   728,   238,   239,   483,   240,   241,   688,   242,   484,
+      48,   486,   146,   879,   880,   881,   487,   404,   243,   244,
+     245,   863,   821,   246,   247,    50,   255,    52,   268,   282,
+     762,   757,   125,   126,   398,   399,   758,   759,   760,   761,
+     762,   763,   764,   765,   766,   767,   768,   769,   770,   771,
+     772,   773,   774,   775,   677,   678,   679,   680,  1166,  1167,
+    1168,  1169,    54,   316,   338,   317,   318,   339,   340,   146,
+      91,    92,   972,   146,    93,   973,   316,    94,    95,    96,
+     125,   126,   316,    56,    58,   978,   681,   493,   979,   125,
+     126,   521,   494,   125,   126,   538,   522,   542,    60,   315,
+     539,   123,   543,    97,    98,    99,   100,   101,   102,   103,
+     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+     124,    34,    35,    36,    37,   864,   865,   866,   867,    62,
+     146,  1085,   467,  1086,  1087,  1091,   405,   929,   125,   126,
+     316,  1097,   317,   318,   124,   127,   319,   320,   321,    64,
+     128,   129,   130,   131,   132,   265,   133,   125,   126,   125,
+     126,   134,   125,   126,  1018,   820,   827,  1019,   828,  1146,
+     135,  1147,  1148,   136,   542,   125,   126,   471,   146,   930,
+     137,   221,   931,    66,   222,   829,  1052,   146,   138,   139,
+     124,   146,   406,   140,   951,   869,   141,   146,   124,   952,
+     142,   407,   408,   275,   276,   277,   278,   279,   125,   126,
+     849,   850,   851,   852,   853,   854,   125,   126,   899,   900,
+     901,   143,   144,   145,   951,  1224,   410,   221,  1225,   953,
+     222,   890,   891,  1226,   293,   417,  1227,  1228,  1229,  1230,
+     294,   295,   296,   297,   298,   299,   146,     1,     2,     3,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,   975,   502,   992,   999,   146,   976,   902,   993,  1000,
+     146,  1004,  1008,  1014,   538,   951,  1005,  1009,  1015,  1016,
+    1178,   418,   483,   146,  1182,   503,   147,  1179,   521,  1183,
+     207,   544,   545,  1190,  1203,   486,   493,   504,  1244,  1204,
+    1206,  1207,   224,  1245,   419,   266,   212,  1191,  1192,  1193,
+     420,   421,   280,   422,   225,   263,   146,   423,   260,   424,
+     425,   273,   300,   426,   146,   427,   428,   429,   284,   430,
+     226,   432,   322,   227,   228,   343,   229,   341,   302,   433,
+     434,   435,   344,   436,   440,   441,   458,   466,   336,   470,
+     230,   478,   231,   354,   232,   233,   323,   378,   234,   479,
+     489,   342,   213,   491,   492,   507,   511,   513,   554,   515,
+     235,   512,   236,   379,   261,   516,   517,   274,   518,   546,
+     523,   526,   528,   529,   285,   267,   532,   533,   541,   237,
+     258,   547,   281,   269,   303,   548,   549,   550,   551,   552,
+     283,   553,   238,   239,   337,   240,   241,   555,   242,   355,
+     301,   556,   557,   558,   559,   560,   568,   561,   243,   244,
+     245,   574,   563,   246,   247,   562,   255,   564,   565,   380,
+     268,   566,   567,   569,   570,   575,   576,   282,   571,   572,
+     573,   577,   578,   579,   580,   581,   582,   583,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   584,   585,   586,   587,   114,   115,   116,   117,   118,
+     119,   120,   121,   588,   589,   124,   590,   591,   592,   593,
+     594,   595,   596,   597,   598,   214,   599,   215,   147,   600,
+     601,   207,   602,   125,   126,   216,   217,   218,   219,   220,
+     127,   604,   605,   607,   608,   609,   610,   212,   611,   612,
+     613,   614,   221,   615,   616,   222,   134,   618,   620,   622,
+     626,   627,   621,   223,   868,   882,   892,   623,   378,   624,
+     636,   628,   629,   630,   631,   632,   634,   635,   637,   638,
+     870,   888,   893,   903,   379,   639,   640,   642,   643,   644,
+     646,   647,   649,   650,   753,   651,   652,   653,   656,   657,
+     660,   661,   834,   213,   654,   655,   662,   663,   665,   658,
+     659,   666,   668,   669,   671,   675,   143,   144,   670,   672,
+     673,   674,   676,   683,   685,   684,   686,   687,   747,   696,
+      32,   697,   698,   690,   699,   700,   871,   889,   894,   904,
+     380,   146,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   125,   126,   701,   702,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   703,   124,
+     316,   704,   705,   706,   707,   708,   709,   712,   713,   715,
+     716,   710,   711,   717,   718,   719,   721,   125,   126,   722,
+     217,   218,   723,   220,   127,   752,   800,   936,   724,   725,
+     729,   730,   731,   732,   733,   734,   221,   804,   735,   222,
+     808,   812,   816,   838,   736,   841,   845,   223,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     740,   741,   915,   742,   748,   919,   935,   375,   376,   749,
-     936,   937,   938,   750,   939,   941,   942,   946,   947,   948,
-     949,   955,   739,   954,   958,   957,   960,   961,   963,   964,
-     967,   966,  1019,   146,   970,   980,   981,   983,   142,   143,
-     984,  1023,   985,   986,   987,   988,   989,   990,   995,   996,
-     997,  1000,  1001,  1002,  1009,  1011,  1024,  1027,  1026,   825,
-    1169,  1031,  1030,  1029,   146,  1032,  1033,  1034,  1035,  1036,
-    1040,  1038,  1037,  1043,  1039,  1044,  1045,  1041,  1042,  1046,
-    1047,  1099,  1049,  1048,  1119,   224,  1120,  1121,   321,   342,
-    1122,   340,  1126,  1127,  1059,  1136,   343,   225,   262,  1123,
-    1124,   259,  1128,  1129,   335,  1103,  1060,   353,   299,  1130,
-    1093,   357,   322,   226,  1132,   341,   227,   228,  1082,   229,
-    1133,  1106,  1061,  1134,   301,  1062,  1063,   867,  1064,  1104,
-    1137,  1139,   881,   230,  1140,   231,   891,   232,   233,  1142,
-    1157,   234,  1065,   869,  1066,  1147,  1067,  1068,   887,  1141,
-    1069,   265,   892,   235,   279,   236,  1158,   260,   902,  1163,
-     336,  1149,  1070,   354,  1071,  1170,  1094,   272,  1178,  1148,
-     283,  1179,   237,   257,  1086,  1171,  1172,  1107,  1173,  1174,
-     302,  1072,  1092,  1175,  1182,   238,   239,  1184,   240,   241,
-    1185,   242,  1186,  1105,  1073,  1074,   300,  1075,  1076,   870,
-    1077,   243,   244,   245,   888,  1187,   246,   254,   893,  1199,
-    1078,  1079,  1080,  1208,   903,  1081,  1088,  1150,  1211,  1087,
-    1193,  1213,  1218,   273,  1216,  1238,   284,  1194,  1239,  1195,
-    1240,   266,  1212,  1196,   280,  1244,  1248,   753,   747,   268,
-    1052,   755,   282,  1050,  1100,  1097,   927,  1098,  1118,  1117,
-    1125,  1096,  1135,  1054,   602,  1203,  1206,  1207,  1053,  1056,
-    1209,  1215,  1217,   605,   313,  1055,  1246,  1245,  1247,  1058,
-    1250,  1251,  1057,   616,   640,  1116,   267,  1161,   647,   281,
-    1160,   644,  1159,   618,  1162,   924,  1115,   624,  1114,  1210,
-    1131,  1143,   910,  1138,  1214,  1236,   663,  1249,   632,     0,
-    1156,     0,   666,   754,     0,     0,     0,     0,     0,  1059,
-       0,     0,     0,     0,     0,  1103,     0,     0,     0,     0,
-       0,  1060,     0,     0,     0,  1093,     0,     0,     0,     0,
-    1147,  1106,     0,  1082,     0,     0,     0,  1061,  1197,  1104,
-    1062,  1063,     0,  1064,     0,     0,  1149,     0,     0,     0,
-       0,     0,     0,     0,  1148,     0,     0,  1065,     0,  1066,
-       0,  1067,  1068,     0,     0,  1069,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1070,     0,  1071,
-       0,  1094,     0,     0,     0,     0,     0,  1107,     0,  1086,
-       0,     0,     0,     0,     0,     0,  1072,  1092,     0,     0,
-       0,     0,  1150,  1105,     0,     0,     0,     0,     0,  1073,
-    1074,     0,  1075,  1076,     0,  1077,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1078,  1079,  1080,     0,     0,
-    1081,  1088,     0,     0,  1087
+     375,   737,   738,   739,   912,   741,   916,   920,   376,   377,
+     742,   937,   743,   749,   938,   750,   939,   940,   751,   942,
+     943,   947,   948,   949,   950,   956,  1020,   955,   959,   958,
+     961,   962,   964,   146,   965,   967,   968,   982,   971,   986,
+     143,   144,   981,   984,   985,  1024,   987,   988,   989,   990,
+     991,   996,   997,   998,  1001,  1002,  1003,  1010,  1012,  1025,
+    1028,  1027,  1037,  1032,  1033,   146,  1030,  1031,  1034,  1035,
+    1039,  1041,  1044,  1036,  1045,  1046,  1101,  1038,  1128,  1040,
+    1129,  1138,  1139,  1042,  1043,  1047,   224,  1142,  1048,   322,
+     343,  1144,   341,  1050,  1159,  1060,  1160,   344,   225,   263,
+    1049,  1121,   260,  1122,  1123,   336,  1105,  1061,   354,   300,
+    1124,  1095,   358,   323,   226,  1125,   342,   227,   228,  1084,
+     229,  1134,  1108,  1062,  1126,   302,  1063,  1064,   868,  1065,
+    1106,  1141,  1165,   882,   230,  1180,   231,   892,   232,   233,
+    1181,  1186,   234,  1066,   870,  1067,  1149,  1068,  1069,   888,
+    1171,  1070,   266,   893,   235,   280,   236,  1187,   261,   903,
+    1130,   337,  1151,  1071,   355,  1072,  1131,  1096,   273,  1132,
+    1150,   284,  1188,   237,   258,  1088,  1189,  1172,  1109,  1135,
+    1136,   303,  1073,  1094,  1143,  1173,   238,   239,  1174,   240,
+     241,  1175,   242,  1176,  1107,  1074,  1075,   301,  1076,  1077,
+     871,  1078,   243,   244,   245,   889,  1177,   246,   247,   894,
+     255,  1079,  1080,  1081,  1201,   904,  1082,  1083,  1152,  1090,
+    1089,  1210,  1213,  1215,   274,  1214,  1218,   285,  1240,  1220,
+    1211,  1241,   267,  1242,  1246,   281,  1250,  1184,  1247,   756,
+     269,   740,   754,   283,   748,   826,   928,  1051,  1053,  1102,
+    1100,  1099,  1137,  1120,  1119,   648,  1055,  1127,   603,  1195,
+    1196,  1098,  1054,  1197,   606,  1209,  1198,   314,  1057,  1056,
+    1205,  1118,  1208,   641,  1117,  1058,  1217,   268,  1219,  1252,
+     282,  1059,  1248,  1249,   617,   619,  1253,  1162,   925,  1161,
+     625,  1164,  1116,  1163,  1212,   911,  1140,  1133,  1145,   664,
+    1216,   755,  1238,   633,   667,  1251,     0,     0,  1158,     0,
+       0,  1060,   645,     0,     0,     0,     0,  1105,     0,     0,
+       0,     0,     0,  1061,     0,     0,     0,  1095,     0,     0,
+       0,     0,  1149,  1108,     0,  1084,     0,     0,     0,  1062,
+    1199,  1106,  1063,  1064,     0,  1065,     0,     0,  1151,     0,
+       0,     0,     0,     0,     0,     0,  1150,     0,     0,  1066,
+       0,  1067,     0,  1068,  1069,     0,     0,  1070,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  1071,
+       0,  1072,     0,  1096,     0,     0,     0,     0,     0,  1109,
+       0,  1088,     0,     0,     0,     0,     0,     0,  1073,  1094,
+       0,     0,     0,     0,  1152,  1107,     0,     0,     0,     0,
+       0,  1074,  1075,     0,  1076,  1077,     0,  1078,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  1079,  1080,  1081,
+       0,     0,  1082,  1083,     0,  1090,  1089
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       71,    72,    73,    74,    75,    76,    79,    78,    79,    80,
-      81,   704,    16,    79,    73,    73,   673,    72,    73,    74,
-      75,    76,   698,    78,    79,   965,    81,   965,   965,   965,
-      73,    78,    79,    73,    73,   965,    73,     0,   114,     5,
-     197,     7,    69,     9,    16,    17,   121,   122,     7,   580,
-      73,     3,    73,   613,    73,    73,     8,     4,    73,   121,
-     122,   167,   168,   169,   170,   625,   626,   627,    13,    14,
-      73,   112,    73,    72,    73,    74,    75,    76,   119,    78,
-      79,     7,    81,    74,    75,     3,    21,     7,     6,    73,
-      73,    74,    75,    76,   200,     7,    71,    72,    73,    74,
-      75,    76,    73,    73,     3,    73,    73,     3,    73,     8,
-     164,   165,     8,    88,    89,   646,    88,    89,    73,    73,
-      73,   197,   197,    73,    73,     7,    11,    12,    74,    75,
-      15,     7,     3,    18,    19,    20,    71,     8,    73,    74,
-       3,     3,    77,    78,    79,     8,     8,     7,     7,     7,
-      88,    89,   176,    88,    89,   179,   180,   181,   182,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,   114,   115,    21,   117,
-     124,   125,   126,   127,   128,   129,     7,    30,     3,     3,
-       3,     6,     6,    88,    89,     8,   144,   145,     3,    70,
-      95,     3,    10,     8,     6,   100,   101,   102,   103,   104,
-      81,   106,   197,     7,     7,   197,   111,    88,    89,    70,
-      71,   197,   198,   199,   200,   120,     3,     7,   123,     3,
-    1180,     8,  1180,  1180,  1180,   130,   107,    88,    89,   110,
-    1180,     6,     8,   138,   139,    88,    89,    70,   143,   197,
-       3,   146,   197,     6,    71,   150,     3,   108,   109,     4,
-      83,    84,    85,    86,    87,    88,    89,     8,    88,    89,
-       3,    88,    89,     4,     4,     8,   171,   172,   173,   174,
-       4,     8,     4,     3,   107,   971,   953,   110,     8,    88,
-      89,   134,   135,   136,   137,   998,     3,     3,    21,     4,
-       4,     8,   197,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    70,   131,   132,   133,     3,   197,   147,   148,   149,
-       8,     3,     3,     3,     8,     4,     8,     8,     8,    88,
-      89,   140,   141,   142,     3,     3,   197,     3,    71,     8,
-       8,     3,     8,     4,   197,     4,     8,   106,   175,     4,
-     177,   178,     4,   112,   113,   114,   115,   116,   117,     4,
-       3,     3,     8,     3,   197,     8,     8,   197,     8,     3,
-     197,     3,     3,     3,     8,   466,     8,     8,     8,   470,
-     404,   405,     3,    96,    97,    98,    99,     8,   197,     4,
-       4,   482,     4,     4,   485,   470,    22,    23,    24,    25,
-       4,   492,     4,   482,   482,     4,     4,   482,     4,     4,
-     485,   502,     4,     4,     4,     4,     4,   492,     4,   482,
-       4,   512,   482,   482,   517,   482,   517,   502,     4,     3,
-       8,   517,     4,     4,     3,   197,     4,   512,   197,   482,
-       4,   482,   517,   482,   482,   512,   537,   482,     4,     4,
-     517,   470,     4,     4,     4,     4,     4,     4,     4,   482,
-       4,   482,   537,   482,   197,     4,   485,     4,   199,   198,
-     198,   198,   198,   492,   485,   198,   198,   198,   482,   482,
-     198,   492,   485,   502,     4,     4,     4,   198,   200,   492,
-     199,   482,   482,   512,   482,   482,   199,   482,   517,   502,
-     198,   198,   198,     4,     4,   200,   200,   482,   482,   482,
-     200,   200,   482,   482,     4,     4,     4,     4,   537,   485,
-       4,     4,     4,     4,     4,     4,   492,     4,     4,     4,
-       4,     4,     4,   198,     4,     4,     4,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-       4,     4,   200,     4,    61,    62,    63,    64,    65,    66,
-      67,     4,   200,    70,     4,     4,     4,     4,     4,   198,
-       4,     4,   200,    80,     4,    82,     4,   668,     4,   198,
-     671,    88,    89,    90,    91,    92,    93,    94,    95,     4,
-     198,   198,     4,     4,     4,     4,   671,     4,     4,     4,
-     107,     4,     4,   110,   111,   198,     4,     4,     4,     4,
-       4,   118,     4,   704,   705,   706,     4,   708,   200,   200,
-     200,   200,     4,   198,     4,   198,     4,     4,   198,   704,
-     705,   706,   707,   708,   200,   200,     4,     4,     4,     4,
-       4,   198,     4,   667,     7,   166,     7,     7,     7,     7,
-       5,     5,   671,     5,   197,   197,   197,   197,     5,     7,
-       5,   197,     5,     5,   171,   172,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-       5,     7,     5,     5,     5,   704,   705,   706,   707,   708,
-     197,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    88,    89,     7,     7,    61,    62,
-      63,    64,    65,    66,    67,    68,     7,    70,    71,     7,
-       7,     7,     5,     5,     5,     5,   197,     5,     7,   105,
-     197,   197,   197,   197,   197,    88,    89,   197,    91,    92,
-     197,    94,    95,     7,     7,   197,     7,   197,   197,   197,
-     197,   197,   197,   197,   107,   197,   197,   110,     7,     7,
-       7,     7,   197,     7,     7,   118,   197,   151,   152,   153,
+      81,   705,    16,    79,    73,    73,   674,    72,    73,    74,
+      75,    76,   699,    78,    79,   966,    81,   966,   966,   966,
+      73,    78,    79,    73,    73,   966,    73,   122,   123,     5,
+     115,     7,   582,     9,   113,   122,   123,    71,    72,     0,
+      73,   120,    73,   197,    73,    73,   165,   166,    73,    16,
+      17,    89,    90,     3,     3,    89,    90,    10,     8,     8,
+      73,     7,    73,    72,    73,    74,    75,    76,     3,    78,
+      79,     6,    81,    74,    75,   109,   110,   614,     7,    73,
+      73,    74,    75,    76,     7,    97,    98,    99,   100,   626,
+     627,   628,    73,    73,     3,    73,    73,   647,    73,     8,
+       7,     3,   197,   141,   142,   143,     8,     6,    73,    73,
+      73,    21,   197,    73,    73,     7,    73,     7,    74,    75,
+      30,    21,    89,    90,    13,    14,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,   168,   169,   170,   171,    22,    23,
+      24,    25,     7,    72,    73,    74,    75,    76,    77,   197,
+      11,    12,     3,   197,    15,     6,    72,    18,    19,    20,
+      89,    90,    72,     7,     7,     3,   200,     3,     6,    89,
+      90,     3,     8,    89,    90,     3,     8,     3,     7,    21,
+       8,    70,     8,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,   197,   198,   199,   200,   135,   136,   137,   138,     7,
+     197,  1182,     3,  1182,  1182,  1182,     3,     8,    89,    90,
+      72,  1182,    74,    75,    71,    96,    78,    79,    80,     7,
+     101,   102,   103,   104,   105,    82,   107,    89,    90,    89,
+      90,   112,    89,    90,     3,   115,   116,     6,   118,   175,
+     121,   177,   178,   124,     3,    89,    90,     3,   197,     8,
+     131,   108,     8,     7,   111,   972,   954,   197,   139,   140,
+      71,   197,     4,   144,     3,   999,   147,   197,    71,     8,
+     151,     8,     3,    84,    85,    86,    87,    88,    89,    90,
+     125,   126,   127,   128,   129,   130,    89,    90,   148,   149,
+     150,   172,   173,   174,     3,     3,     8,   108,     6,     8,
+     111,   145,   146,   176,   107,     4,   179,   180,   181,   182,
+     113,   114,   115,   116,   117,   118,   197,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     196,     3,     8,     3,     3,   197,     8,   197,     8,     8,
+     197,     3,     3,     3,     3,     3,     8,     8,     8,     8,
+       8,     4,     3,   197,     3,     3,   467,     8,     3,     8,
+     471,   405,   406,     8,     3,     3,     3,     8,     3,     8,
+       8,     8,   483,     8,     4,   486,   471,   132,   133,   134,
+       4,     4,   493,     4,   483,   483,   197,     4,   483,     4,
+       4,   486,   503,     4,   197,     4,     4,     4,   493,     4,
+     483,     4,   513,   483,   483,   518,   483,   518,   503,     4,
+       4,     4,   518,     4,     4,     4,     4,     4,   513,     4,
+     483,     4,   483,   518,   483,   483,   513,   538,   483,     4,
+       4,   518,   471,     4,     4,     4,     4,     3,   198,     4,
+     483,     8,   483,   538,   483,     4,     8,   486,     3,   197,
+       4,     4,     4,     4,   493,   486,     4,     4,     4,   483,
+     483,     4,   493,   486,   503,     4,     4,     4,     4,     4,
+     493,     4,   483,   483,   513,   483,   483,   198,   483,   518,
+     503,   198,   198,   198,   198,   198,     4,   198,   483,   483,
+     483,     4,   199,   483,   483,   200,   483,   199,   199,   538,
+     486,   198,   198,   198,   198,     4,     4,   493,   200,   200,
+     200,   200,   200,     4,     4,     4,     4,     4,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,     4,     4,     4,     4,    61,    62,    63,    64,    65,
+      66,    67,    68,     4,     4,    71,     4,     4,     4,     4,
+       4,   198,     4,     4,     4,    81,     4,    83,   669,     4,
+       4,   672,     4,    89,    90,    91,    92,    93,    94,    95,
+      96,     4,   200,     4,     4,     4,     4,   672,     4,   198,
+     200,     4,   108,     4,     4,   111,   112,     4,     4,     4,
+       4,     4,   198,   119,   705,   706,   707,   198,   709,   198,
+     198,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+     705,   706,   707,   708,   709,     4,   200,     4,   200,   200,
+       4,     4,   200,     4,   668,     4,   198,     4,     4,     4,
+       4,     4,   106,   672,   198,   198,     4,     4,     4,   200,
+     200,   198,     4,     7,     7,     5,   172,   173,   197,     7,
+       7,     7,   197,   197,     5,   197,     5,     5,   167,     5,
+       7,     5,     5,   197,     5,     7,   705,   706,   707,   708,
+     709,   197,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    89,    90,     5,     5,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,     5,    71,
+      72,     7,     7,     7,     7,     7,     7,     5,     5,     5,
+       5,   197,   197,   197,   197,   197,   197,    89,    90,     7,
+      92,    93,   197,    95,    96,     5,     7,     4,   197,   197,
+     197,   197,   197,   197,   197,   197,   108,     7,   197,   111,
+       7,     7,     7,     7,   197,     7,     7,   119,   152,   153,
      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     197,   197,     7,   197,   197,     7,     4,   171,   172,   197,
-       4,     4,     4,   197,     4,     4,     4,     4,     4,     4,
-       4,     3,   646,     6,     3,     6,     6,     3,     6,     3,
-       3,     6,   197,   197,     6,     6,     3,     6,   171,   172,
-       3,     6,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     3,     3,     6,   697,
-     197,     4,     6,     8,   197,     4,     4,     4,   198,   200,
-       4,   200,   198,     4,   198,     4,     4,   198,   198,   198,
-     198,     4,   198,   200,   198,   956,   198,   198,   959,   962,
-     198,   962,     4,     4,   965,     4,   962,   956,   956,   198,
-     198,   956,   198,   198,   959,   976,   965,   962,   979,   198,
-     965,   982,   959,   956,   200,   962,   956,   956,   965,   956,
-     198,   976,   965,   198,   979,   965,   965,   998,   965,   976,
-       4,   200,  1003,   956,     4,   956,  1007,   956,   956,     4,
-       6,   956,   965,   998,   965,  1016,   965,   965,  1003,   198,
-     965,  1022,  1007,   956,  1025,   956,     3,   956,  1013,     4,
-     959,  1016,   965,   962,   965,   197,   965,  1022,     8,  1016,
-    1025,     8,   956,   956,   965,   197,   197,   976,   197,   197,
-     979,   965,   965,   197,   197,   956,   956,     4,   956,   956,
-       8,   956,     3,   976,   965,   965,   979,   965,   965,   998,
-     965,   956,   956,   956,  1003,     8,   956,   956,  1007,     4,
-     965,   965,   965,     4,  1013,   965,   965,  1016,     4,   965,
-     197,     4,     7,  1022,     5,     4,  1025,   197,     4,   197,
-       4,  1022,   198,   197,  1025,     4,     4,   668,   659,  1022,
-     955,   671,  1025,   950,   974,   968,   751,   971,   984,   982,
-     991,   967,  1003,   958,   466,   197,   197,  1180,   956,   961,
-     200,   197,   197,   470,    77,   959,   198,   200,   198,   964,
-     197,   197,   962,   482,   512,   981,  1022,  1025,   520,  1025,
-    1024,   517,  1022,   485,  1027,   721,   979,   492,   977,  1186,
-     998,  1013,   708,  1007,  1201,  1222,   537,  1242,   502,    -1,
-    1017,    -1,   541,   670,    -1,    -1,    -1,    -1,    -1,  1180,
-      -1,    -1,    -1,    -1,    -1,  1186,    -1,    -1,    -1,    -1,
-      -1,  1180,    -1,    -1,    -1,  1180,    -1,    -1,    -1,    -1,
-    1201,  1186,    -1,  1180,    -1,    -1,    -1,  1180,  1142,  1186,
-    1180,  1180,    -1,  1180,    -1,    -1,  1201,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1201,    -1,    -1,  1180,    -1,  1180,
-      -1,  1180,  1180,    -1,    -1,  1180,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1180,    -1,  1180,
-      -1,  1180,    -1,    -1,    -1,    -1,    -1,  1186,    -1,  1180,
-      -1,    -1,    -1,    -1,    -1,    -1,  1180,  1180,    -1,    -1,
-      -1,    -1,  1201,  1186,    -1,    -1,    -1,    -1,    -1,  1180,
-    1180,    -1,  1180,  1180,    -1,  1180,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1180,  1180,  1180,    -1,    -1,
-    1180,  1180,    -1,    -1,  1180
+     164,   197,   197,   197,     7,   197,     7,     7,   172,   173,
+     197,     4,   197,   197,     4,   197,     4,     4,   197,     4,
+       4,     4,     4,     4,     4,     3,   197,     6,     3,     6,
+       6,     3,     6,   197,     3,     6,     3,     3,     6,     4,
+     172,   173,     6,     6,     3,     6,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+       3,     6,   200,     4,     4,   197,     8,     6,     4,     4,
+     200,     4,     4,   198,     4,     4,     4,   198,     4,   198,
+       4,     4,     4,   198,   198,   198,   957,     4,   198,   960,
+     963,     4,   963,   198,     6,   966,     3,   963,   957,   957,
+     200,   198,   957,   198,   198,   960,   977,   966,   963,   980,
+     198,   966,   983,   960,   957,   198,   963,   957,   957,   966,
+     957,   200,   977,   966,   198,   980,   966,   966,   999,   966,
+     977,   200,     4,  1004,   957,     8,   957,  1008,   957,   957,
+       8,     4,   957,   966,   999,   966,  1017,   966,   966,  1004,
+     197,   966,  1023,  1008,   957,  1026,   957,     8,   957,  1014,
+     198,   960,  1017,   966,   963,   966,   198,   966,  1023,   198,
+    1017,  1026,     3,   957,   957,   966,     8,   197,   977,   198,
+     198,   980,   966,   966,   198,   197,   957,   957,   197,   957,
+     957,   197,   957,   197,   977,   966,   966,   980,   966,   966,
+     999,   966,   957,   957,   957,  1004,   197,   957,   957,  1008,
+     957,   966,   966,   966,     4,  1014,   966,   966,  1017,   966,
+     966,     4,     4,     4,  1023,   198,     5,  1026,     4,     7,
+     200,     4,  1023,     4,     4,  1026,     4,   197,   200,   672,
+    1023,   647,   669,  1026,   660,   698,   752,   951,   956,   975,
+     972,   969,  1004,   985,   983,   521,   959,   992,   467,   197,
+     197,   968,   957,   197,   471,  1182,   197,    77,   962,   960,
+     197,   982,   197,   513,   980,   963,   197,  1023,   197,   197,
+    1026,   965,   198,   198,   483,   486,   197,  1025,   722,  1023,
+     493,  1028,   978,  1026,  1188,   709,  1008,   999,  1014,   538,
+    1203,   671,  1224,   503,   542,  1244,    -1,    -1,  1018,    -1,
+      -1,  1182,   518,    -1,    -1,    -1,    -1,  1188,    -1,    -1,
+      -1,    -1,    -1,  1182,    -1,    -1,    -1,  1182,    -1,    -1,
+      -1,    -1,  1203,  1188,    -1,  1182,    -1,    -1,    -1,  1182,
+    1144,  1188,  1182,  1182,    -1,  1182,    -1,    -1,  1203,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  1203,    -1,    -1,  1182,
+      -1,  1182,    -1,  1182,  1182,    -1,    -1,  1182,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1182,
+      -1,  1182,    -1,  1182,    -1,    -1,    -1,    -1,    -1,  1188,
+      -1,  1182,    -1,    -1,    -1,    -1,    -1,    -1,  1182,  1182,
+      -1,    -1,    -1,    -1,  1203,  1188,    -1,    -1,    -1,    -1,
+      -1,  1182,  1182,    -1,  1182,  1182,    -1,  1182,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1182,  1182,  1182,
+      -1,    -1,  1182,  1182,    -1,  1182,  1182
   };
 
   const short
@@ -5209,120 +5209,120 @@ namespace isc { namespace dhcp {
      235,    11,    12,    15,    18,    19,    20,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    88,    89,    95,   100,   101,   102,
-     103,   104,   106,   111,   120,   123,   130,   138,   139,   143,
-     146,   150,   171,   172,   173,   174,   197,   232,   239,   240,
+      67,    68,    69,    70,    71,    89,    90,    96,   101,   102,
+     103,   104,   105,   107,   112,   121,   124,   131,   139,   140,
+     144,   147,   151,   172,   173,   174,   197,   232,   239,   240,
      241,   243,   244,   245,   246,   247,   248,   249,   250,   251,
      252,   253,   254,   255,   256,   257,   258,   259,   260,   263,
-     265,   267,   269,   271,   272,   273,   274,   276,   277,   286,
+     265,   267,   268,   270,   272,   273,   274,   275,   277,   286,
      288,   290,   328,   334,   340,   346,   348,   355,   369,   379,
      399,   404,   412,   438,   468,   470,   489,   519,   531,   543,
      544,   552,   562,   593,   602,    16,    17,   232,   281,   282,
-     283,   285,   468,   470,    80,    82,    90,    91,    92,    93,
-      94,   107,   110,   118,   232,   243,   244,   245,   246,   247,
+     283,   285,   468,   470,    81,    83,    91,    92,    93,    94,
+      95,   108,   111,   119,   232,   243,   244,   245,   246,   247,
      248,   249,   250,   251,   252,   253,   254,   255,   257,   258,
-     259,   260,   263,   265,   267,   269,   271,   387,   388,   389,
-     391,   393,   395,   397,   399,   402,   403,   438,   456,   468,
-     470,   472,   489,   514,    81,   232,   395,   397,   438,   464,
-     465,   466,   468,   470,    83,    84,    85,    86,    87,   232,
-     395,   397,   438,   468,   470,   480,   481,   482,   484,   485,
-     487,   488,   106,   112,   113,   114,   115,   116,   117,   232,
-     438,   468,   470,   497,   498,   499,   500,   502,   504,   506,
-     508,   510,   512,   412,    21,    71,    73,    74,    77,    78,
-      79,   232,   308,   422,   423,   424,   425,   426,   427,   428,
-     430,   432,   434,   435,   437,   468,   470,    72,    75,    76,
-     232,   308,   426,   432,   446,   447,   448,   449,   450,   452,
-     453,   454,   455,   468,   470,   121,   122,   232,   363,   364,
-     365,   367,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   171,   172,   232,   468,   470,
-     566,   567,   568,   569,   571,   573,   574,   576,   577,   578,
-     581,   583,   584,   585,   587,   589,   591,    13,    14,   597,
-     598,   599,   601,     6,     3,     4,     8,     3,   236,     8,
-     242,   594,   278,   287,   289,   291,     4,     4,     4,     4,
+     259,   260,   263,   265,   267,   268,   270,   272,   387,   388,
+     389,   391,   393,   395,   397,   399,   402,   403,   438,   456,
+     468,   470,   472,   489,   514,    82,   232,   395,   397,   438,
+     464,   465,   466,   468,   470,    84,    85,    86,    87,    88,
+     232,   395,   397,   438,   468,   470,   480,   481,   482,   484,
+     485,   487,   488,   107,   113,   114,   115,   116,   117,   118,
+     232,   438,   468,   470,   497,   498,   499,   500,   502,   504,
+     506,   508,   510,   512,   412,    21,    72,    74,    75,    78,
+      79,    80,   232,   308,   422,   423,   424,   425,   426,   427,
+     428,   430,   432,   434,   435,   437,   468,   470,    73,    76,
+      77,   232,   308,   426,   432,   446,   447,   448,   449,   450,
+     452,   453,   454,   455,   468,   470,   122,   123,   232,   363,
+     364,   365,   367,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   172,   173,   232,   468,
+     470,   566,   567,   568,   569,   571,   573,   574,   576,   577,
+     578,   581,   583,   584,   585,   587,   589,   591,    13,    14,
+     597,   598,   599,   601,     6,     3,     4,     8,     3,   236,
+       8,   242,   594,   278,   287,   289,   291,     4,     4,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     275,     4,     4,     4,     4,     4,   261,   264,   266,     4,
-     380,   413,   439,   469,   471,   400,   405,   335,   347,   341,
-     329,   520,   490,   356,   370,   532,     4,   349,   545,   553,
-     563,   268,   270,     4,   603,     4,     3,     8,   284,     4,
-       3,     8,   457,   473,   390,   392,   394,     4,     4,   398,
-     396,   515,     3,     8,   467,     3,     8,   483,     4,   486,
-       4,     4,     3,     8,   513,   501,   503,   505,   507,   509,
-     511,     8,     3,     8,   429,   309,     4,   433,   431,   436,
-       4,     8,     3,   451,     4,     4,     8,     3,   366,   368,
-       3,     8,     4,   570,   572,     4,   575,     4,     4,   579,
-     582,     4,     4,   586,   588,   590,   592,     3,     8,   600,
-       4,     3,     8,   217,   217,   197,     4,     4,     4,     4,
-       4,     4,     4,   198,   198,   198,   198,   198,   198,   198,
-     198,   200,   199,   199,   199,   198,   198,     4,   198,   198,
-     200,   200,   200,     4,     4,     4,   200,     4,     4,     4,
+       4,   276,     4,     4,     4,     4,     4,   261,   264,   266,
+       4,     4,   380,   413,   439,   469,   471,   400,   405,   335,
+     347,   341,   329,   520,   490,   356,   370,   532,     4,   349,
+     545,   553,   563,   269,   271,   603,     4,     3,     8,   284,
+       4,     3,     8,   457,   473,   390,   392,   394,     4,     4,
+     398,   396,   515,     3,     8,   467,     3,     8,   483,     4,
+     486,     4,     4,     3,     8,   513,   501,   503,   505,   507,
+     509,   511,     8,     3,     8,   429,   309,     4,   433,   431,
+     436,     4,     8,     3,   451,     4,     4,     8,     3,   366,
+     368,     3,     8,     4,   570,   572,     4,   575,     4,     4,
+     579,   582,     4,     4,   586,   588,   590,   592,     3,     8,
+     600,     4,     3,     8,   217,   217,   197,     4,     4,     4,
+       4,     4,     4,     4,   198,   198,   198,   198,   198,   198,
+     198,   198,   200,   199,   199,   199,   198,   198,     4,   198,
+     198,   200,   200,   200,     4,     4,     4,   200,   200,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   198,     4,     4,     4,     4,     4,     4,
-     200,     4,   240,     4,   200,   282,     4,     4,     4,     4,
-       4,   198,   200,     4,     4,     4,   388,     4,   465,     4,
-     198,     4,   198,   198,   481,     4,     4,     4,     4,     4,
-       4,     4,   499,     4,     4,   198,     4,     4,     4,   200,
-     424,     4,   200,   200,   448,     4,     4,   364,   200,     4,
-       4,   198,     4,   198,   198,     4,     4,   200,   200,     4,
-       4,     4,     4,   567,     4,   198,   598,     4,     7,   197,
-       7,     7,     7,     7,     5,   197,   167,   168,   169,   170,
-     200,   262,   197,   197,     5,     5,     5,   219,   221,   197,
-      96,    97,    98,    99,   401,     5,     5,     5,     5,     7,
-       5,     5,     5,     7,     7,     7,     7,     7,     7,   197,
-     197,     5,     5,   228,     5,     5,   197,   197,   197,   228,
-     197,     7,   197,   197,   197,   228,   228,   228,   197,   197,
-     197,   197,   197,   197,   197,   197,   197,   197,   197,   221,
-     197,   197,   197,   164,   165,   580,   166,   262,   197,   197,
-     197,     5,   217,   239,   597,   281,    21,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,   232,   296,   297,   298,   301,
-     303,   305,   307,   308,   310,   311,   312,   313,   314,   315,
-     316,   317,   318,   319,   321,   322,   324,   326,   296,     7,
-     292,   293,   294,     7,   381,   382,   383,     7,   416,   417,
-     418,     7,   440,   441,   442,     7,   406,   407,   408,   114,
-     197,   336,   337,   338,   339,   226,   115,   117,   338,   342,
-     343,   344,   345,   105,   330,   331,   332,     7,   521,   522,
-       7,   491,   492,   493,     7,   357,   358,   359,   124,   125,
-     126,   127,   128,   129,   371,   372,   373,   374,   375,   376,
-     377,   378,    21,   134,   135,   136,   137,   232,   310,   468,
-     470,   533,   534,   535,   538,   539,   541,   542,   140,   141,
-     142,   232,   350,   351,   352,   353,   354,   468,   470,   144,
-     145,   232,   468,   470,   546,   547,   548,   550,   147,   148,
-     149,   197,   468,   470,   554,   555,   556,   557,   559,   560,
-     566,     7,   604,   605,   229,     7,   458,   459,   460,     7,
-     474,   475,   476,   119,   500,   516,   517,   292,     8,     8,
-       8,   299,   302,   304,   306,     4,     4,     4,     4,     4,
-     320,     4,     4,   323,   325,   327,     4,     4,     4,     4,
-       3,     8,     8,   295,     6,     3,   384,     6,     3,   419,
-       6,     3,   443,     6,     3,   409,     6,     3,     3,     6,
-       6,     3,     6,   333,     3,     8,   523,     3,     6,   494,
-       6,     3,   360,     6,     3,     4,     4,     4,     4,     4,
-       4,     3,     8,   536,   540,     4,     4,     4,     3,     8,
-       4,     4,     4,     3,     8,   549,   551,     3,     8,     4,
-     558,     4,   561,     3,     8,     8,   606,     3,     6,   197,
-     230,   231,   461,     6,     3,   477,     6,     3,   518,     8,
-       6,     4,     4,     4,     4,   198,   200,   198,   200,   198,
-       4,   198,   198,     4,     4,     4,   198,   198,   200,   198,
-     297,   296,   294,   387,   383,   422,   418,   446,   442,   232,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   257,   258,   259,   260,   263,   265,   267,
-     269,   271,   308,   379,   391,   393,   395,   397,   399,   403,
-     410,   411,   438,   468,   470,   514,   408,   337,   343,     4,
-     331,   108,   109,   232,   308,   438,   468,   470,   524,   525,
-     526,   527,   528,   530,   522,   497,   493,   363,   359,   198,
-     198,   198,   198,   198,   198,   372,     4,     4,   198,   198,
-     198,   534,   200,   198,   198,   351,     4,     4,   547,   200,
-       4,   198,     4,   555,   175,   177,   178,   232,   308,   468,
-     470,   607,   608,   609,   610,   612,   605,     6,     3,   464,
-     460,   480,   476,     4,    22,    23,    24,    25,   300,   197,
-     197,   197,   197,   197,   197,   197,     8,     8,     8,     8,
-       3,     8,   197,   529,     4,     8,     3,     8,     8,   131,
-     132,   133,   537,   197,   197,   197,   197,   217,   613,     4,
-     611,     3,     8,   197,     8,     8,   197,   411,     4,   200,
-     526,     4,   198,     4,   608,   197,     5,   197,     7,   614,
-     615,   616,     3,     6,   176,   179,   180,   181,   182,   617,
-     618,   619,   621,   622,   623,   624,   615,   620,     4,     4,
-       4,   625,     3,     8,     4,   200,   198,   198,     4,   618,
-     197,   197
+       4,     4,     4,     4,     4,   198,     4,     4,     4,     4,
+       4,     4,     4,   240,     4,   200,   282,     4,     4,     4,
+       4,     4,   198,   200,     4,     4,     4,   388,     4,   465,
+       4,   198,     4,   198,   198,   481,     4,     4,     4,     4,
+       4,     4,     4,   499,     4,     4,   198,     4,     4,     4,
+     200,   424,     4,   200,   200,   448,     4,     4,   364,   200,
+       4,     4,   198,     4,   198,   198,     4,     4,   200,   200,
+       4,     4,     4,     4,   567,     4,   198,   598,     4,     7,
+     197,     7,     7,     7,     7,     5,   197,   168,   169,   170,
+     171,   200,   262,   197,   197,     5,     5,     5,   219,   221,
+     197,    97,    98,    99,   100,   401,     5,     5,     5,     5,
+       7,     5,     5,     5,     7,     7,     7,     7,     7,     7,
+     197,   197,     5,     5,   228,     5,     5,   197,   197,   197,
+     228,   197,     7,   197,   197,   197,   228,   228,   228,   197,
+     197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
+     221,   197,   197,   197,   165,   166,   580,   167,   262,   197,
+     197,   197,     5,   217,   239,   597,   281,    21,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,   232,   296,   297,   298,
+     301,   303,   305,   307,   308,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   321,   322,   324,   326,   296,
+       7,   292,   293,   294,     7,   381,   382,   383,     7,   416,
+     417,   418,     7,   440,   441,   442,     7,   406,   407,   408,
+     115,   197,   336,   337,   338,   339,   226,   116,   118,   338,
+     342,   343,   344,   345,   106,   330,   331,   332,     7,   521,
+     522,     7,   491,   492,   493,     7,   357,   358,   359,   125,
+     126,   127,   128,   129,   130,   371,   372,   373,   374,   375,
+     376,   377,   378,    21,   135,   136,   137,   138,   232,   310,
+     468,   470,   533,   534,   535,   538,   539,   541,   542,   141,
+     142,   143,   232,   350,   351,   352,   353,   354,   468,   470,
+     145,   146,   232,   468,   470,   546,   547,   548,   550,   148,
+     149,   150,   197,   468,   470,   554,   555,   556,   557,   559,
+     560,   566,     7,   604,   605,   229,     7,   458,   459,   460,
+       7,   474,   475,   476,   120,   500,   516,   517,   292,     8,
+       8,     8,   299,   302,   304,   306,     4,     4,     4,     4,
+       4,   320,     4,     4,   323,   325,   327,     4,     4,     4,
+       4,     3,     8,     8,   295,     6,     3,   384,     6,     3,
+     419,     6,     3,   443,     6,     3,   409,     6,     3,     3,
+       6,     6,     3,     6,   333,     3,     8,   523,     3,     6,
+     494,     6,     3,   360,     6,     3,     4,     4,     4,     4,
+       4,     4,     3,     8,   536,   540,     4,     4,     4,     3,
+       8,     4,     4,     4,     3,     8,   549,   551,     3,     8,
+       4,   558,     4,   561,     3,     8,     8,   606,     3,     6,
+     197,   230,   231,   461,     6,     3,   477,     6,     3,   518,
+       8,     6,     4,     4,     4,     4,   198,   200,   198,   200,
+     198,     4,   198,   198,     4,     4,     4,   198,   198,   200,
+     198,   297,   296,   294,   387,   383,   422,   418,   446,   442,
+     232,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+     252,   253,   254,   255,   257,   258,   259,   260,   263,   265,
+     267,   268,   270,   272,   308,   379,   391,   393,   395,   397,
+     399,   403,   410,   411,   438,   468,   470,   514,   408,   337,
+     343,     4,   331,   109,   110,   232,   308,   438,   468,   470,
+     524,   525,   526,   527,   528,   530,   522,   497,   493,   363,
+     359,   198,   198,   198,   198,   198,   198,   372,     4,     4,
+     198,   198,   198,   534,   200,   198,   198,   351,     4,     4,
+     547,   200,     4,   198,     4,   555,   175,   177,   178,   232,
+     308,   468,   470,   607,   608,   609,   610,   612,   605,     6,
+       3,   464,   460,   480,   476,     4,    22,    23,    24,    25,
+     300,   197,   197,   197,   197,   197,   197,   197,     8,     8,
+       8,     8,     3,     8,   197,   529,     4,     8,     3,     8,
+       8,   132,   133,   134,   537,   197,   197,   197,   197,   217,
+     613,     4,   611,     3,     8,   197,     8,     8,   197,   411,
+       4,   200,   526,     4,   198,     4,   608,   197,     5,   197,
+       7,   614,   615,   616,     3,     6,   176,   179,   180,   181,
+     182,   617,   618,   619,   621,   622,   623,   624,   615,   620,
+       4,     4,     4,   625,     3,     8,     4,   200,   198,   198,
+       4,   618,   197,   197
   };
 
   const short
@@ -5343,8 +5343,8 @@ namespace isc { namespace dhcp {
      240,   240,   242,   241,   243,   244,   245,   246,   247,   248,
      249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
      259,   261,   260,   262,   262,   262,   262,   262,   264,   263,
-     266,   265,   268,   267,   270,   269,   271,   272,   273,   275,
-     274,   276,   278,   277,   280,   279,   281,   281,   282,   282,
+     266,   265,   267,   269,   268,   271,   270,   272,   273,   274,
+     276,   275,   278,   277,   280,   279,   281,   281,   282,   282,
      282,   282,   282,   284,   283,   285,   287,   286,   289,   288,
      291,   290,   292,   292,   293,   293,   295,   294,   296,   296,
      297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
@@ -5364,48 +5364,48 @@ namespace isc { namespace dhcp {
      388,   388,   388,   388,   388,   388,   388,   388,   388,   388,
      388,   388,   388,   388,   388,   388,   388,   388,   388,   388,
      388,   388,   388,   388,   388,   388,   388,   388,   388,   388,
-     388,   388,   388,   388,   388,   388,   388,   388,   390,   389,
-     392,   391,   394,   393,   396,   395,   398,   397,   400,   399,
-     401,   401,   401,   401,   402,   403,   405,   404,   406,   406,
-     407,   407,   409,   408,   410,   410,   411,   411,   411,   411,
+     388,   388,   388,   388,   388,   388,   388,   388,   388,   390,
+     389,   392,   391,   394,   393,   396,   395,   398,   397,   400,
+     399,   401,   401,   401,   401,   402,   403,   405,   404,   406,
+     406,   407,   407,   409,   408,   410,   410,   411,   411,   411,
      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
-     411,   413,   412,   415,   414,   416,   416,   417,   417,   419,
-     418,   421,   420,   422,   422,   423,   423,   424,   424,   424,
-     424,   424,   424,   424,   424,   424,   424,   425,   426,   427,
-     429,   428,   431,   430,   433,   432,   434,   436,   435,   437,
-     439,   438,   440,   440,   441,   441,   443,   442,   445,   444,
-     446,   446,   447,   447,   448,   448,   448,   448,   448,   448,
-     448,   448,   448,   449,   451,   450,   452,   453,   454,   455,
-     457,   456,   458,   458,   459,   459,   461,   460,   463,   462,
-     464,   464,   465,   465,   465,   465,   465,   465,   465,   467,
-     466,   469,   468,   471,   470,   473,   472,   474,   474,   475,
-     475,   477,   476,   479,   478,   480,   480,   481,   481,   481,
-     481,   481,   481,   481,   481,   481,   481,   481,   483,   482,
-     484,   486,   485,   487,   488,   490,   489,   491,   491,   492,
-     492,   494,   493,   496,   495,   497,   497,   498,   498,   499,
-     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
-     501,   500,   503,   502,   505,   504,   507,   506,   509,   508,
-     511,   510,   513,   512,   515,   514,   516,   516,   518,   517,
-     520,   519,   521,   521,   523,   522,   524,   524,   525,   525,
-     526,   526,   526,   526,   526,   526,   526,   527,   529,   528,
-     530,   532,   531,   533,   533,   534,   534,   534,   534,   534,
-     534,   534,   534,   534,   536,   535,   537,   537,   537,   538,
-     540,   539,   541,   542,   543,   545,   544,   546,   546,   547,
-     547,   547,   547,   547,   549,   548,   551,   550,   553,   552,
-     554,   554,   555,   555,   555,   555,   555,   555,   556,   558,
-     557,   559,   561,   560,   563,   562,   565,   564,   566,   566,
+     411,   411,   411,   413,   412,   415,   414,   416,   416,   417,
+     417,   419,   418,   421,   420,   422,   422,   423,   423,   424,
+     424,   424,   424,   424,   424,   424,   424,   424,   424,   425,
+     426,   427,   429,   428,   431,   430,   433,   432,   434,   436,
+     435,   437,   439,   438,   440,   440,   441,   441,   443,   442,
+     445,   444,   446,   446,   447,   447,   448,   448,   448,   448,
+     448,   448,   448,   448,   448,   449,   451,   450,   452,   453,
+     454,   455,   457,   456,   458,   458,   459,   459,   461,   460,
+     463,   462,   464,   464,   465,   465,   465,   465,   465,   465,
+     465,   467,   466,   469,   468,   471,   470,   473,   472,   474,
+     474,   475,   475,   477,   476,   479,   478,   480,   480,   481,
+     481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
+     483,   482,   484,   486,   485,   487,   488,   490,   489,   491,
+     491,   492,   492,   494,   493,   496,   495,   497,   497,   498,
+     498,   499,   499,   499,   499,   499,   499,   499,   499,   499,
+     499,   499,   501,   500,   503,   502,   505,   504,   507,   506,
+     509,   508,   511,   510,   513,   512,   515,   514,   516,   516,
+     518,   517,   520,   519,   521,   521,   523,   522,   524,   524,
+     525,   525,   526,   526,   526,   526,   526,   526,   526,   527,
+     529,   528,   530,   532,   531,   533,   533,   534,   534,   534,
+     534,   534,   534,   534,   534,   534,   536,   535,   537,   537,
+     537,   538,   540,   539,   541,   542,   543,   545,   544,   546,
+     546,   547,   547,   547,   547,   547,   549,   548,   551,   550,
+     553,   552,   554,   554,   555,   555,   555,   555,   555,   555,
+     556,   558,   557,   559,   561,   560,   563,   562,   565,   564,
+     566,   566,   567,   567,   567,   567,   567,   567,   567,   567,
      567,   567,   567,   567,   567,   567,   567,   567,   567,   567,
-     567,   567,   567,   567,   567,   567,   567,   567,   568,   570,
-     569,   572,   571,   573,   575,   574,   576,   577,   579,   578,
-     580,   580,   582,   581,   583,   584,   586,   585,   588,   587,
-     590,   589,   592,   591,   594,   593,   596,   595,   597,   597,
-     598,   598,   600,   599,   601,   603,   602,   604,   604,   606,
-     605,   607,   607,   608,   608,   608,   608,   608,   608,   608,
-     609,   611,   610,   613,   612,   614,   614,   616,   615,   617,
-     617,   618,   618,   618,   618,   618,   620,   619,   621,   622,
-     623,   625,   624
+     568,   570,   569,   572,   571,   573,   575,   574,   576,   577,
+     579,   578,   580,   580,   582,   581,   583,   584,   586,   585,
+     588,   587,   590,   589,   592,   591,   594,   593,   596,   595,
+     597,   597,   598,   598,   600,   599,   601,   603,   602,   604,
+     604,   606,   605,   607,   607,   608,   608,   608,   608,   608,
+     608,   608,   609,   611,   610,   613,   612,   614,   614,   616,
+     615,   617,   617,   618,   618,   618,   618,   618,   620,   619,
+     621,   622,   623,   625,   624
   };
 
   const signed char
@@ -5426,8 +5426,8 @@ namespace isc { namespace dhcp {
        1,     1,     0,     4,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        3,     0,     4,     1,     1,     1,     1,     1,     0,     4,
-       0,     4,     0,     4,     0,     4,     3,     3,     3,     0,
-       4,     3,     0,     6,     0,     4,     1,     3,     1,     1,
+       0,     4,     3,     0,     4,     0,     4,     3,     3,     3,
+       0,     4,     0,     6,     0,     4,     1,     3,     1,     1,
        1,     1,     1,     0,     4,     3,     0,     6,     0,     6,
        0,     6,     0,     1,     1,     3,     0,     4,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
@@ -5447,48 +5447,48 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       1,     1,     1,     1,     3,     3,     0,     6,     0,     1,
-       1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
+       4,     1,     1,     1,     1,     3,     3,     0,     6,     0,
+       1,     1,     3,     0,     4,     1,     3,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     6,     0,     4,     0,     1,     1,     3,     0,
-       4,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
-       0,     4,     0,     4,     0,     4,     1,     0,     4,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       0,     1,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     1,     1,     3,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     0,
-       4,     0,     4,     0,     4,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       3,     0,     4,     3,     3,     0,     6,     0,     1,     1,
+       1,     1,     1,     0,     6,     0,     4,     0,     1,     1,
        3,     0,     4,     0,     4,     0,     1,     1,     3,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     6,     1,     1,     0,     4,
-       0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-       3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     1,     1,     1,     3,
-       0,     4,     3,     3,     3,     0,     6,     1,     3,     1,
-       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
-       1,     3,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     3,     0,     4,     0,     6,     0,     4,     1,     3,
+       3,     1,     0,     4,     0,     4,     0,     4,     1,     0,
+       4,     3,     0,     6,     0,     1,     1,     3,     0,     4,
+       0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     1,     1,
+       3,     3,     0,     6,     0,     1,     1,     3,     0,     4,
+       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     0,     4,     0,     4,     0,     4,     0,     6,     0,
+       1,     1,     3,     0,     4,     0,     4,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     4,     3,     0,     4,     3,     3,     0,     6,     0,
+       1,     1,     3,     0,     4,     0,     4,     0,     1,     1,
+       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     0,     4,     0,     4,     0,     4,     0,     4,
+       0,     4,     0,     4,     0,     4,     0,     6,     1,     1,
+       0,     4,     0,     6,     1,     3,     0,     4,     0,     1,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     4,     3,     0,     6,     1,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     1,     1,
+       1,     3,     0,     4,     3,     3,     3,     0,     6,     1,
+       3,     1,     1,     1,     1,     1,     0,     4,     0,     4,
+       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
+       3,     0,     4,     3,     0,     4,     0,     6,     0,     4,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     0,     4,     3,     0,     4,     3,     3,     0,     4,
-       1,     1,     0,     4,     3,     3,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     6,     0,     4,     1,     3,
-       1,     1,     0,     6,     3,     0,     6,     1,     3,     0,
-       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       3,     0,     4,     0,     6,     1,     3,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     0,     4,     3,     3,
-       3,     0,     4
+       3,     0,     4,     0,     4,     3,     0,     4,     3,     3,
+       0,     4,     1,     1,     0,     4,     3,     3,     0,     4,
+       0,     4,     0,     4,     0,     4,     0,     6,     0,     4,
+       1,     3,     1,     1,     0,     6,     3,     0,     6,     1,
+       3,     0,     4,     1,     3,     1,     1,     1,     1,     1,
+       1,     1,     3,     0,     4,     0,     6,     1,     3,     0,
+       4,     1,     3,     1,     1,     1,     1,     1,     0,     4,
+       3,     3,     3,     0,     4
   };
 
 
@@ -5519,9 +5519,9 @@ namespace isc { namespace dhcp {
   "\"ddns-send-updates\"", "\"ddns-override-no-update\"",
   "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"",
   "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"",
-  "\"store-extended-info\"", "\"subnet6\"", "\"option-def\"",
-  "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"",
-  "\"csv-format\"", "\"always-send\"", "\"record-types\"",
+  "\"ddns-update-on-renew\"", "\"store-extended-info\"", "\"subnet6\"",
+  "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
+  "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
   "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"",
   "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"",
   "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"",
@@ -5551,46 +5551,45 @@ namespace isc { namespace dhcp {
   "\"replace-client-name\"", "\"generated-prefix\"", "\"UDP\"", "\"TCP\"",
   "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"",
   "\"when-not-present\"", "\"hostname-char-set\"",
-  "\"hostname-char-replacement\"", "\"ip-reservations-unique\"",
-  "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
-  "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"",
-  "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6",
-  "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION",
-  "SUB_OPTION_DEFS", "SUB_OPTION_DEF", "SUB_OPTION_DATA",
-  "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_CONFIG_CONTROL",
-  "\"constant string\"", "\"integer\"", "\"floating point\"",
-  "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5",
-  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14",
-  "value", "sub_json", "map2", "$@15", "map_value", "map_content",
-  "not_empty_map", "list_generic", "$@16", "list_content",
-  "not_empty_list", "list_strings", "$@17", "list_strings_content",
-  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@18",
-  "global_object", "$@19", "sub_dhcp6", "$@20", "global_params",
-  "global_param", "data_directory", "$@21", "preferred_lifetime",
-  "min_preferred_lifetime", "max_preferred_lifetime", "valid_lifetime",
-  "min_valid_lifetime", "max_valid_lifetime", "renew_timer",
-  "rebind_timer", "calculate_tee_times", "t1_percent", "t2_percent",
-  "cache_threshold", "cache_max_age", "decline_probation_period",
-  "ddns_send_updates", "ddns_override_no_update",
-  "ddns_override_client_update", "ddns_replace_client_name", "$@22",
-  "ddns_replace_client_name_value", "ddns_generated_prefix", "$@23",
-  "ddns_qualifying_suffix", "$@24", "hostname_char_set", "$@25",
+  "\"hostname-char-replacement\"", "\"loggers\"", "\"output_options\"",
+  "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"",
+  "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON",
+  "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6",
+  "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS",
+  "SUB_OPTION_DEF", "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY",
+  "SUB_DHCP_DDNS", "SUB_CONFIG_CONTROL", "\"constant string\"",
+  "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start",
+  "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10",
+  "$@11", "$@12", "$@13", "$@14", "value", "sub_json", "map2", "$@15",
+  "map_value", "map_content", "not_empty_map", "list_generic", "$@16",
+  "list_content", "not_empty_list", "list_strings", "$@17",
+  "list_strings_content", "not_empty_list_strings", "unknown_map_entry",
+  "syntax_map", "$@18", "global_object", "$@19", "sub_dhcp6", "$@20",
+  "global_params", "global_param", "data_directory", "$@21",
+  "preferred_lifetime", "min_preferred_lifetime", "max_preferred_lifetime",
+  "valid_lifetime", "min_valid_lifetime", "max_valid_lifetime",
+  "renew_timer", "rebind_timer", "calculate_tee_times", "t1_percent",
+  "t2_percent", "cache_threshold", "cache_max_age",
+  "decline_probation_period", "ddns_send_updates",
+  "ddns_override_no_update", "ddns_override_client_update",
+  "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value",
+  "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24",
+  "ddns_update_on_renew", "hostname_char_set", "$@25",
   "hostname_char_replacement", "$@26", "store_extended_info",
   "statistic_default_sample_count", "statistic_default_sample_age",
-  "server_tag", "$@27", "ip_reservations_unique", "interfaces_config",
-  "$@28", "sub_interfaces6", "$@29", "interfaces_config_params",
-  "interfaces_config_param", "interfaces_list", "$@30", "re_detect",
-  "lease_database", "$@31", "hosts_database", "$@32", "hosts_databases",
-  "$@33", "database_list", "not_empty_database_list", "database", "$@34",
-  "database_map_params", "database_map_param", "database_type", "$@35",
-  "db_type", "user", "$@36", "password", "$@37", "host", "$@38", "port",
-  "name", "$@39", "persist", "lfc_interval", "readonly", "connect_timeout",
-  "reconnect_wait_time", "max_row_errors", "request_timeout",
-  "tcp_keepalive", "tcp_nodelay", "contact_points", "$@40",
-  "max_reconnect_tries", "keyspace", "$@41", "consistency", "$@42",
-  "serial_consistency", "$@43", "sanity_checks", "$@44",
-  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@45",
-  "mac_sources", "$@46", "mac_sources_list", "mac_sources_value",
+  "server_tag", "$@27", "interfaces_config", "$@28", "sub_interfaces6",
+  "$@29", "interfaces_config_params", "interfaces_config_param",
+  "interfaces_list", "$@30", "re_detect", "lease_database", "$@31",
+  "hosts_database", "$@32", "hosts_databases", "$@33", "database_list",
+  "not_empty_database_list", "database", "$@34", "database_map_params",
+  "database_map_param", "database_type", "$@35", "db_type", "user", "$@36",
+  "password", "$@37", "host", "$@38", "port", "name", "$@39", "persist",
+  "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time",
+  "max_row_errors", "request_timeout", "tcp_keepalive", "tcp_nodelay",
+  "contact_points", "$@40", "max_reconnect_tries", "keyspace", "$@41",
+  "consistency", "$@42", "serial_consistency", "$@43", "sanity_checks",
+  "$@44", "sanity_checks_params", "sanity_checks_param", "lease_checks",
+  "$@45", "mac_sources", "$@46", "mac_sources_list", "mac_sources_value",
   "duid_id", "string_id", "host_reservation_identifiers", "$@47",
   "host_reservation_identifiers_list", "host_reservation_identifier",
   "hw_address_id", "flex_id", "relay_supplied_options", "$@48",
@@ -5687,8 +5686,8 @@ namespace isc { namespace dhcp {
      510,   511,   514,   514,   523,   529,   535,   541,   547,   553,
      559,   565,   571,   577,   583,   589,   595,   601,   607,   613,
      619,   625,   625,   634,   637,   640,   643,   646,   652,   652,
-     661,   661,   670,   670,   679,   679,   688,   694,   700,   706,
-     706,   715,   721,   721,   733,   733,   742,   743,   746,   747,
+     661,   661,   670,   676,   676,   685,   685,   694,   700,   706,
+     712,   712,   721,   721,   733,   733,   742,   743,   746,   747,
      748,   749,   750,   753,   753,   764,   770,   770,   783,   783,
      796,   796,   807,   808,   811,   812,   815,   815,   825,   826,
      829,   830,   831,   832,   833,   834,   835,   836,   837,   838,
@@ -5708,48 +5707,48 @@ namespace isc { namespace dhcp {
     1353,  1354,  1355,  1356,  1357,  1358,  1359,  1360,  1361,  1362,
     1363,  1364,  1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,
     1373,  1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,
-    1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1393,  1393,
-    1402,  1402,  1411,  1411,  1420,  1420,  1429,  1429,  1440,  1440,
-    1448,  1449,  1450,  1451,  1454,  1460,  1468,  1468,  1480,  1481,
-    1485,  1486,  1489,  1489,  1497,  1498,  1501,  1502,  1503,  1504,
+    1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,  1394,
+    1394,  1403,  1403,  1412,  1412,  1421,  1421,  1430,  1430,  1441,
+    1441,  1449,  1450,  1451,  1452,  1455,  1461,  1469,  1469,  1481,
+    1482,  1486,  1487,  1490,  1490,  1498,  1499,  1502,  1503,  1504,
     1505,  1506,  1507,  1508,  1509,  1510,  1511,  1512,  1513,  1514,
     1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,  1523,  1524,
     1525,  1526,  1527,  1528,  1529,  1530,  1531,  1532,  1533,  1534,
-    1535,  1542,  1542,  1556,  1556,  1565,  1566,  1569,  1570,  1575,
-    1575,  1590,  1590,  1604,  1605,  1608,  1609,  1612,  1613,  1614,
-    1615,  1616,  1617,  1618,  1619,  1620,  1621,  1624,  1626,  1632,
-    1634,  1634,  1643,  1643,  1652,  1652,  1661,  1663,  1663,  1672,
-    1682,  1682,  1695,  1696,  1701,  1702,  1707,  1707,  1719,  1719,
-    1731,  1732,  1737,  1738,  1743,  1744,  1745,  1746,  1747,  1748,
-    1749,  1750,  1751,  1754,  1756,  1756,  1765,  1767,  1769,  1775,
-    1784,  1784,  1797,  1798,  1801,  1802,  1805,  1805,  1815,  1815,
-    1825,  1826,  1829,  1830,  1831,  1832,  1833,  1834,  1835,  1838,
-    1838,  1847,  1847,  1872,  1872,  1902,  1902,  1915,  1916,  1919,
-    1920,  1923,  1923,  1935,  1935,  1947,  1948,  1951,  1952,  1953,
-    1954,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1964,  1964,
-    1973,  1979,  1979,  1988,  1994,  2003,  2003,  2014,  2015,  2018,
-    2019,  2022,  2022,  2031,  2031,  2040,  2041,  2044,  2045,  2049,
-    2050,  2051,  2052,  2053,  2054,  2055,  2056,  2057,  2058,  2059,
-    2062,  2062,  2073,  2073,  2084,  2084,  2093,  2093,  2102,  2102,
-    2111,  2111,  2120,  2120,  2134,  2134,  2145,  2146,  2149,  2149,
-    2161,  2161,  2172,  2173,  2176,  2176,  2186,  2187,  2190,  2191,
-    2194,  2195,  2196,  2197,  2198,  2199,  2200,  2203,  2205,  2205,
-    2214,  2223,  2223,  2236,  2237,  2240,  2241,  2242,  2243,  2244,
-    2245,  2246,  2247,  2248,  2251,  2251,  2259,  2260,  2261,  2264,
-    2270,  2270,  2279,  2285,  2293,  2301,  2301,  2312,  2313,  2316,
-    2317,  2318,  2319,  2320,  2323,  2323,  2332,  2332,  2344,  2344,
-    2357,  2358,  2361,  2362,  2363,  2364,  2365,  2366,  2369,  2375,
-    2375,  2384,  2390,  2390,  2400,  2400,  2413,  2413,  2423,  2424,
-    2427,  2428,  2429,  2430,  2431,  2432,  2433,  2434,  2435,  2436,
-    2437,  2438,  2439,  2440,  2441,  2442,  2443,  2444,  2447,  2454,
-    2454,  2463,  2463,  2472,  2478,  2478,  2487,  2493,  2499,  2499,
-    2508,  2509,  2512,  2512,  2522,  2529,  2536,  2536,  2545,  2545,
-    2555,  2555,  2565,  2565,  2577,  2577,  2589,  2589,  2599,  2600,
-    2604,  2605,  2608,  2608,  2619,  2627,  2627,  2640,  2641,  2645,
-    2645,  2653,  2654,  2657,  2658,  2659,  2660,  2661,  2662,  2663,
-    2666,  2672,  2672,  2681,  2681,  2692,  2693,  2696,  2696,  2704,
-    2705,  2708,  2709,  2710,  2711,  2712,  2715,  2715,  2724,  2730,
-    2736,  2742,  2742
+    1535,  1536,  1537,  1544,  1544,  1558,  1558,  1567,  1568,  1571,
+    1572,  1577,  1577,  1592,  1592,  1606,  1607,  1610,  1611,  1614,
+    1615,  1616,  1617,  1618,  1619,  1620,  1621,  1622,  1623,  1626,
+    1628,  1634,  1636,  1636,  1645,  1645,  1654,  1654,  1663,  1665,
+    1665,  1674,  1684,  1684,  1697,  1698,  1703,  1704,  1709,  1709,
+    1721,  1721,  1733,  1734,  1739,  1740,  1745,  1746,  1747,  1748,
+    1749,  1750,  1751,  1752,  1753,  1756,  1758,  1758,  1767,  1769,
+    1771,  1777,  1786,  1786,  1799,  1800,  1803,  1804,  1807,  1807,
+    1817,  1817,  1827,  1828,  1831,  1832,  1833,  1834,  1835,  1836,
+    1837,  1840,  1840,  1849,  1849,  1874,  1874,  1904,  1904,  1917,
+    1918,  1921,  1922,  1925,  1925,  1937,  1937,  1949,  1950,  1953,
+    1954,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1962,  1963,
+    1966,  1966,  1975,  1981,  1981,  1990,  1996,  2005,  2005,  2016,
+    2017,  2020,  2021,  2024,  2024,  2033,  2033,  2042,  2043,  2046,
+    2047,  2051,  2052,  2053,  2054,  2055,  2056,  2057,  2058,  2059,
+    2060,  2061,  2064,  2064,  2075,  2075,  2086,  2086,  2095,  2095,
+    2104,  2104,  2113,  2113,  2122,  2122,  2136,  2136,  2147,  2148,
+    2151,  2151,  2163,  2163,  2174,  2175,  2178,  2178,  2188,  2189,
+    2192,  2193,  2196,  2197,  2198,  2199,  2200,  2201,  2202,  2205,
+    2207,  2207,  2216,  2225,  2225,  2238,  2239,  2242,  2243,  2244,
+    2245,  2246,  2247,  2248,  2249,  2250,  2253,  2253,  2261,  2262,
+    2263,  2266,  2272,  2272,  2281,  2287,  2295,  2303,  2303,  2314,
+    2315,  2318,  2319,  2320,  2321,  2322,  2325,  2325,  2334,  2334,
+    2346,  2346,  2359,  2360,  2363,  2364,  2365,  2366,  2367,  2368,
+    2371,  2377,  2377,  2386,  2392,  2392,  2402,  2402,  2415,  2415,
+    2425,  2426,  2429,  2430,  2431,  2432,  2433,  2434,  2435,  2436,
+    2437,  2438,  2439,  2440,  2441,  2442,  2443,  2444,  2445,  2446,
+    2449,  2456,  2456,  2465,  2465,  2474,  2480,  2480,  2489,  2495,
+    2501,  2501,  2510,  2511,  2514,  2514,  2524,  2531,  2538,  2538,
+    2547,  2547,  2557,  2557,  2567,  2567,  2579,  2579,  2591,  2591,
+    2601,  2602,  2606,  2607,  2610,  2610,  2621,  2629,  2629,  2642,
+    2643,  2647,  2647,  2655,  2656,  2659,  2660,  2661,  2662,  2663,
+    2664,  2665,  2668,  2674,  2674,  2683,  2683,  2694,  2695,  2698,
+    2698,  2706,  2707,  2710,  2711,  2712,  2713,  2714,  2717,  2717,
+    2726,  2732,  2738,  2744,  2744
   };
 
   void
@@ -5782,9 +5781,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5786 "dhcp6_parser.cc"
+#line 5785 "dhcp6_parser.cc"
 
-#line 2751 "dhcp6_parser.yy"
+#line 2753 "dhcp6_parser.yy"
 
 
 void
index dd4b067b73b9b1d35a6735b1b50fa9a472a7d8b4..462f92f22db6456246a4e2f7947984e287dbf658 100644 (file)
@@ -549,113 +549,113 @@ namespace isc { namespace dhcp {
     TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, // "ddns-replace-client-name"
     TOKEN_DDNS_GENERATED_PREFIX = 320, // "ddns-generated-prefix"
     TOKEN_DDNS_QUALIFYING_SUFFIX = 321, // "ddns-qualifying-suffix"
-    TOKEN_STORE_EXTENDED_INFO = 322, // "store-extended-info"
-    TOKEN_SUBNET6 = 323,           // "subnet6"
-    TOKEN_OPTION_DEF = 324,        // "option-def"
-    TOKEN_OPTION_DATA = 325,       // "option-data"
-    TOKEN_NAME = 326,              // "name"
-    TOKEN_DATA = 327,              // "data"
-    TOKEN_CODE = 328,              // "code"
-    TOKEN_SPACE = 329,             // "space"
-    TOKEN_CSV_FORMAT = 330,        // "csv-format"
-    TOKEN_ALWAYS_SEND = 331,       // "always-send"
-    TOKEN_RECORD_TYPES = 332,      // "record-types"
-    TOKEN_ENCAPSULATE = 333,       // "encapsulate"
-    TOKEN_ARRAY = 334,             // "array"
-    TOKEN_POOLS = 335,             // "pools"
-    TOKEN_POOL = 336,              // "pool"
-    TOKEN_PD_POOLS = 337,          // "pd-pools"
-    TOKEN_PREFIX = 338,            // "prefix"
-    TOKEN_PREFIX_LEN = 339,        // "prefix-len"
-    TOKEN_EXCLUDED_PREFIX = 340,   // "excluded-prefix"
-    TOKEN_EXCLUDED_PREFIX_LEN = 341, // "excluded-prefix-len"
-    TOKEN_DELEGATED_LEN = 342,     // "delegated-len"
-    TOKEN_USER_CONTEXT = 343,      // "user-context"
-    TOKEN_COMMENT = 344,           // "comment"
-    TOKEN_SUBNET = 345,            // "subnet"
-    TOKEN_INTERFACE = 346,         // "interface"
-    TOKEN_INTERFACE_ID = 347,      // "interface-id"
-    TOKEN_ID = 348,                // "id"
-    TOKEN_RAPID_COMMIT = 349,      // "rapid-commit"
-    TOKEN_RESERVATION_MODE = 350,  // "reservation-mode"
-    TOKEN_DISABLED = 351,          // "disabled"
-    TOKEN_OUT_OF_POOL = 352,       // "out-of-pool"
-    TOKEN_GLOBAL = 353,            // "global"
-    TOKEN_ALL = 354,               // "all"
-    TOKEN_SHARED_NETWORKS = 355,   // "shared-networks"
-    TOKEN_MAC_SOURCES = 356,       // "mac-sources"
-    TOKEN_RELAY_SUPPLIED_OPTIONS = 357, // "relay-supplied-options"
-    TOKEN_HOST_RESERVATION_IDENTIFIERS = 358, // "host-reservation-identifiers"
-    TOKEN_SANITY_CHECKS = 359,     // "sanity-checks"
-    TOKEN_LEASE_CHECKS = 360,      // "lease-checks"
-    TOKEN_CLIENT_CLASSES = 361,    // "client-classes"
-    TOKEN_REQUIRE_CLIENT_CLASSES = 362, // "require-client-classes"
-    TOKEN_TEST = 363,              // "test"
-    TOKEN_ONLY_IF_REQUIRED = 364,  // "only-if-required"
-    TOKEN_CLIENT_CLASS = 365,      // "client-class"
-    TOKEN_RESERVATIONS = 366,      // "reservations"
-    TOKEN_IP_ADDRESSES = 367,      // "ip-addresses"
-    TOKEN_PREFIXES = 368,          // "prefixes"
-    TOKEN_DUID = 369,              // "duid"
-    TOKEN_HW_ADDRESS = 370,        // "hw-address"
-    TOKEN_HOSTNAME = 371,          // "hostname"
-    TOKEN_FLEX_ID = 372,           // "flex-id"
-    TOKEN_RELAY = 373,             // "relay"
-    TOKEN_IP_ADDRESS = 374,        // "ip-address"
-    TOKEN_HOOKS_LIBRARIES = 375,   // "hooks-libraries"
-    TOKEN_LIBRARY = 376,           // "library"
-    TOKEN_PARAMETERS = 377,        // "parameters"
-    TOKEN_EXPIRED_LEASES_PROCESSING = 378, // "expired-leases-processing"
-    TOKEN_RECLAIM_TIMER_WAIT_TIME = 379, // "reclaim-timer-wait-time"
-    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 380, // "flush-reclaimed-timer-wait-time"
-    TOKEN_HOLD_RECLAIMED_TIME = 381, // "hold-reclaimed-time"
-    TOKEN_MAX_RECLAIM_LEASES = 382, // "max-reclaim-leases"
-    TOKEN_MAX_RECLAIM_TIME = 383,  // "max-reclaim-time"
-    TOKEN_UNWARNED_RECLAIM_CYCLES = 384, // "unwarned-reclaim-cycles"
-    TOKEN_SERVER_ID = 385,         // "server-id"
-    TOKEN_LLT = 386,               // "LLT"
-    TOKEN_EN = 387,                // "EN"
-    TOKEN_LL = 388,                // "LL"
-    TOKEN_IDENTIFIER = 389,        // "identifier"
-    TOKEN_HTYPE = 390,             // "htype"
-    TOKEN_TIME = 391,              // "time"
-    TOKEN_ENTERPRISE_ID = 392,     // "enterprise-id"
-    TOKEN_DHCP4O6_PORT = 393,      // "dhcp4o6-port"
-    TOKEN_DHCP_MULTI_THREADING = 394, // "multi-threading"
-    TOKEN_ENABLE_MULTI_THREADING = 395, // "enable-multi-threading"
-    TOKEN_THREAD_POOL_SIZE = 396,  // "thread-pool-size"
-    TOKEN_PACKET_QUEUE_SIZE = 397, // "packet-queue-size"
-    TOKEN_CONTROL_SOCKET = 398,    // "control-socket"
-    TOKEN_SOCKET_TYPE = 399,       // "socket-type"
-    TOKEN_SOCKET_NAME = 400,       // "socket-name"
-    TOKEN_DHCP_QUEUE_CONTROL = 401, // "dhcp-queue-control"
-    TOKEN_ENABLE_QUEUE = 402,      // "enable-queue"
-    TOKEN_QUEUE_TYPE = 403,        // "queue-type"
-    TOKEN_CAPACITY = 404,          // "capacity"
-    TOKEN_DHCP_DDNS = 405,         // "dhcp-ddns"
-    TOKEN_ENABLE_UPDATES = 406,    // "enable-updates"
-    TOKEN_QUALIFYING_SUFFIX = 407, // "qualifying-suffix"
-    TOKEN_SERVER_IP = 408,         // "server-ip"
-    TOKEN_SERVER_PORT = 409,       // "server-port"
-    TOKEN_SENDER_IP = 410,         // "sender-ip"
-    TOKEN_SENDER_PORT = 411,       // "sender-port"
-    TOKEN_MAX_QUEUE_SIZE = 412,    // "max-queue-size"
-    TOKEN_NCR_PROTOCOL = 413,      // "ncr-protocol"
-    TOKEN_NCR_FORMAT = 414,        // "ncr-format"
-    TOKEN_OVERRIDE_NO_UPDATE = 415, // "override-no-update"
-    TOKEN_OVERRIDE_CLIENT_UPDATE = 416, // "override-client-update"
-    TOKEN_REPLACE_CLIENT_NAME = 417, // "replace-client-name"
-    TOKEN_GENERATED_PREFIX = 418,  // "generated-prefix"
-    TOKEN_UDP = 419,               // "UDP"
-    TOKEN_TCP = 420,               // "TCP"
-    TOKEN_JSON = 421,              // "JSON"
-    TOKEN_WHEN_PRESENT = 422,      // "when-present"
-    TOKEN_NEVER = 423,             // "never"
-    TOKEN_ALWAYS = 424,            // "always"
-    TOKEN_WHEN_NOT_PRESENT = 425,  // "when-not-present"
-    TOKEN_HOSTNAME_CHAR_SET = 426, // "hostname-char-set"
-    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 427, // "hostname-char-replacement"
-    TOKEN_IP_RESERVATIONS_UNIQUE = 428, // "ip-reservations-unique"
+    TOKEN_DDNS_UPDATE_ON_RENEW = 322, // "ddns-update-on-renew"
+    TOKEN_STORE_EXTENDED_INFO = 323, // "store-extended-info"
+    TOKEN_SUBNET6 = 324,           // "subnet6"
+    TOKEN_OPTION_DEF = 325,        // "option-def"
+    TOKEN_OPTION_DATA = 326,       // "option-data"
+    TOKEN_NAME = 327,              // "name"
+    TOKEN_DATA = 328,              // "data"
+    TOKEN_CODE = 329,              // "code"
+    TOKEN_SPACE = 330,             // "space"
+    TOKEN_CSV_FORMAT = 331,        // "csv-format"
+    TOKEN_ALWAYS_SEND = 332,       // "always-send"
+    TOKEN_RECORD_TYPES = 333,      // "record-types"
+    TOKEN_ENCAPSULATE = 334,       // "encapsulate"
+    TOKEN_ARRAY = 335,             // "array"
+    TOKEN_POOLS = 336,             // "pools"
+    TOKEN_POOL = 337,              // "pool"
+    TOKEN_PD_POOLS = 338,          // "pd-pools"
+    TOKEN_PREFIX = 339,            // "prefix"
+    TOKEN_PREFIX_LEN = 340,        // "prefix-len"
+    TOKEN_EXCLUDED_PREFIX = 341,   // "excluded-prefix"
+    TOKEN_EXCLUDED_PREFIX_LEN = 342, // "excluded-prefix-len"
+    TOKEN_DELEGATED_LEN = 343,     // "delegated-len"
+    TOKEN_USER_CONTEXT = 344,      // "user-context"
+    TOKEN_COMMENT = 345,           // "comment"
+    TOKEN_SUBNET = 346,            // "subnet"
+    TOKEN_INTERFACE = 347,         // "interface"
+    TOKEN_INTERFACE_ID = 348,      // "interface-id"
+    TOKEN_ID = 349,                // "id"
+    TOKEN_RAPID_COMMIT = 350,      // "rapid-commit"
+    TOKEN_RESERVATION_MODE = 351,  // "reservation-mode"
+    TOKEN_DISABLED = 352,          // "disabled"
+    TOKEN_OUT_OF_POOL = 353,       // "out-of-pool"
+    TOKEN_GLOBAL = 354,            // "global"
+    TOKEN_ALL = 355,               // "all"
+    TOKEN_SHARED_NETWORKS = 356,   // "shared-networks"
+    TOKEN_MAC_SOURCES = 357,       // "mac-sources"
+    TOKEN_RELAY_SUPPLIED_OPTIONS = 358, // "relay-supplied-options"
+    TOKEN_HOST_RESERVATION_IDENTIFIERS = 359, // "host-reservation-identifiers"
+    TOKEN_SANITY_CHECKS = 360,     // "sanity-checks"
+    TOKEN_LEASE_CHECKS = 361,      // "lease-checks"
+    TOKEN_CLIENT_CLASSES = 362,    // "client-classes"
+    TOKEN_REQUIRE_CLIENT_CLASSES = 363, // "require-client-classes"
+    TOKEN_TEST = 364,              // "test"
+    TOKEN_ONLY_IF_REQUIRED = 365,  // "only-if-required"
+    TOKEN_CLIENT_CLASS = 366,      // "client-class"
+    TOKEN_RESERVATIONS = 367,      // "reservations"
+    TOKEN_IP_ADDRESSES = 368,      // "ip-addresses"
+    TOKEN_PREFIXES = 369,          // "prefixes"
+    TOKEN_DUID = 370,              // "duid"
+    TOKEN_HW_ADDRESS = 371,        // "hw-address"
+    TOKEN_HOSTNAME = 372,          // "hostname"
+    TOKEN_FLEX_ID = 373,           // "flex-id"
+    TOKEN_RELAY = 374,             // "relay"
+    TOKEN_IP_ADDRESS = 375,        // "ip-address"
+    TOKEN_HOOKS_LIBRARIES = 376,   // "hooks-libraries"
+    TOKEN_LIBRARY = 377,           // "library"
+    TOKEN_PARAMETERS = 378,        // "parameters"
+    TOKEN_EXPIRED_LEASES_PROCESSING = 379, // "expired-leases-processing"
+    TOKEN_RECLAIM_TIMER_WAIT_TIME = 380, // "reclaim-timer-wait-time"
+    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 381, // "flush-reclaimed-timer-wait-time"
+    TOKEN_HOLD_RECLAIMED_TIME = 382, // "hold-reclaimed-time"
+    TOKEN_MAX_RECLAIM_LEASES = 383, // "max-reclaim-leases"
+    TOKEN_MAX_RECLAIM_TIME = 384,  // "max-reclaim-time"
+    TOKEN_UNWARNED_RECLAIM_CYCLES = 385, // "unwarned-reclaim-cycles"
+    TOKEN_SERVER_ID = 386,         // "server-id"
+    TOKEN_LLT = 387,               // "LLT"
+    TOKEN_EN = 388,                // "EN"
+    TOKEN_LL = 389,                // "LL"
+    TOKEN_IDENTIFIER = 390,        // "identifier"
+    TOKEN_HTYPE = 391,             // "htype"
+    TOKEN_TIME = 392,              // "time"
+    TOKEN_ENTERPRISE_ID = 393,     // "enterprise-id"
+    TOKEN_DHCP4O6_PORT = 394,      // "dhcp4o6-port"
+    TOKEN_DHCP_MULTI_THREADING = 395, // "multi-threading"
+    TOKEN_ENABLE_MULTI_THREADING = 396, // "enable-multi-threading"
+    TOKEN_THREAD_POOL_SIZE = 397,  // "thread-pool-size"
+    TOKEN_PACKET_QUEUE_SIZE = 398, // "packet-queue-size"
+    TOKEN_CONTROL_SOCKET = 399,    // "control-socket"
+    TOKEN_SOCKET_TYPE = 400,       // "socket-type"
+    TOKEN_SOCKET_NAME = 401,       // "socket-name"
+    TOKEN_DHCP_QUEUE_CONTROL = 402, // "dhcp-queue-control"
+    TOKEN_ENABLE_QUEUE = 403,      // "enable-queue"
+    TOKEN_QUEUE_TYPE = 404,        // "queue-type"
+    TOKEN_CAPACITY = 405,          // "capacity"
+    TOKEN_DHCP_DDNS = 406,         // "dhcp-ddns"
+    TOKEN_ENABLE_UPDATES = 407,    // "enable-updates"
+    TOKEN_QUALIFYING_SUFFIX = 408, // "qualifying-suffix"
+    TOKEN_SERVER_IP = 409,         // "server-ip"
+    TOKEN_SERVER_PORT = 410,       // "server-port"
+    TOKEN_SENDER_IP = 411,         // "sender-ip"
+    TOKEN_SENDER_PORT = 412,       // "sender-port"
+    TOKEN_MAX_QUEUE_SIZE = 413,    // "max-queue-size"
+    TOKEN_NCR_PROTOCOL = 414,      // "ncr-protocol"
+    TOKEN_NCR_FORMAT = 415,        // "ncr-format"
+    TOKEN_OVERRIDE_NO_UPDATE = 416, // "override-no-update"
+    TOKEN_OVERRIDE_CLIENT_UPDATE = 417, // "override-client-update"
+    TOKEN_REPLACE_CLIENT_NAME = 418, // "replace-client-name"
+    TOKEN_GENERATED_PREFIX = 419,  // "generated-prefix"
+    TOKEN_UDP = 420,               // "UDP"
+    TOKEN_TCP = 421,               // "TCP"
+    TOKEN_JSON = 422,              // "JSON"
+    TOKEN_WHEN_PRESENT = 423,      // "when-present"
+    TOKEN_NEVER = 424,             // "never"
+    TOKEN_ALWAYS = 425,            // "always"
+    TOKEN_WHEN_NOT_PRESENT = 426,  // "when-not-present"
+    TOKEN_HOSTNAME_CHAR_SET = 427, // "hostname-char-set"
+    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 428, // "hostname-char-replacement"
     TOKEN_LOGGERS = 429,           // "loggers"
     TOKEN_OUTPUT_OPTIONS = 430,    // "output_options"
     TOKEN_OUTPUT = 431,            // "output"
@@ -768,113 +768,113 @@ namespace isc { namespace dhcp {
         S_DDNS_REPLACE_CLIENT_NAME = 64,         // "ddns-replace-client-name"
         S_DDNS_GENERATED_PREFIX = 65,            // "ddns-generated-prefix"
         S_DDNS_QUALIFYING_SUFFIX = 66,           // "ddns-qualifying-suffix"
-        S_STORE_EXTENDED_INFO = 67,              // "store-extended-info"
-        S_SUBNET6 = 68,                          // "subnet6"
-        S_OPTION_DEF = 69,                       // "option-def"
-        S_OPTION_DATA = 70,                      // "option-data"
-        S_NAME = 71,                             // "name"
-        S_DATA = 72,                             // "data"
-        S_CODE = 73,                             // "code"
-        S_SPACE = 74,                            // "space"
-        S_CSV_FORMAT = 75,                       // "csv-format"
-        S_ALWAYS_SEND = 76,                      // "always-send"
-        S_RECORD_TYPES = 77,                     // "record-types"
-        S_ENCAPSULATE = 78,                      // "encapsulate"
-        S_ARRAY = 79,                            // "array"
-        S_POOLS = 80,                            // "pools"
-        S_POOL = 81,                             // "pool"
-        S_PD_POOLS = 82,                         // "pd-pools"
-        S_PREFIX = 83,                           // "prefix"
-        S_PREFIX_LEN = 84,                       // "prefix-len"
-        S_EXCLUDED_PREFIX = 85,                  // "excluded-prefix"
-        S_EXCLUDED_PREFIX_LEN = 86,              // "excluded-prefix-len"
-        S_DELEGATED_LEN = 87,                    // "delegated-len"
-        S_USER_CONTEXT = 88,                     // "user-context"
-        S_COMMENT = 89,                          // "comment"
-        S_SUBNET = 90,                           // "subnet"
-        S_INTERFACE = 91,                        // "interface"
-        S_INTERFACE_ID = 92,                     // "interface-id"
-        S_ID = 93,                               // "id"
-        S_RAPID_COMMIT = 94,                     // "rapid-commit"
-        S_RESERVATION_MODE = 95,                 // "reservation-mode"
-        S_DISABLED = 96,                         // "disabled"
-        S_OUT_OF_POOL = 97,                      // "out-of-pool"
-        S_GLOBAL = 98,                           // "global"
-        S_ALL = 99,                              // "all"
-        S_SHARED_NETWORKS = 100,                 // "shared-networks"
-        S_MAC_SOURCES = 101,                     // "mac-sources"
-        S_RELAY_SUPPLIED_OPTIONS = 102,          // "relay-supplied-options"
-        S_HOST_RESERVATION_IDENTIFIERS = 103,    // "host-reservation-identifiers"
-        S_SANITY_CHECKS = 104,                   // "sanity-checks"
-        S_LEASE_CHECKS = 105,                    // "lease-checks"
-        S_CLIENT_CLASSES = 106,                  // "client-classes"
-        S_REQUIRE_CLIENT_CLASSES = 107,          // "require-client-classes"
-        S_TEST = 108,                            // "test"
-        S_ONLY_IF_REQUIRED = 109,                // "only-if-required"
-        S_CLIENT_CLASS = 110,                    // "client-class"
-        S_RESERVATIONS = 111,                    // "reservations"
-        S_IP_ADDRESSES = 112,                    // "ip-addresses"
-        S_PREFIXES = 113,                        // "prefixes"
-        S_DUID = 114,                            // "duid"
-        S_HW_ADDRESS = 115,                      // "hw-address"
-        S_HOSTNAME = 116,                        // "hostname"
-        S_FLEX_ID = 117,                         // "flex-id"
-        S_RELAY = 118,                           // "relay"
-        S_IP_ADDRESS = 119,                      // "ip-address"
-        S_HOOKS_LIBRARIES = 120,                 // "hooks-libraries"
-        S_LIBRARY = 121,                         // "library"
-        S_PARAMETERS = 122,                      // "parameters"
-        S_EXPIRED_LEASES_PROCESSING = 123,       // "expired-leases-processing"
-        S_RECLAIM_TIMER_WAIT_TIME = 124,         // "reclaim-timer-wait-time"
-        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 125, // "flush-reclaimed-timer-wait-time"
-        S_HOLD_RECLAIMED_TIME = 126,             // "hold-reclaimed-time"
-        S_MAX_RECLAIM_LEASES = 127,              // "max-reclaim-leases"
-        S_MAX_RECLAIM_TIME = 128,                // "max-reclaim-time"
-        S_UNWARNED_RECLAIM_CYCLES = 129,         // "unwarned-reclaim-cycles"
-        S_SERVER_ID = 130,                       // "server-id"
-        S_LLT = 131,                             // "LLT"
-        S_EN = 132,                              // "EN"
-        S_LL = 133,                              // "LL"
-        S_IDENTIFIER = 134,                      // "identifier"
-        S_HTYPE = 135,                           // "htype"
-        S_TIME = 136,                            // "time"
-        S_ENTERPRISE_ID = 137,                   // "enterprise-id"
-        S_DHCP4O6_PORT = 138,                    // "dhcp4o6-port"
-        S_DHCP_MULTI_THREADING = 139,            // "multi-threading"
-        S_ENABLE_MULTI_THREADING = 140,          // "enable-multi-threading"
-        S_THREAD_POOL_SIZE = 141,                // "thread-pool-size"
-        S_PACKET_QUEUE_SIZE = 142,               // "packet-queue-size"
-        S_CONTROL_SOCKET = 143,                  // "control-socket"
-        S_SOCKET_TYPE = 144,                     // "socket-type"
-        S_SOCKET_NAME = 145,                     // "socket-name"
-        S_DHCP_QUEUE_CONTROL = 146,              // "dhcp-queue-control"
-        S_ENABLE_QUEUE = 147,                    // "enable-queue"
-        S_QUEUE_TYPE = 148,                      // "queue-type"
-        S_CAPACITY = 149,                        // "capacity"
-        S_DHCP_DDNS = 150,                       // "dhcp-ddns"
-        S_ENABLE_UPDATES = 151,                  // "enable-updates"
-        S_QUALIFYING_SUFFIX = 152,               // "qualifying-suffix"
-        S_SERVER_IP = 153,                       // "server-ip"
-        S_SERVER_PORT = 154,                     // "server-port"
-        S_SENDER_IP = 155,                       // "sender-ip"
-        S_SENDER_PORT = 156,                     // "sender-port"
-        S_MAX_QUEUE_SIZE = 157,                  // "max-queue-size"
-        S_NCR_PROTOCOL = 158,                    // "ncr-protocol"
-        S_NCR_FORMAT = 159,                      // "ncr-format"
-        S_OVERRIDE_NO_UPDATE = 160,              // "override-no-update"
-        S_OVERRIDE_CLIENT_UPDATE = 161,          // "override-client-update"
-        S_REPLACE_CLIENT_NAME = 162,             // "replace-client-name"
-        S_GENERATED_PREFIX = 163,                // "generated-prefix"
-        S_UDP = 164,                             // "UDP"
-        S_TCP = 165,                             // "TCP"
-        S_JSON = 166,                            // "JSON"
-        S_WHEN_PRESENT = 167,                    // "when-present"
-        S_NEVER = 168,                           // "never"
-        S_ALWAYS = 169,                          // "always"
-        S_WHEN_NOT_PRESENT = 170,                // "when-not-present"
-        S_HOSTNAME_CHAR_SET = 171,               // "hostname-char-set"
-        S_HOSTNAME_CHAR_REPLACEMENT = 172,       // "hostname-char-replacement"
-        S_IP_RESERVATIONS_UNIQUE = 173,          // "ip-reservations-unique"
+        S_DDNS_UPDATE_ON_RENEW = 67,             // "ddns-update-on-renew"
+        S_STORE_EXTENDED_INFO = 68,              // "store-extended-info"
+        S_SUBNET6 = 69,                          // "subnet6"
+        S_OPTION_DEF = 70,                       // "option-def"
+        S_OPTION_DATA = 71,                      // "option-data"
+        S_NAME = 72,                             // "name"
+        S_DATA = 73,                             // "data"
+        S_CODE = 74,                             // "code"
+        S_SPACE = 75,                            // "space"
+        S_CSV_FORMAT = 76,                       // "csv-format"
+        S_ALWAYS_SEND = 77,                      // "always-send"
+        S_RECORD_TYPES = 78,                     // "record-types"
+        S_ENCAPSULATE = 79,                      // "encapsulate"
+        S_ARRAY = 80,                            // "array"
+        S_POOLS = 81,                            // "pools"
+        S_POOL = 82,                             // "pool"
+        S_PD_POOLS = 83,                         // "pd-pools"
+        S_PREFIX = 84,                           // "prefix"
+        S_PREFIX_LEN = 85,                       // "prefix-len"
+        S_EXCLUDED_PREFIX = 86,                  // "excluded-prefix"
+        S_EXCLUDED_PREFIX_LEN = 87,              // "excluded-prefix-len"
+        S_DELEGATED_LEN = 88,                    // "delegated-len"
+        S_USER_CONTEXT = 89,                     // "user-context"
+        S_COMMENT = 90,                          // "comment"
+        S_SUBNET = 91,                           // "subnet"
+        S_INTERFACE = 92,                        // "interface"
+        S_INTERFACE_ID = 93,                     // "interface-id"
+        S_ID = 94,                               // "id"
+        S_RAPID_COMMIT = 95,                     // "rapid-commit"
+        S_RESERVATION_MODE = 96,                 // "reservation-mode"
+        S_DISABLED = 97,                         // "disabled"
+        S_OUT_OF_POOL = 98,                      // "out-of-pool"
+        S_GLOBAL = 99,                           // "global"
+        S_ALL = 100,                             // "all"
+        S_SHARED_NETWORKS = 101,                 // "shared-networks"
+        S_MAC_SOURCES = 102,                     // "mac-sources"
+        S_RELAY_SUPPLIED_OPTIONS = 103,          // "relay-supplied-options"
+        S_HOST_RESERVATION_IDENTIFIERS = 104,    // "host-reservation-identifiers"
+        S_SANITY_CHECKS = 105,                   // "sanity-checks"
+        S_LEASE_CHECKS = 106,                    // "lease-checks"
+        S_CLIENT_CLASSES = 107,                  // "client-classes"
+        S_REQUIRE_CLIENT_CLASSES = 108,          // "require-client-classes"
+        S_TEST = 109,                            // "test"
+        S_ONLY_IF_REQUIRED = 110,                // "only-if-required"
+        S_CLIENT_CLASS = 111,                    // "client-class"
+        S_RESERVATIONS = 112,                    // "reservations"
+        S_IP_ADDRESSES = 113,                    // "ip-addresses"
+        S_PREFIXES = 114,                        // "prefixes"
+        S_DUID = 115,                            // "duid"
+        S_HW_ADDRESS = 116,                      // "hw-address"
+        S_HOSTNAME = 117,                        // "hostname"
+        S_FLEX_ID = 118,                         // "flex-id"
+        S_RELAY = 119,                           // "relay"
+        S_IP_ADDRESS = 120,                      // "ip-address"
+        S_HOOKS_LIBRARIES = 121,                 // "hooks-libraries"
+        S_LIBRARY = 122,                         // "library"
+        S_PARAMETERS = 123,                      // "parameters"
+        S_EXPIRED_LEASES_PROCESSING = 124,       // "expired-leases-processing"
+        S_RECLAIM_TIMER_WAIT_TIME = 125,         // "reclaim-timer-wait-time"
+        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 126, // "flush-reclaimed-timer-wait-time"
+        S_HOLD_RECLAIMED_TIME = 127,             // "hold-reclaimed-time"
+        S_MAX_RECLAIM_LEASES = 128,              // "max-reclaim-leases"
+        S_MAX_RECLAIM_TIME = 129,                // "max-reclaim-time"
+        S_UNWARNED_RECLAIM_CYCLES = 130,         // "unwarned-reclaim-cycles"
+        S_SERVER_ID = 131,                       // "server-id"
+        S_LLT = 132,                             // "LLT"
+        S_EN = 133,                              // "EN"
+        S_LL = 134,                              // "LL"
+        S_IDENTIFIER = 135,                      // "identifier"
+        S_HTYPE = 136,                           // "htype"
+        S_TIME = 137,                            // "time"
+        S_ENTERPRISE_ID = 138,                   // "enterprise-id"
+        S_DHCP4O6_PORT = 139,                    // "dhcp4o6-port"
+        S_DHCP_MULTI_THREADING = 140,            // "multi-threading"
+        S_ENABLE_MULTI_THREADING = 141,          // "enable-multi-threading"
+        S_THREAD_POOL_SIZE = 142,                // "thread-pool-size"
+        S_PACKET_QUEUE_SIZE = 143,               // "packet-queue-size"
+        S_CONTROL_SOCKET = 144,                  // "control-socket"
+        S_SOCKET_TYPE = 145,                     // "socket-type"
+        S_SOCKET_NAME = 146,                     // "socket-name"
+        S_DHCP_QUEUE_CONTROL = 147,              // "dhcp-queue-control"
+        S_ENABLE_QUEUE = 148,                    // "enable-queue"
+        S_QUEUE_TYPE = 149,                      // "queue-type"
+        S_CAPACITY = 150,                        // "capacity"
+        S_DHCP_DDNS = 151,                       // "dhcp-ddns"
+        S_ENABLE_UPDATES = 152,                  // "enable-updates"
+        S_QUALIFYING_SUFFIX = 153,               // "qualifying-suffix"
+        S_SERVER_IP = 154,                       // "server-ip"
+        S_SERVER_PORT = 155,                     // "server-port"
+        S_SENDER_IP = 156,                       // "sender-ip"
+        S_SENDER_PORT = 157,                     // "sender-port"
+        S_MAX_QUEUE_SIZE = 158,                  // "max-queue-size"
+        S_NCR_PROTOCOL = 159,                    // "ncr-protocol"
+        S_NCR_FORMAT = 160,                      // "ncr-format"
+        S_OVERRIDE_NO_UPDATE = 161,              // "override-no-update"
+        S_OVERRIDE_CLIENT_UPDATE = 162,          // "override-client-update"
+        S_REPLACE_CLIENT_NAME = 163,             // "replace-client-name"
+        S_GENERATED_PREFIX = 164,                // "generated-prefix"
+        S_UDP = 165,                             // "UDP"
+        S_TCP = 166,                             // "TCP"
+        S_JSON = 167,                            // "JSON"
+        S_WHEN_PRESENT = 168,                    // "when-present"
+        S_NEVER = 169,                           // "never"
+        S_ALWAYS = 170,                          // "always"
+        S_WHEN_NOT_PRESENT = 171,                // "when-not-present"
+        S_HOSTNAME_CHAR_SET = 172,               // "hostname-char-set"
+        S_HOSTNAME_CHAR_REPLACEMENT = 173,       // "hostname-char-replacement"
         S_LOGGERS = 174,                         // "loggers"
         S_OUTPUT_OPTIONS = 175,                  // "output_options"
         S_OUTPUT = 176,                          // "output"
@@ -968,16 +968,16 @@ namespace isc { namespace dhcp {
         S_264_23 = 264,                          // $@23
         S_ddns_qualifying_suffix = 265,          // ddns_qualifying_suffix
         S_266_24 = 266,                          // $@24
-        S_hostname_char_set = 267,               // hostname_char_set
-        S_268_25 = 268,                          // $@25
-        S_hostname_char_replacement = 269,       // hostname_char_replacement
-        S_270_26 = 270,                          // $@26
-        S_store_extended_info = 271,             // store_extended_info
-        S_statistic_default_sample_count = 272,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 273,    // statistic_default_sample_age
-        S_server_tag = 274,                      // server_tag
-        S_275_27 = 275,                          // $@27
-        S_ip_reservations_unique = 276,          // ip_reservations_unique
+        S_ddns_update_on_renew = 267,            // ddns_update_on_renew
+        S_hostname_char_set = 268,               // hostname_char_set
+        S_269_25 = 269,                          // $@25
+        S_hostname_char_replacement = 270,       // hostname_char_replacement
+        S_271_26 = 271,                          // $@26
+        S_store_extended_info = 272,             // store_extended_info
+        S_statistic_default_sample_count = 273,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 274,    // statistic_default_sample_age
+        S_server_tag = 275,                      // server_tag
+        S_276_27 = 276,                          // $@27
         S_interfaces_config = 277,               // interfaces_config
         S_278_28 = 278,                          // $@28
         S_sub_interfaces6 = 279,                 // sub_interfaces6
@@ -1615,13 +1615,13 @@ switch (yykind)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -2729,6 +2729,21 @@ switch (yykind)
         return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_DDNS_UPDATE_ON_RENEW (location_type l)
+      {
+        return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_DDNS_UPDATE_ON_RENEW (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4319,21 +4334,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_IP_RESERVATIONS_UNIQUE (location_type l)
-      {
-        return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_IP_RESERVATIONS_UNIQUE (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5069,7 +5069,7 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1234,     ///< Last index in yytable_.
+      yylast_ = 1236,     ///< Last index in yytable_.
       yynnts_ = 425,  ///< Number of nonterminal symbols.
       yyfinal_ = 30 ///< Termination state number.
     };
index d4b26bb28f4f3686e3c3004d7d4fb7cd1077aaf2..60c9f4a2801c7cd29f705f8da9bcfb908e576ef4 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Locations for Bison parsers in C++
index ff1e8b107fbe5589e6aa0773d5d6490dd2e7d4bd..7211aa816f2470abb0fa5be46d55b454cccca6e6 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index c7e28b23ab980553a47a1bc0db06049dc6817d07..af3aa42bc6c051f5e248eec7eb3a1f66370cfae8 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202010081346
+// Generated 202010091243
 // A Bison parser, made by GNU Bison 3.7.2.
 
 // Starting with Bison 3.2, this file is useless: the structure it