]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3378] Regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Sun, 12 May 2024 13:19:44 +0000 (13:19 +0000)
committerFrancis Dupont <fdupont@isc.org>
Mon, 13 May 2024 16:15:43 +0000 (18:15 +0200)
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/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/location.hh

index 26ced7680be76a2a70b26266d7f64bca17251bc4..68e4b6c9f54ad522da96a217b485e1ba1a4b86ef 100644 (file)
@@ -2208,17 +2208,17 @@ static const flex_int16_t yy_rule_linenum[235] =
      1207, 1218, 1228, 1237, 1248, 1259, 1270, 1281, 1293, 1302,
      1311, 1320, 1329, 1338, 1347, 1356, 1365, 1374, 1383, 1393,
      1404, 1416, 1425, 1434, 1443, 1453, 1463, 1473, 1483, 1493,
-     1503, 1512, 1522, 1531, 1540, 1549, 1558, 1568, 1578, 1587,
-     1597, 1606, 1615, 1624, 1633, 1642, 1651, 1660, 1669, 1678,
-     1687, 1696, 1705, 1714, 1723, 1732, 1741, 1750, 1759, 1768,
-     1777, 1786, 1795, 1804, 1813, 1822, 1831, 1840, 1849, 1858,
-     1867, 1876, 1885, 1894, 1903, 1912, 1924, 1936, 1946, 1956,
-     1966, 1976, 1986, 1996, 2006, 2016, 2026, 2035, 2044, 2053,
-
-     2062, 2073, 2084, 2097, 2110, 2123, 2132, 2141, 2150, 2159,
-     2168, 2177, 2186, 2195, 2207, 2216, 2317, 2333, 2382, 2390,
-     2405, 2406, 2407, 2408, 2409, 2410, 2412, 2430, 2443, 2448,
-     2452, 2454, 2456, 2458
+     1503, 1512, 1522, 1531, 1540, 1549, 1558, 1568, 1577, 1586,
+     1596, 1605, 1614, 1623, 1632, 1641, 1650, 1659, 1668, 1677,
+     1686, 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758, 1767,
+     1776, 1785, 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857,
+     1866, 1875, 1884, 1893, 1902, 1911, 1923, 1935, 1945, 1955,
+     1965, 1975, 1985, 1995, 2005, 2015, 2025, 2034, 2043, 2052,
+
+     2061, 2072, 2083, 2096, 2109, 2122, 2131, 2140, 2149, 2158,
+     2167, 2176, 2185, 2194, 2206, 2215, 2316, 2332, 2381, 2389,
+     2404, 2405, 2406, 2407, 2408, 2409, 2411, 2429, 2442, 2447,
+     2451, 2453, 2455, 2457
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -4580,7 +4580,6 @@ YY_RULE_SETUP
 #line 1568 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
-    case isc::dhcp::Parser4Context::RELAY:
     case isc::dhcp::Parser4Context::RESERVATIONS:
     return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
     default:
@@ -4590,7 +4589,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1578 "dhcp4_lexer.ll"
+#line 1577 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -4602,7 +4601,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1587 "dhcp4_lexer.ll"
+#line 1586 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4614,7 +4613,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1597 "dhcp4_lexer.ll"
+#line 1596 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4626,7 +4625,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1606 "dhcp4_lexer.ll"
+#line 1605 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4638,7 +4637,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1615 "dhcp4_lexer.ll"
+#line 1614 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4650,7 +4649,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1624 "dhcp4_lexer.ll"
+#line 1623 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4662,7 +4661,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1633 "dhcp4_lexer.ll"
+#line 1632 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4674,7 +4673,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1642 "dhcp4_lexer.ll"
+#line 1641 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4686,7 +4685,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1651 "dhcp4_lexer.ll"
+#line 1650 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4698,7 +4697,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1660 "dhcp4_lexer.ll"
+#line 1659 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4710,7 +4709,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1669 "dhcp4_lexer.ll"
+#line 1668 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4722,7 +4721,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 1678 "dhcp4_lexer.ll"
+#line 1677 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4734,7 +4733,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 1687 "dhcp4_lexer.ll"
+#line 1686 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4746,7 +4745,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 1696 "dhcp4_lexer.ll"
+#line 1695 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4758,7 +4757,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 1705 "dhcp4_lexer.ll"
+#line 1704 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4770,7 +4769,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 1714 "dhcp4_lexer.ll"
+#line 1713 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4782,7 +4781,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 1723 "dhcp4_lexer.ll"
+#line 1722 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4794,7 +4793,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 1732 "dhcp4_lexer.ll"
+#line 1731 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4806,7 +4805,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 1741 "dhcp4_lexer.ll"
+#line 1740 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4818,7 +4817,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 1750 "dhcp4_lexer.ll"
+#line 1749 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4830,7 +4829,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 1759 "dhcp4_lexer.ll"
+#line 1758 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4842,7 +4841,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 1768 "dhcp4_lexer.ll"
+#line 1767 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4854,7 +4853,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 1777 "dhcp4_lexer.ll"
+#line 1776 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4866,7 +4865,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 1786 "dhcp4_lexer.ll"
+#line 1785 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4878,7 +4877,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 1795 "dhcp4_lexer.ll"
+#line 1794 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4890,7 +4889,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 1804 "dhcp4_lexer.ll"
+#line 1803 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4902,7 +4901,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 1813 "dhcp4_lexer.ll"
+#line 1812 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4914,7 +4913,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 1822 "dhcp4_lexer.ll"
+#line 1821 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4926,7 +4925,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 1831 "dhcp4_lexer.ll"
+#line 1830 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4938,7 +4937,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 1840 "dhcp4_lexer.ll"
+#line 1839 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4950,7 +4949,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 1849 "dhcp4_lexer.ll"
+#line 1848 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4962,7 +4961,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 1858 "dhcp4_lexer.ll"
+#line 1857 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4974,7 +4973,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 1867 "dhcp4_lexer.ll"
+#line 1866 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4986,7 +4985,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 1876 "dhcp4_lexer.ll"
+#line 1875 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4998,7 +4997,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 1885 "dhcp4_lexer.ll"
+#line 1884 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5010,7 +5009,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 1894 "dhcp4_lexer.ll"
+#line 1893 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5022,7 +5021,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 1903 "dhcp4_lexer.ll"
+#line 1902 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5034,7 +5033,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 1912 "dhcp4_lexer.ll"
+#line 1911 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5049,7 +5048,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 1924 "dhcp4_lexer.ll"
+#line 1923 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5064,7 +5063,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 1936 "dhcp4_lexer.ll"
+#line 1935 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -5077,7 +5076,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 1946 "dhcp4_lexer.ll"
+#line 1945 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -5090,7 +5089,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 190:
 YY_RULE_SETUP
-#line 1956 "dhcp4_lexer.ll"
+#line 1955 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -5103,7 +5102,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 191:
 YY_RULE_SETUP
-#line 1966 "dhcp4_lexer.ll"
+#line 1965 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5116,7 +5115,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 1976 "dhcp4_lexer.ll"
+#line 1975 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5129,7 +5128,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 1986 "dhcp4_lexer.ll"
+#line 1985 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5142,7 +5141,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 1996 "dhcp4_lexer.ll"
+#line 1995 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5155,7 +5154,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 2006 "dhcp4_lexer.ll"
+#line 2005 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5168,7 +5167,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 2016 "dhcp4_lexer.ll"
+#line 2015 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5181,7 +5180,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 2026 "dhcp4_lexer.ll"
+#line 2025 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5193,7 +5192,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 2035 "dhcp4_lexer.ll"
+#line 2034 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5205,7 +5204,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 2044 "dhcp4_lexer.ll"
+#line 2043 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -5217,7 +5216,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 2053 "dhcp4_lexer.ll"
+#line 2052 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5229,7 +5228,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 2062 "dhcp4_lexer.ll"
+#line 2061 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5243,7 +5242,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 2073 "dhcp4_lexer.ll"
+#line 2072 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5257,7 +5256,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 203:
 YY_RULE_SETUP
-#line 2084 "dhcp4_lexer.ll"
+#line 2083 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5273,7 +5272,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 204:
 YY_RULE_SETUP
-#line 2097 "dhcp4_lexer.ll"
+#line 2096 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5289,7 +5288,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 2110 "dhcp4_lexer.ll"
+#line 2109 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5305,7 +5304,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 206:
 YY_RULE_SETUP
-#line 2123 "dhcp4_lexer.ll"
+#line 2122 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5317,7 +5316,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 207:
 YY_RULE_SETUP
-#line 2132 "dhcp4_lexer.ll"
+#line 2131 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5329,7 +5328,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 208:
 YY_RULE_SETUP
-#line 2141 "dhcp4_lexer.ll"
+#line 2140 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5341,7 +5340,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 209:
 YY_RULE_SETUP
-#line 2150 "dhcp4_lexer.ll"
+#line 2149 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5353,7 +5352,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 210:
 YY_RULE_SETUP
-#line 2159 "dhcp4_lexer.ll"
+#line 2158 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5365,7 +5364,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 211:
 YY_RULE_SETUP
-#line 2168 "dhcp4_lexer.ll"
+#line 2167 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5377,7 +5376,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 212:
 YY_RULE_SETUP
-#line 2177 "dhcp4_lexer.ll"
+#line 2176 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5389,7 +5388,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 213:
 YY_RULE_SETUP
-#line 2186 "dhcp4_lexer.ll"
+#line 2185 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5401,7 +5400,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 214:
 YY_RULE_SETUP
-#line 2195 "dhcp4_lexer.ll"
+#line 2194 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5416,7 +5415,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 215:
 YY_RULE_SETUP
-#line 2207 "dhcp4_lexer.ll"
+#line 2206 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -5428,7 +5427,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 216:
 YY_RULE_SETUP
-#line 2216 "dhcp4_lexer.ll"
+#line 2215 "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.
@@ -5533,7 +5532,7 @@ YY_RULE_SETUP
 case 217:
 /* rule 217 can match eol */
 YY_RULE_SETUP
-#line 2317 "dhcp4_lexer.ll"
+#line 2316 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     std::string raw(yytext+1);
@@ -5553,7 +5552,7 @@ YY_RULE_SETUP
 case 218:
 /* rule 218 can match eol */
 YY_RULE_SETUP
-#line 2333 "dhcp4_lexer.ll"
+#line 2332 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     std::string raw(yytext+1);
@@ -5605,7 +5604,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 219:
 YY_RULE_SETUP
-#line 2382 "dhcp4_lexer.ll"
+#line 2381 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     std::string raw(yytext+1);
@@ -5616,7 +5615,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 220:
 YY_RULE_SETUP
-#line 2390 "dhcp4_lexer.ll"
+#line 2389 "dhcp4_lexer.ll"
 {
     /* Bad string with an open unicode escape at the end */
     std::string raw(yytext+1);
@@ -5634,37 +5633,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 221:
 YY_RULE_SETUP
-#line 2405 "dhcp4_lexer.ll"
+#line 2404 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 222:
 YY_RULE_SETUP
-#line 2406 "dhcp4_lexer.ll"
+#line 2405 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 223:
 YY_RULE_SETUP
-#line 2407 "dhcp4_lexer.ll"
+#line 2406 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 224:
 YY_RULE_SETUP
-#line 2408 "dhcp4_lexer.ll"
+#line 2407 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 225:
 YY_RULE_SETUP
-#line 2409 "dhcp4_lexer.ll"
+#line 2408 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 226:
 YY_RULE_SETUP
-#line 2410 "dhcp4_lexer.ll"
+#line 2409 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 227:
 YY_RULE_SETUP
-#line 2412 "dhcp4_lexer.ll"
+#line 2411 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -5685,7 +5684,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 228:
 YY_RULE_SETUP
-#line 2430 "dhcp4_lexer.ll"
+#line 2429 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -5701,7 +5700,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 229:
 YY_RULE_SETUP
-#line 2443 "dhcp4_lexer.ll"
+#line 2442 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -5709,33 +5708,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 230:
 YY_RULE_SETUP
-#line 2448 "dhcp4_lexer.ll"
+#line 2447 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 231:
 YY_RULE_SETUP
-#line 2452 "dhcp4_lexer.ll"
+#line 2451 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 232:
 YY_RULE_SETUP
-#line 2454 "dhcp4_lexer.ll"
+#line 2453 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 233:
 YY_RULE_SETUP
-#line 2456 "dhcp4_lexer.ll"
+#line 2455 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 234:
 YY_RULE_SETUP
-#line 2458 "dhcp4_lexer.ll"
+#line 2457 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2460 "dhcp4_lexer.ll"
+#line 2459 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -5761,10 +5760,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 235:
 YY_RULE_SETUP
-#line 2483 "dhcp4_lexer.ll"
+#line 2482 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 5767 "dhcp4_lexer.cc"
+#line 5766 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -6869,7 +6868,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2483 "dhcp4_lexer.ll"
+#line 2482 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index c5ab763a70fde63fc11f58367611ce6f25c5f913..0c7384ad02f996ea49607c1543debfba204738a3 100644 (file)
@@ -3713,141 +3713,120 @@ namespace isc { namespace dhcp {
 
   case 665: // $@96: %empty
 #line 2336 "dhcp4_parser.yy"
-                           {
-    ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
-    ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("ip-addresses", l);
-    ctx.stack_.push_back(l);
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3724 "dhcp4_parser.cc"
-    break;
-
-  case 666: // ip_addresses: "ip-addresses" $@96 ":" list_strings
-#line 2342 "dhcp4_parser.yy"
-                     {
-    ctx.stack_.pop_back();
-    ctx.leave();
-}
-#line 3733 "dhcp4_parser.cc"
-    break;
-
-  case 667: // $@97: %empty
-#line 2347 "dhcp4_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3742 "dhcp4_parser.cc"
+#line 3721 "dhcp4_parser.cc"
     break;
 
-  case 668: // duid: "duid" $@97 ":" "constant string"
-#line 2350 "dhcp4_parser.yy"
+  case 666: // duid: "duid" $@96 ":" "constant string"
+#line 2339 "dhcp4_parser.yy"
                {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
     ctx.leave();
 }
-#line 3752 "dhcp4_parser.cc"
+#line 3731 "dhcp4_parser.cc"
     break;
 
-  case 669: // $@98: %empty
-#line 2356 "dhcp4_parser.yy"
+  case 667: // $@97: %empty
+#line 2345 "dhcp4_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3761 "dhcp4_parser.cc"
+#line 3740 "dhcp4_parser.cc"
     break;
 
-  case 670: // hw_address: "hw-address" $@98 ":" "constant string"
-#line 2359 "dhcp4_parser.yy"
+  case 668: // hw_address: "hw-address" $@97 ":" "constant string"
+#line 2348 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
     ctx.leave();
 }
-#line 3771 "dhcp4_parser.cc"
+#line 3750 "dhcp4_parser.cc"
     break;
 
-  case 671: // $@99: %empty
-#line 2365 "dhcp4_parser.yy"
+  case 669: // $@98: %empty
+#line 2354 "dhcp4_parser.yy"
                            {
     ctx.unique("client-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3780 "dhcp4_parser.cc"
+#line 3759 "dhcp4_parser.cc"
     break;
 
-  case 672: // client_id_value: "client-id" $@99 ":" "constant string"
-#line 2368 "dhcp4_parser.yy"
+  case 670: // client_id_value: "client-id" $@98 ":" "constant string"
+#line 2357 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-id", hw);
     ctx.leave();
 }
-#line 3790 "dhcp4_parser.cc"
+#line 3769 "dhcp4_parser.cc"
     break;
 
-  case 673: // $@100: %empty
-#line 2374 "dhcp4_parser.yy"
+  case 671: // $@99: %empty
+#line 2363 "dhcp4_parser.yy"
                              {
     ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3799 "dhcp4_parser.cc"
+#line 3778 "dhcp4_parser.cc"
     break;
 
-  case 674: // circuit_id_value: "circuit-id" $@100 ":" "constant string"
-#line 2377 "dhcp4_parser.yy"
+  case 672: // circuit_id_value: "circuit-id" $@99 ":" "constant string"
+#line 2366 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("circuit-id", hw);
     ctx.leave();
 }
-#line 3809 "dhcp4_parser.cc"
+#line 3788 "dhcp4_parser.cc"
     break;
 
-  case 675: // $@101: %empty
-#line 2383 "dhcp4_parser.yy"
+  case 673: // $@100: %empty
+#line 2372 "dhcp4_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3818 "dhcp4_parser.cc"
+#line 3797 "dhcp4_parser.cc"
     break;
 
-  case 676: // flex_id_value: "flex-id" $@101 ":" "constant string"
-#line 2386 "dhcp4_parser.yy"
+  case 674: // flex_id_value: "flex-id" $@100 ":" "constant string"
+#line 2375 "dhcp4_parser.yy"
                {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
     ctx.leave();
 }
-#line 3828 "dhcp4_parser.cc"
+#line 3807 "dhcp4_parser.cc"
     break;
 
-  case 677: // $@102: %empty
-#line 2392 "dhcp4_parser.yy"
+  case 675: // $@101: %empty
+#line 2381 "dhcp4_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3837 "dhcp4_parser.cc"
+#line 3816 "dhcp4_parser.cc"
     break;
 
-  case 678: // hostname: "hostname" $@102 ":" "constant string"
-#line 2395 "dhcp4_parser.yy"
+  case 676: // hostname: "hostname" $@101 ":" "constant string"
+#line 2384 "dhcp4_parser.yy"
                {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
     ctx.leave();
 }
-#line 3847 "dhcp4_parser.cc"
+#line 3826 "dhcp4_parser.cc"
     break;
 
-  case 679: // $@103: %empty
-#line 2401 "dhcp4_parser.yy"
+  case 677: // $@102: %empty
+#line 2390 "dhcp4_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3855,20 +3834,20 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3859 "dhcp4_parser.cc"
+#line 3838 "dhcp4_parser.cc"
     break;
 
-  case 680: // reservation_client_classes: "client-classes" $@103 ":" list_strings
-#line 2407 "dhcp4_parser.yy"
+  case 678: // reservation_client_classes: "client-classes" $@102 ":" list_strings
+#line 2396 "dhcp4_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3868 "dhcp4_parser.cc"
+#line 3847 "dhcp4_parser.cc"
     break;
 
-  case 681: // $@104: %empty
-#line 2415 "dhcp4_parser.yy"
+  case 679: // $@103: %empty
+#line 2404 "dhcp4_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3876,20 +3855,41 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 3880 "dhcp4_parser.cc"
+#line 3859 "dhcp4_parser.cc"
     break;
 
-  case 682: // relay: "relay" $@104 ":" "{" relay_map "}"
-#line 2421 "dhcp4_parser.yy"
+  case 680: // relay: "relay" $@103 ":" "{" relay_map "}"
+#line 2410 "dhcp4_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
 }
+#line 3868 "dhcp4_parser.cc"
+    break;
+
+  case 682: // $@104: %empty
+#line 2418 "dhcp4_parser.yy"
+                           {
+    ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
+    ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("ip-addresses", l);
+    ctx.stack_.push_back(l);
+    ctx.enter(ctx.NO_KEYWORD);
+}
+#line 3880 "dhcp4_parser.cc"
+    break;
+
+  case 683: // ip_addresses: "ip-addresses" $@104 ":" list_strings
+#line 2424 "dhcp4_parser.yy"
+                     {
+    ctx.stack_.pop_back();
+    ctx.leave();
+}
 #line 3889 "dhcp4_parser.cc"
     break;
 
-  case 685: // $@105: %empty
-#line 2433 "dhcp4_parser.yy"
+  case 684: // $@105: %empty
+#line 2432 "dhcp4_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3900,8 +3900,8 @@ namespace isc { namespace dhcp {
 #line 3901 "dhcp4_parser.cc"
     break;
 
-  case 686: // client_classes: "client-classes" $@105 ":" "[" client_classes_list "]"
-#line 2439 "dhcp4_parser.yy"
+  case 685: // client_classes: "client-classes" $@105 ":" "[" client_classes_list "]"
+#line 2438 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3909,16 +3909,16 @@ namespace isc { namespace dhcp {
 #line 3910 "dhcp4_parser.cc"
     break;
 
-  case 689: // client_classes_list: client_classes_list ","
-#line 2446 "dhcp4_parser.yy"
+  case 688: // client_classes_list: client_classes_list ","
+#line 2445 "dhcp4_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
 #line 3918 "dhcp4_parser.cc"
     break;
 
-  case 690: // $@106: %empty
-#line 2451 "dhcp4_parser.yy"
+  case 689: // $@106: %empty
+#line 2450 "dhcp4_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3927,8 +3927,8 @@ namespace isc { namespace dhcp {
 #line 3928 "dhcp4_parser.cc"
     break;
 
-  case 691: // client_class_entry: "{" $@106 client_class_params "}"
-#line 2455 "dhcp4_parser.yy"
+  case 690: // client_class_entry: "{" $@106 client_class_params "}"
+#line 2454 "dhcp4_parser.yy"
                                      {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3937,16 +3937,16 @@ namespace isc { namespace dhcp {
 #line 3938 "dhcp4_parser.cc"
     break;
 
-  case 696: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2467 "dhcp4_parser.yy"
+  case 695: // not_empty_client_class_params: not_empty_client_class_params ","
+#line 2466 "dhcp4_parser.yy"
                                           {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
 #line 3946 "dhcp4_parser.cc"
     break;
 
-  case 714: // $@107: %empty
-#line 2492 "dhcp4_parser.yy"
+  case 713: // $@107: %empty
+#line 2491 "dhcp4_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3954,8 +3954,8 @@ namespace isc { namespace dhcp {
 #line 3955 "dhcp4_parser.cc"
     break;
 
-  case 715: // client_class_test: "test" $@107 ":" "constant string"
-#line 2495 "dhcp4_parser.yy"
+  case 714: // client_class_test: "test" $@107 ":" "constant string"
+#line 2494 "dhcp4_parser.yy"
                {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -3964,8 +3964,8 @@ namespace isc { namespace dhcp {
 #line 3965 "dhcp4_parser.cc"
     break;
 
-  case 716: // $@108: %empty
-#line 2501 "dhcp4_parser.yy"
+  case 715: // $@108: %empty
+#line 2500 "dhcp4_parser.yy"
                                           {
     ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3973,8 +3973,8 @@ namespace isc { namespace dhcp {
 #line 3974 "dhcp4_parser.cc"
     break;
 
-  case 717: // client_class_template_test: "template-test" $@108 ":" "constant string"
-#line 2504 "dhcp4_parser.yy"
+  case 716: // client_class_template_test: "template-test" $@108 ":" "constant string"
+#line 2503 "dhcp4_parser.yy"
                {
     ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("template-test", template_test);
@@ -3983,8 +3983,8 @@ namespace isc { namespace dhcp {
 #line 3984 "dhcp4_parser.cc"
     break;
 
-  case 718: // only_if_required: "only-if-required" ":" "boolean"
-#line 2510 "dhcp4_parser.yy"
+  case 717: // only_if_required: "only-if-required" ":" "boolean"
+#line 2509 "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)));
@@ -3993,8 +3993,8 @@ namespace isc { namespace dhcp {
 #line 3994 "dhcp4_parser.cc"
     break;
 
-  case 719: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2518 "dhcp4_parser.yy"
+  case 718: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2517 "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)));
@@ -4003,8 +4003,8 @@ namespace isc { namespace dhcp {
 #line 4004 "dhcp4_parser.cc"
     break;
 
-  case 720: // $@109: %empty
-#line 2526 "dhcp4_parser.yy"
+  case 719: // $@109: %empty
+#line 2525 "dhcp4_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4015,8 +4015,8 @@ namespace isc { namespace dhcp {
 #line 4016 "dhcp4_parser.cc"
     break;
 
-  case 721: // control_socket: "control-socket" $@109 ":" "{" control_socket_params "}"
-#line 2532 "dhcp4_parser.yy"
+  case 720: // control_socket: "control-socket" $@109 ":" "{" control_socket_params "}"
+#line 2531 "dhcp4_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4024,16 +4024,16 @@ namespace isc { namespace dhcp {
 #line 4025 "dhcp4_parser.cc"
     break;
 
-  case 724: // control_socket_params: control_socket_params ","
-#line 2539 "dhcp4_parser.yy"
+  case 723: // control_socket_params: control_socket_params ","
+#line 2538 "dhcp4_parser.yy"
                                                    {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
 #line 4033 "dhcp4_parser.cc"
     break;
 
-  case 730: // $@110: %empty
-#line 2551 "dhcp4_parser.yy"
+  case 729: // $@110: %empty
+#line 2550 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4041,8 +4041,8 @@ namespace isc { namespace dhcp {
 #line 4042 "dhcp4_parser.cc"
     break;
 
-  case 731: // control_socket_type: "socket-type" $@110 ":" "constant string"
-#line 2554 "dhcp4_parser.yy"
+  case 730: // control_socket_type: "socket-type" $@110 ":" "constant string"
+#line 2553 "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);
@@ -4051,8 +4051,8 @@ namespace isc { namespace dhcp {
 #line 4052 "dhcp4_parser.cc"
     break;
 
-  case 732: // $@111: %empty
-#line 2560 "dhcp4_parser.yy"
+  case 731: // $@111: %empty
+#line 2559 "dhcp4_parser.yy"
                                  {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4060,8 +4060,8 @@ namespace isc { namespace dhcp {
 #line 4061 "dhcp4_parser.cc"
     break;
 
-  case 733: // control_socket_name: "socket-name" $@111 ":" "constant string"
-#line 2563 "dhcp4_parser.yy"
+  case 732: // control_socket_name: "socket-name" $@111 ":" "constant string"
+#line 2562 "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);
@@ -4070,8 +4070,8 @@ namespace isc { namespace dhcp {
 #line 4071 "dhcp4_parser.cc"
     break;
 
-  case 734: // $@112: %empty
-#line 2572 "dhcp4_parser.yy"
+  case 733: // $@112: %empty
+#line 2571 "dhcp4_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4082,8 +4082,8 @@ namespace isc { namespace dhcp {
 #line 4083 "dhcp4_parser.cc"
     break;
 
-  case 735: // dhcp_queue_control: "dhcp-queue-control" $@112 ":" "{" queue_control_params "}"
-#line 2578 "dhcp4_parser.yy"
+  case 734: // dhcp_queue_control: "dhcp-queue-control" $@112 ":" "{" queue_control_params "}"
+#line 2577 "dhcp4_parser.yy"
                                                            {
     // The enable queue parameter is required.
     ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -4093,16 +4093,16 @@ namespace isc { namespace dhcp {
 #line 4094 "dhcp4_parser.cc"
     break;
 
-  case 738: // queue_control_params: queue_control_params ","
-#line 2587 "dhcp4_parser.yy"
+  case 737: // queue_control_params: queue_control_params ","
+#line 2586 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
 #line 4102 "dhcp4_parser.cc"
     break;
 
-  case 745: // enable_queue: "enable-queue" ":" "boolean"
-#line 2600 "dhcp4_parser.yy"
+  case 744: // enable_queue: "enable-queue" ":" "boolean"
+#line 2599 "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)));
@@ -4111,8 +4111,8 @@ namespace isc { namespace dhcp {
 #line 4112 "dhcp4_parser.cc"
     break;
 
-  case 746: // $@113: %empty
-#line 2606 "dhcp4_parser.yy"
+  case 745: // $@113: %empty
+#line 2605 "dhcp4_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4120,8 +4120,8 @@ namespace isc { namespace dhcp {
 #line 4121 "dhcp4_parser.cc"
     break;
 
-  case 747: // queue_type: "queue-type" $@113 ":" "constant string"
-#line 2609 "dhcp4_parser.yy"
+  case 746: // queue_type: "queue-type" $@113 ":" "constant string"
+#line 2608 "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);
@@ -4130,8 +4130,8 @@ namespace isc { namespace dhcp {
 #line 4131 "dhcp4_parser.cc"
     break;
 
-  case 748: // capacity: "capacity" ":" "integer"
-#line 2615 "dhcp4_parser.yy"
+  case 747: // capacity: "capacity" ":" "integer"
+#line 2614 "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)));
@@ -4140,8 +4140,8 @@ namespace isc { namespace dhcp {
 #line 4141 "dhcp4_parser.cc"
     break;
 
-  case 749: // $@114: %empty
-#line 2621 "dhcp4_parser.yy"
+  case 748: // $@114: %empty
+#line 2620 "dhcp4_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4149,8 +4149,8 @@ namespace isc { namespace dhcp {
 #line 4150 "dhcp4_parser.cc"
     break;
 
-  case 750: // arbitrary_map_entry: "constant string" $@114 ":" value
-#line 2624 "dhcp4_parser.yy"
+  case 749: // arbitrary_map_entry: "constant string" $@114 ":" value
+#line 2623 "dhcp4_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4158,8 +4158,8 @@ namespace isc { namespace dhcp {
 #line 4159 "dhcp4_parser.cc"
     break;
 
-  case 751: // $@115: %empty
-#line 2631 "dhcp4_parser.yy"
+  case 750: // $@115: %empty
+#line 2630 "dhcp4_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4170,8 +4170,8 @@ namespace isc { namespace dhcp {
 #line 4171 "dhcp4_parser.cc"
     break;
 
-  case 752: // dhcp_ddns: "dhcp-ddns" $@115 ":" "{" dhcp_ddns_params "}"
-#line 2637 "dhcp4_parser.yy"
+  case 751: // dhcp_ddns: "dhcp-ddns" $@115 ":" "{" dhcp_ddns_params "}"
+#line 2636 "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));
@@ -4181,8 +4181,8 @@ namespace isc { namespace dhcp {
 #line 4182 "dhcp4_parser.cc"
     break;
 
-  case 753: // $@116: %empty
-#line 2644 "dhcp4_parser.yy"
+  case 752: // $@116: %empty
+#line 2643 "dhcp4_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4191,8 +4191,8 @@ namespace isc { namespace dhcp {
 #line 4192 "dhcp4_parser.cc"
     break;
 
-  case 754: // sub_dhcp_ddns: "{" $@116 dhcp_ddns_params "}"
-#line 2648 "dhcp4_parser.yy"
+  case 753: // sub_dhcp_ddns: "{" $@116 dhcp_ddns_params "}"
+#line 2647 "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));
@@ -4201,16 +4201,16 @@ namespace isc { namespace dhcp {
 #line 4202 "dhcp4_parser.cc"
     break;
 
-  case 757: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2656 "dhcp4_parser.yy"
+  case 756: // dhcp_ddns_params: dhcp_ddns_params ","
+#line 2655 "dhcp4_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
 #line 4210 "dhcp4_parser.cc"
     break;
 
-  case 776: // enable_updates: "enable-updates" ":" "boolean"
-#line 2681 "dhcp4_parser.yy"
+  case 775: // enable_updates: "enable-updates" ":" "boolean"
+#line 2680 "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)));
@@ -4219,8 +4219,8 @@ namespace isc { namespace dhcp {
 #line 4220 "dhcp4_parser.cc"
     break;
 
-  case 777: // $@117: %empty
-#line 2687 "dhcp4_parser.yy"
+  case 776: // $@117: %empty
+#line 2686 "dhcp4_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4228,8 +4228,8 @@ namespace isc { namespace dhcp {
 #line 4229 "dhcp4_parser.cc"
     break;
 
-  case 778: // server_ip: "server-ip" $@117 ":" "constant string"
-#line 2690 "dhcp4_parser.yy"
+  case 777: // server_ip: "server-ip" $@117 ":" "constant string"
+#line 2689 "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);
@@ -4238,8 +4238,8 @@ namespace isc { namespace dhcp {
 #line 4239 "dhcp4_parser.cc"
     break;
 
-  case 779: // server_port: "server-port" ":" "integer"
-#line 2696 "dhcp4_parser.yy"
+  case 778: // server_port: "server-port" ":" "integer"
+#line 2695 "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)));
@@ -4248,8 +4248,8 @@ namespace isc { namespace dhcp {
 #line 4249 "dhcp4_parser.cc"
     break;
 
-  case 780: // $@118: %empty
-#line 2702 "dhcp4_parser.yy"
+  case 779: // $@118: %empty
+#line 2701 "dhcp4_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4257,8 +4257,8 @@ namespace isc { namespace dhcp {
 #line 4258 "dhcp4_parser.cc"
     break;
 
-  case 781: // sender_ip: "sender-ip" $@118 ":" "constant string"
-#line 2705 "dhcp4_parser.yy"
+  case 780: // sender_ip: "sender-ip" $@118 ":" "constant string"
+#line 2704 "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);
@@ -4267,8 +4267,8 @@ namespace isc { namespace dhcp {
 #line 4268 "dhcp4_parser.cc"
     break;
 
-  case 782: // sender_port: "sender-port" ":" "integer"
-#line 2711 "dhcp4_parser.yy"
+  case 781: // sender_port: "sender-port" ":" "integer"
+#line 2710 "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)));
@@ -4277,8 +4277,8 @@ namespace isc { namespace dhcp {
 #line 4278 "dhcp4_parser.cc"
     break;
 
-  case 783: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2717 "dhcp4_parser.yy"
+  case 782: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2716 "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)));
@@ -4287,8 +4287,8 @@ namespace isc { namespace dhcp {
 #line 4288 "dhcp4_parser.cc"
     break;
 
-  case 784: // $@119: %empty
-#line 2723 "dhcp4_parser.yy"
+  case 783: // $@119: %empty
+#line 2722 "dhcp4_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
@@ -4296,8 +4296,8 @@ namespace isc { namespace dhcp {
 #line 4297 "dhcp4_parser.cc"
     break;
 
-  case 785: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value
-#line 2726 "dhcp4_parser.yy"
+  case 784: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value
+#line 2725 "dhcp4_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4305,20 +4305,20 @@ namespace isc { namespace dhcp {
 #line 4306 "dhcp4_parser.cc"
     break;
 
-  case 786: // ncr_protocol_value: "udp"
-#line 2732 "dhcp4_parser.yy"
+  case 785: // ncr_protocol_value: "udp"
+#line 2731 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 4312 "dhcp4_parser.cc"
     break;
 
-  case 787: // ncr_protocol_value: "tcp"
-#line 2733 "dhcp4_parser.yy"
+  case 786: // ncr_protocol_value: "tcp"
+#line 2732 "dhcp4_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 4318 "dhcp4_parser.cc"
     break;
 
-  case 788: // $@120: %empty
-#line 2736 "dhcp4_parser.yy"
+  case 787: // $@120: %empty
+#line 2735 "dhcp4_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
@@ -4326,8 +4326,8 @@ namespace isc { namespace dhcp {
 #line 4327 "dhcp4_parser.cc"
     break;
 
-  case 789: // ncr_format: "ncr-format" $@120 ":" "JSON"
-#line 2739 "dhcp4_parser.yy"
+  case 788: // ncr_format: "ncr-format" $@120 ":" "JSON"
+#line 2738 "dhcp4_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -4336,8 +4336,8 @@ namespace isc { namespace dhcp {
 #line 4337 "dhcp4_parser.cc"
     break;
 
-  case 790: // $@121: %empty
-#line 2746 "dhcp4_parser.yy"
+  case 789: // $@121: %empty
+#line 2745 "dhcp4_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4345,8 +4345,8 @@ namespace isc { namespace dhcp {
 #line 4346 "dhcp4_parser.cc"
     break;
 
-  case 791: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string"
-#line 2749 "dhcp4_parser.yy"
+  case 790: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string"
+#line 2748 "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);
@@ -4355,8 +4355,8 @@ namespace isc { namespace dhcp {
 #line 4356 "dhcp4_parser.cc"
     break;
 
-  case 792: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2756 "dhcp4_parser.yy"
+  case 791: // dep_override_no_update: "override-no-update" ":" "boolean"
+#line 2755 "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)));
@@ -4365,8 +4365,8 @@ namespace isc { namespace dhcp {
 #line 4366 "dhcp4_parser.cc"
     break;
 
-  case 793: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2763 "dhcp4_parser.yy"
+  case 792: // dep_override_client_update: "override-client-update" ":" "boolean"
+#line 2762 "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)));
@@ -4375,8 +4375,8 @@ namespace isc { namespace dhcp {
 #line 4376 "dhcp4_parser.cc"
     break;
 
-  case 794: // $@122: %empty
-#line 2770 "dhcp4_parser.yy"
+  case 793: // $@122: %empty
+#line 2769 "dhcp4_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -4384,8 +4384,8 @@ namespace isc { namespace dhcp {
 #line 4385 "dhcp4_parser.cc"
     break;
 
-  case 795: // dep_replace_client_name: "replace-client-name" $@122 ":" ddns_replace_client_name_value
-#line 2773 "dhcp4_parser.yy"
+  case 794: // dep_replace_client_name: "replace-client-name" $@122 ":" ddns_replace_client_name_value
+#line 2772 "dhcp4_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -4393,8 +4393,8 @@ namespace isc { namespace dhcp {
 #line 4394 "dhcp4_parser.cc"
     break;
 
-  case 796: // $@123: %empty
-#line 2779 "dhcp4_parser.yy"
+  case 795: // $@123: %empty
+#line 2778 "dhcp4_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4402,8 +4402,8 @@ namespace isc { namespace dhcp {
 #line 4403 "dhcp4_parser.cc"
     break;
 
-  case 797: // dep_generated_prefix: "generated-prefix" $@123 ":" "constant string"
-#line 2782 "dhcp4_parser.yy"
+  case 796: // dep_generated_prefix: "generated-prefix" $@123 ":" "constant string"
+#line 2781 "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);
@@ -4412,8 +4412,8 @@ namespace isc { namespace dhcp {
 #line 4413 "dhcp4_parser.cc"
     break;
 
-  case 798: // $@124: %empty
-#line 2789 "dhcp4_parser.yy"
+  case 797: // $@124: %empty
+#line 2788 "dhcp4_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4421,8 +4421,8 @@ namespace isc { namespace dhcp {
 #line 4422 "dhcp4_parser.cc"
     break;
 
-  case 799: // dep_hostname_char_set: "hostname-char-set" $@124 ":" "constant string"
-#line 2792 "dhcp4_parser.yy"
+  case 798: // dep_hostname_char_set: "hostname-char-set" $@124 ":" "constant string"
+#line 2791 "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);
@@ -4431,8 +4431,8 @@ namespace isc { namespace dhcp {
 #line 4432 "dhcp4_parser.cc"
     break;
 
-  case 800: // $@125: %empty
-#line 2799 "dhcp4_parser.yy"
+  case 799: // $@125: %empty
+#line 2798 "dhcp4_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4440,8 +4440,8 @@ namespace isc { namespace dhcp {
 #line 4441 "dhcp4_parser.cc"
     break;
 
-  case 801: // dep_hostname_char_replacement: "hostname-char-replacement" $@125 ":" "constant string"
-#line 2802 "dhcp4_parser.yy"
+  case 800: // dep_hostname_char_replacement: "hostname-char-replacement" $@125 ":" "constant string"
+#line 2801 "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);
@@ -4450,8 +4450,8 @@ namespace isc { namespace dhcp {
 #line 4451 "dhcp4_parser.cc"
     break;
 
-  case 802: // $@126: %empty
-#line 2811 "dhcp4_parser.yy"
+  case 801: // $@126: %empty
+#line 2810 "dhcp4_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4462,8 +4462,8 @@ namespace isc { namespace dhcp {
 #line 4463 "dhcp4_parser.cc"
     break;
 
-  case 803: // config_control: "config-control" $@126 ":" "{" config_control_params "}"
-#line 2817 "dhcp4_parser.yy"
+  case 802: // config_control: "config-control" $@126 ":" "{" config_control_params "}"
+#line 2816 "dhcp4_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -4472,8 +4472,8 @@ namespace isc { namespace dhcp {
 #line 4473 "dhcp4_parser.cc"
     break;
 
-  case 804: // $@127: %empty
-#line 2823 "dhcp4_parser.yy"
+  case 803: // $@127: %empty
+#line 2822 "dhcp4_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4482,8 +4482,8 @@ namespace isc { namespace dhcp {
 #line 4483 "dhcp4_parser.cc"
     break;
 
-  case 805: // sub_config_control: "{" $@127 config_control_params "}"
-#line 2827 "dhcp4_parser.yy"
+  case 804: // sub_config_control: "{" $@127 config_control_params "}"
+#line 2826 "dhcp4_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
@@ -4491,16 +4491,16 @@ namespace isc { namespace dhcp {
 #line 4492 "dhcp4_parser.cc"
     break;
 
-  case 808: // config_control_params: config_control_params ","
-#line 2835 "dhcp4_parser.yy"
+  case 807: // config_control_params: config_control_params ","
+#line 2834 "dhcp4_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
 #line 4500 "dhcp4_parser.cc"
     break;
 
-  case 811: // $@128: %empty
-#line 2845 "dhcp4_parser.yy"
+  case 810: // $@128: %empty
+#line 2844 "dhcp4_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4511,8 +4511,8 @@ namespace isc { namespace dhcp {
 #line 4512 "dhcp4_parser.cc"
     break;
 
-  case 812: // config_databases: "config-databases" $@128 ":" "[" database_list "]"
-#line 2851 "dhcp4_parser.yy"
+  case 811: // config_databases: "config-databases" $@128 ":" "[" database_list "]"
+#line 2850 "dhcp4_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4520,8 +4520,8 @@ namespace isc { namespace dhcp {
 #line 4521 "dhcp4_parser.cc"
     break;
 
-  case 813: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2856 "dhcp4_parser.yy"
+  case 812: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 2855 "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)));
@@ -4530,8 +4530,8 @@ namespace isc { namespace dhcp {
 #line 4531 "dhcp4_parser.cc"
     break;
 
-  case 814: // $@129: %empty
-#line 2864 "dhcp4_parser.yy"
+  case 813: // $@129: %empty
+#line 2863 "dhcp4_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4542,8 +4542,8 @@ namespace isc { namespace dhcp {
 #line 4543 "dhcp4_parser.cc"
     break;
 
-  case 815: // loggers: "loggers" $@129 ":" "[" loggers_entries "]"
-#line 2870 "dhcp4_parser.yy"
+  case 814: // loggers: "loggers" $@129 ":" "[" loggers_entries "]"
+#line 2869 "dhcp4_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4551,16 +4551,16 @@ namespace isc { namespace dhcp {
 #line 4552 "dhcp4_parser.cc"
     break;
 
-  case 818: // loggers_entries: loggers_entries ","
-#line 2879 "dhcp4_parser.yy"
+  case 817: // loggers_entries: loggers_entries ","
+#line 2878 "dhcp4_parser.yy"
                                        {
                    ctx.warnAboutExtraCommas(yystack_[0].location);
                    }
 #line 4560 "dhcp4_parser.cc"
     break;
 
-  case 819: // $@130: %empty
-#line 2885 "dhcp4_parser.yy"
+  case 818: // $@130: %empty
+#line 2884 "dhcp4_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -4569,24 +4569,24 @@ namespace isc { namespace dhcp {
 #line 4570 "dhcp4_parser.cc"
     break;
 
-  case 820: // logger_entry: "{" $@130 logger_params "}"
-#line 2889 "dhcp4_parser.yy"
+  case 819: // logger_entry: "{" $@130 logger_params "}"
+#line 2888 "dhcp4_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
 #line 4578 "dhcp4_parser.cc"
     break;
 
-  case 823: // logger_params: logger_params ","
-#line 2895 "dhcp4_parser.yy"
+  case 822: // logger_params: logger_params ","
+#line 2894 "dhcp4_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
 #line 4586 "dhcp4_parser.cc"
     break;
 
-  case 831: // debuglevel: "debuglevel" ":" "integer"
-#line 2909 "dhcp4_parser.yy"
+  case 830: // debuglevel: "debuglevel" ":" "integer"
+#line 2908 "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)));
@@ -4595,8 +4595,8 @@ namespace isc { namespace dhcp {
 #line 4596 "dhcp4_parser.cc"
     break;
 
-  case 832: // $@131: %empty
-#line 2915 "dhcp4_parser.yy"
+  case 831: // $@131: %empty
+#line 2914 "dhcp4_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4604,8 +4604,8 @@ namespace isc { namespace dhcp {
 #line 4605 "dhcp4_parser.cc"
     break;
 
-  case 833: // severity: "severity" $@131 ":" "constant string"
-#line 2918 "dhcp4_parser.yy"
+  case 832: // severity: "severity" $@131 ":" "constant string"
+#line 2917 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -4614,8 +4614,8 @@ namespace isc { namespace dhcp {
 #line 4615 "dhcp4_parser.cc"
     break;
 
-  case 834: // $@132: %empty
-#line 2924 "dhcp4_parser.yy"
+  case 833: // $@132: %empty
+#line 2923 "dhcp4_parser.yy"
                                     {
     ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4626,8 +4626,8 @@ namespace isc { namespace dhcp {
 #line 4627 "dhcp4_parser.cc"
     break;
 
-  case 835: // output_options_list: "output-options" $@132 ":" "[" output_options_list_content "]"
-#line 2930 "dhcp4_parser.yy"
+  case 834: // output_options_list: "output-options" $@132 ":" "[" output_options_list_content "]"
+#line 2929 "dhcp4_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4635,16 +4635,16 @@ namespace isc { namespace dhcp {
 #line 4636 "dhcp4_parser.cc"
     break;
 
-  case 838: // output_options_list_content: output_options_list_content ","
-#line 2937 "dhcp4_parser.yy"
+  case 837: // output_options_list_content: output_options_list_content ","
+#line 2936 "dhcp4_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
 #line 4644 "dhcp4_parser.cc"
     break;
 
-  case 839: // $@133: %empty
-#line 2942 "dhcp4_parser.yy"
+  case 838: // $@133: %empty
+#line 2941 "dhcp4_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -4653,24 +4653,24 @@ namespace isc { namespace dhcp {
 #line 4654 "dhcp4_parser.cc"
     break;
 
-  case 840: // output_entry: "{" $@133 output_params_list "}"
-#line 2946 "dhcp4_parser.yy"
+  case 839: // output_entry: "{" $@133 output_params_list "}"
+#line 2945 "dhcp4_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
 #line 4662 "dhcp4_parser.cc"
     break;
 
-  case 843: // output_params_list: output_params_list ","
-#line 2952 "dhcp4_parser.yy"
+  case 842: // output_params_list: output_params_list ","
+#line 2951 "dhcp4_parser.yy"
                                              {
                       ctx.warnAboutExtraCommas(yystack_[0].location);
                       }
 #line 4670 "dhcp4_parser.cc"
     break;
 
-  case 849: // $@134: %empty
-#line 2964 "dhcp4_parser.yy"
+  case 848: // $@134: %empty
+#line 2963 "dhcp4_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4678,8 +4678,8 @@ namespace isc { namespace dhcp {
 #line 4679 "dhcp4_parser.cc"
     break;
 
-  case 850: // output: "output" $@134 ":" "constant string"
-#line 2967 "dhcp4_parser.yy"
+  case 849: // output: "output" $@134 ":" "constant string"
+#line 2966 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -4688,8 +4688,8 @@ namespace isc { namespace dhcp {
 #line 4689 "dhcp4_parser.cc"
     break;
 
-  case 851: // flush: "flush" ":" "boolean"
-#line 2973 "dhcp4_parser.yy"
+  case 850: // flush: "flush" ":" "boolean"
+#line 2972 "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)));
@@ -4698,8 +4698,8 @@ namespace isc { namespace dhcp {
 #line 4699 "dhcp4_parser.cc"
     break;
 
-  case 852: // maxsize: "maxsize" ":" "integer"
-#line 2979 "dhcp4_parser.yy"
+  case 851: // maxsize: "maxsize" ":" "integer"
+#line 2978 "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)));
@@ -4708,8 +4708,8 @@ namespace isc { namespace dhcp {
 #line 4709 "dhcp4_parser.cc"
     break;
 
-  case 853: // maxver: "maxver" ":" "integer"
-#line 2985 "dhcp4_parser.yy"
+  case 852: // maxver: "maxver" ":" "integer"
+#line 2984 "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)));
@@ -4718,8 +4718,8 @@ namespace isc { namespace dhcp {
 #line 4719 "dhcp4_parser.cc"
     break;
 
-  case 854: // $@135: %empty
-#line 2991 "dhcp4_parser.yy"
+  case 853: // $@135: %empty
+#line 2990 "dhcp4_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -4727,8 +4727,8 @@ namespace isc { namespace dhcp {
 #line 4728 "dhcp4_parser.cc"
     break;
 
-  case 855: // pattern: "pattern" $@135 ":" "constant string"
-#line 2994 "dhcp4_parser.yy"
+  case 854: // pattern: "pattern" $@135 ":" "constant string"
+#line 2993 "dhcp4_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
@@ -4737,8 +4737,8 @@ namespace isc { namespace dhcp {
 #line 4738 "dhcp4_parser.cc"
     break;
 
-  case 856: // $@136: %empty
-#line 3000 "dhcp4_parser.yy"
+  case 855: // $@136: %empty
+#line 2999 "dhcp4_parser.yy"
                              {
     ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4749,8 +4749,8 @@ namespace isc { namespace dhcp {
 #line 4750 "dhcp4_parser.cc"
     break;
 
-  case 857: // compatibility: "compatibility" $@136 ":" "{" compatibility_params "}"
-#line 3006 "dhcp4_parser.yy"
+  case 856: // compatibility: "compatibility" $@136 ":" "{" compatibility_params "}"
+#line 3005 "dhcp4_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -4758,16 +4758,16 @@ namespace isc { namespace dhcp {
 #line 4759 "dhcp4_parser.cc"
     break;
 
-  case 860: // compatibility_params: compatibility_params ","
-#line 3013 "dhcp4_parser.yy"
+  case 859: // compatibility_params: compatibility_params ","
+#line 3012 "dhcp4_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
 #line 4767 "dhcp4_parser.cc"
     break;
 
-  case 866: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3025 "dhcp4_parser.yy"
+  case 865: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
+#line 3024 "dhcp4_parser.yy"
                                                              {
     ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4776,8 +4776,8 @@ namespace isc { namespace dhcp {
 #line 4777 "dhcp4_parser.cc"
     break;
 
-  case 867: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 3031 "dhcp4_parser.yy"
+  case 866: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
+#line 3030 "dhcp4_parser.yy"
                                                                    {
     ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4786,8 +4786,8 @@ namespace isc { namespace dhcp {
 #line 4787 "dhcp4_parser.cc"
     break;
 
-  case 868: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 3037 "dhcp4_parser.yy"
+  case 867: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
+#line 3036 "dhcp4_parser.yy"
                                                              {
     ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -4796,8 +4796,8 @@ namespace isc { namespace dhcp {
 #line 4797 "dhcp4_parser.cc"
     break;
 
-  case 869: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 3043 "dhcp4_parser.yy"
+  case 868: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
+#line 3042 "dhcp4_parser.yy"
                                                            {
     ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -5159,147 +5159,147 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -1029;
+  const short Dhcp4Parser::yypact_ninf_ = -1028;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     620, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,    31,    28,    27,    60,    64,    82,
-     101,   127,   137,   139,   178,   256,   259,   266, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,    28,  -186,   287,   140,   165,   333,
-     -40,   242,   -16,   552,   222,  -109,   637,    32, -1029,    49,
-      88,    77,   306,   284, -1029,    54, -1029, -1029, -1029, -1029,
-     311,   313,   314, -1029, -1029, -1029,   322,   332, -1029, -1029,
-   -1029,   337,   350,   354,   357,   370,   371,   372,   406,   407,
-     408,   409, -1029,   420,   424,   426,   427,   428, -1029, -1029,
-   -1029,   429,   430,   431,   432, -1029, -1029, -1029,   433, -1029,
-   -1029, -1029, -1029, -1029, -1029,   434,   435,   436, -1029, -1029,
-   -1029, -1029, -1029,   439, -1029, -1029, -1029, -1029, -1029, -1029,
-     441,   442,   445, -1029, -1029,   453, -1029,    62, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-     454,   455,   459,   462, -1029,    65, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,   463, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,    72, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   466, -1029,
-   -1029, -1029, -1029,    91, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029,   465,   472, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   468, -1029, -1029,   473, -1029,
-   -1029, -1029,   476, -1029, -1029,   477,   481, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-     483,   484,   485, -1029, -1029, -1029, -1029,   486,   488, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,    98, -1029, -1029, -1029,   491, -1029, -1029,   492,
-   -1029,   493,   496, -1029, -1029,   498,   500, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,   115, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,   502,   125, -1029, -1029, -1029, -1029,    28,    28,
-   -1029,   270,   503, -1029, -1029,   506,   510,   514,   295,   303,
-     307,   522,   526,   527,   310,   309,   532,   535,   537,   319,
-     320,   321,   323,   324,   327,   330,   335,   336,   339,   342,
-     541,   343,   346,   347,   348,   349,   553,   554,   563,   352,
-     353,   351,   356,   566,   567,   578,   366,   590,   591,   592,
-     593,   595,   596,   377,   382,   385,   608,   609,   610,   611,
-     618,   400,   634,   635,   636,   643,   644,   646,   437,   438,
-     443,   649,   650, -1029,   140, -1029,   651,   655,   656,   446,
-     448,   451,   452,   165, -1029,   657,   660,   672,   674,   675,
-     676,   458,   678,   679,   680,   333, -1029,   682,   464,   -40,
-   -1029,   684,   685,   686,   687,   694,   695,   696,   697, -1029,
-     242, -1029,   698,   699,   482,   700,   702,   705,   487, -1029,
-     552,   707,   490,   494,   495, -1029,   222,   709,   712,   -34,
-   -1029,   497,   713,   714,   516,   717,   517,   518,   719,   738,
-     531,   536,   753,   756,   758,   759,   637, -1029,   764,   546,
-      32, -1029, -1029, -1029,   768,   659,   766,   769,   770, -1029,
-   -1029, -1029,   556,   559,   561, -1029, -1029,   778,   779,   782,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029,   570, -1029, -1029, -1029, -1029, -1029,  -137,   571,   573,
-   -1029, -1029, -1029, -1029,   783,   791,   792, -1029,   577,   279,
-     795,   794,   581,   273, -1029, -1029, -1029,   799,   800,   801,
-     816,   815, -1029,   817,   818,   819,   835,   601,   621, -1029,
-   -1029, -1029,   839,   838, -1029,   841,   143,   213, -1029, -1029,
-   -1029, -1029, -1029,   625,   626,   627,   845,   629,   632, -1029,
-     841,   633,   849, -1029,   638, -1029, -1029,   841,   639,   640,
-     641,   642,   645,   647,   648, -1029,   652,   653, -1029,   654,
-     658,   661, -1029, -1029,   663, -1029, -1029, -1029, -1029,   664,
-     794, -1029, -1029,   665,   666, -1029,   667, -1029, -1029,     8,
-     673, -1029, -1029,  -137,   668,   669,   670, -1029,   852, -1029,
-   -1029,    28,   140,    32,   165,   262, -1029, -1029, -1029,   580,
-     580,   858, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029,   859,   861,   864, -1029, -1029, -1029, -1029, -1029, -1029,
-     865, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,    99,
-     866,   870,   871,    41,   -31,    39,   -64,   637, -1029, -1029,
-     872,   -96, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029,   874, -1029, -1029, -1029, -1029,    21, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029,   858, -1029,   133,
-     144,   197, -1029, -1029,   198, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,   771,   878,   889,   890,   891,   892,   893,   894,
-     895,   896, -1029,   897,   898, -1029, -1029, -1029, -1029, -1029,
-     229, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,   252, -1029,   899,   900, -1029, -1029,
-     901,   903, -1029, -1029,   902,   906, -1029, -1029,   904,   908,
-   -1029, -1029,   907,   909, -1029, -1029, -1029, -1029, -1029, -1029,
-      87, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   180, -1029,
-   -1029,   910,   911, -1029, -1029,   912,   914, -1029,   915,   916,
-     917,   918,   919,   920,   269, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,   921,   922,   923, -1029,   276, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   277, -1029,
-   -1029, -1029,   924, -1029,   925, -1029, -1029, -1029,   278, -1029,
-   -1029, -1029, -1029, -1029,   293, -1029,   196, -1029,   926,   927,
-     928,   929, -1029,   297, -1029, -1029, -1029, -1029, -1029,   693,
-   -1029,   930,   931, -1029, -1029, -1029, -1029,   932,   933, -1029,
-   -1029, -1029,   934,   937,   262, -1029,   938,   939,   940,   941,
-     681,   710,   723,   722,   725,   726,   727,   728,   729,   730,
-     950,   731,   732,   953,   954,   955,   956,   580, -1029, -1029,
-     580, -1029,   858,   333, -1029,   859,   552, -1029,   861,   222,
-   -1029,   864,   662, -1029,   865,    99, -1029,   260,   866, -1029,
-     242, -1029,   870,  -109, -1029,   871,   739,   740,   741,   742,
-     744,   745,    41, -1029,   736,   747,   748,   -31, -1029,   969,
-     970,    39, -1029,   757,   974,   776,   977,   -64, -1029, -1029,
-     147,   872, -1029,   767,   784,   786,   789,   -96, -1029, -1029,
-     983,  1005,   -40, -1029,   874,  1026, -1029, -1029,   715,   812,
-   -1029,   329,   822,   826,   829, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   291, -1029, -1029,   830,   832,
-     842,   843, -1029,   301, -1029,   304, -1029,  1030, -1029,  1031,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   305, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029,  1037, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,  1064,  1071, -1029, -1029, -1029,
-   -1029, -1029, -1029,  1069, -1029,   308, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   905,   913,
-   -1029, -1029,   935, -1029,    28, -1029, -1029,  1118, -1029, -1029,
-   -1029, -1029, -1029,   334, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   936,   344, -1029,   841, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-     662, -1029,  1120,  1121,   942, -1029,   260, -1029, -1029, -1029,
-   -1029, -1029, -1029,  1125,   943,  1126,   147, -1029, -1029, -1029,
-   -1029, -1029,   946,   947, -1029, -1029,  1127, -1029,   951, -1029,
-   -1029, -1029,  1124, -1029, -1029,   253, -1029,   -38,  1124, -1029,
-   -1029,  1129,  1130,  1132, -1029,   345, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029,  1133,   949,   952,   957,  1134,   -38, -1029,
-     959, -1029, -1029, -1029,   960, -1029, -1029, -1029
+     435, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    75,    44,    64,   109,   137,   167,
+     186,   193,   223,   246,   277,   278,   279,   289, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    44,  -167,    83,   244,    88,   662,
+     -40,   310,   152,   325,   115,   -41,   452,   134, -1028,   300,
+     304,   334,   339,   305, -1028,    15, -1028, -1028, -1028, -1028,
+     344,   353,   359, -1028, -1028, -1028,   363,   364, -1028, -1028,
+   -1028,   365,   366,   373,   374,   377,   387,   389,   390,   392,
+     393,   394, -1028,   395,   396,   397,   400,   401, -1028, -1028,
+   -1028,   404,   405,   407,   408, -1028, -1028, -1028,   409, -1028,
+   -1028, -1028, -1028, -1028, -1028,   411,   412,   413, -1028, -1028,
+   -1028, -1028, -1028,   414, -1028, -1028, -1028, -1028, -1028, -1028,
+     415,   416,   417, -1028, -1028,   419, -1028,    42, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+     422,   428,   429,   436, -1028,    49, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   440, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    59, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   441, -1028,
+   -1028, -1028, -1028,    62, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   348,   443, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   449, -1028, -1028,   454, -1028,
+   -1028, -1028,   455, -1028, -1028,   453,   457, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+     458,   459,   460, -1028, -1028, -1028, -1028,   461,   462, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,    65, -1028, -1028, -1028,   463, -1028, -1028,   466,
+   -1028,   467,   469, -1028, -1028,   471,   472, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    91, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   473,    98, -1028, -1028, -1028, -1028,    44,    44,
+   -1028,   256,   476, -1028, -1028,   478,   480,   481,   262,   263,
+     266,   485,   488,   490,   272,   271,   493,   496,   498,   281,
+     283,   284,   287,   303,   293,   290,   296,   299,   307,   308,
+     520,   311,   313,   314,   316,   317,   524,   529,   539,   319,
+     320,   322,   327,   550,   551,   553,   335,   555,   556,   558,
+     561,   562,   563,   347,   349,   350,   567,   569,   573,   574,
+     577,   361,   578,   585,   588,   590,   591,   592,   372,   382,
+     385,   595,   598, -1028,   244, -1028,   608,   609,   610,   432,
+     433,   399,   418,    88, -1028,   611,   616,   632,   633,   634,
+     635,   437,   636,   655,   657,   662, -1028,   658,   445,   -40,
+   -1028,   659,   660,   665,   666,   667,   669,   671,   672, -1028,
+     310, -1028,   673,   674,   456,   676,   677,   678,   464, -1028,
+     325,   679,   465,   474,   475, -1028,   115,   680,   682,    23,
+   -1028,   477,   683,   684,   468,   694,   482,   483,   697,   699,
+     479,   484,   707,   708,   709,   711,   452, -1028,   712,   494,
+     134, -1028, -1028, -1028,   714,   713,   715,   716,   732, -1028,
+   -1028, -1028,   444,   497,   499, -1028, -1028,   733,   734,   737,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   531, -1028, -1028, -1028, -1028, -1028,     9,   535,   537,
+   -1028, -1028, -1028, -1028,   755,   756,   757, -1028,   541,   273,
+     763,   762,   552,   264, -1028, -1028, -1028,   767,   768,   770,
+     771,   778, -1028,   779,   780,   781,   785,   571,   575, -1028,
+   -1028, -1028,   773,   788, -1028,   791,   166,   199, -1028, -1028,
+   -1028, -1028, -1028,   579,   580,   581,   794,   582,   583, -1028,
+     791,   584,   800, -1028,   587, -1028, -1028,   791,   589,   593,
+     594,   596,   597,   599,   600, -1028,   601,   602, -1028,   603,
+     604,   605, -1028, -1028,   606, -1028, -1028, -1028, -1028,   607,
+     762, -1028, -1028,   612,   613, -1028,   614, -1028, -1028,     8,
+     625, -1028, -1028,     9,   615,   617,   618, -1028,   807, -1028,
+   -1028,    44,   244,   134,    88,   212, -1028, -1028, -1028,   114,
+     114,   806, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   810,   813,   823, -1028, -1028, -1028, -1028, -1028, -1028,
+     824, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   150,
+     825,   826,   831,    72,   -81,   -31,    34,   452, -1028, -1028,
+     834,  -117, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028,   835, -1028, -1028, -1028, -1028,   696, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   806, -1028,   123,
+     182,   191, -1028, -1028,   228, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   840,   841,   842,   843,   844,   845,   846,   847,
+     850,   851, -1028,   852,   853, -1028, -1028, -1028, -1028, -1028,
+     238, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,   240, -1028,   808,   855, -1028, -1028,
+     854,   856, -1028, -1028,   857,   858, -1028, -1028,   859,   861,
+   -1028, -1028,   860,   864, -1028, -1028, -1028, -1028, -1028, -1028,
+      28, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    32, -1028,
+   -1028,   862,   866, -1028, -1028,   865,   867, -1028,   868,   869,
+     870,   871,   872,   873,   249, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   874,   875,   876, -1028,   251, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   257, -1028,
+   -1028, -1028,   877, -1028,   878, -1028, -1028, -1028,   291, -1028,
+   -1028, -1028, -1028, -1028,   294, -1028,    38, -1028,   879,   881,
+     882,   883, -1028,   295, -1028, -1028, -1028, -1028, -1028,   640,
+   -1028,   884,   885, -1028, -1028,   886, -1028,   887, -1028, -1028,
+   -1028,   888,   891,   212, -1028,   892,   893,   894,   895,   668,
+     664,   681,   675,   685,   686,   687,   688,   689,   690,   897,
+     691,   692,   898,   899,   901,   902,   114, -1028, -1028,   114,
+   -1028,   806,   662, -1028,   810,   325, -1028,   813,   115, -1028,
+     823,  1326, -1028,   824,   150, -1028,   154,   825, -1028,   310,
+   -1028,   826,   -41, -1028,   831,   695,   698,   700,   701,   702,
+     703,    72, -1028,   704,   705,   710,   -81, -1028,   903,   910,
+     -31, -1028,   706,   913,   717,   915,    34, -1028, -1028,    39,
+     834, -1028,   718,   719,   720,   721,  -117, -1028, -1028,   914,
+     919,   -40, -1028,   835,   923, -1028, -1028,   725,   726, -1028,
+      87,   727,   728,   729, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,   204, -1028, -1028,   730,   731,   735,
+     736, -1028,   297, -1028,   301, -1028,   922, -1028,   924, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   338, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+     930, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,   927,   933, -1028, -1028, -1028, -1028,
+   -1028, -1028,   929, -1028,   342, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,   738,   739, -1028,
+   -1028,   740, -1028,    44, -1028, -1028,   934, -1028, -1028, -1028,
+   -1028, -1028,   346, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,   741,   352, -1028,   791, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,  1326,
+   -1028,   935,   937,   742, -1028,   154, -1028, -1028, -1028, -1028,
+   -1028, -1028,   938,   743,   950,    39, -1028, -1028, -1028, -1028,
+   -1028,   747,   748, -1028, -1028,   951, -1028,   750, -1028, -1028,
+   -1028,   948, -1028, -1028,   112, -1028,     7,   948, -1028, -1028,
+     955,   960,   969, -1028,   356, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,   973,   766,   758,   765,   976,     7, -1028,   776,
+   -1028, -1028, -1028,   786, -1028, -1028, -1028
   };
 
   const short
@@ -5311,16 +5311,16 @@ namespace isc { namespace dhcp {
       36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
       59,     5,    65,     7,   208,     9,   388,    11,   606,    13,
      635,    15,   524,    17,   533,    19,   572,    21,   350,    23,
-     753,    25,   804,    27,    46,    39,     0,     0,     0,     0,
+     752,    25,   803,    27,    46,    39,     0,     0,     0,     0,
        0,   637,     0,   535,   574,     0,     0,     0,    48,     0,
-      47,     0,     0,    40,    61,     0,    63,   802,   193,   226,
+      47,     0,     0,    40,    61,     0,    63,   801,   193,   226,
        0,     0,     0,   657,   659,   661,     0,     0,   224,   237,
      239,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   150,     0,     0,     0,     0,     0,   161,   168,
      170,     0,     0,     0,     0,   379,   522,   563,     0,   153,
-     174,   466,   622,   624,   459,     0,     0,     0,   312,   685,
-     626,   341,   362,     0,   327,   720,   734,   751,   181,   183,
-       0,     0,     0,   814,   856,     0,   138,     0,    67,    70,
+     174,   466,   622,   624,   459,     0,     0,     0,   312,   684,
+     626,   341,   362,     0,   327,   719,   733,   750,   181,   183,
+       0,     0,     0,   813,   855,     0,   138,     0,    67,    70,
       71,    72,    73,    74,   108,   109,   110,   111,   112,    75,
      103,   134,   135,    92,    93,    94,   116,   117,   118,   119,
      120,   121,   122,   123,   124,   125,   114,   115,   126,   127,
@@ -5330,25 +5330,25 @@ namespace isc { namespace dhcp {
       88,    89,    90,    91,   102,   113,   133,   210,   212,   216,
        0,     0,     0,     0,   207,     0,   195,   198,   199,   200,
      201,   202,   203,   204,   205,   206,   444,   446,   448,   597,
-     442,   450,     0,   454,   452,   681,   441,   393,   394,   395,
+     442,   450,     0,   454,   452,   679,   441,   393,   394,   395,
      396,   397,   421,   422,   423,   424,   425,   439,   411,   412,
      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
      436,   437,   438,   440,     0,   390,   400,   416,   417,   418,
      401,   403,   404,   407,   408,   409,   406,   402,   398,   399,
      419,   420,   405,   413,   414,   415,   410,   619,     0,   618,
-     614,   615,   613,     0,   608,   611,   612,   616,   617,   679,
-     667,   669,   673,   671,   677,   675,   663,   656,   650,   654,
+     614,   615,   613,     0,   608,   611,   612,   616,   617,   677,
+     663,   665,   667,   671,   669,   675,   673,   656,   650,   654,
      655,     0,   638,   639,   651,   652,   653,   647,   642,   648,
      644,   645,   646,   649,   643,     0,   553,   286,     0,   557,
      555,   560,     0,   549,   550,     0,   536,   537,   540,   552,
      541,   542,   543,   559,   544,   545,   546,   547,   548,   590,
        0,     0,     0,   588,   589,   592,   593,     0,   575,   576,
      579,   580,   581,   582,   583,   584,   585,   586,   587,   358,
-     360,   355,     0,   352,   356,   357,     0,   790,   777,     0,
-     780,     0,     0,   784,   788,     0,     0,   794,   796,   798,
-     800,   775,   773,   774,     0,   755,   758,   759,   760,   761,
-     762,   763,   764,   765,   770,   766,   767,   768,   769,   771,
-     772,   811,     0,     0,   806,   809,   810,    45,    50,     0,
+     360,   355,     0,   352,   356,   357,     0,   789,   776,     0,
+     779,     0,     0,   783,   787,     0,     0,   793,   795,   797,
+     799,   774,   772,   773,     0,   754,   757,   758,   759,   760,
+     761,   762,   763,   764,   769,   765,   766,   767,   768,   770,
+     771,   810,     0,     0,   805,   808,   809,    45,    50,     0,
       37,    43,     0,    64,    60,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -5363,31 +5363,31 @@ namespace isc { namespace dhcp {
      641,   525,     0,     0,     0,     0,     0,     0,     0,   534,
      539,     0,     0,     0,     0,   573,   578,     0,     0,   354,
      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   757,   754,     0,     0,
-     808,   805,    49,    41,     0,     0,     0,     0,     0,   155,
+       0,     0,     0,     0,     0,     0,   756,   753,     0,     0,
+     807,   804,    49,    41,     0,     0,     0,     0,     0,   155,
      156,   157,     0,     0,     0,   191,   192,     0,     0,     0,
      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
      149,     0,   186,   187,   158,   159,   160,     0,     0,     0,
      172,   173,   180,   185,     0,     0,     0,   152,     0,     0,
        0,     0,     0,     0,   456,   457,   458,     0,     0,     0,
-       0,     0,   719,     0,     0,     0,     0,     0,     0,   188,
+       0,     0,   718,     0,     0,     0,     0,     0,     0,   188,
      189,   190,     0,     0,    68,     0,     0,     0,   220,   221,
      222,   223,   196,     0,     0,     0,     0,     0,     0,   465,
        0,     0,     0,   391,     0,   621,   609,     0,     0,     0,
        0,     0,     0,     0,     0,   640,     0,     0,   551,     0,
        0,     0,   562,   538,     0,   594,   595,   596,   577,     0,
-       0,   353,   776,     0,     0,   779,     0,   782,   783,     0,
-       0,   792,   793,     0,     0,     0,     0,   756,     0,   813,
-     807,     0,     0,     0,     0,     0,   658,   660,   662,     0,
+       0,   353,   775,     0,     0,   778,     0,   781,   782,     0,
+       0,   791,   792,     0,     0,     0,     0,   755,     0,   812,
+     806,     0,     0,     0,     0,     0,   658,   660,   662,     0,
        0,   241,   151,   163,   164,   165,   166,   167,   162,   169,
      171,   381,   526,   565,   154,   176,   177,   178,   179,   175,
      468,    38,   623,   625,   461,   462,   463,   464,   460,     0,
        0,   628,   343,     0,     0,     0,     0,     0,   182,   184,
        0,     0,    51,   211,   214,   215,   213,   218,   219,   217,
      445,   447,   449,   599,   443,   451,   455,   453,     0,   620,
-     680,   668,   670,   674,   672,   678,   676,   664,   554,   287,
-     558,   556,   561,   591,   359,   361,   791,   778,   781,   786,
-     787,   785,   789,   795,   797,   799,   801,   241,    42,     0,
+     678,   664,   666,   668,   672,   670,   676,   674,   554,   287,
+     558,   556,   561,   591,   359,   361,   790,   777,   780,   785,
+     786,   784,   788,   794,   796,   798,   800,   241,    42,     0,
        0,     0,   233,   235,     0,   228,   231,   232,   274,   279,
      281,   283,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   297,     0,     0,   304,   306,   308,   310,   273,
@@ -5396,99 +5396,99 @@ namespace isc { namespace dhcp {
      269,   270,   271,   272,     0,   246,     0,   242,   243,   386,
        0,   382,   383,   531,     0,   527,   528,   570,     0,   566,
      567,   473,     0,   469,   470,   322,   323,   324,   325,   326,
-       0,   314,   317,   318,   319,   320,   321,   690,     0,   687,
+       0,   314,   317,   318,   319,   320,   321,   689,     0,   686,
      633,     0,   629,   630,   348,     0,   344,   345,     0,     0,
        0,     0,     0,     0,     0,   364,   367,   368,   369,   370,
      371,   372,     0,     0,     0,   337,     0,   329,   332,   333,
-     334,   335,   336,   730,   732,   729,   727,   728,     0,   722,
-     725,   726,     0,   746,     0,   749,   742,   743,     0,   736,
-     739,   740,   741,   744,     0,   819,     0,   816,     0,     0,
-       0,     0,   865,     0,   858,   861,   862,   863,   864,    53,
-     604,     0,   600,   601,   665,   683,   684,     0,     0,    62,
-     803,   194,     0,     0,   230,   227,     0,     0,     0,     0,
+     334,   335,   336,   729,   731,   728,   726,   727,     0,   721,
+     724,   725,     0,   745,     0,   748,   741,   742,     0,   735,
+     738,   739,   740,   743,     0,   818,     0,   815,     0,     0,
+       0,     0,   864,     0,   857,   860,   861,   862,   863,    53,
+     604,     0,   600,   601,   682,     0,   681,     0,    62,   802,
+     194,     0,     0,   230,   227,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   250,   225,   238,
-       0,   240,   245,     0,   380,   385,   535,   523,   530,   574,
-     564,   569,     0,   467,   472,   316,   313,   692,   689,   686,
-     637,   627,   632,     0,   342,   347,     0,     0,     0,     0,
-       0,     0,   366,   363,     0,     0,     0,   331,   328,     0,
-       0,   724,   721,     0,     0,     0,     0,   738,   735,   752,
-       0,   818,   815,     0,     0,     0,     0,   860,   857,    55,
-       0,    54,     0,   598,   603,     0,   682,   812,     0,     0,
-     229,     0,     0,     0,     0,   285,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,     0,   302,   303,     0,     0,
-       0,     0,   249,     0,   244,     0,   384,     0,   529,     0,
-     568,   521,   496,   497,   498,   481,   482,   501,   502,   503,
-     504,   505,   519,   484,   485,   506,   507,   508,   509,   510,
-     511,   512,   513,   514,   515,   516,   517,   518,   520,   478,
-     479,   480,   494,   495,   491,   492,   493,   490,     0,   475,
-     483,   499,   500,   486,   487,   488,   489,   471,   315,   714,
-     716,     0,   708,   709,   710,   711,   712,   713,   701,   702,
-     706,   707,   703,   704,   705,     0,   693,   694,   697,   698,
-     699,   700,   688,     0,   631,     0,   346,   373,   374,   375,
-     376,   377,   378,   365,   338,   339,   340,   330,     0,     0,
-     723,   745,     0,   748,     0,   737,   834,     0,   832,   830,
-     824,   828,   829,     0,   821,   826,   827,   825,   817,   866,
-     867,   868,   869,   859,    52,    57,     0,   602,     0,   234,
-     236,   276,   277,   278,   275,   280,   282,   284,   299,   300,
-     301,   298,   305,   307,   309,   311,   247,   387,   532,   571,
-     477,   474,     0,     0,     0,   691,   696,   634,   349,   731,
-     733,   747,   750,     0,     0,     0,   823,   820,    56,   605,
-     666,   476,     0,     0,   718,   695,     0,   831,     0,   822,
-     715,   717,     0,   833,   839,     0,   836,     0,   838,   835,
-     849,     0,     0,     0,   854,     0,   841,   844,   845,   846,
-     847,   848,   837,     0,     0,     0,     0,     0,   843,   840,
-       0,   851,   852,   853,     0,   842,   850,   855
+       0,     0,     0,     0,     0,     0,   250,   225,   238,     0,
+     240,   245,     0,   380,   385,   535,   523,   530,   574,   564,
+     569,     0,   467,   472,   316,   313,   691,   688,   685,   637,
+     627,   632,     0,   342,   347,     0,     0,     0,     0,     0,
+       0,   366,   363,     0,     0,     0,   331,   328,     0,     0,
+     723,   720,     0,     0,     0,     0,   737,   734,   751,     0,
+     817,   814,     0,     0,     0,     0,   859,   856,    55,     0,
+      54,     0,   598,   603,     0,   680,   811,     0,     0,   229,
+       0,     0,     0,     0,   285,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,     0,   302,   303,     0,     0,     0,
+       0,   249,     0,   244,     0,   384,     0,   529,     0,   568,
+     521,   496,   497,   498,   481,   482,   501,   502,   503,   504,
+     505,   519,   484,   485,   506,   507,   508,   509,   510,   511,
+     512,   513,   514,   515,   516,   517,   518,   520,   478,   479,
+     480,   494,   495,   491,   492,   493,   490,     0,   475,   483,
+     499,   500,   486,   487,   488,   489,   471,   315,   713,   715,
+       0,   707,   708,   709,   710,   711,   712,   700,   701,   705,
+     706,   702,   703,   704,     0,   692,   693,   696,   697,   698,
+     699,   687,     0,   631,     0,   346,   373,   374,   375,   376,
+     377,   378,   365,   338,   339,   340,   330,     0,     0,   722,
+     744,     0,   747,     0,   736,   833,     0,   831,   829,   823,
+     827,   828,     0,   820,   825,   826,   824,   816,   865,   866,
+     867,   868,   858,    52,    57,     0,   602,     0,   234,   236,
+     276,   277,   278,   275,   280,   282,   284,   299,   300,   301,
+     298,   305,   307,   309,   311,   247,   387,   532,   571,   477,
+     474,     0,     0,     0,   690,   695,   634,   349,   730,   732,
+     746,   749,     0,     0,     0,   822,   819,    56,   605,   683,
+     476,     0,     0,   717,   694,     0,   830,     0,   821,   714,
+     716,     0,   832,   838,     0,   835,     0,   837,   834,   848,
+       0,     0,     0,   853,     0,   840,   843,   844,   845,   846,
+     847,   836,     0,     0,     0,     0,     0,   842,   839,     0,
+     850,   851,   852,     0,   841,   849,   854
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   -59, -1029,  -603, -1029,   440,
-   -1029, -1029, -1029, -1029, -1029, -1029,  -664, -1029, -1029, -1029,
-     -67, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   410,   630,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   -59, -1028,  -587, -1028,   323,
+   -1028, -1028, -1028, -1028, -1028, -1028,  -647, -1028, -1028, -1028,
+     -67, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   275,   515,
      -30,   -26,    26,   -54,   -37,   -27,     0,    14,    16,    45,
-   -1029, -1029, -1029, -1029,    48, -1029, -1029,    50,    51,    52,
-      53,    55,    56, -1029,   416,    58, -1029,    63, -1029,    66,
-      68,    69, -1029, -1029,    70,    71, -1029,    73, -1029,    74,
-   -1029, -1029, -1029, -1029, -1029,    33, -1029, -1029, -1029,   411,
-     617, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-     142, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   316,
-   -1029,   109, -1029,  -728,   120, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   -45, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,   103, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029,    85, -1029, -1029, -1029, -1029, -1029, -1029, -1029,    94,
-   -1029, -1029, -1029,   100,   582, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029,    92, -1029, -1029, -1029, -1029, -1029, -1029, -1028,
-   -1029, -1029, -1029,   121, -1029, -1029, -1029,   122,   624, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1025, -1029,    78,
-   -1029,    79, -1029,    76,    81,    84,    86, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,   116, -1029, -1029,  -108,   -62, -1029,
-   -1029, -1029, -1029, -1029,   123, -1029, -1029, -1029,   128, -1029,
-     603, -1029,   -63, -1029, -1029, -1029, -1029, -1029,   -44, -1029,
-   -1029, -1029, -1029, -1029,   -23, -1029, -1029, -1029,   131, -1029,
-   -1029, -1029,   138, -1029,   612, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029,    89, -1029, -1029,
-   -1029,    93,   671, -1029, -1029, -1029,   -49, -1029,   -10, -1029,
-     -56, -1029, -1029, -1029,   124, -1029, -1029, -1029,   129, -1029,
-     688,     3, -1029,    13, -1029,    29, -1029,   386, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1024, -1029, -1029, -1029, -1029,
-   -1029,   141, -1029, -1029, -1029,   -90, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029,   117, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029,   110, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029,   413,   605, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029,   460,   602, -1029, -1029,
-   -1029, -1029, -1029, -1029,   113, -1029, -1029,   -91, -1029, -1029,
-   -1029, -1029, -1029, -1029,  -112, -1029, -1029,  -131, -1029, -1029,
-   -1029, -1029, -1029, -1029, -1029, -1029, -1029, -1029,   111, -1029,
-   -1029, -1029, -1029
+   -1028, -1028, -1028, -1028,    48, -1028, -1028,    50,    51,    52,
+      53,    55,    56, -1028,   315,    58, -1028,    63, -1028,    66,
+      68,    69, -1028, -1028,    70,    71, -1028,    73, -1028,    74,
+   -1028, -1028, -1028, -1028, -1028,    33, -1028, -1028, -1028,   276,
+     514, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+      10, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,   213,
+   -1028,    12, -1028,  -728,    21, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   -45, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,     6, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,   -15, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    -1,
+   -1028, -1028, -1028,    11,   495, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028,    60, -1028, -1028, -1028, -1028, -1028, -1028, -1027,
+   -1028, -1028, -1028,    37, -1028, -1028, -1028,    41,   619, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1025, -1028,    78,
+   -1028,    79, -1028,    76,    81,    84,    86, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    80, -1028, -1028,  -193,   -62, -1028,
+   -1028, -1028, -1028, -1028,    89, -1028, -1028, -1028,    93, -1028,
+     564, -1028,   -63, -1028, -1028, -1028, -1028, -1028,   -44, -1028,
+   -1028, -1028, -1028, -1028,   -23, -1028, -1028, -1028,    90, -1028,
+   -1028, -1028,    94, -1028,   565, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028,    36, -1028, -1028,
+   -1028,    43,   620, -1028, -1028, -1028,   -49, -1028,   -10, -1028,
+     -56, -1028, -1028, -1028,    82, -1028, -1028, -1028,    92, -1028,
+     586,     3, -1028,    13, -1028,    29, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1024, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028,    95, -1028, -1028, -1028,  -140, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028,    67, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028,    77, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028,   362,   554, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028,   410,   548, -1028, -1028,
+   -1028, -1028, -1028, -1028,    85, -1028, -1028,  -141, -1028, -1028,
+   -1028, -1028, -1028, -1028,  -162, -1028, -1028,  -181, -1028, -1028,
+   -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,    61, -1028,
+   -1028, -1028, -1028
   };
 
   const short
@@ -5496,7 +5496,7 @@ namespace isc { namespace dhcp {
   {
        0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    36,    37,    38,    65,   762,
-      82,    83,    39,    64,    79,    80,   783,   989,  1090,  1091,
+      82,    83,    39,    64,    79,    80,   783,   989,  1089,  1090,
      859,    41,    66,    85,   442,    86,    43,    67,   157,   158,
      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
      169,   170,   470,   171,   172,   487,   173,   174,   175,   176,
@@ -5505,39 +5505,39 @@ namespace isc { namespace dhcp {
      189,   190,   191,   192,   193,   194,   195,   196,   446,   235,
      236,    45,    68,   237,   516,   238,   517,   786,   239,   518,
      789,   240,   241,   242,   243,   197,   456,   198,   447,   834,
-     835,   836,  1002,   837,  1003,   199,   457,   200,   458,   886,
-     887,   888,  1030,   860,   861,   862,  1006,  1254,   863,  1007,
-     864,  1008,   865,  1009,   866,   867,   553,   868,   869,   870,
-     871,   872,   873,   874,   875,   876,   877,  1020,  1261,   878,
-     879,   880,  1023,   881,  1024,   882,  1025,   883,  1026,   201,
+     835,   836,  1001,   837,  1002,   199,   457,   200,   458,   886,
+     887,   888,  1029,   860,   861,   862,  1005,  1253,   863,  1006,
+     864,  1007,   865,  1008,   866,   867,   553,   868,   869,   870,
+     871,   872,   873,   874,   875,   876,   877,  1019,  1260,   878,
+     879,   880,  1022,   881,  1023,   882,  1024,   883,  1025,   201,
      496,   910,   911,   912,   913,   914,   915,   916,   202,   502,
      946,   947,   948,   949,   950,   203,   499,   925,   926,   927,
-    1053,    59,    75,   392,   393,   394,   567,   395,   568,   204,
+    1052,    59,    75,   392,   393,   394,   567,   395,   568,   204,
      500,   934,   935,   936,   937,   938,   939,   940,   941,   205,
-     483,   890,   891,   892,  1033,    47,    69,   284,   285,   286,
+     483,   890,   891,   892,  1032,    47,    69,   284,   285,   286,
      529,   287,   525,   288,   526,   289,   527,   290,   530,   291,
      533,   292,   532,   206,   207,   208,   209,   492,   768,   297,
-     210,   489,   902,   903,   904,  1042,  1168,  1169,   211,   484,
-      53,    72,   894,   895,   896,  1036,    55,    73,   355,   356,
+     210,   489,   902,   903,   904,  1041,  1167,  1168,   211,   484,
+      53,    72,   894,   895,   896,  1035,    55,    73,   355,   356,
      357,   358,   359,   360,   361,   552,   362,   556,   363,   555,
-     364,   365,   557,   366,   212,   485,   898,   899,   900,  1039,
+     364,   365,   557,   366,   212,   485,   898,   899,   900,  1038,
       57,    74,   377,   378,   379,   380,   381,   561,   382,   383,
-     384,   385,   386,   299,   528,   991,   992,   993,  1092,    49,
+     384,   385,   386,   299,   528,   991,   992,   993,  1091,    49,
       70,   313,   314,   315,   537,   316,   213,   490,   214,   491,
-     215,   498,   921,   922,   923,  1050,    51,    71,   331,   332,
-     333,   216,   451,   217,   452,   218,   453,   337,   548,   996,
-    1095,   338,   542,   339,   543,   340,   545,   341,   544,   342,
-     547,   343,   546,   344,   541,   306,   534,   997,   219,   497,
-     918,   919,  1047,  1195,  1196,  1197,  1198,  1199,  1272,  1200,
-    1273,  1201,   220,   221,   503,   958,   959,   960,  1069,   961,
-    1070,   222,   504,   968,   969,   970,   971,  1074,   972,   973,
-    1076,   223,   505,    61,    76,   414,   415,   416,   417,   573,
+     215,   498,   921,   922,   923,  1049,    51,    71,   331,   332,
+     333,   216,   451,   217,   452,   218,   453,   337,   542,   338,
+     543,   339,   544,   340,   546,   341,   545,   342,   548,   343,
+     547,   344,   541,   306,   534,   995,   996,  1094,   219,   497,
+     918,   919,  1046,  1194,  1195,  1196,  1197,  1198,  1271,  1199,
+    1272,  1200,   220,   221,   503,   958,   959,   960,  1068,   961,
+    1069,   222,   504,   968,   969,   970,   971,  1073,   972,   973,
+    1075,   223,   505,    61,    76,   414,   415,   416,   417,   573,
      418,   419,   575,   420,   421,   422,   578,   821,   423,   579,
      424,   572,   425,   426,   427,   582,   428,   583,   429,   584,
      430,   585,   224,   445,    63,    77,   433,   434,   435,   588,
-     436,   225,   511,   976,   977,  1080,  1233,  1234,  1235,  1236,
-    1285,  1237,  1283,  1305,  1306,  1307,  1315,  1316,  1317,  1323,
-    1318,  1319,  1320,  1321,  1327,   226,   512,   983,   984,   985,
+     436,   225,   511,   976,   977,  1079,  1232,  1233,  1234,  1235,
+    1284,  1236,  1282,  1304,  1305,  1306,  1314,  1315,  1316,  1322,
+    1317,  1318,  1319,  1320,  1326,   226,   512,   983,   984,   985,
      986,   987,   988
   };
 
@@ -5545,282 +5545,320 @@ namespace isc { namespace dhcp {
   Dhcp4Parser::yytable_[] =
   {
      156,   234,   256,   309,   327,    78,   353,   373,   391,   411,
-     345,   375,   884,   302,  1160,   260,   796,  1161,  1176,   244,
-     300,   317,   329,   800,   367,   387,   819,   412,   354,   374,
-     376,    28,   261,    29,    40,    30,    81,    31,   761,   257,
-     389,   390,   262,   258,   431,   432,   298,   312,   328,   743,
-     744,   745,   746,   132,   133,   437,   127,   443,   245,   301,
-     318,   330,   444,   368,   388,   514,   413,    42,   523,   263,
-     515,    44,   303,   524,   334,   535,   307,   132,   133,   126,
-     536,   439,   304,   264,   335,   265,   132,   133,   747,    46,
-    1045,   438,   253,  1046,   539,   259,   254,   308,   305,   540,
-     336,   569,   283,   962,   963,   964,   570,   761,    48,   978,
-     979,   980,   981,   155,   266,   389,   390,   267,   586,   268,
-     269,   270,   271,   587,   272,   273,   155,   274,   590,   942,
-     943,   944,   275,   591,    50,   276,   514,   277,   278,   279,
-     280,   999,   281,   282,    52,   293,    54,   590,   310,   311,
-     294,    87,  1000,   295,    88,   296,   132,   133,   965,  1310,
-     784,   785,  1311,  1312,  1313,  1314,    89,   326,   994,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     227,   228,   155,  1048,   229,    56,  1049,   230,   231,   232,
-     233,   155,   820,   928,   929,   930,   931,   932,   933,  1081,
-     523,  1004,  1082,   953,   954,  1001,  1005,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,  1027,   787,   788,   126,   127,  1028,   905,   906,
-     907,   908,  1160,   909,   347,  1161,  1176,   128,   129,   130,
-      32,    33,    34,    35,   131,  1027,  1308,   132,   133,  1309,
-    1029,   155,   134,    58,   132,   133,    60,   135,   136,   137,
-     138,   139,  1062,    62,    93,    94,    95,  1063,   140,  1067,
-    1071,  1077,   132,   133,  1068,  1072,  1078,   441,   141,   832,
-     833,   142,    93,    94,    95,    96,   586,    84,   143,   144,
-    1087,  1079,  1123,   145,  1027,  1088,   146,   535,  1270,  1266,
-     147,   569,  1267,  1271,   440,   448,  1278,   449,   450,   347,
-     369,   348,   349,   370,   371,   372,   454,   101,   102,   103,
-     148,   149,   150,   151,   152,   153,   455,  1286,   127,   132,
-     133,   459,  1287,  1226,   154,  1227,  1228,   539,  1328,  1258,
-    1259,  1260,  1289,  1329,   460,   126,   127,   347,   461,   132,
-     133,   462,   155,    91,    92,    93,    94,    95,    96,   155,
-    1251,  1252,  1253,   319,   463,   464,   465,   132,   133,   592,
-     593,   320,   321,   322,   323,   324,   325,   155,   326,   755,
-     756,   757,   758,  1179,  1180,  1181,   764,   765,   766,   767,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     466,   467,   468,   469,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   471,   246,   247,   248,   472,   127,
-     473,   474,   475,   479,   480,   481,   482,   486,   493,   494,
-     495,   129,   130,   501,   155,   508,   509,   156,   249,   510,
-     132,   133,   250,   251,   252,   134,   234,   513,   519,   520,
-     135,   136,   137,   521,   155,   253,   522,   531,   256,   254,
-     538,   140,   309,   549,   244,   550,   551,   554,   255,   302,
-     558,   260,   155,   327,   560,   559,   300,   562,   563,   564,
-     317,   566,   594,   353,   565,   571,   574,   576,   261,   373,
-     577,   329,   580,   375,   581,   257,   589,   595,   262,   258,
-     596,   367,   298,   245,   597,   354,   312,   387,   598,   411,
-     599,   374,   376,   148,   149,   301,   602,   328,   600,   318,
-     603,   604,   601,   605,   606,   263,   607,   412,   303,   608,
-     330,   609,   610,   611,   612,   621,   613,   614,   304,   264,
-     368,   265,   615,   334,   616,   155,   388,   627,   628,   617,
-     618,   259,   619,   335,   305,   620,   622,   629,   283,   623,
-     634,   635,   624,   625,   626,   632,   413,   630,   631,   336,
-     266,   633,   636,   267,  1290,   268,   269,   270,   271,   637,
-     272,   273,   346,   274,   638,   639,   640,   641,   275,   642,
-     643,   276,   644,   277,   278,   279,   280,   645,   281,   282,
-     646,   293,   647,   648,   649,   650,   294,   310,   311,   295,
-     838,   296,   651,   652,   839,   840,   841,   842,   843,   844,
-     845,   846,   847,   848,   849,   850,   851,   852,   653,   654,
-     655,   853,   854,   855,   856,   857,   858,   656,   657,   347,
-     658,   348,   349,   662,   663,   665,   350,   351,   352,   666,
-     667,   673,   659,   660,   674,   156,   732,   234,   661,   132,
-     133,   668,   828,   669,   670,   671,   675,   347,   676,   677,
-     678,   679,   680,   681,   682,   244,   684,   685,   687,   688,
-     689,   690,    91,    92,    93,    94,    95,    96,   691,   692,
-     693,   694,   696,   697,   699,   698,   700,   945,   955,   701,
-     411,   704,   702,   709,   982,   705,   710,   713,   714,   706,
-     707,   716,   712,   719,   245,   951,   956,   966,   412,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   715,
-     717,   718,   720,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   132,   133,   721,   723,   127,   347,
-     724,   722,   725,   726,   952,   957,   967,   413,   728,   729,
-     129,   130,   731,   733,   155,  1010,   734,   735,   736,   132,
-     133,   737,   251,   738,   134,   739,   740,   741,   751,   135,
-     136,   137,   742,   749,   253,   750,   752,   753,   254,   754,
-     760,    30,   155,   763,   769,   770,   771,   255,   396,   397,
-     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-     408,   772,   773,   778,   774,   775,   776,   409,   410,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,   777,   779,   780,   781,   782,   790,   791,   792,
-     793,   794,   148,   149,   795,   797,   798,   827,   822,   155,
-     799,   801,   802,   803,   804,   885,   889,   805,   893,   806,
-     807,   897,   901,   917,   808,   809,   810,   920,   924,   975,
-     811,   990,  1011,   812,   155,   813,   814,   816,   817,   818,
-     824,   825,   826,  1012,  1013,  1014,  1015,  1016,  1017,  1018,
-    1019,  1021,  1022,  1032,  1105,  1031,  1035,  1034,  1037,  1038,
-    1040,  1041,  1044,  1043,  1052,  1089,  1051,  1055,  1054,  1056,
-    1057,  1058,  1059,  1060,  1061,  1064,  1065,  1066,  1073,  1075,
-    1083,  1084,  1085,  1086,  1094,  1106,  1093,  1249,  1098,  1097,
-    1096,  1099,  1101,  1102,  1103,  1104,  1107,  1108,  1109,  1110,
-    1111,  1112,  1113,  1114,  1115,  1117,  1116,  1118,  1119,  1120,
-    1121,  1214,  1207,  1208,  1209,  1210,   256,  1211,  1212,   353,
-    1215,  1216,   373,  1218,  1219,  1131,   375,   302,  1222,   260,
-    1182,  1224,  1221,   327,   300,  1188,   391,   367,  1135,  1244,
-     387,   354,  1239,  1171,   374,   376,   261,  1159,  1190,  1223,
-     945,   329,  1187,   257,   955,  1136,   262,   258,  1245,  1240,
-     298,  1241,  1132,  1229,  1242,  1137,  1133,  1183,   951,  1170,
-     982,  1184,   956,   301,  1189,   309,   368,   328,   966,   388,
-    1248,  1231,  1172,   263,  1250,  1230,   303,  1191,  1268,  1269,
-     330,  1274,  1138,   317,  1255,  1173,   304,   264,  1256,   265,
-    1192,  1257,  1262,   334,  1263,  1174,  1139,   952,  1140,   259,
-    1193,   957,   305,   335,  1264,  1265,   283,   967,  1134,   312,
-    1232,  1175,  1275,  1185,  1276,  1158,  1194,  1277,   266,   336,
-    1186,   267,   318,   268,   269,   270,   271,  1141,   272,   273,
-    1142,   274,  1143,  1144,  1145,  1146,   275,  1147,  1148,   276,
-    1149,   277,   278,   279,   280,  1150,   281,   282,  1151,   293,
-    1152,  1153,  1154,  1155,   294,  1156,  1157,   295,  1164,   296,
-    1162,  1163,  1284,  1165,  1292,  1293,  1166,  1279,  1167,  1296,
-    1298,  1304,  1302,  1324,  1325,  1280,  1326,  1330,  1334,   823,
-     672,  1124,   829,   998,   664,   831,  1100,  1122,  1178,  1206,
-     815,   711,  1217,  1205,  1213,  1125,  1126,  1281,  1288,   683,
-    1177,  1128,  1291,   703,  1127,  1282,  1297,  1294,  1300,  1301,
-     310,   311,  1130,  1303,  1331,  1332,  1204,  1129,   708,  1203,
-    1333,  1336,  1337,  1247,   995,  1246,  1295,  1225,  1220,  1202,
-     974,   727,   730,   830,  1238,  1299,  1322,  1335,  1243,     0,
-       0,     0,     0,  1131,     0,     0,     0,     0,     0,  1182,
-     686,     0,     0,     0,  1188,     0,  1135,     0,     0,  1229,
-       0,  1171,     0,     0,     0,  1159,     0,  1190,     0,     0,
-       0,  1187,     0,  1136,     0,     0,     0,  1231,   695,     0,
-    1132,  1230,     0,  1137,  1133,     0,  1183,  1170,     0,     0,
-    1184,     0,     0,  1189,     0,     0,     0,     0,     0,     0,
-    1172,     0,     0,     0,     0,     0,  1191,     0,     0,     0,
-    1138,     0,     0,  1173,     0,     0,  1232,     0,     0,  1192,
-       0,     0,     0,  1174,  1139,     0,  1140,     0,     0,  1193,
-       0,     0,     0,     0,     0,     0,  1134,     0,     0,  1175,
-       0,     0,  1185,  1158,     0,  1194,     0,     0,     0,  1186,
-       0,     0,     0,     0,     0,  1141,     0,     0,  1142,     0,
-    1143,  1144,  1145,  1146,     0,  1147,  1148,     0,  1149,     0,
-       0,     0,     0,  1150,     0,     0,  1151,     0,  1152,  1153,
-    1154,  1155,     0,  1156,  1157,     0,  1164,     0,  1162,  1163,
-       0,  1165,     0,     0,  1166,     0,  1167
+     345,   375,   884,   302,  1159,   260,  1160,  1175,   443,   244,
+     300,   317,   329,   444,   367,   387,   819,   412,   354,   374,
+     376,  1044,   261,   796,  1045,  1047,   132,   133,  1048,   257,
+     800,  1080,   262,   258,  1081,   514,   298,   312,   328,    29,
+     515,    30,   523,    31,   761,    81,   127,   524,   245,   301,
+     318,   330,   535,   368,   388,   539,   413,   536,   569,   263,
+     540,    40,   303,   570,   334,    28,   307,   132,   133,   942,
+     943,   944,   304,   264,   335,   265,   132,   133,   978,   979,
+     980,   981,   253,    84,   586,   259,   254,   308,   305,   587,
+     336,   590,   283,   227,   228,   155,   591,   229,   389,   390,
+     230,   231,   232,   233,   266,  1307,    42,   267,  1308,   268,
+     269,   270,   271,   761,   272,   273,   514,   274,  1250,  1251,
+    1252,   998,   275,   953,   954,   276,   347,   277,   278,   279,
+     280,   155,   281,   282,    44,   293,   431,   432,   310,   311,
+     294,   132,   133,   295,   838,   296,   132,   133,   839,   840,
+     841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
+     851,   852,   389,   390,    46,   853,   854,   855,   856,   857,
+     858,   155,   155,   784,   785,   590,    93,    94,    95,    96,
+     999,   155,   820,    48,   523,   743,   744,   745,   746,  1000,
+      50,   962,   963,   964,  1309,   132,   133,  1310,  1311,  1312,
+    1313,   347,   347,   369,   348,   349,   370,   371,   372,   787,
+     788,   101,   102,   103,   928,   929,   930,   931,   932,   933,
+      52,  1003,   132,   133,   747,  1225,  1004,  1226,  1227,   832,
+     833,  1026,  1159,  1026,  1160,  1175,  1027,   126,  1028,   126,
+     127,   347,  1061,    54,  1066,    87,   965,  1062,    88,  1067,
+    1070,   155,  1257,  1258,  1259,  1071,    32,    33,    34,    35,
+      89,   132,   133,    90,    91,    92,    93,    94,    95,    96,
+      97,    98,    99,   100,    56,    58,    60,  1178,  1179,  1180,
+     905,   906,   907,   908,  1076,   909,    62,   586,  1086,  1077,
+    1026,  1122,  1078,  1087,   535,  1265,   437,   438,   441,  1266,
+     155,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   155,   155,   439,   126,
+     127,  1269,    93,    94,    95,   569,  1270,   440,   448,  1285,
+    1277,   128,   129,   130,  1286,   539,   549,   449,   131,  1327,
+    1288,   132,   133,   450,  1328,   346,   134,   454,   455,   459,
+     460,   135,   136,   137,   138,   139,   155,   461,   462,   592,
+     593,   463,   140,   755,   756,   757,   758,   764,   765,   766,
+     767,   464,   141,   465,   466,   142,   467,   468,   469,   471,
+     472,   473,   143,   144,   474,   475,   127,   145,   479,   480,
+     146,   481,   482,   486,   147,   493,   494,   495,   501,   508,
+     509,   510,   347,   513,   348,   349,   519,   132,   133,   350,
+     351,   352,   520,   521,   148,   149,   150,   151,   152,   153,
+     522,   319,   132,   133,   531,   538,   550,   156,   154,   320,
+     321,   322,   323,   324,   325,   326,   234,   551,   554,   558,
+     560,   559,   562,   563,   564,   566,   155,   571,   256,   565,
+     574,   576,   309,   577,   244,   580,   581,   589,   594,   302,
+     595,   260,   596,   327,   597,   598,   300,   599,   600,   602,
+     317,   601,   603,   353,   604,   605,   606,   607,   261,   373,
+     608,   329,   609,   375,   610,   257,   611,   612,   262,   258,
+     613,   367,   298,   245,   616,   354,   312,   387,   615,   411,
+     617,   374,   376,   618,   621,   301,   614,   328,   627,   318,
+     619,   620,   155,   628,   622,   263,   623,   412,   303,   624,
+     330,   625,   626,   629,   630,   631,   632,   155,   304,   264,
+     368,   265,   633,   334,   634,   635,   388,   636,   637,   638,
+     639,   259,   640,   335,   305,   641,   642,   643,   283,   132,
+     133,   647,   644,   648,   645,   646,   413,   649,   650,   336,
+     266,   651,   653,   267,   652,   268,   269,   270,   271,   654,
+     272,   273,   655,   274,   656,   657,   658,   659,   275,   662,
+    1289,   276,   663,   277,   278,   279,   280,   660,   281,   282,
+     661,   293,   665,   666,   667,   673,   294,   310,   311,   295,
+     674,   296,   670,   396,   397,   398,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,   675,   676,   677,   678,
+     680,   671,   409,   410,     1,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,   668,   669,   681,
+     679,   682,   684,   687,   688,   156,   736,   234,   685,   689,
+     690,   691,   828,   692,   155,   693,   694,   696,   697,   698,
+     699,   700,   701,   704,   709,   244,   710,   713,   714,   702,
+     705,   715,    91,    92,    93,    94,    95,    96,   716,   706,
+     707,   719,   712,   720,   721,   717,   718,   945,   955,   722,
+     411,   723,   724,   725,   982,   726,   728,   729,   731,   737,
+     732,   738,   733,   734,   245,   951,   956,   966,   412,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   735,
+     739,   740,   741,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   742,   246,   247,   248,   749,   127,   750,
+     751,   752,   753,   754,   952,   957,   967,   413,   760,    30,
+     129,   130,   769,   770,   763,   771,   772,   249,   780,   132,
+     133,   250,   251,   252,   134,   773,   774,   775,   776,   135,
+     136,   137,   777,   778,   253,   781,   782,   779,   254,   793,
+     140,   790,   791,   792,   794,   795,   797,   798,   255,   799,
+     822,   801,   827,   885,  1030,   802,   803,   889,   804,   805,
+     893,   806,   807,   808,   809,   810,   811,   812,   813,   814,
+     897,   901,   917,   920,   816,   817,   818,   824,   924,   825,
+     826,   975,   990,   994,  1009,  1010,  1011,  1012,  1013,  1014,
+    1015,  1016,   148,   149,  1017,  1018,  1020,  1021,  1031,  1034,
+    1033,  1037,  1088,  1036,  1040,  1039,  1042,  1043,  1050,  1051,
+    1054,  1053,  1055,  1056,  1057,  1058,  1059,  1060,  1063,  1064,
+    1065,  1072,  1074,  1082,   155,  1083,  1084,  1085,  1093,  1105,
+    1092,  1104,  1097,  1096,  1095,  1098,  1100,  1101,  1102,  1103,
+    1107,  1114,  1117,  1118,  1106,  1119,  1120,  1217,  1108,  1109,
+    1110,  1111,  1112,  1113,  1218,  1116,  1115,  1221,  1206,  1223,
+    1243,  1207,  1244,  1208,  1209,  1210,  1211,  1247,  1214,  1213,
+    1267,  1220,  1268,  1215,  1273,  1274,  1275,  1276,  1283,  1291,
+    1222,  1292,  1295,  1238,  1239,  1240,  1241,  1248,  1249,  1254,
+    1255,  1256,  1261,  1262,  1297,  1303,  1301,  1263,  1264,  1323,
+    1278,  1279,  1280,  1287,  1324,   256,  1296,  1293,   353,  1299,
+    1300,   373,  1302,  1325,  1130,   375,   302,  1329,   260,  1181,
+    1333,  1331,   327,   300,  1187,   391,   367,  1134,  1332,   387,
+     354,  1330,  1170,   374,   376,   261,  1158,  1189,  1335,   945,
+     329,  1186,   257,   955,  1135,   262,   258,   829,  1336,   298,
+     831,  1131,  1228,  1099,  1136,  1132,  1182,   951,  1169,   982,
+    1183,   956,   301,  1188,   309,   368,   328,   966,   388,   664,
+    1230,  1171,   263,   815,  1229,   303,  1190,   672,   823,   330,
+     997,  1137,   317,  1123,  1172,   304,   264,  1121,   265,  1191,
+    1177,  1216,   334,  1205,  1173,  1138,   952,  1139,   259,  1192,
+     957,   305,   335,  1204,   711,   283,   967,  1133,   312,  1231,
+    1174,  1125,  1184,  1124,  1157,  1193,  1290,   266,   336,  1185,
+     267,   318,   268,   269,   270,   271,  1140,   272,   273,  1141,
+     274,  1142,  1143,  1144,  1145,   275,  1146,  1147,   276,  1148,
+     277,   278,   279,   280,  1149,   281,   282,  1150,   293,  1151,
+    1152,  1153,  1154,   294,  1155,  1156,   295,  1163,   296,  1161,
+    1162,  1212,  1164,  1176,   703,  1165,  1127,  1166,  1126,  1246,
+    1129,   708,  1128,  1203,  1245,  1294,   695,  1219,   730,   974,
+     727,  1202,  1201,   830,  1298,  1321,  1334,  1242,     0,     0,
+       0,     0,     0,  1224,   683,     0,     0,     0,     0,   686,
+       0,     0,     0,     0,  1281,  1237,     0,     0,     0,   310,
+     311,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  1130,     0,     0,     0,     0,     0,  1181,     0,
+       0,     0,     0,  1187,     0,  1134,     0,     0,  1228,     0,
+    1170,     0,     0,     0,  1158,     0,  1189,     0,     0,     0,
+    1186,     0,  1135,     0,     0,     0,  1230,     0,     0,  1131,
+    1229,     0,  1136,  1132,     0,  1182,  1169,     0,     0,  1183,
+       0,     0,  1188,     0,     0,     0,     0,     0,     0,  1171,
+       0,     0,     0,     0,     0,  1190,     0,     0,     0,  1137,
+       0,     0,  1172,     0,     0,  1231,     0,     0,  1191,     0,
+       0,     0,  1173,  1138,     0,  1139,     0,     0,  1192,     0,
+       0,     0,     0,     0,     0,  1133,     0,     0,  1174,     0,
+       0,  1184,  1157,     0,  1193,     0,     0,     0,  1185,     0,
+       0,     0,     0,     0,  1140,     0,     0,  1141,     0,  1142,
+    1143,  1144,  1145,     0,  1146,  1147,     0,  1148,     0,     0,
+       0,     0,  1149,     0,     0,  1150,     0,  1151,  1152,  1153,
+    1154,     0,  1155,  1156,     0,  1163,     0,  1161,  1162,     0,
+    1164,     0,     0,  1165,     0,  1166,    91,    92,    93,    94,
+      95,    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,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,     0,     0,     0,     0,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,     0,     0,
+       0,     0,   127,   347,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   129,   130,     0,     0,     0,     0,
+       0,     0,     0,   132,   133,     0,   251,     0,   134,     0,
+       0,     0,     0,   135,   136,   137,     0,     0,   253,     0,
+       0,     0,   254,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   255,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   148,   149,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   155
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
       67,    68,    69,    70,    71,    64,    73,    74,    75,    76,
-      72,    74,   740,    69,  1042,    69,   680,  1042,  1042,    68,
-      69,    70,    71,   687,    73,    74,    18,    76,    73,    74,
-      74,     0,    69,     5,     7,     7,   222,     9,   641,    69,
-     149,   150,    69,    69,    12,    13,    69,    70,    71,   186,
-     187,   188,   189,   117,   118,     6,    96,     3,    68,    69,
-      70,    71,     8,    73,    74,     3,    76,     7,     3,    69,
-       8,     7,    69,     8,    71,     3,   116,   117,   118,    95,
-       8,     4,    69,    69,    71,    69,   117,   118,   225,     7,
-       3,     3,   132,     6,     3,    69,   136,   137,    69,     8,
-      71,     3,    69,   167,   168,   169,     8,   710,     7,   205,
-     206,   207,   208,   222,    69,   149,   150,    69,     3,    69,
-      69,    69,    69,     8,    69,    69,   222,    69,     3,   160,
-     161,   162,    69,     8,     7,    69,     3,    69,    69,    69,
-      69,     8,    69,    69,     7,    69,     7,     3,    70,    70,
-      69,    11,     8,    69,    14,    69,   117,   118,   222,   197,
-      17,    18,   200,   201,   202,   203,    26,   146,   147,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      15,    16,   222,     3,    19,     7,     6,    22,    23,    24,
-      25,   222,   184,   152,   153,   154,   155,   156,   157,     3,
-       3,     3,     6,   164,   165,     8,     8,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,     3,    20,    21,    95,    96,     8,   139,   140,
-     141,   142,  1270,   144,    97,  1270,  1270,   107,   108,   109,
-     222,   223,   224,   225,   114,     3,     3,   117,   118,     6,
-       8,   222,   122,     7,   117,   118,     7,   127,   128,   129,
-     130,   131,     3,     7,    32,    33,    34,     8,   138,     3,
-       3,     3,   117,   118,     8,     8,     8,     3,   148,    27,
-      28,   151,    32,    33,    34,    35,     3,    10,   158,   159,
-       3,     8,  1030,   163,     3,     8,   166,     3,     3,     8,
-     170,     3,     8,     8,     8,     4,     8,     4,     4,    97,
-      98,    99,   100,   101,   102,   103,     4,    67,    68,    69,
-     190,   191,   192,   193,   194,   195,     4,     3,    96,   117,
-     118,     4,     8,   196,   204,   198,   199,     3,     3,    58,
-      59,    60,     8,     8,     4,    95,    96,    97,     4,   117,
-     118,     4,   222,    30,    31,    32,    33,    34,    35,   222,
-      41,    42,    43,   131,     4,     4,     4,   117,   118,   438,
-     439,   139,   140,   141,   142,   143,   144,   222,   146,   110,
-     111,   112,   113,   133,   134,   135,   123,   124,   125,   126,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-       4,     4,     4,     4,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,     4,    92,    93,    94,     4,    96,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,   108,   109,     4,   222,     4,     4,   514,   115,     4,
-     117,   118,   119,   120,   121,   122,   523,     4,     4,     4,
-     127,   128,   129,     4,   222,   132,     4,     4,   535,   136,
-       4,   138,   539,     8,   523,     3,     8,     4,   145,   535,
-       4,   535,   222,   550,     3,     8,   535,     4,     4,     4,
-     539,     3,   222,   560,     8,     4,     4,     4,   535,   566,
-       4,   550,     4,   566,     4,   535,     4,     4,   535,   535,
-       4,   560,   535,   523,     4,   560,   539,   566,     4,   586,
-     225,   566,   566,   190,   191,   535,     4,   550,   225,   539,
-       4,     4,   225,   223,   225,   535,     4,   586,   535,     4,
-     550,     4,   223,   223,   223,     4,   223,   223,   535,   535,
-     560,   535,   225,   550,   224,   222,   566,     4,     4,   224,
-     224,   535,   223,   550,   535,   223,   223,     4,   535,   223,
-       4,     4,   225,   225,   225,   224,   586,   225,   225,   550,
-     535,   225,     4,   535,  1248,   535,   535,   535,   535,   223,
-     535,   535,    40,   535,     4,     4,     4,     4,   535,     4,
-       4,   535,   225,   535,   535,   535,   535,   225,   535,   535,
+      72,    74,   740,    69,  1041,    69,  1041,  1041,     3,    68,
+      69,    70,    71,     8,    73,    74,    18,    76,    73,    74,
+      74,     3,    69,   680,     6,     3,   117,   118,     6,    69,
+     687,     3,    69,    69,     6,     3,    69,    70,    71,     5,
+       8,     7,     3,     9,   641,   222,    96,     8,    68,    69,
+      70,    71,     3,    73,    74,     3,    76,     8,     3,    69,
+       8,     7,    69,     8,    71,     0,   116,   117,   118,   160,
+     161,   162,    69,    69,    71,    69,   117,   118,   205,   206,
+     207,   208,   132,    10,     3,    69,   136,   137,    69,     8,
+      71,     3,    69,    15,    16,   222,     8,    19,   149,   150,
+      22,    23,    24,    25,    69,     3,     7,    69,     6,    69,
+      69,    69,    69,   710,    69,    69,     3,    69,    41,    42,
+      43,     8,    69,   164,   165,    69,    97,    69,    69,    69,
+      69,   222,    69,    69,     7,    69,    12,    13,    70,    70,
+      69,   117,   118,    69,    40,    69,   117,   118,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,   149,   150,     7,    61,    62,    63,    64,    65,
+      66,   222,   222,    17,    18,     3,    32,    33,    34,    35,
+       8,   222,   184,     7,     3,   186,   187,   188,   189,     8,
+       7,   167,   168,   169,   197,   117,   118,   200,   201,   202,
+     203,    97,    97,    98,    99,   100,   101,   102,   103,    20,
+      21,    67,    68,    69,   152,   153,   154,   155,   156,   157,
+       7,     3,   117,   118,   225,   196,     8,   198,   199,    27,
+      28,     3,  1269,     3,  1269,  1269,     8,    95,     8,    95,
+      96,    97,     3,     7,     3,    11,   222,     8,    14,     8,
+       3,   222,    58,    59,    60,     8,   222,   223,   224,   225,
+      26,   117,   118,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,     7,     7,     7,   133,   134,   135,
+     140,   141,   142,   143,     3,   145,     7,     3,     3,     8,
+       3,  1029,     8,     8,     3,     8,     6,     3,     3,     8,
+     222,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,   222,   222,     4,    95,
+      96,     3,    32,    33,    34,     3,     8,     8,     4,     3,
+       8,   107,   108,   109,     8,     3,     8,     4,   114,     3,
+       8,   117,   118,     4,     8,    40,   122,     4,     4,     4,
+       4,   127,   128,   129,   130,   131,   222,     4,     4,   438,
+     439,     4,   138,   110,   111,   112,   113,   123,   124,   125,
+     126,     4,   148,     4,     4,   151,     4,     4,     4,     4,
+       4,     4,   158,   159,     4,     4,    96,   163,     4,     4,
+     166,     4,     4,     4,   170,     4,     4,     4,     4,     4,
+       4,     4,    97,     4,    99,   100,     4,   117,   118,   104,
+     105,   106,     4,     4,   190,   191,   192,   193,   194,   195,
+       4,   131,   117,   118,     4,     4,     3,   514,   204,   139,
+     140,   141,   142,   143,   144,   145,   523,     8,     4,     4,
+       3,     8,     4,     4,     4,     3,   222,     4,   535,     8,
+       4,     4,   539,     4,   523,     4,     4,     4,   222,   535,
+       4,   535,     4,   550,     4,     4,   535,   225,   225,     4,
+     539,   225,     4,   560,     4,   223,   225,     4,   535,   566,
+       4,   550,     4,   566,   223,   535,   223,   223,   535,   535,
+     223,   560,   535,   523,   224,   560,   539,   566,   225,   586,
+     224,   566,   566,   224,     4,   535,   223,   550,     4,   539,
+     223,   223,   222,     4,   223,   535,   223,   586,   535,   225,
+     550,   225,   225,     4,   225,   225,   224,   222,   535,   535,
+     560,   535,   225,   550,     4,     4,   566,     4,   223,     4,
+       4,   535,     4,   550,   535,     4,     4,     4,   535,   117,
+     118,     4,   225,     4,   225,   225,   586,     4,     4,   550,
+     535,     4,     4,   535,   223,   535,   535,   535,   535,     4,
+     535,   535,     4,   535,     4,     4,     4,   225,   535,     4,
+    1247,   535,     4,   535,   535,   535,   535,   225,   535,   535,
      225,   535,     4,     4,     4,     4,   535,   539,   539,   535,
-      40,   535,     4,   223,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,     4,     4,
-       4,    61,    62,    63,    64,    65,    66,     4,     4,    97,
-       4,    99,   100,     4,     4,     4,   104,   105,   106,     4,
-       4,     4,   225,   225,     4,   732,     7,   734,   225,   117,
-     118,   225,   731,   225,   223,   223,     4,    97,     4,     4,
-       4,   223,     4,     4,     4,   734,     4,   223,     4,     4,
-       4,     4,    30,    31,    32,    33,    34,    35,     4,     4,
-       4,     4,     4,     4,     4,   223,     4,   774,   775,     4,
-     777,     4,   225,     4,   781,   225,     4,     4,     4,   225,
-     225,     4,   225,     4,   734,   774,   775,   776,   777,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,   223,
-     223,   223,     4,    81,    82,    83,    84,    85,    86,    87,
-      88,    89,    90,    91,   117,   118,   225,     4,    96,    97,
-       4,   225,     4,     4,   774,   775,   776,   777,     4,   223,
-     108,   109,     4,     7,   222,     4,     7,     7,   222,   117,
-     118,   222,   120,   222,   122,     7,     7,     5,     5,   127,
-     128,   129,   222,   222,   132,   222,     5,     5,   136,   222,
-       5,     7,   222,   222,     5,     5,     5,   145,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,     5,     7,   222,     7,     7,     7,   190,   191,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,     7,   222,     5,     7,     5,   222,   222,   222,
-       5,   222,   190,   191,   222,   222,     7,     5,   185,   222,
-     222,   222,   222,   222,   222,     7,     7,   222,     7,   222,
-     222,     7,     7,     7,   222,   222,   222,     7,     7,     7,
-     222,     7,     4,   222,   222,   222,   222,   222,   222,   222,
-     222,   222,   222,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     3,   223,     6,     3,     6,     6,     3,
-       6,     3,     3,     6,     3,   222,     6,     3,     6,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     3,   225,     6,   222,     4,     6,
-       8,     4,     4,     4,     4,     4,   223,   225,   223,   223,
-     223,   223,   223,   223,     4,   223,   225,     4,     4,     4,
-       4,   225,   223,   223,   223,   223,  1033,   223,   223,  1036,
-     223,   223,  1039,     4,     4,  1042,  1039,  1033,     4,  1033,
-    1047,     4,   225,  1050,  1033,  1047,  1053,  1036,  1042,     6,
-    1039,  1036,   225,  1042,  1039,  1039,  1033,  1042,  1047,   223,
-    1067,  1050,  1047,  1033,  1071,  1042,  1033,  1033,     3,   225,
-    1033,   225,  1042,  1080,   225,  1042,  1042,  1047,  1067,  1042,
-    1087,  1047,  1071,  1033,  1047,  1092,  1036,  1050,  1077,  1039,
-       4,  1080,  1042,  1033,   222,  1080,  1033,  1047,     8,     8,
-    1050,     4,  1042,  1092,   222,  1042,  1033,  1033,   222,  1033,
-    1047,   222,   222,  1050,   222,  1042,  1042,  1067,  1042,  1033,
-    1047,  1071,  1033,  1050,   222,   222,  1033,  1077,  1042,  1092,
-    1080,  1042,     8,  1047,     3,  1042,  1047,     8,  1033,  1050,
-    1047,  1033,  1092,  1033,  1033,  1033,  1033,  1042,  1033,  1033,
-    1042,  1033,  1042,  1042,  1042,  1042,  1033,  1042,  1042,  1033,
-    1042,  1033,  1033,  1033,  1033,  1042,  1033,  1033,  1042,  1033,
-    1042,  1042,  1042,  1042,  1033,  1042,  1042,  1033,  1042,  1033,
-    1042,  1042,     4,  1042,     4,     4,  1042,   222,  1042,     4,
-       4,     7,     5,     4,     4,   222,     4,     4,     4,   723,
-     523,  1032,   732,   827,   514,   734,  1004,  1027,  1045,  1055,
-     710,   569,  1067,  1053,  1062,  1033,  1035,   222,   222,   535,
-    1044,  1038,  1270,   560,  1036,  1224,   223,   225,   222,   222,
-    1092,  1092,  1041,   222,   225,   223,  1052,  1039,   566,  1050,
-     223,   222,   222,  1094,   798,  1092,  1276,  1077,  1071,  1048,
-     777,   586,   590,   733,  1081,  1286,  1308,  1328,  1087,    -1,
-      -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,  1276,
-     539,    -1,    -1,    -1,  1276,    -1,  1270,    -1,    -1,  1286,
-      -1,  1270,    -1,    -1,    -1,  1270,    -1,  1276,    -1,    -1,
-      -1,  1276,    -1,  1270,    -1,    -1,    -1,  1286,   550,    -1,
-    1270,  1286,    -1,  1270,  1270,    -1,  1276,  1270,    -1,    -1,
-    1276,    -1,    -1,  1276,    -1,    -1,    -1,    -1,    -1,    -1,
-    1270,    -1,    -1,    -1,    -1,    -1,  1276,    -1,    -1,    -1,
-    1270,    -1,    -1,  1270,    -1,    -1,  1286,    -1,    -1,  1276,
-      -1,    -1,    -1,  1270,  1270,    -1,  1270,    -1,    -1,  1276,
-      -1,    -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,  1270,
-      -1,    -1,  1276,  1270,    -1,  1276,    -1,    -1,    -1,  1276,
-      -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,  1270,    -1,
-    1270,  1270,  1270,  1270,    -1,  1270,  1270,    -1,  1270,    -1,
-      -1,    -1,    -1,  1270,    -1,    -1,  1270,    -1,  1270,  1270,
-    1270,  1270,    -1,  1270,  1270,    -1,  1270,    -1,  1270,  1270,
-      -1,  1270,    -1,    -1,  1270,    -1,  1270
+       4,   535,   223,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,     4,     4,     4,     4,
+       4,   223,   190,   191,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   225,   225,     4,
+     223,     4,     4,     4,     4,   732,   222,   734,   223,     4,
+       4,     4,   731,     4,   222,     4,     4,     4,     4,   223,
+       4,     4,     4,     4,     4,   734,     4,     4,     4,   225,
+     225,   223,    30,    31,    32,    33,    34,    35,     4,   225,
+     225,     4,   225,     4,   225,   223,   223,   774,   775,   225,
+     777,     4,     4,     4,   781,     4,     4,   223,     4,   222,
+       7,   222,     7,     7,   734,   774,   775,   776,   777,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,     7,
+       7,     7,     5,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,   222,    92,    93,    94,   222,    96,   222,
+       5,     5,     5,   222,   774,   775,   776,   777,     5,     7,
+     108,   109,     5,     5,   222,     5,     5,   115,     5,   117,
+     118,   119,   120,   121,   122,     7,     7,     7,     7,   127,
+     128,   129,     7,   222,   132,     7,     5,   222,   136,     5,
+     138,   222,   222,   222,   222,   222,   222,     7,   146,   222,
+     185,   222,     5,     7,     6,   222,   222,     7,   222,   222,
+       7,   222,   222,   222,   222,   222,   222,   222,   222,   222,
+       7,     7,     7,     7,   222,   222,   222,   222,     7,   222,
+     222,     7,     7,   147,     4,     4,     4,     4,     4,     4,
+       4,     4,   190,   191,     4,     4,     4,     4,     3,     3,
+       6,     3,   222,     6,     3,     6,     6,     3,     6,     3,
+       3,     6,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   222,     4,     4,     4,     3,   225,
+       6,   223,     4,     6,     8,     4,     4,     4,     4,     4,
+     225,     4,     4,     4,   223,     4,     4,     4,   223,   223,
+     223,   223,   223,   223,     4,   223,   225,     4,   223,     4,
+       6,   223,     3,   223,   223,   223,   223,     4,   223,   225,
+       8,   225,     8,   223,     4,     8,     3,     8,     4,     4,
+     223,     4,     4,   225,   225,   225,   225,   222,   222,   222,
+     222,   222,   222,   222,     4,     7,     5,   222,   222,     4,
+     222,   222,   222,   222,     4,  1032,   223,   225,  1035,   222,
+     222,  1038,   222,     4,  1041,  1038,  1032,     4,  1032,  1046,
+       4,   223,  1049,  1032,  1046,  1052,  1035,  1041,   223,  1038,
+    1035,   225,  1041,  1038,  1038,  1032,  1041,  1046,   222,  1066,
+    1049,  1046,  1032,  1070,  1041,  1032,  1032,   732,   222,  1032,
+     734,  1041,  1079,  1003,  1041,  1041,  1046,  1066,  1041,  1086,
+    1046,  1070,  1032,  1046,  1091,  1035,  1049,  1076,  1038,   514,
+    1079,  1041,  1032,   710,  1079,  1032,  1046,   523,   723,  1049,
+     827,  1041,  1091,  1031,  1041,  1032,  1032,  1026,  1032,  1046,
+    1044,  1066,  1049,  1054,  1041,  1041,  1066,  1041,  1032,  1046,
+    1070,  1032,  1049,  1052,   569,  1032,  1076,  1041,  1091,  1079,
+    1041,  1034,  1046,  1032,  1041,  1046,  1269,  1032,  1049,  1046,
+    1032,  1091,  1032,  1032,  1032,  1032,  1041,  1032,  1032,  1041,
+    1032,  1041,  1041,  1041,  1041,  1032,  1041,  1041,  1032,  1041,
+    1032,  1032,  1032,  1032,  1041,  1032,  1032,  1041,  1032,  1041,
+    1041,  1041,  1041,  1032,  1041,  1041,  1032,  1041,  1032,  1041,
+    1041,  1061,  1041,  1043,   560,  1041,  1037,  1041,  1035,  1093,
+    1040,   566,  1038,  1051,  1091,  1275,   550,  1070,   590,   777,
+     586,  1049,  1047,   733,  1285,  1307,  1327,  1086,    -1,    -1,
+      -1,    -1,    -1,  1076,   535,    -1,    -1,    -1,    -1,   539,
+      -1,    -1,    -1,    -1,  1223,  1080,    -1,    -1,    -1,  1091,
+    1091,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  1269,    -1,    -1,    -1,    -1,    -1,  1275,    -1,
+      -1,    -1,    -1,  1275,    -1,  1269,    -1,    -1,  1285,    -1,
+    1269,    -1,    -1,    -1,  1269,    -1,  1275,    -1,    -1,    -1,
+    1275,    -1,  1269,    -1,    -1,    -1,  1285,    -1,    -1,  1269,
+    1285,    -1,  1269,  1269,    -1,  1275,  1269,    -1,    -1,  1275,
+      -1,    -1,  1275,    -1,    -1,    -1,    -1,    -1,    -1,  1269,
+      -1,    -1,    -1,    -1,    -1,  1275,    -1,    -1,    -1,  1269,
+      -1,    -1,  1269,    -1,    -1,  1285,    -1,    -1,  1275,    -1,
+      -1,    -1,  1269,  1269,    -1,  1269,    -1,    -1,  1275,    -1,
+      -1,    -1,    -1,    -1,    -1,  1269,    -1,    -1,  1269,    -1,
+      -1,  1275,  1269,    -1,  1275,    -1,    -1,    -1,  1275,    -1,
+      -1,    -1,    -1,    -1,  1269,    -1,    -1,  1269,    -1,  1269,
+    1269,  1269,  1269,    -1,  1269,  1269,    -1,  1269,    -1,    -1,
+      -1,    -1,  1269,    -1,    -1,  1269,    -1,  1269,  1269,  1269,
+    1269,    -1,  1269,  1269,    -1,  1269,    -1,  1269,  1269,    -1,
+    1269,    -1,    -1,  1269,    -1,  1269,    30,    31,    32,    33,
+      34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    -1,    -1,
+      -1,    -1,    96,    97,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   108,   109,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   117,   118,    -1,   120,    -1,   122,    -1,
+      -1,    -1,    -1,   127,   128,   129,    -1,    -1,   132,    -1,
+      -1,    -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   190,   191,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   222
   };
 
   const short
@@ -5851,16 +5889,16 @@ namespace isc { namespace dhcp {
      578,   579,   587,   597,   628,   637,   661,    15,    16,    19,
       22,    23,    24,    25,   256,   315,   316,   319,   321,   324,
      327,   328,   329,   330,   522,   524,    92,    93,    94,   115,
-     119,   120,   121,   132,   136,   145,   256,   266,   267,   268,
+     119,   120,   121,   132,   136,   146,   256,   266,   267,   268,
      269,   270,   271,   272,   273,   274,   275,   280,   283,   284,
      285,   286,   287,   288,   291,   293,   295,   296,   297,   300,
      301,   303,   305,   311,   433,   434,   435,   437,   439,   441,
      443,   445,   447,   449,   450,   451,   452,   455,   490,   509,
-     522,   524,   526,   537,   539,   541,   561,   116,   137,   256,
+     522,   524,   526,   537,   539,   541,   559,   116,   137,   256,
      445,   447,   490,   517,   518,   519,   521,   522,   524,   131,
-     139,   140,   141,   142,   143,   144,   146,   256,   490,   522,
-     524,   534,   535,   536,   537,   539,   541,   543,   547,   549,
-     551,   553,   555,   557,   559,   464,    40,    97,    99,   100,
+     139,   140,   141,   142,   143,   144,   145,   256,   490,   522,
+     524,   534,   535,   536,   537,   539,   541,   543,   545,   547,
+     549,   551,   553,   555,   557,   464,    40,    97,    99,   100,
      104,   105,   106,   256,   361,   474,   475,   476,   477,   478,
      479,   480,   482,   484,   486,   487,   489,   522,   524,    98,
      101,   102,   103,   256,   361,   478,   484,   498,   499,   500,
@@ -5879,8 +5917,8 @@ namespace isc { namespace dhcp {
      416,     4,   395,   580,   588,   598,   302,   304,     4,     4,
        4,   638,   662,     4,     3,     8,   320,   322,   325,     4,
        4,     4,     4,     3,     8,   438,   440,   442,   510,   436,
-     444,     4,   448,   446,   562,     3,     8,   520,     4,     3,
-       8,   560,   548,   550,   554,   552,   558,   556,   544,     8,
+     444,     4,   448,   446,   560,     3,     8,   520,     4,     3,
+       8,   558,   544,   546,   548,   552,   550,   556,   554,     8,
        3,     8,   481,   362,     4,   485,   483,   488,     4,     8,
        3,   503,     4,     4,     4,     8,     3,   412,   414,     3,
        8,     4,   617,   605,     4,   608,     4,     4,   612,   615,
@@ -5916,7 +5954,7 @@ namespace isc { namespace dhcp {
      365,   366,   367,   368,   369,   370,   371,   372,   375,   376,
      377,   379,   381,   383,   349,     7,   345,   346,   347,     7,
      427,   428,   429,     7,   468,   469,   470,     7,   492,   493,
-     494,     7,   458,   459,   460,   139,   140,   141,   142,   144,
+     494,     7,   458,   459,   460,   140,   141,   142,   143,   145,
      387,   388,   389,   390,   391,   392,   393,     7,   566,   567,
        7,   528,   529,   530,     7,   403,   404,   405,   152,   153,
      154,   155,   156,   157,   417,   418,   419,   420,   421,   422,
@@ -5925,41 +5963,41 @@ namespace isc { namespace dhcp {
      583,   585,   167,   168,   169,   222,   522,   524,   589,   590,
      591,   592,   594,   595,   601,     7,   639,   640,   205,   206,
      207,   208,   256,   663,   664,   665,   666,   667,   668,   253,
-       7,   511,   512,   513,   147,   543,   545,   563,   345,     8,
-       8,     8,   338,   340,     3,     8,   352,   355,   357,   359,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     373,     4,     4,   378,   380,   382,   384,     3,     8,     8,
-     348,     6,     3,   430,     6,     3,   471,     6,     3,   495,
-       6,     3,   461,     6,     3,     3,     6,   568,     3,     6,
-     531,     6,     3,   406,     6,     3,     4,     4,     4,     4,
-       4,     4,     3,     8,     4,     4,     4,     3,     8,   584,
-     586,     3,     8,     4,   593,     4,   596,     3,     8,     8,
-     641,     3,     6,     4,     4,     4,     4,     3,     8,   222,
-     254,   255,   514,     6,     3,   546,     8,     6,     4,     4,
-     336,     4,     4,     4,     4,   223,   225,   223,   225,   223,
-     223,   223,   223,   223,   223,     4,   225,   223,     4,     4,
-       4,     4,   350,   349,   347,   433,   429,   474,   470,   498,
-     494,   256,   266,   267,   268,   269,   270,   271,   272,   273,
-     274,   275,   280,   283,   284,   285,   286,   287,   288,   291,
-     293,   295,   296,   297,   300,   301,   303,   305,   311,   361,
-     425,   443,   445,   447,   449,   450,   451,   452,   462,   463,
-     490,   522,   524,   537,   539,   541,   561,   460,   388,   133,
-     134,   135,   256,   266,   267,   268,   311,   361,   464,   490,
-     522,   524,   537,   539,   541,   569,   570,   571,   572,   573,
-     575,   577,   567,   534,   530,   409,   405,   223,   223,   223,
-     223,   223,   223,   418,   225,   223,   223,   397,     4,     4,
-     582,   225,     4,   223,     4,   590,   196,   198,   199,   256,
-     361,   522,   524,   642,   643,   644,   645,   647,   640,   225,
-     225,   225,   225,   664,     6,     3,   517,   513,     4,   222,
-     222,    41,    42,    43,   353,   222,   222,   222,    58,    59,
-      60,   374,   222,   222,   222,   222,     8,     8,     8,     8,
-       3,     8,   574,   576,     4,     8,     3,     8,     8,   222,
-     222,   222,   241,   648,     4,   646,     3,     8,   222,     8,
-     252,   463,     4,     4,   225,   571,     4,   223,     4,   643,
-     222,   222,     5,   222,     7,   649,   650,   651,     3,     6,
-     197,   200,   201,   202,   203,   652,   653,   654,   656,   657,
-     658,   659,   650,   655,     4,     4,     4,   660,     3,     8,
-       4,   225,   223,   223,     4,   653,   222,   222
+       7,   511,   512,   513,   147,   561,   562,   345,     8,     8,
+       8,   338,   340,     3,     8,   352,   355,   357,   359,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   373,
+       4,     4,   378,   380,   382,   384,     3,     8,     8,   348,
+       6,     3,   430,     6,     3,   471,     6,     3,   495,     6,
+       3,   461,     6,     3,     3,     6,   568,     3,     6,   531,
+       6,     3,   406,     6,     3,     4,     4,     4,     4,     4,
+       4,     3,     8,     4,     4,     4,     3,     8,   584,   586,
+       3,     8,     4,   593,     4,   596,     3,     8,     8,   641,
+       3,     6,     4,     4,     4,     4,     3,     8,   222,   254,
+     255,   514,     6,     3,   563,     8,     6,     4,     4,   336,
+       4,     4,     4,     4,   223,   225,   223,   225,   223,   223,
+     223,   223,   223,   223,     4,   225,   223,     4,     4,     4,
+       4,   350,   349,   347,   433,   429,   474,   470,   498,   494,
+     256,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   280,   283,   284,   285,   286,   287,   288,   291,   293,
+     295,   296,   297,   300,   301,   303,   305,   311,   361,   425,
+     443,   445,   447,   449,   450,   451,   452,   462,   463,   490,
+     522,   524,   537,   539,   541,   559,   460,   388,   133,   134,
+     135,   256,   266,   267,   268,   311,   361,   464,   490,   522,
+     524,   537,   539,   541,   569,   570,   571,   572,   573,   575,
+     577,   567,   534,   530,   409,   405,   223,   223,   223,   223,
+     223,   223,   418,   225,   223,   223,   397,     4,     4,   582,
+     225,     4,   223,     4,   590,   196,   198,   199,   256,   361,
+     522,   524,   642,   643,   644,   645,   647,   640,   225,   225,
+     225,   225,   664,     6,     3,   517,   513,     4,   222,   222,
+      41,    42,    43,   353,   222,   222,   222,    58,    59,    60,
+     374,   222,   222,   222,   222,     8,     8,     8,     8,     3,
+       8,   574,   576,     4,     8,     3,     8,     8,   222,   222,
+     222,   241,   648,     4,   646,     3,     8,   222,     8,   252,
+     463,     4,     4,   225,   571,     4,   223,     4,   643,   222,
+     222,     5,   222,     7,   649,   650,   651,     3,     6,   197,
+     200,   201,   202,   203,   652,   653,   654,   656,   657,   658,
+     659,   650,   655,     4,     4,     4,   660,     3,     8,     4,
+     225,   223,   223,     4,   653,   222,   222
   };
 
   const short
@@ -6033,25 +6071,25 @@ namespace isc { namespace dhcp {
      536,   536,   536,   536,   536,   536,   536,   538,   537,   540,
      539,   542,   541,   544,   543,   546,   545,   548,   547,   550,
      549,   552,   551,   554,   553,   556,   555,   558,   557,   560,
-     559,   562,   561,   563,   563,   565,   564,   566,   566,   566,
-     568,   567,   569,   569,   570,   570,   570,   571,   571,   571,
+     559,   561,   563,   562,   565,   564,   566,   566,   566,   568,
+     567,   569,   569,   570,   570,   570,   571,   571,   571,   571,
      571,   571,   571,   571,   571,   571,   571,   571,   571,   571,
-     571,   571,   571,   572,   574,   573,   576,   575,   577,   578,
-     580,   579,   581,   581,   581,   582,   582,   582,   582,   582,
-     584,   583,   586,   585,   588,   587,   589,   589,   589,   590,
-     590,   590,   590,   590,   590,   591,   593,   592,   594,   596,
-     595,   598,   597,   600,   599,   601,   601,   601,   602,   602,
+     571,   571,   572,   574,   573,   576,   575,   577,   578,   580,
+     579,   581,   581,   581,   582,   582,   582,   582,   582,   584,
+     583,   586,   585,   588,   587,   589,   589,   589,   590,   590,
+     590,   590,   590,   590,   591,   593,   592,   594,   596,   595,
+     598,   597,   600,   599,   601,   601,   601,   602,   602,   602,
      602,   602,   602,   602,   602,   602,   602,   602,   602,   602,
-     602,   602,   602,   602,   602,   602,   603,   605,   604,   606,
-     608,   607,   609,   610,   612,   611,   613,   613,   615,   614,
-     617,   616,   618,   619,   621,   620,   623,   622,   625,   624,
-     627,   626,   629,   628,   631,   630,   632,   632,   632,   633,
-     633,   635,   634,   636,   638,   637,   639,   639,   639,   641,
-     640,   642,   642,   642,   643,   643,   643,   643,   643,   643,
-     643,   644,   646,   645,   648,   647,   649,   649,   649,   651,
-     650,   652,   652,   652,   653,   653,   653,   653,   653,   655,
-     654,   656,   657,   658,   660,   659,   662,   661,   663,   663,
-     663,   664,   664,   664,   664,   664,   665,   666,   667,   668
+     602,   602,   602,   602,   602,   603,   605,   604,   606,   608,
+     607,   609,   610,   612,   611,   613,   613,   615,   614,   617,
+     616,   618,   619,   621,   620,   623,   622,   625,   624,   627,
+     626,   629,   628,   631,   630,   632,   632,   632,   633,   633,
+     635,   634,   636,   638,   637,   639,   639,   639,   641,   640,
+     642,   642,   642,   643,   643,   643,   643,   643,   643,   643,
+     644,   646,   645,   648,   647,   649,   649,   649,   651,   650,
+     652,   652,   652,   653,   653,   653,   653,   653,   655,   654,
+     656,   657,   658,   660,   659,   662,   661,   663,   663,   663,
+     664,   664,   664,   664,   664,   665,   666,   667,   668
   };
 
   const signed char
@@ -6125,25 +6163,25 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     1,     0,     4,     0,
        4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
        4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
-       4,     0,     6,     1,     1,     0,     6,     1,     3,     2,
-       0,     4,     0,     1,     1,     3,     2,     1,     1,     1,
+       6,     1,     0,     4,     0,     6,     1,     3,     2,     0,
+       4,     0,     1,     1,     3,     2,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     3,     3,     0,
+       6,     1,     3,     2,     1,     1,     1,     1,     1,     0,
+       4,     0,     4,     0,     6,     1,     3,     2,     1,     1,
+       1,     1,     1,     1,     3,     0,     4,     3,     0,     4,
+       0,     6,     0,     4,     1,     3,     2,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     0,     4,     3,     3,
-       0,     6,     1,     3,     2,     1,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     6,     1,     3,     2,     1,
        1,     1,     1,     1,     1,     3,     0,     4,     3,     0,
+       4,     3,     3,     0,     4,     1,     1,     0,     4,     0,
+       4,     3,     3,     0,     4,     0,     4,     0,     4,     0,
        4,     0,     6,     0,     4,     1,     3,     2,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     3,     0,     4,     3,
-       0,     4,     3,     3,     0,     4,     1,     1,     0,     4,
-       0,     4,     3,     3,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     6,     0,     4,     1,     3,     2,     1,
-       1,     0,     6,     3,     0,     6,     1,     3,     2,     0,
-       4,     1,     3,     2,     1,     1,     1,     1,     1,     1,
-       1,     3,     0,     4,     0,     6,     1,     3,     2,     0,
-       4,     1,     3,     2,     1,     1,     1,     1,     1,     0,
-       4,     3,     3,     3,     0,     4,     0,     6,     1,     3,
-       2,     1,     1,     1,     1,     1,     3,     3,     3,     3
+       0,     6,     3,     0,     6,     1,     3,     2,     0,     4,
+       1,     3,     2,     1,     1,     1,     1,     1,     1,     1,
+       3,     0,     4,     0,     6,     1,     3,     2,     0,     4,
+       1,     3,     2,     1,     1,     1,     1,     1,     0,     4,
+       3,     3,     3,     0,     4,     0,     6,     1,     3,     2,
+       1,     1,     1,     1,     1,     3,     3,     3,     3
   };
 
 
@@ -6198,10 +6236,10 @@ namespace isc { namespace dhcp {
   "\"host-reservation-identifiers\"", "\"client-classes\"",
   "\"require-client-classes\"", "\"test\"", "\"template-test\"",
   "\"only-if-required\"", "\"client-class\"", "\"pool-id\"",
-  "\"reservations\"", "\"duid\"", "\"hw-address\"", "\"circuit-id\"",
-  "\"client-id\"", "\"hostname\"", "\"flex-id\"", "\"relay\"",
-  "\"ip-address\"", "\"ip-addresses\"", "\"hooks-libraries\"",
-  "\"library\"", "\"parameters\"", "\"expired-leases-processing\"",
+  "\"reservations\"", "\"ip-address\"", "\"duid\"", "\"hw-address\"",
+  "\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"flex-id\"",
+  "\"relay\"", "\"ip-addresses\"", "\"hooks-libraries\"", "\"library\"",
+  "\"parameters\"", "\"expired-leases-processing\"",
   "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"",
   "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"",
   "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"",
@@ -6308,14 +6346,14 @@ namespace isc { namespace dhcp {
   "not_empty_reservations_list", "reservation", "$@90", "sub_reservation",
   "$@91", "reservation_params", "not_empty_reservation_params",
   "reservation_param", "next_server", "$@92", "server_hostname", "$@93",
-  "boot_file_name", "$@94", "ip_address", "$@95", "ip_addresses", "$@96",
-  "duid", "$@97", "hw_address", "$@98", "client_id_value", "$@99",
-  "circuit_id_value", "$@100", "flex_id_value", "$@101", "hostname",
-  "$@102", "reservation_client_classes", "$@103", "relay", "$@104",
-  "relay_map", "client_classes", "$@105", "client_classes_list",
-  "client_class_entry", "$@106", "client_class_params",
-  "not_empty_client_class_params", "client_class_param",
-  "client_class_name", "client_class_test", "$@107",
+  "boot_file_name", "$@94", "ip_address", "$@95", "duid", "$@96",
+  "hw_address", "$@97", "client_id_value", "$@98", "circuit_id_value",
+  "$@99", "flex_id_value", "$@100", "hostname", "$@101",
+  "reservation_client_classes", "$@102", "relay", "$@103", "relay_map",
+  "ip_addresses", "$@104", "client_classes", "$@105",
+  "client_classes_list", "client_class_entry", "$@106",
+  "client_class_params", "not_empty_client_class_params",
+  "client_class_param", "client_class_name", "client_class_test", "$@107",
   "client_class_template_test", "$@108", "only_if_required",
   "dhcp4o6_port", "control_socket", "$@109", "control_socket_params",
   "control_socket_param", "control_socket_type", "$@110",
@@ -6415,27 +6453,27 @@ namespace isc { namespace dhcp {
     2246,  2247,  2248,  2253,  2253,  2262,  2262,  2271,  2272,  2275,
     2276,  2277,  2283,  2284,  2285,  2286,  2287,  2288,  2289,  2290,
     2291,  2292,  2293,  2294,  2295,  2296,  2297,  2300,  2300,  2309,
-    2309,  2318,  2318,  2327,  2327,  2336,  2336,  2347,  2347,  2356,
-    2356,  2365,  2365,  2374,  2374,  2383,  2383,  2392,  2392,  2401,
-    2401,  2415,  2415,  2426,  2427,  2433,  2433,  2444,  2445,  2446,
-    2451,  2451,  2461,  2462,  2465,  2466,  2467,  2472,  2473,  2474,
+    2309,  2318,  2318,  2327,  2327,  2336,  2336,  2345,  2345,  2354,
+    2354,  2363,  2363,  2372,  2372,  2381,  2381,  2390,  2390,  2404,
+    2404,  2415,  2418,  2418,  2432,  2432,  2443,  2444,  2445,  2450,
+    2450,  2460,  2461,  2464,  2465,  2466,  2471,  2472,  2473,  2474,
     2475,  2476,  2477,  2478,  2479,  2480,  2481,  2482,  2483,  2484,
-    2485,  2486,  2487,  2490,  2492,  2492,  2501,  2501,  2510,  2518,
-    2526,  2526,  2537,  2538,  2539,  2544,  2545,  2546,  2547,  2548,
-    2551,  2551,  2560,  2560,  2572,  2572,  2585,  2586,  2587,  2592,
-    2593,  2594,  2595,  2596,  2597,  2600,  2606,  2606,  2615,  2621,
-    2621,  2631,  2631,  2644,  2644,  2654,  2655,  2656,  2661,  2662,
+    2485,  2486,  2489,  2491,  2491,  2500,  2500,  2509,  2517,  2525,
+    2525,  2536,  2537,  2538,  2543,  2544,  2545,  2546,  2547,  2550,
+    2550,  2559,  2559,  2571,  2571,  2584,  2585,  2586,  2591,  2592,
+    2593,  2594,  2595,  2596,  2599,  2605,  2605,  2614,  2620,  2620,
+    2630,  2630,  2643,  2643,  2653,  2654,  2655,  2660,  2661,  2662,
     2663,  2664,  2665,  2666,  2667,  2668,  2669,  2670,  2671,  2672,
-    2673,  2674,  2675,  2676,  2677,  2678,  2681,  2687,  2687,  2696,
-    2702,  2702,  2711,  2717,  2723,  2723,  2732,  2733,  2736,  2736,
-    2746,  2746,  2756,  2763,  2770,  2770,  2779,  2779,  2789,  2789,
-    2799,  2799,  2811,  2811,  2823,  2823,  2833,  2834,  2835,  2841,
-    2842,  2845,  2845,  2856,  2864,  2864,  2877,  2878,  2879,  2885,
-    2885,  2893,  2894,  2895,  2900,  2901,  2902,  2903,  2904,  2905,
-    2906,  2909,  2915,  2915,  2924,  2924,  2935,  2936,  2937,  2942,
-    2942,  2950,  2951,  2952,  2957,  2958,  2959,  2960,  2961,  2964,
-    2964,  2973,  2979,  2985,  2991,  2991,  3000,  3000,  3011,  3012,
-    3013,  3018,  3019,  3020,  3021,  3022,  3025,  3031,  3037,  3043
+    2673,  2674,  2675,  2676,  2677,  2680,  2686,  2686,  2695,  2701,
+    2701,  2710,  2716,  2722,  2722,  2731,  2732,  2735,  2735,  2745,
+    2745,  2755,  2762,  2769,  2769,  2778,  2778,  2788,  2788,  2798,
+    2798,  2810,  2810,  2822,  2822,  2832,  2833,  2834,  2840,  2841,
+    2844,  2844,  2855,  2863,  2863,  2876,  2877,  2878,  2884,  2884,
+    2892,  2893,  2894,  2899,  2900,  2901,  2902,  2903,  2904,  2905,
+    2908,  2914,  2914,  2923,  2923,  2934,  2935,  2936,  2941,  2941,
+    2949,  2950,  2951,  2956,  2957,  2958,  2959,  2960,  2963,  2963,
+    2972,  2978,  2984,  2990,  2990,  2999,  2999,  3010,  3011,  3012,
+    3017,  3018,  3019,  3020,  3021,  3024,  3030,  3036,  3042
   };
 
   void
@@ -6468,9 +6506,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 6472 "dhcp4_parser.cc"
+#line 6510 "dhcp4_parser.cc"
 
-#line 3049 "dhcp4_parser.yy"
+#line 3048 "dhcp4_parser.yy"
 
 
 void
index d241d130b535637deb8f5f5113481682df81c406..9ad9fbfd10b8308b9d379d382889ae32254b4d82 100644 (file)
@@ -636,14 +636,14 @@ namespace isc { namespace dhcp {
     TOKEN_CLIENT_CLASS = 391,      // "client-class"
     TOKEN_POOL_ID = 392,           // "pool-id"
     TOKEN_RESERVATIONS = 393,      // "reservations"
-    TOKEN_DUID = 394,              // "duid"
-    TOKEN_HW_ADDRESS = 395,        // "hw-address"
-    TOKEN_CIRCUIT_ID = 396,        // "circuit-id"
-    TOKEN_CLIENT_ID = 397,         // "client-id"
-    TOKEN_HOSTNAME = 398,          // "hostname"
-    TOKEN_FLEX_ID = 399,           // "flex-id"
-    TOKEN_RELAY = 400,             // "relay"
-    TOKEN_IP_ADDRESS = 401,        // "ip-address"
+    TOKEN_IP_ADDRESS = 394,        // "ip-address"
+    TOKEN_DUID = 395,              // "duid"
+    TOKEN_HW_ADDRESS = 396,        // "hw-address"
+    TOKEN_CIRCUIT_ID = 397,        // "circuit-id"
+    TOKEN_CLIENT_ID = 398,         // "client-id"
+    TOKEN_HOSTNAME = 399,          // "hostname"
+    TOKEN_FLEX_ID = 400,           // "flex-id"
+    TOKEN_RELAY = 401,             // "relay"
     TOKEN_IP_ADDRESSES = 402,      // "ip-addresses"
     TOKEN_HOOKS_LIBRARIES = 403,   // "hooks-libraries"
     TOKEN_LIBRARY = 404,           // "library"
@@ -880,14 +880,14 @@ namespace isc { namespace dhcp {
         S_CLIENT_CLASS = 136,                    // "client-class"
         S_POOL_ID = 137,                         // "pool-id"
         S_RESERVATIONS = 138,                    // "reservations"
-        S_DUID = 139,                            // "duid"
-        S_HW_ADDRESS = 140,                      // "hw-address"
-        S_CIRCUIT_ID = 141,                      // "circuit-id"
-        S_CLIENT_ID = 142,                       // "client-id"
-        S_HOSTNAME = 143,                        // "hostname"
-        S_FLEX_ID = 144,                         // "flex-id"
-        S_RELAY = 145,                           // "relay"
-        S_IP_ADDRESS = 146,                      // "ip-address"
+        S_IP_ADDRESS = 139,                      // "ip-address"
+        S_DUID = 140,                            // "duid"
+        S_HW_ADDRESS = 141,                      // "hw-address"
+        S_CIRCUIT_ID = 142,                      // "circuit-id"
+        S_CLIENT_ID = 143,                       // "client-id"
+        S_HOSTNAME = 144,                        // "hostname"
+        S_FLEX_ID = 145,                         // "flex-id"
+        S_RELAY = 146,                           // "relay"
         S_IP_ADDRESSES = 147,                    // "ip-addresses"
         S_HOOKS_LIBRARIES = 148,                 // "hooks-libraries"
         S_LIBRARY = 149,                         // "library"
@@ -1286,25 +1286,25 @@ namespace isc { namespace dhcp {
         S_542_94 = 542,                          // $@94
         S_ip_address = 543,                      // ip_address
         S_544_95 = 544,                          // $@95
-        S_ip_addresses = 545,                    // ip_addresses
+        S_duid = 545,                            // duid
         S_546_96 = 546,                          // $@96
-        S_duid = 547,                            // duid
+        S_hw_address = 547,                      // hw_address
         S_548_97 = 548,                          // $@97
-        S_hw_address = 549,                      // hw_address
+        S_client_id_value = 549,                 // client_id_value
         S_550_98 = 550,                          // $@98
-        S_client_id_value = 551,                 // client_id_value
+        S_circuit_id_value = 551,                // circuit_id_value
         S_552_99 = 552,                          // $@99
-        S_circuit_id_value = 553,                // circuit_id_value
+        S_flex_id_value = 553,                   // flex_id_value
         S_554_100 = 554,                         // $@100
-        S_flex_id_value = 555,                   // flex_id_value
+        S_hostname = 555,                        // hostname
         S_556_101 = 556,                         // $@101
-        S_hostname = 557,                        // hostname
+        S_reservation_client_classes = 557,      // reservation_client_classes
         S_558_102 = 558,                         // $@102
-        S_reservation_client_classes = 559,      // reservation_client_classes
+        S_relay = 559,                           // relay
         S_560_103 = 560,                         // $@103
-        S_relay = 561,                           // relay
-        S_562_104 = 562,                         // $@104
-        S_relay_map = 563,                       // relay_map
+        S_relay_map = 561,                       // relay_map
+        S_ip_addresses = 562,                    // ip_addresses
+        S_563_104 = 563,                         // $@104
         S_client_classes = 564,                  // client_classes
         S_565_105 = 565,                         // $@105
         S_client_classes_list = 566,             // client_classes_list
@@ -3903,6 +3903,21 @@ switch (yykind)
         return symbol_type (token::TOKEN_RESERVATIONS, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_IP_ADDRESS (location_type l)
+      {
+        return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_IP_ADDRESS (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_IP_ADDRESS, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4008,21 +4023,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_RELAY, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_IP_ADDRESS (location_type l)
-      {
-        return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_IP_ADDRESS (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_IP_ADDRESS, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5538,7 +5538,7 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1356,     ///< Last index in yytable_.
+      yylast_ = 1548,     ///< Last index in yytable_.
       yynnts_ = 443,  ///< Number of nonterminal symbols.
       yyfinal_ = 28 ///< Termination state number.
     };
index 860fbfa0c95e26e740fcafb242129de8a5dc2414..060adc405774d20bb5ae727aab49857e016f9f28 100644 (file)
@@ -1,3 +1,4 @@
+// Generated 202405121319
 // A Bison parser, made by GNU Bison 3.8.2.
 
 // Locations for Bison parsers in C++
index 7e427df457e6f51467a9c84deb2ae5fe60e56cae..74f7212419d4377320137795b34b1b9ec73e989d 100644 (file)
@@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
        (yy_c_buf_p) = yy_cp;
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
-#define YY_NUM_RULES 238
-#define YY_END_OF_BUFFER 239
+#define YY_NUM_RULES 237
+#define YY_END_OF_BUFFER 238
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[2319] =
+static const flex_int16_t yy_accept[2318] =
     {   0,
-      231,  231,    0,    0,    0,    0,    0,    0,    0,    0,
-      239,  237,   10,   11,  237,    1,  231,  228,  231,  231,
-      237,  230,  229,  237,  237,  237,  237,  237,  224,  225,
-      237,  237,  237,  226,  227,    5,    5,    5,  237,  237,
-      237,   10,   11,    0,    0,  219,    0,    0,    0,    0,
+      230,  230,    0,    0,    0,    0,    0,    0,    0,    0,
+      238,  236,   10,   11,  236,    1,  230,  227,  230,  230,
+      236,  229,  228,  236,  236,  236,  236,  236,  223,  224,
+      236,  236,  236,  225,  226,    5,    5,    5,  236,  236,
+      236,   10,   11,    0,    0,  218,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
-      231,  231,    0,  230,  231,    3,    2,    6,    0,  231,
+      230,  230,    0,  229,  230,    3,    2,    6,    0,  230,
         0,    0,    0,    0,    0,    0,    4,    0,    0,    9,
 
-        0,  220,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  222,    0,    0,
+        0,  219,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  221,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -724,8 +724,8 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         2,    0,    0,    0,    0,    0,    0,    0,    8,    0,
 
-        0,    0,  188,    0,    0,  189,    0,    0,    0,    0,
-        0,    0,    0,    0,  221,  223,    0,    0,    0,    0,
+        0,    0,  187,    0,    0,  188,    0,    0,    0,    0,
+        0,    0,    0,    0,  220,  222,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -737,8 +737,8 @@ static const flex_int16_t yy_accept[2319] =
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  236,  234,    0,  233,
-      232,    0,    0,    0,    0,    0,    0,  187,    0,    0,
+        0,    0,    0,    0,    0,    0,  235,  233,    0,  232,
+      231,    0,    0,    0,    0,    0,    0,  186,    0,    0,
        28,    0,   27,    0,    0,  140,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -752,7 +752,7 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  235,  232,    0,    0,    0,    0,
+        0,    0,    0,    0,  234,  231,    0,    0,    0,    0,
         0,   29,    0,    0,   31,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,  144,    0,    0,    0,
         0,    0,    0,  116,    0,    0,    0,    0,    0,    0,
@@ -768,13 +768,13 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,  166,    0,  192,    0,   55,    0,   59,    0,    0,
+        0,  166,    0,  191,    0,   55,    0,   59,    0,    0,
         0,    0,    0,    0,   37,   34,   33,    0,    0,    0,
         0,    0,  180,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,  157,
-        0,    0,    0,    0,    0,    0,    0,    0,  191,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  190,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,   57,    0,    0,   32,    0,    0,    0,    0,
@@ -807,7 +807,7 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,  175,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  185,  153,    0,    0,    0,
+        0,    0,    0,    0,    0,  184,  153,    0,    0,    0,
         0,    0,    0,    0,  158,   56,    0,    0,    0,    0,
         0,    0,   70,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,  160,    0,    0,   63,  127,    0,    0,
@@ -817,7 +817,7 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,  110,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  212,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  211,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,  136,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -835,7 +835,7 @@ static const flex_int16_t yy_accept[2319] =
         0,   78,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  213,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  212,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,  131,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -843,7 +843,7 @@ static const flex_int16_t yy_accept[2319] =
         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,    0,   16,    0,
-        0,  186,   14,    0,    0,    0,    0,    0,    0,    0,
+        0,  185,   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,
@@ -851,112 +851,112 @@ static const flex_int16_t yy_accept[2319] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
       161,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  173,  190,    0,   40,    0,  182,    0,    0,    0,
+        0,  173,  189,    0,   40,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   20,    0,  118,    0,    0,  113,    0,
-        0,    0,    0,    0,    0,  184,    0,    0,   58,    0,
+        0,    0,   20,    0,  118,    0,    0,  113,    0,    0,
+        0,    0,    0,    0,  183,    0,    0,   58,    0,  122,
 
-      122,    0,  211,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
-        0,    0,    0,    0,    0,    0,    0,  149,  150,    0,
+        0,  210,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   90,    0,
+        0,    0,    0,    0,    0,    0,  149,  150,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  117,    0,    0,    0,   80,    0,    0,    0,
+        0,  117,    0,    0,    0,   80,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  179,    0,    0,    0,    0,    0,    0,    0,
+        0,  179,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  145,    0,    0,    0,    0,    0,    0,    0,
+        0,  145,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,  114,  138,    0,    0,    0,    0,
+        0,    0,    0,  114,  138,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   87,    0,    0,    0,    0,    0,    0,   17,
-        0,   15,    0,    0,  208,  207,    0,    0,    0,    0,
+        0,   87,    0,    0,    0,    0,    0,    0,   17,    0,
+       15,    0,    0,  207,  206,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   30,    0,    0,    0,  165,    0,    0,    0,    0,
+       30,    0,    0,    0,  165,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  201,    0,    0,  210,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  132,    0,  170,    0,   46,    0,    0,   64,
-
+        0,    0,    0,    0,    0,  200,    0,    0,  209,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       19,    0,    0,    0,    0,    0,    0,    0,   93,    0,
-        0,  134,   66,   88,    0,    0,  178,    0,    0,    0,
-        0,  169,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   77,    0,  128,    0,    0,
-        0,    0,    0,    0,    0,  152,    0,    0,    0,  217,
+        0,  132,    0,  170,    0,   46,    0,    0,   64,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   19,
+        0,    0,    0,    0,    0,    0,    0,   93,    0,    0,
+      134,   66,   88,    0,    0,  178,    0,    0,    0,    0,
+      169,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   77,    0,  128,    0,    0,    0,
+        0,    0,    0,    0,  152,    0,    0,    0,  216,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  125,    0,    0,    0,
-        0,  193,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  125,    0,    0,    0,    0,
+      192,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   45,    0,    0,    0,
-        0,    0,    0,    0,    0,  167,    0,    0,    0,   67,
-        0,    0,    0,    0,    0,    0,    0,  163,   51,    0,
-        0,    0,  206,   38,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   12,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   49,
-        0,    0,    0,   48,    0,    0,   18,    0,    0,    0,
-       76,    0,    0,    0,    0,    0,  155,  154,    0,    0,
+        0,    0,    0,    0,    0,   45,    0,    0,    0,    0,
+        0,    0,    0,    0,  167,    0,    0,    0,   67,    0,
+        0,    0,    0,    0,    0,    0,  163,   51,    0,    0,
+        0,  205,   38,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   12,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   49,    0,
+        0,    0,   48,    0,    0,   18,    0,    0,    0,   76,
+        0,    0,    0,    0,    0,  155,  154,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   84,    0,    0,    0,    0,
-        0,  151,    0,    0,    0,   65,    0,    0,    0,    0,
+        0,    0,    0,    0,   84,    0,    0,    0,    0,    0,
+      151,    0,    0,    0,   65,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  123,
+        0,    0,    0,    0,    0,    0,  182,    0,    0,    0,
+       50,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  201,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      123,    0,    0,    0,    0,    0,    0,  183,    0,    0,
-        0,   50,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  202,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  112,    0,   71,    0,    0,    0,    0,
+
+        0,  105,    0,    0,   36,    0,   52,    0,    0,    0,
+        0,    0,    0,    0,    0,  109,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   24,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  198,    0,    0,    0,
+        0,  168,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  135,    0,    0,    0,    0,   74,    0,
+       72,    0,    0,    0,    0,   68,  203,    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,  112,    0,   71,    0,    0,    0,
-
-        0,    0,  105,    0,    0,   36,    0,   52,    0,    0,
-        0,    0,    0,    0,    0,    0,  109,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   24,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  199,    0,    0,
-        0,    0,  168,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  135,    0,    0,    0,    0,   74,
-        0,   72,    0,    0,    0,    0,   68,  204,    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,   25,   39,    0,    0,    0,    0,
+        0,    0,    0,   25,   39,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,  205,    0,    0,   13,
+        0,    0,    0,    0,    0,  204,    0,    0,   13,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  208,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  197,    0,   86,    0,   85,    0,   21,    0,   81,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  209,
+        0,    0,    0,    0,    0,    0,    0,  106,    0,  148,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  198,    0,   86,    0,   85,    0,   21,    0,
-       81,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
-      148,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  124,    0,    0,    0,  197,    0,    0,
-
-        0,    0,    0,   75,    0,    0,   91,    0,   69,    0,
-       23,    0,  141,    0,    0,    0,    0,    0,    0,    0,
-        0,  111,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  102,    0,    0,    0,    0,    0,   47,    0,
+        0,    0,  124,    0,    0,    0,  196,    0,    0,    0,
+
+        0,    0,   75,    0,    0,   91,    0,   69,    0,   23,
+        0,  141,    0,    0,    0,    0,    0,    0,    0,    0,
+      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  102,    0,    0,    0,    0,    0,   47,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   73,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  100,    0,    0,    0,    0,    0,    0,
+        0,    0,   73,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  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,
-        0,    0,    0,  108,   53,    0,    0,    0,  101,    0,
-
-        0,    0,    0,  203,    0,    0,    0,    0,  215,  218,
-       83,   82,   22,    0,  146,  164,  142,    0,    0,    0,
-        0,    0,    0,    0,  107,    0,    0,   97,    0,    0,
-        0,    0,    0,    0,    0,    0,  195,    0,    0,    0,
-        0,    0,    0,  200,    0,    0,   99,    0,   89,    0,
-        0,    0,    0,    0,    0,  143,    0,    0,    0,    0,
-        0,    0,    0,    0,  194,    0,    0,   26,  216,    0,
+        0,    0,  108,   53,    0,    0,    0,  101,    0,    0,
+
+        0,    0,  202,    0,    0,    0,    0,  214,  217,   83,
+       82,   22,    0,  146,  164,  142,    0,    0,    0,    0,
+        0,    0,    0,  107,    0,    0,   97,    0,    0,    0,
+        0,    0,    0,    0,    0,  194,    0,    0,    0,    0,
+        0,    0,  199,    0,    0,   99,    0,   89,    0,    0,
+        0,    0,    0,    0,  143,    0,    0,    0,    0,    0,
+        0,    0,    0,  193,    0,    0,   26,  215,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   98,    0,    0,    0,
-        0,   44,   42,    0,    0,    0,    0,  103,    0,    0,
+        0,    0,    0,    0,    0,   98,    0,    0,    0,    0,
+       44,   42,    0,    0,    0,    0,  103,    0,    0,  147,
 
-      147,    0,   95,    0,  104,    0,    0,    0,    0,    0,
-        0,    0,   94,    0,  196,   43,  214,    0
+        0,   95,    0,  104,    0,    0,    0,    0,    0,    0,
+        0,   94,    0,  195,   43,  213,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -1003,281 +1003,281 @@ static const YY_CHAR yy_meta[77] =
         1,    1,    1,    1,    1,    1
     } ;
 
-static const flex_int16_t yy_base[2327] =
+static const flex_int16_t yy_base[2326] =
     {   0,
         0,   75,   21,   28,   39,   47,   53,   61,   95,  103,
-     2767, 2768,   31, 2763,  151,    0,  216, 2768,  223,  230,
-       13,  237, 2768, 2743,  124,   17,    4,   34, 2768, 2768,
-       23,   43,   64, 2768, 2768, 2768,   56, 2751, 2701,    0,
-     2741,  106, 2758,    2,  268, 2768,   85,   90, 2704, 2725,
-       98,   77, 2725,  235,  231,   97,  207,  298,  226,  312,
-      293,   62,  254,  205,  203,  223, 2704,  252,  321,  336,
-      289,  339, 2687,   21,  344,  394,  354, 2706,  348,    0,
-      408,  422,  448,  456,  462, 2768,    0, 2768,  438,  470,
-      240,  256,  244,  321,  322,  278, 2768, 2703, 2747, 2768,
-
-      266, 2768,  484,  315,  374, 2701, 2745,  323,   17,  334,
-      362, 2739,  379,  377,  384,  391, 2743,    0,  548,  439,
-     2682,  431, 2681, 2682, 2688,  440, 2674, 2675, 2680,   76,
-     2690, 2673, 2682, 2672,  445,  452,   63, 2675, 2673,  444,
-     2662, 2723,   16, 2665, 2721, 2658,  180, 2679, 2679, 2673,
-      209, 2666, 2664, 2665, 2657, 2662, 2656,  388, 2667,  373,
-     2652, 2651, 2665,  455, 2706, 2650,  451, 2662,  459, 2650,
-      518, 2651,  462, 2663, 2660, 2661,  379, 2659, 2697, 2696,
-      405,  200, 2640, 2644,  458, 2640, 2632, 2649, 2641, 2643,
-        0,  481,  498,  473,  503,  500,  498, 2639, 2768,  512,
-
-      530, 2634, 2768,  521,  515, 2768, 2691,  552,  559, 2690,
-      560, 2689,  555, 2688, 2768, 2768,  604,  530,  567, 2644,
-     2636, 2640, 2641, 2621, 2632, 2634, 2633,  334,  541, 2674,
-     2635, 2616, 2613, 2621, 2627, 2615, 2629, 2625, 2616, 2625,
-     2625, 2620, 2612, 2614, 2617, 2597, 2601, 2614, 2616, 2613,
-     2605, 2595, 2598, 2612, 2768, 2598, 2606,   82, 2647, 2590,
-     2599, 2644, 2588, 2598, 2641,  545, 2597, 2639, 2581, 2583,
-     2594, 2635,  580, 2639, 2590, 2570, 2585,  528, 2575, 2581,
-      488, 2572, 2570,  347, 2570, 2576, 2567, 2566, 2579, 2572,
-     2562, 2573, 2577, 2576, 2570,  480, 2577, 2572, 2564, 2554,
-
-     2569, 2555, 2563, 2567, 2548, 2564, 2550, 2556, 2563, 2545,
-      214, 2550, 2547, 2546,  585, 2545, 2540, 2554, 2553,  581,
-     2552, 2555, 2537, 2545, 2533,  584, 2768, 2768,  587, 2768,
-     2768, 2531,  550,  592, 2581,  599, 2592, 2768,  569,  607,
-     2768, 2591, 2768, 2585,  650, 2768, 2544,  597, 2521, 2540,
-     2523, 2540, 2579, 2536, 2526, 2581, 2533, 2536, 2527, 2530,
-     2516, 2527,  632, 2569, 2524, 2521, 2522,  628, 2526, 2569,
-     2501, 2513, 2508, 2505, 2501, 2503, 2506, 2556, 2510, 2499,
-     2515, 2552, 2495,  673, 2508, 2508, 2491, 2492, 2505, 2503,
-     2501, 2501, 2500, 2495, 2502, 2497, 2482,  616, 2491, 2494,
-
-     2489,  580, 2488, 2484, 2537,  595,  605, 2768, 2493, 2530,
-     2477, 2476, 2469, 2471, 2483, 2474, 2481, 2462, 2479, 2471,
-     2467, 2472,  677, 2522, 2472,  632, 2469, 2472, 2472, 2470,
-       50, 2460, 2472,  625, 2447, 2448, 2469, 2460, 2450, 2442,
-     2446, 2460,  637, 2446, 2458, 2457, 2456, 2451, 2496, 2453,
-     2452, 2451, 2450, 2433, 2441, 2494, 2450, 2492, 2429, 2490,
-     2429,  686, 2442, 2440, 2768, 2768, 2440,  631, 2480, 2484,
-     2483, 2768, 2482,  619, 2768,  659,  731, 2438,  658, 2480,
-     2474, 2424, 2426, 2428, 2415, 2412, 2768, 2417, 2410, 2422,
-     2425, 2412, 2411, 2768, 2421,  661, 2412, 2409, 2421,  492,
-
-     2406, 2408, 2768, 2456, 2413, 2398, 2400, 2411, 2409, 2409,
-     2403,  699, 2410, 2398, 2391, 2445, 2768, 2389, 2405, 2442,
-     2446, 2399, 2393, 2395, 2396, 2380, 2389, 2434, 2382, 2381,
-     2376, 2375, 2377, 2373, 2369,  654, 2388, 2362, 2369, 2374,
-     2367, 2383, 2420, 2424, 2768, 2366, 2362,  700, 2370, 2369,
-     2363, 2370, 2355, 2365, 2353, 2367, 2367, 2355, 2351, 2356,
-     2352, 2347, 2768, 2356, 2406, 2768, 2345, 2344, 2337, 2354,
-     2396, 2395, 2337, 2336, 2341, 2350, 2344, 2338, 2347,  702,
-     2387, 2346, 2330, 2325, 2383, 2320, 2326,  649, 2340, 2333,
-     2337, 2320, 2381, 2319, 2319, 2373, 2315, 2316, 2315, 2313,
-
-     2330, 2768, 2326, 2768, 2366, 2768, 2314, 2768, 2324, 2363,
-     2362, 2319, 2365,  723, 2768, 2768, 2768,  709,  674,  677,
-     2302,  725, 2768,  671, 2320, 2300, 2310, 2355, 2354, 2296,
-     2306, 2351, 2293, 2300, 2293, 2301, 2294, 2303, 2285, 2285,
-     2300, 2299, 2283,  478, 2297, 2296, 2280, 2295, 2277, 2327,
-     2291, 2288, 2331, 2272, 2274, 2286, 2286, 2284, 2284, 2768,
-     2269, 2266, 2327, 2279, 2271, 2277, 2268, 2276, 2768, 2261,
-     2272, 2276, 2258, 2270, 2262,  610, 2253, 2252, 2246, 2251,
-     2248, 2263, 2262, 2263, 2242, 2252, 2258, 2304, 2256, 2255,
-     2247, 2238, 2768, 2239, 2241, 2768, 2236, 2242, 2247, 2289,
-
-     2288,  727, 2246, 2286, 2228, 2284, 2228, 2231, 2229, 2231,
-     2222, 2237, 2768, 2235, 2221,  755, 2213, 2217, 2233, 2230,
-     2225, 2221, 2269, 2218, 2225, 2266, 2768, 2209, 2207, 2221,
-     2220, 2223, 2208, 2259, 2254,  213,  365,  377,  425,  494,
-      593, 2768,  557,  594,  665,  735,  668,  669,  669,  674,
-      740,  703,  709,  700,  704,  699, 2768, 2768,  725,  739,
+     2766, 2767,   31, 2762,  151,    0,  216, 2767,  223,  230,
+       13,  237, 2767, 2742,  124,   17,    4,   34, 2767, 2767,
+       23,   43,   64, 2767, 2767, 2767,   56, 2750, 2700,    0,
+     2740,  106, 2757,    2,  268, 2767,   85,   90, 2703, 2724,
+       98,   77, 2724,  235,  231,   97,  207,  298,  226,  312,
+      293,   62,  254,  205,  203,  223, 2703,  252,  321,  336,
+      289,  339, 2686,   21,  344,  394,  354, 2705,  348,    0,
+      408,  422,  448,  456,  462, 2767,    0, 2767,  438,  470,
+      240,  256,  244,  321,  322,  278, 2767, 2702, 2746, 2767,
+
+      266, 2767,  484,  315,  374, 2700, 2744,  323,   17,  334,
+      362, 2738,  379,  377,  384,  391, 2742,    0,  548,  439,
+     2681,  431, 2680, 2681, 2687,  440, 2673, 2674, 2679,   76,
+     2689, 2672, 2681, 2671,  445,  452,   63, 2674, 2672,  444,
+     2661, 2722,   16, 2664, 2720, 2657,  180, 2678, 2678, 2672,
+      209, 2665, 2663, 2664, 2656, 2661, 2655,  388, 2666,  373,
+     2651, 2650, 2664,  455, 2705, 2649,  451, 2661,  459, 2649,
+      518, 2650,  462, 2662, 2659, 2660,  379, 2658, 2696, 2695,
+      405,  200, 2639, 2643,  458, 2639, 2631, 2648, 2640, 2642,
+        0,  481,  498,  473,  503,  500,  498, 2638, 2767,  512,
+
+      530, 2633, 2767,  521,  515, 2767, 2690,  552,  559, 2689,
+      560, 2688,  555, 2687, 2767, 2767,  604,  530,  567, 2643,
+     2635, 2639, 2640, 2620, 2631, 2633, 2632,  334,  541, 2673,
+     2634, 2615, 2612, 2620, 2626, 2614, 2628, 2624, 2615, 2624,
+     2624, 2619, 2611, 2613, 2616, 2596, 2600, 2613, 2615, 2612,
+     2604, 2594, 2597, 2611, 2767, 2597, 2605,   82, 2646, 2589,
+     2598, 2643, 2587, 2597, 2640,  545, 2596, 2638, 2580, 2582,
+     2593, 2634,  580, 2638, 2589, 2569, 2584,  528, 2574, 2580,
+      488, 2571, 2569,  347, 2569, 2575, 2566, 2565, 2578, 2571,
+     2561, 2572, 2576, 2575, 2569,  480, 2576, 2571, 2563, 2553,
+
+     2568, 2554, 2562, 2566, 2547, 2563, 2549, 2555, 2562, 2544,
+      214, 2549, 2546, 2545,  585, 2544, 2539, 2553, 2552,  581,
+     2551, 2554, 2536, 2544, 2532,  584, 2767, 2767,  587, 2767,
+     2767, 2530,  550,  592, 2580,  599, 2591, 2767,  569,  607,
+     2767, 2590, 2767, 2584,  650, 2767, 2543,  597, 2520, 2539,
+     2522, 2539, 2578, 2535, 2525, 2580, 2532, 2535, 2526, 2529,
+     2515, 2526,  632, 2568, 2523, 2520, 2521,  628, 2525, 2568,
+     2500, 2512, 2507, 2504, 2500, 2502, 2505, 2555, 2509, 2498,
+     2514, 2551, 2494,  673, 2507, 2507, 2490, 2491, 2504, 2502,
+     2500, 2500, 2499, 2494, 2501, 2496, 2481,  616, 2490, 2493,
+
+     2488,  580, 2487, 2483, 2536,  595,  605, 2767, 2492, 2529,
+     2476, 2475, 2468, 2470, 2482, 2473, 2480, 2461, 2478, 2470,
+     2466, 2471,  677, 2521, 2471,  632, 2468, 2471, 2471, 2469,
+       50, 2459, 2471,  625, 2446, 2447, 2468, 2459, 2449, 2441,
+     2445, 2459,  637, 2445, 2457, 2456, 2455, 2450, 2495, 2452,
+     2451, 2450, 2449, 2432, 2440, 2493, 2449, 2491, 2428, 2489,
+     2428,  686, 2441, 2439, 2767, 2767, 2439,  631, 2479, 2483,
+     2482, 2767, 2481,  619, 2767,  659,  731, 2437,  658, 2479,
+     2473, 2423, 2425, 2427, 2414, 2411, 2767, 2416, 2409, 2421,
+     2424, 2411, 2410, 2767, 2420,  661, 2411, 2408, 2420,  492,
+
+     2405, 2407, 2767, 2455, 2412, 2397, 2399, 2410, 2408, 2408,
+     2402,  699, 2409, 2397, 2390, 2444, 2767, 2388, 2404, 2441,
+     2445, 2398, 2392, 2394, 2395, 2379, 2388, 2433, 2381, 2380,
+     2375, 2374, 2376, 2372, 2368,  654, 2387, 2361, 2368, 2373,
+     2366, 2382, 2419, 2423, 2767, 2365, 2361,  700, 2369, 2368,
+     2362, 2369, 2354, 2364, 2352, 2366, 2366, 2354, 2350, 2355,
+     2351, 2346, 2767, 2355, 2405, 2767, 2344, 2343, 2336, 2353,
+     2395, 2394, 2336, 2335, 2340, 2349, 2343, 2337, 2346,  702,
+     2386, 2345, 2329, 2324, 2382, 2319, 2325,  649, 2339, 2332,
+     2336, 2319, 2380, 2318, 2318, 2372, 2314, 2315, 2314, 2312,
+
+     2329, 2767, 2325, 2767, 2365, 2767, 2313, 2767, 2323, 2362,
+     2361, 2318, 2364,  723, 2767, 2767, 2767,  709,  674,  677,
+     2301,  725, 2767,  671, 2319, 2299, 2309, 2354, 2353, 2295,
+     2305, 2350, 2292, 2299, 2292, 2300, 2293, 2302, 2284, 2284,
+     2299, 2298, 2282,  478, 2296, 2295, 2279, 2294, 2276, 2326,
+     2290, 2287, 2330, 2271, 2273, 2285, 2285, 2283, 2283, 2767,
+     2268, 2265, 2326, 2278, 2270, 2276, 2267, 2275, 2767, 2260,
+     2271, 2275, 2257, 2269, 2261,  610, 2252, 2251, 2245, 2250,
+     2247, 2262, 2261, 2262, 2241, 2251, 2257, 2303, 2255, 2254,
+     2246, 2237, 2767, 2238, 2240, 2767, 2235, 2241, 2246, 2288,
+
+     2287,  727, 2245, 2285, 2227, 2283, 2227, 2230, 2228, 2230,
+     2221, 2236, 2767, 2234, 2220,  755, 2212, 2216, 2232, 2229,
+     2224, 2220, 2268, 2217, 2224, 2265, 2767, 2208, 2206, 2220,
+     2219, 2222, 2207, 2258, 2253,  213,  365,  377,  425,  494,
+      593, 2767,  557,  594,  665,  735,  668,  669,  669,  674,
+      740,  703,  709,  700,  704,  699, 2767, 2767,  725,  739,
       739,  731,  747,  709,  706,  728,  722,  711,  713,  727,
       728,  738,  784,  741,  741,  790,  791,  742,  738,  743,
       744,  754,  760,  746,  749,  752,  761,  761,  745,  805,
       764,  756,  766,  809,  769,  762,  762,  764,  768,  774,
 
-      817,  777,  824,  779,  780, 2768,  783,  778,  769,  784,
+      817,  777,  824,  779,  780, 2767,  783,  778,  769,  784,
       789,  786,  783,  790,  789,  777,  791,  789,  797,  836,
       795,  843,  844,  785,  798,  784,  794,  844,  799,  852,
-     2768,  853,  806,  804,  806,  802,  796,  812,  860,  856,
-      816,  805, 2768,  807,  808,  819,  808,  821,  811,  824,
-      871,  827,  812,  874,  875,  815,  830, 2768,  824,  818,
+     2767,  853,  806,  804,  806,  802,  796,  812,  860,  856,
+      816,  805, 2767,  807,  808,  819,  808,  821,  811,  824,
+      871,  827,  812,  874,  875,  815,  830, 2767,  824,  818,
       829,  814,  825,  838,  829,  818,  824,  882,  843,  827,
       827,  840,  887,  888,  832,  839,  851,  846,  851,  848,
-      895,  834,  846,  847,  854,  845,  842, 2768,  911,  865,
+      895,  834,  846,  847,  854,  845,  842, 2767,  911,  865,
       866,  854,  868,  858,  861,  872,  863,  869,  870,  898,
 
       890,  919,  920,  894,  867,  881,  863,  870,  884,  932,
-      886,  883,  881, 2768,  885,  880,  895,  892,  878,  880,
+      886,  883,  881, 2767,  885,  880,  895,  892,  878,  880,
       899,  896,  896,  898,  886,  893,  894,  904,  946,  910,
       949,  909,  899,  912,  898,  897,  903,  962,  906,  901,
-      902,  908,  924,  907,  964,  916,  966, 2768,  927,  927,
+      902,  908,  924,  907,  964,  916,  966, 2767,  927,  927,
       920,  931,  929,  977,  916,  918,  933,  934,  922,  920,
-      985,  939,  925,  931,  929, 2768, 2768,  945,  944,  945,
-      950,  938,  948,  950, 2768, 2768,  950,  952,  939,  957,
-      944,  946, 2768,  943,  961,  948,  948,  949, 1004,  947,
-      951,  969, 1013, 2768,  971, 1015, 2768, 2768,  957,  971,
+      985,  939,  925,  931,  929, 2767, 2767,  945,  944,  945,
+      950,  938,  948,  950, 2767, 2767,  950,  952,  939,  957,
+      944,  946, 2767,  943,  961,  948,  948,  949, 1004,  947,
+      951,  969, 1013, 2767,  971, 1015, 2767, 2767,  957,  971,
 
       971, 1019,  964,  963,  967,  961,  977, 1025,  975,  965,
       966,  962,  972,  976,  987,  988,  983, 1030,  986,  979,
       981,  977,  994,  984,  999,  982, 1044,  998, 1003,  980,
-     1003,  989,  988, 2768,  995,  997, 1049, 1050,  999, 1012,
+     1003,  989,  988, 2767,  995,  997, 1049, 1050,  999, 1012,
      1053,  997, 1012, 1006, 1030, 1040, 1028, 1036, 1048, 1065,
-     1011, 1063, 1023, 1066, 2768, 1072, 1012, 1031, 1021, 1020,
+     1011, 1063, 1023, 1066, 2767, 1072, 1012, 1031, 1021, 1020,
      1015, 1016, 1028, 1023, 1019, 1037, 1029, 1024, 1025, 1035,
      1044, 1083, 1031, 1030, 1051, 1043, 1038, 1094, 1100, 1054,
-     1045, 2768, 1059, 1050, 1058, 1060, 1045, 1061, 1051, 1063,
-     1060, 1058, 1108, 1071, 1055, 1056, 2768, 1072, 1075, 1058,
+     1045, 2767, 1059, 1050, 1058, 1060, 1045, 1061, 1051, 1063,
+     1060, 1058, 1108, 1071, 1055, 1056, 2767, 1072, 1075, 1058,
 
-     1060, 1121, 1061, 1080, 2768, 1079, 1082, 1069, 1064, 1082,
+     1060, 1121, 1061, 1080, 2767, 1079, 1082, 1069, 1064, 1082,
      1070, 1126, 1081, 1077, 1074, 1130, 1076, 1132, 1091, 1077,
      1095, 1095, 1095, 1081, 1096, 1088, 1084, 1085, 1103, 1102,
-     1089, 1106, 2768, 1090, 2768, 1099, 1149, 1099, 2768, 1107,
-     1110, 1103, 1160, 1104, 2768, 1107, 1112, 1159, 1107, 1108,
+     1089, 1106, 2767, 1090, 2767, 1099, 1149, 1099, 2767, 1107,
+     1110, 1103, 1160, 1104, 2767, 1107, 1112, 1159, 1107, 1108,
      1120, 1114, 1115, 1113, 1110, 1125, 1173, 1114, 1115, 1176,
-     1177, 1118, 1130, 1123, 2768, 1119, 1128, 1126, 1180, 1119,
+     1177, 1118, 1130, 1123, 2767, 1119, 1128, 1126, 1180, 1119,
      1140, 1126, 1127, 1128, 1129, 1135, 1143, 1134, 1148, 1149,
-     1150, 1165, 1194, 1177, 1169, 1174, 2768, 1157, 1161, 1144,
-     1144, 2768, 1145, 1147, 1158, 1148, 1168, 1167, 1158, 1169,
+     1150, 1165, 1194, 1177, 1169, 1174, 2767, 1157, 1161, 1144,
+     1144, 2767, 1145, 1147, 1158, 1148, 1168, 1167, 1158, 1169,
 
      1215, 1154, 1166, 1175, 1168, 1172, 1176, 1159, 1176, 1177,
-     1168, 1226, 1174, 1178, 2768, 1228, 1174, 1192, 1174, 1174,
+     1168, 1226, 1174, 1178, 2767, 1228, 1174, 1192, 1174, 1174,
      1195, 1192, 1235, 1181, 1199, 1187, 1201, 1187, 1195, 1204,
-     1184, 1199, 1206, 1251, 1252, 2768, 1202, 1254, 1255, 1194,
+     1184, 1199, 1206, 1251, 1252, 2767, 1202, 1254, 1208, 1194,
      1204, 1214, 1198, 1218, 1201, 1203, 1203, 1210, 1219, 1207,
      1214, 1209, 1216, 1228, 1272, 1216, 1274, 1216, 1233, 1277,
      1224, 1228, 1229, 1227, 1225, 1220, 1284, 1232, 1229, 1287,
-     1234, 1289, 1285, 1291, 1241, 2768, 1230, 1247, 1240, 1231,
-     1250, 1244, 1239, 1249, 1250, 1247, 1242, 1260, 2768, 1244,
-     1240, 2768, 2768, 1246, 1309, 1265, 1246, 1265, 1266, 1268,
-
-     1310, 1260, 1317, 1318, 1268, 1273, 1267, 1265, 1276, 1258,
-     1263, 1269, 1295, 1308, 1296, 1310, 1297, 1332, 1284, 1284,
-     1288, 1336, 1276, 1276, 1279, 1296, 1291, 1295, 1290, 2768,
-     1287, 1300, 1284, 1301, 1281, 1302, 1292, 1291, 1347, 1297,
-     2768, 1311, 1313, 1316, 1300, 1309, 1313, 1318, 1304, 1367,
-     1317, 1322, 1309, 1323, 1321, 1313, 1319, 1315, 1333, 1334,
-     1335, 2768, 2768, 1333, 2768, 1335, 2768, 1320, 1331, 1322,
-     1341, 1334, 1332, 1387, 1341, 1338, 1385, 1346, 1335, 1342,
-     1347, 1344, 1350, 2768, 1343, 2768, 1335, 1399, 2768, 1400,
-     1344, 1345, 1352, 1399, 1358, 2768, 1359, 1347, 2768, 1357,
-
-     2768, 1348, 2768, 1348, 1349, 1352, 1366, 1371, 1354, 1365,
-     1417, 1371, 1372, 1415, 1378, 1369, 1423, 1419, 1425, 2768,
-     1373, 1370, 1428, 1429, 1383, 1384, 1386, 2768, 2768, 1378,
-     1373, 1430, 1376, 1392, 1376, 1388, 1377, 1436, 1419, 1420,
-     1412, 1445, 2768, 1399, 1390, 1401, 2768, 1449, 1383, 1394,
-     1409, 1448, 1397, 1408, 1396, 1395, 1411, 1412, 1409, 1456,
-     1416, 1418, 1407, 1417, 1423, 1411, 1411, 1471, 1467, 1469,
-     1475, 1430, 2768, 1432, 1431, 1433, 1424, 1427, 1436, 1437,
-     1434, 1424, 1427, 1427, 1489, 1433, 1491, 1435, 1493, 1433,
-     1438, 1497, 2768, 1452, 1431, 1446, 1439, 1442, 1455, 1458,
-
-     1457, 1455, 1507, 1458, 2768, 2768, 1454, 1455, 1465, 1450,
-     1509, 1453, 1516, 1469, 1455, 1519, 1520, 1521, 1462, 1472,
-     1524, 1478, 2768, 1470, 1471, 1473, 1529, 1470, 1470, 2768,
-     1488, 2768, 1485, 1476, 2768, 2768, 1489, 1472, 1492, 1493,
-     1479, 1481, 1543, 1490, 1545, 1491, 1485, 1512, 1530, 1545,
-     1531, 2768, 1551, 1499, 1549, 2768, 1494, 1556, 1503, 1497,
-     1494, 1497, 1499, 1495, 1558, 1518, 1560, 1510, 1522, 1525,
-     1522, 1514, 1517, 1510, 1573, 1520, 2768, 1519, 1518, 2768,
-     1520, 1582, 1532, 1523, 1580, 1539, 1539, 1542, 1542, 1539,
-     1586, 1545, 2768, 1537, 2768, 1538, 2768, 1548, 1540, 2768,
-
-     1592, 1551, 1552, 1549, 1596, 1542, 1557, 1600, 1559, 1551,
-     2768, 1548, 1548, 1549, 1555, 1554, 1552, 1609, 2768, 1568,
-     1568, 2768, 2768, 2768, 1612, 1556, 2768, 1573, 1558, 1559,
-     1565, 2768, 1574, 1562, 1626, 1570, 1563, 1568, 1579, 1590,
-     1583, 1589, 1579, 1637, 1587, 2768, 1596, 2768, 1593, 1641,
-     1618, 1619, 1625, 1610, 1618, 2768, 1601, 1586, 1649, 2768,
-     1650, 1604, 1609, 1591, 1654, 1655, 1596, 1652, 1616, 1609,
-     1605, 1598, 1606, 1658, 1613, 1614, 2768, 1604, 1620, 1618,
-     1675, 2768, 1610, 1672, 1633, 1633, 1629, 1676, 1621, 1626,
-     1624, 1686, 1639, 1627, 1689, 1685, 1637, 1692, 1650, 1639,
-
-     1633, 1696, 1635, 1644, 1637, 1651, 1654, 1702, 1703, 1642,
-     1659, 1655, 1653, 1646, 1661, 1645, 1706, 1707, 1708, 1709,
-     1669, 1662, 1661, 1661, 1656, 1657, 2768, 1665, 1671, 1662,
-     1663, 1662, 1664, 1722, 1665, 2768, 1661, 1679, 1731, 2768,
-     1699, 1713, 1712, 1701, 1703, 1737, 1687, 2768, 2768, 1678,
-     1689, 1741, 2768, 2768, 1695, 1685, 1690, 1688, 1741, 1697,
-     1702, 1688, 1691, 1707, 1696, 1694, 1694, 1696, 2768, 1764,
-     1699, 1708, 1755, 1700, 1705, 1768, 1714, 1724, 1725, 2768,
-     1773, 1723, 1770, 2768, 1718, 1726, 2768, 1717, 1732, 1720,
-     2768, 1730, 1731, 1732, 1784, 1739, 2768, 2768, 1781, 1744,
-
-     1720, 1738, 1739, 1740, 1749, 1731, 1737, 1739, 1751, 1750,
-     1741, 1794, 1743, 1739, 1744, 1741, 1742, 1800, 1806, 1753,
-     1808, 1758, 1748, 1764, 1757, 2768, 1790, 1814, 1796, 1811,
-     1817, 2768, 1763, 1819, 1758, 2768, 1760, 1762, 1772, 1819,
-     1764, 1779, 1766, 1828, 1782, 1768, 1775, 1775, 1786, 1787,
-     2768, 1781, 1776, 1790, 1776, 1839, 1791, 2768, 1838, 1786,
-     1783, 2768, 1797, 1784, 1805, 1801, 1803, 1851, 1801, 1798,
-     1806, 1800, 2768, 1856, 1794, 1796, 1812, 1805, 1806, 1796,
-     1812, 1813, 1807, 1823, 1813, 1868, 1825, 1809, 1818, 1867,
-     1873, 1823, 1875, 1821, 2768, 1815, 2768, 1822, 1879, 1880,
-
-     1877, 1878, 2768, 1860, 1866, 2768, 1838, 2768, 1882, 1831,
-     1842, 1843, 1828, 1829, 1837, 1894, 2768, 1839, 1891, 1892,
-     1844, 1839, 1857, 1854, 1845, 1858, 1853, 2768, 1850, 1855,
-     1853, 1908, 1909, 1854, 1853, 1867, 1854, 2768, 1869, 1870,
-     1871, 1872, 2768, 1862, 1874, 1922, 1872, 1877, 1925, 1864,
-     1872, 1866, 1874, 1887, 2768, 1888, 1869, 1870, 1877, 2768,
-     1879, 2768, 1893, 1890, 1933, 1891, 2768, 2768, 1895, 1921,
-     1922, 1920, 1883, 1883, 1892, 1899, 1892, 1891, 1902, 1889,
-     2768, 1905, 1893, 1896, 1955, 1892, 1911, 1902, 1914, 1907,
-     1906, 1915, 1917, 1921, 2768, 2768, 1914, 1905, 1907, 1971,
-
-     1911, 1973, 1912, 1975, 1930, 1977, 2768, 1916, 1979, 2768,
-     1975, 1934, 1931, 1936, 1923, 1931, 1942, 1929, 1940, 1926,
-     1924, 1932, 1931, 1936, 1928, 1973, 1997, 1979, 1999, 1949,
-     1938, 1951, 1941, 1958, 1957, 2001, 1942, 1961, 1962, 2768,
-     1967, 1960, 2012, 1966, 1953, 1968, 2016, 1970, 1973, 1960,
-     1969, 1970, 2768, 2022, 2768, 1974, 2768, 1983, 2768, 2027,
-     2768, 1966, 2029, 1973, 2031, 1971, 2033, 1978, 2030, 2031,
-     1990, 2033, 1976, 1980, 1998, 2042, 1998, 2025, 2768, 2021,
-     2768, 1991, 1985, 1982, 2044, 2007, 2000, 1996, 2053, 1993,
-     1995, 1994, 2001, 2768, 1997, 2059, 2000, 2768, 2005, 2015,
-
-     2000, 2008, 2010, 2768, 2011, 2005, 2768, 2017, 2768, 2013,
-     2768, 2024, 2768, 2026, 2026, 2017, 2076, 2017, 2027, 2012,
-     2025, 2768, 2027, 2058, 2064, 2036, 2034, 2086, 2024, 2026,
-     2023, 2047, 2768, 2034, 2041, 2042, 2045, 2034, 2768, 2091,
-     2035, 2043, 2052, 2051, 2054, 2055, 2056, 2049, 2044, 2045,
-     2045, 2057, 2054, 2768, 2065, 2053, 2109, 2057, 2069, 2097,
-     2118, 2119, 2063, 2768, 2063, 2075, 2123, 2069, 2071, 2069,
-     2070, 2128, 2078, 2065, 2080, 2085, 2133, 2134, 2135, 2136,
-     2137, 2091, 2139, 2140, 2141, 2082, 2087, 2083, 2099, 2082,
-     2094, 2088, 2150, 2768, 2768, 2095, 2106, 2153, 2768, 2107,
-
-     2092, 2110, 2101, 2768, 2102, 2116, 2112, 2105, 2768, 2768,
-     2768, 2768, 2768, 2162, 2768, 2768, 2768, 2102, 2110, 2105,
-     2161, 2124, 2121, 2169, 2768, 2165, 2128, 2768, 2172, 2111,
-     2174, 2114, 2127, 2126, 2127, 2117, 2768, 2118, 2181, 2131,
-     2140, 2133, 2180, 2768, 2131, 2125, 2768, 2137, 2768, 2184,
-     2190, 2129, 2145, 2193, 2194, 2768, 2148, 2142, 2135, 2155,
-     2142, 2154, 2145, 2149, 2768, 2199, 2145, 2768, 2768, 2145,
-     2153, 2203, 2160, 2153, 2165, 2212, 2157, 2157, 2153, 2155,
-     2217, 2218, 2157, 2173, 2158, 2175, 2768, 2223, 2167, 2174,
-     2226, 2768, 2768, 2176, 2228, 2173, 2230, 2768, 2178, 2177,
-
-     2768, 2178, 2768, 2172, 2768, 2172, 2189, 2190, 2238, 2181,
-     2240, 2241, 2768, 2242, 2768, 2768, 2768, 2768, 2248, 2251,
-     2254, 2255, 2257, 2260, 2263, 2266
+     1234, 1289, 1285, 1291, 1241, 2767, 1230, 1247, 1240, 1231,
+     1250, 1244, 1239, 1249, 1250, 1246, 1241, 1259, 2767, 1243,
+     1239, 2767, 2767, 1245, 1308, 1264, 1245, 1264, 1265, 1267,
+
+     1309, 1259, 1316, 1317, 1267, 1272, 1266, 1264, 1275, 1257,
+     1262, 1268, 1294, 1307, 1295, 1309, 1296, 1331, 1283, 1283,
+     1287, 1335, 1275, 1275, 1278, 1295, 1290, 1294, 1289, 2767,
+     1286, 1299, 1283, 1300, 1280, 1301, 1291, 1290, 1346, 1296,
+     2767, 1310, 1312, 1315, 1299, 1308, 1312, 1317, 1303, 1366,
+     1316, 1321, 1308, 1322, 1320, 1312, 1318, 1314, 1332, 1333,
+     1334, 2767, 2767, 1332, 2767, 1334, 1319, 1330, 1321, 1340,
+     1333, 1331, 1386, 1340, 1337, 1384, 1345, 1334, 1341, 1346,
+     1343, 1349, 2767, 1342, 2767, 1334, 1398, 2767, 1399, 1343,
+     1344, 1351, 1398, 1357, 2767, 1358, 1346, 2767, 1356, 2767,
+
+     1347, 2767, 1347, 1348, 1351, 1365, 1370, 1353, 1364, 1416,
+     1370, 1371, 1414, 1377, 1368, 1422, 1418, 1424, 2767, 1372,
+     1369, 1427, 1428, 1382, 1383, 1385, 2767, 2767, 1377, 1372,
+     1429, 1375, 1391, 1375, 1387, 1376, 1435, 1418, 1419, 1411,
+     1444, 2767, 1398, 1389, 1400, 2767, 1448, 1382, 1393, 1408,
+     1447, 1396, 1407, 1395, 1394, 1410, 1411, 1408, 1455, 1415,
+     1417, 1406, 1416, 1422, 1410, 1410, 1470, 1466, 1468, 1474,
+     1429, 2767, 1431, 1430, 1432, 1423, 1426, 1435, 1436, 1433,
+     1423, 1426, 1426, 1488, 1432, 1490, 1434, 1492, 1432, 1437,
+     1496, 2767, 1451, 1430, 1445, 1438, 1441, 1454, 1457, 1456,
+
+     1454, 1506, 1457, 2767, 2767, 1453, 1454, 1464, 1449, 1508,
+     1452, 1515, 1468, 1454, 1518, 1519, 1520, 1461, 1471, 1523,
+     1477, 2767, 1469, 1470, 1472, 1528, 1469, 1469, 2767, 1487,
+     2767, 1484, 1475, 2767, 2767, 1488, 1471, 1491, 1492, 1478,
+     1480, 1542, 1489, 1544, 1490, 1484, 1511, 1529, 1544, 1530,
+     2767, 1550, 1498, 1548, 2767, 1493, 1555, 1502, 1496, 1493,
+     1496, 1498, 1494, 1557, 1517, 1559, 1509, 1521, 1524, 1521,
+     1513, 1516, 1509, 1572, 1519, 2767, 1518, 1517, 2767, 1519,
+     1581, 1531, 1522, 1579, 1538, 1538, 1541, 1541, 1538, 1585,
+     1544, 2767, 1536, 2767, 1537, 2767, 1547, 1539, 2767, 1591,
+
+     1550, 1551, 1548, 1595, 1541, 1556, 1599, 1558, 1550, 2767,
+     1547, 1547, 1548, 1554, 1553, 1551, 1608, 2767, 1567, 1567,
+     2767, 2767, 2767, 1611, 1555, 2767, 1572, 1557, 1558, 1564,
+     2767, 1573, 1561, 1625, 1569, 1562, 1567, 1578, 1589, 1582,
+     1588, 1578, 1636, 1586, 2767, 1595, 2767, 1592, 1640, 1617,
+     1618, 1624, 1609, 1617, 2767, 1600, 1585, 1648, 2767, 1649,
+     1603, 1608, 1590, 1653, 1654, 1595, 1651, 1615, 1608, 1604,
+     1597, 1605, 1657, 1612, 1613, 2767, 1603, 1619, 1617, 1674,
+     2767, 1609, 1671, 1632, 1632, 1628, 1675, 1620, 1625, 1623,
+     1685, 1638, 1626, 1688, 1684, 1636, 1691, 1649, 1638, 1632,
+
+     1695, 1634, 1643, 1636, 1650, 1653, 1701, 1702, 1641, 1658,
+     1654, 1652, 1645, 1660, 1644, 1705, 1706, 1707, 1708, 1668,
+     1661, 1660, 1660, 1655, 1656, 2767, 1664, 1670, 1661, 1662,
+     1661, 1663, 1721, 1664, 2767, 1660, 1678, 1730, 2767, 1698,
+     1712, 1711, 1700, 1702, 1736, 1686, 2767, 2767, 1677, 1688,
+     1740, 2767, 2767, 1694, 1684, 1689, 1687, 1740, 1696, 1701,
+     1687, 1690, 1706, 1695, 1693, 1693, 1695, 2767, 1763, 1698,
+     1707, 1754, 1699, 1704, 1767, 1713, 1723, 1724, 2767, 1772,
+     1722, 1769, 2767, 1717, 1725, 2767, 1716, 1731, 1719, 2767,
+     1729, 1730, 1731, 1783, 1738, 2767, 2767, 1780, 1743, 1719,
+
+     1737, 1738, 1739, 1748, 1730, 1736, 1738, 1750, 1749, 1740,
+     1793, 1742, 1738, 1743, 1740, 1741, 1799, 1805, 1752, 1807,
+     1757, 1747, 1763, 1756, 2767, 1789, 1813, 1795, 1810, 1816,
+     2767, 1762, 1818, 1757, 2767, 1759, 1761, 1771, 1818, 1763,
+     1778, 1765, 1827, 1781, 1767, 1774, 1774, 1785, 1786, 2767,
+     1780, 1775, 1789, 1775, 1838, 1790, 2767, 1837, 1785, 1782,
+     2767, 1796, 1783, 1804, 1800, 1802, 1850, 1800, 1797, 1805,
+     1799, 2767, 1855, 1793, 1795, 1811, 1804, 1805, 1795, 1811,
+     1812, 1806, 1822, 1812, 1867, 1824, 1808, 1817, 1866, 1872,
+     1822, 1874, 1820, 2767, 1814, 2767, 1821, 1878, 1879, 1876,
+
+     1877, 2767, 1859, 1865, 2767, 1837, 2767, 1881, 1830, 1841,
+     1842, 1827, 1828, 1836, 1893, 2767, 1838, 1890, 1891, 1843,
+     1838, 1856, 1853, 1844, 1857, 1852, 2767, 1849, 1854, 1852,
+     1907, 1908, 1853, 1852, 1866, 1853, 2767, 1868, 1869, 1870,
+     1871, 2767, 1861, 1873, 1921, 1871, 1876, 1924, 1863, 1871,
+     1865, 1873, 1886, 2767, 1887, 1868, 1869, 1876, 2767, 1878,
+     2767, 1892, 1889, 1932, 1890, 2767, 2767, 1894, 1920, 1921,
+     1919, 1882, 1882, 1891, 1898, 1891, 1890, 1901, 1888, 2767,
+     1904, 1892, 1895, 1954, 1891, 1910, 1901, 1913, 1906, 1905,
+     1914, 1916, 1920, 2767, 2767, 1913, 1904, 1906, 1970, 1910,
+
+     1972, 1911, 1974, 1929, 1976, 2767, 1915, 1978, 2767, 1974,
+     1933, 1930, 1935, 1922, 1930, 1941, 1928, 1939, 1925, 1923,
+     1931, 1930, 1935, 1927, 1972, 1996, 1978, 1998, 1948, 1937,
+     1950, 1940, 1957, 1956, 2000, 1941, 1960, 1961, 2767, 1966,
+     1959, 2011, 1965, 1952, 1967, 2015, 1969, 1972, 1959, 1968,
+     1969, 2767, 2021, 2767, 1973, 2767, 1982, 2767, 2026, 2767,
+     1965, 2028, 1972, 2030, 1970, 2032, 1977, 2029, 2030, 1989,
+     2032, 1975, 1979, 1997, 2041, 1997, 2024, 2767, 2020, 2767,
+     1990, 1984, 1981, 2043, 2006, 1999, 1995, 2052, 1992, 1994,
+     1993, 2000, 2767, 1996, 2058, 1999, 2767, 2004, 2014, 1999,
+
+     2007, 2009, 2767, 2010, 2004, 2767, 2016, 2767, 2012, 2767,
+     2023, 2767, 2025, 2025, 2016, 2075, 2016, 2026, 2011, 2024,
+     2767, 2026, 2057, 2063, 2035, 2033, 2085, 2023, 2025, 2022,
+     2046, 2767, 2033, 2040, 2041, 2044, 2033, 2767, 2090, 2034,
+     2042, 2051, 2050, 2053, 2054, 2055, 2048, 2043, 2044, 2044,
+     2056, 2053, 2767, 2064, 2052, 2108, 2056, 2068, 2096, 2117,
+     2118, 2062, 2767, 2062, 2074, 2122, 2068, 2070, 2068, 2069,
+     2127, 2077, 2064, 2079, 2084, 2132, 2133, 2134, 2135, 2136,
+     2090, 2138, 2139, 2140, 2081, 2086, 2082, 2098, 2081, 2093,
+     2087, 2149, 2767, 2767, 2094, 2105, 2152, 2767, 2106, 2091,
+
+     2109, 2100, 2767, 2101, 2115, 2111, 2104, 2767, 2767, 2767,
+     2767, 2767, 2161, 2767, 2767, 2767, 2101, 2109, 2104, 2160,
+     2123, 2120, 2168, 2767, 2164, 2127, 2767, 2171, 2110, 2173,
+     2113, 2126, 2125, 2126, 2116, 2767, 2117, 2180, 2130, 2139,
+     2132, 2179, 2767, 2130, 2124, 2767, 2136, 2767, 2183, 2189,
+     2128, 2144, 2192, 2193, 2767, 2147, 2141, 2134, 2154, 2141,
+     2153, 2144, 2148, 2767, 2198, 2144, 2767, 2767, 2144, 2152,
+     2202, 2159, 2152, 2164, 2211, 2156, 2156, 2152, 2154, 2216,
+     2217, 2156, 2172, 2157, 2174, 2767, 2222, 2166, 2173, 2225,
+     2767, 2767, 2175, 2227, 2172, 2229, 2767, 2177, 2176, 2767,
+
+     2177, 2767, 2171, 2767, 2171, 2188, 2189, 2237, 2180, 2239,
+     2240, 2767, 2241, 2767, 2767, 2767, 2767, 2247, 2250, 2253,
+     2254, 2256, 2259, 2262, 2265
     } ;
 
-static const flex_int16_t yy_def[2327] =
+static const flex_int16_t yy_def[2326] =
     {   0,
-     2319, 2319, 2320, 2320, 2319, 2319, 2319, 2319, 2319, 2319,
-     2318, 2318, 2318, 2318, 2318, 2321, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2322,
-     2318, 2318, 2318, 2323,   15, 2318,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2324,   45,   45,
+     2318, 2318, 2319, 2319, 2318, 2318, 2318, 2318, 2318, 2318,
+     2317, 2317, 2317, 2317, 2317, 2320, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2321,
+     2317, 2317, 2317, 2322,   15, 2317,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2323,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2321,
-     2318, 2318, 2318, 2318, 2318, 2318, 2325, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2322, 2318,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2320,
+     2317, 2317, 2317, 2317, 2317, 2317, 2324, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2321, 2317,
 
-     2323, 2318, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2326,   45, 2324,   45,
+     2322, 2317, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2325,   45, 2323,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1285,14 +1285,14 @@ static const flex_int16_t yy_def[2327] =
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2325, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,   45,
+     2324, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,   45,
 
-       45,   45, 2318,   45,   45, 2318,   45,   45,   45,   45,
-       45,   45,   45, 2326, 2318, 2318,  119,   45,   45,   45,
+       45,   45, 2317,   45,   45, 2317,   45,   45,   45,   45,
+       45,   45,   45, 2325, 2317, 2317,  119,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1300,235 +1300,235 @@ static const flex_int16_t yy_def[2327] =
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318,   45,   45,   45,   45,   45, 2318,   45,   45,
-     2318,   45, 2318,   45,  119, 2318,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317,   45,   45,   45,   45,   45, 2317,   45,   45,
+     2317,   45, 2317,   45,  119, 2317,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318, 2318, 2318,   45,   45,   45,
-       45, 2318,   45,   45, 2318,   45,  119,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317, 2317, 2317,   45,   45,   45,
+       45, 2317,   45,   45, 2317,   45,  119,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45, 2318,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45, 2317,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45, 2318,   45, 2318,   45, 2318,   45, 2318,   45,   45,
-       45, 2318,   45,   45, 2318, 2318, 2318,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45, 2317,   45, 2317,   45, 2317,   45,   45,
+       45, 2317,   45,   45, 2317, 2317, 2317,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2318,
-       45,   45,   45,   45,   45,   45,   45,   45, 2318,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2317,
+       45,   45,   45,   45,   45,   45,   45,   45, 2317,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45, 2318,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45, 2317,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318, 2318,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 2318,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318, 2318,   45,   45,   45,
-       45,   45,   45,   45, 2318, 2318,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45, 2318, 2318,   45,   45,
+       45,   45,   45,   45,   45, 2317, 2317,   45,   45,   45,
+       45,   45,   45,   45, 2317, 2317,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45, 2317, 2317,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
 
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45, 2318,   45,   45,   45, 2318,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45, 2317,   45, 2317,   45,   45,   45, 2317,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2318,   45,
-       45, 2318, 2318,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2317,   45,
+       45, 2317, 2317,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2318,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2317,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2318, 2318,   45, 2318,   45, 2318,   45,   45,   45,
+       45, 2317, 2317,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45, 2318,   45,   45, 2318,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45, 2318,   45,
+       45,   45, 2317,   45, 2317,   45,   45, 2317,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45, 2317,   45, 2317,
 
-     2318,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2318,
-       45,   45,   45,   45,   45,   45,   45, 2318, 2318,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2317,   45,
+       45,   45,   45,   45,   45,   45, 2317, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45, 2318,   45,   45,   45,
+       45, 2317,   45,   45,   45, 2317,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 2318, 2318,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45, 2318,
-       45, 2318,   45,   45, 2318, 2318,   45,   45,   45,   45,
+       45,   45,   45, 2317, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 2318,   45,   45,   45, 2318,   45,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45, 2317,   45,
+     2317,   45,   45, 2317, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45, 2318,
+     2317,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45, 2318,   45, 2318,   45,   45, 2318,
-
+       45,   45,   45,   45,   45, 2317,   45,   45, 2317,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45, 2318,   45,
-       45, 2318, 2318, 2318,   45,   45, 2318,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45, 2318,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45, 2318,
+       45, 2317,   45, 2317,   45, 2317,   45,   45, 2317,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2317,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
+     2317, 2317, 2317,   45,   45, 2317,   45,   45,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45, 2317,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45, 2317,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45, 2318,
-       45,   45,   45,   45,   45,   45,   45, 2318, 2318,   45,
-       45,   45, 2318, 2318,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2318,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2318,
-       45,   45,   45, 2318,   45,   45, 2318,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45, 2318, 2318,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45, 2317,   45,
+       45,   45,   45,   45,   45,   45, 2317, 2317,   45,   45,
+       45, 2317, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 2317,   45,
+       45,   45, 2317,   45,   45, 2317,   45,   45,   45, 2317,
+       45,   45,   45,   45,   45, 2317, 2317,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45,   45,
-       45, 2318,   45,   45,   45, 2318,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
+     2317,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2317,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45, 2318,   45,   45,   45,
-
-       45,   45, 2318,   45,   45, 2318,   45, 2318,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 2318,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45,   45,   45, 2318,
-       45, 2318,   45,   45,   45,   45, 2318, 2318,   45,   45,
+       45,   45,   45, 2317,   45, 2317,   45,   45,   45,   45,
+
+       45, 2317,   45,   45, 2317,   45, 2317,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 2317,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45,   45,   45, 2317,   45,
+     2317,   45,   45,   45,   45, 2317, 2317,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 2317,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318, 2318,   45,   45,   45,   45,
+       45,   45,   45, 2317, 2317,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 2318,   45,   45, 2318,
+       45,   45,   45,   45,   45, 2317,   45,   45, 2317,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 2318,
+       45,   45,   45,   45,   45,   45,   45,   45, 2317,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45, 2318,   45, 2318,   45, 2318,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 2318,   45,
-     2318,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45, 2318,   45,   45,
-
-       45,   45,   45, 2318,   45,   45, 2318,   45, 2318,   45,
-     2318,   45, 2318,   45,   45,   45,   45,   45,   45,   45,
-       45, 2318,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45,   45,   45,   45,   45, 2318,   45,
+       45, 2317,   45, 2317,   45, 2317,   45, 2317,   45, 2317,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 2317,   45, 2317,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45, 2317,   45,   45,   45,
+
+       45,   45, 2317,   45,   45, 2317,   45, 2317,   45, 2317,
+       45, 2317,   45,   45,   45,   45,   45,   45,   45,   45,
+     2317,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45,   45,   45,   45,   45, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 2318, 2318,   45,   45,   45, 2318,   45,
-
-       45,   45,   45, 2318,   45,   45,   45,   45, 2318, 2318,
-     2318, 2318, 2318,   45, 2318, 2318, 2318,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45, 2318,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45,   45,   45, 2318,   45,   45, 2318,   45, 2318,   45,
-       45,   45,   45,   45,   45, 2318,   45,   45,   45,   45,
-       45,   45,   45,   45, 2318,   45,   45, 2318, 2318,   45,
+       45,   45, 2317, 2317,   45,   45,   45, 2317,   45,   45,
+
+       45,   45, 2317,   45,   45,   45,   45, 2317, 2317, 2317,
+     2317, 2317,   45, 2317, 2317, 2317,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45, 2317,   45,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+       45,   45, 2317,   45,   45, 2317,   45, 2317,   45,   45,
+       45,   45,   45,   45, 2317,   45,   45,   45,   45,   45,
+       45,   45,   45, 2317,   45,   45, 2317, 2317,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 2318,   45,   45,   45,
-       45, 2318, 2318,   45,   45,   45,   45, 2318,   45,   45,
+       45,   45,   45,   45,   45, 2317,   45,   45,   45,   45,
+     2317, 2317,   45,   45,   45,   45, 2317,   45,   45, 2317,
 
-     2318,   45, 2318,   45, 2318,   45,   45,   45,   45,   45,
-       45,   45, 2318,   45, 2318, 2318, 2318,    0, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318
+       45, 2317,   45, 2317,   45,   45,   45,   45,   45,   45,
+       45, 2317,   45, 2317, 2317, 2317,    0, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317
     } ;
 
-static const flex_int16_t yy_nxt[2845] =
+static const flex_int16_t yy_nxt[2844] =
     {   0,
-     2318,   13,   14,   13, 2318,   15,   16,  102,   17,   18,
+     2317,   13,   14,   13, 2317,   15,   16,  102,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
        86,  255,   37,   14,   37,   87,   25,   26,   38,   37,
-       14,   37,   42,   27,   42,   38, 2318, 2318,   28,   91,
+       14,   37,   42,   27,   42,   38, 2317, 2317,   28,   91,
        13,   14,   13,   92,   29,   91,   30,  103,   13,   14,
        13,  205,   25,   31,   13,   14,   13,   42,   40,   42,
       574,   32,   13,   14,   13,   91,   40,   33,  256,  170,
@@ -1663,63 +1663,63 @@ static const flex_int16_t yy_nxt[2845] =
      1340, 1341, 1313, 1315, 1316, 1317, 1342, 1343, 1344, 1345,
      1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
      1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
-     1367, 1369, 1370, 1371, 1366, 1372, 1373, 1374, 1375, 1376,
-     1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
-     1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
-     1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
+     1367, 1368, 1369, 1370, 1366, 1371, 1372, 1373, 1374, 1375,
+     1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385,
+     1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
+     1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
 
-     1407, 1408, 1409, 1410, 1411, 1412, 1413, 1368, 1414, 1415,
+     1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
      1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
      1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
-     1436, 1437, 1438, 1439, 1440, 1442, 1441, 1443, 1444, 1445,
+     1436, 1437, 1438, 1439, 1441, 1440, 1442, 1443, 1444, 1445,
      1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
-     1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1439,
-     1465, 1438, 1441, 1440, 1442, 1466, 1467, 1468, 1469, 1470,
+     1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1438, 1464,
+     1437, 1440, 1439, 1441, 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,
-     1521, 1522, 1523, 1524, 1525, 1526, 1528, 1529, 1530, 1531,
+     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, 1558, 1559, 1560, 1561, 1562,
+     1552, 1553, 1554, 1555, 1557, 1558, 1559, 1560, 1561, 1562,
      1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572,
-     1573, 1574, 1575, 1576, 1549, 1550, 1577, 1578, 1551, 1579,
-     1580, 1527, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588,
+     1573, 1574, 1575, 1548, 1549, 1576, 1577, 1550, 1578, 1579,
+     1526, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588,
      1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598,
 
-     1599, 1557, 1600, 1601, 1602, 1603, 1605, 1606, 1607, 1608,
-     1609, 1610, 1611, 1604, 1612, 1613, 1614, 1615, 1616, 1617,
+     1556, 1599, 1600, 1601, 1602, 1604, 1605, 1606, 1607, 1608,
+     1609, 1610, 1603, 1611, 1612, 1613, 1614, 1615, 1616, 1617,
      1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
-     1628, 1629, 1630, 1631, 1632, 1634, 1635, 1638, 1636, 1633,
-     1637, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
-     1648, 1649, 1650, 1651, 1652, 1653, 1656, 1655, 1657, 1658,
+     1628, 1629, 1630, 1631, 1633, 1634, 1637, 1635, 1632, 1636,
+     1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
+     1648, 1649, 1650, 1651, 1652, 1655, 1654, 1656, 1657, 1658,
      1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
-     1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1654,
-     1652, 1678, 1651, 1655, 1679, 1680, 1681, 1682, 1683, 1684,
+     1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1653, 1651,
+     1677, 1650, 1654, 1678, 1679, 1680, 1681, 1682, 1683, 1684,
      1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694,
 
-     1695, 1696, 1697, 1698, 1699, 1700, 1701, 1654, 1702, 1703,
+     1695, 1696, 1697, 1698, 1699, 1700, 1653, 1701, 1702, 1703,
      1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713,
-     1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1726,
-     1723, 1727, 1728, 1724, 1729, 1730, 1725, 1731, 1732, 1733,
-     1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1744,
-     1743, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753,
-     1754, 1755, 1756, 1759, 1760, 1761, 1757, 1762, 1763, 1764,
-     1765, 1766, 1767, 1768, 1741, 1742, 1743, 1758, 1744, 1745,
+     1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1725, 1722,
+     1726, 1727, 1723, 1728, 1729, 1724, 1730, 1731, 1732, 1733,
+     1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1743, 1742,
+     1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753,
+     1754, 1755, 1758, 1759, 1760, 1756, 1761, 1762, 1763, 1764,
+     1765, 1766, 1767, 1740, 1741, 1742, 1757, 1743, 1744, 1768,
      1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778,
-     1779, 1780, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
+     1779, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
 
      1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799,
      1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,
      1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819,
-     1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1830,
-     1829, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
-     1840, 1841, 1781, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
-     1849, 1850, 1853, 1854, 1828, 1855, 1827, 1829, 1830, 1851,
-     1831, 1856, 1857, 1858, 1852, 1859, 1860, 1861, 1862, 1863,
+     1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1829, 1828,
+     1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839,
+     1840, 1780, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
+     1849, 1852, 1853, 1827, 1854, 1826, 1828, 1829, 1850, 1830,
+     1855, 1856, 1857, 1851, 1858, 1859, 1860, 1861, 1862, 1863,
      1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
      1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,
 
@@ -1727,120 +1727,120 @@ static const flex_int16_t yy_nxt[2845] =
      1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
      1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
      1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923,
-     1924, 1925, 1926, 1927, 1928, 1902, 1904, 1929, 1930, 1931,
+     1924, 1925, 1926, 1927, 1901, 1903, 1928, 1929, 1930, 1931,
      1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
      1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
      1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
-     1962, 1963, 1965, 1966, 1967, 1968, 1964, 1969, 1970, 1971,
-     1973, 1972, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
+     1962, 1964, 1965, 1966, 1967, 1963, 1968, 1969, 1970, 1972,
+     1971, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
 
      1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
-     1992, 1993, 1994, 1995, 1996, 1997, 1971, 1972, 1998, 1999,
+     1992, 1993, 1994, 1995, 1996, 1970, 1971, 1997, 1998, 1999,
      2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
      2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
      2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029,
      2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039,
      2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049,
-     2050, 2051, 2026, 2027, 2052, 2028, 2053, 2054, 2055, 2056,
+     2050, 2025, 2026, 2051, 2027, 2052, 2053, 2054, 2055, 2056,
      2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,
-     2067, 2068, 2069, 2070, 2071, 2072, 2073, 2075, 2076, 2074,
+     2067, 2068, 2069, 2070, 2071, 2072, 2074, 2075, 2073, 2076,
 
      2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086,
      2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096,
-     2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2078, 2080,
+     2097, 2098, 2099, 2100, 2101, 2102, 2103, 2077, 2079, 2104,
      2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114,
      2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124,
      2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134,
      2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144,
-     2145, 2146, 2147, 2148, 2149, 2124, 2150, 2125, 2151, 2152,
-     2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2162, 2161,
+     2145, 2146, 2147, 2148, 2123, 2149, 2124, 2150, 2151, 2152,
+     2153, 2154, 2155, 2156, 2157, 2158, 2159, 2161, 2160, 2162,
      2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172,
 
      2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182,
-     2183, 2184, 2185, 2186, 2160, 2161, 2187, 2188, 2189, 2190,
+     2183, 2184, 2185, 2159, 2160, 2186, 2187, 2188, 2189, 2190,
      2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200,
      2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210,
-     2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2193, 2219,
+     2211, 2212, 2213, 2214, 2215, 2216, 2217, 2192, 2218, 2219,
      2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
      2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
      2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249,
      2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259,
      2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269,
 
-     2270, 2271, 2272, 2273, 2275, 2274, 2276, 2277, 2278, 2279,
+     2270, 2271, 2272, 2274, 2273, 2275, 2276, 2277, 2278, 2279,
      2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289,
      2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299,
      2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309,
-     2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317,   12,   12,
-       12,   36,   36,   36,   80,   99,   80,  101,  101,  101,
-      117,  117,  117,  191,  878,  191,  214,  214,  214,  877,
-      876,  875,  874,  873,  872,  871,  870,  869,  868,  867,
-      866,  865,  864,  863,  862,  861,  857,  856,  855,  854,
-      853,  852,  851,  850,  849,  848,  847,  846,  842,  841,
-
-      840,  839,  838,  837,  836,  835,  834,  833,  832,  831,
-      830,  829,  828,  827,  826,  825,  824,  823,  822,  821,
-      820,  817,  816,  815,  814,  813,  812,  811,  810,  809,
-      808,  807,  806,  805,  804,  803,  802,  801,  800,  799,
-      798,  797,  796,  795,  794,  793,  792,  791,  790,  789,
-      786,  785,  784,  783,  782,  781,  780,  779,  778,  777,
-      776,  775,  774,  773,  772,  771,  770,  769,  768,  764,
-      758,  757,  756,  755,  754,  753,  752,  751,  750,  749,
-      748,  747,  746,  745,  744,  743,  742,  741,  740,  739,
-      738,  735,  734,  733,  732,  731,  730,  729,  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,  695,  694,  693,
-      692,  691,  690,  689,  688,  687,  686,  683,  682,  681,
-      680,  679,  678,  677,  676,  675,  674,  673,  672,  671,
-      670,  669,  668,  667,  666,  665,  664,  663,  662,  659,
-      658,  657,  656,  655,  654,  653,  652,  651,  650,  647,
-      646,  645,  636,  635,  634,  633,  632,  631,  630,  629,
-      628,  627,  626,  625,  624,  623,  621,  617,  616,  615,
-      614,  612,  611,  610,  607,  606,  605,  604,  603,  602,
-
-      601,  600,  599,  598,  597,  596,  595,  594,  593,  592,
-      591,  590,  587,  586,  585,  584,  583,  582,  581,  580,
-      577,  576,  573,  572,  571,  570,  567,  566,  562,  561,
-      560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
-      550,  549,  545,  544,  543,  540,  539,  538,  533,  532,
-      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
-      521,  516,  515,  514,  513,  512,  511,  510,  509,  508,
-      507,  506,  505,  504,  503,  502,  499,  498,  497,  496,
-      493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
-      483,  482,  481,  480,  478,  476,  475,  472,  470,  467,
-
-      464,  463,  462,  461,  460,  458,  457,  456,  455,  453,
-      452,  451,  448,  447,  446,  445,  444,  443,  442,  441,
-      440,  439,  438,  437,  436,  435,  432,  431,  430,  429,
-      428,  427,  426,  425,  424,  423,  422,  419,  418,  415,
-      414,  411,  410,  409,  408,  406,  405,  404,  403,  402,
-      401,  397,  396,  395,  394,  393,  392,  391,  388,  387,
-      386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
-      376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
-      366,  365,  364,  363,  362,  356,  355,  354,  353,  352,
-      351,  350,  349,  215,  343,  341,  338,  335,  332,  325,
-
-      324,  323,  322,  321,  319,  318,  314,  313,  312,  309,
-      308,  307,  303,  292,  289,  285,  284,  279,  278,  277,
-      274,  272,  271,  270,  269,  268,  267,  264,  263,  262,
-      259,  258,  257,  254,  253,  249,  248,  239,  238,  237,
-      236,  232,  231,  230,  226,  225,  224,  220,  215,  209,
-      203,  202,  199,  198,  189,  169,  146,  110,  107,  106,
-       43,  100,   98,   97,   88,   43, 2318,   11, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318
+     2310, 2311, 2312, 2313, 2314, 2315, 2316,   12,   12,   12,
+       36,   36,   36,   80,   99,   80,  101,  101,  101,  117,
+      117,  117,  191,  878,  191,  214,  214,  214,  877,  876,
+      875,  874,  873,  872,  871,  870,  869,  868,  867,  866,
+      865,  864,  863,  862,  861,  857,  856,  855,  854,  853,
+      852,  851,  850,  849,  848,  847,  846,  842,  841,  840,
+
+      839,  838,  837,  836,  835,  834,  833,  832,  831,  830,
+      829,  828,  827,  826,  825,  824,  823,  822,  821,  820,
+      817,  816,  815,  814,  813,  812,  811,  810,  809,  808,
+      807,  806,  805,  804,  803,  802,  801,  800,  799,  798,
+      797,  796,  795,  794,  793,  792,  791,  790,  789,  786,
+      785,  784,  783,  782,  781,  780,  779,  778,  777,  776,
+      775,  774,  773,  772,  771,  770,  769,  768,  764,  758,
+      757,  756,  755,  754,  753,  752,  751,  750,  749,  748,
+      747,  746,  745,  744,  743,  742,  741,  740,  739,  738,
+      735,  734,  733,  732,  731,  730,  729,  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,  695,  694,  693,  692,
+      691,  690,  689,  688,  687,  686,  683,  682,  681,  680,
+      679,  678,  677,  676,  675,  674,  673,  672,  671,  670,
+      669,  668,  667,  666,  665,  664,  663,  662,  659,  658,
+      657,  656,  655,  654,  653,  652,  651,  650,  647,  646,
+      645,  636,  635,  634,  633,  632,  631,  630,  629,  628,
+      627,  626,  625,  624,  623,  621,  617,  616,  615,  614,
+      612,  611,  610,  607,  606,  605,  604,  603,  602,  601,
+
+      600,  599,  598,  597,  596,  595,  594,  593,  592,  591,
+      590,  587,  586,  585,  584,  583,  582,  581,  580,  577,
+      576,  573,  572,  571,  570,  567,  566,  562,  561,  560,
+      559,  558,  557,  556,  555,  554,  553,  552,  551,  550,
+      549,  545,  544,  543,  540,  539,  538,  533,  532,  531,
+      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
+      516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
+      506,  505,  504,  503,  502,  499,  498,  497,  496,  493,
+      492,  491,  490,  489,  488,  487,  486,  485,  484,  483,
+      482,  481,  480,  478,  476,  475,  472,  470,  467,  464,
+
+      463,  462,  461,  460,  458,  457,  456,  455,  453,  452,
+      451,  448,  447,  446,  445,  444,  443,  442,  441,  440,
+      439,  438,  437,  436,  435,  432,  431,  430,  429,  428,
+      427,  426,  425,  424,  423,  422,  419,  418,  415,  414,
+      411,  410,  409,  408,  406,  405,  404,  403,  402,  401,
+      397,  396,  395,  394,  393,  392,  391,  388,  387,  386,
+      385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
+      375,  374,  373,  372,  371,  370,  369,  368,  367,  366,
+      365,  364,  363,  362,  356,  355,  354,  353,  352,  351,
+      350,  349,  215,  343,  341,  338,  335,  332,  325,  324,
+
+      323,  322,  321,  319,  318,  314,  313,  312,  309,  308,
+      307,  303,  292,  289,  285,  284,  279,  278,  277,  274,
+      272,  271,  270,  269,  268,  267,  264,  263,  262,  259,
+      258,  257,  254,  253,  249,  248,  239,  238,  237,  236,
+      232,  231,  230,  226,  225,  224,  220,  215,  209,  203,
+      202,  199,  198,  189,  169,  146,  110,  107,  106,   43,
+      100,   98,   97,   88,   43, 2317,   11, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317
     } ;
 
-static const flex_int16_t yy_chk[2845] =
+static const flex_int16_t yy_chk[2844] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,   44,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1985,176 +1985,176 @@ static const flex_int16_t yy_chk[2845] =
      1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
      1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278,
 
-     1279, 1280, 1281, 1282, 1283, 1284, 1285, 1239, 1286, 1287,
-     1288, 1290, 1291, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
-     1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
-     1311, 1312, 1313, 1314, 1315, 1317, 1316, 1318, 1319, 1320,
-     1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1331,
-     1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1314,
-     1342, 1313, 1316, 1315, 1317, 1343, 1344, 1345, 1346, 1347,
-     1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
-     1358, 1359, 1360, 1361, 1364, 1366, 1368, 1369, 1370, 1371,
+     1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
+     1290, 1291, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
+     1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
+     1312, 1313, 1314, 1315, 1317, 1316, 1318, 1319, 1320, 1321,
+     1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1331, 1332,
+     1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1314, 1342,
+     1313, 1316, 1315, 1317, 1343, 1344, 1345, 1346, 1347, 1348,
+     1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
+     1359, 1360, 1361, 1364, 1366, 1367, 1368, 1369, 1370, 1371,
      1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
 
-     1382, 1383, 1385, 1387, 1388, 1390, 1391, 1392, 1393, 1394,
-     1395, 1397, 1398, 1400, 1402, 1404, 1405, 1406, 1407, 1408,
+     1382, 1384, 1386, 1387, 1389, 1390, 1391, 1392, 1393, 1394,
+     1396, 1397, 1399, 1401, 1403, 1404, 1405, 1406, 1407, 1408,
      1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418,
-     1419, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1430, 1431,
+     1420, 1421, 1422, 1423, 1424, 1425, 1426, 1429, 1430, 1431,
      1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
-     1442, 1444, 1445, 1446, 1448, 1449, 1450, 1451, 1452, 1453,
+     1443, 1444, 1445, 1447, 1448, 1449, 1450, 1451, 1452, 1453,
      1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463,
-     1464, 1465, 1466, 1467, 1439, 1440, 1468, 1469, 1441, 1470,
-     1471, 1414, 1472, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
+     1464, 1465, 1466, 1438, 1439, 1467, 1468, 1440, 1469, 1470,
+     1413, 1471, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
      1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490,
 
-     1491, 1448, 1492, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
-     1501, 1502, 1503, 1496, 1504, 1507, 1508, 1509, 1510, 1511,
+     1447, 1491, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
+     1501, 1502, 1495, 1503, 1506, 1507, 1508, 1509, 1510, 1511,
      1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
-     1522, 1524, 1525, 1526, 1527, 1528, 1529, 1533, 1531, 1527,
-     1531, 1534, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
-     1545, 1546, 1547, 1548, 1549, 1550, 1553, 1551, 1554, 1555,
+     1523, 1524, 1525, 1526, 1527, 1528, 1532, 1530, 1526, 1530,
+     1533, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
+     1545, 1546, 1547, 1548, 1549, 1552, 1550, 1553, 1554, 1556,
      1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
-     1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1550,
-     1549, 1576, 1548, 1551, 1578, 1579, 1581, 1582, 1583, 1584,
-     1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1594, 1596,
-
-     1598, 1599, 1601, 1602, 1603, 1604, 1605, 1550, 1606, 1607,
-     1608, 1609, 1610, 1612, 1613, 1614, 1615, 1616, 1617, 1618,
-     1620, 1621, 1625, 1626, 1628, 1629, 1630, 1631, 1633, 1634,
-     1633, 1635, 1636, 1633, 1637, 1638, 1633, 1639, 1640, 1641,
-     1642, 1643, 1644, 1645, 1647, 1649, 1650, 1651, 1652, 1654,
-     1653, 1655, 1657, 1658, 1659, 1661, 1662, 1663, 1664, 1665,
-     1666, 1667, 1668, 1670, 1671, 1672, 1669, 1673, 1674, 1675,
-     1676, 1678, 1679, 1680, 1651, 1652, 1653, 1669, 1654, 1655,
-     1681, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
+     1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1549, 1548,
+     1575, 1547, 1550, 1577, 1578, 1580, 1581, 1582, 1583, 1584,
+     1585, 1586, 1587, 1588, 1589, 1590, 1591, 1593, 1595, 1597,
+
+     1598, 1600, 1601, 1602, 1603, 1604, 1549, 1605, 1606, 1607,
+     1608, 1609, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1619,
+     1620, 1624, 1625, 1627, 1628, 1629, 1630, 1632, 1633, 1632,
+     1634, 1635, 1632, 1636, 1637, 1632, 1638, 1639, 1640, 1641,
+     1642, 1643, 1644, 1646, 1648, 1649, 1650, 1651, 1653, 1652,
+     1654, 1656, 1657, 1658, 1660, 1661, 1662, 1663, 1664, 1665,
+     1666, 1667, 1669, 1670, 1671, 1668, 1672, 1673, 1674, 1675,
+     1677, 1678, 1679, 1650, 1651, 1652, 1668, 1653, 1654, 1680,
+     1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1690,
      1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
 
      1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
      1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
-     1721, 1722, 1723, 1724, 1725, 1726, 1728, 1729, 1730, 1731,
-     1732, 1733, 1734, 1735, 1737, 1738, 1739, 1741, 1742, 1744,
-     1743, 1745, 1746, 1747, 1750, 1751, 1752, 1755, 1756, 1757,
-     1758, 1759, 1692, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
-     1767, 1768, 1771, 1772, 1742, 1773, 1741, 1743, 1744, 1770,
-     1745, 1774, 1775, 1776, 1770, 1777, 1778, 1779, 1781, 1782,
-     1783, 1785, 1786, 1788, 1789, 1790, 1792, 1793, 1794, 1795,
-     1796, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
+     1721, 1722, 1723, 1724, 1725, 1727, 1728, 1729, 1730, 1731,
+     1732, 1733, 1734, 1736, 1737, 1738, 1740, 1741, 1743, 1742,
+     1744, 1745, 1746, 1749, 1750, 1751, 1754, 1755, 1756, 1757,
+     1758, 1691, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
+     1767, 1770, 1771, 1741, 1772, 1740, 1742, 1743, 1769, 1744,
+     1773, 1774, 1775, 1769, 1776, 1777, 1778, 1780, 1781, 1782,
+     1784, 1785, 1787, 1788, 1789, 1791, 1792, 1793, 1794, 1795,
+     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, 1827, 1828,
-     1829, 1830, 1831, 1833, 1834, 1835, 1837, 1838, 1839, 1840,
-     1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850,
-     1852, 1853, 1854, 1855, 1856, 1827, 1829, 1857, 1859, 1860,
-     1861, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
-     1872, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882,
+     1818, 1819, 1820, 1821, 1822, 1823, 1824, 1826, 1827, 1828,
+     1829, 1830, 1832, 1833, 1834, 1836, 1837, 1838, 1839, 1840,
+     1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1851,
+     1852, 1853, 1854, 1855, 1826, 1828, 1856, 1858, 1859, 1860,
+     1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
+     1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882,
      1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
-     1893, 1894, 1896, 1898, 1899, 1900, 1894, 1901, 1902, 1904,
-     1907, 1905, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916,
-
-     1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
-     1929, 1930, 1931, 1932, 1933, 1934, 1904, 1905, 1935, 1936,
-     1937, 1939, 1940, 1941, 1942, 1944, 1945, 1946, 1947, 1948,
-     1949, 1950, 1951, 1952, 1953, 1954, 1956, 1957, 1958, 1959,
-     1961, 1963, 1964, 1965, 1966, 1969, 1970, 1971, 1972, 1973,
-     1974, 1975, 1976, 1977, 1978, 1979, 1980, 1982, 1983, 1984,
-     1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-     1997, 1998, 1970, 1971, 1999, 1972, 2000, 2001, 2002, 2003,
-     2004, 2005, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2015,
-     2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2022,
+     1893, 1895, 1897, 1898, 1899, 1893, 1900, 1901, 1903, 1906,
+     1904, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1917,
+
+     1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1928,
+     1929, 1930, 1931, 1932, 1933, 1903, 1904, 1934, 1935, 1936,
+     1938, 1939, 1940, 1941, 1943, 1944, 1945, 1946, 1947, 1948,
+     1949, 1950, 1951, 1952, 1953, 1955, 1956, 1957, 1958, 1960,
+     1962, 1963, 1964, 1965, 1968, 1969, 1970, 1971, 1972, 1973,
+     1974, 1975, 1976, 1977, 1978, 1979, 1981, 1982, 1983, 1984,
+     1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1996,
+     1997, 1969, 1970, 1998, 1971, 1999, 2000, 2001, 2002, 2003,
+     2004, 2005, 2007, 2008, 2010, 2011, 2012, 2013, 2014, 2015,
+     2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2021, 2024,
 
      2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
-     2035, 2036, 2037, 2038, 2039, 2041, 2042, 2043, 2044, 2045,
-     2046, 2047, 2048, 2049, 2050, 2051, 2052, 2054, 2026, 2028,
-     2056, 2058, 2060, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
-     2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
-     2080, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090,
-     2091, 2092, 2093, 2095, 2096, 2097, 2099, 2100, 2101, 2102,
-     2103, 2105, 2106, 2108, 2110, 2078, 2112, 2080, 2114, 2115,
-     2116, 2117, 2118, 2119, 2120, 2121, 2123, 2124, 2126, 2125,
-     2127, 2128, 2129, 2130, 2131, 2132, 2134, 2135, 2136, 2137,
-
-     2138, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
-     2149, 2150, 2151, 2152, 2124, 2125, 2153, 2155, 2156, 2157,
-     2158, 2159, 2160, 2161, 2162, 2163, 2165, 2166, 2167, 2168,
+     2035, 2036, 2037, 2038, 2040, 2041, 2042, 2043, 2044, 2045,
+     2046, 2047, 2048, 2049, 2050, 2051, 2053, 2025, 2027, 2055,
+     2057, 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
+     2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2079,
+     2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090,
+     2091, 2092, 2094, 2095, 2096, 2098, 2099, 2100, 2101, 2102,
+     2104, 2105, 2107, 2109, 2077, 2111, 2079, 2113, 2114, 2115,
+     2116, 2117, 2118, 2119, 2120, 2122, 2123, 2125, 2124, 2126,
+     2127, 2128, 2129, 2130, 2131, 2133, 2134, 2135, 2136, 2137,
+
+     2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
+     2149, 2150, 2151, 2123, 2124, 2152, 2154, 2155, 2156, 2157,
+     2158, 2159, 2160, 2161, 2162, 2164, 2165, 2166, 2167, 2168,
      2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
-     2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2160, 2187,
-     2188, 2189, 2190, 2191, 2192, 2193, 2196, 2197, 2198, 2200,
-     2201, 2202, 2203, 2205, 2206, 2207, 2208, 2214, 2218, 2219,
-     2220, 2221, 2222, 2223, 2224, 2226, 2227, 2229, 2230, 2231,
-     2232, 2233, 2234, 2235, 2236, 2238, 2239, 2240, 2241, 2242,
-     2243, 2245, 2246, 2248, 2250, 2251, 2252, 2253, 2254, 2255,
-
-     2257, 2258, 2259, 2260, 2261, 2260, 2262, 2263, 2264, 2266,
-     2267, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
-     2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2288, 2289,
-     2290, 2291, 2294, 2295, 2296, 2297, 2299, 2300, 2302, 2304,
-     2306, 2307, 2308, 2309, 2310, 2311, 2312, 2314, 2319, 2319,
-     2319, 2320, 2320, 2320, 2321, 2322, 2321, 2323, 2323, 2323,
-     2324, 2324, 2324, 2325,  735, 2325, 2326, 2326, 2326,  734,
-      733,  732,  731,  730,  729,  728,  726,  725,  724,  723,
-      722,  721,  720,  719,  718,  717,  715,  714,  712,  711,
-      710,  709,  708,  707,  706,  705,  704,  703,  701,  700,
-
-      699,  698,  697,  695,  694,  692,  691,  690,  689,  688,
-      687,  686,  685,  684,  683,  682,  681,  680,  679,  678,
-      677,  675,  674,  673,  672,  671,  670,  668,  667,  666,
-      665,  664,  663,  662,  661,  659,  658,  657,  656,  655,
-      654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
-      643,  642,  641,  640,  639,  638,  637,  636,  635,  634,
-      633,  632,  631,  630,  629,  628,  627,  626,  625,  621,
-      613,  612,  611,  610,  609,  607,  605,  603,  601,  600,
-      599,  598,  597,  596,  595,  594,  593,  592,  591,  590,
-      589,  587,  586,  585,  584,  583,  582,  581,  579,  578,
-
-      577,  576,  575,  574,  573,  572,  571,  570,  569,  568,
-      567,  565,  564,  562,  561,  560,  559,  558,  557,  556,
-      555,  554,  553,  552,  551,  550,  549,  547,  546,  544,
-      543,  542,  541,  540,  539,  538,  537,  535,  534,  533,
-      532,  531,  530,  529,  528,  527,  526,  525,  524,  523,
-      522,  521,  520,  519,  518,  516,  515,  514,  513,  511,
-      510,  509,  508,  507,  506,  505,  504,  502,  501,  499,
-      498,  497,  495,  493,  492,  491,  490,  489,  488,  486,
-      485,  484,  483,  482,  481,  480,  478,  473,  471,  470,
-      469,  467,  464,  463,  461,  460,  459,  458,  457,  456,
-
-      455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
-      445,  444,  442,  441,  440,  439,  438,  437,  436,  435,
-      433,  432,  430,  429,  428,  427,  425,  424,  422,  421,
-      420,  419,  418,  417,  416,  415,  414,  413,  412,  411,
-      410,  409,  405,  404,  403,  401,  400,  399,  397,  396,
-      395,  394,  393,  392,  391,  390,  389,  388,  387,  386,
-      385,  383,  382,  381,  380,  379,  378,  377,  376,  375,
-      374,  373,  372,  371,  370,  369,  367,  366,  365,  364,
-      362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
-      352,  351,  350,  349,  347,  344,  342,  337,  335,  332,
-
-      325,  324,  323,  322,  321,  319,  318,  317,  316,  314,
-      313,  312,  310,  309,  308,  307,  306,  305,  304,  303,
-      302,  301,  300,  299,  298,  297,  295,  294,  293,  292,
-      291,  290,  289,  288,  287,  286,  285,  283,  282,  280,
-      279,  277,  276,  275,  274,  272,  271,  270,  269,  268,
-      267,  265,  264,  263,  262,  261,  260,  259,  257,  256,
-      254,  253,  252,  251,  250,  249,  248,  247,  246,  245,
-      244,  243,  242,  241,  240,  239,  238,  237,  236,  235,
-      234,  233,  232,  231,  230,  227,  226,  225,  224,  223,
-      222,  221,  220,  214,  212,  210,  207,  202,  198,  190,
-
-      189,  188,  187,  186,  184,  183,  180,  179,  178,  176,
-      175,  174,  172,  170,  168,  166,  165,  163,  162,  161,
-      159,  157,  156,  155,  154,  153,  152,  150,  149,  148,
-      146,  145,  144,  142,  141,  139,  138,  134,  133,  132,
-      131,  129,  128,  127,  125,  124,  123,  121,  117,  112,
-      107,  106,   99,   98,   78,   73,   67,   53,   50,   49,
-       43,   41,   39,   38,   24,   14,   11, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318,
-     2318, 2318, 2318, 2318
+     2179, 2180, 2181, 2182, 2183, 2184, 2185, 2159, 2186, 2187,
+     2188, 2189, 2190, 2191, 2192, 2195, 2196, 2197, 2199, 2200,
+     2201, 2202, 2204, 2205, 2206, 2207, 2213, 2217, 2218, 2219,
+     2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231,
+     2232, 2233, 2234, 2235, 2237, 2238, 2239, 2240, 2241, 2242,
+     2244, 2245, 2247, 2249, 2250, 2251, 2252, 2253, 2254, 2256,
+
+     2257, 2258, 2259, 2260, 2259, 2261, 2262, 2263, 2265, 2266,
+     2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
+     2279, 2280, 2281, 2282, 2283, 2284, 2285, 2287, 2288, 2289,
+     2290, 2293, 2294, 2295, 2296, 2298, 2299, 2301, 2303, 2305,
+     2306, 2307, 2308, 2309, 2310, 2311, 2313, 2318, 2318, 2318,
+     2319, 2319, 2319, 2320, 2321, 2320, 2322, 2322, 2322, 2323,
+     2323, 2323, 2324,  735, 2324, 2325, 2325, 2325,  734,  733,
+      732,  731,  730,  729,  728,  726,  725,  724,  723,  722,
+      721,  720,  719,  718,  717,  715,  714,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  703,  701,  700,  699,
+
+      698,  697,  695,  694,  692,  691,  690,  689,  688,  687,
+      686,  685,  684,  683,  682,  681,  680,  679,  678,  677,
+      675,  674,  673,  672,  671,  670,  668,  667,  666,  665,
+      664,  663,  662,  661,  659,  658,  657,  656,  655,  654,
+      653,  652,  651,  650,  649,  648,  647,  646,  645,  643,
+      642,  641,  640,  639,  638,  637,  636,  635,  634,  633,
+      632,  631,  630,  629,  628,  627,  626,  625,  621,  613,
+      612,  611,  610,  609,  607,  605,  603,  601,  600,  599,
+      598,  597,  596,  595,  594,  593,  592,  591,  590,  589,
+      587,  586,  585,  584,  583,  582,  581,  579,  578,  577,
+
+      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
+      565,  564,  562,  561,  560,  559,  558,  557,  556,  555,
+      554,  553,  552,  551,  550,  549,  547,  546,  544,  543,
+      542,  541,  540,  539,  538,  537,  535,  534,  533,  532,
+      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
+      521,  520,  519,  518,  516,  515,  514,  513,  511,  510,
+      509,  508,  507,  506,  505,  504,  502,  501,  499,  498,
+      497,  495,  493,  492,  491,  490,  489,  488,  486,  485,
+      484,  483,  482,  481,  480,  478,  473,  471,  470,  469,
+      467,  464,  463,  461,  460,  459,  458,  457,  456,  455,
+
+      454,  453,  452,  451,  450,  449,  448,  447,  446,  445,
+      444,  442,  441,  440,  439,  438,  437,  436,  435,  433,
+      432,  430,  429,  428,  427,  425,  424,  422,  421,  420,
+      419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
+      409,  405,  404,  403,  401,  400,  399,  397,  396,  395,
+      394,  393,  392,  391,  390,  389,  388,  387,  386,  385,
+      383,  382,  381,  380,  379,  378,  377,  376,  375,  374,
+      373,  372,  371,  370,  369,  367,  366,  365,  364,  362,
+      361,  360,  359,  358,  357,  356,  355,  354,  353,  352,
+      351,  350,  349,  347,  344,  342,  337,  335,  332,  325,
+
+      324,  323,  322,  321,  319,  318,  317,  316,  314,  313,
+      312,  310,  309,  308,  307,  306,  305,  304,  303,  302,
+      301,  300,  299,  298,  297,  295,  294,  293,  292,  291,
+      290,  289,  288,  287,  286,  285,  283,  282,  280,  279,
+      277,  276,  275,  274,  272,  271,  270,  269,  268,  267,
+      265,  264,  263,  262,  261,  260,  259,  257,  256,  254,
+      253,  252,  251,  250,  249,  248,  247,  246,  245,  244,
+      243,  242,  241,  240,  239,  238,  237,  236,  235,  234,
+      233,  232,  231,  230,  227,  226,  225,  224,  223,  222,
+      221,  220,  214,  212,  210,  207,  202,  198,  190,  189,
+
+      188,  187,  186,  184,  183,  180,  179,  178,  176,  175,
+      174,  172,  170,  168,  166,  165,  163,  162,  161,  159,
+      157,  156,  155,  154,  153,  152,  150,  149,  148,  146,
+      145,  144,  142,  141,  139,  138,  134,  133,  132,  131,
+      129,  128,  127,  125,  124,  123,  121,  117,  112,  107,
+      106,   99,   98,   78,   73,   67,   53,   50,   49,   43,
+       41,   39,   38,   24,   14,   11, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+     2317, 2317, 2317
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2163,7 +2163,7 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[238] =
+static const flex_int16_t yy_rule_linenum[237] =
     {   0,
       149,  151,  153,  158,  159,  164,  165,  166,  178,  181,
       186,  193,  202,  211,  220,  229,  238,  247,  256,  265,
@@ -2188,9 +2188,9 @@ static const flex_int16_t yy_rule_linenum[238] =
      1993, 2002, 2011, 2020, 2029, 2038, 2047, 2056, 2065, 2074,
 
      2083, 2092, 2101, 2110, 2119, 2128, 2137, 2146, 2155, 2164,
-     2173, 2182, 2191, 2200, 2209, 2218, 2227, 2236, 2245, 2346,
-     2362, 2411, 2419, 2434, 2435, 2436, 2437, 2438, 2439, 2441,
-     2459, 2472, 2477, 2481, 2483, 2485, 2487
+     2173, 2182, 2191, 2200, 2209, 2218, 2227, 2236, 2337, 2353,
+     2402, 2410, 2425, 2426, 2427, 2428, 2429, 2430, 2432, 2450,
+     2463, 2468, 2472, 2474, 2476, 2478
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2631,13 +2631,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 >= 2319 )
+                               if ( yy_current_state >= 2318 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 2318 );
+               while ( yy_current_state != 2317 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2656,13 +2656,13 @@ do_action:      /* This label is used only to access EOF actions. */
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
-                       else if ( yy_act < 238 )
+                       else if ( yy_act < 237 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 238 )
+                       else if ( yy_act == 237 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 239 )
+                       else if ( yy_act == 238 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -4995,18 +4995,6 @@ YY_RULE_SETUP
 case 182:
 YY_RULE_SETUP
 #line 1912 "dhcp6_lexer.ll"
-{
-    switch(driver.ctx_) {
-    case isc::dhcp::Parser6Context::RELAY:
-        return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
-    default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
-    }
-}
-       YY_BREAK
-case 183:
-YY_RULE_SETUP
-#line 1921 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5016,9 +5004,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 184:
+case 183:
 YY_RULE_SETUP
-#line 1930 "dhcp6_lexer.ll"
+#line 1921 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -5028,9 +5016,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 185:
+case 184:
 YY_RULE_SETUP
-#line 1939 "dhcp6_lexer.ll"
+#line 1930 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -5040,9 +5028,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 186:
+case 185:
 YY_RULE_SETUP
-#line 1948 "dhcp6_lexer.ll"
+#line 1939 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5052,9 +5040,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 187:
+case 186:
 YY_RULE_SETUP
-#line 1957 "dhcp6_lexer.ll"
+#line 1948 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -5064,9 +5052,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 188:
+case 187:
 YY_RULE_SETUP
-#line 1966 "dhcp6_lexer.ll"
+#line 1957 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -5076,9 +5064,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 189:
+case 188:
 YY_RULE_SETUP
-#line 1975 "dhcp6_lexer.ll"
+#line 1966 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -5088,9 +5076,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 190:
+case 189:
 YY_RULE_SETUP
-#line 1984 "dhcp6_lexer.ll"
+#line 1975 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -5100,9 +5088,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 191:
+case 190:
 YY_RULE_SETUP
-#line 1993 "dhcp6_lexer.ll"
+#line 1984 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -5112,9 +5100,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 192:
+case 191:
 YY_RULE_SETUP
-#line 2002 "dhcp6_lexer.ll"
+#line 1993 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -5124,9 +5112,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 193:
+case 192:
 YY_RULE_SETUP
-#line 2011 "dhcp6_lexer.ll"
+#line 2002 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -5136,9 +5124,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 194:
+case 193:
 YY_RULE_SETUP
-#line 2020 "dhcp6_lexer.ll"
+#line 2011 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5148,9 +5136,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 195:
+case 194:
 YY_RULE_SETUP
-#line 2029 "dhcp6_lexer.ll"
+#line 2020 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5160,9 +5148,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 196:
+case 195:
 YY_RULE_SETUP
-#line 2038 "dhcp6_lexer.ll"
+#line 2029 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5172,9 +5160,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 197:
+case 196:
 YY_RULE_SETUP
-#line 2047 "dhcp6_lexer.ll"
+#line 2038 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5184,9 +5172,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 198:
+case 197:
 YY_RULE_SETUP
-#line 2056 "dhcp6_lexer.ll"
+#line 2047 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5196,9 +5184,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 199:
+case 198:
 YY_RULE_SETUP
-#line 2065 "dhcp6_lexer.ll"
+#line 2056 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5208,9 +5196,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 200:
+case 199:
 YY_RULE_SETUP
-#line 2074 "dhcp6_lexer.ll"
+#line 2065 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -5220,9 +5208,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 201:
+case 200:
 YY_RULE_SETUP
-#line 2083 "dhcp6_lexer.ll"
+#line 2074 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5232,9 +5220,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 202:
+case 201:
 YY_RULE_SETUP
-#line 2092 "dhcp6_lexer.ll"
+#line 2083 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5244,9 +5232,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 203:
+case 202:
 YY_RULE_SETUP
-#line 2101 "dhcp6_lexer.ll"
+#line 2092 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5256,9 +5244,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 204:
+case 203:
 YY_RULE_SETUP
-#line 2110 "dhcp6_lexer.ll"
+#line 2101 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5268,9 +5256,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 205:
+case 204:
 YY_RULE_SETUP
-#line 2119 "dhcp6_lexer.ll"
+#line 2110 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING:
@@ -5280,9 +5268,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 206:
+case 205:
 YY_RULE_SETUP
-#line 2128 "dhcp6_lexer.ll"
+#line 2119 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5292,9 +5280,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 207:
+case 206:
 YY_RULE_SETUP
-#line 2137 "dhcp6_lexer.ll"
+#line 2128 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -5304,9 +5292,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 208:
+case 207:
 YY_RULE_SETUP
-#line 2146 "dhcp6_lexer.ll"
+#line 2137 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -5316,9 +5304,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 209:
+case 208:
 YY_RULE_SETUP
-#line 2155 "dhcp6_lexer.ll"
+#line 2146 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5328,9 +5316,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 210:
+case 209:
 YY_RULE_SETUP
-#line 2164 "dhcp6_lexer.ll"
+#line 2155 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5340,9 +5328,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 211:
+case 210:
 YY_RULE_SETUP
-#line 2173 "dhcp6_lexer.ll"
+#line 2164 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5352,9 +5340,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 212:
+case 211:
 YY_RULE_SETUP
-#line 2182 "dhcp6_lexer.ll"
+#line 2173 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL:
@@ -5364,9 +5352,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 213:
+case 212:
 YY_RULE_SETUP
-#line 2191 "dhcp6_lexer.ll"
+#line 2182 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5376,9 +5364,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 214:
+case 213:
 YY_RULE_SETUP
-#line 2200 "dhcp6_lexer.ll"
+#line 2191 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5388,9 +5376,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 215:
+case 214:
 YY_RULE_SETUP
-#line 2209 "dhcp6_lexer.ll"
+#line 2200 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5400,9 +5388,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 216:
+case 215:
 YY_RULE_SETUP
-#line 2218 "dhcp6_lexer.ll"
+#line 2209 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5412,9 +5400,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 217:
+case 216:
 YY_RULE_SETUP
-#line 2227 "dhcp6_lexer.ll"
+#line 2218 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -5424,9 +5412,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 218:
+case 217:
 YY_RULE_SETUP
-#line 2236 "dhcp6_lexer.ll"
+#line 2227 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::COMPATIBILITY:
@@ -5436,9 +5424,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 219:
+case 218:
 YY_RULE_SETUP
-#line 2245 "dhcp6_lexer.ll"
+#line 2236 "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.
@@ -5540,10 +5528,10 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 220:
-/* rule 220 can match eol */
+case 219:
+/* rule 219 can match eol */
 YY_RULE_SETUP
-#line 2346 "dhcp6_lexer.ll"
+#line 2337 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     std::string raw(yytext+1);
@@ -5560,10 +5548,10 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 221:
-/* rule 221 can match eol */
+case 220:
+/* rule 220 can match eol */
 YY_RULE_SETUP
-#line 2362 "dhcp6_lexer.ll"
+#line 2353 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     std::string raw(yytext+1);
@@ -5613,9 +5601,9 @@ YY_RULE_SETUP
                  pos);
 }
        YY_BREAK
-case 222:
+case 221:
 YY_RULE_SETUP
-#line 2411 "dhcp6_lexer.ll"
+#line 2402 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     std::string raw(yytext+1);
@@ -5624,9 +5612,9 @@ YY_RULE_SETUP
                  raw.size() + 1);
 }
        YY_BREAK
-case 223:
+case 222:
 YY_RULE_SETUP
-#line 2419 "dhcp6_lexer.ll"
+#line 2410 "dhcp6_lexer.ll"
 {
     /* Bad string with an open unicode escape at the end */
     std::string raw(yytext+1);
@@ -5642,39 +5630,39 @@ YY_RULE_SETUP
                  pos + 1);
 }
        YY_BREAK
-case 224:
+case 223:
 YY_RULE_SETUP
-#line 2434 "dhcp6_lexer.ll"
+#line 2425 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 225:
+case 224:
 YY_RULE_SETUP
-#line 2435 "dhcp6_lexer.ll"
+#line 2426 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 226:
+case 225:
 YY_RULE_SETUP
-#line 2436 "dhcp6_lexer.ll"
+#line 2427 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 227:
+case 226:
 YY_RULE_SETUP
-#line 2437 "dhcp6_lexer.ll"
+#line 2428 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 228:
+case 227:
 YY_RULE_SETUP
-#line 2438 "dhcp6_lexer.ll"
+#line 2429 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 229:
+case 228:
 YY_RULE_SETUP
-#line 2439 "dhcp6_lexer.ll"
+#line 2430 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 230:
+case 229:
 YY_RULE_SETUP
-#line 2441 "dhcp6_lexer.ll"
+#line 2432 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -5693,9 +5681,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 231:
+case 230:
 YY_RULE_SETUP
-#line 2459 "dhcp6_lexer.ll"
+#line 2450 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -5709,43 +5697,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 232:
+case 231:
 YY_RULE_SETUP
-#line 2472 "dhcp6_lexer.ll"
+#line 2463 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 233:
+case 232:
 YY_RULE_SETUP
-#line 2477 "dhcp6_lexer.ll"
+#line 2468 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 234:
+case 233:
 YY_RULE_SETUP
-#line 2481 "dhcp6_lexer.ll"
+#line 2472 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 235:
+case 234:
 YY_RULE_SETUP
-#line 2483 "dhcp6_lexer.ll"
+#line 2474 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 236:
+case 235:
 YY_RULE_SETUP
-#line 2485 "dhcp6_lexer.ll"
+#line 2476 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 237:
+case 236:
 YY_RULE_SETUP
-#line 2487 "dhcp6_lexer.ll"
+#line 2478 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 2489 "dhcp6_lexer.ll"
+#line 2480 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -5769,12 +5757,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 238:
+case 237:
 YY_RULE_SETUP
-#line 2512 "dhcp6_lexer.ll"
+#line 2503 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 5777 "dhcp6_lexer.cc"
+#line 5765 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -6093,7 +6081,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 >= 2319 )
+                       if ( yy_current_state >= 2318 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -6126,11 +6114,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 >= 2319 )
+               if ( yy_current_state >= 2318 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 2318);
+       yy_is_jam = (yy_current_state == 2317);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -6879,7 +6867,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 2512 "dhcp6_lexer.ll"
+#line 2503 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index e18c3412b4fdc9bd647c394442d6b0a7e35b71b0..457646d1ab269b01b6c0619e8dcc59c11bbcf679 100644 (file)
@@ -407,79 +407,79 @@ namespace isc { namespace dhcp {
         switch (yykind)
     {
       case symbol_kind::S_STRING: // "constant string"
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < std::string > (); }
 #line 413 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_INTEGER: // "integer"
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < int64_t > (); }
 #line 419 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_FLOAT: // "floating point"
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < double > (); }
 #line 425 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_BOOLEAN: // "boolean"
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < bool > (); }
 #line 431 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_value: // value
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 437 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_map_value: // map_value
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 443 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 449 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 455 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_db_type: // db_type
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 461 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_on_fail_mode: // on_fail_mode
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 467 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_hr_mode: // hr_mode
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 473 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_duid_type: // duid_type
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 479 "dhcp6_parser.cc"
         break;
 
       case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value
-#line 315 "dhcp6_parser.yy"
+#line 314 "dhcp6_parser.yy"
                  { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 485 "dhcp6_parser.cc"
         break;
@@ -760,133 +760,133 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2: // $@1: %empty
-#line 324 "dhcp6_parser.yy"
+#line 323 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 766 "dhcp6_parser.cc"
     break;
 
   case 4: // $@2: %empty
-#line 325 "dhcp6_parser.yy"
+#line 324 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.CONFIG; }
 #line 772 "dhcp6_parser.cc"
     break;
 
   case 6: // $@3: %empty
-#line 326 "dhcp6_parser.yy"
+#line 325 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.DHCP6; }
 #line 778 "dhcp6_parser.cc"
     break;
 
   case 8: // $@4: %empty
-#line 327 "dhcp6_parser.yy"
+#line 326 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 784 "dhcp6_parser.cc"
     break;
 
   case 10: // $@5: %empty
-#line 328 "dhcp6_parser.yy"
+#line 327 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.SUBNET6; }
 #line 790 "dhcp6_parser.cc"
     break;
 
   case 12: // $@6: %empty
-#line 329 "dhcp6_parser.yy"
+#line 328 "dhcp6_parser.yy"
                  { ctx.ctx_ = ctx.POOLS; }
 #line 796 "dhcp6_parser.cc"
     break;
 
   case 14: // $@7: %empty
-#line 330 "dhcp6_parser.yy"
+#line 329 "dhcp6_parser.yy"
                    { ctx.ctx_ = ctx.PD_POOLS; }
 #line 802 "dhcp6_parser.cc"
     break;
 
   case 16: // $@8: %empty
-#line 331 "dhcp6_parser.yy"
+#line 330 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 808 "dhcp6_parser.cc"
     break;
 
   case 18: // $@9: %empty
-#line 332 "dhcp6_parser.yy"
+#line 331 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.DHCP6; }
 #line 814 "dhcp6_parser.cc"
     break;
 
   case 20: // $@10: %empty
-#line 333 "dhcp6_parser.yy"
+#line 332 "dhcp6_parser.yy"
                       { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 820 "dhcp6_parser.cc"
     break;
 
   case 22: // $@11: %empty
-#line 334 "dhcp6_parser.yy"
+#line 333 "dhcp6_parser.yy"
                        { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 826 "dhcp6_parser.cc"
     break;
 
   case 24: // $@12: %empty
-#line 335 "dhcp6_parser.yy"
+#line 334 "dhcp6_parser.yy"
                          { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 832 "dhcp6_parser.cc"
     break;
 
   case 26: // $@13: %empty
-#line 336 "dhcp6_parser.yy"
+#line 335 "dhcp6_parser.yy"
                      { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 838 "dhcp6_parser.cc"
     break;
 
   case 28: // $@14: %empty
-#line 337 "dhcp6_parser.yy"
+#line 336 "dhcp6_parser.yy"
                           { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 844 "dhcp6_parser.cc"
     break;
 
   case 30: // value: "integer"
-#line 345 "dhcp6_parser.yy"
+#line 344 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 850 "dhcp6_parser.cc"
     break;
 
   case 31: // value: "floating point"
-#line 346 "dhcp6_parser.yy"
+#line 345 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 856 "dhcp6_parser.cc"
     break;
 
   case 32: // value: "boolean"
-#line 347 "dhcp6_parser.yy"
+#line 346 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 862 "dhcp6_parser.cc"
     break;
 
   case 33: // value: "constant string"
-#line 348 "dhcp6_parser.yy"
+#line 347 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 868 "dhcp6_parser.cc"
     break;
 
   case 34: // value: "null"
-#line 349 "dhcp6_parser.yy"
+#line 348 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 874 "dhcp6_parser.cc"
     break;
 
   case 35: // value: map2
-#line 350 "dhcp6_parser.yy"
+#line 349 "dhcp6_parser.yy"
             { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 880 "dhcp6_parser.cc"
     break;
 
   case 36: // value: list_generic
-#line 351 "dhcp6_parser.yy"
+#line 350 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 886 "dhcp6_parser.cc"
     break;
 
   case 37: // sub_json: value
-#line 354 "dhcp6_parser.yy"
+#line 353 "dhcp6_parser.yy"
                 {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
@@ -895,7 +895,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 38: // $@15: %empty
-#line 359 "dhcp6_parser.yy"
+#line 358 "dhcp6_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -906,7 +906,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 39: // map2: "{" $@15 map_content "}"
-#line 364 "dhcp6_parser.yy"
+#line 363 "dhcp6_parser.yy"
                              {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -916,13 +916,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 40: // map_value: map2
-#line 370 "dhcp6_parser.yy"
+#line 369 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 922 "dhcp6_parser.cc"
     break;
 
   case 43: // not_empty_map: "constant string" ":" value
-#line 377 "dhcp6_parser.yy"
+#line 376 "dhcp6_parser.yy"
                                   {
                   // map containing a single entry
                   ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location));
@@ -932,7 +932,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 44: // not_empty_map: not_empty_map "," "constant string" ":" value
-#line 382 "dhcp6_parser.yy"
+#line 381 "dhcp6_parser.yy"
                                                       {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -943,7 +943,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 45: // not_empty_map: not_empty_map ","
-#line 388 "dhcp6_parser.yy"
+#line 387 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -951,7 +951,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46: // $@16: %empty
-#line 393 "dhcp6_parser.yy"
+#line 392 "dhcp6_parser.yy"
                               {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -960,7 +960,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 47: // list_generic: "[" $@16 list_content "]"
-#line 396 "dhcp6_parser.yy"
+#line 395 "dhcp6_parser.yy"
                                {
     // list parsing complete. Put any sanity checking here
 }
@@ -968,7 +968,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 50: // not_empty_list: value
-#line 404 "dhcp6_parser.yy"
+#line 403 "dhcp6_parser.yy"
                       {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -977,7 +977,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51: // not_empty_list: not_empty_list "," value
-#line 408 "dhcp6_parser.yy"
+#line 407 "dhcp6_parser.yy"
                                            {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -986,7 +986,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52: // not_empty_list: not_empty_list ","
-#line 412 "dhcp6_parser.yy"
+#line 411 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -994,7 +994,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 53: // $@17: %empty
-#line 418 "dhcp6_parser.yy"
+#line 417 "dhcp6_parser.yy"
                               {
     // List parsing about to start
 }
@@ -1002,7 +1002,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 54: // list_strings: "[" $@17 list_strings_content "]"
-#line 420 "dhcp6_parser.yy"
+#line 419 "dhcp6_parser.yy"
                                        {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -1011,7 +1011,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57: // not_empty_list_strings: "constant string"
-#line 429 "dhcp6_parser.yy"
+#line 428 "dhcp6_parser.yy"
                                {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1020,7 +1020,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string"
-#line 433 "dhcp6_parser.yy"
+#line 432 "dhcp6_parser.yy"
                                                             {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -1029,7 +1029,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59: // not_empty_list_strings: not_empty_list_strings ","
-#line 437 "dhcp6_parser.yy"
+#line 436 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 60: // unknown_map_entry: "constant string" ":"
-#line 447 "dhcp6_parser.yy"
+#line 446 "dhcp6_parser.yy"
                                 {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
@@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 61: // $@18: %empty
-#line 456 "dhcp6_parser.yy"
+#line 455 "dhcp6_parser.yy"
                            {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1059,7 +1059,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 62: // syntax_map: "{" $@18 global_object "}"
-#line 461 "dhcp6_parser.yy"
+#line 460 "dhcp6_parser.yy"
                                {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1072,7 +1072,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 63: // $@19: %empty
-#line 471 "dhcp6_parser.yy"
+#line 470 "dhcp6_parser.yy"
                      {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1087,7 +1087,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}"
-#line 480 "dhcp6_parser.yy"
+#line 479 "dhcp6_parser.yy"
                                                     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1097,7 +1097,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 66: // global_object_comma: global_object ","
-#line 488 "dhcp6_parser.yy"
+#line 487 "dhcp6_parser.yy"
                                          {
     ctx.warnAboutExtraCommas(yystack_[0].location);
 }
@@ -1105,7 +1105,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 67: // $@20: %empty
-#line 494 "dhcp6_parser.yy"
+#line 493 "dhcp6_parser.yy"
                           {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1115,7 +1115,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 68: // sub_dhcp6: "{" $@20 global_params "}"
-#line 498 "dhcp6_parser.yy"
+#line 497 "dhcp6_parser.yy"
                                {
     // No global parameter is required
     // parsing completed
@@ -1124,7 +1124,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71: // global_params: global_params ","
-#line 505 "dhcp6_parser.yy"
+#line 504 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
@@ -1132,7 +1132,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 141: // $@21: %empty
-#line 583 "dhcp6_parser.yy"
+#line 582 "dhcp6_parser.yy"
                                {
     ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 142: // data_directory: "data-directory" $@21 ":" "constant string"
-#line 586 "dhcp6_parser.yy"
+#line 585 "dhcp6_parser.yy"
                {
     ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data-directory", datadir);
@@ -1151,7 +1151,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 143: // preferred_lifetime: "preferred-lifetime" ":" "integer"
-#line 592 "dhcp6_parser.yy"
+#line 591 "dhcp6_parser.yy"
                                                      {
     ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 144: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer"
-#line 598 "dhcp6_parser.yy"
+#line 597 "dhcp6_parser.yy"
                                                              {
     ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1171,7 +1171,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 145: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer"
-#line 604 "dhcp6_parser.yy"
+#line 603 "dhcp6_parser.yy"
                                                              {
     ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 146: // valid_lifetime: "valid-lifetime" ":" "integer"
-#line 610 "dhcp6_parser.yy"
+#line 609 "dhcp6_parser.yy"
                                              {
     ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1191,7 +1191,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 147: // min_valid_lifetime: "min-valid-lifetime" ":" "integer"
-#line 616 "dhcp6_parser.yy"
+#line 615 "dhcp6_parser.yy"
                                                      {
     ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 148: // max_valid_lifetime: "max-valid-lifetime" ":" "integer"
-#line 622 "dhcp6_parser.yy"
+#line 621 "dhcp6_parser.yy"
                                                      {
     ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1211,7 +1211,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 149: // renew_timer: "renew-timer" ":" "integer"
-#line 628 "dhcp6_parser.yy"
+#line 627 "dhcp6_parser.yy"
                                        {
     ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1221,7 +1221,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 150: // rebind_timer: "rebind-timer" ":" "integer"
-#line 634 "dhcp6_parser.yy"
+#line 633 "dhcp6_parser.yy"
                                          {
     ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1231,7 +1231,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 151: // calculate_tee_times: "calculate-tee-times" ":" "boolean"
-#line 640 "dhcp6_parser.yy"
+#line 639 "dhcp6_parser.yy"
                                                        {
     ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location));
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1241,7 +1241,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 152: // t1_percent: "t1-percent" ":" "floating point"
-#line 646 "dhcp6_parser.yy"
+#line 645 "dhcp6_parser.yy"
                                    {
     ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1251,7 +1251,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 153: // t2_percent: "t2-percent" ":" "floating point"
-#line 652 "dhcp6_parser.yy"
+#line 651 "dhcp6_parser.yy"
                                    {
     ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1261,7 +1261,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 154: // cache_threshold: "cache-threshold" ":" "floating point"
-#line 658 "dhcp6_parser.yy"
+#line 657 "dhcp6_parser.yy"
                                              {
     ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location));
     ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1271,7 +1271,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 155: // cache_max_age: "cache-max-age" ":" "integer"
-#line 664 "dhcp6_parser.yy"
+#line 663 "dhcp6_parser.yy"
                                            {
     ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location));
     ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1281,7 +1281,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 156: // decline_probation_period: "decline-probation-period" ":" "integer"
-#line 670 "dhcp6_parser.yy"
+#line 669 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location));
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1291,7 +1291,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 157: // ddns_send_updates: "ddns-send-updates" ":" "boolean"
-#line 676 "dhcp6_parser.yy"
+#line 675 "dhcp6_parser.yy"
                                                    {
     ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1301,7 +1301,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 158: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean"
-#line 682 "dhcp6_parser.yy"
+#line 681 "dhcp6_parser.yy"
                                                                {
     ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1311,7 +1311,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 159: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean"
-#line 688 "dhcp6_parser.yy"
+#line 687 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1321,7 +1321,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 160: // $@22: %empty
-#line 694 "dhcp6_parser.yy"
+#line 693 "dhcp6_parser.yy"
                                                    {
     ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
@@ -1330,7 +1330,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 161: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value
-#line 697 "dhcp6_parser.yy"
+#line 696 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1339,7 +1339,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 162: // ddns_replace_client_name_value: "when-present"
-#line 703 "dhcp6_parser.yy"
+#line 702 "dhcp6_parser.yy"
                  {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1347,7 +1347,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 163: // ddns_replace_client_name_value: "never"
-#line 706 "dhcp6_parser.yy"
+#line 705 "dhcp6_parser.yy"
           {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1355,7 +1355,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 164: // ddns_replace_client_name_value: "always"
-#line 709 "dhcp6_parser.yy"
+#line 708 "dhcp6_parser.yy"
            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1363,7 +1363,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 165: // ddns_replace_client_name_value: "when-not-present"
-#line 712 "dhcp6_parser.yy"
+#line 711 "dhcp6_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1371,7 +1371,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 166: // ddns_replace_client_name_value: "boolean"
-#line 715 "dhcp6_parser.yy"
+#line 714 "dhcp6_parser.yy"
             {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -1380,7 +1380,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 167: // $@23: %empty
-#line 721 "dhcp6_parser.yy"
+#line 720 "dhcp6_parser.yy"
                                              {
     ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1389,7 +1389,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 168: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string"
-#line 724 "dhcp6_parser.yy"
+#line 723 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-generated-prefix", s);
@@ -1399,7 +1399,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 169: // $@24: %empty
-#line 730 "dhcp6_parser.yy"
+#line 729 "dhcp6_parser.yy"
                                                {
     ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1408,7 +1408,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 170: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string"
-#line 733 "dhcp6_parser.yy"
+#line 732 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ddns-qualifying-suffix", s);
@@ -1418,7 +1418,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 171: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean"
-#line 739 "dhcp6_parser.yy"
+#line 738 "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)));
@@ -1428,7 +1428,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 172: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean"
-#line 748 "dhcp6_parser.yy"
+#line 747 "dhcp6_parser.yy"
                                                                          {
     ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1442,7 +1442,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 173: // $@25: %empty
-#line 758 "dhcp6_parser.yy"
+#line 757 "dhcp6_parser.yy"
                                                              {
     ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE);
@@ -1451,7 +1451,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 174: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value
-#line 761 "dhcp6_parser.yy"
+#line 760 "dhcp6_parser.yy"
                                             {
     ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1460,7 +1460,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 175: // ddns_conflict_resolution_mode_value: "check-with-dhcid"
-#line 767 "dhcp6_parser.yy"
+#line 766 "dhcp6_parser.yy"
                      {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1468,7 +1468,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 176: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid"
-#line 770 "dhcp6_parser.yy"
+#line 769 "dhcp6_parser.yy"
                         {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1476,7 +1476,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 177: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid"
-#line 773 "dhcp6_parser.yy"
+#line 772 "dhcp6_parser.yy"
                             {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1484,7 +1484,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 178: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid"
-#line 776 "dhcp6_parser.yy"
+#line 775 "dhcp6_parser.yy"
                            {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location)));
       }
@@ -1492,7 +1492,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 179: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point"
-#line 781 "dhcp6_parser.yy"
+#line 780 "dhcp6_parser.yy"
                                                {
     ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location));
     ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
@@ -1502,7 +1502,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 180: // $@26: %empty
-#line 787 "dhcp6_parser.yy"
+#line 786 "dhcp6_parser.yy"
                                      {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1511,7 +1511,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 181: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string"
-#line 790 "dhcp6_parser.yy"
+#line 789 "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);
@@ -1521,7 +1521,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 182: // $@27: %empty
-#line 796 "dhcp6_parser.yy"
+#line 795 "dhcp6_parser.yy"
                                                      {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1530,7 +1530,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 183: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string"
-#line 799 "dhcp6_parser.yy"
+#line 798 "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);
@@ -1540,7 +1540,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 184: // store_extended_info: "store-extended-info" ":" "boolean"
-#line 805 "dhcp6_parser.yy"
+#line 804 "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)));
@@ -1550,7 +1550,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 185: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer"
-#line 811 "dhcp6_parser.yy"
+#line 810 "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)));
@@ -1560,7 +1560,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 186: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer"
-#line 817 "dhcp6_parser.yy"
+#line 816 "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)));
@@ -1570,7 +1570,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 187: // $@28: %empty
-#line 823 "dhcp6_parser.yy"
+#line 822 "dhcp6_parser.yy"
                        {
     ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1579,7 +1579,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188: // server_tag: "server-tag" $@28 ":" "constant string"
-#line 826 "dhcp6_parser.yy"
+#line 825 "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);
@@ -1589,7 +1589,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 189: // parked_packet_limit: "parked-packet-limit" ":" "integer"
-#line 832 "dhcp6_parser.yy"
+#line 831 "dhcp6_parser.yy"
                                                        {
     ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location));
     ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1599,7 +1599,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 190: // $@29: %empty
-#line 838 "dhcp6_parser.yy"
+#line 837 "dhcp6_parser.yy"
                      {
     ctx.unique("allocator", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1608,7 +1608,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 191: // allocator: "allocator" $@29 ":" "constant string"
-#line 841 "dhcp6_parser.yy"
+#line 840 "dhcp6_parser.yy"
                {
     ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("allocator", al);
@@ -1618,7 +1618,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 192: // $@30: %empty
-#line 847 "dhcp6_parser.yy"
+#line 846 "dhcp6_parser.yy"
                            {
     ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1627,7 +1627,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 193: // pd_allocator: "pd-allocator" $@30 ":" "constant string"
-#line 850 "dhcp6_parser.yy"
+#line 849 "dhcp6_parser.yy"
                {
     ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-allocator", al);
@@ -1637,7 +1637,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 194: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean"
-#line 856 "dhcp6_parser.yy"
+#line 855 "dhcp6_parser.yy"
                                                                                  {
     ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location));
     ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1647,7 +1647,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 195: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean"
-#line 862 "dhcp6_parser.yy"
+#line 861 "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)));
@@ -1657,7 +1657,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 196: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean"
-#line 868 "dhcp6_parser.yy"
+#line 867 "dhcp6_parser.yy"
                                                                    {
     ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location));
     ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1667,7 +1667,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 197: // $@31: %empty
-#line 874 "dhcp6_parser.yy"
+#line 873 "dhcp6_parser.yy"
                                      {
     ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1679,7 +1679,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 198: // interfaces_config: "interfaces-config" $@31 ":" "{" interfaces_config_params "}"
-#line 880 "dhcp6_parser.yy"
+#line 879 "dhcp6_parser.yy"
                                                                {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1689,7 +1689,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 199: // $@32: %empty
-#line 886 "dhcp6_parser.yy"
+#line 885 "dhcp6_parser.yy"
                                 {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1699,7 +1699,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 200: // sub_interfaces6: "{" $@32 interfaces_config_params "}"
-#line 890 "dhcp6_parser.yy"
+#line 889 "dhcp6_parser.yy"
                                           {
     // No interfaces config param is required
     // parsing completed
@@ -1708,7 +1708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 203: // interfaces_config_params: interfaces_config_params ","
-#line 897 "dhcp6_parser.yy"
+#line 896 "dhcp6_parser.yy"
                                                          {
                             ctx.warnAboutExtraCommas(yystack_[0].location);
                             }
@@ -1716,7 +1716,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 212: // $@33: %empty
-#line 912 "dhcp6_parser.yy"
+#line 911 "dhcp6_parser.yy"
                             {
     ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 213: // interfaces_list: "interfaces" $@33 ":" list_strings
-#line 918 "dhcp6_parser.yy"
+#line 917 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1737,7 +1737,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 214: // re_detect: "re-detect" ":" "boolean"
-#line 923 "dhcp6_parser.yy"
+#line 922 "dhcp6_parser.yy"
                                    {
     ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1747,7 +1747,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 215: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean"
-#line 929 "dhcp6_parser.yy"
+#line 928 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -1757,7 +1757,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 216: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer"
-#line 935 "dhcp6_parser.yy"
+#line 934 "dhcp6_parser.yy"
                                                                                {
     ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1767,7 +1767,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 217: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer"
-#line 941 "dhcp6_parser.yy"
+#line 940 "dhcp6_parser.yy"
                                                                        {
     ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1777,7 +1777,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 218: // $@34: %empty
-#line 947 "dhcp6_parser.yy"
+#line 946 "dhcp6_parser.yy"
                                {
     ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1789,7 +1789,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 219: // lease_database: "lease-database" $@34 ":" "{" database_map_params "}"
-#line 953 "dhcp6_parser.yy"
+#line 952 "dhcp6_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1800,7 +1800,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 220: // $@35: %empty
-#line 960 "dhcp6_parser.yy"
+#line 959 "dhcp6_parser.yy"
                                {
     ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1812,7 +1812,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221: // hosts_database: "hosts-database" $@35 ":" "{" database_map_params "}"
-#line 966 "dhcp6_parser.yy"
+#line 965 "dhcp6_parser.yy"
                                                           {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1823,7 +1823,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 222: // $@36: %empty
-#line 973 "dhcp6_parser.yy"
+#line 972 "dhcp6_parser.yy"
                                  {
     ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -1835,7 +1835,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 223: // hosts_databases: "hosts-databases" $@36 ":" "[" database_list "]"
-#line 979 "dhcp6_parser.yy"
+#line 978 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1844,7 +1844,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 228: // not_empty_database_list: not_empty_database_list ","
-#line 990 "dhcp6_parser.yy"
+#line 989 "dhcp6_parser.yy"
                                                        {
                            ctx.warnAboutExtraCommas(yystack_[0].location);
                            }
@@ -1852,7 +1852,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 229: // $@37: %empty
-#line 995 "dhcp6_parser.yy"
+#line 994 "dhcp6_parser.yy"
                          {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1862,7 +1862,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 230: // database: "{" $@37 database_map_params "}"
-#line 999 "dhcp6_parser.yy"
+#line 998 "dhcp6_parser.yy"
                                      {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1872,7 +1872,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 233: // database_map_params: database_map_params ","
-#line 1007 "dhcp6_parser.yy"
+#line 1006 "dhcp6_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
@@ -1880,7 +1880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 257: // $@38: %empty
-#line 1037 "dhcp6_parser.yy"
+#line 1036 "dhcp6_parser.yy"
                     {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_TYPE);
@@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 258: // database_type: "type" $@38 ":" db_type
-#line 1040 "dhcp6_parser.yy"
+#line 1039 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -1898,25 +1898,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 259: // db_type: "memfile"
-#line 1045 "dhcp6_parser.yy"
+#line 1044 "dhcp6_parser.yy"
                  { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1904 "dhcp6_parser.cc"
     break;
 
   case 260: // db_type: "mysql"
-#line 1046 "dhcp6_parser.yy"
+#line 1045 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1910 "dhcp6_parser.cc"
     break;
 
   case 261: // db_type: "postgresql"
-#line 1047 "dhcp6_parser.yy"
+#line 1046 "dhcp6_parser.yy"
                     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1916 "dhcp6_parser.cc"
     break;
 
   case 262: // $@39: %empty
-#line 1050 "dhcp6_parser.yy"
+#line 1049 "dhcp6_parser.yy"
            {
     ctx.unique("user", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1925,7 +1925,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 263: // user: "user" $@39 ":" "constant string"
-#line 1053 "dhcp6_parser.yy"
+#line 1052 "dhcp6_parser.yy"
                {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1935,7 +1935,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 264: // $@40: %empty
-#line 1059 "dhcp6_parser.yy"
+#line 1058 "dhcp6_parser.yy"
                    {
     ctx.unique("password", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1944,7 +1944,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 265: // password: "password" $@40 ":" "constant string"
-#line 1062 "dhcp6_parser.yy"
+#line 1061 "dhcp6_parser.yy"
                {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -1954,7 +1954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 266: // $@41: %empty
-#line 1068 "dhcp6_parser.yy"
+#line 1067 "dhcp6_parser.yy"
            {
     ctx.unique("host", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1963,7 +1963,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 267: // host: "host" $@41 ":" "constant string"
-#line 1071 "dhcp6_parser.yy"
+#line 1070 "dhcp6_parser.yy"
                {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -1973,7 +1973,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 268: // port: "port" ":" "integer"
-#line 1077 "dhcp6_parser.yy"
+#line 1076 "dhcp6_parser.yy"
                          {
     ctx.unique("port", ctx.loc2pos(yystack_[2].location));
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -1983,7 +1983,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 269: // $@42: %empty
-#line 1083 "dhcp6_parser.yy"
+#line 1082 "dhcp6_parser.yy"
            {
     ctx.unique("name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -1992,7 +1992,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 270: // name: "name" $@42 ":" "constant string"
-#line 1086 "dhcp6_parser.yy"
+#line 1085 "dhcp6_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -2002,7 +2002,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 271: // persist: "persist" ":" "boolean"
-#line 1092 "dhcp6_parser.yy"
+#line 1091 "dhcp6_parser.yy"
                                {
     ctx.unique("persist", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2012,7 +2012,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 272: // lfc_interval: "lfc-interval" ":" "integer"
-#line 1098 "dhcp6_parser.yy"
+#line 1097 "dhcp6_parser.yy"
                                          {
     ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2022,7 +2022,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 273: // readonly: "readonly" ":" "boolean"
-#line 1104 "dhcp6_parser.yy"
+#line 1103 "dhcp6_parser.yy"
                                  {
     ctx.unique("readonly", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2032,7 +2032,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 274: // connect_timeout: "connect-timeout" ":" "integer"
-#line 1110 "dhcp6_parser.yy"
+#line 1109 "dhcp6_parser.yy"
                                                {
     ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2042,7 +2042,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 275: // read_timeout: "read-timeout" ":" "integer"
-#line 1116 "dhcp6_parser.yy"
+#line 1115 "dhcp6_parser.yy"
                                          {
     ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2052,7 +2052,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 276: // write_timeout: "write-timeout" ":" "integer"
-#line 1122 "dhcp6_parser.yy"
+#line 1121 "dhcp6_parser.yy"
                                            {
     ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2062,7 +2062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 277: // tcp_user_timeout: "tcp-user-timeout" ":" "integer"
-#line 1128 "dhcp6_parser.yy"
+#line 1127 "dhcp6_parser.yy"
                                                  {
     ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2072,7 +2072,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 278: // reconnect_wait_time: "reconnect-wait-time" ":" "integer"
-#line 1135 "dhcp6_parser.yy"
+#line 1134 "dhcp6_parser.yy"
                                                        {
     ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2082,7 +2082,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 279: // $@43: %empty
-#line 1141 "dhcp6_parser.yy"
+#line 1140 "dhcp6_parser.yy"
                  {
     ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DATABASE_ON_FAIL);
@@ -2091,7 +2091,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 280: // on_fail: "on-fail" $@43 ":" on_fail_mode
-#line 1144 "dhcp6_parser.yy"
+#line 1143 "dhcp6_parser.yy"
                      {
     ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2100,25 +2100,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 281: // on_fail_mode: "stop-retry-exit"
-#line 1149 "dhcp6_parser.yy"
+#line 1148 "dhcp6_parser.yy"
                               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2106 "dhcp6_parser.cc"
     break;
 
   case 282: // on_fail_mode: "serve-retry-exit"
-#line 1150 "dhcp6_parser.yy"
+#line 1149 "dhcp6_parser.yy"
                                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); }
 #line 2112 "dhcp6_parser.cc"
     break;
 
   case 283: // on_fail_mode: "serve-retry-continue"
-#line 1151 "dhcp6_parser.yy"
+#line 1150 "dhcp6_parser.yy"
                                    { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); }
 #line 2118 "dhcp6_parser.cc"
     break;
 
   case 284: // retry_on_startup: "retry-on-startup" ":" "boolean"
-#line 1154 "dhcp6_parser.yy"
+#line 1153 "dhcp6_parser.yy"
                                                  {
     ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2128,7 +2128,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 285: // max_row_errors: "max-row-errors" ":" "integer"
-#line 1160 "dhcp6_parser.yy"
+#line 1159 "dhcp6_parser.yy"
                                              {
     ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2138,7 +2138,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 286: // max_reconnect_tries: "max-reconnect-tries" ":" "integer"
-#line 1166 "dhcp6_parser.yy"
+#line 1165 "dhcp6_parser.yy"
                                                        {
     ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location));
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2148,7 +2148,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 287: // $@44: %empty
-#line 1172 "dhcp6_parser.yy"
+#line 1171 "dhcp6_parser.yy"
                            {
     ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2157,7 +2157,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 288: // trust_anchor: "trust-anchor" $@44 ":" "constant string"
-#line 1175 "dhcp6_parser.yy"
+#line 1174 "dhcp6_parser.yy"
                {
     ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("trust-anchor", ca);
@@ -2167,7 +2167,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 289: // $@45: %empty
-#line 1181 "dhcp6_parser.yy"
+#line 1180 "dhcp6_parser.yy"
                      {
     ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2176,7 +2176,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 290: // cert_file: "cert-file" $@45 ":" "constant string"
-#line 1184 "dhcp6_parser.yy"
+#line 1183 "dhcp6_parser.yy"
                {
     ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cert-file", cert);
@@ -2186,7 +2186,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 291: // $@46: %empty
-#line 1190 "dhcp6_parser.yy"
+#line 1189 "dhcp6_parser.yy"
                    {
     ctx.unique("key-file", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2195,7 +2195,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 292: // key_file: "key-file" $@46 ":" "constant string"
-#line 1193 "dhcp6_parser.yy"
+#line 1192 "dhcp6_parser.yy"
                {
     ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("key-file", key);
@@ -2205,7 +2205,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 293: // $@47: %empty
-#line 1199 "dhcp6_parser.yy"
+#line 1198 "dhcp6_parser.yy"
                          {
     ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2214,7 +2214,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 294: // cipher_list: "cipher-list" $@47 ":" "constant string"
-#line 1202 "dhcp6_parser.yy"
+#line 1201 "dhcp6_parser.yy"
                {
     ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("cipher-list", cl);
@@ -2224,7 +2224,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 295: // $@48: %empty
-#line 1208 "dhcp6_parser.yy"
+#line 1207 "dhcp6_parser.yy"
                              {
     ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2236,7 +2236,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 296: // sanity_checks: "sanity-checks" $@48 ":" "{" sanity_checks_params "}"
-#line 1214 "dhcp6_parser.yy"
+#line 1213 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2245,7 +2245,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 299: // sanity_checks_params: sanity_checks_params ","
-#line 1221 "dhcp6_parser.yy"
+#line 1220 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -2253,7 +2253,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 302: // $@49: %empty
-#line 1230 "dhcp6_parser.yy"
+#line 1229 "dhcp6_parser.yy"
                            {
     ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2262,7 +2262,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 303: // lease_checks: "lease-checks" $@49 ":" "constant string"
-#line 1233 "dhcp6_parser.yy"
+#line 1232 "dhcp6_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -2282,7 +2282,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 304: // $@50: %empty
-#line 1249 "dhcp6_parser.yy"
+#line 1248 "dhcp6_parser.yy"
                                            {
     ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2291,7 +2291,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 305: // extended_info_checks: "extended-info-checks" $@50 ":" "constant string"
-#line 1252 "dhcp6_parser.yy"
+#line 1251 "dhcp6_parser.yy"
                {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -2310,7 +2310,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 306: // $@51: %empty
-#line 1267 "dhcp6_parser.yy"
+#line 1266 "dhcp6_parser.yy"
                          {
     ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2322,7 +2322,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 307: // mac_sources: "mac-sources" $@51 ":" "[" mac_sources_list "]"
-#line 1273 "dhcp6_parser.yy"
+#line 1272 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2331,7 +2331,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 310: // mac_sources_list: mac_sources_list ","
-#line 1280 "dhcp6_parser.yy"
+#line 1279 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
@@ -2339,7 +2339,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 313: // duid_id: "duid"
-#line 1289 "dhcp6_parser.yy"
+#line 1288 "dhcp6_parser.yy"
               {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -2348,7 +2348,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 314: // string_id: "constant string"
-#line 1294 "dhcp6_parser.yy"
+#line 1293 "dhcp6_parser.yy"
                   {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -2357,7 +2357,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 315: // $@52: %empty
-#line 1299 "dhcp6_parser.yy"
+#line 1298 "dhcp6_parser.yy"
                                                            {
     ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2369,7 +2369,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 316: // host_reservation_identifiers: "host-reservation-identifiers" $@52 ":" "[" host_reservation_identifiers_list "]"
-#line 1305 "dhcp6_parser.yy"
+#line 1304 "dhcp6_parser.yy"
                                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2378,7 +2378,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 319: // host_reservation_identifiers_list: host_reservation_identifiers_list ","
-#line 1312 "dhcp6_parser.yy"
+#line 1311 "dhcp6_parser.yy"
                                               {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2386,7 +2386,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 323: // hw_address_id: "hw-address"
-#line 1322 "dhcp6_parser.yy"
+#line 1321 "dhcp6_parser.yy"
                           {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -2395,7 +2395,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 324: // flex_id: "flex-id"
-#line 1327 "dhcp6_parser.yy"
+#line 1326 "dhcp6_parser.yy"
                  {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -2404,7 +2404,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 325: // $@53: %empty
-#line 1334 "dhcp6_parser.yy"
+#line 1333 "dhcp6_parser.yy"
                                                {
     ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2416,7 +2416,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 326: // relay_supplied_options: "relay-supplied-options" $@53 ":" "[" list_content "]"
-#line 1340 "dhcp6_parser.yy"
+#line 1339 "dhcp6_parser.yy"
                                                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2425,7 +2425,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 327: // $@54: %empty
-#line 1347 "dhcp6_parser.yy"
+#line 1346 "dhcp6_parser.yy"
                                            {
     ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location));
     ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2437,7 +2437,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 328: // dhcp_multi_threading: "multi-threading" $@54 ":" "{" multi_threading_params "}"
-#line 1353 "dhcp6_parser.yy"
+#line 1352 "dhcp6_parser.yy"
                                                              {
     // The enable parameter is required.
     ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2448,7 +2448,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 331: // multi_threading_params: multi_threading_params ","
-#line 1362 "dhcp6_parser.yy"
+#line 1361 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2456,7 +2456,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 338: // enable_multi_threading: "enable-multi-threading" ":" "boolean"
-#line 1375 "dhcp6_parser.yy"
+#line 1374 "dhcp6_parser.yy"
                                                              {
     ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2466,7 +2466,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 339: // thread_pool_size: "thread-pool-size" ":" "integer"
-#line 1381 "dhcp6_parser.yy"
+#line 1380 "dhcp6_parser.yy"
                                                  {
     ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2476,7 +2476,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 340: // packet_queue_size: "packet-queue-size" ":" "integer"
-#line 1387 "dhcp6_parser.yy"
+#line 1386 "dhcp6_parser.yy"
                                                    {
     ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2486,7 +2486,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 341: // $@55: %empty
-#line 1393 "dhcp6_parser.yy"
+#line 1392 "dhcp6_parser.yy"
                                  {
     ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2498,7 +2498,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 342: // hooks_libraries: "hooks-libraries" $@55 ":" "[" hooks_libraries_list "]"
-#line 1399 "dhcp6_parser.yy"
+#line 1398 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2507,7 +2507,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 347: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1410 "dhcp6_parser.yy"
+#line 1409 "dhcp6_parser.yy"
                                            {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -2515,7 +2515,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 348: // $@56: %empty
-#line 1415 "dhcp6_parser.yy"
+#line 1414 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2525,7 +2525,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 349: // hooks_library: "{" $@56 hooks_params "}"
-#line 1419 "dhcp6_parser.yy"
+#line 1418 "dhcp6_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2535,7 +2535,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 350: // $@57: %empty
-#line 1425 "dhcp6_parser.yy"
+#line 1424 "dhcp6_parser.yy"
                                   {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2545,7 +2545,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 351: // sub_hooks_library: "{" $@57 hooks_params "}"
-#line 1429 "dhcp6_parser.yy"
+#line 1428 "dhcp6_parser.yy"
                               {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2555,7 +2555,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 354: // hooks_params: hooks_params ","
-#line 1437 "dhcp6_parser.yy"
+#line 1436 "dhcp6_parser.yy"
                                  {
                 ctx.warnAboutExtraCommas(yystack_[0].location);
                 }
@@ -2563,7 +2563,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 358: // $@58: %empty
-#line 1447 "dhcp6_parser.yy"
+#line 1446 "dhcp6_parser.yy"
                  {
     ctx.unique("library", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2572,7 +2572,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 359: // library: "library" $@58 ":" "constant string"
-#line 1450 "dhcp6_parser.yy"
+#line 1449 "dhcp6_parser.yy"
                {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -2582,7 +2582,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 360: // $@59: %empty
-#line 1456 "dhcp6_parser.yy"
+#line 1455 "dhcp6_parser.yy"
                        {
     ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2591,7 +2591,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 361: // parameters: "parameters" $@59 ":" map_value
-#line 1459 "dhcp6_parser.yy"
+#line 1458 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2600,7 +2600,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 362: // $@60: %empty
-#line 1465 "dhcp6_parser.yy"
+#line 1464 "dhcp6_parser.yy"
                                                      {
     ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2612,7 +2612,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 363: // expired_leases_processing: "expired-leases-processing" $@60 ":" "{" expired_leases_params "}"
-#line 1471 "dhcp6_parser.yy"
+#line 1470 "dhcp6_parser.yy"
                                                             {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -2622,7 +2622,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 366: // expired_leases_params: expired_leases_params ","
-#line 1479 "dhcp6_parser.yy"
+#line 1478 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -2630,7 +2630,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 373: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer"
-#line 1492 "dhcp6_parser.yy"
+#line 1491 "dhcp6_parser.yy"
                                                                {
     ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2640,7 +2640,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 374: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer"
-#line 1498 "dhcp6_parser.yy"
+#line 1497 "dhcp6_parser.yy"
                                                                                {
     ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2650,7 +2650,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 375: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer"
-#line 1504 "dhcp6_parser.yy"
+#line 1503 "dhcp6_parser.yy"
                                                        {
     ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2660,7 +2660,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 376: // max_reclaim_leases: "max-reclaim-leases" ":" "integer"
-#line 1510 "dhcp6_parser.yy"
+#line 1509 "dhcp6_parser.yy"
                                                      {
     ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2670,7 +2670,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 377: // max_reclaim_time: "max-reclaim-time" ":" "integer"
-#line 1516 "dhcp6_parser.yy"
+#line 1515 "dhcp6_parser.yy"
                                                  {
     ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2680,7 +2680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 378: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer"
-#line 1522 "dhcp6_parser.yy"
+#line 1521 "dhcp6_parser.yy"
                                                                {
     ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -2690,7 +2690,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 379: // $@61: %empty
-#line 1531 "dhcp6_parser.yy"
+#line 1530 "dhcp6_parser.yy"
                       {
     ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2702,7 +2702,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 380: // subnet6_list: "subnet6" $@61 ":" "[" subnet6_list_content "]"
-#line 1537 "dhcp6_parser.yy"
+#line 1536 "dhcp6_parser.yy"
                                                              {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2711,7 +2711,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 385: // not_empty_subnet6_list: not_empty_subnet6_list ","
-#line 1551 "dhcp6_parser.yy"
+#line 1550 "dhcp6_parser.yy"
                                                      {
                           ctx.warnAboutExtraCommas(yystack_[0].location);
                           }
@@ -2719,7 +2719,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 386: // $@62: %empty
-#line 1560 "dhcp6_parser.yy"
+#line 1559 "dhcp6_parser.yy"
                         {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2729,7 +2729,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 387: // subnet6: "{" $@62 subnet6_params "}"
-#line 1564 "dhcp6_parser.yy"
+#line 1563 "dhcp6_parser.yy"
                                 {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2755,7 +2755,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 388: // $@63: %empty
-#line 1586 "dhcp6_parser.yy"
+#line 1585 "dhcp6_parser.yy"
                             {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2765,7 +2765,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 389: // sub_subnet6: "{" $@63 subnet6_params "}"
-#line 1590 "dhcp6_parser.yy"
+#line 1589 "dhcp6_parser.yy"
                                 {
     // The subnet subnet6 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2775,7 +2775,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 392: // subnet6_params: subnet6_params ","
-#line 1599 "dhcp6_parser.yy"
+#line 1598 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -2783,7 +2783,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 440: // $@64: %empty
-#line 1654 "dhcp6_parser.yy"
+#line 1653 "dhcp6_parser.yy"
                {
     ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2792,7 +2792,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 441: // subnet: "subnet" $@64 ":" "constant string"
-#line 1657 "dhcp6_parser.yy"
+#line 1656 "dhcp6_parser.yy"
                {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -2802,7 +2802,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 442: // $@65: %empty
-#line 1663 "dhcp6_parser.yy"
+#line 1662 "dhcp6_parser.yy"
                      {
     ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2811,7 +2811,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 443: // interface: "interface" $@65 ":" "constant string"
-#line 1666 "dhcp6_parser.yy"
+#line 1665 "dhcp6_parser.yy"
                {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2821,7 +2821,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 444: // $@66: %empty
-#line 1672 "dhcp6_parser.yy"
+#line 1671 "dhcp6_parser.yy"
                            {
     ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2830,7 +2830,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 445: // interface_id: "interface-id" $@66 ":" "constant string"
-#line 1675 "dhcp6_parser.yy"
+#line 1674 "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);
@@ -2840,7 +2840,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 446: // $@67: %empty
-#line 1681 "dhcp6_parser.yy"
+#line 1680 "dhcp6_parser.yy"
                            {
     ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -2849,7 +2849,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 447: // client_class: "client-class" $@67 ":" "constant string"
-#line 1684 "dhcp6_parser.yy"
+#line 1683 "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);
@@ -2859,7 +2859,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 448: // $@68: %empty
-#line 1690 "dhcp6_parser.yy"
+#line 1689 "dhcp6_parser.yy"
                                                {
     ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2871,7 +2871,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 449: // require_client_classes: "require-client-classes" $@68 ":" list_strings
-#line 1696 "dhcp6_parser.yy"
+#line 1695 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2880,7 +2880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 450: // reservations_global: "reservations-global" ":" "boolean"
-#line 1701 "dhcp6_parser.yy"
+#line 1700 "dhcp6_parser.yy"
                                                        {
     ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2890,7 +2890,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 451: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1707 "dhcp6_parser.yy"
+#line 1706 "dhcp6_parser.yy"
                                                              {
     ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2900,7 +2900,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 452: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1713 "dhcp6_parser.yy"
+#line 1712 "dhcp6_parser.yy"
                                                                  {
     ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -2910,7 +2910,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 453: // $@69: %empty
-#line 1719 "dhcp6_parser.yy"
+#line 1718 "dhcp6_parser.yy"
                                    {
     ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.RESERVATION_MODE);
@@ -2919,7 +2919,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 454: // reservation_mode: "reservation-mode" $@69 ":" hr_mode
-#line 1722 "dhcp6_parser.yy"
+#line 1721 "dhcp6_parser.yy"
                 {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
@@ -2928,31 +2928,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 455: // hr_mode: "disabled"
-#line 1727 "dhcp6_parser.yy"
+#line 1726 "dhcp6_parser.yy"
                   { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2934 "dhcp6_parser.cc"
     break;
 
   case 456: // hr_mode: "out-of-pool"
-#line 1728 "dhcp6_parser.yy"
+#line 1727 "dhcp6_parser.yy"
                      { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2940 "dhcp6_parser.cc"
     break;
 
   case 457: // hr_mode: "global"
-#line 1729 "dhcp6_parser.yy"
+#line 1728 "dhcp6_parser.yy"
                 { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2946 "dhcp6_parser.cc"
     break;
 
   case 458: // hr_mode: "all"
-#line 1730 "dhcp6_parser.yy"
+#line 1729 "dhcp6_parser.yy"
              { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2952 "dhcp6_parser.cc"
     break;
 
   case 459: // id: "id" ":" "integer"
-#line 1733 "dhcp6_parser.yy"
+#line 1732 "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)));
@@ -2962,7 +2962,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 460: // rapid_commit: "rapid-commit" ":" "boolean"
-#line 1739 "dhcp6_parser.yy"
+#line 1738 "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)));
@@ -2972,7 +2972,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 461: // $@70: %empty
-#line 1747 "dhcp6_parser.yy"
+#line 1746 "dhcp6_parser.yy"
                                  {
     ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2984,7 +2984,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 462: // shared_networks: "shared-networks" $@70 ":" "[" shared_networks_content "]"
-#line 1753 "dhcp6_parser.yy"
+#line 1752 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2993,7 +2993,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 467: // shared_networks_list: shared_networks_list ","
-#line 1766 "dhcp6_parser.yy"
+#line 1765 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -3001,7 +3001,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 468: // $@71: %empty
-#line 1771 "dhcp6_parser.yy"
+#line 1770 "dhcp6_parser.yy"
                                {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3011,7 +3011,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 469: // shared_network: "{" $@71 shared_network_params "}"
-#line 1775 "dhcp6_parser.yy"
+#line 1774 "dhcp6_parser.yy"
                                        {
     ctx.stack_.pop_back();
 }
@@ -3019,7 +3019,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 472: // shared_network_params: shared_network_params ","
-#line 1781 "dhcp6_parser.yy"
+#line 1780 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
@@ -3027,7 +3027,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517: // $@72: %empty
-#line 1836 "dhcp6_parser.yy"
+#line 1835 "dhcp6_parser.yy"
                             {
     ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3039,7 +3039,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 518: // option_def_list: "option-def" $@72 ":" "[" option_def_list_content "]"
-#line 1842 "dhcp6_parser.yy"
+#line 1841 "dhcp6_parser.yy"
                                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3048,7 +3048,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 519: // $@73: %empty
-#line 1850 "dhcp6_parser.yy"
+#line 1849 "dhcp6_parser.yy"
                                     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -3057,7 +3057,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 520: // sub_option_def_list: "{" $@73 option_def_list "}"
-#line 1853 "dhcp6_parser.yy"
+#line 1852 "dhcp6_parser.yy"
                                  {
     // parsing completed
 }
@@ -3065,7 +3065,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 525: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1865 "dhcp6_parser.yy"
+#line 1864 "dhcp6_parser.yy"
                                                            {
                              ctx.warnAboutExtraCommas(yystack_[0].location);
                              }
@@ -3073,7 +3073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 526: // $@74: %empty
-#line 1872 "dhcp6_parser.yy"
+#line 1871 "dhcp6_parser.yy"
                                  {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3083,7 +3083,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 527: // option_def_entry: "{" $@74 option_def_params "}"
-#line 1876 "dhcp6_parser.yy"
+#line 1875 "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));
@@ -3095,7 +3095,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 528: // $@75: %empty
-#line 1887 "dhcp6_parser.yy"
+#line 1886 "dhcp6_parser.yy"
                                {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3105,7 +3105,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 529: // sub_option_def: "{" $@75 option_def_params "}"
-#line 1891 "dhcp6_parser.yy"
+#line 1890 "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));
@@ -3117,7 +3117,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 534: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1907 "dhcp6_parser.yy"
+#line 1906 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -3125,7 +3125,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 546: // code: "code" ":" "integer"
-#line 1926 "dhcp6_parser.yy"
+#line 1925 "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)));
@@ -3135,7 +3135,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 548: // $@76: %empty
-#line 1934 "dhcp6_parser.yy"
+#line 1933 "dhcp6_parser.yy"
                       {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3144,7 +3144,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 549: // option_def_type: "type" $@76 ":" "constant string"
-#line 1937 "dhcp6_parser.yy"
+#line 1936 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -3154,7 +3154,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 550: // $@77: %empty
-#line 1943 "dhcp6_parser.yy"
+#line 1942 "dhcp6_parser.yy"
                                       {
     ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3163,7 +3163,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 551: // option_def_record_types: "record-types" $@77 ":" "constant string"
-#line 1946 "dhcp6_parser.yy"
+#line 1945 "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);
@@ -3173,7 +3173,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 552: // $@78: %empty
-#line 1952 "dhcp6_parser.yy"
+#line 1951 "dhcp6_parser.yy"
              {
     ctx.unique("space", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3182,7 +3182,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553: // space: "space" $@78 ":" "constant string"
-#line 1955 "dhcp6_parser.yy"
+#line 1954 "dhcp6_parser.yy"
                {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -3192,7 +3192,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555: // $@79: %empty
-#line 1963 "dhcp6_parser.yy"
+#line 1962 "dhcp6_parser.yy"
                                     {
     ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3201,7 +3201,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556: // option_def_encapsulate: "encapsulate" $@79 ":" "constant string"
-#line 1966 "dhcp6_parser.yy"
+#line 1965 "dhcp6_parser.yy"
                {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -3211,7 +3211,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557: // option_def_array: "array" ":" "boolean"
-#line 1972 "dhcp6_parser.yy"
+#line 1971 "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)));
@@ -3221,7 +3221,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 558: // $@80: %empty
-#line 1982 "dhcp6_parser.yy"
+#line 1981 "dhcp6_parser.yy"
                               {
     ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3233,7 +3233,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 559: // option_data_list: "option-data" $@80 ":" "[" option_data_list_content "]"
-#line 1988 "dhcp6_parser.yy"
+#line 1987 "dhcp6_parser.yy"
                                                                  {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3242,7 +3242,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 564: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 2003 "dhcp6_parser.yy"
+#line 2002 "dhcp6_parser.yy"
                                                              {
                               ctx.warnAboutExtraCommas(yystack_[0].location);
                               }
@@ -3250,7 +3250,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 565: // $@81: %empty
-#line 2010 "dhcp6_parser.yy"
+#line 2009 "dhcp6_parser.yy"
                                   {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3260,7 +3260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 566: // option_data_entry: "{" $@81 option_data_params "}"
-#line 2014 "dhcp6_parser.yy"
+#line 2013 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -3269,7 +3269,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 567: // $@82: %empty
-#line 2022 "dhcp6_parser.yy"
+#line 2021 "dhcp6_parser.yy"
                                 {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3279,7 +3279,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 568: // sub_option_data: "{" $@82 option_data_params "}"
-#line 2026 "dhcp6_parser.yy"
+#line 2025 "dhcp6_parser.yy"
                                     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -3288,7 +3288,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 573: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 2042 "dhcp6_parser.yy"
+#line 2041 "dhcp6_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3296,7 +3296,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 585: // $@83: %empty
-#line 2063 "dhcp6_parser.yy"
+#line 2062 "dhcp6_parser.yy"
                        {
     ctx.unique("data", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3305,7 +3305,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 586: // option_data_data: "data" $@83 ":" "constant string"
-#line 2066 "dhcp6_parser.yy"
+#line 2065 "dhcp6_parser.yy"
                {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -3315,7 +3315,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 589: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2076 "dhcp6_parser.yy"
+#line 2075 "dhcp6_parser.yy"
                                                  {
     ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
     ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3325,7 +3325,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 590: // option_data_always_send: "always-send" ":" "boolean"
-#line 2082 "dhcp6_parser.yy"
+#line 2081 "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)));
@@ -3335,7 +3335,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 591: // option_data_never_send: "never-send" ":" "boolean"
-#line 2088 "dhcp6_parser.yy"
+#line 2087 "dhcp6_parser.yy"
                                                  {
     ctx.unique("never-send", ctx.loc2pos(yystack_[2].location));
     ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
@@ -3345,7 +3345,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 592: // $@84: %empty
-#line 2097 "dhcp6_parser.yy"
+#line 2096 "dhcp6_parser.yy"
                   {
     ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3357,7 +3357,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 593: // pools_list: "pools" $@84 ":" "[" pools_list_content "]"
-#line 2103 "dhcp6_parser.yy"
+#line 2102 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3366,7 +3366,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 598: // not_empty_pools_list: not_empty_pools_list ","
-#line 2116 "dhcp6_parser.yy"
+#line 2115 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
@@ -3374,7 +3374,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 599: // $@85: %empty
-#line 2121 "dhcp6_parser.yy"
+#line 2120 "dhcp6_parser.yy"
                                 {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3384,7 +3384,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 600: // pool_list_entry: "{" $@85 pool_params "}"
-#line 2125 "dhcp6_parser.yy"
+#line 2124 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3394,7 +3394,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 601: // $@86: %empty
-#line 2131 "dhcp6_parser.yy"
+#line 2130 "dhcp6_parser.yy"
                           {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3404,7 +3404,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 602: // sub_pool6: "{" $@86 pool_params "}"
-#line 2135 "dhcp6_parser.yy"
+#line 2134 "dhcp6_parser.yy"
                              {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3414,7 +3414,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 605: // pool_params: pool_params ","
-#line 2143 "dhcp6_parser.yy"
+#line 2142 "dhcp6_parser.yy"
                                {
                ctx.warnAboutExtraCommas(yystack_[0].location);
                }
@@ -3422,7 +3422,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 614: // $@87: %empty
-#line 2158 "dhcp6_parser.yy"
+#line 2157 "dhcp6_parser.yy"
                  {
     ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3431,7 +3431,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 615: // pool_entry: "pool" $@87 ":" "constant string"
-#line 2161 "dhcp6_parser.yy"
+#line 2160 "dhcp6_parser.yy"
                {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -3441,7 +3441,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 616: // pool_id: "pool-id" ":" "integer"
-#line 2167 "dhcp6_parser.yy"
+#line 2166 "dhcp6_parser.yy"
                                {
     ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
@@ -3451,7 +3451,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 617: // $@88: %empty
-#line 2173 "dhcp6_parser.yy"
+#line 2172 "dhcp6_parser.yy"
                            {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3459,7 +3459,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 618: // user_context: "user-context" $@88 ":" map_value
-#line 2175 "dhcp6_parser.yy"
+#line 2174 "dhcp6_parser.yy"
                   {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -3486,7 +3486,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 619: // $@89: %empty
-#line 2198 "dhcp6_parser.yy"
+#line 2197 "dhcp6_parser.yy"
                  {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3494,7 +3494,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 620: // comment: "comment" $@89 ":" "constant string"
-#line 2200 "dhcp6_parser.yy"
+#line 2199 "dhcp6_parser.yy"
                {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -3523,7 +3523,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 621: // $@90: %empty
-#line 2228 "dhcp6_parser.yy"
+#line 2227 "dhcp6_parser.yy"
                         {
     ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3535,7 +3535,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 622: // pd_pools_list: "pd-pools" $@90 ":" "[" pd_pools_list_content "]"
-#line 2234 "dhcp6_parser.yy"
+#line 2233 "dhcp6_parser.yy"
                                                               {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3544,7 +3544,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 627: // not_empty_pd_pools_list: not_empty_pd_pools_list ","
-#line 2247 "dhcp6_parser.yy"
+#line 2246 "dhcp6_parser.yy"
                                                        {
                            ctx.warnAboutExtraCommas(yystack_[0].location);
                            }
@@ -3552,7 +3552,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 628: // $@91: %empty
-#line 2252 "dhcp6_parser.yy"
+#line 2251 "dhcp6_parser.yy"
                               {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3562,7 +3562,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 629: // pd_pool_entry: "{" $@91 pd_pool_params "}"
-#line 2256 "dhcp6_parser.yy"
+#line 2255 "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));
@@ -3574,7 +3574,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 630: // $@92: %empty
-#line 2264 "dhcp6_parser.yy"
+#line 2263 "dhcp6_parser.yy"
                             {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3584,7 +3584,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 631: // sub_pd_pool: "{" $@92 pd_pool_params "}"
-#line 2268 "dhcp6_parser.yy"
+#line 2267 "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));
@@ -3596,7 +3596,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 634: // pd_pool_params: pd_pool_params ","
-#line 2278 "dhcp6_parser.yy"
+#line 2277 "dhcp6_parser.yy"
                                      {
                   ctx.warnAboutExtraCommas(yystack_[0].location);
                   }
@@ -3604,7 +3604,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 646: // $@93: %empty
-#line 2296 "dhcp6_parser.yy"
+#line 2295 "dhcp6_parser.yy"
                   {
     ctx.unique("prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3613,7 +3613,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 647: // pd_prefix: "prefix" $@93 ":" "constant string"
-#line 2299 "dhcp6_parser.yy"
+#line 2298 "dhcp6_parser.yy"
                {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
@@ -3623,7 +3623,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 648: // pd_prefix_len: "prefix-len" ":" "integer"
-#line 2305 "dhcp6_parser.yy"
+#line 2304 "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)));
@@ -3633,7 +3633,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 649: // $@94: %empty
-#line 2311 "dhcp6_parser.yy"
+#line 2310 "dhcp6_parser.yy"
                                  {
     ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3642,7 +3642,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 650: // excluded_prefix: "excluded-prefix" $@94 ":" "constant string"
-#line 2314 "dhcp6_parser.yy"
+#line 2313 "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);
@@ -3652,7 +3652,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 651: // excluded_prefix_len: "excluded-prefix-len" ":" "integer"
-#line 2320 "dhcp6_parser.yy"
+#line 2319 "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)));
@@ -3662,7 +3662,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 652: // pd_delegated_len: "delegated-len" ":" "integer"
-#line 2326 "dhcp6_parser.yy"
+#line 2325 "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)));
@@ -3672,7 +3672,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 653: // $@95: %empty
-#line 2335 "dhcp6_parser.yy"
+#line 2334 "dhcp6_parser.yy"
                            {
     ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3684,7 +3684,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 654: // reservations: "reservations" $@95 ":" "[" reservations_list "]"
-#line 2341 "dhcp6_parser.yy"
+#line 2340 "dhcp6_parser.yy"
                                                           {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3693,7 +3693,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 659: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2352 "dhcp6_parser.yy"
+#line 2351 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
@@ -3701,7 +3701,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 660: // $@96: %empty
-#line 2357 "dhcp6_parser.yy"
+#line 2356 "dhcp6_parser.yy"
                             {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3711,7 +3711,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 661: // reservation: "{" $@96 reservation_params "}"
-#line 2361 "dhcp6_parser.yy"
+#line 2360 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -3720,7 +3720,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 662: // $@97: %empty
-#line 2366 "dhcp6_parser.yy"
+#line 2365 "dhcp6_parser.yy"
                                 {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3730,7 +3730,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 663: // sub_reservation: "{" $@97 reservation_params "}"
-#line 2370 "dhcp6_parser.yy"
+#line 2369 "dhcp6_parser.yy"
                                     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -3739,7 +3739,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 668: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2381 "dhcp6_parser.yy"
+#line 2380 "dhcp6_parser.yy"
                                          {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
@@ -3747,7 +3747,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 680: // $@98: %empty
-#line 2400 "dhcp6_parser.yy"
+#line 2399 "dhcp6_parser.yy"
                            {
     ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3759,7 +3759,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 681: // ip_addresses: "ip-addresses" $@98 ":" list_strings
-#line 2406 "dhcp6_parser.yy"
+#line 2405 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3768,7 +3768,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 682: // $@99: %empty
-#line 2411 "dhcp6_parser.yy"
+#line 2410 "dhcp6_parser.yy"
                    {
     ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3780,7 +3780,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 683: // prefixes: "prefixes" $@99 ":" list_strings
-#line 2417 "dhcp6_parser.yy"
+#line 2416 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3789,7 +3789,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 684: // $@100: %empty
-#line 2422 "dhcp6_parser.yy"
+#line 2421 "dhcp6_parser.yy"
            {
     ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3798,7 +3798,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 685: // duid: "duid" $@100 ":" "constant string"
-#line 2425 "dhcp6_parser.yy"
+#line 2424 "dhcp6_parser.yy"
                {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -3808,7 +3808,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 686: // $@101: %empty
-#line 2431 "dhcp6_parser.yy"
+#line 2430 "dhcp6_parser.yy"
                        {
     ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3817,7 +3817,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 687: // hw_address: "hw-address" $@101 ":" "constant string"
-#line 2434 "dhcp6_parser.yy"
+#line 2433 "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);
@@ -3827,7 +3827,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 688: // $@102: %empty
-#line 2440 "dhcp6_parser.yy"
+#line 2439 "dhcp6_parser.yy"
                    {
     ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3836,7 +3836,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 689: // hostname: "hostname" $@102 ":" "constant string"
-#line 2443 "dhcp6_parser.yy"
+#line 2442 "dhcp6_parser.yy"
                {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -3846,7 +3846,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 690: // $@103: %empty
-#line 2449 "dhcp6_parser.yy"
+#line 2448 "dhcp6_parser.yy"
                        {
     ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
@@ -3855,7 +3855,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 691: // flex_id_value: "flex-id" $@103 ":" "constant string"
-#line 2452 "dhcp6_parser.yy"
+#line 2451 "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);
@@ -3865,7 +3865,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 692: // $@104: %empty
-#line 2458 "dhcp6_parser.yy"
+#line 2457 "dhcp6_parser.yy"
                                            {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3877,7 +3877,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 693: // reservation_client_classes: "client-classes" $@104 ":" list_strings
-#line 2464 "dhcp6_parser.yy"
+#line 2463 "dhcp6_parser.yy"
                      {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3886,7 +3886,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 694: // $@105: %empty
-#line 2472 "dhcp6_parser.yy"
+#line 2471 "dhcp6_parser.yy"
              {
     ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3898,7 +3898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 695: // relay: "relay" $@105 ":" "{" relay_map "}"
-#line 2478 "dhcp6_parser.yy"
+#line 2477 "dhcp6_parser.yy"
                                                 {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3906,27 +3906,8 @@ namespace isc { namespace dhcp {
 #line 3907 "dhcp6_parser.cc"
     break;
 
-  case 698: // $@106: %empty
-#line 2487 "dhcp6_parser.yy"
-                       {
-    ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
-    ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3916 "dhcp6_parser.cc"
-    break;
-
-  case 699: // ip_address: "ip-address" $@106 ":" "constant string"
-#line 2490 "dhcp6_parser.yy"
-               {
-    ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("ip-address", addr);
-    ctx.leave();
-}
-#line 3926 "dhcp6_parser.cc"
-    break;
-
-  case 700: // $@107: %empty
-#line 2499 "dhcp6_parser.yy"
+  case 697: // $@106: %empty
+#line 2488 "dhcp6_parser.yy"
                                {
     ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3934,104 +3915,104 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 3938 "dhcp6_parser.cc"
+#line 3919 "dhcp6_parser.cc"
     break;
 
-  case 701: // client_classes: "client-classes" $@107 ":" "[" client_classes_list "]"
-#line 2505 "dhcp6_parser.yy"
+  case 698: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]"
+#line 2494 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3947 "dhcp6_parser.cc"
+#line 3928 "dhcp6_parser.cc"
     break;
 
-  case 704: // client_classes_list: client_classes_list ","
-#line 2512 "dhcp6_parser.yy"
+  case 701: // client_classes_list: client_classes_list ","
+#line 2501 "dhcp6_parser.yy"
                                                {
                        ctx.warnAboutExtraCommas(yystack_[0].location);
                        }
-#line 3955 "dhcp6_parser.cc"
+#line 3936 "dhcp6_parser.cc"
     break;
 
-  case 705: // $@108: %empty
-#line 2517 "dhcp6_parser.yy"
+  case 702: // $@107: %empty
+#line 2506 "dhcp6_parser.yy"
                                    {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3965 "dhcp6_parser.cc"
+#line 3946 "dhcp6_parser.cc"
     break;
 
-  case 706: // client_class_entry: "{" $@108 client_class_params "}"
-#line 2521 "dhcp6_parser.yy"
+  case 703: // client_class_entry: "{" $@107 client_class_params "}"
+#line 2510 "dhcp6_parser.yy"
                                      {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 3975 "dhcp6_parser.cc"
+#line 3956 "dhcp6_parser.cc"
     break;
 
-  case 711: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2533 "dhcp6_parser.yy"
+  case 708: // not_empty_client_class_params: not_empty_client_class_params ","
+#line 2522 "dhcp6_parser.yy"
                                           {
         ctx.warnAboutExtraCommas(yystack_[0].location);
         }
-#line 3983 "dhcp6_parser.cc"
+#line 3964 "dhcp6_parser.cc"
     break;
 
-  case 727: // $@109: %empty
-#line 2556 "dhcp6_parser.yy"
+  case 724: // $@108: %empty
+#line 2545 "dhcp6_parser.yy"
                         {
     ctx.unique("test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3992 "dhcp6_parser.cc"
+#line 3973 "dhcp6_parser.cc"
     break;
 
-  case 728: // client_class_test: "test" $@109 ":" "constant string"
-#line 2559 "dhcp6_parser.yy"
+  case 725: // client_class_test: "test" $@108 ":" "constant string"
+#line 2548 "dhcp6_parser.yy"
                {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
     ctx.leave();
 }
-#line 4002 "dhcp6_parser.cc"
+#line 3983 "dhcp6_parser.cc"
     break;
 
-  case 729: // $@110: %empty
-#line 2565 "dhcp6_parser.yy"
+  case 726: // $@109: %empty
+#line 2554 "dhcp6_parser.yy"
                                           {
     ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4011 "dhcp6_parser.cc"
+#line 3992 "dhcp6_parser.cc"
     break;
 
-  case 730: // client_class_template_test: "template-test" $@110 ":" "constant string"
-#line 2568 "dhcp6_parser.yy"
+  case 727: // client_class_template_test: "template-test" $@109 ":" "constant string"
+#line 2557 "dhcp6_parser.yy"
                {
     ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("template-test", template_test);
     ctx.leave();
 }
-#line 4021 "dhcp6_parser.cc"
+#line 4002 "dhcp6_parser.cc"
     break;
 
-  case 731: // only_if_required: "only-if-required" ":" "boolean"
-#line 2574 "dhcp6_parser.yy"
+  case 728: // only_if_required: "only-if-required" ":" "boolean"
+#line 2563 "dhcp6_parser.yy"
                                                  {
     ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 4031 "dhcp6_parser.cc"
+#line 4012 "dhcp6_parser.cc"
     break;
 
-  case 732: // $@111: %empty
-#line 2583 "dhcp6_parser.yy"
+  case 729: // $@110: %empty
+#line 2572 "dhcp6_parser.yy"
                      {
     ctx.unique("server-id", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4039,125 +4020,125 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SERVER_ID);
 }
-#line 4043 "dhcp6_parser.cc"
+#line 4024 "dhcp6_parser.cc"
     break;
 
-  case 733: // server_id: "server-id" $@111 ":" "{" server_id_params "}"
-#line 2589 "dhcp6_parser.yy"
+  case 730: // server_id: "server-id" $@110 ":" "{" server_id_params "}"
+#line 2578 "dhcp6_parser.yy"
                                                        {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4054 "dhcp6_parser.cc"
+#line 4035 "dhcp6_parser.cc"
     break;
 
-  case 736: // server_id_params: server_id_params ","
-#line 2598 "dhcp6_parser.yy"
+  case 733: // server_id_params: server_id_params ","
+#line 2587 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
-#line 4062 "dhcp6_parser.cc"
+#line 4043 "dhcp6_parser.cc"
     break;
 
-  case 746: // $@112: %empty
-#line 2614 "dhcp6_parser.yy"
+  case 743: // $@111: %empty
+#line 2603 "dhcp6_parser.yy"
                      {
     ctx.unique("type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 4071 "dhcp6_parser.cc"
+#line 4052 "dhcp6_parser.cc"
     break;
 
-  case 747: // server_id_type: "type" $@112 ":" duid_type
-#line 2617 "dhcp6_parser.yy"
+  case 744: // server_id_type: "type" $@111 ":" duid_type
+#line 2606 "dhcp6_parser.yy"
                   {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4080 "dhcp6_parser.cc"
+#line 4061 "dhcp6_parser.cc"
     break;
 
-  case 748: // duid_type: "LLT"
-#line 2622 "dhcp6_parser.yy"
+  case 745: // duid_type: "LLT"
+#line 2611 "dhcp6_parser.yy"
                { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 4086 "dhcp6_parser.cc"
+#line 4067 "dhcp6_parser.cc"
     break;
 
-  case 749: // duid_type: "EN"
-#line 2623 "dhcp6_parser.yy"
+  case 746: // duid_type: "EN"
+#line 2612 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 4092 "dhcp6_parser.cc"
+#line 4073 "dhcp6_parser.cc"
     break;
 
-  case 750: // duid_type: "LL"
-#line 2624 "dhcp6_parser.yy"
+  case 747: // duid_type: "LL"
+#line 2613 "dhcp6_parser.yy"
               { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 4098 "dhcp6_parser.cc"
+#line 4079 "dhcp6_parser.cc"
     break;
 
-  case 751: // htype: "htype" ":" "integer"
-#line 2627 "dhcp6_parser.yy"
+  case 748: // htype: "htype" ":" "integer"
+#line 2616 "dhcp6_parser.yy"
                            {
     ctx.unique("htype", ctx.loc2pos(yystack_[2].location));
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
 }
-#line 4108 "dhcp6_parser.cc"
+#line 4089 "dhcp6_parser.cc"
     break;
 
-  case 752: // $@113: %empty
-#line 2633 "dhcp6_parser.yy"
+  case 749: // $@112: %empty
+#line 2622 "dhcp6_parser.yy"
                        {
     ctx.unique("identifier", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4117 "dhcp6_parser.cc"
+#line 4098 "dhcp6_parser.cc"
     break;
 
-  case 753: // identifier: "identifier" $@113 ":" "constant string"
-#line 2636 "dhcp6_parser.yy"
+  case 750: // identifier: "identifier" $@112 ":" "constant string"
+#line 2625 "dhcp6_parser.yy"
                {
     ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
     ctx.leave();
 }
-#line 4127 "dhcp6_parser.cc"
+#line 4108 "dhcp6_parser.cc"
     break;
 
-  case 754: // time: "time" ":" "integer"
-#line 2642 "dhcp6_parser.yy"
+  case 751: // time: "time" ":" "integer"
+#line 2631 "dhcp6_parser.yy"
                          {
     ctx.unique("time", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
 }
-#line 4137 "dhcp6_parser.cc"
+#line 4118 "dhcp6_parser.cc"
     break;
 
-  case 755: // enterprise_id: "enterprise-id" ":" "integer"
-#line 2648 "dhcp6_parser.yy"
+  case 752: // enterprise_id: "enterprise-id" ":" "integer"
+#line 2637 "dhcp6_parser.yy"
                                            {
     ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
 }
-#line 4147 "dhcp6_parser.cc"
+#line 4128 "dhcp6_parser.cc"
     break;
 
-  case 756: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2656 "dhcp6_parser.yy"
+  case 753: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2645 "dhcp6_parser.yy"
                                          {
     ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 4157 "dhcp6_parser.cc"
+#line 4138 "dhcp6_parser.cc"
     break;
 
-  case 757: // $@114: %empty
-#line 2664 "dhcp6_parser.yy"
+  case 754: // $@113: %empty
+#line 2653 "dhcp6_parser.yy"
                                {
     ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4165,66 +4146,66 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 4169 "dhcp6_parser.cc"
+#line 4150 "dhcp6_parser.cc"
     break;
 
-  case 758: // control_socket: "control-socket" $@114 ":" "{" control_socket_params "}"
-#line 2670 "dhcp6_parser.yy"
+  case 755: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}"
+#line 2659 "dhcp6_parser.yy"
                                                             {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4178 "dhcp6_parser.cc"
+#line 4159 "dhcp6_parser.cc"
     break;
 
-  case 761: // control_socket_params: control_socket_params ","
-#line 2677 "dhcp6_parser.yy"
+  case 758: // control_socket_params: control_socket_params ","
+#line 2666 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
-#line 4186 "dhcp6_parser.cc"
+#line 4167 "dhcp6_parser.cc"
     break;
 
-  case 767: // $@115: %empty
-#line 2689 "dhcp6_parser.yy"
+  case 764: // $@114: %empty
+#line 2678 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4195 "dhcp6_parser.cc"
+#line 4176 "dhcp6_parser.cc"
     break;
 
-  case 768: // socket_type: "socket-type" $@115 ":" "constant string"
-#line 2692 "dhcp6_parser.yy"
+  case 765: // socket_type: "socket-type" $@114 ":" "constant string"
+#line 2681 "dhcp6_parser.yy"
                {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 4205 "dhcp6_parser.cc"
+#line 4186 "dhcp6_parser.cc"
     break;
 
-  case 769: // $@116: %empty
-#line 2698 "dhcp6_parser.yy"
+  case 766: // $@115: %empty
+#line 2687 "dhcp6_parser.yy"
                          {
     ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4214 "dhcp6_parser.cc"
+#line 4195 "dhcp6_parser.cc"
     break;
 
-  case 770: // socket_name: "socket-name" $@116 ":" "constant string"
-#line 2701 "dhcp6_parser.yy"
+  case 767: // socket_name: "socket-name" $@115 ":" "constant string"
+#line 2690 "dhcp6_parser.yy"
                {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
     ctx.leave();
 }
-#line 4224 "dhcp6_parser.cc"
+#line 4205 "dhcp6_parser.cc"
     break;
 
-  case 771: // $@117: %empty
-#line 2710 "dhcp6_parser.yy"
+  case 768: // $@116: %empty
+#line 2699 "dhcp6_parser.yy"
                                        {
     ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4232,87 +4213,87 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(qc);
     ctx.enter(ctx.DHCP_QUEUE_CONTROL);
 }
-#line 4236 "dhcp6_parser.cc"
+#line 4217 "dhcp6_parser.cc"
     break;
 
-  case 772: // dhcp_queue_control: "dhcp-queue-control" $@117 ":" "{" queue_control_params "}"
-#line 2716 "dhcp6_parser.yy"
+  case 769: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}"
+#line 2705 "dhcp6_parser.yy"
                                                            {
     // The enable queue parameter is required.
     ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4247 "dhcp6_parser.cc"
+#line 4228 "dhcp6_parser.cc"
     break;
 
-  case 775: // queue_control_params: queue_control_params ","
-#line 2725 "dhcp6_parser.yy"
+  case 772: // queue_control_params: queue_control_params ","
+#line 2714 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
-#line 4255 "dhcp6_parser.cc"
+#line 4236 "dhcp6_parser.cc"
     break;
 
-  case 782: // enable_queue: "enable-queue" ":" "boolean"
-#line 2738 "dhcp6_parser.yy"
+  case 779: // enable_queue: "enable-queue" ":" "boolean"
+#line 2727 "dhcp6_parser.yy"
                                          {
     ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-queue", b);
 }
-#line 4265 "dhcp6_parser.cc"
+#line 4246 "dhcp6_parser.cc"
     break;
 
-  case 783: // $@118: %empty
-#line 2744 "dhcp6_parser.yy"
+  case 780: // $@117: %empty
+#line 2733 "dhcp6_parser.yy"
                        {
     ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4274 "dhcp6_parser.cc"
+#line 4255 "dhcp6_parser.cc"
     break;
 
-  case 784: // queue_type: "queue-type" $@118 ":" "constant string"
-#line 2747 "dhcp6_parser.yy"
+  case 781: // queue_type: "queue-type" $@117 ":" "constant string"
+#line 2736 "dhcp6_parser.yy"
                {
     ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("queue-type", qt);
     ctx.leave();
 }
-#line 4284 "dhcp6_parser.cc"
+#line 4265 "dhcp6_parser.cc"
     break;
 
-  case 785: // capacity: "capacity" ":" "integer"
-#line 2753 "dhcp6_parser.yy"
+  case 782: // capacity: "capacity" ":" "integer"
+#line 2742 "dhcp6_parser.yy"
                                  {
     ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
     ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("capacity", c);
 }
-#line 4294 "dhcp6_parser.cc"
+#line 4275 "dhcp6_parser.cc"
     break;
 
-  case 786: // $@119: %empty
-#line 2759 "dhcp6_parser.yy"
+  case 783: // $@118: %empty
+#line 2748 "dhcp6_parser.yy"
                             {
     ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4303 "dhcp6_parser.cc"
+#line 4284 "dhcp6_parser.cc"
     break;
 
-  case 787: // arbitrary_map_entry: "constant string" $@119 ":" value
-#line 2762 "dhcp6_parser.yy"
+  case 784: // arbitrary_map_entry: "constant string" $@118 ":" value
+#line 2751 "dhcp6_parser.yy"
               {
     ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4312 "dhcp6_parser.cc"
+#line 4293 "dhcp6_parser.cc"
     break;
 
-  case 788: // $@120: %empty
-#line 2769 "dhcp6_parser.yy"
+  case 785: // $@119: %empty
+#line 2758 "dhcp6_parser.yy"
                      {
     ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4320,291 +4301,291 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 4324 "dhcp6_parser.cc"
+#line 4305 "dhcp6_parser.cc"
     break;
 
-  case 789: // dhcp_ddns: "dhcp-ddns" $@120 ":" "{" dhcp_ddns_params "}"
-#line 2775 "dhcp6_parser.yy"
+  case 786: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}"
+#line 2764 "dhcp6_parser.yy"
                                                        {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4335 "dhcp6_parser.cc"
+#line 4316 "dhcp6_parser.cc"
     break;
 
-  case 790: // $@121: %empty
-#line 2782 "dhcp6_parser.yy"
+  case 787: // $@120: %empty
+#line 2771 "dhcp6_parser.yy"
                               {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 4345 "dhcp6_parser.cc"
+#line 4326 "dhcp6_parser.cc"
     break;
 
-  case 791: // sub_dhcp_ddns: "{" $@121 dhcp_ddns_params "}"
-#line 2786 "dhcp6_parser.yy"
+  case 788: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}"
+#line 2775 "dhcp6_parser.yy"
                                   {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 4355 "dhcp6_parser.cc"
+#line 4336 "dhcp6_parser.cc"
     break;
 
-  case 794: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2794 "dhcp6_parser.yy"
+  case 791: // dhcp_ddns_params: dhcp_ddns_params ","
+#line 2783 "dhcp6_parser.yy"
                                          {
                     ctx.warnAboutExtraCommas(yystack_[0].location);
                     }
-#line 4363 "dhcp6_parser.cc"
+#line 4344 "dhcp6_parser.cc"
     break;
 
-  case 813: // enable_updates: "enable-updates" ":" "boolean"
-#line 2819 "dhcp6_parser.yy"
+  case 810: // enable_updates: "enable-updates" ":" "boolean"
+#line 2808 "dhcp6_parser.yy"
                                              {
     ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 4373 "dhcp6_parser.cc"
+#line 4354 "dhcp6_parser.cc"
     break;
 
-  case 814: // $@122: %empty
-#line 2826 "dhcp6_parser.yy"
+  case 811: // $@121: %empty
+#line 2815 "dhcp6_parser.yy"
                                          {
     ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4382 "dhcp6_parser.cc"
+#line 4363 "dhcp6_parser.cc"
     break;
 
-  case 815: // dep_qualifying_suffix: "qualifying-suffix" $@122 ":" "constant string"
-#line 2829 "dhcp6_parser.yy"
+  case 812: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string"
+#line 2818 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 4392 "dhcp6_parser.cc"
+#line 4373 "dhcp6_parser.cc"
     break;
 
-  case 816: // $@123: %empty
-#line 2835 "dhcp6_parser.yy"
+  case 813: // $@122: %empty
+#line 2824 "dhcp6_parser.yy"
                      {
     ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4401 "dhcp6_parser.cc"
+#line 4382 "dhcp6_parser.cc"
     break;
 
-  case 817: // server_ip: "server-ip" $@123 ":" "constant string"
-#line 2838 "dhcp6_parser.yy"
+  case 814: // server_ip: "server-ip" $@122 ":" "constant string"
+#line 2827 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 4411 "dhcp6_parser.cc"
+#line 4392 "dhcp6_parser.cc"
     break;
 
-  case 818: // server_port: "server-port" ":" "integer"
-#line 2844 "dhcp6_parser.yy"
+  case 815: // server_port: "server-port" ":" "integer"
+#line 2833 "dhcp6_parser.yy"
                                        {
     ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 4421 "dhcp6_parser.cc"
+#line 4402 "dhcp6_parser.cc"
     break;
 
-  case 819: // $@124: %empty
-#line 2850 "dhcp6_parser.yy"
+  case 816: // $@123: %empty
+#line 2839 "dhcp6_parser.yy"
                      {
     ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4430 "dhcp6_parser.cc"
+#line 4411 "dhcp6_parser.cc"
     break;
 
-  case 820: // sender_ip: "sender-ip" $@124 ":" "constant string"
-#line 2853 "dhcp6_parser.yy"
+  case 817: // sender_ip: "sender-ip" $@123 ":" "constant string"
+#line 2842 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 4440 "dhcp6_parser.cc"
+#line 4421 "dhcp6_parser.cc"
     break;
 
-  case 821: // sender_port: "sender-port" ":" "integer"
-#line 2859 "dhcp6_parser.yy"
+  case 818: // sender_port: "sender-port" ":" "integer"
+#line 2848 "dhcp6_parser.yy"
                                        {
     ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 4450 "dhcp6_parser.cc"
+#line 4431 "dhcp6_parser.cc"
     break;
 
-  case 822: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2865 "dhcp6_parser.yy"
+  case 819: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2854 "dhcp6_parser.yy"
                                              {
     ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 4460 "dhcp6_parser.cc"
+#line 4441 "dhcp6_parser.cc"
     break;
 
-  case 823: // $@125: %empty
-#line 2871 "dhcp6_parser.yy"
+  case 820: // $@124: %empty
+#line 2860 "dhcp6_parser.yy"
                            {
     ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 4469 "dhcp6_parser.cc"
+#line 4450 "dhcp6_parser.cc"
     break;
 
-  case 824: // ncr_protocol: "ncr-protocol" $@125 ":" ncr_protocol_value
-#line 2874 "dhcp6_parser.yy"
+  case 821: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value
+#line 2863 "dhcp6_parser.yy"
                            {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4478 "dhcp6_parser.cc"
+#line 4459 "dhcp6_parser.cc"
     break;
 
-  case 825: // ncr_protocol_value: "UDP"
-#line 2880 "dhcp6_parser.yy"
+  case 822: // ncr_protocol_value: "UDP"
+#line 2869 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4484 "dhcp6_parser.cc"
+#line 4465 "dhcp6_parser.cc"
     break;
 
-  case 826: // ncr_protocol_value: "TCP"
-#line 2881 "dhcp6_parser.yy"
+  case 823: // ncr_protocol_value: "TCP"
+#line 2870 "dhcp6_parser.yy"
         { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4490 "dhcp6_parser.cc"
+#line 4471 "dhcp6_parser.cc"
     break;
 
-  case 827: // $@126: %empty
-#line 2884 "dhcp6_parser.yy"
+  case 824: // $@125: %empty
+#line 2873 "dhcp6_parser.yy"
                        {
     ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 4499 "dhcp6_parser.cc"
+#line 4480 "dhcp6_parser.cc"
     break;
 
-  case 828: // ncr_format: "ncr-format" $@126 ":" "JSON"
-#line 2887 "dhcp6_parser.yy"
+  case 825: // ncr_format: "ncr-format" $@125 ":" "JSON"
+#line 2876 "dhcp6_parser.yy"
              {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 4509 "dhcp6_parser.cc"
+#line 4490 "dhcp6_parser.cc"
     break;
 
-  case 829: // dep_override_no_update: "override-no-update" ":" "boolean"
-#line 2894 "dhcp6_parser.yy"
+  case 826: // dep_override_no_update: "override-no-update" ":" "boolean"
+#line 2883 "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)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 4519 "dhcp6_parser.cc"
+#line 4500 "dhcp6_parser.cc"
     break;
 
-  case 830: // dep_override_client_update: "override-client-update" ":" "boolean"
-#line 2901 "dhcp6_parser.yy"
+  case 827: // dep_override_client_update: "override-client-update" ":" "boolean"
+#line 2890 "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)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 4529 "dhcp6_parser.cc"
+#line 4510 "dhcp6_parser.cc"
     break;
 
-  case 831: // $@127: %empty
-#line 2908 "dhcp6_parser.yy"
+  case 828: // $@126: %empty
+#line 2897 "dhcp6_parser.yy"
                                              {
     ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 4538 "dhcp6_parser.cc"
+#line 4519 "dhcp6_parser.cc"
     break;
 
-  case 832: // dep_replace_client_name: "replace-client-name" $@127 ":" ddns_replace_client_name_value
-#line 2911 "dhcp6_parser.yy"
+  case 829: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value
+#line 2900 "dhcp6_parser.yy"
                                        {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 4547 "dhcp6_parser.cc"
+#line 4528 "dhcp6_parser.cc"
     break;
 
-  case 833: // $@128: %empty
-#line 2917 "dhcp6_parser.yy"
+  case 830: // $@127: %empty
+#line 2906 "dhcp6_parser.yy"
                                        {
     ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4556 "dhcp6_parser.cc"
+#line 4537 "dhcp6_parser.cc"
     break;
 
-  case 834: // dep_generated_prefix: "generated-prefix" $@128 ":" "constant string"
-#line 2920 "dhcp6_parser.yy"
+  case 831: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string"
+#line 2909 "dhcp6_parser.yy"
                {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 4566 "dhcp6_parser.cc"
+#line 4547 "dhcp6_parser.cc"
     break;
 
-  case 835: // $@129: %empty
-#line 2927 "dhcp6_parser.yy"
+  case 832: // $@128: %empty
+#line 2916 "dhcp6_parser.yy"
                                          {
     ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4575 "dhcp6_parser.cc"
+#line 4556 "dhcp6_parser.cc"
     break;
 
-  case 836: // dep_hostname_char_set: "hostname-char-set" $@129 ":" "constant string"
-#line 2930 "dhcp6_parser.yy"
+  case 833: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string"
+#line 2919 "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 4585 "dhcp6_parser.cc"
+#line 4566 "dhcp6_parser.cc"
     break;
 
-  case 837: // $@130: %empty
-#line 2937 "dhcp6_parser.yy"
+  case 834: // $@129: %empty
+#line 2926 "dhcp6_parser.yy"
                                                          {
     ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4594 "dhcp6_parser.cc"
+#line 4575 "dhcp6_parser.cc"
     break;
 
-  case 838: // dep_hostname_char_replacement: "hostname-char-replacement" $@130 ":" "constant string"
-#line 2940 "dhcp6_parser.yy"
+  case 835: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string"
+#line 2929 "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 4604 "dhcp6_parser.cc"
+#line 4585 "dhcp6_parser.cc"
     break;
 
-  case 839: // $@131: %empty
-#line 2949 "dhcp6_parser.yy"
+  case 836: // $@130: %empty
+#line 2938 "dhcp6_parser.yy"
                                {
     ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4612,48 +4593,48 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 4616 "dhcp6_parser.cc"
+#line 4597 "dhcp6_parser.cc"
     break;
 
-  case 840: // config_control: "config-control" $@131 ":" "{" config_control_params "}"
-#line 2955 "dhcp6_parser.yy"
+  case 837: // config_control: "config-control" $@130 ":" "{" config_control_params "}"
+#line 2944 "dhcp6_parser.yy"
                                                             {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4626 "dhcp6_parser.cc"
+#line 4607 "dhcp6_parser.cc"
     break;
 
-  case 841: // $@132: %empty
-#line 2961 "dhcp6_parser.yy"
+  case 838: // $@131: %empty
+#line 2950 "dhcp6_parser.yy"
                                    {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 4636 "dhcp6_parser.cc"
+#line 4617 "dhcp6_parser.cc"
     break;
 
-  case 842: // sub_config_control: "{" $@132 config_control_params "}"
-#line 2965 "dhcp6_parser.yy"
+  case 839: // sub_config_control: "{" $@131 config_control_params "}"
+#line 2954 "dhcp6_parser.yy"
                                        {
     // No config_control params are required
     // parsing completed
 }
-#line 4645 "dhcp6_parser.cc"
+#line 4626 "dhcp6_parser.cc"
     break;
 
-  case 845: // config_control_params: config_control_params ","
-#line 2973 "dhcp6_parser.yy"
+  case 842: // config_control_params: config_control_params ","
+#line 2962 "dhcp6_parser.yy"
                                                    {
                          ctx.warnAboutExtraCommas(yystack_[0].location);
                          }
-#line 4653 "dhcp6_parser.cc"
+#line 4634 "dhcp6_parser.cc"
     break;
 
-  case 848: // $@133: %empty
-#line 2983 "dhcp6_parser.yy"
+  case 845: // $@132: %empty
+#line 2972 "dhcp6_parser.yy"
                                    {
     ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4661,30 +4642,30 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 4665 "dhcp6_parser.cc"
+#line 4646 "dhcp6_parser.cc"
     break;
 
-  case 849: // config_databases: "config-databases" $@133 ":" "[" database_list "]"
-#line 2989 "dhcp6_parser.yy"
+  case 846: // config_databases: "config-databases" $@132 ":" "[" database_list "]"
+#line 2978 "dhcp6_parser.yy"
                                                       {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4674 "dhcp6_parser.cc"
+#line 4655 "dhcp6_parser.cc"
     break;
 
-  case 850: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2994 "dhcp6_parser.yy"
+  case 847: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 2983 "dhcp6_parser.yy"
                                                              {
     ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-fetch-wait-time", value);
 }
-#line 4684 "dhcp6_parser.cc"
+#line 4665 "dhcp6_parser.cc"
     break;
 
-  case 851: // $@134: %empty
-#line 3002 "dhcp6_parser.yy"
+  case 848: // $@133: %empty
+#line 2991 "dhcp6_parser.yy"
                  {
     ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4692,83 +4673,83 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 4696 "dhcp6_parser.cc"
+#line 4677 "dhcp6_parser.cc"
     break;
 
-  case 852: // loggers: "loggers" $@134 ":" "[" loggers_entries "]"
-#line 3008 "dhcp6_parser.yy"
+  case 849: // loggers: "loggers" $@133 ":" "[" loggers_entries "]"
+#line 2997 "dhcp6_parser.yy"
                                                          {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4705 "dhcp6_parser.cc"
+#line 4686 "dhcp6_parser.cc"
     break;
 
-  case 855: // loggers_entries: loggers_entries ","
-#line 3017 "dhcp6_parser.yy"
+  case 852: // loggers_entries: loggers_entries ","
+#line 3006 "dhcp6_parser.yy"
                                        {
                    ctx.warnAboutExtraCommas(yystack_[0].location);
                    }
-#line 4713 "dhcp6_parser.cc"
+#line 4694 "dhcp6_parser.cc"
     break;
 
-  case 856: // $@135: %empty
-#line 3023 "dhcp6_parser.yy"
+  case 853: // $@134: %empty
+#line 3012 "dhcp6_parser.yy"
                              {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 4723 "dhcp6_parser.cc"
+#line 4704 "dhcp6_parser.cc"
     break;
 
-  case 857: // logger_entry: "{" $@135 logger_params "}"
-#line 3027 "dhcp6_parser.yy"
+  case 854: // logger_entry: "{" $@134 logger_params "}"
+#line 3016 "dhcp6_parser.yy"
                                {
     ctx.stack_.pop_back();
 }
-#line 4731 "dhcp6_parser.cc"
+#line 4712 "dhcp6_parser.cc"
     break;
 
-  case 860: // logger_params: logger_params ","
-#line 3033 "dhcp6_parser.yy"
+  case 857: // logger_params: logger_params ","
+#line 3022 "dhcp6_parser.yy"
                                    {
                  ctx.warnAboutExtraCommas(yystack_[0].location);
                  }
-#line 4739 "dhcp6_parser.cc"
+#line 4720 "dhcp6_parser.cc"
     break;
 
-  case 868: // debuglevel: "debuglevel" ":" "integer"
-#line 3047 "dhcp6_parser.yy"
+  case 865: // debuglevel: "debuglevel" ":" "integer"
+#line 3036 "dhcp6_parser.yy"
                                      {
     ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 4749 "dhcp6_parser.cc"
+#line 4730 "dhcp6_parser.cc"
     break;
 
-  case 869: // $@136: %empty
-#line 3053 "dhcp6_parser.yy"
+  case 866: // $@135: %empty
+#line 3042 "dhcp6_parser.yy"
                    {
     ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4758 "dhcp6_parser.cc"
+#line 4739 "dhcp6_parser.cc"
     break;
 
-  case 870: // severity: "severity" $@136 ":" "constant string"
-#line 3056 "dhcp6_parser.yy"
+  case 867: // severity: "severity" $@135 ":" "constant string"
+#line 3045 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 4768 "dhcp6_parser.cc"
+#line 4749 "dhcp6_parser.cc"
     break;
 
-  case 871: // $@137: %empty
-#line 3062 "dhcp6_parser.yy"
+  case 868: // $@136: %empty
+#line 3051 "dhcp6_parser.yy"
                                     {
     ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4776,122 +4757,122 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 4780 "dhcp6_parser.cc"
+#line 4761 "dhcp6_parser.cc"
     break;
 
-  case 872: // output_options_list: "output-options" $@137 ":" "[" output_options_list_content "]"
-#line 3068 "dhcp6_parser.yy"
+  case 869: // output_options_list: "output-options" $@136 ":" "[" output_options_list_content "]"
+#line 3057 "dhcp6_parser.yy"
                                                                     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4789 "dhcp6_parser.cc"
+#line 4770 "dhcp6_parser.cc"
     break;
 
-  case 875: // output_options_list_content: output_options_list_content ","
-#line 3075 "dhcp6_parser.yy"
+  case 872: // output_options_list_content: output_options_list_content ","
+#line 3064 "dhcp6_parser.yy"
                                                                {
                                ctx.warnAboutExtraCommas(yystack_[0].location);
                                }
-#line 4797 "dhcp6_parser.cc"
+#line 4778 "dhcp6_parser.cc"
     break;
 
-  case 876: // $@138: %empty
-#line 3080 "dhcp6_parser.yy"
+  case 873: // $@137: %empty
+#line 3069 "dhcp6_parser.yy"
                              {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 4807 "dhcp6_parser.cc"
+#line 4788 "dhcp6_parser.cc"
     break;
 
-  case 877: // output_entry: "{" $@138 output_params_list "}"
-#line 3084 "dhcp6_parser.yy"
+  case 874: // output_entry: "{" $@137 output_params_list "}"
+#line 3073 "dhcp6_parser.yy"
                                     {
     ctx.stack_.pop_back();
 }
-#line 4815 "dhcp6_parser.cc"
+#line 4796 "dhcp6_parser.cc"
     break;
 
-  case 880: // output_params_list: output_params_list ","
-#line 3090 "dhcp6_parser.yy"
+  case 877: // output_params_list: output_params_list ","
+#line 3079 "dhcp6_parser.yy"
                                              {
                       ctx.warnAboutExtraCommas(yystack_[0].location);
                       }
-#line 4823 "dhcp6_parser.cc"
+#line 4804 "dhcp6_parser.cc"
     break;
 
-  case 886: // $@139: %empty
-#line 3102 "dhcp6_parser.yy"
+  case 883: // $@138: %empty
+#line 3091 "dhcp6_parser.yy"
                {
     ctx.unique("output", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4832 "dhcp6_parser.cc"
+#line 4813 "dhcp6_parser.cc"
     break;
 
-  case 887: // output: "output" $@139 ":" "constant string"
-#line 3105 "dhcp6_parser.yy"
+  case 884: // output: "output" $@138 ":" "constant string"
+#line 3094 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 4842 "dhcp6_parser.cc"
+#line 4823 "dhcp6_parser.cc"
     break;
 
-  case 888: // flush: "flush" ":" "boolean"
-#line 3111 "dhcp6_parser.yy"
+  case 885: // flush: "flush" ":" "boolean"
+#line 3100 "dhcp6_parser.yy"
                            {
     ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 4852 "dhcp6_parser.cc"
+#line 4833 "dhcp6_parser.cc"
     break;
 
-  case 889: // maxsize: "maxsize" ":" "integer"
-#line 3117 "dhcp6_parser.yy"
+  case 886: // maxsize: "maxsize" ":" "integer"
+#line 3106 "dhcp6_parser.yy"
                                {
     ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 4862 "dhcp6_parser.cc"
+#line 4843 "dhcp6_parser.cc"
     break;
 
-  case 890: // maxver: "maxver" ":" "integer"
-#line 3123 "dhcp6_parser.yy"
+  case 887: // maxver: "maxver" ":" "integer"
+#line 3112 "dhcp6_parser.yy"
                              {
     ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 4872 "dhcp6_parser.cc"
+#line 4853 "dhcp6_parser.cc"
     break;
 
-  case 891: // $@140: %empty
-#line 3129 "dhcp6_parser.yy"
+  case 888: // $@139: %empty
+#line 3118 "dhcp6_parser.yy"
                  {
     ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 4881 "dhcp6_parser.cc"
+#line 4862 "dhcp6_parser.cc"
     break;
 
-  case 892: // pattern: "pattern" $@140 ":" "constant string"
-#line 3132 "dhcp6_parser.yy"
+  case 889: // pattern: "pattern" $@139 ":" "constant string"
+#line 3121 "dhcp6_parser.yy"
                {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
     ctx.leave();
 }
-#line 4891 "dhcp6_parser.cc"
+#line 4872 "dhcp6_parser.cc"
     break;
 
-  case 893: // $@141: %empty
-#line 3138 "dhcp6_parser.yy"
+  case 890: // $@140: %empty
+#line 3127 "dhcp6_parser.yy"
                              {
     ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4899,38 +4880,38 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(i);
     ctx.enter(ctx.COMPATIBILITY);
 }
-#line 4903 "dhcp6_parser.cc"
+#line 4884 "dhcp6_parser.cc"
     break;
 
-  case 894: // compatibility: "compatibility" $@141 ":" "{" compatibility_params "}"
-#line 3144 "dhcp6_parser.yy"
+  case 891: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}"
+#line 3133 "dhcp6_parser.yy"
                                                            {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 4912 "dhcp6_parser.cc"
+#line 4893 "dhcp6_parser.cc"
     break;
 
-  case 897: // compatibility_params: compatibility_params ","
-#line 3151 "dhcp6_parser.yy"
+  case 894: // compatibility_params: compatibility_params ","
+#line 3140 "dhcp6_parser.yy"
                                                  {
                         ctx.warnAboutExtraCommas(yystack_[0].location);
                         }
-#line 4920 "dhcp6_parser.cc"
+#line 4901 "dhcp6_parser.cc"
     break;
 
-  case 900: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3160 "dhcp6_parser.yy"
+  case 897: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
+#line 3149 "dhcp6_parser.yy"
                                                              {
     ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lenient-option-parsing", b);
 }
-#line 4930 "dhcp6_parser.cc"
+#line 4911 "dhcp6_parser.cc"
     break;
 
 
-#line 4934 "dhcp6_parser.cc"
+#line 4915 "dhcp6_parser.cc"
 
             default:
               break;
@@ -5282,152 +5263,152 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -1047;
+  const short Dhcp6Parser::yypact_ninf_ = -1043;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     637, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047,    53,    26,    29,    48,    70,
-      72,    93,   108,   114,   123,   133,   160,   175,   186,   208,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,    26,  -182,
-      74,   166,    23,   592,   197,   -12,   214,   169,   102,    87,
-    -101,   692,    94, -1047,   266,   275,    85,   272,   290, -1047,
-      77, -1047, -1047, -1047, -1047, -1047, -1047, -1047,    98,   292,
-     293,   295,   296,   316,   320,   322,   357,   371,   373,   389,
-     390,   401, -1047,   403,   404,   431,   449,   450, -1047, -1047,
-   -1047,   457,   460,   461,   464, -1047, -1047, -1047,   465, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   466,   467,   468, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   469, -1047,
-   -1047, -1047, -1047, -1047, -1047,   471,   473,   475, -1047, -1047,
-     476, -1047,    78, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,   477,   478,   479,   480, -1047,    96, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047,   482,   483, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   106, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047,   489, -1047, -1047,
-   -1047, -1047,   125, -1047, -1047, -1047, -1047, -1047, -1047,   490,
-   -1047,   492,   493, -1047, -1047, -1047, -1047, -1047, -1047,   126,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047,   328,   415, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047,   418, -1047, -1047,
-     494, -1047, -1047, -1047,   497, -1047, -1047,   444,   500, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047,   503,   504,   506, -1047, -1047, -1047, -1047,   496,
-     509, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   140, -1047, -1047, -1047,   510, -1047,
-   -1047,   511, -1047,   514,   516, -1047, -1047,   518,   519, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   154, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   522,   176, -1047, -1047, -1047, -1047,
-      26,    26, -1047,   287,   523, -1047, -1047,   528,   532,   533,
-     534,   535,   539,   317,   321,   324,   325,   327,   329,   331,
-     334,   318,   337,   338,   340,   342,   343,   545,   344,   345,
-     335,   351,   352,   553,   563,   570,   354,   356,   359,   361,
-     582,   587,   589,   367,   593,   594,   596,   597,   598,   599,
-     600,   376,   377,   383,   611,   612,   613,   614,   615,   616,
-     618,   619,   625,   405,   626,   627,   630,   632,   633,   634,
-     410,   427,   428,   654,   655, -1047,   166, -1047,   666,   445,
-     446,   451,   452,    23, -1047,   667,   669,   672,   673,   677,
-     455,   458,   684,   685,   686,   592, -1047,   687,   472,   197,
-   -1047,   689,   481,   691,   484,   488,   -12, -1047,   694,   706,
-     712,   713,   714,   715,   716, -1047,   214, -1047,   717,   725,
-     505,   726,   729,   730,   507, -1047,   102,   738,   515,   520,
-     521, -1047,    87,   739,   741,     0, -1047,   524,   743,   744,
-     525,   750,   542,   543,   751,   767,   555,   558,   768,   786,
-     792,   798,   692, -1047,   799,   577,    94, -1047, -1047, -1047,
-     801,   702,   470,   800,   802,   803,   804,   636, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047,   580, -1047, -1047, -1047, -1047, -1047,    90,   586,
-     595, -1047, -1047, -1047, -1047,   810,   817,   818, -1047,   602,
-     603,   262,   819,   823,   605,   341, -1047, -1047, -1047,   827,
-     828,   829,   830,   831,   833,   835,   834,   836, -1047,   837,
-     838,   839,   840,   638,   639, -1047, -1047, -1047,   858,   859,
-   -1047,   862, -1047, -1047, -1047, -1047, -1047,   876,   877,   657,
-     658,   659, -1047, -1047,   862,   660,   880, -1047,   664, -1047,
-   -1047,   665, -1047,   668, -1047, -1047, -1047,   862,   862,   862,
-     670,   671,   674,   678, -1047,   679,   680, -1047,   681,   682,
-     683, -1047, -1047,   688, -1047, -1047, -1047, -1047,   690,   823,
-   -1047, -1047,   693,   695, -1047,   696, -1047, -1047,   -14,   617,
-   -1047, -1047,    90,   697,   698,   699, -1047,   887, -1047, -1047,
-      26,   166, -1047,    94,    23,   350,   350,   886, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047,   888,   891,   892,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047,   896, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,  -107,    26,    24,   136,
-     903,   904,   905,   219,    42,   237,    36,   -61,   692, -1047,
-   -1047,   906,  -144, -1047, -1047,   908,   910, -1047, -1047, -1047,
-   -1047, -1047,   -83, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047,   886, -1047,   248,   258,   330, -1047, -1047, -1047,
-   -1047,   916,   922,   923,   924,   925,   926,   928,   929,   930,
-     931, -1047,   932,   933, -1047, -1047, -1047, -1047, -1047,   332,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,   336, -1047,   934,   935, -1047, -1047,   936,
-     938, -1047, -1047,   937,   941, -1047, -1047,   939,   943, -1047,
-   -1047,   942,   944, -1047, -1047, -1047,    95, -1047, -1047, -1047,
-     945, -1047, -1047, -1047,   206, -1047, -1047, -1047, -1047, -1047,
-     339, -1047, -1047, -1047, -1047,   210, -1047, -1047,   946,   947,
-   -1047, -1047,   948,   950, -1047,   951,   952,   953,   954,   955,
-     956,   398, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047,   957,   958,   959, -1047, -1047, -1047, -1047,   412, -1047,
-   -1047, -1047, -1047, -1047, -1047,   960,   961,   962, -1047,   413,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047,   414, -1047, -1047, -1047,   963, -1047,   964, -1047, -1047,
-   -1047,   416, -1047, -1047, -1047, -1047, -1047,   422, -1047,   244,
-   -1047,   965, -1047,   424, -1047, -1047,   723, -1047,   966,   967,
-   -1047, -1047,   968,   970, -1047, -1047, -1047,   969, -1047,   972,
-   -1047, -1047, -1047,   971,   975,   976,   977,   749,   710,   755,
-     742,   756,   757,   758,   759,   760,   761,   986,   762,   766,
-     990,   992,   993,   995,   350, -1047, -1047,   350, -1047,   886,
-     592, -1047,   888,   102, -1047,   891,    87, -1047,   892,   705,
-   -1047,   896,  -107, -1047, -1047,    24, -1047,   998,  1000,   136,
-   -1047,   358,   903, -1047,   214, -1047,   904,  -101, -1047,   905,
-     778,   780,   781,   784,   787,   791,   219, -1047,  1015,  1016,
-     796,   806,   807,    42, -1047,   842,   808,   820,   237, -1047,
-    1025,  1027,    36, -1047,   843,  1052,   855,  1063,   -61, -1047,
-   -1047,    99,   906, -1047,   856,  -144, -1047, -1047,  1081,  1066,
-     197, -1047,   908,   -12, -1047,   910,  1084, -1047, -1047,   283,
-     863,   868,   882, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,   274, -1047, -1047,   895,   918,   920,   921,
-   -1047,   425, -1047,   426, -1047,  1146, -1047,  1148, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   433,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   940,   949,
-   -1047, -1047, -1047,  1153, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047,  1150,  1156, -1047, -1047, -1047,
-   -1047, -1047, -1047,  1152, -1047,   434, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   192,   973, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   974,   978, -1047, -1047,   979, -1047,
-      26, -1047, -1047,  1157, -1047, -1047, -1047, -1047, -1047,   440,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   980,   441,
-   -1047,   442, -1047,   981, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,   705, -1047, -1047, -1047,  1158,  1159,   982,
-   -1047,   358, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,  1160,   983,  1161,    99, -1047, -1047, -1047,
-   -1047, -1047, -1047,   987,   989, -1047, -1047,  1162, -1047,   994,
-   -1047, -1047, -1047,  1163, -1047, -1047,   273, -1047,    -9,  1163,
-   -1047, -1047,  1164,  1165,  1167, -1047,   448, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,  1168,   996,   985,   991,  1169,    -9,
-   -1047,   997, -1047, -1047, -1047,  1001, -1047, -1047, -1047
+     -26, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043,    36,    34,    35,    82,    90,
+     114,   118,   122,   143,   144,   164,   166,   175,   196,   244,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,    34,  -164,
+      70,   155,    75,   592,   298,   318,   231,   126,    91,   250,
+     -99,   681,    54, -1043,   138,   262,   268,   258,   279, -1043,
+      71, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   288,   297,
+     316,   317,   322,   326,   334,   343,   344,   358,   359,   370,
+     371,   393, -1043,   404,   405,   437,   443,   453, -1043, -1043,
+   -1043,   466,   467,   473,   478, -1043, -1043, -1043,   479, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,   482,   483,   489, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   490, -1043,
+   -1043, -1043, -1043, -1043, -1043,   492,   493,   494, -1043, -1043,
+     497, -1043,    74, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043,   499,   500,   503,   504, -1043,    93, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,   506,   511, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,    96, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043,   514, -1043, -1043,
+   -1043, -1043,   111, -1043, -1043, -1043, -1043, -1043, -1043,   516,
+   -1043,   518,   522, -1043, -1043, -1043, -1043, -1043, -1043,   119,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043,   275,   342, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043,   296, -1043, -1043,
+     523, -1043, -1043, -1043,   528, -1043, -1043,   423,   448, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,   532,   533,   534, -1043, -1043, -1043, -1043,   432,
+     536, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   151, -1043, -1043, -1043,   540, -1043,
+   -1043,   543, -1043,   544,   545, -1043, -1043,   547,   548, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,   161, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   550,   290, -1043, -1043, -1043, -1043,
+      34,    34, -1043,   225,   552, -1043, -1043,   553,   554,   557,
+     560,   561,   562,   345,   346,   350,   360,   361,   364,   365,
+     367,   339,   354,   356,   375,   368,   372,   564,   377,   378,
+     369,   384,   387,   565,   580,   581,   388,   389,   379,   390,
+     596,   597,   601,   394,   615,   619,   622,   623,   624,   627,
+     628,   406,   410,   411,   629,   631,   632,   636,   637,   638,
+     652,   653,   654,   433,   666,   667,   669,   670,   671,   672,
+     449,   451,   459,   674,   677, -1043,   155, -1043,   678,   462,
+     463,   469,   470,    75, -1043,   684,   685,   689,   694,   695,
+     484,   480,   705,   707,   711,   592, -1043,   712,   491,   298,
+   -1043,   714,   495,   715,   507,   508,   318, -1043,   716,   725,
+     726,   728,   732,   738,   739, -1043,   231, -1043,   740,   742,
+     521,   744,   745,   746,   524, -1043,    91,   749,   526,   541,
+     542, -1043,   250,   764,   767,   -95, -1043,   555,   782,   795,
+     574,   797,   576,   577,   800,   801,   578,   579,   804,   805,
+     806,   807,   681, -1043,   810,   594,    54, -1043, -1043, -1043,
+     817,   815,   598,   820,   821,   822,   823,   826, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,   607, -1043, -1043, -1043, -1043, -1043,  -128,   608,
+     610, -1043, -1043, -1043, -1043,   831,   832,   834, -1043,   616,
+     617,   160,   835,   836,   620,   301, -1043, -1043, -1043,   839,
+     841,   843,   842,   845,   846,   847,   848,   862, -1043,   863,
+     864,   865,   866,   649,   650, -1043, -1043, -1043,   849,   871,
+   -1043,   874, -1043, -1043, -1043, -1043, -1043,   875,   876,   657,
+     658,   659, -1043, -1043,   874,   660,   879, -1043,   662, -1043,
+   -1043,   663, -1043,   664, -1043, -1043, -1043,   874,   874,   874,
+     665,   668,   673,   676, -1043,   679,   680, -1043,   682,   683,
+     686, -1043, -1043,   687, -1043, -1043, -1043, -1043,   688,   836,
+   -1043, -1043,   690,   691, -1043,   692, -1043, -1043,   -76,   701,
+   -1043, -1043,  -128,   693,   696,   697, -1043,   887, -1043, -1043,
+      34,   155, -1043,    54,    75,   355,   355,   888, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043,   889,   890,   895,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043,   896, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,  -107,    34,    23,   115,
+     902,   903,   907,    88,   136,   248,   -23,   -64,   681, -1043,
+   -1043,   912,  -177, -1043, -1043,   913,   916, -1043, -1043, -1043,
+   -1043, -1043,   757, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,   888, -1043,   302,   304,   320, -1043, -1043, -1043,
+   -1043,   920,   921,   922,   923,   924,   926,   927,   928,   929,
+     930, -1043,   931,   932, -1043, -1043, -1043, -1043, -1043,   338,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043,   341, -1043,   933,   850, -1043, -1043,   934,
+     935, -1043, -1043,   936,   938, -1043, -1043,   937,   941, -1043,
+   -1043,   939,   943, -1043, -1043, -1043,    78, -1043, -1043, -1043,
+     942, -1043, -1043, -1043,   137, -1043, -1043, -1043, -1043, -1043,
+     373, -1043, -1043, -1043, -1043,   198, -1043, -1043,   944,   946,
+   -1043, -1043,   945,   949, -1043,   950,   951,   952,   953,   954,
+     955,   374, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   956,   957,   958, -1043, -1043, -1043, -1043,   407, -1043,
+   -1043, -1043, -1043, -1043, -1043,   959,   960,   961, -1043,   408,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   426, -1043, -1043, -1043,   962, -1043,   963, -1043, -1043,
+   -1043,   427, -1043, -1043, -1043, -1043, -1043,   434, -1043,   300,
+   -1043,   964, -1043,   435, -1043, -1043,   722, -1043,   947,   966,
+   -1043, -1043,   965,   967, -1043, -1043,   968,   969, -1043, -1043,
+   -1043,   970,   973,   974,   975,   747,   709,   754,   753,   756,
+     758,   759,   760,   762,   763,   979,   766,   765,   988,   991,
+     996,   998,   355, -1043, -1043,   355, -1043,   888,   592, -1043,
+     889,    91, -1043,   890,   250, -1043,   895,   704, -1043,   896,
+    -107, -1043, -1043,    23, -1043,   999,  1001,   115, -1043,   234,
+     902, -1043,   231, -1043,   903,   -99, -1043,   907,   783,   786,
+     790,   791,   803,   819,    88, -1043,  1017,  1023,   828,   844,
+     854,   136, -1043,   837,   859,   860,   248, -1043,  1027,  1028,
+     -23, -1043,   878,  1029,   893,  1063,   -64, -1043, -1043,    49,
+     912, -1043,   911,  -177, -1043, -1043,  1135,  1066,   298, -1043,
+     913,   318, -1043,   916, -1043, -1043,   454,   917,   919,   925,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+     447, -1043, -1043,   940,   948,   971,   972, -1043,   436, -1043,
+     446, -1043,  1137, -1043,  1141, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,   450, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043,   977,   978, -1043, -1043, -1043,
+    1147, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,  1144,  1150, -1043, -1043, -1043, -1043, -1043, -1043,
+    1146, -1043,   457, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   357,   980, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   981,   982, -1043, -1043,   983, -1043,    34, -1043, -1043,
+    1151, -1043, -1043, -1043, -1043, -1043,   458, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043,   985,   460, -1043,   461, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   704,
+   -1043, -1043, -1043,  1152,  1153,   986, -1043,   234, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,  1154,
+     987,  1155,    49, -1043, -1043, -1043, -1043, -1043,   990,   992,
+   -1043, -1043,  1156, -1043,   993, -1043, -1043, -1043,  1157, -1043,
+   -1043,   321, -1043,   -74,  1157, -1043, -1043,  1158,  1159,  1162,
+   -1043,   464, -1043, -1043, -1043, -1043, -1043, -1043, -1043,  1163,
+     994,   995,   997,  1164,   -74, -1043,  1000, -1043, -1043, -1043,
+    1002, -1043, -1043, -1043
   };
 
   const short
@@ -5439,16 +5420,16 @@ namespace isc { namespace dhcp {
        1,    46,    38,    34,    33,    30,    31,    32,    37,     3,
       35,    36,    61,     5,    67,     7,   199,     9,   388,    11,
      601,    13,   630,    15,   662,    17,   519,    19,   528,    21,
-     567,    23,   350,    25,   790,    27,   841,    29,    48,    41,
+     567,    23,   350,    25,   787,    27,   838,    29,    48,    41,
        0,     0,     0,     0,     0,     0,   664,     0,   530,   569,
        0,     0,     0,    50,     0,    49,     0,     0,    42,    63,
-       0,    65,   141,   839,   197,   218,   220,   222,     0,     0,
+       0,    65,   141,   836,   197,   218,   220,   222,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   187,     0,     0,     0,     0,     0,   160,   167,
      169,     0,     0,     0,     0,   379,   517,   558,     0,   190,
      192,   173,   461,   617,   619,   453,     0,     0,     0,   306,
-     325,   315,   295,   700,   653,   341,   362,   732,     0,   327,
-     757,   771,   788,   180,   182,     0,     0,     0,   851,   893,
+     325,   315,   295,   697,   653,   341,   362,   729,     0,   327,
+     754,   768,   785,   180,   182,     0,     0,     0,   848,   890,
        0,   140,     0,    69,    72,    73,    74,    75,    76,    77,
       78,    79,    80,   111,   112,   113,   114,   115,    81,   119,
      120,   121,   122,   123,   124,   125,   126,   127,   128,   117,
@@ -5473,11 +5454,11 @@ namespace isc { namespace dhcp {
      535,   547,   536,   537,   538,   554,   539,   540,   541,   542,
      543,   585,     0,     0,     0,   583,   584,   587,   588,     0,
      570,   571,   574,   575,   576,   577,   578,   579,   580,   581,
-     582,   358,   360,   355,     0,   352,   356,   357,     0,   814,
-     816,     0,   819,     0,     0,   823,   827,     0,     0,   831,
-     833,   835,   837,   812,   810,   811,     0,   792,   795,   807,
-     796,   797,   798,   799,   800,   801,   802,   803,   804,   805,
-     806,   808,   809,   848,     0,     0,   843,   846,   847,    47,
+     582,   358,   360,   355,     0,   352,   356,   357,     0,   811,
+     813,     0,   816,     0,     0,   820,   824,     0,     0,   828,
+     830,   832,   834,   809,   807,   808,     0,   789,   792,   804,
+     793,   794,   795,   796,   797,   798,   799,   800,   801,   802,
+     803,   805,   806,   845,     0,     0,   840,   843,   844,    47,
       52,     0,    39,    45,     0,    66,    62,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -5493,21 +5474,21 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,   529,   534,     0,     0,     0,
        0,   568,   573,     0,     0,   354,   351,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   794,   791,     0,     0,   845,   842,    51,    43,
+       0,     0,   791,   788,     0,     0,   842,   839,    51,    43,
        0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,     0,   185,   186,   157,   158,   159,     0,     0,
        0,   171,   172,   179,   184,     0,     0,     0,   189,     0,
        0,     0,     0,     0,     0,     0,   450,   451,   452,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   756,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   753,     0,
        0,     0,     0,     0,     0,   194,   195,   196,     0,     0,
       70,     0,   214,   215,   216,   217,   202,     0,     0,     0,
        0,     0,   459,   460,     0,     0,     0,   391,     0,   616,
      604,     0,   648,     0,   651,   652,   633,     0,     0,     0,
        0,     0,     0,     0,   667,     0,     0,   546,     0,     0,
        0,   557,   533,     0,   589,   590,   591,   572,     0,     0,
-     353,   813,     0,     0,   818,     0,   821,   822,     0,     0,
-     829,   830,     0,     0,     0,     0,   793,     0,   850,   844,
+     353,   810,     0,     0,   815,     0,   818,   819,     0,     0,
+     826,   827,     0,     0,     0,     0,   790,     0,   847,   841,
        0,     0,   142,     0,     0,     0,     0,   224,   188,   162,
      163,   164,   165,   166,   161,   168,   170,   381,   521,   560,
      191,   193,   175,   176,   177,   178,   174,   463,    40,   618,
@@ -5516,8 +5497,8 @@ namespace isc { namespace dhcp {
      183,     0,     0,    53,   213,   594,   623,   441,   443,   445,
      449,   447,     0,   615,   647,   650,   693,   681,   683,   685,
      687,   689,   691,   549,   270,   553,   551,   556,   586,   359,
-     361,   815,   817,   820,   825,   826,   824,   828,   832,   834,
-     836,   838,   224,    44,     0,     0,     0,   257,   262,   264,
+     361,   812,   814,   817,   822,   823,   821,   825,   829,   831,
+     833,   835,   224,    44,     0,     0,     0,   257,   262,   264,
      266,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,   279,     0,     0,   287,   289,   291,   293,   256,     0,
      231,   234,   235,   236,   237,   238,   239,   240,   241,   242,
@@ -5526,103 +5507,103 @@ namespace isc { namespace dhcp {
      382,   383,   526,     0,   522,   523,   565,     0,   561,   562,
      468,     0,   464,   465,   313,   314,     0,   308,   311,   312,
        0,   323,   324,   320,     0,   317,   321,   322,   302,   304,
-       0,   297,   300,   301,   705,     0,   702,   660,     0,   656,
+       0,   297,   300,   301,   702,     0,   699,   660,     0,   656,
      657,   348,     0,   344,   345,     0,     0,     0,     0,     0,
-       0,     0,   364,   367,   368,   369,   370,   371,   372,   746,
-     752,     0,     0,     0,   745,   742,   743,   744,     0,   734,
-     737,   740,   738,   739,   741,     0,     0,     0,   337,     0,
-     329,   332,   333,   334,   335,   336,   767,   769,   766,   764,
-     765,     0,   759,   762,   763,     0,   783,     0,   786,   779,
-     780,     0,   773,   776,   777,   778,   781,     0,   856,     0,
-     853,     0,   899,     0,   895,   898,    55,   599,     0,   595,
-     596,   628,     0,   624,   625,   698,   697,     0,   696,     0,
-      64,   840,   198,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   364,   367,   368,   369,   370,   371,   372,   743,
+     749,     0,     0,     0,   742,   739,   740,   741,     0,   731,
+     734,   737,   735,   736,   738,     0,     0,     0,   337,     0,
+     329,   332,   333,   334,   335,   336,   764,   766,   763,   761,
+     762,     0,   756,   759,   760,     0,   780,     0,   783,   776,
+     777,     0,   770,   773,   774,   775,   778,     0,   853,     0,
+     850,     0,   896,     0,   892,   895,    55,   599,     0,   595,
+     596,   628,     0,   624,   625,   696,     0,     0,    64,   837,
+     198,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   233,   219,   221,     0,   223,   228,
-       0,   380,   385,   530,   518,   525,   569,   559,   564,     0,
-     462,   467,   310,   307,   326,   319,   316,     0,     0,   299,
-     296,   707,   704,   701,   664,   654,   659,     0,   342,   347,
-       0,     0,     0,     0,     0,     0,   366,   363,     0,     0,
-       0,     0,     0,   736,   733,     0,     0,     0,   331,   328,
-       0,     0,   761,   758,     0,     0,     0,     0,   775,   772,
-     789,     0,   855,   852,     0,   897,   894,    57,     0,    56,
-       0,   593,   598,     0,   622,   627,     0,   695,   849,     0,
-       0,     0,     0,   268,   271,   272,   273,   274,   275,   276,
-     277,   286,   278,     0,   284,   285,     0,     0,     0,     0,
-     232,     0,   227,     0,   384,     0,   524,     0,   563,   516,
-     487,   488,   489,   491,   492,   493,   477,   478,   496,   497,
-     498,   499,   500,   503,   504,   505,   506,   507,   508,   509,
-     510,   511,   512,   501,   502,   513,   514,   515,   473,   474,
-     475,   476,   485,   486,   482,   483,   484,   481,   490,     0,
-     470,   479,   494,   495,   480,   466,   309,   318,     0,     0,
-     298,   727,   729,     0,   725,   719,   720,   721,   722,   723,
-     724,   726,   716,   717,   718,     0,   708,   709,   712,   713,
-     714,   715,   703,     0,   658,     0,   346,   373,   374,   375,
-     376,   377,   378,   365,     0,     0,   751,   754,   755,   735,
-     338,   339,   340,   330,     0,     0,   760,   782,     0,   785,
-       0,   774,   871,     0,   869,   867,   861,   865,   866,     0,
-     858,   863,   864,   862,   854,   900,   896,    54,    59,     0,
-     597,     0,   626,     0,   259,   260,   261,   258,   263,   265,
-     267,   281,   282,   283,   280,   288,   290,   292,   294,   230,
-     387,   527,   566,   472,   469,   303,   305,     0,     0,     0,
-     706,   711,   661,   349,   748,   749,   750,   747,   753,   768,
-     770,   784,   787,     0,     0,     0,   860,   857,    58,   600,
-     629,   699,   471,     0,     0,   731,   710,     0,   868,     0,
-     859,   728,   730,     0,   870,   876,     0,   873,     0,   875,
-     872,   886,     0,     0,     0,   891,     0,   878,   881,   882,
-     883,   884,   885,   874,     0,     0,     0,     0,     0,   880,
-     877,     0,   888,   889,   890,     0,   879,   887,   892
+       0,     0,   233,   219,   221,     0,   223,   228,     0,   380,
+     385,   530,   518,   525,   569,   559,   564,     0,   462,   467,
+     310,   307,   326,   319,   316,     0,     0,   299,   296,   704,
+     701,   698,   664,   654,   659,     0,   342,   347,     0,     0,
+       0,     0,     0,     0,   366,   363,     0,     0,     0,     0,
+       0,   733,   730,     0,     0,     0,   331,   328,     0,     0,
+     758,   755,     0,     0,     0,     0,   772,   769,   786,     0,
+     852,   849,     0,   894,   891,    57,     0,    56,     0,   593,
+     598,     0,   622,   627,   695,   846,     0,     0,     0,     0,
+     268,   271,   272,   273,   274,   275,   276,   277,   286,   278,
+       0,   284,   285,     0,     0,     0,     0,   232,     0,   227,
+       0,   384,     0,   524,     0,   563,   516,   487,   488,   489,
+     491,   492,   493,   477,   478,   496,   497,   498,   499,   500,
+     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
+     501,   502,   513,   514,   515,   473,   474,   475,   476,   485,
+     486,   482,   483,   484,   481,   490,     0,   470,   479,   494,
+     495,   480,   466,   309,   318,     0,     0,   298,   724,   726,
+       0,   722,   716,   717,   718,   719,   720,   721,   723,   713,
+     714,   715,     0,   705,   706,   709,   710,   711,   712,   700,
+       0,   658,     0,   346,   373,   374,   375,   376,   377,   378,
+     365,     0,     0,   748,   751,   752,   732,   338,   339,   340,
+     330,     0,     0,   757,   779,     0,   782,     0,   771,   868,
+       0,   866,   864,   858,   862,   863,     0,   855,   860,   861,
+     859,   851,   897,   893,    54,    59,     0,   597,     0,   626,
+     259,   260,   261,   258,   263,   265,   267,   281,   282,   283,
+     280,   288,   290,   292,   294,   230,   387,   527,   566,   472,
+     469,   303,   305,     0,     0,     0,   703,   708,   661,   349,
+     745,   746,   747,   744,   750,   765,   767,   781,   784,     0,
+       0,     0,   857,   854,    58,   600,   629,   471,     0,     0,
+     728,   707,     0,   865,     0,   856,   725,   727,     0,   867,
+     873,     0,   870,     0,   872,   869,   883,     0,     0,     0,
+     888,     0,   875,   878,   879,   880,   881,   882,   871,     0,
+       0,     0,     0,     0,   877,   874,     0,   885,   886,   887,
+       0,   876,   884,   889
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,    -4, -1047,  -602, -1047,
-     113, -1047, -1047, -1047, -1047,   387, -1047,  -644, -1047, -1047,
-   -1047,   -71, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   429,
-     650, -1047, -1047,   -43,   -39,    10,    14,    15,    17,   -24,
-     -21,   -17,   -11,    30,    32,    33, -1047,    37,    43,    44,
-      47, -1047,   435,    50, -1047,    51, -1047,    62,    63,    64,
-   -1047, -1047,    65,    66, -1047,    68, -1047,    69, -1047, -1047,
-   -1047, -1047, -1047,    76, -1047,    79, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   430,   645, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   346, -1047,
-     120, -1047,  -745,   127, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   -41, -1047,  -788, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047,   103, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   111,
-    -768, -1047, -1047, -1047, -1047,   110, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,    88, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047,    97, -1047, -1047, -1047,   100,   604, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   101, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1046, -1047, -1047, -1047,   128, -1047, -1047, -1047,   131,
-     647, -1047, -1047, -1044, -1047, -1043, -1047,    84, -1047,    86,
-   -1047,    80,    81,    82,    83, -1047, -1047, -1047, -1042, -1047,
-   -1047, -1047, -1047,   122, -1047, -1047,  -119,  1118, -1047, -1047,
-   -1047, -1047, -1047,   137, -1047, -1047, -1047,   135, -1047,   646,
-   -1047,   -66, -1047, -1047, -1047, -1047, -1047,   -65, -1047, -1047,
-   -1047, -1047, -1047,   -16, -1047, -1047, -1047,   141, -1047, -1047,
-   -1047,   142, -1047,   621, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,    89, -1047, -1047, -1047,
-      71,   675, -1047, -1047, -1047,   -57, -1047,    -3, -1047, -1047,
-   -1047, -1047, -1047,    91, -1047, -1047, -1047,   104,   676, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   -45, -1047, -1047, -1047,
-     143, -1047, -1047, -1047,   144, -1047,   701,   419, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1040, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   148,
-   -1047, -1047, -1047,   -88, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047,   132, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   124, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047,   116, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047,   443,   641, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047,   485,   640, -1047, -1047,
-   -1047, -1047, -1047, -1047,   117, -1047, -1047,   -96, -1047, -1047,
-   -1047, -1047, -1047, -1047,  -115, -1047, -1047,  -134, -1047, -1047,
-   -1047, -1047, -1047, -1047, -1047, -1047, -1047, -1047,   129, -1047
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,    -5, -1043,  -618, -1043,
+     243, -1043, -1043, -1043, -1043,   382, -1043,  -654, -1043, -1043,
+   -1043,   -71, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   409,
+     644, -1043, -1043,   -61,   -43,   -39,    10,    14,    15,   -24,
+     -21,   -17,   -11,    17,    25,    29, -1043,    30,    32,    33,
+      37, -1043,   429,    43, -1043,    44, -1043,    47,    50,    51,
+   -1043, -1043,    62,    63, -1043,    64, -1043,    65, -1043, -1043,
+   -1043, -1043, -1043,    66, -1043,    68, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   418,   641, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   333, -1043,
+     120, -1043,  -736,   124, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   -41, -1043,  -788, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   101, -1043, -1043, -1043, -1043, -1043, -1043, -1043,   109,
+    -765, -1043, -1043, -1043, -1043,   107, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043,    77, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,    94, -1043, -1043, -1043,    97,   599, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,    92, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1042, -1043, -1043, -1043,   125, -1043, -1043, -1043,   129,
+     643, -1043, -1043, -1041, -1043, -1040, -1043,    73, -1043,    81,
+   -1043,    69,    76,    79,    80, -1043, -1043, -1043, -1038, -1043,
+   -1043, -1043, -1043,   121, -1043, -1043,  -120,  1114, -1043, -1043,
+   -1043, -1043, -1043,   130, -1043, -1043, -1043,   131, -1043,   618,
+   -1043,   -66, -1043, -1043, -1043, -1043, -1043,   -65, -1043, -1043,
+   -1043, -1043, -1043,   -16, -1043, -1043, -1043,   132, -1043, -1043,
+   -1043,   135, -1043,   613, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,    86, -1043, -1043, -1043,
+      72,   675, -1043, -1043, -1043,   -57, -1043,    -3, -1043, -1043,
+   -1043, -1043, -1043,    87, -1043, -1043, -1043,    95,   655, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,   -45, -1043, -1043, -1043,
+     145, -1043, -1043, -1043,   146, -1043,   698,   419, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1036, -1043, -1043, -1043, -1043, -1043,   139, -1043, -1043,
+   -1043,   -87, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043,   133, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   123, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043,   116, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043,   438,   633, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043,   486,   634, -1043, -1043, -1043, -1043,
+   -1043, -1043,   117, -1043, -1043,   -91, -1043, -1043, -1043, -1043,
+   -1043, -1043,  -112, -1043, -1043,  -131, -1043, -1043, -1043, -1043,
+   -1043, -1043, -1043, -1043, -1043, -1043,   127, -1043
   };
 
   const short
@@ -5630,8 +5611,8 @@ namespace isc { namespace dhcp {
   {
        0,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    83,    39,    40,    69,
-     779,    87,    88,    41,    68,    84,    85,   804,  1016,  1128,
-    1129,   868,    43,    70,    90,   454,    91,    45,    71,   162,
+     779,    87,    88,    41,    68,    84,    85,   804,  1016,  1126,
+    1127,   868,    43,    70,    90,   454,    91,    45,    71,   162,
      163,   164,   457,   165,   166,   167,   168,   169,   170,   171,
      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
      182,   483,   764,   183,   484,   184,   485,   185,   186,   187,
@@ -5639,571 +5620,570 @@ namespace isc { namespace dhcp {
      194,   477,   195,   196,   494,   197,   495,   198,   199,   200,
      201,   459,    47,    72,   238,   239,   240,   528,   241,   242,
      243,   244,   202,   460,   203,   461,   204,   462,   895,   896,
-     897,  1057,   869,   870,   871,  1033,  1297,   872,  1034,   873,
-    1035,   874,  1036,   875,   876,   569,   877,   878,   879,   880,
-     881,   882,   883,   884,   885,  1047,  1304,   886,   887,   888,
-     889,  1050,   890,  1051,   891,  1052,   892,  1053,   205,   507,
-     930,   931,   932,  1077,   933,  1078,   206,   504,   916,   917,
+     897,  1055,   869,   870,   871,  1031,  1293,   872,  1032,   873,
+    1033,   874,  1034,   875,   876,   569,   877,   878,   879,   880,
+     881,   882,   883,   884,   885,  1045,  1300,   886,   887,   888,
+     889,  1048,   890,  1049,   891,  1050,   892,  1051,   205,   507,
+     930,   931,   932,  1075,   933,  1076,   206,   504,   916,   917,
      918,   919,   207,   506,   924,   925,   926,   927,   208,   505,
      209,   514,   979,   980,   981,   982,   983,   210,   510,   942,
-     943,   944,  1087,    63,    80,   404,   405,   406,   583,   407,
+     943,   944,  1085,    63,    80,   404,   405,   406,   583,   407,
      584,   211,   511,   951,   952,   953,   954,   955,   956,   957,
-     958,   212,   490,   899,   900,   901,  1060,    49,    73,   286,
+     958,   212,   490,   899,   900,   901,  1058,    49,    73,   286,
      287,   288,   537,   289,   538,   290,   539,   291,   543,   292,
      542,   213,   214,   215,   216,   500,   785,   297,   298,   217,
-     497,   911,   912,   913,  1069,  1209,  1210,   218,   491,    57,
-      77,   903,   904,   905,  1063,    59,    78,   367,   368,   369,
+     497,   911,   912,   913,  1067,  1206,  1207,   218,   491,    57,
+      77,   903,   904,   905,  1061,    59,    78,   367,   368,   369,
      370,   371,   372,   373,   568,   374,   572,   375,   571,   376,
-     377,   573,   378,   219,   492,   907,   908,   909,  1066,    61,
+     377,   573,   378,   219,   492,   907,   908,   909,  1064,    61,
       79,   389,   390,   391,   392,   393,   577,   394,   395,   396,
-     397,   398,   300,   535,  1018,  1019,  1020,  1130,    51,    74,
+     397,   398,   300,   535,  1018,  1019,  1020,  1128,    51,    74,
      312,   313,   314,   547,   315,   220,   498,   221,   499,   303,
-     536,  1022,  1023,  1024,  1133,    53,    75,   329,   330,   331,
+     536,  1022,  1023,  1024,  1131,    53,    75,   329,   330,   331,
      551,   332,   333,   553,   334,   335,   222,   509,   938,   939,
-     940,  1084,    55,    76,   347,   348,   349,   350,   559,   351,
+     940,  1082,    55,    76,   347,   348,   349,   350,   559,   351,
      560,   352,   561,   353,   562,   354,   563,   355,   564,   356,
-     558,   305,   544,  1027,  1028,  1136,   223,   508,   935,   936,
-    1081,  1235,  1236,  1237,  1238,  1239,  1317,  1240,  1318,  1241,
-     224,   512,   968,   969,   970,  1098,  1327,   971,   972,  1099,
-     973,   974,   225,   226,   515,   991,   992,   993,  1110,   994,
-    1111,   227,   516,  1001,  1002,  1003,  1004,  1115,  1005,  1006,
-    1117,   228,   517,    65,    81,   426,   427,   428,   429,   588,
-     430,   589,   431,   432,   591,   433,   434,   435,   594,   836,
-     436,   595,   437,   438,   439,   598,   440,   599,   441,   600,
-     442,   601,   229,   458,    67,    82,   445,   446,   447,   604,
-     448,   230,   523,  1009,  1010,  1121,  1279,  1280,  1281,  1282,
-    1335,  1283,  1333,  1356,  1357,  1358,  1366,  1367,  1368,  1374,
-    1369,  1370,  1371,  1372,  1378,   231,   524,  1013,  1014,  1015
+     558,   305,   544,  1026,   223,   508,   935,   936,  1079,  1232,
+    1233,  1234,  1235,  1236,  1313,  1237,  1314,  1238,   224,   512,
+     968,   969,   970,  1096,  1323,   971,   972,  1097,   973,   974,
+     225,   226,   515,   991,   992,   993,  1108,   994,  1109,   227,
+     516,  1001,  1002,  1003,  1004,  1113,  1005,  1006,  1115,   228,
+     517,    65,    81,   426,   427,   428,   429,   588,   430,   589,
+     431,   432,   591,   433,   434,   435,   594,   836,   436,   595,
+     437,   438,   439,   598,   440,   599,   441,   600,   442,   601,
+     229,   458,    67,    82,   445,   446,   447,   604,   448,   230,
+     523,  1009,  1010,  1119,  1276,  1277,  1278,  1279,  1331,  1280,
+    1329,  1351,  1352,  1353,  1361,  1362,  1363,  1369,  1364,  1365,
+    1366,  1367,  1373,   231,   524,  1013,  1014,  1015
   };
 
   const short
   Dhcp6Parser::yytable_[] =
   {
      161,   237,   257,   308,   323,   343,   965,   365,   385,   403,
-     423,   893,    38,   387,   388,   245,   301,   316,   327,   345,
-     923,   379,   399,  1199,   424,  1200,  1201,  1208,   304,  1214,
-     258,    31,   914,    32,   259,    33,    42,   366,   386,   232,
-     233,   234,   235,   236,    86,   401,   402,   133,   134,   264,
-     810,   778,   265,    30,   337,    44,   266,   299,   311,   326,
-     344,  1025,   267,   816,   817,   818,   959,  1011,   127,   246,
-     302,   317,   328,   346,   852,   380,   400,    46,   425,    48,
-     455,   526,   160,   260,    89,   456,   527,   261,   262,   451,
-     263,   318,   319,   320,   321,   322,   133,   134,  1072,   533,
-      50,  1073,   463,   268,   534,   269,   270,   443,   444,   545,
-     271,   995,   996,   997,   546,    52,   272,   273,   254,   915,
-     274,    54,   255,   275,   276,   160,   358,   778,   549,   556,
-      56,   133,   134,   550,   557,   277,   278,   279,   280,   281,
-      58,   282,   283,   585,   133,   134,   401,   402,   586,   284,
-     133,   134,   285,   293,   294,   295,   296,   602,   309,   324,
-     310,   325,   603,   914,   921,   998,   922,    60,   359,   381,
-     360,   361,   382,   383,   384,   834,   835,    92,    93,   606,
-     359,    94,    62,   359,   607,   360,   361,    95,    96,    97,
-     362,   363,   364,    64,  1361,   133,   134,  1362,  1363,  1364,
-    1365,   960,   961,   962,   963,   986,   987,   133,   134,  1075,
-     133,   134,  1076,  1082,   160,    66,  1083,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,  1122,   126,   160,
-    1123,   526,    34,    35,    36,    37,  1030,   128,   129,   130,
-     131,   606,   160,   928,   929,   132,  1031,  1199,   160,  1200,
-    1201,  1208,   449,  1214,   133,   134,  1359,   127,   450,  1360,
-     452,   135,   759,   760,   761,   762,   136,   137,   138,   139,
-     140,   141,   142,   453,   127,   143,   464,   465,   306,   466,
-     467,  1272,   144,  1273,  1274,   133,   134,   923,  1294,  1295,
-    1296,   145,  1161,   160,   146,   965,  1301,  1302,  1303,   763,
-     468,   147,   133,   134,   469,   160,   470,   254,   160,   148,
-     149,   255,   307,   533,   150,  1054,   565,   151,  1032,  1054,
-    1055,   152,  1079,   336,  1056,   133,   134,  1080,  1324,  1325,
-    1326,   337,   338,   339,   340,   341,   342,   772,   773,   774,
-     775,   471,   153,   154,   155,   156,   157,   158,   945,   946,
-     947,   948,   949,   950,   847,   472,   159,   473,   848,   849,
-     850,   851,   852,   853,   854,   855,   856,   857,   858,   859,
-     860,   861,   160,   474,   475,   862,   863,   864,   865,   866,
-     867,  1096,   975,   976,   977,   476,  1097,   478,   479,    98,
-      99,   100,   101,   102,   103,  1103,  1108,  1112,   566,  1118,
-    1104,  1109,  1113,   160,  1119,   602,   567,  1125,  1054,   545,
-    1120,   359,  1126,  1309,  1310,   480,  1313,   585,   127,   359,
-     160,  1314,  1323,  1336,   549,   556,   608,   609,  1337,  1339,
-    1340,  1379,   575,   481,   482,   161,  1380,   781,   782,   783,
-     784,   486,   237,   160,   487,   488,   133,   134,   489,   493,
-     501,   502,   503,   513,   257,   520,   245,   521,   308,   522,
-     525,   529,   530,   531,   532,   323,   540,   541,   301,  1221,
-    1222,  1223,   316,   548,   552,   343,   554,   555,   570,   327,
-     304,   574,   258,   576,   581,   365,   259,   578,   579,   345,
-     580,   385,   582,   610,   587,   590,   387,   388,   592,   379,
-     593,   264,   596,   597,   265,   399,   605,   611,   266,   299,
-     246,   423,   612,   311,   267,   366,   613,   614,   615,   616,
-     326,   386,   302,   617,   618,   424,   317,   626,   619,   632,
-     344,   620,   621,   328,   622,   260,   623,   638,   624,   261,
-     262,   625,   263,   346,   635,   627,   628,   639,   629,   630,
-     631,   633,   634,   380,   640,   268,   160,   269,   270,   400,
-     636,   637,   271,   641,   160,   642,   645,   643,   272,   273,
-     644,   646,   274,   647,   648,   275,   276,   649,   650,   425,
-     651,   652,   653,   654,   655,   656,   657,   277,   278,   279,
-     280,   281,   658,   282,   283,   659,   660,   661,   662,   663,
-     664,   284,   665,   666,   285,   293,   294,   295,   296,   667,
-     669,   670,   668,   309,   671,   310,   672,   673,   674,   675,
-     324,   757,   325,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   676,   677,   678,   679,
+     423,    38,   258,   387,   388,   245,   301,   316,   327,   345,
+     893,   379,   399,   923,   424,  1196,  1197,  1198,   304,  1205,
+     259,  1211,   914,  1011,   260,   778,    30,   366,   386,    31,
+     810,    32,    42,    33,   133,   134,   401,   402,   160,   264,
+     401,   402,   265,   816,   817,   818,   266,   299,   311,   326,
+     344,    86,   267,   759,   760,   761,   762,   443,   444,   246,
+     302,   317,   328,   346,   455,   380,   400,   526,   425,   456,
+      89,  1070,   527,   261,  1071,   133,   134,   262,   263,    44,
+     268,   232,   233,   234,   235,   236,   533,    46,   269,   545,
+     763,   534,   270,   271,   546,   272,   273,   995,   996,   997,
+     274,   778,   834,   835,   549,   358,   275,   276,   915,   550,
+     277,    48,   556,   278,   279,    50,   160,   557,  1356,    52,
+     359,  1357,  1358,  1359,  1360,   280,   281,   282,   283,   284,
+    1073,   285,   293,  1074,   449,   986,   987,   309,   324,   294,
+      54,    56,   295,   296,   585,   310,   325,   133,   134,   586,
+     959,   998,   914,   921,   602,   922,    92,    93,   852,   603,
+      94,    58,   359,    60,   360,   361,    95,    96,    97,   362,
+     363,   364,    62,   133,   134,     1,     2,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,   133,
+     134,  1080,   160,    64,  1081,   126,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,   127,   945,   946,   947,   948,
+     949,   950,   928,   929,   133,   134,   128,   129,   130,   131,
+    1269,    66,  1270,  1271,   132,   772,   773,   774,   775,    34,
+      35,    36,    37,   133,   134,   450,   452,  1196,  1197,  1198,
+     135,  1205,   451,  1211,   160,   136,   137,   138,   139,   140,
+     141,   142,   453,   565,   143,    98,    99,   100,   101,   102,
+     103,   144,   463,   606,   960,   961,   962,   963,   607,   145,
+     160,   464,   146,  1120,   567,   526,  1121,   606,   923,   147,
+    1028,   127,  1029,   965,   127,   359,   160,   148,   149,  1158,
+     465,   466,   150,   533,  1354,   151,   467,  1355,  1030,   152,
+     468,   359,   381,   360,   361,   382,   383,   384,   469,   133,
+     134,  1052,   133,   134,  1052,   566,  1053,   470,   471,  1054,
+     153,   154,   155,   156,   157,   158,   133,   134,   133,   134,
+     336,   160,   472,   473,   159,  1218,  1219,  1220,   337,   338,
+     339,   340,   341,   342,   474,   475,  1077,  1094,   127,   847,
+     160,  1078,  1095,   848,   849,   850,   851,   852,   853,   854,
+     855,   856,   857,   858,   859,   860,   861,   476,   127,   306,
+     862,   863,   864,   865,   866,   867,   133,   134,   478,   479,
+    1101,  1106,   975,   976,   977,  1102,  1107,   781,   782,   783,
+     784,   318,   319,   320,   321,   322,   133,   134,   254,  1110,
+    1116,   575,   255,   307,  1111,  1117,   359,   602,  1123,  1052,
+     581,   480,  1118,  1124,  1305,   608,   609,   481,   254,   545,
+     610,   576,   255,  1309,  1306,   161,   160,   482,  1310,   160,
+     585,  1332,   237,   549,   556,  1319,  1333,  1374,  1335,  1336,
+     486,   487,  1375,   160,   257,   160,   245,   488,   308,  1290,
+    1291,  1292,   489,   493,   258,   323,   501,   502,   301,  1297,
+    1298,  1299,   316,   503,   513,   343,   520,   521,   522,   327,
+     304,   525,   259,   529,   530,   365,   260,   531,   532,   345,
+     540,   385,  1320,  1321,  1322,   541,   387,   388,   548,   379,
+     552,   264,   554,   160,   265,   399,   555,   570,   266,   299,
+     246,   423,   574,   311,   267,   366,   578,   579,   580,   582,
+     326,   386,   302,   160,   587,   424,   317,   590,   592,   593,
+     344,   596,   597,   328,   605,   261,   611,   612,   613,   262,
+     263,   614,   268,   346,   615,   616,   617,   626,   632,   638,
+     269,   618,   619,   380,   270,   271,   620,   272,   273,   400,
+     160,   627,   274,   628,   639,   640,   621,   622,   275,   276,
+     623,   624,   277,   625,   630,   278,   279,   635,   631,   425,
+     645,   646,   629,   633,   634,   647,   643,   280,   281,   282,
+     283,   284,   636,   285,   293,   637,   641,   642,   644,   649,
+     648,   294,   309,   650,   295,   296,   651,   652,   653,   324,
+     310,   654,   655,   659,   656,   660,   661,   325,   657,   658,
+     662,   663,   664,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   665,   666,   667,   668,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     681,   687,   127,   688,   682,   683,   689,   690,   684,   685,
-     161,   691,   692,   237,   129,   130,   131,   693,   694,   695,
-     696,   698,   247,   701,   248,   703,   752,   245,   707,   699,
-     133,   134,   249,   250,   251,   252,   253,   135,   702,   751,
-     708,   704,   136,   137,   138,   705,   709,   710,   711,   712,
-     713,   715,   254,   964,   978,   988,   255,   423,   144,   716,
-     718,  1012,   717,   719,   720,   256,   721,   966,   984,   989,
-     999,   424,   723,   728,   724,   729,   843,   732,   733,   725,
-     726,   246,   734,   731,   735,   738,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   736,
-     737,   739,   742,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   740,   127,   359,   741,   153,   154,
-     743,   967,   985,   990,  1000,   425,   744,   129,   130,   131,
-     133,   134,   745,   747,   748,   750,   758,   753,   837,   754,
-     755,   756,   765,   133,   134,   767,   250,   251,   160,   253,
-     135,   766,   768,   769,   777,   136,   137,   138,   770,   771,
-      32,   780,   786,   787,   788,   254,   790,   789,   791,   255,
-     792,   793,   830,   794,   795,   796,   797,   798,   256,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,   801,   799,   800,   802,   803,   408,   409,
-     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
-     420,   805,   806,   807,   808,   809,   811,   812,   421,   422,
-     813,   814,   842,   894,   815,   898,   819,   820,   902,   906,
-     821,   153,   154,   910,   822,   823,   824,   825,   826,   827,
-     934,   937,   941,  1008,   828,  1017,   829,  1021,   160,   831,
-    1037,   832,   833,   839,   840,   841,  1038,  1039,  1040,  1041,
-    1042,   160,  1043,  1044,  1045,  1046,  1048,  1049,  1059,  1144,
-    1058,  1062,  1061,  1064,  1065,  1067,  1068,  1071,  1070,  1127,
-    1086,  1074,  1085,  1089,  1088,  1090,  1091,  1092,  1093,  1094,
-    1095,  1100,  1101,  1102,  1105,  1106,  1107,  1114,  1116,  1124,
-    1132,  1146,  1131,  1135,  1134,  1139,  1143,  1137,  1138,  1140,
-    1141,  1142,  1145,  1147,  1148,  1149,  1150,  1151,  1152,   257,
-    1153,  1154,   365,  1155,  1156,   385,  1157,  1158,  1169,  1159,
-     387,   388,  1218,   301,  1219,  1247,   379,  1248,  1249,   399,
-    1224,  1250,  1212,   343,  1251,   304,   403,   258,  1252,  1254,
-    1255,   259,   366,  1256,  1233,   386,  1170,   345,  1198,  1264,
-    1171,  1265,   964,  1257,  1258,  1261,   264,   978,  1225,   265,
-    1231,   988,  1226,   266,   299,  1176,   966,  1262,  1177,   267,
-    1275,   984,  1178,  1211,  1012,   989,  1268,   302,  1179,   308,
-     380,   999,   323,   400,  1277,  1232,  1213,  1270,   344,  1288,
-     260,  1260,  1267,   316,   261,   262,   327,   263,  1234,  1172,
-    1276,   346,  1269,  1173,  1174,  1285,  1175,  1287,  1293,  1298,
-     268,  1227,   269,   270,  1299,  1228,  1229,   271,  1230,  1180,
-     967,  1181,  1182,   272,   273,   985,  1183,   274,  1300,   990,
-     275,   276,  1184,  1185,   311,  1000,  1186,   326,  1278,  1187,
-    1188,  1305,   277,   278,   279,   280,   281,   317,   282,   283,
-     328,  1189,  1190,  1191,  1192,  1193,   284,  1194,  1195,   285,
-     293,   294,   295,   296,  1306,  1196,  1307,  1308,  1197,  1204,
-    1205,  1206,  1207,  1202,  1311,  1203,  1312,  1319,  1320,  1321,
-    1322,  1334,  1343,  1344,  1347,  1349,  1315,  1353,  1375,  1376,
-    1355,  1377,  1381,  1385,   920,  1316,   680,   838,   686,  1162,
-     844,  1160,  1220,  1216,   846,  1217,  1246,  1245,  1029,   730,
-    1164,  1163,   697,  1215,  1342,   357,  1263,  1253,  1165,  1328,
-    1329,  1289,  1166,   727,  1330,  1331,  1338,  1341,  1167,  1168,
-    1348,  1345,  1383,  1351,   309,  1352,   310,   324,  1384,   325,
-    1354,  1290,   722,  1387,   700,  1382,  1292,  1388,  1243,  1244,
-    1242,  1026,   706,  1346,  1271,  1259,  1266,  1291,   845,  1284,
-    1350,  1007,  1169,   746,  1373,  1386,   749,     0,     0,     0,
-    1224,     0,     0,     0,  1286,     0,  1212,     0,     0,     0,
-       0,     0,     0,     0,  1233,  1275,  1332,   714,     0,     0,
-    1170,     0,  1198,     0,  1171,     0,     0,     0,  1225,  1277,
-    1231,     0,  1226,     0,     0,     0,     0,     0,     0,  1176,
-       0,     0,  1177,     0,     0,  1276,  1178,  1211,     0,     0,
-       0,     0,  1179,     0,     0,  1232,     0,     0,     0,     0,
-    1213,     0,     0,     0,     0,     0,     0,     0,  1234,     0,
-       0,     0,     0,  1172,     0,     0,     0,  1173,  1174,     0,
-    1175,  1227,     0,  1278,     0,  1228,  1229,     0,  1230,     0,
-       0,     0,     0,  1180,     0,  1181,  1182,     0,     0,     0,
-    1183,     0,     0,     0,     0,     0,  1184,  1185,     0,     0,
-    1186,     0,     0,  1187,  1188,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1189,  1190,  1191,  1192,  1193,
-       0,  1194,  1195,     0,     0,     0,     0,     0,     0,  1196,
-       0,     0,  1197,  1204,  1205,  1206,  1207,  1202,     0,  1203
+     669,   670,   127,   671,   672,   673,   674,   675,   678,   676,
+     161,   679,   681,   237,   129,   130,   131,   677,   687,   688,
+     682,   683,   247,   689,   248,   684,   685,   245,   690,   691,
+     133,   134,   249,   250,   251,   252,   253,   135,   693,   694,
+     692,   695,   136,   137,   138,   696,   698,   699,   701,   703,
+     707,   702,   254,   964,   978,   988,   255,   423,   144,   708,
+     709,  1012,   710,   704,   705,   256,   711,   966,   984,   989,
+     999,   424,   712,   713,   715,   843,   716,   717,   718,   719,
+     720,   246,   721,   723,   724,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   728,   725,
+     726,   729,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   731,   127,   359,   732,   153,   154,   133,
+     134,   967,   985,   990,  1000,   425,   129,   130,   131,   733,
+     734,   735,   736,   737,   738,   739,   740,   741,   742,   743,
+     744,   745,   133,   134,   747,   250,   251,   160,   253,   135,
+     748,   750,   751,   752,   136,   137,   138,   753,   754,   755,
+     756,   757,   758,   765,   254,   766,   767,   768,   255,   769,
+     777,   770,   771,    32,   786,   780,   787,   256,   788,   789,
+     790,   791,   792,  1057,   801,   793,   408,   409,   410,   411,
+     412,   413,   414,   415,   416,   417,   418,   419,   420,   794,
+     795,   796,   797,   798,   799,   800,   421,   422,   802,   803,
+     805,   806,   807,   808,   809,   811,   812,   813,   814,   815,
+     819,   837,   842,   820,   337,   894,   898,   902,   821,   153,
+     154,   822,   906,   910,   823,   824,   160,   825,   826,   934,
+     937,   827,   828,   829,   941,   831,   832,   833,   839,  1008,
+    1017,   840,   841,  1021,  1035,  1036,  1037,  1038,  1039,   160,
+    1040,  1041,  1042,  1043,  1044,  1046,  1047,  1141,  1060,  1056,
+    1059,  1063,  1062,  1065,  1066,  1068,  1069,  1125,  1072,  1084,
+    1083,  1086,  1087,  1129,  1088,  1089,  1090,  1091,  1092,  1093,
+    1098,  1099,  1100,  1103,  1104,  1105,  1112,  1114,  1122,  1130,
+    1133,  1132,   830,  1140,  1136,  1135,  1134,  1137,  1138,  1139,
+    1142,  1143,  1144,  1150,  1145,  1146,  1147,   257,  1148,  1149,
+     365,  1152,  1153,   385,  1151,  1154,  1166,   258,   387,   388,
+    1155,   301,  1156,  1215,   379,  1216,  1167,   399,  1221,  1244,
+    1209,   343,  1245,   304,   403,   259,  1246,  1247,  1222,   260,
+     366,  1251,  1230,   386,  1168,   345,  1195,  1252,  1169,  1248,
+     964,  1261,  1262,  1265,   264,   978,  1223,   265,  1228,   988,
+    1224,   266,   299,  1173,   966,  1249,  1174,   267,  1272,   984,
+    1175,  1208,  1012,   989,  1253,   302,  1176,   308,   380,   999,
+     323,   400,  1274,  1229,  1210,  1257,   344,  1267,   261,  1285,
+    1254,   316,   262,   263,   327,   268,  1231,  1170,  1273,   346,
+    1255,  1171,  1172,   269,  1177,  1258,  1259,   270,   271,  1225,
+     272,   273,  1178,  1226,  1227,   274,  1179,  1180,   967,  1181,
+    1182,   275,   276,   985,  1183,   277,  1264,   990,   278,   279,
+    1184,  1185,   311,  1000,  1186,   326,  1275,  1187,  1188,  1266,
+     280,   281,   282,   283,   284,   317,   285,   293,   328,  1189,
+    1190,  1191,  1192,  1193,   294,  1194,  1201,   295,   296,  1282,
+    1199,  1284,  1294,  1202,  1295,  1307,  1203,  1204,  1200,  1308,
+    1296,  1315,  1316,  1317,  1318,  1330,  1338,  1339,  1342,  1344,
+     844,  1348,  1370,  1371,  1350,  1301,  1372,  1376,  1380,   920,
+     680,   838,   846,  1302,   686,  1027,  1157,  1159,  1217,  1213,
+    1214,  1243,  1242,  1260,   730,  1161,  1250,  1160,   697,  1337,
+    1212,   357,  1162,  1163,   722,   727,  1303,  1304,  1165,  1164,
+    1286,   309,  1311,  1312,   324,  1324,  1325,  1326,  1327,   310,
+    1334,   706,   325,  1343,  1340,  1346,  1287,  1347,  1349,  1239,
+    1289,  1378,  1377,  1379,   700,  1382,  1288,  1383,  1240,  1241,
+    1341,  1025,  1268,  1263,  1256,   746,  1007,  1281,  1166,   845,
+     749,  1345,  1368,  1381,     0,     0,  1221,     0,  1167,     0,
+    1283,     0,  1209,     0,     0,     0,  1222,     0,     0,     0,
+    1230,  1272,  1328,     0,   714,     0,  1168,     0,  1195,     0,
+    1169,     0,     0,     0,  1223,  1274,  1228,     0,  1224,     0,
+       0,     0,     0,     0,     0,  1173,     0,     0,  1174,     0,
+       0,  1273,  1175,  1208,     0,     0,     0,     0,  1176,     0,
+       0,  1229,     0,     0,     0,     0,  1210,     0,     0,     0,
+       0,     0,     0,     0,  1231,     0,     0,     0,     0,  1170,
+       0,     0,     0,  1171,  1172,     0,  1177,  1225,     0,  1275,
+       0,  1226,  1227,     0,  1178,     0,     0,     0,  1179,  1180,
+       0,  1181,  1182,     0,     0,     0,  1183,     0,     0,     0,
+       0,     0,  1184,  1185,     0,     0,  1186,     0,     0,  1187,
+    1188,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,  1189,  1190,  1191,  1192,  1193,     0,  1194,  1201,     0,
+       0,     0,  1199,     0,     0,  1202,     0,     0,  1203,  1204,
+    1200
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       71,    72,    73,    74,    75,    76,   794,    78,    79,    80,
-      81,   756,    16,    79,    79,    72,    73,    74,    75,    76,
-     788,    78,    79,  1069,    81,  1069,  1069,  1069,    73,  1069,
-      73,     5,   139,     7,    73,     9,     7,    78,    79,    16,
-      17,    18,    19,    20,   226,   146,   147,   108,   109,    73,
-     694,   653,    73,     0,   137,     7,    73,    73,    74,    75,
-      76,   144,    73,   707,   708,   709,    24,   211,    80,    72,
-      73,    74,    75,    76,    32,    78,    79,     7,    81,     7,
-       3,     3,   226,    73,    10,     8,     8,    73,    73,     4,
-      73,   103,   104,   105,   106,   107,   108,   109,     3,     3,
-       7,     6,     4,    73,     8,    73,    73,    13,    14,     3,
-      73,   172,   173,   174,     8,     7,    73,    73,   130,   226,
-      73,     7,   134,    73,    73,   226,    24,   729,     3,     3,
-       7,   108,   109,     8,     8,    73,    73,    73,    73,    73,
-       7,    73,    73,     3,   108,   109,   146,   147,     8,    73,
-     108,   109,    73,    73,    73,    73,    73,     3,    74,    75,
-      74,    75,     8,   139,   140,   226,   142,     7,    81,    82,
-      83,    84,    85,    86,    87,   189,   190,    11,    12,     3,
-      81,    15,     7,    81,     8,    83,    84,    21,    22,    23,
-      88,    89,    90,     7,   203,   108,   109,   206,   207,   208,
-     209,   159,   160,   161,   162,   169,   170,   108,   109,     3,
-     108,   109,     6,     3,   226,     7,     6,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,     3,    79,   226,
-       6,     3,   226,   227,   228,   229,     8,    91,    92,    93,
-      94,     3,   226,   127,   128,    99,     8,  1313,   226,  1313,
-    1313,  1313,     6,  1313,   108,   109,     3,    80,     3,     6,
-       8,   115,   192,   193,   194,   195,   120,   121,   122,   123,
-     124,   125,   126,     3,    80,   129,     4,     4,   101,     4,
-       4,   202,   136,   204,   205,   108,   109,  1075,    25,    26,
-      27,   145,  1057,   226,   148,  1103,    42,    43,    44,   229,
-       4,   155,   108,   109,     4,   226,     4,   130,   226,   163,
-     164,   134,   135,     3,   168,     3,     8,   171,     8,     3,
-       8,   175,     3,   129,     8,   108,   109,     8,   156,   157,
-     158,   137,   138,   139,   140,   141,   142,    95,    96,    97,
-      98,     4,   196,   197,   198,   199,   200,   201,   149,   150,
-     151,   152,   153,   154,    24,     4,   210,     4,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,   226,     4,     4,    45,    46,    47,    48,    49,
-      50,     3,   165,   166,   167,     4,     8,     4,     4,    51,
-      52,    53,    54,    55,    56,     3,     3,     3,     3,     3,
-       8,     8,     8,   226,     8,     3,     8,     3,     3,     3,
-       8,    81,     8,     8,     8,     4,     3,     3,    80,    81,
-     226,     8,     8,     3,     3,     3,   450,   451,     8,     8,
-       8,     3,     8,     4,     4,   526,     8,   116,   117,   118,
-     119,     4,   533,   226,     4,     4,   108,   109,     4,     4,
-       4,     4,     4,     4,   545,     4,   533,     4,   549,     4,
-       4,     4,     4,     4,     4,   556,     4,     4,   545,   131,
-     132,   133,   549,     4,     4,   566,     4,     4,     4,   556,
-     545,     4,   545,     3,     8,   576,   545,     4,     4,   566,
-       4,   582,     3,   226,     4,     4,   582,   582,     4,   576,
-       4,   545,     4,     4,   545,   582,     4,     4,   545,   545,
-     533,   602,     4,   549,   545,   576,     4,     4,     4,     4,
-     556,   582,   545,     4,   227,   602,   549,   229,   227,     4,
-     566,   227,   227,   556,   227,   545,   227,     4,   227,   545,
-     545,   227,   545,   566,   229,   228,   228,     4,   228,   227,
-     227,   227,   227,   576,     4,   545,   226,   545,   545,   582,
-     229,   229,   545,   229,   226,   229,     4,   228,   545,   545,
-     229,     4,   545,     4,   227,   545,   545,     4,     4,   602,
-       4,     4,     4,     4,     4,   229,   229,   545,   545,   545,
-     545,   545,   229,   545,   545,     4,     4,     4,     4,     4,
-       4,   545,     4,     4,   545,   545,   545,   545,   545,     4,
-       4,     4,   227,   549,     4,   549,     4,     4,     4,   229,
-     556,     5,   556,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,   229,   229,     4,     4,
+      81,    16,    73,    79,    79,    72,    73,    74,    75,    76,
+     756,    78,    79,   788,    81,  1067,  1067,  1067,    73,  1067,
+      73,  1067,   139,   210,    73,   653,     0,    78,    79,     5,
+     694,     7,     7,     9,   108,   109,   145,   146,   225,    73,
+     145,   146,    73,   707,   708,   709,    73,    73,    74,    75,
+      76,   225,    73,   191,   192,   193,   194,    13,    14,    72,
+      73,    74,    75,    76,     3,    78,    79,     3,    81,     8,
+      10,     3,     8,    73,     6,   108,   109,    73,    73,     7,
+      73,    16,    17,    18,    19,    20,     3,     7,    73,     3,
+     228,     8,    73,    73,     8,    73,    73,   171,   172,   173,
+      73,   729,   188,   189,     3,    24,    73,    73,   225,     8,
+      73,     7,     3,    73,    73,     7,   225,     8,   202,     7,
+      81,   205,   206,   207,   208,    73,    73,    73,    73,    73,
+       3,    73,    73,     6,     6,   168,   169,    74,    75,    73,
+       7,     7,    73,    73,     3,    74,    75,   108,   109,     8,
+      24,   225,   139,   140,     3,   142,    11,    12,    32,     8,
+      15,     7,    81,     7,    83,    84,    21,    22,    23,    88,
+      89,    90,     7,   108,   109,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   221,   222,   223,   224,   108,
+     109,     3,   225,     7,     6,    79,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,   148,   149,   150,   151,
+     152,   153,   127,   128,   108,   109,    91,    92,    93,    94,
+     201,     7,   203,   204,    99,    95,    96,    97,    98,   225,
+     226,   227,   228,   108,   109,     3,     8,  1309,  1309,  1309,
+     115,  1309,     4,  1309,   225,   120,   121,   122,   123,   124,
+     125,   126,     3,     8,   129,    51,    52,    53,    54,    55,
+      56,   136,     4,     3,   158,   159,   160,   161,     8,   144,
+     225,     4,   147,     3,     8,     3,     6,     3,  1073,   154,
+       8,    80,     8,  1101,    80,    81,   225,   162,   163,  1055,
+       4,     4,   167,     3,     3,   170,     4,     6,     8,   174,
+       4,    81,    82,    83,    84,    85,    86,    87,     4,   108,
+     109,     3,   108,   109,     3,     3,     8,     4,     4,     8,
+     195,   196,   197,   198,   199,   200,   108,   109,   108,   109,
+     129,   225,     4,     4,   209,   131,   132,   133,   137,   138,
+     139,   140,   141,   142,     4,     4,     3,     3,    80,    24,
+     225,     8,     8,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,     4,    80,   101,
+      45,    46,    47,    48,    49,    50,   108,   109,     4,     4,
+       3,     3,   164,   165,   166,     8,     8,   116,   117,   118,
+     119,   103,   104,   105,   106,   107,   108,   109,   130,     3,
+       3,     8,   134,   135,     8,     8,    81,     3,     3,     3,
+       8,     4,     8,     8,     8,   450,   451,     4,   130,     3,
+     225,     3,   134,     3,     8,   526,   225,     4,     8,   225,
+       3,     3,   533,     3,     3,     8,     8,     3,     8,     8,
+       4,     4,     8,   225,   545,   225,   533,     4,   549,    25,
+      26,    27,     4,     4,   545,   556,     4,     4,   545,    42,
+      43,    44,   549,     4,     4,   566,     4,     4,     4,   556,
+     545,     4,   545,     4,     4,   576,   545,     4,     4,   566,
+       4,   582,   155,   156,   157,     4,   582,   582,     4,   576,
+       4,   545,     4,   225,   545,   582,     4,     4,   545,   545,
+     533,   602,     4,   549,   545,   576,     4,     4,     4,     3,
+     556,   582,   545,   225,     4,   602,   549,     4,     4,     4,
+     566,     4,     4,   556,     4,   545,     4,     4,     4,   545,
+     545,     4,   545,   566,     4,     4,     4,   228,     4,     4,
+     545,   226,   226,   576,   545,   545,   226,   545,   545,   582,
+     225,   227,   545,   227,     4,     4,   226,   226,   545,   545,
+     226,   226,   545,   226,   226,   545,   545,   228,   226,   602,
+       4,     4,   227,   226,   226,     4,   227,   545,   545,   545,
+     545,   545,   228,   545,   545,   228,   228,   228,   228,     4,
+     226,   545,   549,     4,   545,   545,     4,     4,     4,   556,
+     549,     4,     4,     4,   228,     4,     4,   556,   228,   228,
+       4,     4,     4,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,     4,     4,     4,   226,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       4,     4,    80,     4,   229,   229,     4,     4,   227,   227,
-     751,     4,   227,   754,    92,    93,    94,   229,     4,     4,
-       4,     4,   100,     4,   102,     4,   226,   754,     4,   227,
-     108,   109,   110,   111,   112,   113,   114,   115,   227,     7,
-       4,   227,   120,   121,   122,   227,     4,     4,     4,     4,
-       4,     4,   130,   794,   795,   796,   134,   798,   136,     4,
-       4,   802,   227,     4,     4,   143,   229,   794,   795,   796,
-     797,   798,     4,     4,   229,     4,   750,     4,     4,   229,
-     229,   754,   227,   229,     4,     4,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,   227,
-     227,     4,     4,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,   229,    80,    81,   229,   196,   197,
-       4,   794,   795,   796,   797,   798,     4,    92,    93,    94,
-     108,   109,     4,     4,   227,     4,   226,     7,   191,     7,
-       7,     7,   226,   108,   109,     5,   111,   112,   226,   114,
-     115,   226,     5,     5,     5,   120,   121,   122,   226,   226,
-       7,   226,     5,     5,     5,   130,     5,     7,     5,   134,
-       5,     7,   729,     7,     7,     7,     7,     7,   143,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,     5,   226,   226,     7,     5,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,     5,     5,   226,   226,   226,   226,     7,   196,   197,
-     226,   226,     5,     7,   226,     7,   226,   226,     7,     7,
-     226,   196,   197,     7,   226,   226,   226,   226,   226,   226,
-       7,     7,     7,     7,   226,     7,   226,     7,   226,   226,
-       4,   226,   226,   226,   226,   226,     4,     4,     4,     4,
-       4,   226,     4,     4,     4,     4,     4,     4,     3,   229,
-       6,     3,     6,     6,     3,     6,     3,     3,     6,   226,
-       3,     6,     6,     3,     6,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       3,   229,     6,     3,     6,     4,   227,     8,     6,     4,
-       4,     4,   227,   227,   227,   227,   227,   227,   227,  1060,
-       4,   229,  1063,   227,     4,  1066,     4,     4,  1069,     4,
-    1066,  1066,     4,  1060,     4,   227,  1063,   227,   227,  1066,
-    1081,   227,  1069,  1084,   227,  1060,  1087,  1060,   227,     4,
-       4,  1060,  1063,   227,  1081,  1066,  1069,  1084,  1069,     4,
-    1069,     4,  1103,   227,   227,   227,  1060,  1108,  1081,  1060,
-    1081,  1112,  1081,  1060,  1060,  1069,  1103,   227,  1069,  1060,
-    1121,  1108,  1069,  1069,  1125,  1112,     4,  1060,  1069,  1130,
-    1063,  1118,  1133,  1066,  1121,  1081,  1069,     4,  1084,     3,
-    1060,   229,   229,  1130,  1060,  1060,  1133,  1060,  1081,  1069,
-    1121,  1084,   227,  1069,  1069,   229,  1069,     6,     4,   226,
-    1060,  1081,  1060,  1060,   226,  1081,  1081,  1060,  1081,  1069,
-    1103,  1069,  1069,  1060,  1060,  1108,  1069,  1060,   226,  1112,
-    1060,  1060,  1069,  1069,  1130,  1118,  1069,  1133,  1121,  1069,
-    1069,   226,  1060,  1060,  1060,  1060,  1060,  1130,  1060,  1060,
-    1133,  1069,  1069,  1069,  1069,  1069,  1060,  1069,  1069,  1060,
-    1060,  1060,  1060,  1060,   226,  1069,   226,   226,  1069,  1069,
-    1069,  1069,  1069,  1069,     8,  1069,     8,     4,     8,     3,
-       8,     4,     4,     4,     4,     4,   226,     5,     4,     4,
-       7,     4,     4,     4,   787,   226,   526,   742,   533,  1059,
-     751,  1054,  1079,  1072,   754,  1075,  1089,  1087,   842,   585,
-    1062,  1060,   545,  1071,  1313,    77,  1108,  1096,  1063,   226,
-     226,  1130,  1065,   582,   226,   226,   226,   226,  1066,  1068,
-     227,   229,   227,   226,  1130,   226,  1130,  1133,   227,  1133,
-     226,  1132,   576,   226,   549,   229,  1135,   226,  1084,  1086,
-    1082,   812,   556,  1321,  1118,  1103,  1112,  1133,   753,  1122,
-    1336,   798,  1313,   602,  1359,  1379,   606,    -1,    -1,    -1,
-    1321,    -1,    -1,    -1,  1125,    -1,  1313,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1321,  1336,  1270,   566,    -1,    -1,
-    1313,    -1,  1313,    -1,  1313,    -1,    -1,    -1,  1321,  1336,
-    1321,    -1,  1321,    -1,    -1,    -1,    -1,    -1,    -1,  1313,
-      -1,    -1,  1313,    -1,    -1,  1336,  1313,  1313,    -1,    -1,
-      -1,    -1,  1313,    -1,    -1,  1321,    -1,    -1,    -1,    -1,
-    1313,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1321,    -1,
-      -1,    -1,    -1,  1313,    -1,    -1,    -1,  1313,  1313,    -1,
-    1313,  1321,    -1,  1336,    -1,  1321,  1321,    -1,  1321,    -1,
-      -1,    -1,    -1,  1313,    -1,  1313,  1313,    -1,    -1,    -1,
-    1313,    -1,    -1,    -1,    -1,    -1,  1313,  1313,    -1,    -1,
-    1313,    -1,    -1,  1313,  1313,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1313,  1313,  1313,  1313,  1313,
-      -1,  1313,  1313,    -1,    -1,    -1,    -1,    -1,    -1,  1313,
-      -1,    -1,  1313,  1313,  1313,  1313,  1313,  1313,    -1,  1313
+       4,     4,    80,     4,     4,     4,     4,   228,     4,   228,
+     751,     4,     4,   754,    92,    93,    94,   228,     4,     4,
+     228,   228,   100,     4,   102,   226,   226,   754,     4,     4,
+     108,   109,   110,   111,   112,   113,   114,   115,   228,     4,
+     226,     4,   120,   121,   122,     4,     4,   226,     4,     4,
+       4,   226,   130,   794,   795,   796,   134,   798,   136,     4,
+       4,   802,     4,   226,   226,   143,     4,   794,   795,   796,
+     797,   798,     4,     4,     4,   750,     4,   226,     4,     4,
+       4,   754,   228,     4,   228,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,     4,   228,
+     228,     4,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,   228,    80,    81,     4,   195,   196,   108,
+     109,   794,   795,   796,   797,   798,    92,    93,    94,     4,
+     226,     4,   226,   226,     4,     4,   228,   228,     4,     4,
+       4,     4,   108,   109,     4,   111,   112,   225,   114,   115,
+     226,     4,     7,   225,   120,   121,   122,     7,     7,     7,
+       7,     5,   225,   225,   130,   225,     5,     5,   134,     5,
+       5,   225,   225,     7,     5,   225,     5,   143,     5,     7,
+       5,     5,     5,     3,     5,     7,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,     7,
+       7,     7,     7,     7,   225,   225,   195,   196,     7,     5,
+       5,     5,   225,   225,   225,   225,     7,   225,   225,   225,
+     225,   190,     5,   225,   137,     7,     7,     7,   225,   195,
+     196,   225,     7,     7,   225,   225,   225,   225,   225,     7,
+       7,   225,   225,   225,     7,   225,   225,   225,   225,     7,
+       7,   225,   225,     7,     4,     4,     4,     4,     4,   225,
+       4,     4,     4,     4,     4,     4,     4,   228,     3,     6,
+       6,     3,     6,     6,     3,     6,     3,   225,     6,     3,
+       6,     6,     3,     6,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+       3,     6,   729,   226,     4,     6,     8,     4,     4,     4,
+     226,   228,   226,     4,   226,   226,   226,  1058,   226,   226,
+    1061,   226,     4,  1064,   228,     4,  1067,  1058,  1064,  1064,
+       4,  1058,     4,     4,  1061,     4,  1067,  1064,  1079,   226,
+    1067,  1082,   226,  1058,  1085,  1058,   226,   226,  1079,  1058,
+    1061,     4,  1079,  1064,  1067,  1082,  1067,     4,  1067,   226,
+    1101,     4,     4,     4,  1058,  1106,  1079,  1058,  1079,  1110,
+    1079,  1058,  1058,  1067,  1101,   226,  1067,  1058,  1119,  1106,
+    1067,  1067,  1123,  1110,   226,  1058,  1067,  1128,  1061,  1116,
+    1131,  1064,  1119,  1079,  1067,   228,  1082,     4,  1058,     3,
+     226,  1128,  1058,  1058,  1131,  1058,  1079,  1067,  1119,  1082,
+     226,  1067,  1067,  1058,  1067,   226,   226,  1058,  1058,  1079,
+    1058,  1058,  1067,  1079,  1079,  1058,  1067,  1067,  1101,  1067,
+    1067,  1058,  1058,  1106,  1067,  1058,   228,  1110,  1058,  1058,
+    1067,  1067,  1128,  1116,  1067,  1131,  1119,  1067,  1067,   226,
+    1058,  1058,  1058,  1058,  1058,  1128,  1058,  1058,  1131,  1067,
+    1067,  1067,  1067,  1067,  1058,  1067,  1067,  1058,  1058,   228,
+    1067,     6,   225,  1067,   225,     8,  1067,  1067,  1067,     8,
+     225,     4,     8,     3,     8,     4,     4,     4,     4,     4,
+     751,     5,     4,     4,     7,   225,     4,     4,     4,   787,
+     526,   742,   754,   225,   533,   842,  1052,  1057,  1077,  1070,
+    1073,  1087,  1085,  1106,   585,  1060,  1094,  1058,   545,  1309,
+    1069,    77,  1061,  1063,   576,   582,   225,   225,  1066,  1064,
+    1128,  1128,   225,   225,  1131,   225,   225,   225,   225,  1128,
+     225,   556,  1131,   226,   228,   225,  1130,   225,   225,  1080,
+    1133,   226,   228,   226,   549,   225,  1131,   225,  1082,  1084,
+    1317,   812,  1116,  1110,  1101,   602,   798,  1120,  1309,   753,
+     606,  1332,  1354,  1374,    -1,    -1,  1317,    -1,  1309,    -1,
+    1123,    -1,  1309,    -1,    -1,    -1,  1317,    -1,    -1,    -1,
+    1317,  1332,  1267,    -1,   566,    -1,  1309,    -1,  1309,    -1,
+    1309,    -1,    -1,    -1,  1317,  1332,  1317,    -1,  1317,    -1,
+      -1,    -1,    -1,    -1,    -1,  1309,    -1,    -1,  1309,    -1,
+      -1,  1332,  1309,  1309,    -1,    -1,    -1,    -1,  1309,    -1,
+      -1,  1317,    -1,    -1,    -1,    -1,  1309,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  1317,    -1,    -1,    -1,    -1,  1309,
+      -1,    -1,    -1,  1309,  1309,    -1,  1309,  1317,    -1,  1332,
+      -1,  1317,  1317,    -1,  1309,    -1,    -1,    -1,  1309,  1309,
+      -1,  1309,  1309,    -1,    -1,    -1,  1309,    -1,    -1,    -1,
+      -1,    -1,  1309,  1309,    -1,    -1,  1309,    -1,    -1,  1309,
+    1309,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  1309,  1309,  1309,  1309,  1309,    -1,  1309,  1309,    -1,
+      -1,    -1,  1309,    -1,    -1,  1309,    -1,    -1,  1309,  1309,
+    1309
   };
 
   const short
   Dhcp6Parser::yystos_[] =
   {
-       0,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-     221,   222,   223,   224,   225,   231,   232,   233,   234,   235,
-     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-       0,     5,     7,     9,   226,   227,   228,   229,   246,   247,
-     248,   253,     7,   262,     7,   267,     7,   322,     7,   437,
-       7,   518,     7,   535,     7,   552,     7,   469,     7,   475,
-       7,   499,     7,   413,     7,   623,     7,   654,   254,   249,
-     263,   268,   323,   438,   519,   536,   553,   470,   476,   500,
-     414,   624,   655,   246,   255,   256,   226,   251,   252,    10,
-     264,   266,    11,    12,    15,    21,    22,    23,    51,    52,
+       0,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+       0,     5,     7,     9,   225,   226,   227,   228,   245,   246,
+     247,   252,     7,   261,     7,   266,     7,   321,     7,   436,
+       7,   517,     7,   534,     7,   551,     7,   468,     7,   474,
+       7,   498,     7,   412,     7,   620,     7,   651,   253,   248,
+     262,   267,   322,   437,   518,   535,   552,   469,   475,   499,
+     413,   621,   652,   245,   254,   255,   225,   250,   251,    10,
+     263,   265,    11,    12,    15,    21,    22,    23,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    91,    92,
       93,    94,    99,   108,   109,   115,   120,   121,   122,   123,
-     124,   125,   126,   129,   136,   145,   148,   155,   163,   164,
-     168,   171,   175,   196,   197,   198,   199,   200,   201,   210,
-     226,   261,   269,   270,   271,   273,   274,   275,   276,   277,
-     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
-     288,   289,   290,   293,   295,   297,   298,   299,   302,   303,
-     305,   307,   308,   309,   310,   312,   313,   315,   317,   318,
-     319,   320,   332,   334,   336,   378,   386,   392,   398,   400,
-     407,   421,   431,   451,   452,   453,   454,   459,   467,   493,
-     525,   527,   546,   576,   590,   602,   603,   611,   621,   652,
-     661,   685,    16,    17,    18,    19,    20,   261,   324,   325,
-     326,   328,   329,   330,   331,   525,   527,   100,   102,   110,
-     111,   112,   113,   114,   130,   134,   143,   261,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   287,   288,   289,   290,   293,   295,   297,   298,   299,
-     302,   303,   305,   307,   313,   315,   439,   440,   441,   443,
-     445,   447,   449,   451,   452,   453,   454,   457,   458,   493,
-     512,   525,   527,   529,   546,   571,   101,   135,   261,   447,
-     449,   493,   520,   521,   522,   524,   525,   527,   103,   104,
-     105,   106,   107,   261,   447,   449,   493,   525,   527,   537,
-     538,   539,   541,   542,   544,   545,   129,   137,   138,   139,
-     140,   141,   142,   261,   493,   525,   527,   554,   555,   556,
-     557,   559,   561,   563,   565,   567,   569,   467,    24,    81,
-      83,    84,    88,    89,    90,   261,   354,   477,   478,   479,
-     480,   481,   482,   483,   485,   487,   489,   490,   492,   525,
-     527,    82,    85,    86,    87,   261,   354,   481,   487,   501,
-     502,   503,   504,   505,   507,   508,   509,   510,   511,   525,
-     527,   146,   147,   261,   415,   416,   417,   419,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   196,   197,   261,   525,   527,   625,   626,   627,   628,
-     630,   632,   633,   635,   636,   637,   640,   642,   643,   644,
-     646,   648,   650,    13,    14,   656,   657,   658,   660,     6,
-       3,     4,     8,     3,   265,     3,     8,   272,   653,   321,
-     333,   335,   337,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,   311,     4,     4,
-       4,     4,     4,   291,   294,   296,     4,     4,     4,     4,
-     432,   468,   494,     4,   314,   316,   300,   460,   526,   528,
-     455,     4,     4,     4,   387,   399,   393,   379,   577,   547,
-     408,   422,   591,     4,   401,   604,   612,   622,   304,   306,
-       4,     4,     4,   662,   686,     4,     3,     8,   327,     4,
-       4,     4,     4,     3,     8,   513,   530,   442,   444,   446,
-       4,     4,   450,   448,   572,     3,     8,   523,     4,     3,
-       8,   540,     4,   543,     4,     4,     3,     8,   570,   558,
-     560,   562,   564,   566,   568,     8,     3,     8,   484,   355,
-       4,   488,   486,   491,     4,     8,     3,   506,     4,     4,
-       4,     8,     3,   418,   420,     3,     8,     4,   629,   631,
-       4,   634,     4,     4,   638,   641,     4,     4,   645,   647,
-     649,   651,     3,     8,   659,     4,     3,     8,   246,   246,
-     226,     4,     4,     4,     4,     4,     4,     4,   227,   227,
-     227,   227,   227,   227,   227,   227,   229,   228,   228,   228,
-     227,   227,     4,   227,   227,   229,   229,   229,     4,     4,
-       4,   229,   229,   228,   229,     4,     4,     4,   227,     4,
-       4,     4,     4,     4,     4,     4,   229,   229,   229,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,   227,     4,
-       4,     4,     4,     4,     4,   229,   229,   229,     4,     4,
-     270,     4,   229,   229,   227,   227,   325,     4,     4,     4,
-       4,     4,   227,   229,     4,     4,     4,   440,     4,   227,
-     521,     4,   227,     4,   227,   227,   538,     4,     4,     4,
-       4,     4,     4,     4,   556,     4,     4,   227,     4,     4,
-       4,   229,   479,     4,   229,   229,   229,   503,     4,     4,
-     416,   229,     4,     4,   227,     4,   227,   227,     4,     4,
-     229,   229,     4,     4,     4,     4,   626,     4,   227,   657,
-       4,     7,   226,     7,     7,     7,     7,     5,   226,   192,
-     193,   194,   195,   229,   292,   226,   226,     5,     5,     5,
-     226,   226,    95,    96,    97,    98,   301,     5,   248,   250,
-     226,   116,   117,   118,   119,   456,     5,     5,     5,     7,
-       5,     5,     5,     7,     7,     7,     7,     7,     7,   226,
-     226,     5,     7,     5,   257,     5,     5,   226,   226,   226,
-     257,   226,     7,   226,   226,   226,   257,   257,   257,   226,
-     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
-     250,   226,   226,   226,   189,   190,   639,   191,   292,   226,
-     226,   226,     5,   246,   269,   656,   324,    24,    28,    29,
+     124,   125,   126,   129,   136,   144,   147,   154,   162,   163,
+     167,   170,   174,   195,   196,   197,   198,   199,   200,   209,
+     225,   260,   268,   269,   270,   272,   273,   274,   275,   276,
+     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
+     287,   288,   289,   292,   294,   296,   297,   298,   301,   302,
+     304,   306,   307,   308,   309,   311,   312,   314,   316,   317,
+     318,   319,   331,   333,   335,   377,   385,   391,   397,   399,
+     406,   420,   430,   450,   451,   452,   453,   458,   466,   492,
+     524,   526,   545,   573,   587,   599,   600,   608,   618,   649,
+     658,   682,    16,    17,    18,    19,    20,   260,   323,   324,
+     325,   327,   328,   329,   330,   524,   526,   100,   102,   110,
+     111,   112,   113,   114,   130,   134,   143,   260,   272,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
+     284,   286,   287,   288,   289,   292,   294,   296,   297,   298,
+     301,   302,   304,   306,   312,   314,   438,   439,   440,   442,
+     444,   446,   448,   450,   451,   452,   453,   456,   457,   492,
+     511,   524,   526,   528,   545,   570,   101,   135,   260,   446,
+     448,   492,   519,   520,   521,   523,   524,   526,   103,   104,
+     105,   106,   107,   260,   446,   448,   492,   524,   526,   536,
+     537,   538,   540,   541,   543,   544,   129,   137,   138,   139,
+     140,   141,   142,   260,   492,   524,   526,   553,   554,   555,
+     556,   558,   560,   562,   564,   566,   568,   466,    24,    81,
+      83,    84,    88,    89,    90,   260,   353,   476,   477,   478,
+     479,   480,   481,   482,   484,   486,   488,   489,   491,   524,
+     526,    82,    85,    86,    87,   260,   353,   480,   486,   500,
+     501,   502,   503,   504,   506,   507,   508,   509,   510,   524,
+     526,   145,   146,   260,   414,   415,   416,   418,   175,   176,
+     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,   195,   196,   260,   524,   526,   622,   623,   624,   625,
+     627,   629,   630,   632,   633,   634,   637,   639,   640,   641,
+     643,   645,   647,    13,    14,   653,   654,   655,   657,     6,
+       3,     4,     8,     3,   264,     3,     8,   271,   650,   320,
+     332,   334,   336,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,   310,     4,     4,
+       4,     4,     4,   290,   293,   295,     4,     4,     4,     4,
+     431,   467,   493,     4,   313,   315,   299,   459,   525,   527,
+     454,     4,     4,     4,   386,   398,   392,   378,   574,   546,
+     407,   421,   588,     4,   400,   601,   609,   619,   303,   305,
+       4,     4,     4,   659,   683,     4,     3,     8,   326,     4,
+       4,     4,     4,     3,     8,   512,   529,   441,   443,   445,
+       4,     4,   449,   447,   571,     3,     8,   522,     4,     3,
+       8,   539,     4,   542,     4,     4,     3,     8,   569,   557,
+     559,   561,   563,   565,   567,     8,     3,     8,   483,   354,
+       4,   487,   485,   490,     4,     8,     3,   505,     4,     4,
+       4,     8,     3,   417,   419,     3,     8,     4,   626,   628,
+       4,   631,     4,     4,   635,   638,     4,     4,   642,   644,
+     646,   648,     3,     8,   656,     4,     3,     8,   245,   245,
+     225,     4,     4,     4,     4,     4,     4,     4,   226,   226,
+     226,   226,   226,   226,   226,   226,   228,   227,   227,   227,
+     226,   226,     4,   226,   226,   228,   228,   228,     4,     4,
+       4,   228,   228,   227,   228,     4,     4,     4,   226,     4,
+       4,     4,     4,     4,     4,     4,   228,   228,   228,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,   226,     4,
+       4,     4,     4,     4,     4,   228,   228,   228,     4,     4,
+     269,     4,   228,   228,   226,   226,   324,     4,     4,     4,
+       4,     4,   226,   228,     4,     4,     4,   439,     4,   226,
+     520,     4,   226,     4,   226,   226,   537,     4,     4,     4,
+       4,     4,     4,     4,   555,     4,     4,   226,     4,     4,
+       4,   228,   478,     4,   228,   228,   228,   502,     4,     4,
+     415,   228,     4,     4,   226,     4,   226,   226,     4,     4,
+     228,   228,     4,     4,     4,     4,   623,     4,   226,   654,
+       4,     7,   225,     7,     7,     7,     7,     5,   225,   191,
+     192,   193,   194,   228,   291,   225,   225,     5,     5,     5,
+     225,   225,    95,    96,    97,    98,   300,     5,   247,   249,
+     225,   116,   117,   118,   119,   455,     5,     5,     5,     7,
+       5,     5,     5,     7,     7,     7,     7,     7,     7,   225,
+     225,     5,     7,     5,   256,     5,     5,   225,   225,   225,
+     256,   225,     7,   225,   225,   225,   256,   256,   256,   225,
+     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
+     249,   225,   225,   225,   188,   189,   636,   190,   291,   225,
+     225,   225,     5,   245,   268,   653,   323,    24,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    45,    46,    47,    48,    49,    50,   261,   342,
-     343,   344,   347,   349,   351,   353,   354,   356,   357,   358,
-     359,   360,   361,   362,   363,   364,   367,   368,   369,   370,
-     372,   374,   376,   342,     7,   338,   339,   340,     7,   433,
-     434,   435,     7,   471,   472,   473,     7,   495,   496,   497,
-       7,   461,   462,   463,   139,   226,   388,   389,   390,   391,
-     255,   140,   142,   390,   394,   395,   396,   397,   127,   128,
-     380,   381,   382,   384,     7,   578,   579,     7,   548,   549,
-     550,     7,   409,   410,   411,   149,   150,   151,   152,   153,
-     154,   423,   424,   425,   426,   427,   428,   429,   430,    24,
-     159,   160,   161,   162,   261,   356,   525,   527,   592,   593,
-     594,   597,   598,   600,   601,   165,   166,   167,   261,   402,
-     403,   404,   405,   406,   525,   527,   169,   170,   261,   525,
-     527,   605,   606,   607,   609,   172,   173,   174,   226,   525,
-     527,   613,   614,   615,   616,   618,   619,   625,     7,   663,
-     664,   211,   261,   687,   688,   689,   258,     7,   514,   515,
-     516,     7,   531,   532,   533,   144,   557,   573,   574,   338,
-       8,     8,     8,   345,   348,   350,   352,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,   365,     4,     4,
-     371,   373,   375,   377,     3,     8,     8,   341,     6,     3,
-     436,     6,     3,   474,     6,     3,   498,     6,     3,   464,
-       6,     3,     3,     6,     6,     3,     6,   383,   385,     3,
-       8,   580,     3,     6,   551,     6,     3,   412,     6,     3,
-       4,     4,     4,     4,     4,     4,     3,     8,   595,   599,
-       4,     4,     4,     3,     8,     4,     4,     4,     3,     8,
-     608,   610,     3,     8,     4,   617,     4,   620,     3,     8,
-       8,   665,     3,     6,     4,     3,     8,   226,   259,   260,
-     517,     6,     3,   534,     6,     3,   575,     8,     6,     4,
-       4,     4,     4,   227,   229,   227,   229,   227,   227,   227,
-     227,   227,   227,     4,   229,   227,     4,     4,     4,     4,
-     343,   342,   340,   439,   435,   477,   473,   501,   497,   261,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   287,   288,   289,   290,   293,   295,   297,
-     298,   299,   302,   303,   305,   307,   313,   315,   354,   431,
-     443,   445,   447,   449,   451,   452,   453,   454,   458,   465,
-     466,   493,   525,   527,   571,   463,   389,   395,     4,     4,
-     381,   131,   132,   133,   261,   273,   274,   275,   276,   277,
-     278,   354,   493,   525,   527,   581,   582,   583,   584,   585,
-     587,   589,   579,   554,   550,   415,   411,   227,   227,   227,
-     227,   227,   227,   424,     4,     4,   227,   227,   227,   593,
-     229,   227,   227,   403,     4,     4,   606,   229,     4,   227,
-       4,   614,   202,   204,   205,   261,   354,   525,   527,   666,
-     667,   668,   669,   671,   664,   229,   688,     6,     3,   520,
-     516,   537,   533,     4,    25,    26,    27,   346,   226,   226,
-     226,    42,    43,    44,   366,   226,   226,   226,   226,     8,
-       8,     8,     8,     3,     8,   226,   226,   586,   588,     4,
-       8,     3,     8,     8,   156,   157,   158,   596,   226,   226,
-     226,   226,   246,   672,     4,   670,     3,     8,   226,     8,
-       8,   226,   466,     4,     4,   229,   583,     4,   227,     4,
-     667,   226,   226,     5,   226,     7,   673,   674,   675,     3,
-       6,   203,   206,   207,   208,   209,   676,   677,   678,   680,
-     681,   682,   683,   674,   679,     4,     4,     4,   684,     3,
-       8,     4,   229,   227,   227,     4,   677,   226,   226
+      40,    41,    45,    46,    47,    48,    49,    50,   260,   341,
+     342,   343,   346,   348,   350,   352,   353,   355,   356,   357,
+     358,   359,   360,   361,   362,   363,   366,   367,   368,   369,
+     371,   373,   375,   341,     7,   337,   338,   339,     7,   432,
+     433,   434,     7,   470,   471,   472,     7,   494,   495,   496,
+       7,   460,   461,   462,   139,   225,   387,   388,   389,   390,
+     254,   140,   142,   389,   393,   394,   395,   396,   127,   128,
+     379,   380,   381,   383,     7,   575,   576,     7,   547,   548,
+     549,     7,   408,   409,   410,   148,   149,   150,   151,   152,
+     153,   422,   423,   424,   425,   426,   427,   428,   429,    24,
+     158,   159,   160,   161,   260,   355,   524,   526,   589,   590,
+     591,   594,   595,   597,   598,   164,   165,   166,   260,   401,
+     402,   403,   404,   405,   524,   526,   168,   169,   260,   524,
+     526,   602,   603,   604,   606,   171,   172,   173,   225,   524,
+     526,   610,   611,   612,   613,   615,   616,   622,     7,   660,
+     661,   210,   260,   684,   685,   686,   257,     7,   513,   514,
+     515,     7,   530,   531,   532,   556,   572,   337,     8,     8,
+       8,   344,   347,   349,   351,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,   364,     4,     4,   370,   372,
+     374,   376,     3,     8,     8,   340,     6,     3,   435,     6,
+       3,   473,     6,     3,   497,     6,     3,   463,     6,     3,
+       3,     6,     6,     3,     6,   382,   384,     3,     8,   577,
+       3,     6,   550,     6,     3,   411,     6,     3,     4,     4,
+       4,     4,     4,     4,     3,     8,   592,   596,     4,     4,
+       4,     3,     8,     4,     4,     4,     3,     8,   605,   607,
+       3,     8,     4,   614,     4,   617,     3,     8,     8,   662,
+       3,     6,     4,     3,     8,   225,   258,   259,   516,     6,
+       3,   533,     6,     3,     8,     6,     4,     4,     4,     4,
+     226,   228,   226,   228,   226,   226,   226,   226,   226,   226,
+       4,   228,   226,     4,     4,     4,     4,   342,   341,   339,
+     438,   434,   476,   472,   500,   496,   260,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     286,   287,   288,   289,   292,   294,   296,   297,   298,   301,
+     302,   304,   306,   312,   314,   353,   430,   442,   444,   446,
+     448,   450,   451,   452,   453,   457,   464,   465,   492,   524,
+     526,   570,   462,   388,   394,     4,     4,   380,   131,   132,
+     133,   260,   272,   273,   274,   275,   276,   277,   353,   492,
+     524,   526,   578,   579,   580,   581,   582,   584,   586,   576,
+     553,   549,   414,   410,   226,   226,   226,   226,   226,   226,
+     423,     4,     4,   226,   226,   226,   590,   228,   226,   226,
+     402,     4,     4,   603,   228,     4,   226,     4,   611,   201,
+     203,   204,   260,   353,   524,   526,   663,   664,   665,   666,
+     668,   661,   228,   685,     6,     3,   519,   515,   536,   532,
+      25,    26,    27,   345,   225,   225,   225,    42,    43,    44,
+     365,   225,   225,   225,   225,     8,     8,     8,     8,     3,
+       8,   225,   225,   583,   585,     4,     8,     3,     8,     8,
+     155,   156,   157,   593,   225,   225,   225,   225,   245,   669,
+       4,   667,     3,     8,   225,     8,     8,   465,     4,     4,
+     228,   580,     4,   226,     4,   664,   225,   225,     5,   225,
+       7,   670,   671,   672,     3,     6,   202,   205,   206,   207,
+     208,   673,   674,   675,   677,   678,   679,   680,   671,   676,
+       4,     4,     4,   681,     3,     8,     4,   228,   226,   226,
+       4,   674,   225,   225
   };
 
   const short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   230,   232,   231,   233,   231,   234,   231,   235,   231,
-     236,   231,   237,   231,   238,   231,   239,   231,   240,   231,
-     241,   231,   242,   231,   243,   231,   244,   231,   245,   231,
-     246,   246,   246,   246,   246,   246,   246,   247,   249,   248,
-     250,   251,   251,   252,   252,   252,   254,   253,   255,   255,
-     256,   256,   256,   258,   257,   259,   259,   260,   260,   260,
-     261,   263,   262,   265,   264,   264,   266,   268,   267,   269,
-     269,   269,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   272,   271,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     291,   290,   292,   292,   292,   292,   292,   294,   293,   296,
-     295,   297,   298,   300,   299,   301,   301,   301,   301,   302,
-     304,   303,   306,   305,   307,   308,   309,   311,   310,   312,
-     314,   313,   316,   315,   317,   318,   319,   321,   320,   323,
-     322,   324,   324,   324,   325,   325,   325,   325,   325,   325,
-     325,   325,   327,   326,   328,   329,   330,   331,   333,   332,
-     335,   334,   337,   336,   338,   338,   339,   339,   339,   341,
-     340,   342,   342,   342,   343,   343,   343,   343,   343,   343,
-     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
-     343,   343,   343,   343,   343,   343,   343,   345,   344,   346,
-     346,   346,   348,   347,   350,   349,   352,   351,   353,   355,
-     354,   356,   357,   358,   359,   360,   361,   362,   363,   365,
-     364,   366,   366,   366,   367,   368,   369,   371,   370,   373,
-     372,   375,   374,   377,   376,   379,   378,   380,   380,   380,
-     381,   381,   383,   382,   385,   384,   387,   386,   388,   388,
-     388,   389,   389,   390,   391,   393,   392,   394,   394,   394,
-     395,   395,   395,   396,   397,   399,   398,   401,   400,   402,
-     402,   402,   403,   403,   403,   403,   403,   403,   404,   405,
-     406,   408,   407,   409,   409,   410,   410,   410,   412,   411,
-     414,   413,   415,   415,   415,   415,   416,   416,   418,   417,
-     420,   419,   422,   421,   423,   423,   423,   424,   424,   424,
-     424,   424,   424,   425,   426,   427,   428,   429,   430,   432,
-     431,   433,   433,   434,   434,   434,   436,   435,   438,   437,
-     439,   439,   439,   440,   440,   440,   440,   440,   440,   440,
-     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
-     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
-     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
-     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
-     442,   441,   444,   443,   446,   445,   448,   447,   450,   449,
-     451,   452,   453,   455,   454,   456,   456,   456,   456,   457,
-     458,   460,   459,   461,   461,   462,   462,   462,   464,   463,
-     465,   465,   465,   466,   466,   466,   466,   466,   466,   466,
-     466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-     466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-     466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-     466,   466,   466,   466,   466,   466,   466,   468,   467,   470,
-     469,   471,   471,   472,   472,   472,   474,   473,   476,   475,
-     477,   477,   478,   478,   478,   479,   479,   479,   479,   479,
-     479,   479,   479,   479,   479,   480,   481,   482,   484,   483,
-     486,   485,   488,   487,   489,   491,   490,   492,   494,   493,
-     495,   495,   496,   496,   496,   498,   497,   500,   499,   501,
-     501,   502,   502,   502,   503,   503,   503,   503,   503,   503,
-     503,   503,   503,   503,   504,   506,   505,   507,   508,   509,
-     510,   511,   513,   512,   514,   514,   515,   515,   515,   517,
-     516,   519,   518,   520,   520,   520,   521,   521,   521,   521,
-     521,   521,   521,   521,   523,   522,   524,   526,   525,   528,
-     527,   530,   529,   531,   531,   532,   532,   532,   534,   533,
-     536,   535,   537,   537,   537,   538,   538,   538,   538,   538,
-     538,   538,   538,   538,   538,   538,   540,   539,   541,   543,
-     542,   544,   545,   547,   546,   548,   548,   549,   549,   549,
-     551,   550,   553,   552,   554,   554,   555,   555,   555,   556,
-     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
-     558,   557,   560,   559,   562,   561,   564,   563,   566,   565,
-     568,   567,   570,   569,   572,   571,   573,   573,   575,   574,
-     577,   576,   578,   578,   578,   580,   579,   581,   581,   582,
-     582,   582,   583,   583,   583,   583,   583,   583,   583,   583,
-     583,   583,   583,   583,   583,   583,   584,   586,   585,   588,
-     587,   589,   591,   590,   592,   592,   592,   593,   593,   593,
-     593,   593,   593,   593,   593,   593,   595,   594,   596,   596,
-     596,   597,   599,   598,   600,   601,   602,   604,   603,   605,
-     605,   605,   606,   606,   606,   606,   606,   608,   607,   610,
-     609,   612,   611,   613,   613,   613,   614,   614,   614,   614,
-     614,   614,   615,   617,   616,   618,   620,   619,   622,   621,
-     624,   623,   625,   625,   625,   626,   626,   626,   626,   626,
-     626,   626,   626,   626,   626,   626,   626,   626,   626,   626,
-     626,   626,   626,   627,   629,   628,   631,   630,   632,   634,
-     633,   635,   636,   638,   637,   639,   639,   641,   640,   642,
-     643,   645,   644,   647,   646,   649,   648,   651,   650,   653,
-     652,   655,   654,   656,   656,   656,   657,   657,   659,   658,
-     660,   662,   661,   663,   663,   663,   665,   664,   666,   666,
-     666,   667,   667,   667,   667,   667,   667,   667,   668,   670,
-     669,   672,   671,   673,   673,   673,   675,   674,   676,   676,
-     676,   677,   677,   677,   677,   677,   679,   678,   680,   681,
-     682,   684,   683,   686,   685,   687,   687,   687,   688,   688,
-     689
+       0,   229,   231,   230,   232,   230,   233,   230,   234,   230,
+     235,   230,   236,   230,   237,   230,   238,   230,   239,   230,
+     240,   230,   241,   230,   242,   230,   243,   230,   244,   230,
+     245,   245,   245,   245,   245,   245,   245,   246,   248,   247,
+     249,   250,   250,   251,   251,   251,   253,   252,   254,   254,
+     255,   255,   255,   257,   256,   258,   258,   259,   259,   259,
+     260,   262,   261,   264,   263,   263,   265,   267,   266,   268,
+     268,   268,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   271,   270,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
+     290,   289,   291,   291,   291,   291,   291,   293,   292,   295,
+     294,   296,   297,   299,   298,   300,   300,   300,   300,   301,
+     303,   302,   305,   304,   306,   307,   308,   310,   309,   311,
+     313,   312,   315,   314,   316,   317,   318,   320,   319,   322,
+     321,   323,   323,   323,   324,   324,   324,   324,   324,   324,
+     324,   324,   326,   325,   327,   328,   329,   330,   332,   331,
+     334,   333,   336,   335,   337,   337,   338,   338,   338,   340,
+     339,   341,   341,   341,   342,   342,   342,   342,   342,   342,
+     342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
+     342,   342,   342,   342,   342,   342,   342,   344,   343,   345,
+     345,   345,   347,   346,   349,   348,   351,   350,   352,   354,
+     353,   355,   356,   357,   358,   359,   360,   361,   362,   364,
+     363,   365,   365,   365,   366,   367,   368,   370,   369,   372,
+     371,   374,   373,   376,   375,   378,   377,   379,   379,   379,
+     380,   380,   382,   381,   384,   383,   386,   385,   387,   387,
+     387,   388,   388,   389,   390,   392,   391,   393,   393,   393,
+     394,   394,   394,   395,   396,   398,   397,   400,   399,   401,
+     401,   401,   402,   402,   402,   402,   402,   402,   403,   404,
+     405,   407,   406,   408,   408,   409,   409,   409,   411,   410,
+     413,   412,   414,   414,   414,   414,   415,   415,   417,   416,
+     419,   418,   421,   420,   422,   422,   422,   423,   423,   423,
+     423,   423,   423,   424,   425,   426,   427,   428,   429,   431,
+     430,   432,   432,   433,   433,   433,   435,   434,   437,   436,
+     438,   438,   438,   439,   439,   439,   439,   439,   439,   439,
+     439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+     439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+     439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+     439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+     441,   440,   443,   442,   445,   444,   447,   446,   449,   448,
+     450,   451,   452,   454,   453,   455,   455,   455,   455,   456,
+     457,   459,   458,   460,   460,   461,   461,   461,   463,   462,
+     464,   464,   464,   465,   465,   465,   465,   465,   465,   465,
+     465,   465,   465,   465,   465,   465,   465,   465,   465,   465,
+     465,   465,   465,   465,   465,   465,   465,   465,   465,   465,
+     465,   465,   465,   465,   465,   465,   465,   465,   465,   465,
+     465,   465,   465,   465,   465,   465,   465,   467,   466,   469,
+     468,   470,   470,   471,   471,   471,   473,   472,   475,   474,
+     476,   476,   477,   477,   477,   478,   478,   478,   478,   478,
+     478,   478,   478,   478,   478,   479,   480,   481,   483,   482,
+     485,   484,   487,   486,   488,   490,   489,   491,   493,   492,
+     494,   494,   495,   495,   495,   497,   496,   499,   498,   500,
+     500,   501,   501,   501,   502,   502,   502,   502,   502,   502,
+     502,   502,   502,   502,   503,   505,   504,   506,   507,   508,
+     509,   510,   512,   511,   513,   513,   514,   514,   514,   516,
+     515,   518,   517,   519,   519,   519,   520,   520,   520,   520,
+     520,   520,   520,   520,   522,   521,   523,   525,   524,   527,
+     526,   529,   528,   530,   530,   531,   531,   531,   533,   532,
+     535,   534,   536,   536,   536,   537,   537,   537,   537,   537,
+     537,   537,   537,   537,   537,   537,   539,   538,   540,   542,
+     541,   543,   544,   546,   545,   547,   547,   548,   548,   548,
+     550,   549,   552,   551,   553,   553,   554,   554,   554,   555,
+     555,   555,   555,   555,   555,   555,   555,   555,   555,   555,
+     557,   556,   559,   558,   561,   560,   563,   562,   565,   564,
+     567,   566,   569,   568,   571,   570,   572,   574,   573,   575,
+     575,   575,   577,   576,   578,   578,   579,   579,   579,   580,
+     580,   580,   580,   580,   580,   580,   580,   580,   580,   580,
+     580,   580,   580,   581,   583,   582,   585,   584,   586,   588,
+     587,   589,   589,   589,   590,   590,   590,   590,   590,   590,
+     590,   590,   590,   592,   591,   593,   593,   593,   594,   596,
+     595,   597,   598,   599,   601,   600,   602,   602,   602,   603,
+     603,   603,   603,   603,   605,   604,   607,   606,   609,   608,
+     610,   610,   610,   611,   611,   611,   611,   611,   611,   612,
+     614,   613,   615,   617,   616,   619,   618,   621,   620,   622,
+     622,   622,   623,   623,   623,   623,   623,   623,   623,   623,
+     623,   623,   623,   623,   623,   623,   623,   623,   623,   623,
+     624,   626,   625,   628,   627,   629,   631,   630,   632,   633,
+     635,   634,   636,   636,   638,   637,   639,   640,   642,   641,
+     644,   643,   646,   645,   648,   647,   650,   649,   652,   651,
+     653,   653,   653,   654,   654,   656,   655,   657,   659,   658,
+     660,   660,   660,   662,   661,   663,   663,   663,   664,   664,
+     664,   664,   664,   664,   664,   665,   667,   666,   669,   668,
+     670,   670,   670,   672,   671,   673,   673,   673,   674,   674,
+     674,   674,   674,   676,   675,   677,   678,   679,   681,   680,
+     683,   682,   684,   684,   684,   685,   685,   686
   };
 
   const signed char
@@ -6278,28 +6258,27 @@ namespace isc { namespace dhcp {
        0,     4,     0,     4,     0,     1,     1,     3,     2,     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,     2,     0,     4,     0,     1,     1,
+       0,     4,     0,     4,     0,     6,     1,     0,     6,     1,
+       3,     2,     0,     4,     0,     1,     1,     3,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     0,     4,     0,     4,     3,     0,
+       6,     1,     3,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     4,     1,     1,     1,     3,     0,
+       4,     3,     3,     3,     0,     6,     1,     3,     2,     1,
+       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
+       1,     3,     2,     1,     1,     1,     1,     1,     1,     3,
+       0,     4,     3,     0,     4,     0,     6,     0,     4,     1,
        3,     2,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     4,     0,
-       4,     3,     0,     6,     1,     3,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     1,     1,
-       1,     3,     0,     4,     3,     3,     3,     0,     6,     1,
-       3,     2,     1,     1,     1,     1,     1,     0,     4,     0,
-       4,     0,     6,     1,     3,     2,     1,     1,     1,     1,
-       1,     1,     3,     0,     4,     3,     0,     4,     0,     6,
-       0,     4,     1,     3,     2,     1,     1,     1,     1,     1,
        1,     1,     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,     2,     1,     1,     0,     6,
-       3,     0,     6,     1,     3,     2,     0,     4,     1,     3,
-       2,     1,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     0,     6,     1,     3,     2,     0,     4,     1,     3,
-       2,     1,     1,     1,     1,     1,     0,     4,     3,     3,
-       3,     0,     4,     0,     6,     1,     3,     2,     1,     1,
-       3
+       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,     2,     1,     1,     0,     6,     3,     0,     6,
+       1,     3,     2,     0,     4,     1,     3,     2,     1,     1,
+       1,     1,     1,     1,     1,     3,     0,     4,     0,     6,
+       1,     3,     2,     0,     4,     1,     3,     2,     1,     1,
+       1,     1,     1,     0,     4,     3,     3,     3,     0,     4,
+       0,     6,     1,     3,     2,     1,     1,     3
   };
 
 
@@ -6356,7 +6335,7 @@ namespace isc { namespace dhcp {
   "\"template-test\"", "\"only-if-required\"", "\"client-class\"",
   "\"pool-id\"", "\"reservations\"", "\"ip-addresses\"", "\"prefixes\"",
   "\"duid\"", "\"hw-address\"", "\"hostname\"", "\"flex-id\"", "\"relay\"",
-  "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"",
+  "\"hooks-libraries\"", "\"library\"", "\"parameters\"",
   "\"expired-leases-processing\"", "\"reclaim-timer-wait-time\"",
   "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"",
   "\"max-reclaim-leases\"", "\"max-reclaim-time\"",
@@ -6470,34 +6449,34 @@ namespace isc { namespace dhcp {
   "reservation_param", "ip_addresses", "$@98", "prefixes", "$@99", "duid",
   "$@100", "hw_address", "$@101", "hostname", "$@102", "flex_id_value",
   "$@103", "reservation_client_classes", "$@104", "relay", "$@105",
-  "relay_map", "ip_address", "$@106", "client_classes", "$@107",
-  "client_classes_list", "client_class_entry", "$@108",
-  "client_class_params", "not_empty_client_class_params",
-  "client_class_param", "client_class_name", "client_class_test", "$@109",
-  "client_class_template_test", "$@110", "only_if_required", "server_id",
-  "$@111", "server_id_params", "server_id_param", "server_id_type",
-  "$@112", "duid_type", "htype", "identifier", "$@113", "time",
-  "enterprise_id", "dhcp4o6_port", "control_socket", "$@114",
-  "control_socket_params", "control_socket_param", "socket_type", "$@115",
-  "socket_name", "$@116", "dhcp_queue_control", "$@117",
+  "relay_map", "client_classes", "$@106", "client_classes_list",
+  "client_class_entry", "$@107", "client_class_params",
+  "not_empty_client_class_params", "client_class_param",
+  "client_class_name", "client_class_test", "$@108",
+  "client_class_template_test", "$@109", "only_if_required", "server_id",
+  "$@110", "server_id_params", "server_id_param", "server_id_type",
+  "$@111", "duid_type", "htype", "identifier", "$@112", "time",
+  "enterprise_id", "dhcp4o6_port", "control_socket", "$@113",
+  "control_socket_params", "control_socket_param", "socket_type", "$@114",
+  "socket_name", "$@115", "dhcp_queue_control", "$@116",
   "queue_control_params", "queue_control_param", "enable_queue",
-  "queue_type", "$@118", "capacity", "arbitrary_map_entry", "$@119",
-  "dhcp_ddns", "$@120", "sub_dhcp_ddns", "$@121", "dhcp_ddns_params",
-  "dhcp_ddns_param", "enable_updates", "dep_qualifying_suffix", "$@122",
-  "server_ip", "$@123", "server_port", "sender_ip", "$@124", "sender_port",
-  "max_queue_size", "ncr_protocol", "$@125", "ncr_protocol_value",
-  "ncr_format", "$@126", "dep_override_no_update",
-  "dep_override_client_update", "dep_replace_client_name", "$@127",
-  "dep_generated_prefix", "$@128", "dep_hostname_char_set", "$@129",
-  "dep_hostname_char_replacement", "$@130", "config_control", "$@131",
-  "sub_config_control", "$@132", "config_control_params",
-  "config_control_param", "config_databases", "$@133",
-  "config_fetch_wait_time", "loggers", "$@134", "loggers_entries",
-  "logger_entry", "$@135", "logger_params", "logger_param", "debuglevel",
-  "severity", "$@136", "output_options_list", "$@137",
-  "output_options_list_content", "output_entry", "$@138",
-  "output_params_list", "output_params", "output", "$@139", "flush",
-  "maxsize", "maxver", "pattern", "$@140", "compatibility", "$@141",
+  "queue_type", "$@117", "capacity", "arbitrary_map_entry", "$@118",
+  "dhcp_ddns", "$@119", "sub_dhcp_ddns", "$@120", "dhcp_ddns_params",
+  "dhcp_ddns_param", "enable_updates", "dep_qualifying_suffix", "$@121",
+  "server_ip", "$@122", "server_port", "sender_ip", "$@123", "sender_port",
+  "max_queue_size", "ncr_protocol", "$@124", "ncr_protocol_value",
+  "ncr_format", "$@125", "dep_override_no_update",
+  "dep_override_client_update", "dep_replace_client_name", "$@126",
+  "dep_generated_prefix", "$@127", "dep_hostname_char_set", "$@128",
+  "dep_hostname_char_replacement", "$@129", "config_control", "$@130",
+  "sub_config_control", "$@131", "config_control_params",
+  "config_control_param", "config_databases", "$@132",
+  "config_fetch_wait_time", "loggers", "$@133", "loggers_entries",
+  "logger_entry", "$@134", "logger_params", "logger_param", "debuglevel",
+  "severity", "$@135", "output_options_list", "$@136",
+  "output_options_list_content", "output_entry", "$@137",
+  "output_params_list", "output_params", "output", "$@138", "flush",
+  "maxsize", "maxver", "pattern", "$@139", "compatibility", "$@140",
   "compatibility_params", "compatibility_param", "lenient_option_parsing", YY_NULLPTR
   };
 #endif
@@ -6507,97 +6486,96 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   324,   324,   324,   325,   325,   326,   326,   327,   327,
-     328,   328,   329,   329,   330,   330,   331,   331,   332,   332,
-     333,   333,   334,   334,   335,   335,   336,   336,   337,   337,
-     345,   346,   347,   348,   349,   350,   351,   354,   359,   359,
-     370,   373,   374,   377,   382,   388,   393,   393,   400,   401,
-     404,   408,   412,   418,   418,   425,   426,   429,   433,   437,
-     447,   456,   456,   471,   471,   485,   488,   494,   494,   503,
-     504,   505,   512,   513,   514,   515,   516,   517,   518,   519,
-     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
-     540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
-     550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
-     560,   561,   562,   563,   564,   565,   566,   567,   568,   569,
-     570,   571,   572,   573,   574,   575,   576,   577,   578,   579,
-     580,   583,   583,   592,   598,   604,   610,   616,   622,   628,
-     634,   640,   646,   652,   658,   664,   670,   676,   682,   688,
-     694,   694,   703,   706,   709,   712,   715,   721,   721,   730,
-     730,   739,   748,   758,   758,   767,   770,   773,   776,   781,
-     787,   787,   796,   796,   805,   811,   817,   823,   823,   832,
-     838,   838,   847,   847,   856,   862,   868,   874,   874,   886,
-     886,   895,   896,   897,   902,   903,   904,   905,   906,   907,
-     908,   909,   912,   912,   923,   929,   935,   941,   947,   947,
-     960,   960,   973,   973,   984,   985,   988,   989,   990,   995,
-     995,  1005,  1006,  1007,  1012,  1013,  1014,  1015,  1016,  1017,
-    1018,  1019,  1020,  1021,  1022,  1023,  1024,  1025,  1026,  1027,
-    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1037,  1037,  1045,
-    1046,  1047,  1050,  1050,  1059,  1059,  1068,  1068,  1077,  1083,
-    1083,  1092,  1098,  1104,  1110,  1116,  1122,  1128,  1135,  1141,
-    1141,  1149,  1150,  1151,  1154,  1160,  1166,  1172,  1172,  1181,
-    1181,  1190,  1190,  1199,  1199,  1208,  1208,  1219,  1220,  1221,
-    1226,  1227,  1230,  1230,  1249,  1249,  1267,  1267,  1278,  1279,
-    1280,  1285,  1286,  1289,  1294,  1299,  1299,  1310,  1311,  1312,
-    1317,  1318,  1319,  1322,  1327,  1334,  1334,  1347,  1347,  1360,
-    1361,  1362,  1367,  1368,  1369,  1370,  1371,  1372,  1375,  1381,
-    1387,  1393,  1393,  1404,  1405,  1408,  1409,  1410,  1415,  1415,
-    1425,  1425,  1435,  1436,  1437,  1440,  1443,  1444,  1447,  1447,
-    1456,  1456,  1465,  1465,  1477,  1478,  1479,  1484,  1485,  1486,
-    1487,  1488,  1489,  1492,  1498,  1504,  1510,  1516,  1522,  1531,
-    1531,  1545,  1546,  1549,  1550,  1551,  1560,  1560,  1586,  1586,
-    1597,  1598,  1599,  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,  1636,  1637,  1638,  1639,  1640,  1641,
-    1642,  1643,  1644,  1645,  1646,  1647,  1648,  1649,  1650,  1651,
-    1654,  1654,  1663,  1663,  1672,  1672,  1681,  1681,  1690,  1690,
-    1701,  1707,  1713,  1719,  1719,  1727,  1728,  1729,  1730,  1733,
-    1739,  1747,  1747,  1759,  1760,  1764,  1765,  1766,  1771,  1771,
-    1779,  1780,  1781,  1786,  1787,  1788,  1789,  1790,  1791,  1792,
-    1793,  1794,  1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,
-    1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,
-    1813,  1814,  1815,  1816,  1817,  1818,  1819,  1820,  1821,  1822,
-    1823,  1824,  1825,  1826,  1827,  1828,  1829,  1836,  1836,  1850,
-    1850,  1859,  1860,  1863,  1864,  1865,  1872,  1872,  1887,  1887,
-    1901,  1902,  1905,  1906,  1907,  1912,  1913,  1914,  1915,  1916,
-    1917,  1918,  1919,  1920,  1921,  1924,  1926,  1932,  1934,  1934,
-    1943,  1943,  1952,  1952,  1961,  1963,  1963,  1972,  1982,  1982,
-    1995,  1996,  2001,  2002,  2003,  2010,  2010,  2022,  2022,  2034,
-    2035,  2040,  2041,  2042,  2049,  2050,  2051,  2052,  2053,  2054,
-    2055,  2056,  2057,  2058,  2061,  2063,  2063,  2072,  2074,  2076,
-    2082,  2088,  2097,  2097,  2110,  2111,  2114,  2115,  2116,  2121,
-    2121,  2131,  2131,  2141,  2142,  2143,  2148,  2149,  2150,  2151,
-    2152,  2153,  2154,  2155,  2158,  2158,  2167,  2173,  2173,  2198,
-    2198,  2228,  2228,  2241,  2242,  2245,  2246,  2247,  2252,  2252,
-    2264,  2264,  2276,  2277,  2278,  2283,  2284,  2285,  2286,  2287,
-    2288,  2289,  2290,  2291,  2292,  2293,  2296,  2296,  2305,  2311,
-    2311,  2320,  2326,  2335,  2335,  2346,  2347,  2350,  2351,  2352,
-    2357,  2357,  2366,  2366,  2375,  2376,  2379,  2380,  2381,  2387,
-    2388,  2389,  2390,  2391,  2392,  2393,  2394,  2395,  2396,  2397,
-    2400,  2400,  2411,  2411,  2422,  2422,  2431,  2431,  2440,  2440,
-    2449,  2449,  2458,  2458,  2472,  2472,  2483,  2484,  2487,  2487,
-    2499,  2499,  2510,  2511,  2512,  2517,  2517,  2527,  2528,  2531,
-    2532,  2533,  2538,  2539,  2540,  2541,  2542,  2543,  2544,  2545,
-    2546,  2547,  2548,  2549,  2550,  2551,  2554,  2556,  2556,  2565,
-    2565,  2574,  2583,  2583,  2596,  2597,  2598,  2603,  2604,  2605,
-    2606,  2607,  2608,  2609,  2610,  2611,  2614,  2614,  2622,  2623,
-    2624,  2627,  2633,  2633,  2642,  2648,  2656,  2664,  2664,  2675,
-    2676,  2677,  2682,  2683,  2684,  2685,  2686,  2689,  2689,  2698,
-    2698,  2710,  2710,  2723,  2724,  2725,  2730,  2731,  2732,  2733,
-    2734,  2735,  2738,  2744,  2744,  2753,  2759,  2759,  2769,  2769,
-    2782,  2782,  2792,  2793,  2794,  2799,  2800,  2801,  2802,  2803,
-    2804,  2805,  2806,  2807,  2808,  2809,  2810,  2811,  2812,  2813,
-    2814,  2815,  2816,  2819,  2826,  2826,  2835,  2835,  2844,  2850,
-    2850,  2859,  2865,  2871,  2871,  2880,  2881,  2884,  2884,  2894,
-    2901,  2908,  2908,  2917,  2917,  2927,  2927,  2937,  2937,  2949,
-    2949,  2961,  2961,  2971,  2972,  2973,  2979,  2980,  2983,  2983,
-    2994,  3002,  3002,  3015,  3016,  3017,  3023,  3023,  3031,  3032,
-    3033,  3038,  3039,  3040,  3041,  3042,  3043,  3044,  3047,  3053,
-    3053,  3062,  3062,  3073,  3074,  3075,  3080,  3080,  3088,  3089,
-    3090,  3095,  3096,  3097,  3098,  3099,  3102,  3102,  3111,  3117,
-    3123,  3129,  3129,  3138,  3138,  3149,  3150,  3151,  3156,  3157,
-    3160
+       0,   323,   323,   323,   324,   324,   325,   325,   326,   326,
+     327,   327,   328,   328,   329,   329,   330,   330,   331,   331,
+     332,   332,   333,   333,   334,   334,   335,   335,   336,   336,
+     344,   345,   346,   347,   348,   349,   350,   353,   358,   358,
+     369,   372,   373,   376,   381,   387,   392,   392,   399,   400,
+     403,   407,   411,   417,   417,   424,   425,   428,   432,   436,
+     446,   455,   455,   470,   470,   484,   487,   493,   493,   502,
+     503,   504,   511,   512,   513,   514,   515,   516,   517,   518,
+     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
+     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
+     539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
+     549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
+     559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
+     569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
+     579,   582,   582,   591,   597,   603,   609,   615,   621,   627,
+     633,   639,   645,   651,   657,   663,   669,   675,   681,   687,
+     693,   693,   702,   705,   708,   711,   714,   720,   720,   729,
+     729,   738,   747,   757,   757,   766,   769,   772,   775,   780,
+     786,   786,   795,   795,   804,   810,   816,   822,   822,   831,
+     837,   837,   846,   846,   855,   861,   867,   873,   873,   885,
+     885,   894,   895,   896,   901,   902,   903,   904,   905,   906,
+     907,   908,   911,   911,   922,   928,   934,   940,   946,   946,
+     959,   959,   972,   972,   983,   984,   987,   988,   989,   994,
+     994,  1004,  1005,  1006,  1011,  1012,  1013,  1014,  1015,  1016,
+    1017,  1018,  1019,  1020,  1021,  1022,  1023,  1024,  1025,  1026,
+    1027,  1028,  1029,  1030,  1031,  1032,  1033,  1036,  1036,  1044,
+    1045,  1046,  1049,  1049,  1058,  1058,  1067,  1067,  1076,  1082,
+    1082,  1091,  1097,  1103,  1109,  1115,  1121,  1127,  1134,  1140,
+    1140,  1148,  1149,  1150,  1153,  1159,  1165,  1171,  1171,  1180,
+    1180,  1189,  1189,  1198,  1198,  1207,  1207,  1218,  1219,  1220,
+    1225,  1226,  1229,  1229,  1248,  1248,  1266,  1266,  1277,  1278,
+    1279,  1284,  1285,  1288,  1293,  1298,  1298,  1309,  1310,  1311,
+    1316,  1317,  1318,  1321,  1326,  1333,  1333,  1346,  1346,  1359,
+    1360,  1361,  1366,  1367,  1368,  1369,  1370,  1371,  1374,  1380,
+    1386,  1392,  1392,  1403,  1404,  1407,  1408,  1409,  1414,  1414,
+    1424,  1424,  1434,  1435,  1436,  1439,  1442,  1443,  1446,  1446,
+    1455,  1455,  1464,  1464,  1476,  1477,  1478,  1483,  1484,  1485,
+    1486,  1487,  1488,  1491,  1497,  1503,  1509,  1515,  1521,  1530,
+    1530,  1544,  1545,  1548,  1549,  1550,  1559,  1559,  1585,  1585,
+    1596,  1597,  1598,  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,  1636,  1637,  1638,  1639,  1640,
+    1641,  1642,  1643,  1644,  1645,  1646,  1647,  1648,  1649,  1650,
+    1653,  1653,  1662,  1662,  1671,  1671,  1680,  1680,  1689,  1689,
+    1700,  1706,  1712,  1718,  1718,  1726,  1727,  1728,  1729,  1732,
+    1738,  1746,  1746,  1758,  1759,  1763,  1764,  1765,  1770,  1770,
+    1778,  1779,  1780,  1785,  1786,  1787,  1788,  1789,  1790,  1791,
+    1792,  1793,  1794,  1795,  1796,  1797,  1798,  1799,  1800,  1801,
+    1802,  1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,
+    1812,  1813,  1814,  1815,  1816,  1817,  1818,  1819,  1820,  1821,
+    1822,  1823,  1824,  1825,  1826,  1827,  1828,  1835,  1835,  1849,
+    1849,  1858,  1859,  1862,  1863,  1864,  1871,  1871,  1886,  1886,
+    1900,  1901,  1904,  1905,  1906,  1911,  1912,  1913,  1914,  1915,
+    1916,  1917,  1918,  1919,  1920,  1923,  1925,  1931,  1933,  1933,
+    1942,  1942,  1951,  1951,  1960,  1962,  1962,  1971,  1981,  1981,
+    1994,  1995,  2000,  2001,  2002,  2009,  2009,  2021,  2021,  2033,
+    2034,  2039,  2040,  2041,  2048,  2049,  2050,  2051,  2052,  2053,
+    2054,  2055,  2056,  2057,  2060,  2062,  2062,  2071,  2073,  2075,
+    2081,  2087,  2096,  2096,  2109,  2110,  2113,  2114,  2115,  2120,
+    2120,  2130,  2130,  2140,  2141,  2142,  2147,  2148,  2149,  2150,
+    2151,  2152,  2153,  2154,  2157,  2157,  2166,  2172,  2172,  2197,
+    2197,  2227,  2227,  2240,  2241,  2244,  2245,  2246,  2251,  2251,
+    2263,  2263,  2275,  2276,  2277,  2282,  2283,  2284,  2285,  2286,
+    2287,  2288,  2289,  2290,  2291,  2292,  2295,  2295,  2304,  2310,
+    2310,  2319,  2325,  2334,  2334,  2345,  2346,  2349,  2350,  2351,
+    2356,  2356,  2365,  2365,  2374,  2375,  2378,  2379,  2380,  2386,
+    2387,  2388,  2389,  2390,  2391,  2392,  2393,  2394,  2395,  2396,
+    2399,  2399,  2410,  2410,  2421,  2421,  2430,  2430,  2439,  2439,
+    2448,  2448,  2457,  2457,  2471,  2471,  2482,  2488,  2488,  2499,
+    2500,  2501,  2506,  2506,  2516,  2517,  2520,  2521,  2522,  2527,
+    2528,  2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,
+    2538,  2539,  2540,  2543,  2545,  2545,  2554,  2554,  2563,  2572,
+    2572,  2585,  2586,  2587,  2592,  2593,  2594,  2595,  2596,  2597,
+    2598,  2599,  2600,  2603,  2603,  2611,  2612,  2613,  2616,  2622,
+    2622,  2631,  2637,  2645,  2653,  2653,  2664,  2665,  2666,  2671,
+    2672,  2673,  2674,  2675,  2678,  2678,  2687,  2687,  2699,  2699,
+    2712,  2713,  2714,  2719,  2720,  2721,  2722,  2723,  2724,  2727,
+    2733,  2733,  2742,  2748,  2748,  2758,  2758,  2771,  2771,  2781,
+    2782,  2783,  2788,  2789,  2790,  2791,  2792,  2793,  2794,  2795,
+    2796,  2797,  2798,  2799,  2800,  2801,  2802,  2803,  2804,  2805,
+    2808,  2815,  2815,  2824,  2824,  2833,  2839,  2839,  2848,  2854,
+    2860,  2860,  2869,  2870,  2873,  2873,  2883,  2890,  2897,  2897,
+    2906,  2906,  2916,  2916,  2926,  2926,  2938,  2938,  2950,  2950,
+    2960,  2961,  2962,  2968,  2969,  2972,  2972,  2983,  2991,  2991,
+    3004,  3005,  3006,  3012,  3012,  3020,  3021,  3022,  3027,  3028,
+    3029,  3030,  3031,  3032,  3033,  3036,  3042,  3042,  3051,  3051,
+    3062,  3063,  3064,  3069,  3069,  3077,  3078,  3079,  3084,  3085,
+    3086,  3087,  3088,  3091,  3091,  3100,  3106,  3112,  3118,  3118,
+    3127,  3127,  3138,  3139,  3140,  3145,  3146,  3149
   };
 
   void
@@ -6630,9 +6608,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 6634 "dhcp6_parser.cc"
+#line 6612 "dhcp6_parser.cc"
 
-#line 3166 "dhcp6_parser.yy"
+#line 3155 "dhcp6_parser.yy"
 
 
 void
index e504a35427790a11f3e193cb9c823f81376535c0..aea50f2816ae3d0b1f6ba2a9808ff643952c4e5a 100644 (file)
@@ -640,92 +640,91 @@ namespace isc { namespace dhcp {
     TOKEN_HOSTNAME = 396,          // "hostname"
     TOKEN_FLEX_ID = 397,           // "flex-id"
     TOKEN_RELAY = 398,             // "relay"
-    TOKEN_IP_ADDRESS = 399,        // "ip-address"
-    TOKEN_HOOKS_LIBRARIES = 400,   // "hooks-libraries"
-    TOKEN_LIBRARY = 401,           // "library"
-    TOKEN_PARAMETERS = 402,        // "parameters"
-    TOKEN_EXPIRED_LEASES_PROCESSING = 403, // "expired-leases-processing"
-    TOKEN_RECLAIM_TIMER_WAIT_TIME = 404, // "reclaim-timer-wait-time"
-    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 405, // "flush-reclaimed-timer-wait-time"
-    TOKEN_HOLD_RECLAIMED_TIME = 406, // "hold-reclaimed-time"
-    TOKEN_MAX_RECLAIM_LEASES = 407, // "max-reclaim-leases"
-    TOKEN_MAX_RECLAIM_TIME = 408,  // "max-reclaim-time"
-    TOKEN_UNWARNED_RECLAIM_CYCLES = 409, // "unwarned-reclaim-cycles"
-    TOKEN_SERVER_ID = 410,         // "server-id"
-    TOKEN_LLT = 411,               // "LLT"
-    TOKEN_EN = 412,                // "EN"
-    TOKEN_LL = 413,                // "LL"
-    TOKEN_IDENTIFIER = 414,        // "identifier"
-    TOKEN_HTYPE = 415,             // "htype"
-    TOKEN_TIME = 416,              // "time"
-    TOKEN_ENTERPRISE_ID = 417,     // "enterprise-id"
-    TOKEN_DHCP4O6_PORT = 418,      // "dhcp4o6-port"
-    TOKEN_DHCP_MULTI_THREADING = 419, // "multi-threading"
-    TOKEN_ENABLE_MULTI_THREADING = 420, // "enable-multi-threading"
-    TOKEN_THREAD_POOL_SIZE = 421,  // "thread-pool-size"
-    TOKEN_PACKET_QUEUE_SIZE = 422, // "packet-queue-size"
-    TOKEN_CONTROL_SOCKET = 423,    // "control-socket"
-    TOKEN_SOCKET_TYPE = 424,       // "socket-type"
-    TOKEN_SOCKET_NAME = 425,       // "socket-name"
-    TOKEN_DHCP_QUEUE_CONTROL = 426, // "dhcp-queue-control"
-    TOKEN_ENABLE_QUEUE = 427,      // "enable-queue"
-    TOKEN_QUEUE_TYPE = 428,        // "queue-type"
-    TOKEN_CAPACITY = 429,          // "capacity"
-    TOKEN_DHCP_DDNS = 430,         // "dhcp-ddns"
-    TOKEN_ENABLE_UPDATES = 431,    // "enable-updates"
-    TOKEN_QUALIFYING_SUFFIX = 432, // "qualifying-suffix"
-    TOKEN_SERVER_IP = 433,         // "server-ip"
-    TOKEN_SERVER_PORT = 434,       // "server-port"
-    TOKEN_SENDER_IP = 435,         // "sender-ip"
-    TOKEN_SENDER_PORT = 436,       // "sender-port"
-    TOKEN_MAX_QUEUE_SIZE = 437,    // "max-queue-size"
-    TOKEN_NCR_PROTOCOL = 438,      // "ncr-protocol"
-    TOKEN_NCR_FORMAT = 439,        // "ncr-format"
-    TOKEN_OVERRIDE_NO_UPDATE = 440, // "override-no-update"
-    TOKEN_OVERRIDE_CLIENT_UPDATE = 441, // "override-client-update"
-    TOKEN_REPLACE_CLIENT_NAME = 442, // "replace-client-name"
-    TOKEN_GENERATED_PREFIX = 443,  // "generated-prefix"
-    TOKEN_UDP = 444,               // "UDP"
-    TOKEN_TCP = 445,               // "TCP"
-    TOKEN_JSON = 446,              // "JSON"
-    TOKEN_WHEN_PRESENT = 447,      // "when-present"
-    TOKEN_NEVER = 448,             // "never"
-    TOKEN_ALWAYS = 449,            // "always"
-    TOKEN_WHEN_NOT_PRESENT = 450,  // "when-not-present"
-    TOKEN_HOSTNAME_CHAR_SET = 451, // "hostname-char-set"
-    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 452, // "hostname-char-replacement"
-    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 453, // "early-global-reservations-lookup"
-    TOKEN_IP_RESERVATIONS_UNIQUE = 454, // "ip-reservations-unique"
-    TOKEN_RESERVATIONS_LOOKUP_FIRST = 455, // "reservations-lookup-first"
-    TOKEN_LOGGERS = 456,           // "loggers"
-    TOKEN_OUTPUT_OPTIONS = 457,    // "output-options"
-    TOKEN_OUTPUT = 458,            // "output"
-    TOKEN_DEBUGLEVEL = 459,        // "debuglevel"
-    TOKEN_SEVERITY = 460,          // "severity"
-    TOKEN_FLUSH = 461,             // "flush"
-    TOKEN_MAXSIZE = 462,           // "maxsize"
-    TOKEN_MAXVER = 463,            // "maxver"
-    TOKEN_PATTERN = 464,           // "pattern"
-    TOKEN_COMPATIBILITY = 465,     // "compatibility"
-    TOKEN_LENIENT_OPTION_PARSING = 466, // "lenient-option-parsing"
-    TOKEN_TOPLEVEL_JSON = 467,     // TOPLEVEL_JSON
-    TOKEN_TOPLEVEL_DHCP6 = 468,    // TOPLEVEL_DHCP6
-    TOKEN_SUB_DHCP6 = 469,         // SUB_DHCP6
-    TOKEN_SUB_INTERFACES6 = 470,   // SUB_INTERFACES6
-    TOKEN_SUB_SUBNET6 = 471,       // SUB_SUBNET6
-    TOKEN_SUB_POOL6 = 472,         // SUB_POOL6
-    TOKEN_SUB_PD_POOL = 473,       // SUB_PD_POOL
-    TOKEN_SUB_RESERVATION = 474,   // SUB_RESERVATION
-    TOKEN_SUB_OPTION_DEFS = 475,   // SUB_OPTION_DEFS
-    TOKEN_SUB_OPTION_DEF = 476,    // SUB_OPTION_DEF
-    TOKEN_SUB_OPTION_DATA = 477,   // SUB_OPTION_DATA
-    TOKEN_SUB_HOOKS_LIBRARY = 478, // SUB_HOOKS_LIBRARY
-    TOKEN_SUB_DHCP_DDNS = 479,     // SUB_DHCP_DDNS
-    TOKEN_SUB_CONFIG_CONTROL = 480, // SUB_CONFIG_CONTROL
-    TOKEN_STRING = 481,            // "constant string"
-    TOKEN_INTEGER = 482,           // "integer"
-    TOKEN_FLOAT = 483,             // "floating point"
-    TOKEN_BOOLEAN = 484            // "boolean"
+    TOKEN_HOOKS_LIBRARIES = 399,   // "hooks-libraries"
+    TOKEN_LIBRARY = 400,           // "library"
+    TOKEN_PARAMETERS = 401,        // "parameters"
+    TOKEN_EXPIRED_LEASES_PROCESSING = 402, // "expired-leases-processing"
+    TOKEN_RECLAIM_TIMER_WAIT_TIME = 403, // "reclaim-timer-wait-time"
+    TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 404, // "flush-reclaimed-timer-wait-time"
+    TOKEN_HOLD_RECLAIMED_TIME = 405, // "hold-reclaimed-time"
+    TOKEN_MAX_RECLAIM_LEASES = 406, // "max-reclaim-leases"
+    TOKEN_MAX_RECLAIM_TIME = 407,  // "max-reclaim-time"
+    TOKEN_UNWARNED_RECLAIM_CYCLES = 408, // "unwarned-reclaim-cycles"
+    TOKEN_SERVER_ID = 409,         // "server-id"
+    TOKEN_LLT = 410,               // "LLT"
+    TOKEN_EN = 411,                // "EN"
+    TOKEN_LL = 412,                // "LL"
+    TOKEN_IDENTIFIER = 413,        // "identifier"
+    TOKEN_HTYPE = 414,             // "htype"
+    TOKEN_TIME = 415,              // "time"
+    TOKEN_ENTERPRISE_ID = 416,     // "enterprise-id"
+    TOKEN_DHCP4O6_PORT = 417,      // "dhcp4o6-port"
+    TOKEN_DHCP_MULTI_THREADING = 418, // "multi-threading"
+    TOKEN_ENABLE_MULTI_THREADING = 419, // "enable-multi-threading"
+    TOKEN_THREAD_POOL_SIZE = 420,  // "thread-pool-size"
+    TOKEN_PACKET_QUEUE_SIZE = 421, // "packet-queue-size"
+    TOKEN_CONTROL_SOCKET = 422,    // "control-socket"
+    TOKEN_SOCKET_TYPE = 423,       // "socket-type"
+    TOKEN_SOCKET_NAME = 424,       // "socket-name"
+    TOKEN_DHCP_QUEUE_CONTROL = 425, // "dhcp-queue-control"
+    TOKEN_ENABLE_QUEUE = 426,      // "enable-queue"
+    TOKEN_QUEUE_TYPE = 427,        // "queue-type"
+    TOKEN_CAPACITY = 428,          // "capacity"
+    TOKEN_DHCP_DDNS = 429,         // "dhcp-ddns"
+    TOKEN_ENABLE_UPDATES = 430,    // "enable-updates"
+    TOKEN_QUALIFYING_SUFFIX = 431, // "qualifying-suffix"
+    TOKEN_SERVER_IP = 432,         // "server-ip"
+    TOKEN_SERVER_PORT = 433,       // "server-port"
+    TOKEN_SENDER_IP = 434,         // "sender-ip"
+    TOKEN_SENDER_PORT = 435,       // "sender-port"
+    TOKEN_MAX_QUEUE_SIZE = 436,    // "max-queue-size"
+    TOKEN_NCR_PROTOCOL = 437,      // "ncr-protocol"
+    TOKEN_NCR_FORMAT = 438,        // "ncr-format"
+    TOKEN_OVERRIDE_NO_UPDATE = 439, // "override-no-update"
+    TOKEN_OVERRIDE_CLIENT_UPDATE = 440, // "override-client-update"
+    TOKEN_REPLACE_CLIENT_NAME = 441, // "replace-client-name"
+    TOKEN_GENERATED_PREFIX = 442,  // "generated-prefix"
+    TOKEN_UDP = 443,               // "UDP"
+    TOKEN_TCP = 444,               // "TCP"
+    TOKEN_JSON = 445,              // "JSON"
+    TOKEN_WHEN_PRESENT = 446,      // "when-present"
+    TOKEN_NEVER = 447,             // "never"
+    TOKEN_ALWAYS = 448,            // "always"
+    TOKEN_WHEN_NOT_PRESENT = 449,  // "when-not-present"
+    TOKEN_HOSTNAME_CHAR_SET = 450, // "hostname-char-set"
+    TOKEN_HOSTNAME_CHAR_REPLACEMENT = 451, // "hostname-char-replacement"
+    TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 452, // "early-global-reservations-lookup"
+    TOKEN_IP_RESERVATIONS_UNIQUE = 453, // "ip-reservations-unique"
+    TOKEN_RESERVATIONS_LOOKUP_FIRST = 454, // "reservations-lookup-first"
+    TOKEN_LOGGERS = 455,           // "loggers"
+    TOKEN_OUTPUT_OPTIONS = 456,    // "output-options"
+    TOKEN_OUTPUT = 457,            // "output"
+    TOKEN_DEBUGLEVEL = 458,        // "debuglevel"
+    TOKEN_SEVERITY = 459,          // "severity"
+    TOKEN_FLUSH = 460,             // "flush"
+    TOKEN_MAXSIZE = 461,           // "maxsize"
+    TOKEN_MAXVER = 462,            // "maxver"
+    TOKEN_PATTERN = 463,           // "pattern"
+    TOKEN_COMPATIBILITY = 464,     // "compatibility"
+    TOKEN_LENIENT_OPTION_PARSING = 465, // "lenient-option-parsing"
+    TOKEN_TOPLEVEL_JSON = 466,     // TOPLEVEL_JSON
+    TOKEN_TOPLEVEL_DHCP6 = 467,    // TOPLEVEL_DHCP6
+    TOKEN_SUB_DHCP6 = 468,         // SUB_DHCP6
+    TOKEN_SUB_INTERFACES6 = 469,   // SUB_INTERFACES6
+    TOKEN_SUB_SUBNET6 = 470,       // SUB_SUBNET6
+    TOKEN_SUB_POOL6 = 471,         // SUB_POOL6
+    TOKEN_SUB_PD_POOL = 472,       // SUB_PD_POOL
+    TOKEN_SUB_RESERVATION = 473,   // SUB_RESERVATION
+    TOKEN_SUB_OPTION_DEFS = 474,   // SUB_OPTION_DEFS
+    TOKEN_SUB_OPTION_DEF = 475,    // SUB_OPTION_DEF
+    TOKEN_SUB_OPTION_DATA = 476,   // SUB_OPTION_DATA
+    TOKEN_SUB_HOOKS_LIBRARY = 477, // SUB_HOOKS_LIBRARY
+    TOKEN_SUB_DHCP_DDNS = 478,     // SUB_DHCP_DDNS
+    TOKEN_SUB_CONFIG_CONTROL = 479, // SUB_CONFIG_CONTROL
+    TOKEN_STRING = 480,            // "constant string"
+    TOKEN_INTEGER = 481,           // "integer"
+    TOKEN_FLOAT = 482,             // "floating point"
+    TOKEN_BOOLEAN = 483            // "boolean"
       };
       /// Backward compatibility alias (Bison 3.6).
       typedef token_kind_type yytokentype;
@@ -742,7 +741,7 @@ namespace isc { namespace dhcp {
     {
       enum symbol_kind_type
       {
-        YYNTOKENS = 230, ///< Number of tokens.
+        YYNTOKENS = 229, ///< Number of tokens.
         S_YYEMPTY = -2,
         S_YYEOF = 0,                             // "end of file"
         S_YYerror = 1,                           // error
@@ -888,552 +887,549 @@ namespace isc { namespace dhcp {
         S_HOSTNAME = 141,                        // "hostname"
         S_FLEX_ID = 142,                         // "flex-id"
         S_RELAY = 143,                           // "relay"
-        S_IP_ADDRESS = 144,                      // "ip-address"
-        S_HOOKS_LIBRARIES = 145,                 // "hooks-libraries"
-        S_LIBRARY = 146,                         // "library"
-        S_PARAMETERS = 147,                      // "parameters"
-        S_EXPIRED_LEASES_PROCESSING = 148,       // "expired-leases-processing"
-        S_RECLAIM_TIMER_WAIT_TIME = 149,         // "reclaim-timer-wait-time"
-        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 150, // "flush-reclaimed-timer-wait-time"
-        S_HOLD_RECLAIMED_TIME = 151,             // "hold-reclaimed-time"
-        S_MAX_RECLAIM_LEASES = 152,              // "max-reclaim-leases"
-        S_MAX_RECLAIM_TIME = 153,                // "max-reclaim-time"
-        S_UNWARNED_RECLAIM_CYCLES = 154,         // "unwarned-reclaim-cycles"
-        S_SERVER_ID = 155,                       // "server-id"
-        S_LLT = 156,                             // "LLT"
-        S_EN = 157,                              // "EN"
-        S_LL = 158,                              // "LL"
-        S_IDENTIFIER = 159,                      // "identifier"
-        S_HTYPE = 160,                           // "htype"
-        S_TIME = 161,                            // "time"
-        S_ENTERPRISE_ID = 162,                   // "enterprise-id"
-        S_DHCP4O6_PORT = 163,                    // "dhcp4o6-port"
-        S_DHCP_MULTI_THREADING = 164,            // "multi-threading"
-        S_ENABLE_MULTI_THREADING = 165,          // "enable-multi-threading"
-        S_THREAD_POOL_SIZE = 166,                // "thread-pool-size"
-        S_PACKET_QUEUE_SIZE = 167,               // "packet-queue-size"
-        S_CONTROL_SOCKET = 168,                  // "control-socket"
-        S_SOCKET_TYPE = 169,                     // "socket-type"
-        S_SOCKET_NAME = 170,                     // "socket-name"
-        S_DHCP_QUEUE_CONTROL = 171,              // "dhcp-queue-control"
-        S_ENABLE_QUEUE = 172,                    // "enable-queue"
-        S_QUEUE_TYPE = 173,                      // "queue-type"
-        S_CAPACITY = 174,                        // "capacity"
-        S_DHCP_DDNS = 175,                       // "dhcp-ddns"
-        S_ENABLE_UPDATES = 176,                  // "enable-updates"
-        S_QUALIFYING_SUFFIX = 177,               // "qualifying-suffix"
-        S_SERVER_IP = 178,                       // "server-ip"
-        S_SERVER_PORT = 179,                     // "server-port"
-        S_SENDER_IP = 180,                       // "sender-ip"
-        S_SENDER_PORT = 181,                     // "sender-port"
-        S_MAX_QUEUE_SIZE = 182,                  // "max-queue-size"
-        S_NCR_PROTOCOL = 183,                    // "ncr-protocol"
-        S_NCR_FORMAT = 184,                      // "ncr-format"
-        S_OVERRIDE_NO_UPDATE = 185,              // "override-no-update"
-        S_OVERRIDE_CLIENT_UPDATE = 186,          // "override-client-update"
-        S_REPLACE_CLIENT_NAME = 187,             // "replace-client-name"
-        S_GENERATED_PREFIX = 188,                // "generated-prefix"
-        S_UDP = 189,                             // "UDP"
-        S_TCP = 190,                             // "TCP"
-        S_JSON = 191,                            // "JSON"
-        S_WHEN_PRESENT = 192,                    // "when-present"
-        S_NEVER = 193,                           // "never"
-        S_ALWAYS = 194,                          // "always"
-        S_WHEN_NOT_PRESENT = 195,                // "when-not-present"
-        S_HOSTNAME_CHAR_SET = 196,               // "hostname-char-set"
-        S_HOSTNAME_CHAR_REPLACEMENT = 197,       // "hostname-char-replacement"
-        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 198, // "early-global-reservations-lookup"
-        S_IP_RESERVATIONS_UNIQUE = 199,          // "ip-reservations-unique"
-        S_RESERVATIONS_LOOKUP_FIRST = 200,       // "reservations-lookup-first"
-        S_LOGGERS = 201,                         // "loggers"
-        S_OUTPUT_OPTIONS = 202,                  // "output-options"
-        S_OUTPUT = 203,                          // "output"
-        S_DEBUGLEVEL = 204,                      // "debuglevel"
-        S_SEVERITY = 205,                        // "severity"
-        S_FLUSH = 206,                           // "flush"
-        S_MAXSIZE = 207,                         // "maxsize"
-        S_MAXVER = 208,                          // "maxver"
-        S_PATTERN = 209,                         // "pattern"
-        S_COMPATIBILITY = 210,                   // "compatibility"
-        S_LENIENT_OPTION_PARSING = 211,          // "lenient-option-parsing"
-        S_TOPLEVEL_JSON = 212,                   // TOPLEVEL_JSON
-        S_TOPLEVEL_DHCP6 = 213,                  // TOPLEVEL_DHCP6
-        S_SUB_DHCP6 = 214,                       // SUB_DHCP6
-        S_SUB_INTERFACES6 = 215,                 // SUB_INTERFACES6
-        S_SUB_SUBNET6 = 216,                     // SUB_SUBNET6
-        S_SUB_POOL6 = 217,                       // SUB_POOL6
-        S_SUB_PD_POOL = 218,                     // SUB_PD_POOL
-        S_SUB_RESERVATION = 219,                 // SUB_RESERVATION
-        S_SUB_OPTION_DEFS = 220,                 // SUB_OPTION_DEFS
-        S_SUB_OPTION_DEF = 221,                  // SUB_OPTION_DEF
-        S_SUB_OPTION_DATA = 222,                 // SUB_OPTION_DATA
-        S_SUB_HOOKS_LIBRARY = 223,               // SUB_HOOKS_LIBRARY
-        S_SUB_DHCP_DDNS = 224,                   // SUB_DHCP_DDNS
-        S_SUB_CONFIG_CONTROL = 225,              // SUB_CONFIG_CONTROL
-        S_STRING = 226,                          // "constant string"
-        S_INTEGER = 227,                         // "integer"
-        S_FLOAT = 228,                           // "floating point"
-        S_BOOLEAN = 229,                         // "boolean"
-        S_YYACCEPT = 230,                        // $accept
-        S_start = 231,                           // start
-        S_232_1 = 232,                           // $@1
-        S_233_2 = 233,                           // $@2
-        S_234_3 = 234,                           // $@3
-        S_235_4 = 235,                           // $@4
-        S_236_5 = 236,                           // $@5
-        S_237_6 = 237,                           // $@6
-        S_238_7 = 238,                           // $@7
-        S_239_8 = 239,                           // $@8
-        S_240_9 = 240,                           // $@9
-        S_241_10 = 241,                          // $@10
-        S_242_11 = 242,                          // $@11
-        S_243_12 = 243,                          // $@12
-        S_244_13 = 244,                          // $@13
-        S_245_14 = 245,                          // $@14
-        S_value = 246,                           // value
-        S_sub_json = 247,                        // sub_json
-        S_map2 = 248,                            // map2
-        S_249_15 = 249,                          // $@15
-        S_map_value = 250,                       // map_value
-        S_map_content = 251,                     // map_content
-        S_not_empty_map = 252,                   // not_empty_map
-        S_list_generic = 253,                    // list_generic
-        S_254_16 = 254,                          // $@16
-        S_list_content = 255,                    // list_content
-        S_not_empty_list = 256,                  // not_empty_list
-        S_list_strings = 257,                    // list_strings
-        S_258_17 = 258,                          // $@17
-        S_list_strings_content = 259,            // list_strings_content
-        S_not_empty_list_strings = 260,          // not_empty_list_strings
-        S_unknown_map_entry = 261,               // unknown_map_entry
-        S_syntax_map = 262,                      // syntax_map
-        S_263_18 = 263,                          // $@18
-        S_global_object = 264,                   // global_object
-        S_265_19 = 265,                          // $@19
-        S_global_object_comma = 266,             // global_object_comma
-        S_sub_dhcp6 = 267,                       // sub_dhcp6
-        S_268_20 = 268,                          // $@20
-        S_global_params = 269,                   // global_params
-        S_global_param = 270,                    // global_param
-        S_data_directory = 271,                  // data_directory
-        S_272_21 = 272,                          // $@21
-        S_preferred_lifetime = 273,              // preferred_lifetime
-        S_min_preferred_lifetime = 274,          // min_preferred_lifetime
-        S_max_preferred_lifetime = 275,          // max_preferred_lifetime
-        S_valid_lifetime = 276,                  // valid_lifetime
-        S_min_valid_lifetime = 277,              // min_valid_lifetime
-        S_max_valid_lifetime = 278,              // max_valid_lifetime
-        S_renew_timer = 279,                     // renew_timer
-        S_rebind_timer = 280,                    // rebind_timer
-        S_calculate_tee_times = 281,             // calculate_tee_times
-        S_t1_percent = 282,                      // t1_percent
-        S_t2_percent = 283,                      // t2_percent
-        S_cache_threshold = 284,                 // cache_threshold
-        S_cache_max_age = 285,                   // cache_max_age
-        S_decline_probation_period = 286,        // decline_probation_period
-        S_ddns_send_updates = 287,               // ddns_send_updates
-        S_ddns_override_no_update = 288,         // ddns_override_no_update
-        S_ddns_override_client_update = 289,     // ddns_override_client_update
-        S_ddns_replace_client_name = 290,        // ddns_replace_client_name
-        S_291_22 = 291,                          // $@22
-        S_ddns_replace_client_name_value = 292,  // ddns_replace_client_name_value
-        S_ddns_generated_prefix = 293,           // ddns_generated_prefix
-        S_294_23 = 294,                          // $@23
-        S_ddns_qualifying_suffix = 295,          // ddns_qualifying_suffix
-        S_296_24 = 296,                          // $@24
-        S_ddns_update_on_renew = 297,            // ddns_update_on_renew
-        S_ddns_use_conflict_resolution = 298,    // ddns_use_conflict_resolution
-        S_ddns_conflict_resolution_mode = 299,   // ddns_conflict_resolution_mode
-        S_300_25 = 300,                          // $@25
-        S_ddns_conflict_resolution_mode_value = 301, // ddns_conflict_resolution_mode_value
-        S_ddns_ttl_percent = 302,                // ddns_ttl_percent
-        S_hostname_char_set = 303,               // hostname_char_set
-        S_304_26 = 304,                          // $@26
-        S_hostname_char_replacement = 305,       // hostname_char_replacement
-        S_306_27 = 306,                          // $@27
-        S_store_extended_info = 307,             // store_extended_info
-        S_statistic_default_sample_count = 308,  // statistic_default_sample_count
-        S_statistic_default_sample_age = 309,    // statistic_default_sample_age
-        S_server_tag = 310,                      // server_tag
-        S_311_28 = 311,                          // $@28
-        S_parked_packet_limit = 312,             // parked_packet_limit
-        S_allocator = 313,                       // allocator
-        S_314_29 = 314,                          // $@29
-        S_pd_allocator = 315,                    // pd_allocator
-        S_316_30 = 316,                          // $@30
-        S_early_global_reservations_lookup = 317, // early_global_reservations_lookup
-        S_ip_reservations_unique = 318,          // ip_reservations_unique
-        S_reservations_lookup_first = 319,       // reservations_lookup_first
-        S_interfaces_config = 320,               // interfaces_config
-        S_321_31 = 321,                          // $@31
-        S_sub_interfaces6 = 322,                 // sub_interfaces6
-        S_323_32 = 323,                          // $@32
-        S_interfaces_config_params = 324,        // interfaces_config_params
-        S_interfaces_config_param = 325,         // interfaces_config_param
-        S_interfaces_list = 326,                 // interfaces_list
-        S_327_33 = 327,                          // $@33
-        S_re_detect = 328,                       // re_detect
-        S_service_sockets_require_all = 329,     // service_sockets_require_all
-        S_service_sockets_retry_wait_time = 330, // service_sockets_retry_wait_time
-        S_service_sockets_max_retries = 331,     // service_sockets_max_retries
-        S_lease_database = 332,                  // lease_database
-        S_333_34 = 333,                          // $@34
-        S_hosts_database = 334,                  // hosts_database
-        S_335_35 = 335,                          // $@35
-        S_hosts_databases = 336,                 // hosts_databases
-        S_337_36 = 337,                          // $@36
-        S_database_list = 338,                   // database_list
-        S_not_empty_database_list = 339,         // not_empty_database_list
-        S_database = 340,                        // database
-        S_341_37 = 341,                          // $@37
-        S_database_map_params = 342,             // database_map_params
-        S_database_map_param = 343,              // database_map_param
-        S_database_type = 344,                   // database_type
-        S_345_38 = 345,                          // $@38
-        S_db_type = 346,                         // db_type
-        S_user = 347,                            // user
-        S_348_39 = 348,                          // $@39
-        S_password = 349,                        // password
-        S_350_40 = 350,                          // $@40
-        S_host = 351,                            // host
-        S_352_41 = 352,                          // $@41
-        S_port = 353,                            // port
-        S_name = 354,                            // name
-        S_355_42 = 355,                          // $@42
-        S_persist = 356,                         // persist
-        S_lfc_interval = 357,                    // lfc_interval
-        S_readonly = 358,                        // readonly
-        S_connect_timeout = 359,                 // connect_timeout
-        S_read_timeout = 360,                    // read_timeout
-        S_write_timeout = 361,                   // write_timeout
-        S_tcp_user_timeout = 362,                // tcp_user_timeout
-        S_reconnect_wait_time = 363,             // reconnect_wait_time
-        S_on_fail = 364,                         // on_fail
-        S_365_43 = 365,                          // $@43
-        S_on_fail_mode = 366,                    // on_fail_mode
-        S_retry_on_startup = 367,                // retry_on_startup
-        S_max_row_errors = 368,                  // max_row_errors
-        S_max_reconnect_tries = 369,             // max_reconnect_tries
-        S_trust_anchor = 370,                    // trust_anchor
-        S_371_44 = 371,                          // $@44
-        S_cert_file = 372,                       // cert_file
-        S_373_45 = 373,                          // $@45
-        S_key_file = 374,                        // key_file
-        S_375_46 = 375,                          // $@46
-        S_cipher_list = 376,                     // cipher_list
-        S_377_47 = 377,                          // $@47
-        S_sanity_checks = 378,                   // sanity_checks
-        S_379_48 = 379,                          // $@48
-        S_sanity_checks_params = 380,            // sanity_checks_params
-        S_sanity_checks_param = 381,             // sanity_checks_param
-        S_lease_checks = 382,                    // lease_checks
-        S_383_49 = 383,                          // $@49
-        S_extended_info_checks = 384,            // extended_info_checks
-        S_385_50 = 385,                          // $@50
-        S_mac_sources = 386,                     // mac_sources
-        S_387_51 = 387,                          // $@51
-        S_mac_sources_list = 388,                // mac_sources_list
-        S_mac_sources_value = 389,               // mac_sources_value
-        S_duid_id = 390,                         // duid_id
-        S_string_id = 391,                       // string_id
-        S_host_reservation_identifiers = 392,    // host_reservation_identifiers
-        S_393_52 = 393,                          // $@52
-        S_host_reservation_identifiers_list = 394, // host_reservation_identifiers_list
-        S_host_reservation_identifier = 395,     // host_reservation_identifier
-        S_hw_address_id = 396,                   // hw_address_id
-        S_flex_id = 397,                         // flex_id
-        S_relay_supplied_options = 398,          // relay_supplied_options
-        S_399_53 = 399,                          // $@53
-        S_dhcp_multi_threading = 400,            // dhcp_multi_threading
-        S_401_54 = 401,                          // $@54
-        S_multi_threading_params = 402,          // multi_threading_params
-        S_multi_threading_param = 403,           // multi_threading_param
-        S_enable_multi_threading = 404,          // enable_multi_threading
-        S_thread_pool_size = 405,                // thread_pool_size
-        S_packet_queue_size = 406,               // packet_queue_size
-        S_hooks_libraries = 407,                 // hooks_libraries
-        S_408_55 = 408,                          // $@55
-        S_hooks_libraries_list = 409,            // hooks_libraries_list
-        S_not_empty_hooks_libraries_list = 410,  // not_empty_hooks_libraries_list
-        S_hooks_library = 411,                   // hooks_library
-        S_412_56 = 412,                          // $@56
-        S_sub_hooks_library = 413,               // sub_hooks_library
-        S_414_57 = 414,                          // $@57
-        S_hooks_params = 415,                    // hooks_params
-        S_hooks_param = 416,                     // hooks_param
-        S_library = 417,                         // library
-        S_418_58 = 418,                          // $@58
-        S_parameters = 419,                      // parameters
-        S_420_59 = 420,                          // $@59
-        S_expired_leases_processing = 421,       // expired_leases_processing
-        S_422_60 = 422,                          // $@60
-        S_expired_leases_params = 423,           // expired_leases_params
-        S_expired_leases_param = 424,            // expired_leases_param
-        S_reclaim_timer_wait_time = 425,         // reclaim_timer_wait_time
-        S_flush_reclaimed_timer_wait_time = 426, // flush_reclaimed_timer_wait_time
-        S_hold_reclaimed_time = 427,             // hold_reclaimed_time
-        S_max_reclaim_leases = 428,              // max_reclaim_leases
-        S_max_reclaim_time = 429,                // max_reclaim_time
-        S_unwarned_reclaim_cycles = 430,         // unwarned_reclaim_cycles
-        S_subnet6_list = 431,                    // subnet6_list
-        S_432_61 = 432,                          // $@61
-        S_subnet6_list_content = 433,            // subnet6_list_content
-        S_not_empty_subnet6_list = 434,          // not_empty_subnet6_list
-        S_subnet6 = 435,                         // subnet6
-        S_436_62 = 436,                          // $@62
-        S_sub_subnet6 = 437,                     // sub_subnet6
-        S_438_63 = 438,                          // $@63
-        S_subnet6_params = 439,                  // subnet6_params
-        S_subnet6_param = 440,                   // subnet6_param
-        S_subnet = 441,                          // subnet
-        S_442_64 = 442,                          // $@64
-        S_interface = 443,                       // interface
-        S_444_65 = 444,                          // $@65
-        S_interface_id = 445,                    // interface_id
-        S_446_66 = 446,                          // $@66
-        S_client_class = 447,                    // client_class
-        S_448_67 = 448,                          // $@67
-        S_require_client_classes = 449,          // require_client_classes
-        S_450_68 = 450,                          // $@68
-        S_reservations_global = 451,             // reservations_global
-        S_reservations_in_subnet = 452,          // reservations_in_subnet
-        S_reservations_out_of_pool = 453,        // reservations_out_of_pool
-        S_reservation_mode = 454,                // reservation_mode
-        S_455_69 = 455,                          // $@69
-        S_hr_mode = 456,                         // hr_mode
-        S_id = 457,                              // id
-        S_rapid_commit = 458,                    // rapid_commit
-        S_shared_networks = 459,                 // shared_networks
-        S_460_70 = 460,                          // $@70
-        S_shared_networks_content = 461,         // shared_networks_content
-        S_shared_networks_list = 462,            // shared_networks_list
-        S_shared_network = 463,                  // shared_network
-        S_464_71 = 464,                          // $@71
-        S_shared_network_params = 465,           // shared_network_params
-        S_shared_network_param = 466,            // shared_network_param
-        S_option_def_list = 467,                 // option_def_list
-        S_468_72 = 468,                          // $@72
-        S_sub_option_def_list = 469,             // sub_option_def_list
-        S_470_73 = 470,                          // $@73
-        S_option_def_list_content = 471,         // option_def_list_content
-        S_not_empty_option_def_list = 472,       // not_empty_option_def_list
-        S_option_def_entry = 473,                // option_def_entry
-        S_474_74 = 474,                          // $@74
-        S_sub_option_def = 475,                  // sub_option_def
-        S_476_75 = 476,                          // $@75
-        S_option_def_params = 477,               // option_def_params
-        S_not_empty_option_def_params = 478,     // not_empty_option_def_params
-        S_option_def_param = 479,                // option_def_param
-        S_option_def_name = 480,                 // option_def_name
-        S_code = 481,                            // code
-        S_option_def_code = 482,                 // option_def_code
-        S_option_def_type = 483,                 // option_def_type
-        S_484_76 = 484,                          // $@76
-        S_option_def_record_types = 485,         // option_def_record_types
-        S_486_77 = 486,                          // $@77
-        S_space = 487,                           // space
-        S_488_78 = 488,                          // $@78
-        S_option_def_space = 489,                // option_def_space
-        S_option_def_encapsulate = 490,          // option_def_encapsulate
-        S_491_79 = 491,                          // $@79
-        S_option_def_array = 492,                // option_def_array
-        S_option_data_list = 493,                // option_data_list
-        S_494_80 = 494,                          // $@80
-        S_option_data_list_content = 495,        // option_data_list_content
-        S_not_empty_option_data_list = 496,      // not_empty_option_data_list
-        S_option_data_entry = 497,               // option_data_entry
-        S_498_81 = 498,                          // $@81
-        S_sub_option_data = 499,                 // sub_option_data
-        S_500_82 = 500,                          // $@82
-        S_option_data_params = 501,              // option_data_params
-        S_not_empty_option_data_params = 502,    // not_empty_option_data_params
-        S_option_data_param = 503,               // option_data_param
-        S_option_data_name = 504,                // option_data_name
-        S_option_data_data = 505,                // option_data_data
-        S_506_83 = 506,                          // $@83
-        S_option_data_code = 507,                // option_data_code
-        S_option_data_space = 508,               // option_data_space
-        S_option_data_csv_format = 509,          // option_data_csv_format
-        S_option_data_always_send = 510,         // option_data_always_send
-        S_option_data_never_send = 511,          // option_data_never_send
-        S_pools_list = 512,                      // pools_list
-        S_513_84 = 513,                          // $@84
-        S_pools_list_content = 514,              // pools_list_content
-        S_not_empty_pools_list = 515,            // not_empty_pools_list
-        S_pool_list_entry = 516,                 // pool_list_entry
-        S_517_85 = 517,                          // $@85
-        S_sub_pool6 = 518,                       // sub_pool6
-        S_519_86 = 519,                          // $@86
-        S_pool_params = 520,                     // pool_params
-        S_pool_param = 521,                      // pool_param
-        S_pool_entry = 522,                      // pool_entry
-        S_523_87 = 523,                          // $@87
-        S_pool_id = 524,                         // pool_id
-        S_user_context = 525,                    // user_context
-        S_526_88 = 526,                          // $@88
-        S_comment = 527,                         // comment
-        S_528_89 = 528,                          // $@89
-        S_pd_pools_list = 529,                   // pd_pools_list
-        S_530_90 = 530,                          // $@90
-        S_pd_pools_list_content = 531,           // pd_pools_list_content
-        S_not_empty_pd_pools_list = 532,         // not_empty_pd_pools_list
-        S_pd_pool_entry = 533,                   // pd_pool_entry
-        S_534_91 = 534,                          // $@91
-        S_sub_pd_pool = 535,                     // sub_pd_pool
-        S_536_92 = 536,                          // $@92
-        S_pd_pool_params = 537,                  // pd_pool_params
-        S_pd_pool_param = 538,                   // pd_pool_param
-        S_pd_prefix = 539,                       // pd_prefix
-        S_540_93 = 540,                          // $@93
-        S_pd_prefix_len = 541,                   // pd_prefix_len
-        S_excluded_prefix = 542,                 // excluded_prefix
-        S_543_94 = 543,                          // $@94
-        S_excluded_prefix_len = 544,             // excluded_prefix_len
-        S_pd_delegated_len = 545,                // pd_delegated_len
-        S_reservations = 546,                    // reservations
-        S_547_95 = 547,                          // $@95
-        S_reservations_list = 548,               // reservations_list
-        S_not_empty_reservations_list = 549,     // not_empty_reservations_list
-        S_reservation = 550,                     // reservation
-        S_551_96 = 551,                          // $@96
-        S_sub_reservation = 552,                 // sub_reservation
-        S_553_97 = 553,                          // $@97
-        S_reservation_params = 554,              // reservation_params
-        S_not_empty_reservation_params = 555,    // not_empty_reservation_params
-        S_reservation_param = 556,               // reservation_param
-        S_ip_addresses = 557,                    // ip_addresses
-        S_558_98 = 558,                          // $@98
-        S_prefixes = 559,                        // prefixes
-        S_560_99 = 560,                          // $@99
-        S_duid = 561,                            // duid
-        S_562_100 = 562,                         // $@100
-        S_hw_address = 563,                      // hw_address
-        S_564_101 = 564,                         // $@101
-        S_hostname = 565,                        // hostname
-        S_566_102 = 566,                         // $@102
-        S_flex_id_value = 567,                   // flex_id_value
-        S_568_103 = 568,                         // $@103
-        S_reservation_client_classes = 569,      // reservation_client_classes
-        S_570_104 = 570,                         // $@104
-        S_relay = 571,                           // relay
-        S_572_105 = 572,                         // $@105
-        S_relay_map = 573,                       // relay_map
-        S_ip_address = 574,                      // ip_address
-        S_575_106 = 575,                         // $@106
-        S_client_classes = 576,                  // client_classes
+        S_HOOKS_LIBRARIES = 144,                 // "hooks-libraries"
+        S_LIBRARY = 145,                         // "library"
+        S_PARAMETERS = 146,                      // "parameters"
+        S_EXPIRED_LEASES_PROCESSING = 147,       // "expired-leases-processing"
+        S_RECLAIM_TIMER_WAIT_TIME = 148,         // "reclaim-timer-wait-time"
+        S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 149, // "flush-reclaimed-timer-wait-time"
+        S_HOLD_RECLAIMED_TIME = 150,             // "hold-reclaimed-time"
+        S_MAX_RECLAIM_LEASES = 151,              // "max-reclaim-leases"
+        S_MAX_RECLAIM_TIME = 152,                // "max-reclaim-time"
+        S_UNWARNED_RECLAIM_CYCLES = 153,         // "unwarned-reclaim-cycles"
+        S_SERVER_ID = 154,                       // "server-id"
+        S_LLT = 155,                             // "LLT"
+        S_EN = 156,                              // "EN"
+        S_LL = 157,                              // "LL"
+        S_IDENTIFIER = 158,                      // "identifier"
+        S_HTYPE = 159,                           // "htype"
+        S_TIME = 160,                            // "time"
+        S_ENTERPRISE_ID = 161,                   // "enterprise-id"
+        S_DHCP4O6_PORT = 162,                    // "dhcp4o6-port"
+        S_DHCP_MULTI_THREADING = 163,            // "multi-threading"
+        S_ENABLE_MULTI_THREADING = 164,          // "enable-multi-threading"
+        S_THREAD_POOL_SIZE = 165,                // "thread-pool-size"
+        S_PACKET_QUEUE_SIZE = 166,               // "packet-queue-size"
+        S_CONTROL_SOCKET = 167,                  // "control-socket"
+        S_SOCKET_TYPE = 168,                     // "socket-type"
+        S_SOCKET_NAME = 169,                     // "socket-name"
+        S_DHCP_QUEUE_CONTROL = 170,              // "dhcp-queue-control"
+        S_ENABLE_QUEUE = 171,                    // "enable-queue"
+        S_QUEUE_TYPE = 172,                      // "queue-type"
+        S_CAPACITY = 173,                        // "capacity"
+        S_DHCP_DDNS = 174,                       // "dhcp-ddns"
+        S_ENABLE_UPDATES = 175,                  // "enable-updates"
+        S_QUALIFYING_SUFFIX = 176,               // "qualifying-suffix"
+        S_SERVER_IP = 177,                       // "server-ip"
+        S_SERVER_PORT = 178,                     // "server-port"
+        S_SENDER_IP = 179,                       // "sender-ip"
+        S_SENDER_PORT = 180,                     // "sender-port"
+        S_MAX_QUEUE_SIZE = 181,                  // "max-queue-size"
+        S_NCR_PROTOCOL = 182,                    // "ncr-protocol"
+        S_NCR_FORMAT = 183,                      // "ncr-format"
+        S_OVERRIDE_NO_UPDATE = 184,              // "override-no-update"
+        S_OVERRIDE_CLIENT_UPDATE = 185,          // "override-client-update"
+        S_REPLACE_CLIENT_NAME = 186,             // "replace-client-name"
+        S_GENERATED_PREFIX = 187,                // "generated-prefix"
+        S_UDP = 188,                             // "UDP"
+        S_TCP = 189,                             // "TCP"
+        S_JSON = 190,                            // "JSON"
+        S_WHEN_PRESENT = 191,                    // "when-present"
+        S_NEVER = 192,                           // "never"
+        S_ALWAYS = 193,                          // "always"
+        S_WHEN_NOT_PRESENT = 194,                // "when-not-present"
+        S_HOSTNAME_CHAR_SET = 195,               // "hostname-char-set"
+        S_HOSTNAME_CHAR_REPLACEMENT = 196,       // "hostname-char-replacement"
+        S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 197, // "early-global-reservations-lookup"
+        S_IP_RESERVATIONS_UNIQUE = 198,          // "ip-reservations-unique"
+        S_RESERVATIONS_LOOKUP_FIRST = 199,       // "reservations-lookup-first"
+        S_LOGGERS = 200,                         // "loggers"
+        S_OUTPUT_OPTIONS = 201,                  // "output-options"
+        S_OUTPUT = 202,                          // "output"
+        S_DEBUGLEVEL = 203,                      // "debuglevel"
+        S_SEVERITY = 204,                        // "severity"
+        S_FLUSH = 205,                           // "flush"
+        S_MAXSIZE = 206,                         // "maxsize"
+        S_MAXVER = 207,                          // "maxver"
+        S_PATTERN = 208,                         // "pattern"
+        S_COMPATIBILITY = 209,                   // "compatibility"
+        S_LENIENT_OPTION_PARSING = 210,          // "lenient-option-parsing"
+        S_TOPLEVEL_JSON = 211,                   // TOPLEVEL_JSON
+        S_TOPLEVEL_DHCP6 = 212,                  // TOPLEVEL_DHCP6
+        S_SUB_DHCP6 = 213,                       // SUB_DHCP6
+        S_SUB_INTERFACES6 = 214,                 // SUB_INTERFACES6
+        S_SUB_SUBNET6 = 215,                     // SUB_SUBNET6
+        S_SUB_POOL6 = 216,                       // SUB_POOL6
+        S_SUB_PD_POOL = 217,                     // SUB_PD_POOL
+        S_SUB_RESERVATION = 218,                 // SUB_RESERVATION
+        S_SUB_OPTION_DEFS = 219,                 // SUB_OPTION_DEFS
+        S_SUB_OPTION_DEF = 220,                  // SUB_OPTION_DEF
+        S_SUB_OPTION_DATA = 221,                 // SUB_OPTION_DATA
+        S_SUB_HOOKS_LIBRARY = 222,               // SUB_HOOKS_LIBRARY
+        S_SUB_DHCP_DDNS = 223,                   // SUB_DHCP_DDNS
+        S_SUB_CONFIG_CONTROL = 224,              // SUB_CONFIG_CONTROL
+        S_STRING = 225,                          // "constant string"
+        S_INTEGER = 226,                         // "integer"
+        S_FLOAT = 227,                           // "floating point"
+        S_BOOLEAN = 228,                         // "boolean"
+        S_YYACCEPT = 229,                        // $accept
+        S_start = 230,                           // start
+        S_231_1 = 231,                           // $@1
+        S_232_2 = 232,                           // $@2
+        S_233_3 = 233,                           // $@3
+        S_234_4 = 234,                           // $@4
+        S_235_5 = 235,                           // $@5
+        S_236_6 = 236,                           // $@6
+        S_237_7 = 237,                           // $@7
+        S_238_8 = 238,                           // $@8
+        S_239_9 = 239,                           // $@9
+        S_240_10 = 240,                          // $@10
+        S_241_11 = 241,                          // $@11
+        S_242_12 = 242,                          // $@12
+        S_243_13 = 243,                          // $@13
+        S_244_14 = 244,                          // $@14
+        S_value = 245,                           // value
+        S_sub_json = 246,                        // sub_json
+        S_map2 = 247,                            // map2
+        S_248_15 = 248,                          // $@15
+        S_map_value = 249,                       // map_value
+        S_map_content = 250,                     // map_content
+        S_not_empty_map = 251,                   // not_empty_map
+        S_list_generic = 252,                    // list_generic
+        S_253_16 = 253,                          // $@16
+        S_list_content = 254,                    // list_content
+        S_not_empty_list = 255,                  // not_empty_list
+        S_list_strings = 256,                    // list_strings
+        S_257_17 = 257,                          // $@17
+        S_list_strings_content = 258,            // list_strings_content
+        S_not_empty_list_strings = 259,          // not_empty_list_strings
+        S_unknown_map_entry = 260,               // unknown_map_entry
+        S_syntax_map = 261,                      // syntax_map
+        S_262_18 = 262,                          // $@18
+        S_global_object = 263,                   // global_object
+        S_264_19 = 264,                          // $@19
+        S_global_object_comma = 265,             // global_object_comma
+        S_sub_dhcp6 = 266,                       // sub_dhcp6
+        S_267_20 = 267,                          // $@20
+        S_global_params = 268,                   // global_params
+        S_global_param = 269,                    // global_param
+        S_data_directory = 270,                  // data_directory
+        S_271_21 = 271,                          // $@21
+        S_preferred_lifetime = 272,              // preferred_lifetime
+        S_min_preferred_lifetime = 273,          // min_preferred_lifetime
+        S_max_preferred_lifetime = 274,          // max_preferred_lifetime
+        S_valid_lifetime = 275,                  // valid_lifetime
+        S_min_valid_lifetime = 276,              // min_valid_lifetime
+        S_max_valid_lifetime = 277,              // max_valid_lifetime
+        S_renew_timer = 278,                     // renew_timer
+        S_rebind_timer = 279,                    // rebind_timer
+        S_calculate_tee_times = 280,             // calculate_tee_times
+        S_t1_percent = 281,                      // t1_percent
+        S_t2_percent = 282,                      // t2_percent
+        S_cache_threshold = 283,                 // cache_threshold
+        S_cache_max_age = 284,                   // cache_max_age
+        S_decline_probation_period = 285,        // decline_probation_period
+        S_ddns_send_updates = 286,               // ddns_send_updates
+        S_ddns_override_no_update = 287,         // ddns_override_no_update
+        S_ddns_override_client_update = 288,     // ddns_override_client_update
+        S_ddns_replace_client_name = 289,        // ddns_replace_client_name
+        S_290_22 = 290,                          // $@22
+        S_ddns_replace_client_name_value = 291,  // ddns_replace_client_name_value
+        S_ddns_generated_prefix = 292,           // ddns_generated_prefix
+        S_293_23 = 293,                          // $@23
+        S_ddns_qualifying_suffix = 294,          // ddns_qualifying_suffix
+        S_295_24 = 295,                          // $@24
+        S_ddns_update_on_renew = 296,            // ddns_update_on_renew
+        S_ddns_use_conflict_resolution = 297,    // ddns_use_conflict_resolution
+        S_ddns_conflict_resolution_mode = 298,   // ddns_conflict_resolution_mode
+        S_299_25 = 299,                          // $@25
+        S_ddns_conflict_resolution_mode_value = 300, // ddns_conflict_resolution_mode_value
+        S_ddns_ttl_percent = 301,                // ddns_ttl_percent
+        S_hostname_char_set = 302,               // hostname_char_set
+        S_303_26 = 303,                          // $@26
+        S_hostname_char_replacement = 304,       // hostname_char_replacement
+        S_305_27 = 305,                          // $@27
+        S_store_extended_info = 306,             // store_extended_info
+        S_statistic_default_sample_count = 307,  // statistic_default_sample_count
+        S_statistic_default_sample_age = 308,    // statistic_default_sample_age
+        S_server_tag = 309,                      // server_tag
+        S_310_28 = 310,                          // $@28
+        S_parked_packet_limit = 311,             // parked_packet_limit
+        S_allocator = 312,                       // allocator
+        S_313_29 = 313,                          // $@29
+        S_pd_allocator = 314,                    // pd_allocator
+        S_315_30 = 315,                          // $@30
+        S_early_global_reservations_lookup = 316, // early_global_reservations_lookup
+        S_ip_reservations_unique = 317,          // ip_reservations_unique
+        S_reservations_lookup_first = 318,       // reservations_lookup_first
+        S_interfaces_config = 319,               // interfaces_config
+        S_320_31 = 320,                          // $@31
+        S_sub_interfaces6 = 321,                 // sub_interfaces6
+        S_322_32 = 322,                          // $@32
+        S_interfaces_config_params = 323,        // interfaces_config_params
+        S_interfaces_config_param = 324,         // interfaces_config_param
+        S_interfaces_list = 325,                 // interfaces_list
+        S_326_33 = 326,                          // $@33
+        S_re_detect = 327,                       // re_detect
+        S_service_sockets_require_all = 328,     // service_sockets_require_all
+        S_service_sockets_retry_wait_time = 329, // service_sockets_retry_wait_time
+        S_service_sockets_max_retries = 330,     // service_sockets_max_retries
+        S_lease_database = 331,                  // lease_database
+        S_332_34 = 332,                          // $@34
+        S_hosts_database = 333,                  // hosts_database
+        S_334_35 = 334,                          // $@35
+        S_hosts_databases = 335,                 // hosts_databases
+        S_336_36 = 336,                          // $@36
+        S_database_list = 337,                   // database_list
+        S_not_empty_database_list = 338,         // not_empty_database_list
+        S_database = 339,                        // database
+        S_340_37 = 340,                          // $@37
+        S_database_map_params = 341,             // database_map_params
+        S_database_map_param = 342,              // database_map_param
+        S_database_type = 343,                   // database_type
+        S_344_38 = 344,                          // $@38
+        S_db_type = 345,                         // db_type
+        S_user = 346,                            // user
+        S_347_39 = 347,                          // $@39
+        S_password = 348,                        // password
+        S_349_40 = 349,                          // $@40
+        S_host = 350,                            // host
+        S_351_41 = 351,                          // $@41
+        S_port = 352,                            // port
+        S_name = 353,                            // name
+        S_354_42 = 354,                          // $@42
+        S_persist = 355,                         // persist
+        S_lfc_interval = 356,                    // lfc_interval
+        S_readonly = 357,                        // readonly
+        S_connect_timeout = 358,                 // connect_timeout
+        S_read_timeout = 359,                    // read_timeout
+        S_write_timeout = 360,                   // write_timeout
+        S_tcp_user_timeout = 361,                // tcp_user_timeout
+        S_reconnect_wait_time = 362,             // reconnect_wait_time
+        S_on_fail = 363,                         // on_fail
+        S_364_43 = 364,                          // $@43
+        S_on_fail_mode = 365,                    // on_fail_mode
+        S_retry_on_startup = 366,                // retry_on_startup
+        S_max_row_errors = 367,                  // max_row_errors
+        S_max_reconnect_tries = 368,             // max_reconnect_tries
+        S_trust_anchor = 369,                    // trust_anchor
+        S_370_44 = 370,                          // $@44
+        S_cert_file = 371,                       // cert_file
+        S_372_45 = 372,                          // $@45
+        S_key_file = 373,                        // key_file
+        S_374_46 = 374,                          // $@46
+        S_cipher_list = 375,                     // cipher_list
+        S_376_47 = 376,                          // $@47
+        S_sanity_checks = 377,                   // sanity_checks
+        S_378_48 = 378,                          // $@48
+        S_sanity_checks_params = 379,            // sanity_checks_params
+        S_sanity_checks_param = 380,             // sanity_checks_param
+        S_lease_checks = 381,                    // lease_checks
+        S_382_49 = 382,                          // $@49
+        S_extended_info_checks = 383,            // extended_info_checks
+        S_384_50 = 384,                          // $@50
+        S_mac_sources = 385,                     // mac_sources
+        S_386_51 = 386,                          // $@51
+        S_mac_sources_list = 387,                // mac_sources_list
+        S_mac_sources_value = 388,               // mac_sources_value
+        S_duid_id = 389,                         // duid_id
+        S_string_id = 390,                       // string_id
+        S_host_reservation_identifiers = 391,    // host_reservation_identifiers
+        S_392_52 = 392,                          // $@52
+        S_host_reservation_identifiers_list = 393, // host_reservation_identifiers_list
+        S_host_reservation_identifier = 394,     // host_reservation_identifier
+        S_hw_address_id = 395,                   // hw_address_id
+        S_flex_id = 396,                         // flex_id
+        S_relay_supplied_options = 397,          // relay_supplied_options
+        S_398_53 = 398,                          // $@53
+        S_dhcp_multi_threading = 399,            // dhcp_multi_threading
+        S_400_54 = 400,                          // $@54
+        S_multi_threading_params = 401,          // multi_threading_params
+        S_multi_threading_param = 402,           // multi_threading_param
+        S_enable_multi_threading = 403,          // enable_multi_threading
+        S_thread_pool_size = 404,                // thread_pool_size
+        S_packet_queue_size = 405,               // packet_queue_size
+        S_hooks_libraries = 406,                 // hooks_libraries
+        S_407_55 = 407,                          // $@55
+        S_hooks_libraries_list = 408,            // hooks_libraries_list
+        S_not_empty_hooks_libraries_list = 409,  // not_empty_hooks_libraries_list
+        S_hooks_library = 410,                   // hooks_library
+        S_411_56 = 411,                          // $@56
+        S_sub_hooks_library = 412,               // sub_hooks_library
+        S_413_57 = 413,                          // $@57
+        S_hooks_params = 414,                    // hooks_params
+        S_hooks_param = 415,                     // hooks_param
+        S_library = 416,                         // library
+        S_417_58 = 417,                          // $@58
+        S_parameters = 418,                      // parameters
+        S_419_59 = 419,                          // $@59
+        S_expired_leases_processing = 420,       // expired_leases_processing
+        S_421_60 = 421,                          // $@60
+        S_expired_leases_params = 422,           // expired_leases_params
+        S_expired_leases_param = 423,            // expired_leases_param
+        S_reclaim_timer_wait_time = 424,         // reclaim_timer_wait_time
+        S_flush_reclaimed_timer_wait_time = 425, // flush_reclaimed_timer_wait_time
+        S_hold_reclaimed_time = 426,             // hold_reclaimed_time
+        S_max_reclaim_leases = 427,              // max_reclaim_leases
+        S_max_reclaim_time = 428,                // max_reclaim_time
+        S_unwarned_reclaim_cycles = 429,         // unwarned_reclaim_cycles
+        S_subnet6_list = 430,                    // subnet6_list
+        S_431_61 = 431,                          // $@61
+        S_subnet6_list_content = 432,            // subnet6_list_content
+        S_not_empty_subnet6_list = 433,          // not_empty_subnet6_list
+        S_subnet6 = 434,                         // subnet6
+        S_435_62 = 435,                          // $@62
+        S_sub_subnet6 = 436,                     // sub_subnet6
+        S_437_63 = 437,                          // $@63
+        S_subnet6_params = 438,                  // subnet6_params
+        S_subnet6_param = 439,                   // subnet6_param
+        S_subnet = 440,                          // subnet
+        S_441_64 = 441,                          // $@64
+        S_interface = 442,                       // interface
+        S_443_65 = 443,                          // $@65
+        S_interface_id = 444,                    // interface_id
+        S_445_66 = 445,                          // $@66
+        S_client_class = 446,                    // client_class
+        S_447_67 = 447,                          // $@67
+        S_require_client_classes = 448,          // require_client_classes
+        S_449_68 = 449,                          // $@68
+        S_reservations_global = 450,             // reservations_global
+        S_reservations_in_subnet = 451,          // reservations_in_subnet
+        S_reservations_out_of_pool = 452,        // reservations_out_of_pool
+        S_reservation_mode = 453,                // reservation_mode
+        S_454_69 = 454,                          // $@69
+        S_hr_mode = 455,                         // hr_mode
+        S_id = 456,                              // id
+        S_rapid_commit = 457,                    // rapid_commit
+        S_shared_networks = 458,                 // shared_networks
+        S_459_70 = 459,                          // $@70
+        S_shared_networks_content = 460,         // shared_networks_content
+        S_shared_networks_list = 461,            // shared_networks_list
+        S_shared_network = 462,                  // shared_network
+        S_463_71 = 463,                          // $@71
+        S_shared_network_params = 464,           // shared_network_params
+        S_shared_network_param = 465,            // shared_network_param
+        S_option_def_list = 466,                 // option_def_list
+        S_467_72 = 467,                          // $@72
+        S_sub_option_def_list = 468,             // sub_option_def_list
+        S_469_73 = 469,                          // $@73
+        S_option_def_list_content = 470,         // option_def_list_content
+        S_not_empty_option_def_list = 471,       // not_empty_option_def_list
+        S_option_def_entry = 472,                // option_def_entry
+        S_473_74 = 473,                          // $@74
+        S_sub_option_def = 474,                  // sub_option_def
+        S_475_75 = 475,                          // $@75
+        S_option_def_params = 476,               // option_def_params
+        S_not_empty_option_def_params = 477,     // not_empty_option_def_params
+        S_option_def_param = 478,                // option_def_param
+        S_option_def_name = 479,                 // option_def_name
+        S_code = 480,                            // code
+        S_option_def_code = 481,                 // option_def_code
+        S_option_def_type = 482,                 // option_def_type
+        S_483_76 = 483,                          // $@76
+        S_option_def_record_types = 484,         // option_def_record_types
+        S_485_77 = 485,                          // $@77
+        S_space = 486,                           // space
+        S_487_78 = 487,                          // $@78
+        S_option_def_space = 488,                // option_def_space
+        S_option_def_encapsulate = 489,          // option_def_encapsulate
+        S_490_79 = 490,                          // $@79
+        S_option_def_array = 491,                // option_def_array
+        S_option_data_list = 492,                // option_data_list
+        S_493_80 = 493,                          // $@80
+        S_option_data_list_content = 494,        // option_data_list_content
+        S_not_empty_option_data_list = 495,      // not_empty_option_data_list
+        S_option_data_entry = 496,               // option_data_entry
+        S_497_81 = 497,                          // $@81
+        S_sub_option_data = 498,                 // sub_option_data
+        S_499_82 = 499,                          // $@82
+        S_option_data_params = 500,              // option_data_params
+        S_not_empty_option_data_params = 501,    // not_empty_option_data_params
+        S_option_data_param = 502,               // option_data_param
+        S_option_data_name = 503,                // option_data_name
+        S_option_data_data = 504,                // option_data_data
+        S_505_83 = 505,                          // $@83
+        S_option_data_code = 506,                // option_data_code
+        S_option_data_space = 507,               // option_data_space
+        S_option_data_csv_format = 508,          // option_data_csv_format
+        S_option_data_always_send = 509,         // option_data_always_send
+        S_option_data_never_send = 510,          // option_data_never_send
+        S_pools_list = 511,                      // pools_list
+        S_512_84 = 512,                          // $@84
+        S_pools_list_content = 513,              // pools_list_content
+        S_not_empty_pools_list = 514,            // not_empty_pools_list
+        S_pool_list_entry = 515,                 // pool_list_entry
+        S_516_85 = 516,                          // $@85
+        S_sub_pool6 = 517,                       // sub_pool6
+        S_518_86 = 518,                          // $@86
+        S_pool_params = 519,                     // pool_params
+        S_pool_param = 520,                      // pool_param
+        S_pool_entry = 521,                      // pool_entry
+        S_522_87 = 522,                          // $@87
+        S_pool_id = 523,                         // pool_id
+        S_user_context = 524,                    // user_context
+        S_525_88 = 525,                          // $@88
+        S_comment = 526,                         // comment
+        S_527_89 = 527,                          // $@89
+        S_pd_pools_list = 528,                   // pd_pools_list
+        S_529_90 = 529,                          // $@90
+        S_pd_pools_list_content = 530,           // pd_pools_list_content
+        S_not_empty_pd_pools_list = 531,         // not_empty_pd_pools_list
+        S_pd_pool_entry = 532,                   // pd_pool_entry
+        S_533_91 = 533,                          // $@91
+        S_sub_pd_pool = 534,                     // sub_pd_pool
+        S_535_92 = 535,                          // $@92
+        S_pd_pool_params = 536,                  // pd_pool_params
+        S_pd_pool_param = 537,                   // pd_pool_param
+        S_pd_prefix = 538,                       // pd_prefix
+        S_539_93 = 539,                          // $@93
+        S_pd_prefix_len = 540,                   // pd_prefix_len
+        S_excluded_prefix = 541,                 // excluded_prefix
+        S_542_94 = 542,                          // $@94
+        S_excluded_prefix_len = 543,             // excluded_prefix_len
+        S_pd_delegated_len = 544,                // pd_delegated_len
+        S_reservations = 545,                    // reservations
+        S_546_95 = 546,                          // $@95
+        S_reservations_list = 547,               // reservations_list
+        S_not_empty_reservations_list = 548,     // not_empty_reservations_list
+        S_reservation = 549,                     // reservation
+        S_550_96 = 550,                          // $@96
+        S_sub_reservation = 551,                 // sub_reservation
+        S_552_97 = 552,                          // $@97
+        S_reservation_params = 553,              // reservation_params
+        S_not_empty_reservation_params = 554,    // not_empty_reservation_params
+        S_reservation_param = 555,               // reservation_param
+        S_ip_addresses = 556,                    // ip_addresses
+        S_557_98 = 557,                          // $@98
+        S_prefixes = 558,                        // prefixes
+        S_559_99 = 559,                          // $@99
+        S_duid = 560,                            // duid
+        S_561_100 = 561,                         // $@100
+        S_hw_address = 562,                      // hw_address
+        S_563_101 = 563,                         // $@101
+        S_hostname = 564,                        // hostname
+        S_565_102 = 565,                         // $@102
+        S_flex_id_value = 566,                   // flex_id_value
+        S_567_103 = 567,                         // $@103
+        S_reservation_client_classes = 568,      // reservation_client_classes
+        S_569_104 = 569,                         // $@104
+        S_relay = 570,                           // relay
+        S_571_105 = 571,                         // $@105
+        S_relay_map = 572,                       // relay_map
+        S_client_classes = 573,                  // client_classes
+        S_574_106 = 574,                         // $@106
+        S_client_classes_list = 575,             // client_classes_list
+        S_client_class_entry = 576,              // client_class_entry
         S_577_107 = 577,                         // $@107
-        S_client_classes_list = 578,             // client_classes_list
-        S_client_class_entry = 579,              // client_class_entry
-        S_580_108 = 580,                         // $@108
-        S_client_class_params = 581,             // client_class_params
-        S_not_empty_client_class_params = 582,   // not_empty_client_class_params
-        S_client_class_param = 583,              // client_class_param
-        S_client_class_name = 584,               // client_class_name
-        S_client_class_test = 585,               // client_class_test
-        S_586_109 = 586,                         // $@109
-        S_client_class_template_test = 587,      // client_class_template_test
+        S_client_class_params = 578,             // client_class_params
+        S_not_empty_client_class_params = 579,   // not_empty_client_class_params
+        S_client_class_param = 580,              // client_class_param
+        S_client_class_name = 581,               // client_class_name
+        S_client_class_test = 582,               // client_class_test
+        S_583_108 = 583,                         // $@108
+        S_client_class_template_test = 584,      // client_class_template_test
+        S_585_109 = 585,                         // $@109
+        S_only_if_required = 586,                // only_if_required
+        S_server_id = 587,                       // server_id
         S_588_110 = 588,                         // $@110
-        S_only_if_required = 589,                // only_if_required
-        S_server_id = 590,                       // server_id
-        S_591_111 = 591,                         // $@111
-        S_server_id_params = 592,                // server_id_params
-        S_server_id_param = 593,                 // server_id_param
-        S_server_id_type = 594,                  // server_id_type
-        S_595_112 = 595,                         // $@112
-        S_duid_type = 596,                       // duid_type
-        S_htype = 597,                           // htype
-        S_identifier = 598,                      // identifier
-        S_599_113 = 599,                         // $@113
-        S_time = 600,                            // time
-        S_enterprise_id = 601,                   // enterprise_id
-        S_dhcp4o6_port = 602,                    // dhcp4o6_port
-        S_control_socket = 603,                  // control_socket
-        S_604_114 = 604,                         // $@114
-        S_control_socket_params = 605,           // control_socket_params
-        S_control_socket_param = 606,            // control_socket_param
-        S_socket_type = 607,                     // socket_type
-        S_608_115 = 608,                         // $@115
-        S_socket_name = 609,                     // socket_name
-        S_610_116 = 610,                         // $@116
-        S_dhcp_queue_control = 611,              // dhcp_queue_control
-        S_612_117 = 612,                         // $@117
-        S_queue_control_params = 613,            // queue_control_params
-        S_queue_control_param = 614,             // queue_control_param
-        S_enable_queue = 615,                    // enable_queue
-        S_queue_type = 616,                      // queue_type
+        S_server_id_params = 589,                // server_id_params
+        S_server_id_param = 590,                 // server_id_param
+        S_server_id_type = 591,                  // server_id_type
+        S_592_111 = 592,                         // $@111
+        S_duid_type = 593,                       // duid_type
+        S_htype = 594,                           // htype
+        S_identifier = 595,                      // identifier
+        S_596_112 = 596,                         // $@112
+        S_time = 597,                            // time
+        S_enterprise_id = 598,                   // enterprise_id
+        S_dhcp4o6_port = 599,                    // dhcp4o6_port
+        S_control_socket = 600,                  // control_socket
+        S_601_113 = 601,                         // $@113
+        S_control_socket_params = 602,           // control_socket_params
+        S_control_socket_param = 603,            // control_socket_param
+        S_socket_type = 604,                     // socket_type
+        S_605_114 = 605,                         // $@114
+        S_socket_name = 606,                     // socket_name
+        S_607_115 = 607,                         // $@115
+        S_dhcp_queue_control = 608,              // dhcp_queue_control
+        S_609_116 = 609,                         // $@116
+        S_queue_control_params = 610,            // queue_control_params
+        S_queue_control_param = 611,             // queue_control_param
+        S_enable_queue = 612,                    // enable_queue
+        S_queue_type = 613,                      // queue_type
+        S_614_117 = 614,                         // $@117
+        S_capacity = 615,                        // capacity
+        S_arbitrary_map_entry = 616,             // arbitrary_map_entry
         S_617_118 = 617,                         // $@118
-        S_capacity = 618,                        // capacity
-        S_arbitrary_map_entry = 619,             // arbitrary_map_entry
-        S_620_119 = 620,                         // $@119
-        S_dhcp_ddns = 621,                       // dhcp_ddns
-        S_622_120 = 622,                         // $@120
-        S_sub_dhcp_ddns = 623,                   // sub_dhcp_ddns
-        S_624_121 = 624,                         // $@121
-        S_dhcp_ddns_params = 625,                // dhcp_ddns_params
-        S_dhcp_ddns_param = 626,                 // dhcp_ddns_param
-        S_enable_updates = 627,                  // enable_updates
-        S_dep_qualifying_suffix = 628,           // dep_qualifying_suffix
-        S_629_122 = 629,                         // $@122
-        S_server_ip = 630,                       // server_ip
+        S_dhcp_ddns = 618,                       // dhcp_ddns
+        S_619_119 = 619,                         // $@119
+        S_sub_dhcp_ddns = 620,                   // sub_dhcp_ddns
+        S_621_120 = 621,                         // $@120
+        S_dhcp_ddns_params = 622,                // dhcp_ddns_params
+        S_dhcp_ddns_param = 623,                 // dhcp_ddns_param
+        S_enable_updates = 624,                  // enable_updates
+        S_dep_qualifying_suffix = 625,           // dep_qualifying_suffix
+        S_626_121 = 626,                         // $@121
+        S_server_ip = 627,                       // server_ip
+        S_628_122 = 628,                         // $@122
+        S_server_port = 629,                     // server_port
+        S_sender_ip = 630,                       // sender_ip
         S_631_123 = 631,                         // $@123
-        S_server_port = 632,                     // server_port
-        S_sender_ip = 633,                       // sender_ip
-        S_634_124 = 634,                         // $@124
-        S_sender_port = 635,                     // sender_port
-        S_max_queue_size = 636,                  // max_queue_size
-        S_ncr_protocol = 637,                    // ncr_protocol
+        S_sender_port = 632,                     // sender_port
+        S_max_queue_size = 633,                  // max_queue_size
+        S_ncr_protocol = 634,                    // ncr_protocol
+        S_635_124 = 635,                         // $@124
+        S_ncr_protocol_value = 636,              // ncr_protocol_value
+        S_ncr_format = 637,                      // ncr_format
         S_638_125 = 638,                         // $@125
-        S_ncr_protocol_value = 639,              // ncr_protocol_value
-        S_ncr_format = 640,                      // ncr_format
-        S_641_126 = 641,                         // $@126
-        S_dep_override_no_update = 642,          // dep_override_no_update
-        S_dep_override_client_update = 643,      // dep_override_client_update
-        S_dep_replace_client_name = 644,         // dep_replace_client_name
-        S_645_127 = 645,                         // $@127
-        S_dep_generated_prefix = 646,            // dep_generated_prefix
-        S_647_128 = 647,                         // $@128
-        S_dep_hostname_char_set = 648,           // dep_hostname_char_set
-        S_649_129 = 649,                         // $@129
-        S_dep_hostname_char_replacement = 650,   // dep_hostname_char_replacement
-        S_651_130 = 651,                         // $@130
-        S_config_control = 652,                  // config_control
-        S_653_131 = 653,                         // $@131
-        S_sub_config_control = 654,              // sub_config_control
-        S_655_132 = 655,                         // $@132
-        S_config_control_params = 656,           // config_control_params
-        S_config_control_param = 657,            // config_control_param
-        S_config_databases = 658,                // config_databases
+        S_dep_override_no_update = 639,          // dep_override_no_update
+        S_dep_override_client_update = 640,      // dep_override_client_update
+        S_dep_replace_client_name = 641,         // dep_replace_client_name
+        S_642_126 = 642,                         // $@126
+        S_dep_generated_prefix = 643,            // dep_generated_prefix
+        S_644_127 = 644,                         // $@127
+        S_dep_hostname_char_set = 645,           // dep_hostname_char_set
+        S_646_128 = 646,                         // $@128
+        S_dep_hostname_char_replacement = 647,   // dep_hostname_char_replacement
+        S_648_129 = 648,                         // $@129
+        S_config_control = 649,                  // config_control
+        S_650_130 = 650,                         // $@130
+        S_sub_config_control = 651,              // sub_config_control
+        S_652_131 = 652,                         // $@131
+        S_config_control_params = 653,           // config_control_params
+        S_config_control_param = 654,            // config_control_param
+        S_config_databases = 655,                // config_databases
+        S_656_132 = 656,                         // $@132
+        S_config_fetch_wait_time = 657,          // config_fetch_wait_time
+        S_loggers = 658,                         // loggers
         S_659_133 = 659,                         // $@133
-        S_config_fetch_wait_time = 660,          // config_fetch_wait_time
-        S_loggers = 661,                         // loggers
+        S_loggers_entries = 660,                 // loggers_entries
+        S_logger_entry = 661,                    // logger_entry
         S_662_134 = 662,                         // $@134
-        S_loggers_entries = 663,                 // loggers_entries
-        S_logger_entry = 664,                    // logger_entry
-        S_665_135 = 665,                         // $@135
-        S_logger_params = 666,                   // logger_params
-        S_logger_param = 667,                    // logger_param
-        S_debuglevel = 668,                      // debuglevel
-        S_severity = 669,                        // severity
-        S_670_136 = 670,                         // $@136
-        S_output_options_list = 671,             // output_options_list
+        S_logger_params = 663,                   // logger_params
+        S_logger_param = 664,                    // logger_param
+        S_debuglevel = 665,                      // debuglevel
+        S_severity = 666,                        // severity
+        S_667_135 = 667,                         // $@135
+        S_output_options_list = 668,             // output_options_list
+        S_669_136 = 669,                         // $@136
+        S_output_options_list_content = 670,     // output_options_list_content
+        S_output_entry = 671,                    // output_entry
         S_672_137 = 672,                         // $@137
-        S_output_options_list_content = 673,     // output_options_list_content
-        S_output_entry = 674,                    // output_entry
-        S_675_138 = 675,                         // $@138
-        S_output_params_list = 676,              // output_params_list
-        S_output_params = 677,                   // output_params
-        S_output = 678,                          // output
-        S_679_139 = 679,                         // $@139
-        S_flush = 680,                           // flush
-        S_maxsize = 681,                         // maxsize
-        S_maxver = 682,                          // maxver
-        S_pattern = 683,                         // pattern
-        S_684_140 = 684,                         // $@140
-        S_compatibility = 685,                   // compatibility
-        S_686_141 = 686,                         // $@141
-        S_compatibility_params = 687,            // compatibility_params
-        S_compatibility_param = 688,             // compatibility_param
-        S_lenient_option_parsing = 689           // lenient_option_parsing
+        S_output_params_list = 673,              // output_params_list
+        S_output_params = 674,                   // output_params
+        S_output = 675,                          // output
+        S_676_138 = 676,                         // $@138
+        S_flush = 677,                           // flush
+        S_maxsize = 678,                         // maxsize
+        S_maxver = 679,                          // maxver
+        S_pattern = 680,                         // pattern
+        S_681_139 = 681,                         // $@139
+        S_compatibility = 682,                   // compatibility
+        S_683_140 = 683,                         // $@140
+        S_compatibility_params = 684,            // compatibility_params
+        S_compatibility_param = 685,             // compatibility_param
+        S_lenient_option_parsing = 686           // lenient_option_parsing
       };
     };
 
@@ -4000,21 +3996,6 @@ switch (yykind)
         return symbol_type (token::TOKEN_RELAY, l);
       }
 #endif
-#if 201103L <= YY_CPLUSPLUS
-      static
-      symbol_type
-      make_IP_ADDRESS (location_type l)
-      {
-        return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
-      }
-#else
-      static
-      symbol_type
-      make_IP_ADDRESS (const location_type& l)
-      {
-        return symbol_type (token::TOKEN_IP_ADDRESS, l);
-      }
-#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -5620,8 +5601,8 @@ switch (yykind)
     /// Constants.
     enum
     {
-      yylast_ = 1399,     ///< Last index in yytable_.
-      yynnts_ = 460,  ///< Number of nonterminal symbols.
+      yylast_ = 1390,     ///< Last index in yytable_.
+      yynnts_ = 458,  ///< Number of nonterminal symbols.
       yyfinal_ = 30 ///< Termination state number.
     };
 
@@ -5689,10 +5670,10 @@ switch (yykind)
      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229
+     225,   226,   227,   228
     };
     // Last valid token kind.
-    const int code_max = 484;
+    const int code_max = 483;
 
     if (t <= 0)
       return symbol_kind::S_YYEOF;
@@ -5865,7 +5846,7 @@ switch (yykind)
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5869 "dhcp6_parser.h"
+#line 5850 "dhcp6_parser.h"
 
 
 
index 4fb140a70e84670df203b73b7676c6a8eb318816..0b85cc201a422d378235406baf6c70ed81884810 100644 (file)
@@ -1,3 +1,4 @@
+// Generated 202405121319
 // A Bison parser, made by GNU Bison 3.8.2.
 
 // Locations for Bison parsers in C++