From 63b277e028ad8992fa6ea678a8d4179a81b278b8 Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Wed, 7 Oct 2015 17:04:36 +0200 Subject: [PATCH] New upstream release 1.5.5 (#1269137) - Removed the anchor update from %post section of -libs subpackage (#1269137#c2) Signed-off-by: Tomas Hozza --- .gitignore | 1 + ...-is-capped-at-minimumttl-in-its-rdat.patch | 312 - ...-Use-print_function-also-for-Python2.patch | 127 - ...-TTL-patch-configparser-regeneration.patch | 8601 ----------------- ...bound-examples-produce-sorted-output.patch | 183 - ...d-Python-libldns-is-not-used-anymore.patch | 37 - ...-incompatibilities-in-libunbound-and.patch | 356 - sources | 2 +- unbound.spec | 11 +- 9 files changed, 9 insertions(+), 9621 deletions(-) delete mode 100644 0001-SOA-negative-TTL-is-capped-at-minimumttl-in-its-rdat.patch delete mode 100644 0001-Use-print_function-also-for-Python2.patch delete mode 100644 0002-Maximum-negative-TTL-patch-configparser-regeneration.patch delete mode 100644 0002-libunbound-examples-produce-sorted-output.patch delete mode 100644 0003-libunbound-Python-libldns-is-not-used-anymore.patch delete mode 100644 0004-Resolve-Python-3-incompatibilities-in-libunbound-and.patch diff --git a/.gitignore b/.gitignore index 2ad36bd..2fe2ae1 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ unbound-1.4.5.tar.gz /unbound-1.5.1.tar.gz /unbound-1.5.3.tar.gz /unbound-1.5.4.tar.gz +/unbound-1.5.5.tar.gz diff --git a/0001-SOA-negative-TTL-is-capped-at-minimumttl-in-its-rdat.patch b/0001-SOA-negative-TTL-is-capped-at-minimumttl-in-its-rdat.patch deleted file mode 100644 index b1771d6..0000000 --- a/0001-SOA-negative-TTL-is-capped-at-minimumttl-in-its-rdat.patch +++ /dev/null @@ -1,312 +0,0 @@ -From 12d6612439271b2ca5c894ab2edda5364d6c4bfa Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Mon, 15 Jun 2015 18:42:10 +0200 -Subject: [PATCH 1/2] SOA negative TTL is capped at minimumttl in its rdata - section. - cache-max-negative-ttl config option, default 3600. - -git-svn-id: http://unbound.nlnetlabs.nl/svn/trunk@3431 be551aaa-1e26-0410-a405-d3ace91eadb9 -Signed-off-by: Tomas Hozza ---- - doc/example.conf.in | 3 +++ - doc/unbound-control.8.in | 3 ++- - doc/unbound.conf.5.in | 4 ++++ - testcode/unitmsgparse.c | 3 +++ - testdata/iter_domain_sale.rpl | 3 ++- - testdata/iter_domain_sale_nschange.rpl | 6 ++++-- - util/config_file.c | 5 +++++ - util/config_file.h | 2 ++ - util/configlexer.lex | 1 + - util/configparser.y | 12 +++++++++++- - util/data/msgparse.h | 2 ++ - util/data/msgreply.c | 29 ++++++++++++++++++++++++++--- - 12 files changed, 65 insertions(+), 8 deletions(-) - -diff --git a/doc/example.conf.in b/doc/example.conf.in -index 60ed5c8..31b965c 100644 ---- a/doc/example.conf.in -+++ b/doc/example.conf.in -@@ -135,6 +135,9 @@ server: - # cache. Items are not cached for longer. In seconds. - # cache-max-ttl: 86400 - -+ # the time to live (TTL) value cap for negative responses in the cache -+ # cache-max-negative-ttl: 3600 -+ - # the time to live (TTL) value for cached roundtrip times, lameness and - # EDNS version information for hosts. In seconds. - # infra-host-ttl: 900 -diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in -index f6eae24..749a9fe 100644 ---- a/doc/unbound-control.8.in -+++ b/doc/unbound-control.8.in -@@ -177,7 +177,8 @@ harden\-glue, harden\-dnssec\-stripped, harden\-below\-nxdomain, - harden\-referral\-path, prefetch, prefetch\-key, log\-queries, - hide\-identity, hide\-version, identity, version, val\-log\-level, - val\-log\-squelch, ignore\-cd\-flag, add\-holddown, del\-holddown, --keep\-missing, tcp\-upstream, ssl\-upstream, max\-udp\-size. -+keep\-missing, tcp\-upstream, ssl\-upstream, max\-udp\-size, -+cache\-max\-ttl, cache\-min\-ttl, cache\-max\-negative\-ttl. - .TP - .B get_option \fIopt - Get the value of the option. Give the option name without a trailing ':'. -diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in -index 9b088f3..5856ae7 100644 ---- a/doc/unbound.conf.5.in -+++ b/doc/unbound.conf.5.in -@@ -290,6 +290,10 @@ Zero makes sure the data in the cache is as the domain owner intended, - higher values, especially more than an hour or so, can lead to trouble as - the data in the cache does not match up with the actual data any more. - .TP -+.B cache\-max\-negative\-ttl: \fI -+Time to live maximum for negative responses, these have a SOA in the -+authority section that is limited in time. Default is 3600. -+.TP - .B infra\-host\-ttl: \fI - Time to live for entries in the host cache. The host cache contains - roundtrip timing, lameness and EDNS support information. Default is 900. -diff --git a/testcode/unitmsgparse.c b/testcode/unitmsgparse.c -index b33a240..d3d9359 100644 ---- a/testcode/unitmsgparse.c -+++ b/testcode/unitmsgparse.c -@@ -497,9 +497,11 @@ testfromdrillfile(sldns_buffer* pkt, struct alloc_cache* alloc, - - void msgparse_test(void) - { -+ time_t origttl = MAX_NEG_TTL; - sldns_buffer* pkt = sldns_buffer_new(65553); - sldns_buffer* out = sldns_buffer_new(65553); - struct alloc_cache super_a, alloc; -+ MAX_NEG_TTL = 86400; - /* init */ - alloc_init(&super_a, NULL, 0); - alloc_init(&alloc, &super_a, 2); -@@ -536,4 +538,5 @@ void msgparse_test(void) - alloc_clear(&super_a); - sldns_buffer_free(pkt); - sldns_buffer_free(out); -+ MAX_NEG_TTL = origttl; - } -diff --git a/testdata/iter_domain_sale.rpl b/testdata/iter_domain_sale.rpl -index 724b51d..ff61278 100644 ---- a/testdata/iter_domain_sale.rpl -+++ b/testdata/iter_domain_sale.rpl -@@ -238,7 +238,8 @@ SECTION QUESTION - nx1.example.com. IN A - SECTION ANSWER - SECTION AUTHORITY --example.com. 3600 IN SOA a. b. 1 2 3 4 5 -+; at TTL 5 because TTL is capped at min-ttl of 5 in rdata of SOA -+example.com. 5 IN SOA a. b. 1 2 3 4 5 - example.com. 1800 IN NS ns.example.com. - SECTION ADDITIONAL - ns.example.com. 1800 IN A 1.2.3.4 -diff --git a/testdata/iter_domain_sale_nschange.rpl b/testdata/iter_domain_sale_nschange.rpl -index a7d9f11..bc396f6 100644 ---- a/testdata/iter_domain_sale_nschange.rpl -+++ b/testdata/iter_domain_sale_nschange.rpl -@@ -285,7 +285,8 @@ SECTION QUESTION - nx1.example.com. IN A - SECTION ANSWER - SECTION AUTHORITY --example.com. 3600 IN SOA a. b. 1 2 3 4 5 -+; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. -+example.com. 5 IN SOA a. b. 1 2 3 4 5 - example.com. 3600 IN NS nsb.example.com. - SECTION ADDITIONAL - nsb.example.com. 3600 IN A 1.2.3.4 -@@ -306,7 +307,8 @@ SECTION QUESTION - nx1.example.com. IN A - SECTION ANSWER - SECTION AUTHORITY --example.com. 3600 IN SOA a. b. 1 2 3 4 5 -+; at TTL 5 because TTL capped at ttl of minttl in rdata of SOA. -+example.com. 5 IN SOA a. b. 1 2 3 4 5 - example.com. 1800 IN NS nsb.example.com. - SECTION ADDITIONAL - nsb.example.com. 3600 IN A 1.2.3.4 -diff --git a/util/config_file.c b/util/config_file.c -index 5c4e897..ca29a02 100644 ---- a/util/config_file.c -+++ b/util/config_file.c -@@ -131,6 +131,7 @@ config_create(void) - cfg->bogus_ttl = 60; - cfg->min_ttl = 0; - cfg->max_ttl = 3600 * 24; -+ cfg->max_negative_ttl = 3600; - cfg->prefetch = 0; - cfg->prefetch_key = 0; - cfg->infra_cache_slabs = 4; -@@ -378,6 +379,8 @@ int config_set_option(struct config_file* cfg, const char* opt, - else S_YNO("prefetch-key:", prefetch_key) - else if(strcmp(opt, "cache-max-ttl:") == 0) - { IS_NUMBER_OR_ZERO; cfg->max_ttl = atoi(val); MAX_TTL=(time_t)cfg->max_ttl;} -+ else if(strcmp(opt, "cache-max-negative-ttl:") == 0) -+ { IS_NUMBER_OR_ZERO; cfg->max_negative_ttl = atoi(val); MAX_NEG_TTL=(time_t)cfg->max_negative_ttl;} - else if(strcmp(opt, "cache-min-ttl:") == 0) - { IS_NUMBER_OR_ZERO; cfg->min_ttl = atoi(val); MIN_TTL=(time_t)cfg->min_ttl;} - else if(strcmp(opt, "infra-cache-min-rtt:") == 0) { -@@ -629,6 +632,7 @@ config_get_option(struct config_file* cfg, const char* opt, - else O_YNO(opt, "prefetch-key", prefetch_key) - else O_YNO(opt, "prefetch", prefetch) - else O_DEC(opt, "cache-max-ttl", max_ttl) -+ else O_DEC(opt, "cache-max-negative-ttl", max_negative_ttl) - else O_DEC(opt, "cache-min-ttl", min_ttl) - else O_DEC(opt, "infra-host-ttl", host_ttl) - else O_DEC(opt, "infra-cache-slabs", infra_cache_slabs) -@@ -1198,6 +1202,7 @@ config_apply(struct config_file* config) - { - MAX_TTL = (time_t)config->max_ttl; - MIN_TTL = (time_t)config->min_ttl; -+ MAX_NEG_TTL = (time_t)config->max_negative_ttl; - RTT_MIN_TIMEOUT = config->infra_cache_min_rtt; - EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; - MINIMAL_RESPONSES = config->minimal_responses; -diff --git a/util/config_file.h b/util/config_file.h -index ca512d7..a5cb19b 100644 ---- a/util/config_file.h -+++ b/util/config_file.h -@@ -185,6 +185,8 @@ struct config_file { - int max_ttl; - /** the number of seconds minimum TTL used for RRsets and messages */ - int min_ttl; -+ /** the number of seconds maximal negative TTL for SOA in auth */ -+ int max_negative_ttl; - /** if prefetching of messages should be performed. */ - int prefetch; - /** if prefetching of DNSKEYs should be performed. */ -diff --git a/util/configlexer.lex b/util/configlexer.lex -index dbde811..1045320 100644 ---- a/util/configlexer.lex -+++ b/util/configlexer.lex -@@ -239,6 +239,7 @@ msg-cache-slabs{COLON} { YDVAR(1, VAR_MSG_CACHE_SLABS) } - rrset-cache-size{COLON} { YDVAR(1, VAR_RRSET_CACHE_SIZE) } - rrset-cache-slabs{COLON} { YDVAR(1, VAR_RRSET_CACHE_SLABS) } - cache-max-ttl{COLON} { YDVAR(1, VAR_CACHE_MAX_TTL) } -+cache-max-negative-ttl{COLON} { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } - cache-min-ttl{COLON} { YDVAR(1, VAR_CACHE_MIN_TTL) } - infra-host-ttl{COLON} { YDVAR(1, VAR_INFRA_HOST_TTL) } - infra-lame-ttl{COLON} { YDVAR(1, VAR_INFRA_LAME_TTL) } -diff --git a/util/configparser.y b/util/configparser.y -index 396ea3c..825927a 100644 ---- a/util/configparser.y -+++ b/util/configparser.y -@@ -118,6 +118,7 @@ extern struct config_parser_state* cfg_parser; - %token VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES - %token VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES - %token VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES -+%token VAR_CACHE_MAX_NEGATIVE_TTL - - %% - toplevelvars: /* empty */ | toplevelvars toplevelvar ; -@@ -177,7 +178,7 @@ content_server: server_num_threads | server_verbosity | server_port | - server_minimal_responses | server_rrset_roundrobin | server_max_udp_size | - server_so_reuseport | server_delay_close | server_unblock_lan_zones | - server_dns64_prefix | server_dns64_synthall | -- server_infra_cache_min_rtt -+ server_infra_cache_min_rtt | server_cache_max_negative_ttl - ; - stubstart: VAR_STUB_ZONE - { -@@ -991,6 +992,15 @@ server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG - free($2); - } - ; -+server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG -+ { -+ OUTYY(("P(server_cache_max_negative_ttl:%s)\n", $2)); -+ if(atoi($2) == 0 && strcmp($2, "0") != 0) -+ yyerror("number expected"); -+ else cfg_parser->cfg->max_negative_ttl = atoi($2); -+ free($2); -+ } -+ ; - server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG - { - OUTYY(("P(server_cache_min_ttl:%s)\n", $2)); -diff --git a/util/data/msgparse.h b/util/data/msgparse.h -index 221a45a..549cc2d 100644 ---- a/util/data/msgparse.h -+++ b/util/data/msgparse.h -@@ -76,6 +76,8 @@ struct regional; - extern time_t MAX_TTL; - /** Minimum TTL that is allowed. */ - extern time_t MIN_TTL; -+/** Maximum Negative TTL that is allowed */ -+extern time_t MAX_NEG_TTL; - /** Negative cache time (for entries without any RRs.) */ - #define NORR_TTL 5 /* seconds */ - -diff --git a/util/data/msgreply.c b/util/data/msgreply.c -index 68bcfd0..d197ad7 100644 ---- a/util/data/msgreply.c -+++ b/util/data/msgreply.c -@@ -57,6 +57,8 @@ - time_t MAX_TTL = 3600 * 24 * 10; /* ten days */ - /** MIN TTL default for messages and rrsets */ - time_t MIN_TTL = 0; -+/** MAX Negative TTL, for SOA records in authority section */ -+time_t MAX_NEG_TTL = 3600; /* one hour */ - - /** allocate qinfo, return 0 on error */ - static int -@@ -152,10 +154,23 @@ repinfo_alloc_rrset_keys(struct reply_info* rep, struct alloc_cache* alloc, - return 1; - } - -+/** find the minimumttl in the rdata of SOA record */ -+static time_t -+soa_find_minttl(struct rr_parse* rr) -+{ -+ uint16_t rlen = sldns_read_uint16(rr->ttl_data+4); -+ if(rlen < 20) -+ return 0; /* rdata too small for SOA (dname, dname, 5*32bit) */ -+ /* minimum TTL is the last 32bit value in the rdata of the record */ -+ /* at position ttl_data + 4(ttl) + 2(rdatalen) + rdatalen - 4(timeval)*/ -+ return (time_t)sldns_read_uint32(rr->ttl_data+6+rlen-4); -+} -+ - /** do the rdata copy */ - static int - rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to, -- struct rr_parse* rr, time_t* rr_ttl, uint16_t type) -+ struct rr_parse* rr, time_t* rr_ttl, uint16_t type, -+ sldns_pkt_section section) - { - uint16_t pkt_len; - const sldns_rr_descriptor* desc; -@@ -164,6 +179,14 @@ rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to, - /* RFC 2181 Section 8. if msb of ttl is set treat as if zero. */ - if(*rr_ttl & 0x80000000U) - *rr_ttl = 0; -+ if(type == LDNS_RR_TYPE_SOA && section == LDNS_SECTION_AUTHORITY) { -+ /* negative response. see if TTL of SOA record larger than the -+ * minimum-ttl in the rdata of the SOA record */ -+ if(*rr_ttl > soa_find_minttl(rr)) -+ *rr_ttl = soa_find_minttl(rr); -+ if(*rr_ttl > MAX_NEG_TTL) -+ *rr_ttl = MAX_NEG_TTL; -+ } - if(*rr_ttl < MIN_TTL) - *rr_ttl = MIN_TTL; - if(*rr_ttl < data->ttl) -@@ -253,7 +276,7 @@ parse_rr_copy(sldns_buffer* pkt, struct rrset_parse* pset, - data->rr_data[i] = nextrdata; - nextrdata += rr->size; - if(!rdata_copy(pkt, data, data->rr_data[i], rr, -- &data->rr_ttl[i], pset->type)) -+ &data->rr_ttl[i], pset->type, pset->section)) - return 0; - rr = rr->next; - } -@@ -264,7 +287,7 @@ parse_rr_copy(sldns_buffer* pkt, struct rrset_parse* pset, - data->rr_data[i] = nextrdata; - nextrdata += rr->size; - if(!rdata_copy(pkt, data, data->rr_data[i], rr, -- &data->rr_ttl[i], LDNS_RR_TYPE_RRSIG)) -+ &data->rr_ttl[i], LDNS_RR_TYPE_RRSIG, pset->section)) - return 0; - rr = rr->next; - } --- -2.4.3 - diff --git a/0001-Use-print_function-also-for-Python2.patch b/0001-Use-print_function-also-for-Python2.patch deleted file mode 100644 index dec1406..0000000 --- a/0001-Use-print_function-also-for-Python2.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 2b3840deb32d58faa44cf4f02404b4fda51789ba Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Tue, 14 Apr 2015 12:05:15 +0200 -Subject: [PATCH 1/4] Use print_function also for Python2 - -Signed-off-by: Tomas Hozza ---- - libunbound/python/examples/async-lookup.py | 1 + - libunbound/python/examples/dns-lookup.py | 1 + - libunbound/python/examples/dnssec-valid.py | 1 + - libunbound/python/examples/dnssec_test.py | 1 + - libunbound/python/examples/example8-1.py | 1 + - libunbound/python/examples/idn-lookup.py | 1 + - libunbound/python/examples/mx-lookup.py | 1 + - libunbound/python/examples/ns-lookup.py | 1 + - libunbound/python/examples/reverse-lookup.py | 1 + - 9 files changed, 9 insertions(+) - -diff --git a/libunbound/python/examples/async-lookup.py b/libunbound/python/examples/async-lookup.py -index cbb8ea0..81ba447 100644 ---- a/libunbound/python/examples/async-lookup.py -+++ b/libunbound/python/examples/async-lookup.py -@@ -32,6 +32,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - import time - -diff --git a/libunbound/python/examples/dns-lookup.py b/libunbound/python/examples/dns-lookup.py -index b3f4008..ec85673 100644 ---- a/libunbound/python/examples/dns-lookup.py -+++ b/libunbound/python/examples/dns-lookup.py -@@ -32,6 +32,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - - ctx = unbound.ub_ctx() -diff --git a/libunbound/python/examples/dnssec-valid.py b/libunbound/python/examples/dnssec-valid.py -index 5c3cad9..e613fd2 100644 ---- a/libunbound/python/examples/dnssec-valid.py -+++ b/libunbound/python/examples/dnssec-valid.py -@@ -32,6 +32,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import os - from unbound import ub_ctx,RR_TYPE_A,RR_CLASS_IN - -diff --git a/libunbound/python/examples/dnssec_test.py b/libunbound/python/examples/dnssec_test.py -index 0d62b9f..a90ac0c 100644 ---- a/libunbound/python/examples/dnssec_test.py -+++ b/libunbound/python/examples/dnssec_test.py -@@ -1,4 +1,5 @@ - #!/usr/bin/env python -+from __future__ import print_function - from unbound import ub_ctx, RR_TYPE_A, RR_TYPE_RRSIG, RR_TYPE_NSEC, RR_TYPE_NSEC3 - import ldns - -diff --git a/libunbound/python/examples/example8-1.py b/libunbound/python/examples/example8-1.py -index ca868e5..ba093d9 100644 ---- a/libunbound/python/examples/example8-1.py -+++ b/libunbound/python/examples/example8-1.py -@@ -33,6 +33,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - - ctx = unbound.ub_ctx() -diff --git a/libunbound/python/examples/idn-lookup.py b/libunbound/python/examples/idn-lookup.py -index 2170637..8cc63e0 100644 ---- a/libunbound/python/examples/idn-lookup.py -+++ b/libunbound/python/examples/idn-lookup.py -@@ -33,6 +33,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - import locale - -diff --git a/libunbound/python/examples/mx-lookup.py b/libunbound/python/examples/mx-lookup.py -index f83f690..f3c4e5f 100644 ---- a/libunbound/python/examples/mx-lookup.py -+++ b/libunbound/python/examples/mx-lookup.py -@@ -33,6 +33,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - - ctx = unbound.ub_ctx() -diff --git a/libunbound/python/examples/ns-lookup.py b/libunbound/python/examples/ns-lookup.py -index bcd51de..5acf2a3 100644 ---- a/libunbound/python/examples/ns-lookup.py -+++ b/libunbound/python/examples/ns-lookup.py -@@ -33,6 +33,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - - ctx = unbound.ub_ctx() -diff --git a/libunbound/python/examples/reverse-lookup.py b/libunbound/python/examples/reverse-lookup.py -index 7e06844..da8ab1a 100644 ---- a/libunbound/python/examples/reverse-lookup.py -+++ b/libunbound/python/examples/reverse-lookup.py -@@ -32,6 +32,7 @@ - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - ''' -+from __future__ import print_function - import unbound - - ctx = unbound.ub_ctx() --- -2.1.0 - diff --git a/0002-Maximum-negative-TTL-patch-configparser-regeneration.patch b/0002-Maximum-negative-TTL-patch-configparser-regeneration.patch deleted file mode 100644 index 77b462e..0000000 --- a/0002-Maximum-negative-TTL-patch-configparser-regeneration.patch +++ /dev/null @@ -1,8601 +0,0 @@ -From 1653dc0d2a6219c3467170bce699370058b626fc Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Mon, 15 Jun 2015 18:45:12 +0200 -Subject: [PATCH 2/2] Maximum negative TTL patch - configparser regeneration - -Signed-off-by: Tomas Hozza ---- - util/configlexer.c | 2518 ++++++++++++++++++------------------- - util/configparser.c | 3443 ++++++++++++++++++++++++--------------------------- - util/configparser.h | 352 +++--- - 3 files changed, 3047 insertions(+), 3266 deletions(-) - -diff --git a/util/configlexer.c b/util/configlexer.c -index 7bb48af..b2e2fec 100644 ---- a/util/configlexer.c -+++ b/util/configlexer.c -@@ -363,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] ); - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - --#define YY_NUM_RULES 164 --#define YY_END_OF_BUFFER 165 -+#define YY_NUM_RULES 165 -+#define YY_END_OF_BUFFER 166 - /* This struct is not used in this scanner, - but its presence is necessary. */ - struct yy_trans_info -@@ -372,187 +372,188 @@ struct yy_trans_info - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; --static yyconst flex_int16_t yy_accept[1628] = -+static yyconst flex_int16_t yy_accept[1641] = - { 0, -- 1, 1, 146, 146, 150, 150, 154, 154, 158, 158, -- 1, 1, 165, 162, 1, 144, 144, 163, 2, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 163, 146, -- 147, 147, 148, 163, 150, 151, 151, 152, 163, 157, -- 154, 155, 155, 156, 163, 158, 159, 159, 160, 163, -- 161, 145, 2, 149, 161, 163, 162, 0, 1, 2, -- 2, 2, 2, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 146, 0, 150, 0, 157, 0, 154, 158, -- 0, 161, 0, 2, 2, 161, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 161, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 161, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 66, 162, 162, 162, 162, -- 162, 6, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 161, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 161, 162, 162, 162, 162, 29, 162, 162, 162, -- 162, 162, 162, 162, 162, 131, 162, 12, 13, 162, -- 15, 14, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 124, -- 162, 162, 162, 162, 162, 3, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 161, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 153, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 32, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 33, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 81, 153, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 80, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 64, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 20, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 30, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 31, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 22, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 26, 162, 27, 162, -- 162, 162, 67, 162, 68, 162, 65, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 5, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 83, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 23, -- 162, 162, 162, 162, 108, 107, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 34, 162, 162, 162, 162, -- 162, 162, 162, 162, 70, 69, 162, 162, 162, 162, -- 162, 162, 162, 104, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 51, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 55, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 106, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 4, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 101, 162, 162, -- 162, 162, 162, 162, 162, 117, 162, 102, 162, 129, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 21, 162, 162, 162, 162, 72, 162, 73, 71, 162, -- 162, 162, 162, 162, 162, 79, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 103, 162, 162, 162, -- 162, 128, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 63, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 28, 162, 162, 17, 162, 162, 162, 16, -- 162, 88, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 41, 42, 162, 162, 162, -- 162, 162, 162, 162, 132, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 74, 162, -- 162, 162, 162, 162, 78, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 82, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 123, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 92, -- -- 162, 96, 162, 162, 162, 162, 77, 162, 162, 115, -- 162, 162, 162, 162, 130, 162, 162, 162, 162, 162, -- 162, 162, 137, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 95, 162, 162, 162, 162, 162, 43, -- 44, 162, 50, 97, 162, 109, 105, 162, 162, 37, -- 162, 99, 162, 162, 162, 162, 162, 7, 162, 62, -- 114, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 84, 136, 162, -- 162, 162, 162, 162, 162, 162, 162, 125, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 98, 162, 36, 38, 162, 162, 162, 162, 162, -- 61, 162, 162, 162, 162, 119, 18, 19, 162, 162, -- 162, 162, 162, 162, 162, 59, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 121, 118, 162, 162, 162, -- 162, 162, 162, 162, 162, 35, 162, 162, 162, 162, -- 162, 162, 11, 162, 162, 162, 162, 162, 162, 162, -- 162, 10, 162, 162, 39, 162, 127, 120, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 91, -- 90, 162, 122, 116, 162, 162, 162, 162, 162, 162, -- -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 45, 162, 126, 162, 162, 162, 162, 40, 162, -- 162, 162, 85, 87, 110, 162, 162, 162, 89, 162, -- 162, 162, 162, 162, 162, 162, 162, 133, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 24, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 135, 162, 162, -- 113, 162, 162, 162, 162, 162, 162, 48, 162, 25, -- 162, 9, 162, 162, 111, 52, 162, 162, 162, 94, -- 162, 162, 162, 162, 162, 162, 134, 75, 162, 162, -- -- 162, 54, 58, 53, 162, 46, 162, 8, 162, 162, -- 93, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 57, 162, 47, 162, 112, 162, 162, 86, 162, 162, -- 162, 162, 162, 162, 76, 56, 49, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 60, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 100, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, -- -- 162, 140, 162, 162, 162, 162, 162, 162, 162, 162, -- 162, 162, 162, 162, 162, 138, 162, 141, 142, 162, -- 162, 162, 162, 162, 139, 143, 0 -+ 1, 1, 147, 147, 151, 151, 155, 155, 159, 159, -+ 1, 1, 166, 163, 1, 145, 145, 164, 2, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 164, 147, -+ 148, 148, 149, 164, 151, 152, 152, 153, 164, 158, -+ 155, 156, 156, 157, 164, 159, 160, 160, 161, 164, -+ 162, 146, 2, 150, 162, 164, 163, 0, 1, 2, -+ 2, 2, 2, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 147, 0, 151, 0, 158, 0, 155, 159, -+ 0, 162, 0, 2, 2, 162, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 162, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 162, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 67, 163, 163, 163, 163, -+ 163, 6, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 162, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 162, 163, 163, 163, 163, 29, 163, 163, 163, -+ 163, 163, 163, 163, 163, 132, 163, 12, 13, 163, -+ 15, 14, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 125, -+ 163, 163, 163, 163, 163, 3, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 162, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 154, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 32, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 33, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 82, 154, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 81, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 65, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 20, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 30, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 31, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 22, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 26, 163, 27, 163, -+ 163, 163, 68, 163, 69, 163, 66, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 5, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 84, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 23, 163, 163, 163, 163, 109, 108, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 34, 163, 163, 163, -+ 163, 163, 163, 163, 163, 71, 70, 163, 163, 163, -+ 163, 163, 163, 163, 105, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 52, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 56, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 107, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 4, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 102, -+ 163, 163, 163, 163, 163, 163, 163, 163, 118, 163, -+ 103, 163, 130, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 21, 163, 163, 163, 163, 73, 163, -+ 74, 72, 163, 163, 163, 163, 163, 163, 80, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 104, -+ 163, 163, 163, 163, 129, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 64, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 28, 163, 163, 17, 163, -+ 163, 163, 16, 163, 89, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 41, -+ 43, 163, 163, 163, 163, 163, 163, 163, 133, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 75, 163, 163, 163, 163, 163, 79, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 83, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 124, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 93, 163, 97, 163, 163, 163, 163, -+ 78, 163, 163, 163, 116, 163, 163, 163, 163, 131, -+ 163, 163, 163, 163, 163, 163, 163, 138, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 96, 163, -+ 163, 163, 163, 163, 44, 45, 163, 51, 98, 163, -+ 110, 106, 163, 163, 37, 163, 100, 163, 163, 163, -+ 163, 163, 7, 163, 63, 115, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 85, 137, 163, 163, 163, 163, 163, -+ -+ 163, 163, 163, 126, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 99, 163, 36, -+ 38, 163, 163, 163, 163, 163, 62, 163, 163, 163, -+ 163, 120, 18, 19, 163, 163, 163, 163, 163, 163, -+ 163, 60, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 122, 119, 163, 163, 163, 163, 163, 163, -+ 163, 163, 35, 163, 163, 163, 163, 163, 163, 11, -+ 163, 163, 163, 163, 163, 163, 163, 163, 10, 163, -+ 163, 39, 163, 128, 121, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 92, 91, 163, 163, -+ -+ 123, 117, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 46, -+ 163, 127, 163, 163, 163, 163, 40, 163, 163, 163, -+ 86, 88, 111, 163, 163, 163, 90, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 134, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 24, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 136, 163, 163, -+ 114, 163, 163, 163, 163, 163, 163, 49, 163, 25, -+ 163, 9, 163, 163, 112, 53, 163, 163, 163, 95, -+ -+ 163, 163, 163, 163, 163, 163, 163, 135, 76, 163, -+ 163, 163, 55, 59, 54, 163, 47, 163, 8, 163, -+ 163, 94, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 58, 163, 48, 163, 113, 163, 163, 87, -+ 42, 163, 163, 163, 163, 163, 163, 77, 57, 50, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 61, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 101, 163, 163, 163, 163, -+ -+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 141, 163, 163, 163, 163, 163, -+ 163, 163, 163, 163, 163, 163, 163, 163, 139, 163, -+ 142, 143, 163, 163, 163, 163, 163, 140, 144, 0 - } ; - - static yyconst flex_int32_t yy_ec[256] = -@@ -598,15 +599,15 @@ static yyconst flex_int32_t yy_meta[66] = - 1, 1, 1, 1, 1 - } ; - --static yyconst flex_int16_t yy_base[1642] = -+static yyconst flex_int16_t yy_base[1655] = - { 0, - 0, 0, 63, 66, 69, 71, 77, 83, 88, 91, -- 129, 135, 428, 340, 95, 4681, 4681, 4681, 107, 110, -+ 129, 135, 428, 340, 95, 4722, 4722, 4722, 107, 110, - 142, 180, 108, 50, 145, 172, 118, 148, 121, 181, - 197, 166, 217, 223, 251, 230, 164, 262, 116, 312, -- 4681, 4681, 4681, 94, 298, 4681, 4681, 4681, 96, 269, -- 294, 4681, 4681, 4681, 244, 254, 4681, 4681, 4681, 102, -- 249, 4681, 259, 4681, 247, 287, 237, 309, 111, 0, -+ 4722, 4722, 4722, 94, 298, 4722, 4722, 4722, 96, 269, -+ 294, 4722, 4722, 4722, 244, 254, 4722, 4722, 4722, 102, -+ 249, 4722, 259, 4722, 247, 287, 237, 309, 111, 0, - 313, 0, 0, 284, 170, 265, 288, 289, 296, 305, - 301, 273, 302, 328, 306, 311, 308, 309, 216, 325, - 329, 339, 353, 344, 356, 357, 338, 365, 346, 367, -@@ -633,8 +634,8 @@ static yyconst flex_int16_t yy_base[1642] = - 934, 960, 938, 945, 943, 949, 959, 969, 973, 970, - 982, 985, 976, 983, 981, 992, 996, 978, 1002, 1001, - -- 1010, 1015, 1012, 1003, 1021, 4681, 1026, 1004, 1028, 1023, -- 1033, 4681, 1037, 1038, 1020, 1041, 1048, 1006, 1044, 1047, -+ 1010, 1015, 1012, 1003, 1021, 4722, 1026, 1004, 1028, 1023, -+ 1033, 4722, 1037, 1038, 1020, 1041, 1048, 1006, 1044, 1047, - 1049, 1063, 1051, 1072, 1064, 1060, 1107, 1075, 1076, 1104, - 1098, 1085, 1110, 1089, 1116, 1103, 1112, 1131, 1102, 1125, - 1122, 1144, 1136, 1141, 1157, 1130, 1150, 1148, 1151, 899, -@@ -647,13 +648,13 @@ static yyconst flex_int16_t yy_base[1642] = - 1342, 1318, 1317, 1321, 1331, 1333, 1327, 1332, 1335, 1344, - 1341, 1343, 1350, 1337, 1348, 1371, 1370, 1373, 1376, 1366, - 1368, 1377, 1378, 1386, 1389, 1397, 1401, 1392, 1400, 1411, -- 1408, 1416, 1412, 1426, 1404, 1431, 4681, 1445, 1442, 1424, -- 1437, 1448, 1443, 1435, 1484, 4681, 1439, 4681, 4681, 1451, -- 4681, 4681, 1465, 1438, 1473, 1449, 1532, 1475, 1467, 1472, -+ 1408, 1416, 1412, 1426, 1404, 1431, 4722, 1445, 1442, 1424, -+ 1437, 1448, 1443, 1435, 1484, 4722, 1439, 4722, 4722, 1451, -+ 4722, 4722, 1465, 1438, 1473, 1449, 1532, 1475, 1467, 1472, - 1483, 1490, 1491, 1504, 1499, 1518, 1525, 1510, 1502, 1508, - 1513, 1537, 1541, 1535, 1542, 1543, 1561, 1562, 1557, 1566, -- 1559, 1565, 1558, 1570, 1574, 1579, 1582, 1586, 1577, 4681, -- 1588, 1584, 1594, 1592, 1609, 4681, 1589, 1600, 1603, 1606, -+ 1559, 1565, 1558, 1570, 1574, 1579, 1582, 1586, 1577, 4722, -+ 1588, 1584, 1594, 1592, 1609, 4722, 1589, 1600, 1603, 1606, - - 1613, 1611, 1619, 1625, 1623, 1630, 1633, 1634, 1637, 1639, - 1640, 1618, 1667, 1661, 1652, 1660, 1668, 1653, 1676, 1682, -@@ -661,314 +662,316 @@ static yyconst flex_int16_t yy_base[1642] = - 1695, 1694, 1744, 1721, 1712, 1705, 1716, 1701, 1723, 1742, - 1732, 1746, 1757, 1763, 1752, 1754, 1764, 1771, 1774, 1802, - 1780, 1782, 1788, 1793, 1792, 1798, 1799, 1795, 1740, 1807, -- 4681, 1790, 1815, 1812, 1819, 1838, 1817, 1839, 1830, 1842, -- 1833, 1837, 1841, 1856, 4681, 1835, 1855, 1852, 1866, 1879, -- 1880, 1863, 1860, 1890, 4681, 1895, 1888, 1893, 1882, 1881, -+ 4722, 1790, 1815, 1812, 1819, 1838, 1817, 1839, 1830, 1842, -+ 1833, 1837, 1841, 1856, 4722, 1835, 1855, 1852, 1866, 1879, -+ 1880, 1863, 1860, 1890, 4722, 1895, 1888, 1893, 1882, 1881, - 1899, 1883, 1898, 1900, 1907, 1917, 1908, 1918, 1912, 1919, - - 1935, 1924, 1928, 1916, 1939, 1944, 1945, 1940, 1951, 1946, - 1941, 1960, 1963, 1955, 1961, 1956, 1972, 1977, 120, 1973, -- 1983, 1974, 1969, 4681, 76, 1981, 1988, 1978, 2010, 2011, -+ 1983, 1974, 1969, 4722, 76, 1981, 1988, 1978, 2010, 2011, - 2004, 2000, 2012, 2018, 2002, 2005, 2013, 2015, 2033, 2025, - 2029, 2027, 2045, 2044, 2041, 2050, 2054, 2040, 2056, 2061, - 2059, 2074, 2063, 2076, 2060, 2083, 2084, 2077, 2075, 2087, -- 2095, 2091, 2085, 2103, 2106, 4681, 2121, 2105, 2112, 2109, -+ 2095, 2091, 2085, 2103, 2106, 4722, 2121, 2105, 2112, 2109, - 2126, 2138, 2118, 2128, 2134, 2132, 2148, 2139, 2146, 2153, - 2158, 2147, 2155, 2145, 2161, 2164, 2157, 2173, 2183, 2175, -- 4681, 2189, 2180, 2185, 2184, 2187, 2200, 2191, 2211, 2190, -+ 4722, 2189, 2180, 2185, 2184, 2187, 2200, 2191, 2211, 2190, - -- 2209, 2216, 2221, 4681, 2220, 2232, 2222, 2234, 2219, 2240, -+ 2209, 2216, 2221, 4722, 2220, 2232, 2222, 2234, 2219, 2240, - 2246, 2244, 2225, 2248, 2247, 2249, 2256, 2242, 2259, 2263, -- 4681, 2266, 2267, 2272, 2283, 2276, 2269, 2278, 2291, 2275, -- 2284, 2302, 2281, 2286, 2282, 2313, 2297, 2294, 2305, 2315, -- 2303, 2330, 4681, 2343, 2322, 2328, 2346, 2311, 2341, 2347, -- 2334, 2337, 2333, 2349, 2360, 2353, 2357, 2362, 2361, 2363, -- 2381, 2354, 2372, 2380, 2390, 2396, 2384, 2394, 2398, 2399, -- 2389, 2409, 2404, 2419, 2426, 4681, 2420, 2428, 2421, 2415, -- 2443, 2438, 2425, 2430, 2424, 2437, 2439, 2462, 2440, 2454, -- 2455, 2460, 2461, 2442, 2453, 2477, 2480, 2487, 2471, 2483, -- -- 2476, 2493, 2489, 2495, 2488, 2501, 4681, 2506, 4681, 2504, -- 2512, 2521, 4681, 2525, 4681, 2527, 4681, 2526, 2531, 2515, -- 2516, 2520, 2533, 2522, 2544, 2535, 2545, 2547, 2539, 2559, -- 2548, 2565, 4681, 2558, 2564, 2579, 2561, 2573, 2575, 2582, -- 2594, 2583, 2592, 2587, 2590, 2589, 2607, 4681, 2574, 2614, -- 2606, 2603, 2626, 2628, 2622, 2634, 2630, 2611, 2645, 2641, -- 2646, 2633, 2639, 2649, 2659, 2654, 2660, 2652, 2662, 2666, -- 2663, 2668, 2685, 2670, 2687, 2702, 2681, 2686, 2695, 4681, -- 2690, 2696, 2709, 2704, 4681, 4681, 2680, 2722, 2714, 2708, -- 2728, 2715, 2741, 2729, 2743, 2740, 2739, 2731, 2736, 2746, -- -- 2747, 2751, 2756, 2763, 2758, 4681, 2766, 2764, 2792, 2783, -- 2774, 2796, 2784, 2795, 4681, 4681, 2799, 2787, 2790, 2786, -- 2806, 2802, 2810, 4681, 2816, 2811, 2825, 2834, 2835, 2832, -- 2821, 2831, 2820, 2837, 2838, 2842, 2853, 2848, 2852, 2866, -- 2856, 2871, 2876, 4681, 2873, 2884, 2877, 2880, 2879, 2878, -- 2881, 2886, 2905, 2875, 2904, 2894, 2924, 2907, 2906, 2909, -- 2910, 2915, 2926, 2930, 2942, 2936, 4681, 2944, 2931, 2947, -- 2920, 2948, 2958, 2954, 2965, 2940, 2941, 2953, 2943, 2982, -- 2963, 2992, 2974, 4681, 2986, 2983, 2981, 2990, 2998, 2976, -- 3011, 2988, 3010, 4681, 3013, 3003, 3008, 3020, 3031, 3037, -- -- 3023, 3016, 3029, 3030, 3033, 3040, 3043, 3051, 3050, 3062, -- 3047, 3058, 3069, 3080, 3086, 3085, 3057, 3075, 3094, 3079, -- 3088, 3089, 3073, 3107, 3082, 3109, 3096, 4681, 3114, 3097, -- 3111, 3116, 3115, 3121, 3123, 4681, 3124, 4681, 3118, 4681, -- 3125, 3126, 3113, 3146, 3140, 3142, 3135, 3160, 3150, 3149, -- 4681, 3167, 3153, 3166, 3169, 4681, 3170, 4681, 4681, 3172, -- 3176, 3157, 3180, 3187, 3183, 4681, 3184, 3192, 3199, 3195, -- 3188, 3205, 3208, 3211, 3206, 3210, 4681, 3219, 3226, 3207, -- 3231, 4681, 3215, 3241, 3233, 3238, 3247, 3256, 3257, 3227, -- 3244, 3267, 3268, 4681, 3250, 3252, 3275, 3270, 3278, 3279, -- -- 3271, 3289, 4681, 3294, 3298, 4681, 3291, 3265, 3295, 4681, -- 3307, 4681, 3309, 3305, 3302, 3310, 3323, 3324, 3335, 3322, -- 3339, 3340, 3331, 3348, 3347, 4681, 4681, 3350, 3352, 3356, -- 3349, 3346, 3358, 3353, 4681, 3362, 3373, 3342, 3366, 3389, -- 3377, 3380, 3397, 3398, 3384, 3401, 3383, 3393, 4681, 3391, -- 3400, 3410, 3405, 3413, 4681, 3403, 3432, 3425, 3427, 3430, -- 3444, 3447, 3448, 3436, 3450, 3451, 3437, 3453, 3455, 3454, -- 4681, 3461, 3460, 3465, 3467, 3468, 3463, 3476, 3488, 3485, -- 3472, 3497, 4681, 3498, 3475, 3506, 3496, 3502, 3503, 3492, -- 3509, 3499, 3516, 3512, 3528, 3529, 3526, 3546, 3541, 4681, -- -- 3530, 4681, 3542, 3557, 3556, 3561, 4681, 3544, 3548, 4681, -- 3563, 3569, 3571, 3576, 4681, 3579, 3567, 3594, 3580, 3585, -- 3583, 3603, 4681, 3578, 3597, 3611, 3608, 3596, 3610, 3605, -- 3612, 3619, 3622, 4681, 3618, 3615, 3637, 3640, 3649, 4681, -- 4681, 3635, 4681, 4681, 3650, 4681, 4681, 3652, 3653, 4681, -- 3654, 4681, 3660, 3658, 3655, 3643, 3661, 4681, 3668, 4681, -- 4681, 3664, 3670, 3675, 3678, 3673, 3674, 3690, 3682, 3685, -- 3692, 3695, 3696, 3701, 3691, 3713, 3705, 3698, 3700, 3702, -- 3712, 3723, 3725, 3721, 3739, 3745, 3746, 4681, 4681, 3729, -- 3740, 3732, 3735, 3748, 3741, 3742, 3764, 4681, 3774, 3768, -- -- 3763, 3762, 3775, 3767, 3779, 3786, 3800, 3781, 3782, 3784, -- 3792, 4681, 3795, 4681, 4681, 3796, 3815, 3817, 3806, 3810, -- 4681, 3829, 3813, 3831, 3834, 4681, 4681, 4681, 3835, 3824, -- 3838, 3844, 3845, 3833, 3856, 4681, 3839, 3848, 3862, 3842, -- 3868, 3870, 3882, 3885, 3886, 4681, 4681, 3891, 3884, 3887, -- 3881, 3878, 3894, 3895, 3889, 4681, 3896, 3897, 3898, 3921, -- 3905, 3922, 4681, 3916, 3918, 3917, 3939, 3932, 3940, 3934, -- 3945, 4681, 3937, 3943, 4681, 3947, 4681, 4681, 3933, 3951, -- 3968, 3954, 3955, 3975, 3958, 3970, 3990, 3987, 3985, 4681, -- 4681, 3982, 4681, 4681, 3974, 3994, 3978, 3973, 4008, 4004, -- -- 4005, 3998, 4009, 4012, 4011, 4002, 4010, 4015, 4034, 4025, -- 4026, 4681, 4044, 4681, 4032, 4048, 4052, 4049, 4681, 4051, -- 4053, 4037, 4681, 4681, 4681, 4061, 4068, 4054, 4681, 4077, -- 4075, 4070, 4081, 4076, 4071, 4074, 4100, 4681, 4087, 4090, -- 4107, 4101, 4096, 4097, 4111, 4115, 4103, 4122, 4117, 4125, -- 4126, 4681, 4135, 4121, 4118, 4150, 4151, 4138, 4142, 4139, -- 4155, 4148, 4156, 4145, 4174, 4162, 4171, 4681, 4173, 4166, -- 4681, 4176, 4187, 4194, 4195, 4196, 4197, 4681, 4199, 4681, -- 4203, 4681, 4205, 4206, 4681, 4681, 4200, 4209, 4210, 4681, -- 4213, 4198, 4212, 4229, 4223, 4236, 4681, 4681, 4231, 4234, -- -- 4245, 4681, 4681, 4681, 4248, 4681, 4250, 4681, 4252, 4238, -- 4681, 4239, 4259, 4235, 4255, 4262, 4264, 4280, 4271, 4267, -- 4681, 4288, 4681, 4292, 4681, 4281, 4294, 4681, 4303, 4286, -- 4296, 4287, 4284, 4289, 4681, 4681, 4681, 4314, 4304, 4312, -- 4307, 4317, 4320, 4313, 4322, 4342, 4334, 4341, 4345, 4329, -- 4333, 4359, 4344, 4681, 4351, 4355, 4361, 4363, 4353, 4370, -- 4357, 4365, 4368, 4378, 4385, 4377, 4384, 4394, 4381, 4401, -- 4404, 4408, 4410, 4403, 4411, 4417, 4412, 4405, 4414, 4438, -- 4426, 4430, 4681, 4442, 4429, 4431, 4439, 4453, 4456, 4436, -- 4458, 4463, 4457, 4460, 4449, 4471, 4466, 4485, 4477, 4494, -- -- 4478, 4681, 4498, 4501, 4483, 4488, 4508, 4495, 4512, 4510, -- 4513, 4520, 4516, 4517, 4525, 4681, 4537, 4681, 4681, 4540, -- 4529, 4530, 4546, 4550, 4681, 4681, 4681, 4589, 4596, 4603, -- 4610, 4617, 82, 4624, 4631, 4638, 4645, 4652, 4659, 4666, -- 4673 -+ 4722, 2266, 2267, 2272, 2283, 2276, 2269, 2278, 2291, 2275, -+ 2284, 2302, 2286, 2281, 2296, 2308, 2297, 2294, 2312, 2315, -+ 2322, 2321, 4722, 2354, 2316, 2324, 2329, 2341, 2342, 2333, -+ 2350, 2343, 2339, 2349, 2358, 2353, 2359, 2369, 2356, 2368, -+ 2364, 2382, 2380, 2388, 2377, 2398, 2390, 2401, 2404, 2396, -+ 2391, 2411, 2417, 2425, 2421, 4722, 2427, 2428, 2418, 2415, -+ 2440, 2441, 2431, 2437, 2436, 2438, 2445, 2470, 2452, 2454, -+ 2455, 2461, 2472, 2448, 2475, 2484, 2482, 2488, 2478, 2467, -+ -+ 2496, 2493, 2499, 2502, 2501, 2512, 4722, 2507, 4722, 2505, -+ 2523, 2526, 4722, 2527, 4722, 2530, 4722, 2532, 2537, 2529, -+ 2515, 2522, 2541, 2543, 2545, 2549, 2554, 2539, 2563, 2556, -+ 2559, 2570, 4722, 2562, 2565, 2576, 2586, 2573, 2588, 2589, -+ 2592, 2590, 2602, 2603, 2614, 2585, 2584, 2618, 4722, 2601, -+ 2626, 2619, 2612, 2637, 2638, 2639, 2633, 2651, 2622, 2645, -+ 2641, 2660, 2658, 2654, 2657, 2674, 2663, 2675, 2662, 2687, -+ 2678, 2671, 2688, 2683, 2682, 2698, 2699, 2700, 2702, 2707, -+ 4722, 2715, 2705, 2724, 2721, 4722, 4722, 2716, 2714, 2726, -+ 2729, 2741, 2727, 2753, 2743, 2744, 2759, 2747, 2748, 2751, -+ -+ 2768, 2756, 2758, 2783, 2771, 2772, 4722, 2770, 2773, 2797, -+ 2795, 2785, 2806, 2794, 2810, 4722, 4722, 2796, 2802, 2798, -+ 2808, 2824, 2814, 2818, 4722, 2828, 2822, 2833, 2834, 2842, -+ 2835, 2829, 2843, 2850, 2845, 2857, 2855, 2856, 2877, 2866, -+ 2862, 2870, 2881, 2884, 2888, 4722, 2883, 2890, 2886, 2891, -+ 2893, 2889, 2885, 2894, 2913, 2904, 2915, 2906, 2936, 2916, -+ 2919, 2914, 2909, 2925, 2939, 2944, 2951, 2947, 4722, 2952, -+ 2940, 2957, 2929, 2955, 2959, 2963, 2956, 2953, 2971, 2972, -+ 2967, 2976, 2978, 3000, 2986, 4722, 2980, 2993, 2994, 3003, -+ 2999, 2985, 3013, 2996, 3016, 4722, 3012, 3028, 3025, 3027, -+ -+ 3029, 3037, 3038, 3026, 3033, 3031, 3036, 3056, 3057, 3067, -+ 3060, 3068, 3058, 3072, 3061, 3070, 3096, 3084, 3055, 3078, -+ 3095, 3088, 3097, 3092, 3082, 3106, 3094, 3114, 3108, 4722, -+ 3109, 3117, 3125, 3126, 3123, 3127, 3124, 3128, 4722, 3133, -+ 4722, 3134, 4722, 3136, 3140, 3122, 3149, 3144, 3147, 3164, -+ 3165, 3176, 3163, 4722, 3182, 3160, 3171, 3172, 4722, 3179, -+ 4722, 4722, 3174, 3186, 3185, 3195, 3198, 3184, 4722, 3207, -+ 3197, 3215, 3209, 3199, 3219, 3221, 3223, 3213, 3210, 4722, -+ 3227, 3236, 3234, 3240, 4722, 3237, 3239, 3242, 3248, 3254, -+ 3265, 3266, 3255, 3257, 3276, 3269, 4722, 3267, 3275, 3285, -+ -+ 3278, 3279, 3297, 3298, 3296, 4722, 3282, 3305, 4722, 3306, -+ 3300, 3295, 4722, 3315, 4722, 3322, 3314, 3318, 3327, 3330, -+ 3331, 3339, 3325, 3346, 3348, 3338, 3359, 3352, 3341, 4722, -+ 4722, 3355, 3362, 3368, 3371, 3354, 3379, 3374, 4722, 3365, -+ 3380, 3370, 3387, 3389, 3382, 3388, 3376, 3401, 3398, 3403, -+ 3392, 3407, 4722, 3409, 3419, 3416, 3412, 3420, 4722, 3422, -+ 3439, 3431, 3434, 3443, 3449, 3452, 3454, 3446, 3455, 3457, -+ 3453, 3462, 3463, 3466, 4722, 3469, 3467, 3468, 3478, 3470, -+ 3486, 3495, 3490, 3500, 3483, 3503, 4722, 3504, 3481, 3508, -+ 3511, 3512, 3516, 3501, 3510, 3519, 3527, 3529, 3533, 3536, -+ -+ 3535, 3556, 3537, 4722, 3538, 4722, 3546, 3560, 3570, 3577, -+ 4722, 3564, 3548, 3562, 4722, 3587, 3575, 3572, 3581, 4722, -+ 3593, 3582, 3594, 3588, 3584, 3591, 3602, 4722, 3608, 3613, -+ 3624, 3621, 3611, 3628, 3614, 3637, 3640, 3627, 4722, 3629, -+ 3639, 3650, 3641, 3655, 4722, 4722, 3646, 4722, 4722, 3652, -+ 4722, 4722, 3658, 3662, 4722, 3665, 4722, 3654, 3669, 3659, -+ 3656, 3682, 4722, 3680, 4722, 4722, 3683, 3689, 3679, 3690, -+ 3694, 3698, 3699, 3692, 3685, 3696, 3701, 3712, 3706, 3707, -+ 3729, 3723, 3710, 3721, 3730, 3718, 3733, 3726, 3739, 3750, -+ 3753, 3746, 3749, 4722, 4722, 3745, 3757, 3740, 3759, 3769, -+ -+ 3763, 3773, 3780, 4722, 3787, 3784, 3782, 3776, 3777, 3785, -+ 3796, 3798, 3803, 3799, 3804, 3808, 3809, 4722, 3813, 4722, -+ 4722, 3814, 3830, 3816, 3822, 3820, 4722, 3839, 3826, 3848, -+ 3850, 4722, 4722, 4722, 3851, 3836, 3846, 3857, 3863, 3861, -+ 3859, 4722, 3854, 3865, 3866, 3872, 3874, 3876, 3895, 3878, -+ 3900, 3902, 4722, 4722, 3908, 3905, 3901, 3903, 3896, 3907, -+ 3913, 3904, 4722, 3914, 3924, 3938, 3939, 3925, 3940, 4722, -+ 3927, 3930, 3936, 3956, 3951, 3958, 3953, 3954, 4722, 3962, -+ 3957, 4722, 3968, 4722, 4722, 3952, 3989, 3966, 3991, 3992, -+ 3994, 3982, 3987, 4006, 4003, 4004, 4722, 4722, 3999, 4010, -+ -+ 4722, 4722, 3995, 4002, 3993, 4016, 4027, 4015, 4025, 4037, -+ 4028, 4022, 4030, 4043, 4031, 4033, 4052, 4042, 4056, 4722, -+ 4050, 4722, 4063, 4065, 4078, 4057, 4722, 4058, 4075, 4070, -+ 4722, 4722, 4722, 4086, 4097, 4090, 4722, 4096, 4102, 4080, -+ 4083, 4107, 4088, 4029, 4094, 4116, 4722, 4113, 4115, 4120, -+ 4126, 4121, 4117, 4133, 4140, 4123, 4151, 4139, 4152, 4150, -+ 4722, 4154, 4153, 4134, 4165, 4169, 4167, 4162, 4164, 4170, -+ 4163, 4168, 4166, 4180, 4191, 4187, 4203, 4722, 4206, 4189, -+ 4722, 4195, 4207, 4210, 4217, 4219, 4215, 4722, 4221, 4722, -+ 4222, 4722, 4224, 4233, 4722, 4722, 4232, 4225, 4236, 4722, -+ -+ 4248, 4216, 4227, 4242, 4239, 4243, 4266, 4722, 4722, 4254, -+ 4261, 4269, 4722, 4722, 4722, 4262, 4722, 4272, 4722, 4277, -+ 4263, 4722, 4268, 4279, 4282, 4267, 4287, 4289, 4303, 4306, -+ 4288, 4297, 4722, 4312, 4722, 4317, 4722, 4309, 4319, 4722, -+ 4722, 4291, 4313, 4318, 4322, 4324, 4316, 4722, 4722, 4722, -+ 4348, 4333, 4343, 4336, 4339, 4345, 4337, 4350, 4331, 4358, -+ 4366, 4368, 4349, 4363, 4385, 4372, 4722, 4376, 4377, 4401, -+ 4406, 4393, 4395, 4390, 4397, 4400, 4402, 4403, 4412, 4405, -+ 4420, 4421, 4443, 4436, 4445, 4446, 4430, 4418, 4426, 4447, -+ 4437, 4442, 4459, 4460, 4453, 4722, 4457, 4463, 4472, 4481, -+ -+ 4474, 4480, 4473, 4495, 4497, 4499, 4503, 4486, 4511, 4507, -+ 4508, 4501, 4512, 4521, 4722, 4522, 4524, 4526, 4531, 4532, -+ 4536, 4538, 4542, 4546, 4554, 4552, 4562, 4559, 4722, 4563, -+ 4722, 4722, 4569, 4556, 4572, 4571, 4576, 4722, 4722, 4722, -+ 4630, 4637, 4644, 4651, 4658, 82, 4665, 4672, 4679, 4686, -+ 4693, 4700, 4707, 4714 - } ; - --static yyconst flex_int16_t yy_def[1642] = -+static yyconst flex_int16_t yy_def[1655] = - { 0, -- 1627, 1, 1628, 1628, 1629, 1629, 1630, 1630, 1631, 1631, -- 1632, 1632, 1627, 1633, 1627, 1627, 1627, 1627, 1634, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1635, -- 1627, 1627, 1627, 1635, 1636, 1627, 1627, 1627, 1636, 1637, -- 1627, 1627, 1627, 1627, 1637, 1638, 1627, 1627, 1627, 1638, -- 1639, 1627, 1640, 1627, 1639, 1639, 1633, 1633, 1627, 1641, -- 1634, 1641, 1634, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1635, 1635, 1636, 1636, 1637, 1637, 1627, 1638, -- 1638, 1639, 1639, 1640, 1640, 1639, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1639, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1639, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633, -- 1627, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1639, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1639, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1633, -- 1633, 1633, 1627, 1633, 1627, 1633, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, -- 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1633, 1627, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1627, 1633, 1633, 1627, 1633, 1633, 1633, 1627, -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, -- 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, -- -- 1633, 1627, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1627, -- 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1627, -- 1627, 1633, 1627, 1627, 1633, 1627, 1627, 1633, 1633, 1627, -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1627, 1633, 1627, 1627, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1627, 1627, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1627, 1633, 1633, 1627, 1633, 1627, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, -- 1627, 1633, 1627, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1627, 1633, 1627, 1633, 1633, 1633, 1633, 1627, 1633, -- 1633, 1633, 1627, 1627, 1627, 1633, 1633, 1633, 1627, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, -- 1633, 1627, 1633, 1633, 1627, 1627, 1633, 1633, 1633, 1627, -- 1633, 1633, 1633, 1633, 1633, 1633, 1627, 1627, 1633, 1633, -- -- 1633, 1627, 1627, 1627, 1633, 1627, 1633, 1627, 1633, 1633, -- 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1627, 1633, 1627, 1633, 1627, 1633, 1633, 1627, 1633, 1633, -- 1633, 1633, 1633, 1633, 1627, 1627, 1627, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- -- 1633, 1627, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, -- 1633, 1633, 1633, 1633, 1633, 1627, 1633, 1627, 1627, 1633, -- 1633, 1633, 1633, 1633, 1627, 1627, 0, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627 -+ 1640, 1, 1641, 1641, 1642, 1642, 1643, 1643, 1644, 1644, -+ 1645, 1645, 1640, 1646, 1640, 1640, 1640, 1640, 1647, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1648, -+ 1640, 1640, 1640, 1648, 1649, 1640, 1640, 1640, 1649, 1650, -+ 1640, 1640, 1640, 1640, 1650, 1651, 1640, 1640, 1640, 1651, -+ 1652, 1640, 1653, 1640, 1652, 1652, 1646, 1646, 1640, 1654, -+ 1647, 1654, 1647, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1648, 1648, 1649, 1649, 1650, 1650, 1640, 1651, -+ 1651, 1652, 1652, 1653, 1653, 1652, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1652, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1652, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1652, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1652, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1640, 1640, 1646, -+ 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1652, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1640, 1652, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1640, 1646, -+ 1646, 1646, 1640, 1646, 1640, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1640, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1640, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1640, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1640, 1646, 1640, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1640, 1646, 1640, 1640, 1646, -+ 1640, 1640, 1646, 1646, 1640, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1640, 1640, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1640, 1640, 1646, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1640, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1640, 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1646, 1640, 1646, 1640, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1640, 1646, 1646, -+ -+ 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, -+ 1646, 1640, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1640, 1640, 1640, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1640, -+ 1646, 1640, 1646, 1646, 1640, 1640, 1646, 1646, 1646, 1640, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1640, 1646, -+ 1646, 1646, 1640, 1640, 1640, 1646, 1640, 1646, 1640, 1646, -+ 1646, 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1640, 1646, 1640, 1646, 1640, 1646, 1646, 1640, -+ 1640, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1640, 1640, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, -+ -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1640, 1646, 1646, 1646, 1646, 1646, -+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1640, 1646, -+ 1640, 1640, 1646, 1646, 1646, 1646, 1646, 1640, 1640, 0, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640 - } ; - --static yyconst flex_int16_t yy_nxt[4747] = -+static yyconst flex_int16_t yy_nxt[4788] = - { 0, - 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, - 14, 18, 20, 14, 21, 22, 23, 24, 14, 25, -@@ -1016,34 +1019,34 @@ static yyconst flex_int16_t yy_nxt[4747] = - - 165, 160, 164, 68, 172, 68, 68, 68, 182, 173, - 68, 68, 168, 170, 177, 174, 178, 166, 175, 162, -- 169, 68, 176, 171, 68, 179, 180, 1627, 1627, 181, -+ 169, 68, 176, 171, 68, 179, 180, 1640, 1640, 181, - 68, 172, 68, 183, 68, 184, 173, 68, 68, 68, -- 68, 177, 174, 178, 189, 175, 187, 1627, 68, 176, -+ 68, 177, 174, 178, 189, 175, 187, 1640, 68, 176, - 186, 192, 179, 180, 191, 185, 181, 68, 188, 68, -- 183, 68, 184, 193, 68, 190, 68, 1627, 1627, 68, -- 1627, 189, 68, 187, 196, 194, 68, 186, 192, 195, -- 1627, 191, 185, 204, 127, 188, 127, 127, 1627, 127, -+ 183, 68, 184, 193, 68, 190, 68, 1640, 1640, 68, -+ 1640, 189, 68, 187, 196, 194, 68, 186, 192, 195, -+ 1640, 191, 185, 204, 127, 188, 127, 127, 1640, 127, - 193, 132, 190, 132, 132, 72, 132, 72, 72, 133, - - 72, 68, 194, 197, 198, 68, 195, 199, 201, 200, -- 213, 203, 1627, 202, 68, 68, 68, 1627, 68, 68, -- 205, 1627, 214, 68, 215, 217, 222, 216, 68, 218, -+ 213, 203, 1640, 202, 68, 68, 68, 1640, 68, 68, -+ 205, 1640, 214, 68, 215, 217, 222, 216, 68, 218, - 197, 198, 135, 68, 199, 68, 200, 213, 203, 68, -- 202, 206, 68, 219, 68, 227, 1627, 68, 68, 214, -- 68, 215, 217, 222, 216, 68, 218, 220, 1627, 1627, -- 221, 223, 1627, 224, 225, 1627, 226, 231, 206, 207, -+ 202, 206, 68, 219, 68, 227, 1640, 68, 68, 214, -+ 68, 215, 217, 222, 216, 68, 218, 220, 1640, 1640, -+ 221, 223, 1640, 224, 225, 1640, 226, 231, 206, 207, - 219, 68, 68, 228, 208, 233, 68, 68, 234, 209, -- 236, 68, 1627, 68, 220, 210, 211, 221, 223, 68, -+ 236, 68, 1640, 68, 220, 210, 211, 221, 223, 68, - 224, 225, 68, 226, 229, 235, 207, 232, 68, 68, - -- 228, 208, 233, 237, 230, 239, 209, 1627, 238, 68, -- 1627, 68, 210, 211, 240, 68, 241, 68, 242, 243, -+ 228, 208, 233, 237, 230, 239, 209, 1640, 238, 68, -+ 1640, 68, 210, 211, 240, 68, 241, 68, 242, 243, - 246, 68, 235, 68, 232, 68, 68, 244, 68, 245, - 250, 230, 239, 251, 68, 238, 68, 68, 68, 68, - 68, 240, 68, 241, 247, 242, 243, 246, 253, 68, - 248, 249, 254, 257, 244, 255, 245, 256, 260, 68, -- 251, 68, 1627, 68, 258, 267, 263, 269, 68, 1627, -- 266, 247, 68, 261, 1627, 253, 68, 248, 249, 68, -+ 251, 68, 1640, 68, 258, 267, 263, 269, 68, 1640, -+ 266, 247, 68, 261, 1640, 253, 68, 248, 249, 68, - 257, 133, 255, 68, 256, 265, 259, 68, 264, 68, - 262, 268, 267, 263, 269, 68, 68, 270, 68, 272, - -@@ -1053,48 +1056,48 @@ static yyconst flex_int16_t yy_nxt[4747] = - 68, 68, 271, 279, 68, 275, 68, 276, 277, 68, - 68, 283, 285, 68, 286, 288, 278, 280, 281, 287, - 293, 68, 284, 289, 68, 291, 68, 290, 292, 68, -- 295, 300, 296, 294, 68, 1627, 1627, 68, 297, 285, -- 306, 68, 288, 68, 1627, 68, 287, 293, 68, 68, -+ 295, 300, 296, 294, 68, 1640, 1640, 68, 297, 285, -+ 306, 68, 288, 68, 1640, 68, 287, 293, 68, 68, - 289, 68, 291, 68, 290, 292, 68, 302, 300, 296, - 294, 68, 301, 298, 303, 297, 299, 68, 68, 304, - - 305, 68, 308, 68, 307, 309, 310, 311, 312, 68, -- 317, 1627, 68, 314, 302, 313, 327, 1627, 68, 301, -+ 317, 1640, 68, 314, 302, 313, 327, 1640, 68, 301, - 298, 303, 319, 299, 68, 68, 304, 305, 68, 308, - 328, 307, 309, 310, 311, 68, 315, 68, 316, 68, - 314, 68, 313, 318, 68, 68, 322, 68, 68, 319, - 68, 320, 68, 321, 326, 323, 329, 328, 324, 68, -- 325, 330, 68, 315, 331, 316, 68, 1627, 68, 349, -- 318, 332, 68, 322, 1627, 68, 68, 333, 320, 335, -+ 325, 330, 68, 315, 331, 316, 68, 1640, 68, 349, -+ 318, 332, 68, 322, 1640, 68, 68, 333, 320, 335, - 321, 326, 323, 329, 68, 324, 346, 325, 330, 344, -- 343, 331, 68, 334, 68, 1627, 347, 345, 332, 351, -+ 343, 331, 68, 334, 68, 1640, 347, 345, 332, 351, - - 68, 68, 68, 133, 333, 348, 335, 68, 68, 353, -- 437, 68, 68, 346, 1627, 352, 344, 343, 350, 356, -+ 437, 68, 68, 346, 1640, 352, 344, 343, 350, 356, - 334, 336, 337, 347, 345, 68, 351, 68, 355, 354, -- 358, 338, 348, 339, 340, 341, 68, 68, 342, 1627, -- 68, 68, 352, 357, 361, 350, 68, 1627, 336, 337, -+ 358, 338, 348, 339, 340, 341, 68, 68, 342, 1640, -+ 68, 68, 352, 357, 361, 350, 68, 1640, 336, 337, - 68, 68, 68, 366, 68, 355, 354, 358, 338, 364, - 339, 340, 341, 359, 360, 342, 362, 363, 368, 369, -- 357, 361, 68, 365, 367, 1627, 68, 68, 68, 371, -- 366, 68, 370, 68, 1627, 372, 364, 68, 373, 375, -+ 357, 361, 68, 365, 367, 1640, 68, 68, 68, 371, -+ 366, 68, 370, 68, 1640, 372, 364, 68, 373, 375, - 374, 377, 68, 362, 363, 368, 369, 68, 68, 378, - - 365, 367, 376, 381, 380, 379, 371, 68, 68, 370, - 382, 68, 372, 400, 68, 373, 68, 374, 377, 68, - 68, 68, 383, 68, 384, 385, 378, 386, 387, 376, - 68, 380, 379, 389, 68, 388, 391, 382, 390, 68, -- 68, 68, 68, 393, 68, 397, 1627, 392, 68, 383, -+ 68, 68, 68, 393, 68, 397, 1640, 392, 68, 383, - 68, 384, 385, 68, 386, 387, 394, 398, 68, 68, - 389, 68, 388, 391, 68, 390, 68, 399, 395, 396, - 393, 68, 397, 401, 392, 68, 68, 405, 404, 68, - 402, 403, 68, 394, 398, 68, 68, 68, 406, 68, -- 408, 407, 1627, 1627, 399, 395, 396, 1627, 68, 1627, -+ 408, 407, 1640, 1640, 399, 395, 396, 1640, 68, 1640, - -- 401, 68, 68, 415, 405, 404, 414, 402, 403, 1627, -+ 401, 68, 68, 415, 405, 404, 414, 402, 403, 1640, - 68, 416, 418, 68, 68, 406, 419, 408, 407, 409, -- 417, 1627, 420, 68, 410, 421, 411, 68, 422, 423, -- 415, 1627, 426, 414, 412, 424, 68, 433, 428, 418, -+ 417, 1640, 420, 68, 410, 421, 411, 68, 422, 423, -+ 415, 1640, 426, 414, 412, 424, 68, 433, 428, 418, - 68, 68, 68, 419, 413, 68, 409, 417, 68, 420, - 68, 410, 421, 411, 68, 422, 423, 425, 427, 426, - 68, 412, 424, 68, 429, 428, 430, 431, 68, 68, -@@ -1104,40 +1107,40 @@ static yyconst flex_int16_t yy_nxt[4747] = - - 434, 447, 436, 449, 435, 441, 443, 68, 438, 444, - 439, 68, 450, 451, 440, 68, 68, 68, 452, 442, -- 453, 454, 455, 456, 457, 1627, 461, 68, 447, 458, -- 68, 459, 460, 443, 463, 1627, 444, 467, 462, 68, -- 68, 469, 1627, 68, 68, 68, 68, 68, 454, 455, -+ 453, 454, 455, 456, 457, 1640, 461, 68, 447, 458, -+ 68, 459, 460, 443, 463, 1640, 444, 467, 462, 68, -+ 68, 469, 1640, 68, 68, 68, 68, 68, 454, 455, - 456, 68, 68, 68, 471, 68, 458, 68, 459, 460, - 68, 463, 464, 68, 467, 462, 468, 465, 472, 470, -- 474, 466, 68, 477, 475, 68, 479, 476, 68, 1627, -- 1627, 471, 491, 483, 68, 480, 68, 68, 68, 464, -+ 474, 466, 68, 477, 475, 68, 479, 476, 68, 1640, -+ 1640, 471, 491, 483, 68, 480, 68, 68, 68, 464, - 473, 68, 68, 468, 465, 472, 470, 474, 466, 68, - - 477, 475, 481, 478, 476, 68, 68, 68, 482, 485, -- 483, 484, 480, 68, 1627, 486, 487, 473, 68, 488, -- 68, 489, 68, 1627, 493, 490, 68, 492, 1627, 481, -- 478, 497, 68, 1627, 499, 482, 485, 68, 484, 494, -+ 483, 484, 480, 68, 1640, 486, 487, 473, 68, 488, -+ 68, 489, 68, 1640, 493, 490, 68, 492, 1640, 481, -+ 478, 497, 68, 1640, 499, 482, 485, 68, 484, 494, - 68, 68, 486, 487, 509, 68, 488, 498, 68, 495, - 504, 493, 68, 496, 492, 68, 68, 502, 497, 68, -- 500, 499, 501, 503, 505, 68, 494, 506, 1627, 68, -+ 500, 499, 501, 503, 505, 68, 494, 506, 1640, 68, - 68, 68, 507, 68, 498, 68, 508, 504, 510, 68, - 68, 68, 68, 511, 502, 512, 68, 500, 68, 501, -- 503, 505, 514, 515, 506, 513, 518, 1627, 516, 507, -+ 503, 505, 514, 515, 506, 513, 518, 1640, 516, 507, - -- 1627, 517, 519, 508, 68, 510, 68, 520, 68, 68, -+ 1640, 517, 519, 508, 68, 510, 68, 520, 68, 68, - 511, 68, 512, 521, 68, 68, 68, 522, 524, 514, - 515, 523, 513, 518, 68, 516, 528, 68, 517, 519, -- 68, 525, 527, 526, 520, 68, 530, 1627, 68, 68, -+ 68, 525, 527, 526, 520, 68, 530, 1640, 68, 68, - 521, 529, 68, 531, 522, 524, 68, 535, 523, 68, - 68, 532, 533, 528, 133, 548, 550, 534, 525, 527, -- 526, 1627, 68, 530, 68, 545, 536, 537, 529, 68, -+ 526, 1640, 68, 530, 68, 545, 536, 537, 529, 68, - 531, 539, 538, 68, 535, 68, 68, 68, 532, 546, - 68, 68, 548, 68, 534, 547, 68, 68, 549, 68, -- 1627, 557, 545, 536, 537, 1627, 558, 560, 539, 538, -+ 1640, 557, 545, 536, 537, 1640, 558, 560, 539, 538, - -- 540, 561, 1627, 68, 541, 68, 546, 542, 559, 562, -- 68, 68, 547, 68, 543, 549, 563, 544, 557, 1627, -- 1627, 68, 68, 558, 560, 564, 567, 540, 68, 68, -+ 540, 561, 1640, 68, 541, 68, 546, 542, 559, 562, -+ 68, 68, 547, 68, 543, 549, 563, 544, 557, 1640, -+ 1640, 68, 68, 558, 560, 564, 567, 540, 68, 68, - 565, 541, 570, 568, 542, 559, 562, 68, 569, 566, - 68, 543, 68, 563, 544, 551, 68, 552, 68, 571, - 553, 68, 564, 567, 575, 554, 68, 565, 574, 570, -@@ -1151,7 +1154,7 @@ static yyconst flex_int16_t yy_nxt[4747] = - 68, 595, 68, 593, 68, 610, 68, 68, 586, 589, - 68, 594, 68, 591, 588, 597, 590, 598, 68, 601, - 602, 68, 600, 596, 68, 592, 599, 68, 595, 68, -- 593, 68, 603, 605, 607, 1627, 68, 68, 594, 606, -+ 593, 68, 603, 605, 607, 1640, 68, 68, 594, 606, - 604, 68, 597, 68, 598, 609, 601, 602, 68, 600, - 608, 68, 68, 599, 611, 68, 612, 68, 68, 603, - 605, 607, 613, 614, 615, 616, 606, 604, 617, 618, -@@ -1160,21 +1163,21 @@ static yyconst flex_int16_t yy_nxt[4747] = - 623, 625, 621, 612, 68, 68, 68, 68, 627, 613, - 614, 615, 616, 626, 68, 617, 68, 641, 68, 630, - 68, 619, 620, 68, 68, 68, 628, 623, 133, 621, -- 629, 68, 68, 68, 68, 627, 637, 1627, 638, 68, -- 626, 639, 640, 68, 641, 1627, 630, 644, 642, 1627, -- 68, 666, 1627, 628, 68, 1627, 1627, 629, 631, 68, -- 632, 68, 1627, 637, 633, 638, 634, 643, 639, 640, -+ 629, 68, 68, 68, 68, 627, 637, 1640, 638, 68, -+ 626, 639, 640, 68, 641, 1640, 630, 644, 642, 1640, -+ 68, 666, 1640, 628, 68, 1640, 1640, 629, 631, 68, -+ 632, 68, 1640, 637, 633, 638, 634, 643, 639, 640, - 68, 635, 645, 646, 644, 642, 636, 649, 68, 648, - 68, 653, 68, 647, 68, 631, 650, 632, 652, 651, - 68, 633, 68, 634, 643, 68, 658, 668, 635, 645, - - 646, 68, 68, 636, 649, 661, 648, 659, 662, 68, - 647, 660, 68, 650, 654, 652, 651, 663, 68, 655, -- 68, 656, 667, 658, 664, 665, 68, 1627, 68, 669, -+ 68, 656, 667, 658, 664, 665, 68, 1640, 68, 669, - 68, 68, 661, 68, 659, 662, 68, 68, 660, 657, - 68, 654, 670, 671, 663, 68, 655, 673, 656, 667, - 68, 664, 665, 68, 672, 68, 669, 68, 676, 674, -- 675, 679, 678, 680, 677, 681, 657, 1627, 68, 670, -+ 675, 679, 678, 680, 677, 681, 657, 1640, 68, 670, - 671, 68, 688, 68, 673, 68, 68, 68, 683, 68, - 68, 672, 684, 687, 682, 676, 674, 675, 679, 678, - 68, 677, 681, 68, 68, 685, 686, 689, 68, 688, -@@ -1192,16 +1195,16 @@ static yyconst flex_int16_t yy_nxt[4747] = - - 724, 68, 726, 727, 728, 729, 730, 68, 720, 732, - 68, 68, 68, 722, 731, 68, 68, 733, 734, 68, -- 735, 68, 1627, 1627, 723, 736, 68, 724, 739, 726, -+ 735, 68, 1640, 1640, 723, 736, 68, 724, 739, 726, - 727, 728, 729, 730, 738, 740, 732, 737, 68, 741, - 68, 731, 68, 68, 743, 742, 745, 735, 68, 68, - 68, 68, 736, 68, 744, 739, 68, 747, 746, 749, - 748, 738, 740, 68, 737, 68, 741, 68, 751, 752, -- 1627, 68, 742, 745, 1627, 750, 753, 754, 68, 68, -+ 1640, 68, 742, 745, 1640, 750, 753, 754, 68, 68, - 759, 744, 68, 68, 747, 746, 749, 748, 68, 755, - 756, 758, 68, 757, 68, 751, 752, 68, 68, 68, - -- 762, 68, 750, 753, 754, 763, 1627, 759, 766, 760, -+ 762, 68, 750, 753, 754, 763, 1640, 759, 766, 760, - 761, 767, 68, 68, 68, 68, 755, 756, 758, 764, - 757, 68, 68, 68, 765, 68, 769, 762, 770, 68, - 771, 772, 763, 68, 768, 766, 760, 761, 767, 780, -@@ -1210,7 +1213,7 @@ static yyconst flex_int16_t yy_nxt[4747] = - 781, 768, 783, 786, 68, 784, 68, 773, 789, 774, - 68, 790, 68, 791, 788, 777, 68, 68, 785, 778, - 787, 779, 782, 68, 68, 68, 68, 781, 792, 783, -- 786, 68, 784, 68, 1627, 68, 68, 797, 1627, 68, -+ 786, 68, 784, 68, 1640, 68, 68, 797, 1640, 68, - - 791, 788, 68, 793, 798, 785, 799, 787, 794, 801, - 795, 68, 796, 68, 800, 792, 804, 802, 68, 803, -@@ -1224,277 +1227,281 @@ static yyconst flex_int16_t yy_nxt[4747] = - 829, 819, 821, 820, 68, 822, 830, 68, 823, 831, - - 832, 68, 833, 824, 68, 68, 834, 68, 825, 836, -- 68, 839, 837, 68, 68, 828, 68, 838, 835, 68, -- 68, 68, 68, 830, 68, 840, 831, 832, 841, 68, -- 842, 844, 68, 834, 843, 68, 852, 845, 839, 837, -- 68, 68, 849, 68, 838, 835, 846, 850, 853, 68, -- 847, 68, 840, 68, 848, 841, 855, 842, 844, 851, -- 68, 843, 854, 852, 845, 1627, 68, 856, 68, 849, -- 857, 68, 68, 846, 850, 68, 859, 862, 858, 68, -- 866, 68, 860, 855, 68, 68, 851, 68, 861, 854, -- 863, 68, 68, 864, 856, 68, 868, 857, 68, 68, -- -- 68, 68, 867, 859, 862, 858, 865, 866, 869, 860, -- 68, 877, 870, 871, 872, 861, 874, 863, 68, 68, -- 864, 875, 68, 868, 873, 876, 878, 68, 68, 867, -- 1627, 880, 68, 865, 68, 869, 68, 68, 879, 870, -- 871, 872, 68, 874, 881, 883, 882, 68, 875, 886, -- 884, 873, 876, 68, 885, 887, 891, 68, 68, 68, -- 888, 889, 68, 68, 68, 879, 68, 890, 68, 892, -- 893, 881, 883, 882, 898, 68, 68, 68, 68, 899, -- 68, 68, 887, 891, 894, 895, 897, 888, 889, 900, -- 896, 68, 68, 68, 890, 903, 901, 893, 68, 68, -- -- 68, 898, 902, 904, 906, 907, 899, 905, 910, 68, -- 908, 894, 895, 897, 68, 68, 900, 896, 68, 909, -- 912, 68, 903, 901, 913, 68, 68, 68, 914, 902, -- 904, 68, 907, 68, 905, 911, 915, 908, 916, 68, -- 917, 919, 68, 918, 68, 921, 909, 912, 923, 922, -- 68, 913, 920, 68, 68, 924, 1627, 926, 68, 68, -- 68, 928, 911, 68, 68, 68, 925, 917, 919, 68, -- 918, 68, 921, 68, 929, 923, 922, 68, 930, 920, -- 927, 931, 68, 68, 926, 68, 68, 932, 928, 933, -- 940, 934, 935, 925, 942, 938, 68, 68, 1627, 68, -- -- 944, 929, 68, 68, 936, 930, 937, 927, 931, 946, -- 939, 68, 68, 68, 932, 943, 933, 68, 934, 935, -- 68, 68, 938, 941, 945, 68, 947, 68, 68, 948, -- 68, 936, 68, 937, 949, 953, 946, 939, 954, 1627, -- 950, 68, 943, 951, 68, 68, 956, 957, 959, 68, -- 941, 945, 68, 947, 955, 952, 948, 1627, 960, 958, -- 68, 949, 961, 967, 68, 954, 68, 950, 68, 962, -- 951, 68, 68, 956, 957, 964, 966, 68, 968, 68, -- 963, 955, 952, 68, 68, 960, 958, 68, 965, 961, -- 68, 984, 68, 973, 970, 969, 962, 68, 68, 971, -- -- 68, 68, 964, 966, 68, 968, 68, 963, 68, 975, -- 972, 974, 976, 1627, 980, 965, 979, 977, 68, 68, -- 973, 970, 969, 68, 68, 68, 971, 978, 68, 981, -- 986, 983, 982, 68, 68, 987, 985, 972, 974, 976, -- 68, 980, 68, 979, 977, 989, 68, 68, 988, 992, -- 993, 994, 68, 68, 978, 996, 981, 986, 983, 982, -- 68, 990, 987, 985, 991, 997, 68, 68, 1001, 68, -- 995, 998, 989, 1004, 68, 988, 992, 68, 68, 68, -- 1000, 68, 996, 999, 68, 68, 1627, 1003, 990, 68, -- 1002, 991, 997, 1005, 68, 1001, 68, 995, 998, 1006, -- -- 1007, 68, 68, 1009, 68, 1008, 1627, 1000, 1010, 1011, -- 999, 1014, 68, 1017, 1003, 1012, 1016, 1002, 1013, 1015, -- 1005, 68, 68, 1627, 68, 68, 1021, 1007, 68, 1018, -- 68, 1028, 1008, 68, 68, 1010, 1011, 68, 1014, 1019, -- 68, 1022, 1012, 1016, 68, 1013, 1015, 1020, 68, 68, -- 1023, 1024, 1025, 1021, 68, 1026, 1018, 1027, 68, 68, -- 1032, 1030, 1029, 68, 1627, 1031, 1019, 1036, 1022, 68, -- 68, 1033, 68, 68, 1020, 68, 68, 1023, 1024, 1025, -- 68, 1034, 1026, 1035, 1027, 1037, 68, 1038, 1030, 1029, -- 68, 68, 1031, 1039, 68, 1040, 1042, 1627, 1033, 1043, -- -- 1041, 1044, 1046, 1627, 68, 1051, 1049, 1045, 1034, 68, -- 1035, 68, 1037, 68, 68, 68, 68, 68, 68, 68, -- 1039, 1056, 68, 1042, 68, 1047, 1043, 1041, 1044, 1046, -- 1050, 1052, 68, 1049, 1045, 1627, 1054, 1058, 1048, 1053, -- 1055, 1059, 68, 68, 68, 68, 1057, 68, 68, 1060, -- 1061, 1062, 1047, 68, 1064, 1627, 1065, 1050, 68, 1066, -- 1063, 1068, 68, 1054, 68, 1048, 1053, 1055, 68, 68, -- 1067, 1073, 1074, 1057, 68, 1076, 1627, 1061, 68, 68, -- 68, 68, 68, 1065, 1075, 68, 68, 1063, 1069, 1070, -- 1071, 68, 68, 1077, 1082, 1072, 68, 1067, 1073, 1074, -- -- 1078, 68, 1076, 68, 1079, 1080, 1081, 1083, 1084, 1627, -- 1091, 1075, 68, 1086, 68, 1069, 1070, 1071, 1085, 68, -- 68, 68, 1072, 1087, 68, 1088, 68, 1078, 68, 1090, -- 68, 1079, 1080, 1081, 1083, 1084, 68, 1089, 1093, 1092, -- 1086, 68, 1094, 1096, 1627, 1085, 68, 1097, 68, 68, -- 1087, 68, 1088, 1095, 68, 1098, 1090, 1101, 68, 1100, -- 1099, 68, 1103, 1102, 1089, 1093, 1092, 68, 68, 68, -- 1096, 68, 1104, 1106, 1097, 68, 1109, 1105, 68, 1107, -- 1095, 68, 1098, 1108, 1101, 68, 1100, 1099, 68, 68, -- 1102, 1110, 1113, 1111, 1114, 68, 68, 1112, 1115, 1104, -- -- 68, 1116, 1117, 1118, 1105, 1627, 1107, 68, 1126, 1120, -- 1108, 68, 1119, 68, 1121, 1122, 1123, 68, 68, 1124, -- 68, 1114, 1127, 68, 68, 1115, 68, 68, 1125, 1117, -- 1118, 1129, 68, 1128, 68, 68, 1120, 1135, 1130, 1119, -- 1132, 1133, 1122, 1131, 1136, 68, 1124, 68, 1134, 68, -- 1140, 68, 68, 68, 68, 1125, 68, 1142, 1129, 68, -- 1128, 68, 68, 68, 68, 1130, 1137, 1132, 1133, 1138, -- 1131, 1136, 1139, 68, 1143, 1134, 1141, 1140, 68, 1144, -- 68, 1149, 1146, 1151, 68, 1152, 1147, 68, 68, 1148, -- 1145, 68, 1153, 1137, 1155, 68, 1138, 1150, 68, 1139, -- -- 1154, 1143, 1156, 1141, 68, 68, 1144, 68, 68, 1146, -- 68, 1158, 1152, 1147, 68, 1159, 1148, 1145, 68, 1153, -- 1160, 68, 68, 1157, 1150, 68, 68, 1154, 1161, 1156, -- 68, 1162, 1164, 68, 1163, 1166, 1168, 68, 1158, 1167, -- 1170, 1165, 1159, 68, 68, 68, 68, 1160, 68, 68, -- 1157, 1169, 1171, 68, 1173, 1161, 1177, 68, 1162, 1164, -- 1174, 1163, 1166, 1168, 68, 68, 1167, 1170, 1165, 68, -- 1172, 68, 1175, 1176, 1179, 1178, 68, 1182, 1169, 68, -- 1181, 1173, 68, 1177, 1180, 68, 1183, 1174, 68, 1627, -- 68, 1188, 1187, 1184, 68, 68, 1193, 1172, 1185, 1175, -- -- 1176, 1186, 1178, 68, 1182, 68, 68, 1181, 68, 68, -- 1190, 1180, 1189, 68, 1191, 1192, 68, 68, 1188, 1187, -- 1184, 1627, 1194, 1193, 1195, 1185, 1196, 68, 1186, 68, -- 1199, 1197, 68, 68, 1200, 1627, 68, 1190, 1198, 1189, -- 68, 1191, 1192, 68, 1201, 68, 1202, 68, 68, 1194, -- 1627, 1195, 1203, 1196, 1204, 1206, 1205, 1199, 1197, 1207, -- 68, 68, 68, 1210, 1215, 1198, 1208, 1627, 1211, 68, -- 1209, 1201, 1212, 68, 1214, 1213, 1218, 68, 68, 1203, -- 68, 1204, 1206, 1205, 68, 68, 68, 68, 68, 1217, -- 68, 68, 1219, 1208, 68, 1211, 68, 1209, 1216, 1212, -- -- 68, 1214, 1213, 1218, 68, 1220, 1221, 1222, 1223, 1627, -- 1225, 68, 1627, 1224, 1234, 68, 1217, 1226, 68, 1219, -- 1227, 68, 68, 1228, 1627, 1216, 1229, 68, 1232, 68, -- 1230, 68, 1220, 1221, 1222, 68, 68, 1225, 68, 68, -- 1224, 68, 1231, 68, 1226, 1233, 1235, 1227, 68, 1236, -- 1228, 68, 1237, 1229, 1238, 1232, 1239, 1230, 1240, 1241, -- 1242, 1243, 1244, 68, 1246, 68, 1247, 1245, 68, 1231, -- 68, 1250, 1233, 1235, 68, 68, 1236, 1249, 1252, 1237, -- 1254, 1238, 68, 1239, 1248, 68, 68, 1242, 68, 68, -- 1255, 68, 68, 68, 1245, 1251, 1258, 1253, 68, 68, -- -- 1256, 68, 1259, 68, 1249, 68, 68, 1254, 1260, 1261, -- 68, 1248, 1262, 68, 68, 1257, 1264, 1255, 1263, 1266, -- 1627, 1627, 1251, 68, 1253, 1265, 68, 1256, 1267, 1259, -- 68, 1269, 1270, 1268, 68, 68, 68, 68, 1271, 1262, -- 68, 68, 1257, 1264, 68, 1263, 1266, 68, 1272, 1273, -- 68, 1274, 1265, 1275, 68, 1267, 1276, 1627, 1269, 1270, -- 1268, 1277, 1278, 1280, 68, 1271, 68, 68, 68, 1279, -- 1283, 1284, 1627, 1281, 1627, 1272, 1273, 1285, 1274, 68, -- 68, 1282, 68, 1276, 68, 1286, 68, 1288, 1277, 1278, -- 1289, 1627, 1290, 1296, 68, 68, 1279, 1283, 1284, 68, -- -- 1281, 68, 1287, 1292, 1285, 68, 1291, 68, 1282, 68, -- 1293, 1297, 1286, 1294, 68, 1295, 68, 68, 68, 1290, -- 1296, 68, 1298, 68, 1299, 1301, 1304, 1300, 1303, 1287, -- 1292, 1307, 68, 1291, 68, 68, 1302, 1293, 1297, 1305, -- 1294, 68, 1295, 68, 1308, 1306, 68, 1311, 68, 68, -- 68, 1299, 1301, 68, 1300, 1303, 68, 68, 1307, 1309, -- 68, 1312, 1310, 1302, 1314, 1315, 1305, 1316, 1313, 1627, -- 1317, 1627, 1306, 68, 1311, 68, 1319, 1320, 68, 1321, -- 1322, 68, 1318, 1323, 1326, 1327, 1309, 68, 68, 1310, -- 68, 68, 68, 68, 1325, 1313, 68, 1317, 68, 68, -- -- 1324, 1328, 68, 1319, 1320, 1329, 68, 1322, 68, 1318, -- 1323, 68, 68, 68, 1330, 1331, 68, 1334, 1332, 1333, -- 68, 1325, 1335, 68, 1336, 1337, 1340, 1324, 68, 68, -- 68, 1339, 1329, 68, 68, 1338, 68, 1344, 68, 68, -- 68, 1330, 1331, 68, 1334, 1332, 1333, 1341, 1342, 1335, -- 68, 68, 1337, 1340, 1343, 1345, 1346, 1347, 1339, 68, -- 1348, 68, 1338, 68, 1344, 1350, 1351, 68, 1352, 1349, -- 68, 1354, 1353, 68, 1341, 1342, 1355, 68, 68, 68, -- 68, 1343, 1345, 68, 68, 1356, 68, 1348, 1357, 1358, -- 1627, 1359, 1350, 1351, 1361, 1352, 1349, 1363, 1354, 1353, -- -- 68, 68, 68, 1355, 1360, 68, 68, 1364, 1366, 1362, -- 1365, 1627, 68, 68, 1367, 1357, 1358, 68, 1359, 68, -- 68, 1361, 68, 1368, 68, 1369, 1627, 1370, 1372, 1371, -- 68, 1360, 1373, 68, 68, 1366, 1362, 1365, 68, 1374, -- 1375, 1367, 1377, 1376, 68, 1378, 1627, 1379, 68, 1627, -- 1368, 68, 1369, 68, 1370, 68, 1371, 1380, 1381, 1373, -- 1382, 1383, 68, 1384, 1387, 1386, 1374, 68, 1389, 68, -- 1376, 68, 68, 68, 1379, 1385, 68, 68, 1388, 1390, -- 68, 1391, 68, 68, 1380, 1381, 68, 1382, 1383, 1392, -- 1384, 1387, 1386, 1627, 68, 1389, 1393, 1394, 1395, 1396, -- -- 68, 1398, 1385, 1397, 1399, 1388, 68, 1627, 68, 1627, -- 1403, 1401, 1402, 1400, 1627, 1627, 68, 1407, 1405, 68, -- 68, 1404, 68, 68, 68, 68, 1396, 68, 1398, 68, -- 1397, 1399, 68, 68, 68, 68, 68, 1403, 1401, 1402, -- 1400, 1406, 1408, 68, 1407, 1405, 1409, 1411, 1404, 1410, -- 1412, 1414, 1413, 1415, 68, 68, 68, 1417, 1419, 68, -- 68, 1416, 1627, 1421, 1420, 1423, 1424, 1418, 1406, 1408, -- 68, 68, 68, 1409, 1411, 68, 1410, 68, 68, 1413, -- 1415, 68, 1422, 68, 1417, 68, 1425, 1426, 1416, 68, -- 1421, 1420, 68, 68, 1418, 1427, 68, 1428, 1429, 1431, -- -- 1430, 1627, 1432, 1433, 1436, 1627, 68, 1435, 68, 1422, -- 1434, 68, 68, 68, 1426, 1438, 68, 1440, 1444, 1627, -- 68, 1627, 1427, 68, 1442, 68, 1431, 1430, 68, 1432, -- 1433, 1436, 68, 1437, 1435, 1439, 68, 1434, 1443, 1441, -- 68, 1445, 68, 68, 1440, 1444, 68, 68, 68, 68, -- 68, 1442, 1446, 68, 1447, 1627, 1448, 1449, 1450, 1452, -- 1437, 1451, 1439, 68, 68, 1443, 1441, 1453, 1445, 1454, -- 68, 1455, 68, 1457, 1460, 68, 1456, 1458, 1466, 1446, -- 1459, 1447, 68, 1448, 1449, 1450, 68, 68, 1451, 68, -- 68, 68, 68, 1461, 1453, 1462, 1454, 1464, 1455, 68, -- -- 1457, 1460, 1463, 1456, 1458, 1465, 68, 1459, 68, 68, -- 1467, 1468, 68, 68, 68, 68, 1470, 1469, 1471, 68, -- 1461, 1472, 1462, 1473, 1464, 68, 1627, 1474, 68, 1463, -- 1475, 1476, 1465, 1478, 68, 68, 1480, 1467, 68, 68, -- 1477, 68, 1481, 1470, 1469, 68, 1482, 1479, 1472, 68, -- 1473, 1484, 1483, 68, 1474, 68, 68, 1475, 1476, 68, -- 68, 1485, 1486, 68, 68, 1488, 1490, 1477, 1487, 1481, -- 1489, 1491, 1492, 68, 1479, 1493, 68, 68, 1484, 1483, -- 68, 1494, 1497, 68, 1498, 1627, 68, 1627, 68, 68, -- 1495, 1496, 1488, 68, 68, 1487, 1499, 1489, 1491, 1492, -- -- 68, 1500, 1493, 1501, 68, 1502, 1503, 1504, 1627, 68, -- 1506, 68, 68, 1505, 68, 1507, 1508, 1495, 1496, 1510, -- 1511, 1627, 1509, 1499, 1627, 68, 1512, 1514, 1500, 1513, -- 1501, 1627, 68, 68, 68, 68, 68, 68, 68, 1515, -- 1505, 68, 1507, 68, 68, 1521, 1510, 68, 68, 1509, -- 68, 68, 1519, 1512, 1514, 1518, 1513, 1516, 1517, 1523, -- 1522, 68, 1520, 1525, 1526, 1524, 1515, 68, 1527, 68, -- 1528, 1529, 68, 68, 68, 1627, 68, 68, 1535, 1519, -- 1532, 1530, 1518, 68, 1516, 1517, 68, 1522, 68, 1520, -- 68, 1526, 1524, 68, 1531, 1527, 1533, 68, 1529, 1536, -- -- 68, 1534, 68, 1537, 1538, 68, 1539, 1532, 1530, 68, -- 1540, 1541, 1542, 1544, 1627, 1627, 1545, 1543, 68, 68, -- 1627, 1531, 68, 1533, 68, 68, 68, 68, 1534, 1546, -- 68, 1538, 68, 1539, 68, 1547, 1548, 1549, 1541, 1542, -- 1544, 68, 68, 1545, 1543, 68, 1550, 1551, 1553, 1552, -- 68, 68, 68, 1554, 1555, 68, 1546, 1556, 68, 1559, -- 68, 1557, 1547, 1548, 1549, 1558, 1560, 68, 1564, 1561, -- 1565, 68, 68, 1550, 1551, 1553, 1552, 1562, 1566, 68, -- 68, 1555, 68, 68, 1556, 1563, 1559, 1568, 1557, 68, -- 1569, 68, 1558, 68, 1567, 68, 1561, 68, 1570, 68, -- -- 1574, 68, 1571, 68, 1562, 1566, 68, 1573, 68, 1572, -- 1575, 1576, 1563, 1577, 1568, 68, 68, 1569, 1582, 68, -- 1578, 1567, 68, 68, 1579, 1570, 1580, 1574, 1583, 1571, -- 1584, 1627, 68, 1581, 1573, 1585, 1572, 1575, 1576, 68, -- 1577, 68, 68, 68, 1586, 1587, 68, 1578, 68, 68, -- 68, 1579, 68, 1580, 1589, 68, 1588, 1584, 1590, 1591, -- 1581, 1592, 1585, 1593, 68, 1594, 1596, 68, 68, 68, -- 1597, 1586, 1595, 1599, 68, 1598, 68, 68, 1600, 1601, -- 68, 1589, 1602, 1588, 1603, 1590, 1591, 68, 1592, 1627, -- 1593, 68, 1594, 1596, 68, 68, 68, 1597, 68, 1595, -- -- 1599, 68, 1598, 1604, 68, 1600, 1601, 1605, 1607, 68, -- 1606, 1603, 1627, 1610, 1608, 68, 68, 1609, 1611, 1627, -- 1612, 68, 1615, 68, 1616, 1613, 68, 1618, 1619, 1627, -- 1604, 1627, 68, 68, 1605, 1607, 68, 1606, 1617, 68, -- 1610, 1608, 1614, 1620, 1609, 1611, 68, 1612, 68, 1615, -- 68, 68, 1613, 1621, 68, 68, 1622, 1625, 68, 1623, -- 1624, 1626, 1627, 68, 1627, 1617, 1627, 68, 68, 1614, -- 1620, 1627, 1627, 1627, 1627, 68, 1627, 1627, 68, 1627, -- 1621, 1627, 1627, 1622, 68, 1627, 1623, 1624, 68, 40, -- 40, 40, 40, 40, 40, 40, 45, 45, 45, 45, -- -- 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, -- 56, 56, 56, 56, 56, 56, 56, 61, 61, 61, -- 61, 61, 61, 61, 71, 71, 1627, 71, 71, 71, -- 71, 123, 123, 1627, 1627, 1627, 123, 123, 125, 125, -- 1627, 1627, 125, 1627, 125, 127, 1627, 1627, 1627, 1627, -- 1627, 127, 130, 130, 1627, 1627, 1627, 130, 130, 132, -- 1627, 1627, 1627, 1627, 1627, 132, 134, 134, 1627, 134, -- 134, 134, 134, 72, 72, 1627, 72, 72, 72, 72, -- 13, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627 -+ 68, 837, 839, 68, 68, 828, 68, 838, 835, 68, -+ 841, 68, 68, 830, 68, 840, 831, 832, 842, 68, -+ 843, 845, 68, 834, 68, 68, 850, 847, 837, 839, -+ 68, 844, 852, 851, 838, 835, 68, 841, 855, 854, -+ 68, 1640, 840, 68, 68, 842, 846, 843, 845, 68, -+ 68, 848, 68, 850, 847, 849, 853, 68, 844, 852, -+ 851, 68, 856, 857, 860, 855, 858, 68, 859, 68, -+ 68, 68, 861, 846, 863, 864, 1640, 68, 68, 866, -+ 862, 68, 68, 853, 68, 870, 68, 68, 865, 856, -+ -+ 857, 860, 68, 858, 869, 859, 68, 68, 867, 861, -+ 868, 863, 864, 875, 871, 68, 866, 862, 68, 872, -+ 68, 873, 870, 876, 878, 865, 68, 877, 68, 68, -+ 874, 869, 879, 880, 68, 867, 68, 868, 881, 68, -+ 875, 871, 68, 883, 882, 884, 872, 885, 873, 68, -+ 876, 886, 887, 68, 877, 68, 68, 874, 1640, 68, -+ 880, 888, 892, 68, 1640, 68, 68, 889, 891, 68, -+ 883, 882, 884, 890, 68, 68, 68, 893, 68, 68, -+ 899, 1640, 894, 68, 895, 896, 68, 905, 888, 892, -+ 68, 897, 68, 68, 889, 891, 901, 898, 902, 68, -+ -+ 890, 900, 904, 903, 907, 68, 1640, 899, 68, 894, -+ 68, 895, 896, 68, 905, 908, 68, 909, 897, 911, -+ 68, 913, 68, 901, 898, 902, 68, 906, 900, 904, -+ 903, 68, 910, 915, 68, 914, 912, 68, 916, 68, -+ 68, 917, 908, 68, 909, 68, 918, 922, 913, 919, -+ 68, 921, 1640, 68, 906, 920, 925, 923, 1640, 910, -+ 68, 68, 914, 912, 68, 68, 927, 68, 68, 924, -+ 68, 930, 928, 918, 922, 68, 919, 68, 921, 68, -+ 926, 68, 920, 68, 923, 929, 932, 68, 935, 931, -+ 934, 933, 68, 927, 68, 946, 924, 68, 930, 928, -+ -+ 68, 68, 936, 68, 937, 940, 941, 926, 68, 942, -+ 945, 68, 929, 932, 68, 935, 931, 934, 933, 938, -+ 939, 944, 68, 68, 68, 1640, 68, 68, 68, 936, -+ 68, 937, 940, 941, 943, 947, 948, 945, 949, 68, -+ 68, 68, 950, 951, 1640, 955, 938, 939, 961, 1640, -+ 68, 952, 68, 957, 953, 956, 68, 68, 959, 960, -+ 68, 943, 947, 948, 68, 949, 954, 958, 1640, 950, -+ 951, 68, 962, 969, 1640, 68, 68, 68, 952, 68, -+ 957, 953, 956, 68, 964, 959, 960, 963, 965, 68, -+ 966, 968, 68, 954, 958, 68, 68, 967, 68, 962, -+ -+ 68, 68, 972, 970, 1640, 975, 977, 971, 974, 68, -+ 1640, 964, 68, 68, 963, 965, 68, 966, 968, 973, -+ 68, 68, 976, 982, 967, 68, 68, 986, 987, 972, -+ 970, 978, 975, 979, 971, 974, 68, 68, 68, 980, -+ 68, 981, 988, 68, 983, 68, 973, 984, 985, 976, -+ 982, 995, 68, 68, 68, 987, 989, 991, 978, 68, -+ 979, 990, 68, 994, 68, 68, 980, 68, 981, 988, -+ 996, 983, 998, 992, 984, 985, 993, 1006, 997, 68, -+ 999, 68, 68, 989, 991, 68, 68, 1002, 990, 68, -+ 994, 68, 1001, 1000, 68, 1003, 68, 68, 1004, 998, -+ -+ 992, 1005, 1007, 993, 1008, 997, 68, 999, 68, 68, -+ 68, 68, 1009, 1011, 1002, 1015, 1010, 1640, 1012, 1001, -+ 1000, 68, 1003, 68, 1013, 1004, 1016, 1017, 1005, 1007, -+ 1014, 1019, 68, 68, 68, 68, 68, 1023, 1018, 1009, -+ 68, 1020, 1015, 1010, 68, 1012, 68, 1021, 68, 1024, -+ 1025, 1013, 68, 1016, 1017, 1027, 68, 1014, 1026, 1022, -+ 68, 1030, 68, 1028, 1023, 1018, 68, 68, 1020, 1029, -+ 1031, 68, 68, 68, 1021, 1032, 1024, 1025, 1033, 1034, -+ 68, 68, 1027, 68, 1035, 1026, 1022, 1038, 68, 1036, -+ 1028, 1037, 1039, 68, 68, 68, 1029, 1031, 1040, 1041, -+ -+ 68, 1043, 1032, 1042, 68, 1033, 1034, 1045, 68, 1044, -+ 1049, 1048, 1047, 1046, 1038, 68, 1036, 1054, 1037, 68, -+ 1059, 68, 68, 68, 68, 1040, 68, 68, 68, 68, -+ 1042, 68, 68, 1050, 1045, 1052, 1044, 1049, 1048, 1047, -+ 1046, 1053, 68, 1055, 68, 1058, 1051, 68, 1056, 1057, -+ 1061, 68, 68, 68, 68, 1062, 1060, 68, 1063, 1065, -+ 1050, 1064, 1052, 68, 1067, 1068, 1069, 68, 1053, 1066, -+ 1071, 1070, 1058, 1051, 68, 1056, 1057, 68, 68, 1072, -+ 1073, 1074, 68, 1060, 1076, 68, 1075, 1080, 1064, 68, -+ 68, 68, 1068, 68, 68, 68, 1066, 68, 1070, 1079, -+ -+ 1084, 68, 1077, 1078, 1085, 68, 1072, 1073, 1074, 68, -+ 68, 1076, 1082, 1075, 68, 1081, 68, 1083, 68, 1088, -+ 1086, 1087, 1089, 68, 68, 1090, 1079, 1084, 1093, 1077, -+ 1078, 68, 68, 1091, 68, 1094, 1640, 68, 68, 1082, -+ 1097, 68, 1081, 1092, 1083, 1096, 1088, 1086, 1087, 1089, -+ 68, 68, 1090, 1098, 68, 1093, 1095, 1100, 1099, 1101, -+ 1091, 1102, 1103, 68, 68, 68, 68, 68, 1112, 68, -+ 1092, 68, 1096, 1104, 68, 68, 68, 1105, 1106, 1109, -+ 1098, 1113, 1107, 1095, 1100, 1099, 1101, 1108, 1102, 1103, -+ 1110, 1116, 1117, 68, 68, 68, 68, 1111, 68, 68, -+ -+ 1104, 1118, 1119, 1114, 1105, 68, 68, 1115, 68, 1107, -+ 68, 1120, 1121, 1124, 1108, 1122, 68, 1110, 1123, 1117, -+ 68, 1126, 68, 1128, 1111, 1640, 68, 1125, 1118, 1129, -+ 68, 1127, 68, 68, 68, 68, 1130, 1131, 1120, 1121, -+ 1132, 1134, 1122, 1133, 68, 1123, 68, 68, 1135, 1136, -+ 1128, 1139, 68, 1140, 1125, 68, 1129, 1137, 1127, 1138, -+ 68, 68, 68, 68, 68, 68, 68, 1132, 1134, 1141, -+ 1133, 68, 68, 1142, 68, 1135, 1136, 1143, 68, 1144, -+ 1140, 1145, 68, 1146, 1137, 68, 1138, 68, 1147, 1150, -+ 1153, 1151, 1152, 1155, 1148, 1159, 1141, 1640, 68, 1154, -+ -+ 1142, 68, 68, 68, 1143, 1149, 1144, 1157, 1145, 68, -+ 68, 1158, 68, 1156, 68, 1147, 1150, 68, 1151, 1152, -+ 68, 1148, 68, 68, 68, 1160, 1154, 1162, 1161, 1163, -+ 1640, 1164, 1149, 68, 1157, 68, 68, 68, 1158, 1168, -+ 1156, 1169, 1165, 1170, 1166, 68, 1167, 68, 68, 1171, -+ 1175, 68, 1160, 68, 1162, 1161, 1163, 68, 1164, 68, -+ 1173, 68, 1174, 1172, 1177, 68, 1168, 1178, 1169, 1165, -+ 1170, 1166, 68, 1167, 68, 68, 1171, 68, 68, 1176, -+ 68, 1179, 1180, 1183, 1181, 1184, 68, 1173, 1182, 1174, -+ 1172, 1177, 68, 68, 1178, 68, 1187, 1185, 1194, 1189, -+ -+ 1186, 1188, 1190, 68, 68, 68, 1176, 68, 1179, 1180, -+ 1191, 1181, 1184, 68, 68, 1182, 68, 68, 1192, 1193, -+ 68, 1195, 1198, 68, 1185, 1194, 1189, 1186, 1188, 1190, -+ 1196, 1197, 1199, 68, 68, 68, 68, 1191, 68, 1200, -+ 1201, 1204, 1640, 68, 68, 1192, 1193, 1203, 1195, 1198, -+ 1206, 1205, 68, 68, 1202, 1207, 68, 1196, 1197, 1199, -+ 68, 1208, 1210, 68, 1209, 68, 1200, 1201, 68, 68, -+ 1211, 1212, 1213, 1215, 1203, 1214, 68, 68, 1205, 68, -+ 1216, 1202, 1207, 1218, 68, 1220, 68, 1228, 1208, 1210, -+ 68, 1209, 68, 68, 1217, 1219, 1222, 68, 1212, 1213, -+ -+ 68, 1221, 1214, 68, 1223, 1225, 68, 1216, 68, 68, -+ 1218, 1226, 68, 1224, 68, 1227, 1229, 68, 68, 1231, -+ 68, 1217, 1219, 1222, 1230, 68, 68, 68, 1221, 1232, -+ 68, 1223, 1225, 1239, 1640, 1237, 68, 1233, 1226, 68, -+ 1224, 68, 1227, 1229, 1234, 68, 1231, 68, 1236, 1235, -+ 68, 1230, 1238, 1240, 68, 1241, 1232, 68, 68, 1242, -+ 68, 1244, 1237, 1245, 1233, 1246, 1248, 1243, 1249, 68, -+ 1247, 1234, 68, 1251, 1252, 1236, 1235, 68, 1255, 1238, -+ 1240, 68, 1241, 1250, 68, 1254, 1242, 68, 1244, 1257, -+ 68, 68, 68, 68, 1243, 68, 1253, 1247, 1256, 1258, -+ -+ 68, 68, 1261, 1259, 68, 68, 68, 68, 68, 1260, -+ 1250, 1263, 1254, 1264, 1265, 1266, 68, 1262, 1267, 68, -+ 1268, 68, 1640, 1253, 68, 1256, 1258, 1640, 68, 1261, -+ 1259, 1269, 1271, 68, 1273, 1270, 1260, 1272, 68, 68, -+ 1264, 68, 68, 1275, 1262, 1267, 68, 1268, 68, 68, -+ 68, 1274, 1281, 1277, 68, 1276, 1278, 68, 1269, 1271, -+ 1279, 1273, 1270, 1280, 1272, 68, 1283, 68, 1289, 1282, -+ 1275, 68, 1284, 68, 68, 68, 68, 1285, 1274, 1281, -+ 1277, 1640, 1276, 1278, 68, 1290, 68, 1279, 1640, 1286, -+ 1288, 1292, 1294, 1283, 68, 1289, 1282, 1287, 68, 1284, -+ -+ 68, 1291, 68, 1293, 1295, 1640, 1297, 1296, 68, 1299, -+ 68, 1298, 1290, 68, 1301, 68, 1286, 1288, 1292, 68, -+ 68, 1300, 68, 1302, 1287, 68, 68, 1303, 1291, 68, -+ 1293, 68, 68, 1297, 1296, 1304, 1299, 1305, 1298, 1640, -+ 68, 1301, 1306, 1307, 1311, 1308, 68, 1310, 1300, 68, -+ 1302, 68, 68, 1309, 1303, 1313, 1312, 1314, 1317, 68, -+ 1315, 1322, 68, 1318, 1305, 68, 68, 68, 1316, 1306, -+ 1307, 1311, 1308, 1320, 1319, 68, 1321, 68, 68, 68, -+ 1309, 1323, 1313, 1312, 68, 1317, 1324, 1315, 68, 1325, -+ 68, 1327, 68, 68, 68, 1316, 68, 68, 1326, 1328, -+ -+ 68, 1319, 1329, 68, 1330, 1332, 1331, 68, 1323, 1333, -+ 1334, 1640, 1640, 1324, 1336, 1335, 1325, 68, 68, 1337, -+ 68, 68, 1340, 68, 1338, 1326, 1328, 68, 68, 1329, -+ 68, 1330, 68, 1331, 68, 1339, 68, 68, 1341, 68, -+ 1342, 1336, 1335, 1343, 68, 68, 1337, 1344, 68, 1340, -+ 68, 1338, 1345, 1347, 1346, 1349, 68, 1353, 1348, 68, -+ 1354, 68, 1339, 1640, 68, 1341, 1351, 68, 68, 1352, -+ 1343, 68, 1350, 1357, 1344, 1640, 1355, 68, 68, 1345, -+ 1347, 1346, 1349, 68, 68, 1348, 1356, 68, 68, 1359, -+ 1358, 68, 1362, 1351, 1360, 68, 1352, 68, 1363, 1350, -+ -+ 1357, 68, 1361, 1355, 1364, 1366, 1367, 68, 1365, 1370, -+ 1371, 68, 1368, 1356, 68, 68, 1359, 1358, 68, 1362, -+ 68, 1360, 68, 68, 1640, 68, 1369, 1379, 1372, 1361, -+ 1373, 1364, 1366, 1367, 68, 1365, 68, 68, 1374, 1368, -+ 1375, 68, 68, 1376, 1378, 1377, 68, 68, 1380, 1381, -+ 1382, 68, 68, 1369, 68, 1372, 1383, 1373, 68, 1384, -+ 68, 1385, 1640, 1386, 68, 1374, 1388, 1375, 68, 1387, -+ 1376, 1378, 1377, 1389, 68, 1380, 1381, 68, 1392, 1390, -+ 1393, 1394, 1395, 1383, 68, 1397, 68, 1398, 68, 68, -+ 1386, 1391, 68, 1388, 1400, 68, 1387, 68, 1396, 68, -+ -+ 1389, 68, 1399, 68, 68, 1392, 1390, 1393, 1394, 1395, -+ 68, 1401, 68, 1402, 68, 1403, 68, 1405, 1391, 1640, -+ 1404, 1400, 1407, 1406, 1640, 1396, 1408, 1410, 1411, 1409, -+ 1640, 1640, 1640, 68, 68, 1640, 1640, 1415, 68, 68, -+ 68, 68, 68, 68, 1405, 68, 68, 1404, 1412, 1407, -+ 1406, 68, 68, 1408, 1410, 1411, 1409, 1417, 1413, 1414, -+ 1416, 1418, 68, 68, 1415, 68, 1419, 1420, 68, 1422, -+ 1424, 1421, 1423, 1640, 68, 1412, 68, 68, 68, 1427, -+ 1430, 1426, 1425, 1428, 1417, 1413, 1414, 1416, 1418, 68, -+ 68, 68, 68, 1419, 68, 68, 68, 1424, 1421, 1423, -+ -+ 68, 1429, 1431, 1432, 68, 1433, 68, 1430, 1426, 1425, -+ 1428, 1434, 1435, 1436, 1437, 1640, 1439, 1440, 1443, 1438, -+ 68, 1640, 1444, 1441, 1442, 68, 1447, 68, 1429, 68, -+ 68, 68, 68, 68, 1451, 1640, 1476, 68, 1434, 1435, -+ 68, 68, 68, 1439, 68, 1443, 1438, 1445, 68, 1444, -+ 1441, 1442, 1446, 68, 68, 1448, 1449, 1452, 1450, 1453, -+ 68, 1451, 1454, 68, 1459, 68, 68, 68, 68, 68, -+ 1455, 68, 1456, 1457, 1445, 68, 1461, 1463, 1464, 1446, -+ 68, 68, 1448, 1449, 1452, 1450, 1453, 1458, 68, 1454, -+ 68, 1459, 1460, 1462, 68, 68, 68, 1455, 1465, 1456, -+ -+ 1457, 68, 1467, 68, 1463, 1464, 1466, 1640, 68, 1468, -+ 1469, 1472, 1470, 68, 1458, 1473, 68, 1475, 68, 1460, -+ 1462, 68, 1471, 1474, 68, 1465, 68, 1478, 68, 1467, -+ 1477, 1481, 68, 1466, 68, 68, 1468, 1469, 1472, 1470, -+ 68, 1480, 1473, 1479, 1475, 68, 1482, 1484, 1483, 1471, -+ 1474, 68, 1485, 68, 68, 68, 1486, 1477, 68, 68, -+ 1487, 68, 1488, 1490, 68, 1492, 1491, 1494, 1480, 1489, -+ 1479, 68, 68, 1482, 1484, 1483, 1495, 68, 68, 1485, -+ 1496, 1500, 1503, 1486, 1493, 1498, 1501, 1487, 68, 68, -+ 68, 68, 68, 1491, 1494, 1499, 1489, 1497, 1505, 1502, -+ -+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 1503, -+ 1504, 1493, 1498, 1501, 1508, 1506, 1507, 1509, 68, 1510, -+ 1511, 1513, 1499, 1512, 1497, 68, 1502, 68, 1514, 68, -+ 1515, 1516, 1517, 68, 1518, 1519, 1522, 1504, 1640, 1525, -+ 1640, 68, 1506, 1507, 68, 68, 1510, 1511, 68, 1520, -+ 1512, 1521, 1523, 68, 68, 68, 1526, 68, 1516, 68, -+ 68, 1518, 68, 68, 1524, 68, 1525, 1528, 1529, 1527, -+ 68, 68, 1533, 1535, 68, 1530, 1520, 68, 1521, 1523, -+ 68, 68, 1531, 1526, 1534, 1532, 68, 1536, 1537, 1538, -+ 1540, 1524, 68, 1541, 1528, 1529, 1527, 1539, 1553, 68, -+ -+ 68, 68, 1530, 1542, 68, 68, 68, 68, 1548, 1531, -+ 68, 1534, 1532, 1543, 1536, 68, 1538, 68, 1547, 1545, -+ 68, 1544, 1546, 1549, 1539, 68, 68, 68, 1550, 68, -+ 1542, 1552, 1551, 1640, 1555, 68, 1640, 1640, 1554, 1640, -+ 1543, 68, 1567, 1558, 68, 1547, 1545, 68, 1544, 1546, -+ 68, 68, 1556, 1557, 68, 68, 68, 68, 1552, 1551, -+ 68, 1555, 68, 1559, 1560, 1554, 1562, 1561, 1563, 68, -+ 1558, 68, 1564, 1565, 68, 68, 1566, 68, 1568, 1556, -+ 1557, 68, 1569, 68, 1570, 1571, 68, 68, 68, 1572, -+ 1559, 1560, 1573, 1562, 1561, 1563, 68, 1574, 1640, 1564, -+ -+ 1565, 68, 1575, 1566, 68, 1568, 68, 1576, 1577, 1569, -+ 68, 1570, 1571, 1578, 68, 68, 1572, 1640, 1579, 1580, -+ 1581, 1587, 1582, 68, 1574, 1595, 1584, 1585, 68, 1575, -+ 1583, 68, 1640, 68, 1576, 68, 1588, 1596, 68, 68, -+ 68, 68, 1586, 68, 68, 1579, 1580, 1581, 1587, 1582, -+ 68, 1589, 1591, 1584, 1585, 1590, 68, 1583, 68, 68, -+ 1594, 1592, 1593, 1588, 68, 1597, 1600, 1598, 68, 1586, -+ 1640, 1640, 1599, 1603, 68, 68, 1640, 1602, 1589, 1591, -+ 68, 68, 1590, 68, 68, 68, 1607, 1594, 1592, 1593, -+ 1601, 68, 1597, 1604, 1598, 68, 1608, 68, 68, 1599, -+ -+ 1603, 68, 1605, 1609, 1602, 1606, 1640, 1610, 1640, 1611, -+ 68, 68, 68, 1607, 1640, 1612, 1614, 1601, 68, 68, -+ 1604, 1613, 1615, 1608, 68, 1616, 1617, 1640, 1619, 1605, -+ 1609, 1618, 1606, 68, 1610, 68, 1611, 68, 1621, 68, -+ 1622, 68, 1612, 1614, 1625, 68, 68, 1640, 1613, 68, -+ 68, 1620, 1616, 1617, 1628, 1619, 1623, 1629, 1618, 68, -+ 68, 1624, 68, 1631, 68, 1621, 1626, 1622, 1627, 68, -+ 68, 1625, 1630, 1632, 68, 1640, 68, 1633, 1620, 1634, -+ 68, 1628, 1638, 1623, 68, 1635, 1636, 1639, 1624, 1640, -+ 68, 1640, 68, 1626, 68, 1627, 1640, 68, 1640, 1630, -+ -+ 68, 68, 1637, 1640, 1633, 1640, 1634, 68, 1640, 68, -+ 68, 1640, 1635, 1636, 68, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1637, -+ 40, 40, 40, 40, 40, 40, 40, 45, 45, 45, -+ 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, -+ 50, 56, 56, 56, 56, 56, 56, 56, 61, 61, -+ 61, 61, 61, 61, 61, 71, 71, 1640, 71, 71, -+ 71, 71, 123, 123, 1640, 1640, 1640, 123, 123, 125, -+ 125, 1640, 1640, 125, 1640, 125, 127, 1640, 1640, 1640, -+ 1640, 1640, 127, 130, 130, 1640, 1640, 1640, 130, 130, -+ -+ 132, 1640, 1640, 1640, 1640, 1640, 132, 134, 134, 1640, -+ 134, 134, 134, 134, 72, 72, 1640, 72, 72, 72, -+ 72, 13, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640 - } ; - --static yyconst flex_int16_t yy_chk[4747] = -+static yyconst flex_int16_t yy_chk[4788] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -@@ -1504,7 +1511,7 @@ static yyconst flex_int16_t yy_chk[4747] = - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, - 4, 5, 5, 6, 6, 5, 24, 6, 7, 7, -- 7, 7, 1633, 7, 8, 8, 8, 8, 24, 8, -+ 7, 7, 1646, 7, 8, 8, 8, 8, 24, 8, - 9, 9, 9, 10, 10, 10, 15, 44, 44, 49, - - 15, 3, 49, 24, 4, 60, 60, 5, 19, 6, -@@ -1750,274 +1757,278 @@ static yyconst flex_int16_t yy_chk[4747] = - 725, 714, 716, 715, 717, 717, 726, 719, 718, 727, - - 728, 720, 729, 719, 722, 723, 730, 727, 720, 732, -- 724, 735, 733, 730, 726, 724, 728, 734, 731, 733, -- 735, 725, 731, 726, 734, 736, 727, 728, 737, 729, -- 738, 740, 738, 730, 739, 737, 748, 741, 735, 733, -- 732, 741, 745, 739, 734, 731, 742, 746, 749, 748, -- 744, 736, 736, 740, 744, 737, 751, 738, 740, 747, -- 745, 739, 750, 748, 741, 0, 746, 752, 742, 745, -- 753, 753, 751, 742, 746, 752, 755, 758, 754, 749, -- 762, 744, 756, 751, 747, 750, 747, 754, 757, 750, -- 759, 756, 762, 760, 752, 757, 764, 753, 755, 759, -- -- 758, 760, 763, 755, 758, 754, 761, 762, 765, 756, -- 763, 773, 766, 767, 768, 757, 770, 759, 764, 761, -- 760, 771, 767, 764, 769, 772, 774, 771, 765, 763, -- 0, 777, 768, 761, 766, 765, 769, 770, 775, 766, -- 767, 768, 773, 770, 778, 780, 779, 772, 771, 782, -- 781, 769, 772, 780, 781, 783, 787, 774, 777, 779, -- 784, 785, 785, 783, 775, 775, 778, 786, 784, 788, -- 789, 778, 780, 779, 794, 786, 782, 787, 789, 795, -- 794, 781, 783, 787, 790, 791, 793, 784, 785, 796, -- 792, 795, 790, 791, 786, 799, 797, 789, 792, 793, -- -- 788, 794, 798, 800, 802, 803, 795, 801, 806, 799, -- 804, 790, 791, 793, 801, 796, 796, 792, 797, 805, -- 810, 800, 799, 797, 811, 798, 805, 803, 812, 798, -- 800, 802, 803, 804, 801, 808, 814, 804, 816, 806, -- 818, 820, 810, 819, 808, 822, 805, 810, 824, 823, -- 811, 811, 821, 820, 821, 825, 0, 827, 822, 812, -- 824, 829, 808, 814, 818, 816, 826, 818, 820, 819, -- 819, 823, 822, 826, 830, 824, 823, 829, 831, 821, -- 828, 832, 825, 827, 827, 828, 831, 834, 829, 835, -- 842, 836, 837, 826, 844, 840, 834, 830, 0, 837, -- -- 846, 830, 835, 832, 838, 831, 839, 828, 832, 849, -- 841, 838, 849, 839, 834, 845, 835, 836, 836, 837, -- 840, 842, 840, 843, 847, 844, 850, 846, 845, 851, -- 843, 838, 841, 839, 852, 854, 849, 841, 855, 0, -- 853, 852, 845, 853, 851, 847, 857, 858, 860, 858, -- 843, 847, 850, 850, 856, 853, 851, 0, 861, 859, -- 855, 852, 862, 868, 853, 855, 854, 853, 857, 863, -- 853, 862, 856, 857, 858, 865, 867, 863, 869, 860, -- 864, 856, 853, 859, 861, 861, 859, 864, 866, 862, -- 868, 887, 866, 874, 871, 870, 863, 865, 867, 872, -- -- 869, 871, 865, 867, 870, 869, 872, 864, 874, 876, -- 873, 875, 877, 0, 882, 866, 881, 878, 887, 877, -- 874, 871, 870, 873, 878, 875, 872, 879, 881, 883, -- 889, 884, 883, 879, 882, 890, 888, 873, 875, 877, -- 876, 882, 884, 881, 878, 892, 890, 883, 891, 894, -- 895, 896, 889, 892, 879, 898, 883, 889, 884, 883, -- 888, 893, 890, 888, 893, 899, 891, 894, 903, 898, -- 897, 900, 892, 907, 899, 891, 894, 897, 896, 893, -- 902, 895, 898, 901, 900, 901, 0, 905, 893, 902, -- 904, 893, 899, 908, 903, 903, 905, 897, 900, 909, -- -- 910, 904, 908, 912, 907, 911, 0, 902, 913, 914, -- 901, 918, 911, 921, 905, 914, 920, 904, 917, 919, -- 908, 910, 913, 0, 920, 918, 926, 910, 919, 922, -- 909, 933, 911, 914, 912, 913, 914, 917, 918, 923, -- 922, 927, 914, 920, 921, 917, 919, 925, 923, 926, -- 928, 929, 930, 926, 925, 931, 922, 932, 933, 931, -- 937, 935, 934, 927, 0, 936, 923, 941, 927, 932, -- 930, 938, 928, 929, 925, 934, 935, 928, 929, 930, -- 936, 939, 931, 940, 932, 942, 938, 943, 935, 934, -- 939, 937, 936, 945, 941, 946, 948, 0, 938, 949, -- -- 947, 950, 952, 0, 940, 956, 954, 951, 939, 942, -- 940, 945, 942, 954, 943, 947, 950, 949, 948, 951, -- 945, 961, 946, 948, 952, 953, 949, 947, 950, 952, -- 955, 957, 956, 954, 951, 0, 959, 963, 953, 958, -- 960, 964, 955, 953, 959, 958, 962, 960, 961, 965, -- 966, 968, 953, 962, 970, 0, 971, 955, 971, 972, -- 969, 974, 957, 959, 963, 953, 958, 960, 964, 969, -- 973, 976, 977, 962, 966, 979, 0, 966, 976, 977, -- 965, 979, 968, 971, 978, 970, 972, 969, 975, 975, -- 975, 978, 974, 980, 986, 975, 973, 973, 976, 977, -- -- 981, 981, 979, 975, 982, 983, 985, 987, 988, 0, -- 996, 978, 983, 990, 990, 975, 975, 975, 989, 987, -- 980, 986, 975, 991, 985, 992, 992, 981, 988, 995, -- 982, 982, 983, 985, 987, 988, 989, 993, 998, 997, -- 990, 996, 999, 1001, 0, 989, 997, 1002, 993, 991, -- 991, 995, 992, 1000, 1002, 1003, 995, 1006, 998, 1005, -- 1004, 1001, 1008, 1007, 993, 998, 997, 1003, 1004, 999, -- 1001, 1005, 1009, 1010, 1002, 1000, 1013, 1009, 1006, 1011, -- 1000, 1007, 1003, 1012, 1006, 1011, 1005, 1004, 1009, 1008, -- 1007, 1014, 1016, 1015, 1017, 1017, 1012, 1015, 1018, 1009, -- -- 1010, 1019, 1020, 1021, 1009, 0, 1011, 1013, 1030, 1023, -- 1012, 1023, 1022, 1018, 1024, 1025, 1026, 1020, 1014, 1027, -- 1025, 1017, 1031, 1016, 1015, 1018, 1021, 1022, 1029, 1020, -- 1021, 1033, 1019, 1032, 1027, 1030, 1023, 1042, 1034, 1022, -- 1037, 1039, 1025, 1035, 1043, 1024, 1027, 1026, 1041, 1031, -- 1047, 1043, 1029, 1033, 1032, 1029, 1039, 1049, 1033, 1034, -- 1032, 1035, 1037, 1041, 1042, 1034, 1044, 1037, 1039, 1045, -- 1035, 1043, 1046, 1047, 1050, 1041, 1048, 1047, 1045, 1052, -- 1046, 1057, 1053, 1061, 1044, 1062, 1054, 1050, 1049, 1055, -- 1052, 1053, 1063, 1044, 1065, 1062, 1045, 1060, 1048, 1046, -- -- 1064, 1050, 1067, 1048, 1054, 1052, 1052, 1055, 1057, 1053, -- 1060, 1069, 1062, 1054, 1061, 1070, 1055, 1052, 1063, 1063, -- 1071, 1065, 1067, 1068, 1060, 1064, 1071, 1064, 1072, 1067, -- 1068, 1073, 1075, 1070, 1074, 1078, 1080, 1069, 1069, 1079, -- 1083, 1076, 1070, 1072, 1075, 1080, 1073, 1071, 1076, 1074, -- 1068, 1081, 1084, 1083, 1086, 1072, 1090, 1078, 1073, 1075, -- 1087, 1074, 1078, 1080, 1079, 1090, 1079, 1083, 1076, 1081, -- 1085, 1085, 1088, 1089, 1092, 1091, 1086, 1096, 1081, 1084, -- 1095, 1086, 1091, 1090, 1093, 1087, 1097, 1087, 1095, 0, -- 1096, 1101, 1100, 1098, 1088, 1089, 1108, 1085, 1099, 1088, -- -- 1089, 1099, 1091, 1108, 1096, 1092, 1093, 1095, 1098, 1101, -- 1104, 1093, 1102, 1097, 1105, 1107, 1099, 1100, 1101, 1100, -- 1098, 0, 1109, 1108, 1111, 1099, 1113, 1102, 1099, 1107, -- 1116, 1114, 1104, 1109, 1117, 0, 1105, 1104, 1115, 1102, -- 1115, 1105, 1107, 1114, 1118, 1111, 1119, 1113, 1116, 1109, -- 0, 1111, 1120, 1113, 1121, 1123, 1122, 1116, 1114, 1124, -- 1120, 1117, 1118, 1129, 1134, 1115, 1125, 0, 1130, 1123, -- 1128, 1118, 1131, 1119, 1133, 1132, 1138, 1121, 1122, 1120, -- 1138, 1121, 1123, 1122, 1132, 1125, 1124, 1131, 1128, 1137, -- 1129, 1134, 1139, 1125, 1130, 1130, 1133, 1128, 1136, 1131, -- -- 1136, 1133, 1132, 1138, 1139, 1140, 1141, 1142, 1143, 0, -- 1145, 1137, 0, 1144, 1156, 1141, 1137, 1146, 1142, 1139, -- 1147, 1147, 1145, 1148, 0, 1136, 1150, 1140, 1153, 1150, -- 1151, 1148, 1140, 1141, 1142, 1143, 1144, 1145, 1151, 1146, -- 1144, 1156, 1152, 1153, 1146, 1154, 1157, 1147, 1152, 1158, -- 1148, 1154, 1159, 1150, 1160, 1153, 1161, 1151, 1162, 1163, -- 1164, 1165, 1166, 1158, 1168, 1159, 1169, 1167, 1160, 1152, -- 1157, 1173, 1154, 1157, 1164, 1167, 1158, 1172, 1175, 1159, -- 1177, 1160, 1161, 1161, 1170, 1162, 1163, 1164, 1165, 1166, -- 1178, 1168, 1170, 1169, 1167, 1174, 1180, 1176, 1173, 1172, -- -- 1179, 1177, 1181, 1174, 1172, 1175, 1176, 1177, 1182, 1184, -- 1181, 1170, 1185, 1185, 1178, 1179, 1187, 1178, 1186, 1189, -- 0, 0, 1174, 1180, 1176, 1188, 1179, 1179, 1190, 1181, -- 1190, 1192, 1193, 1191, 1187, 1182, 1184, 1192, 1194, 1185, -- 1188, 1189, 1179, 1187, 1186, 1186, 1189, 1191, 1195, 1196, -- 1194, 1197, 1188, 1198, 1193, 1190, 1199, 0, 1192, 1193, -- 1191, 1201, 1203, 1205, 1197, 1194, 1195, 1196, 1201, 1204, -- 1208, 1209, 0, 1206, 0, 1195, 1196, 1211, 1197, 1199, -- 1203, 1206, 1208, 1199, 1198, 1212, 1209, 1214, 1201, 1203, -- 1216, 0, 1217, 1224, 1205, 1204, 1204, 1208, 1209, 1206, -- -- 1206, 1211, 1213, 1219, 1211, 1217, 1218, 1212, 1206, 1213, -- 1220, 1225, 1212, 1221, 1214, 1222, 1224, 1216, 1219, 1217, -- 1224, 1221, 1226, 1220, 1227, 1229, 1232, 1228, 1231, 1213, -- 1219, 1236, 1218, 1218, 1228, 1225, 1230, 1220, 1225, 1233, -- 1221, 1222, 1222, 1230, 1237, 1235, 1227, 1242, 1229, 1226, -- 1231, 1227, 1229, 1236, 1228, 1231, 1235, 1232, 1236, 1238, -- 1233, 1245, 1239, 1230, 1249, 1251, 1233, 1253, 1248, 0, -- 1254, 0, 1235, 1242, 1242, 1237, 1256, 1257, 1238, 1259, -- 1262, 1256, 1255, 1263, 1266, 1267, 1238, 1239, 1245, 1239, -- 1248, 1249, 1251, 1255, 1265, 1248, 1254, 1254, 1253, 1257, -- -- 1264, 1268, 1262, 1256, 1257, 1269, 1259, 1262, 1263, 1255, -- 1263, 1266, 1267, 1264, 1270, 1271, 1265, 1274, 1272, 1273, -- 1269, 1265, 1275, 1270, 1276, 1277, 1280, 1264, 1268, 1275, -- 1271, 1279, 1269, 1272, 1273, 1278, 1278, 1284, 1279, 1274, -- 1280, 1270, 1271, 1277, 1274, 1272, 1273, 1281, 1282, 1275, -- 1281, 1276, 1277, 1280, 1283, 1285, 1286, 1287, 1279, 1284, -- 1290, 1282, 1278, 1283, 1284, 1292, 1293, 1290, 1294, 1291, -- 1292, 1296, 1295, 1293, 1281, 1282, 1297, 1285, 1291, 1295, -- 1296, 1283, 1285, 1286, 1287, 1299, 1294, 1290, 1300, 1301, -- 0, 1302, 1292, 1293, 1304, 1294, 1291, 1306, 1296, 1295, -- -- 1302, 1301, 1297, 1297, 1303, 1304, 1300, 1307, 1309, 1305, -- 1308, 0, 1299, 1303, 1310, 1300, 1301, 1305, 1302, 1308, -- 1309, 1304, 1310, 1311, 1306, 1313, 0, 1316, 1318, 1317, -- 1311, 1303, 1319, 1313, 1316, 1309, 1305, 1308, 1307, 1320, -- 1322, 1310, 1324, 1323, 1319, 1325, 0, 1329, 1320, 0, -- 1311, 1323, 1313, 1317, 1316, 1318, 1317, 1330, 1331, 1319, -- 1332, 1333, 1330, 1334, 1338, 1337, 1320, 1322, 1340, 1324, -- 1323, 1334, 1325, 1329, 1329, 1335, 1331, 1337, 1339, 1341, -- 1340, 1342, 1332, 1333, 1330, 1331, 1338, 1332, 1333, 1343, -- 1334, 1338, 1337, 0, 1335, 1340, 1344, 1345, 1348, 1349, -- -- 1339, 1351, 1335, 1350, 1352, 1339, 1341, 0, 1342, 0, -- 1357, 1354, 1355, 1353, 0, 0, 1352, 1361, 1359, 1351, -- 1343, 1358, 1349, 1344, 1345, 1350, 1349, 1355, 1351, 1348, -- 1350, 1352, 1353, 1354, 1357, 1358, 1359, 1357, 1354, 1355, -- 1353, 1360, 1362, 1361, 1361, 1359, 1364, 1366, 1358, 1365, -- 1367, 1369, 1368, 1370, 1364, 1366, 1365, 1373, 1376, 1360, -- 1362, 1371, 0, 1380, 1379, 1382, 1383, 1374, 1360, 1362, -- 1368, 1379, 1370, 1364, 1366, 1373, 1365, 1367, 1369, 1368, -- 1370, 1374, 1381, 1371, 1373, 1376, 1384, 1385, 1371, 1380, -- 1380, 1379, 1382, 1383, 1374, 1386, 1385, 1387, 1388, 1392, -- -- 1389, 0, 1395, 1395, 1398, 0, 1381, 1397, 1386, 1381, -- 1396, 1398, 1395, 1384, 1385, 1400, 1397, 1402, 1406, 0, -- 1392, 0, 1386, 1389, 1404, 1388, 1392, 1389, 1387, 1395, -- 1395, 1398, 1396, 1399, 1397, 1401, 1402, 1396, 1405, 1403, -- 1406, 1407, 1400, 1401, 1402, 1406, 1399, 1403, 1407, 1405, -- 1404, 1404, 1408, 1408, 1409, 0, 1410, 1411, 1413, 1416, -- 1399, 1415, 1401, 1410, 1411, 1405, 1403, 1417, 1407, 1418, -- 1415, 1420, 1409, 1422, 1428, 1422, 1421, 1426, 1435, 1408, -- 1427, 1409, 1413, 1410, 1411, 1413, 1416, 1418, 1415, 1420, -- 1417, 1421, 1428, 1430, 1417, 1431, 1418, 1433, 1420, 1426, -- -- 1422, 1428, 1432, 1421, 1426, 1434, 1427, 1427, 1432, 1435, -- 1436, 1437, 1436, 1431, 1434, 1430, 1440, 1439, 1441, 1433, -- 1430, 1442, 1431, 1443, 1433, 1439, 0, 1444, 1440, 1432, -- 1445, 1446, 1434, 1448, 1443, 1444, 1450, 1436, 1437, 1442, -- 1447, 1447, 1451, 1440, 1439, 1441, 1453, 1449, 1442, 1445, -- 1443, 1455, 1454, 1446, 1444, 1449, 1455, 1445, 1446, 1454, -- 1448, 1456, 1457, 1450, 1451, 1459, 1461, 1447, 1458, 1451, -- 1460, 1462, 1463, 1453, 1449, 1464, 1458, 1460, 1455, 1454, -- 1459, 1465, 1467, 1464, 1469, 0, 1462, 0, 1456, 1457, -- 1466, 1466, 1459, 1461, 1463, 1458, 1470, 1460, 1462, 1463, -- -- 1466, 1472, 1464, 1473, 1470, 1474, 1475, 1476, 0, 1467, -- 1479, 1469, 1465, 1477, 1472, 1481, 1483, 1466, 1466, 1487, -- 1488, 0, 1484, 1470, 0, 1473, 1489, 1492, 1472, 1491, -- 1473, 0, 1474, 1475, 1476, 1477, 1492, 1479, 1487, 1493, -- 1477, 1481, 1481, 1483, 1484, 1500, 1487, 1488, 1489, 1484, -- 1493, 1491, 1496, 1489, 1492, 1495, 1491, 1494, 1494, 1505, -- 1501, 1495, 1499, 1509, 1510, 1507, 1493, 1494, 1512, 1499, -- 1513, 1514, 1500, 1514, 1496, 0, 1510, 1512, 1520, 1496, -- 1517, 1515, 1495, 1501, 1494, 1494, 1505, 1501, 1507, 1499, -- 1509, 1510, 1507, 1515, 1516, 1512, 1518, 1513, 1514, 1522, -- -- 1516, 1519, 1517, 1524, 1526, 1520, 1527, 1517, 1515, 1519, -- 1529, 1530, 1531, 1533, 0, 0, 1534, 1532, 1518, 1526, -- 0, 1516, 1533, 1518, 1530, 1532, 1522, 1534, 1519, 1538, -- 1524, 1526, 1527, 1527, 1531, 1539, 1540, 1541, 1530, 1531, -- 1533, 1529, 1539, 1534, 1532, 1541, 1542, 1543, 1545, 1544, -- 1540, 1544, 1538, 1546, 1547, 1542, 1538, 1548, 1543, 1551, -- 1545, 1549, 1539, 1540, 1541, 1550, 1552, 1550, 1557, 1553, -- 1558, 1551, 1547, 1542, 1543, 1545, 1544, 1555, 1559, 1548, -- 1546, 1547, 1553, 1549, 1548, 1556, 1551, 1561, 1549, 1555, -- 1562, 1559, 1550, 1556, 1560, 1561, 1553, 1552, 1563, 1557, -- -- 1567, 1558, 1564, 1562, 1555, 1559, 1563, 1566, 1560, 1565, -- 1568, 1569, 1556, 1570, 1561, 1566, 1564, 1562, 1575, 1569, -- 1571, 1560, 1567, 1565, 1572, 1563, 1573, 1567, 1576, 1564, -- 1577, 0, 1568, 1574, 1566, 1578, 1565, 1568, 1569, 1570, -- 1570, 1574, 1571, 1578, 1579, 1580, 1572, 1571, 1573, 1575, -- 1577, 1572, 1579, 1573, 1582, 1576, 1581, 1577, 1584, 1585, -- 1574, 1586, 1578, 1587, 1581, 1588, 1590, 1585, 1582, 1586, -- 1591, 1579, 1589, 1593, 1590, 1592, 1580, 1587, 1594, 1595, -- 1584, 1582, 1596, 1581, 1597, 1584, 1585, 1595, 1586, 0, -- 1587, 1588, 1588, 1590, 1589, 1593, 1591, 1591, 1594, 1589, -- -- 1593, 1592, 1592, 1598, 1597, 1594, 1595, 1599, 1601, 1596, -- 1600, 1597, 0, 1605, 1603, 1599, 1601, 1604, 1606, 0, -- 1607, 1605, 1610, 1598, 1611, 1608, 1606, 1613, 1614, 0, -- 1598, 0, 1600, 1608, 1599, 1601, 1603, 1600, 1612, 1604, -- 1605, 1603, 1609, 1615, 1604, 1606, 1607, 1607, 1610, 1610, -- 1609, 1611, 1608, 1617, 1613, 1614, 1620, 1623, 1612, 1621, -- 1622, 1624, 0, 1615, 0, 1612, 0, 1621, 1622, 1609, -- 1615, 0, 0, 0, 0, 1617, 0, 0, 1620, 0, -- 1617, 0, 0, 1620, 1623, 0, 1621, 1622, 1624, 1628, -- 1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629, 1629, 1629, -- -- 1629, 1629, 1629, 1630, 1630, 1630, 1630, 1630, 1630, 1630, -- 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1632, 1632, 1632, -- 1632, 1632, 1632, 1632, 1634, 1634, 0, 1634, 1634, 1634, -- 1634, 1635, 1635, 0, 0, 0, 1635, 1635, 1636, 1636, -- 0, 0, 1636, 0, 1636, 1637, 0, 0, 0, 0, -- 0, 1637, 1638, 1638, 0, 0, 0, 1638, 1638, 1639, -- 0, 0, 0, 0, 0, 1639, 1640, 1640, 0, 1640, -- 1640, 1640, 1640, 1641, 1641, 0, 1641, 1641, 1641, 1641, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, -- 1627, 1627, 1627, 1627, 1627, 1627 -+ 724, 733, 734, 730, 726, 724, 728, 733, 731, 734, -+ 736, 725, 731, 726, 733, 735, 727, 728, 737, 729, -+ 738, 740, 738, 730, 735, 737, 745, 742, 733, 734, -+ 732, 739, 747, 746, 733, 731, 736, 736, 750, 749, -+ 739, 0, 735, 740, 745, 737, 741, 738, 740, 742, -+ 741, 744, 746, 745, 742, 744, 748, 747, 739, 747, -+ 746, 750, 751, 752, 755, 750, 753, 753, 754, 748, -+ 749, 752, 756, 741, 758, 759, 0, 754, 751, 761, -+ 757, 756, 744, 748, 759, 765, 755, 757, 760, 751, -+ -+ 752, 755, 761, 753, 764, 754, 760, 758, 762, 756, -+ 763, 758, 759, 770, 766, 765, 761, 757, 763, 767, -+ 762, 768, 765, 771, 773, 760, 764, 772, 767, 771, -+ 769, 764, 774, 775, 770, 762, 766, 763, 777, 768, -+ 770, 766, 769, 779, 778, 780, 767, 781, 768, 772, -+ 771, 781, 782, 780, 772, 773, 779, 769, 0, 775, -+ 775, 783, 787, 774, 0, 777, 778, 784, 786, 783, -+ 779, 778, 780, 785, 785, 784, 786, 788, 781, 782, -+ 794, 0, 789, 787, 790, 791, 794, 800, 783, 787, -+ 789, 792, 790, 791, 784, 786, 796, 793, 797, 792, -+ -+ 785, 795, 799, 798, 802, 800, 0, 794, 788, 789, -+ 793, 790, 791, 795, 800, 803, 799, 804, 792, 806, -+ 797, 810, 796, 796, 793, 797, 798, 801, 795, 799, -+ 798, 802, 805, 812, 801, 811, 808, 803, 814, 805, -+ 804, 816, 803, 810, 804, 808, 818, 822, 810, 819, -+ 806, 821, 0, 821, 801, 820, 825, 823, 0, 805, -+ 822, 811, 811, 808, 812, 814, 827, 820, 816, 824, -+ 818, 830, 828, 818, 822, 819, 819, 828, 821, 823, -+ 826, 824, 820, 825, 823, 829, 832, 826, 836, 831, -+ 835, 834, 827, 827, 830, 847, 824, 831, 830, 828, -+ -+ 834, 829, 837, 835, 838, 841, 842, 826, 832, 843, -+ 846, 838, 829, 832, 836, 836, 831, 835, 834, 839, -+ 840, 845, 847, 846, 837, 0, 839, 840, 842, 837, -+ 841, 838, 841, 842, 844, 848, 850, 846, 851, 850, -+ 843, 844, 852, 853, 0, 855, 839, 840, 861, 0, -+ 853, 854, 845, 857, 854, 856, 848, 852, 859, 860, -+ 859, 844, 848, 850, 851, 851, 854, 858, 0, 852, -+ 853, 857, 862, 869, 0, 854, 855, 856, 854, 861, -+ 857, 854, 856, 860, 864, 859, 860, 863, 865, 858, -+ 866, 868, 864, 854, 858, 865, 863, 867, 862, 862, -+ -+ 869, 867, 872, 870, 0, 875, 877, 871, 874, 872, -+ 0, 864, 866, 868, 863, 865, 871, 866, 868, 873, -+ 875, 874, 876, 883, 867, 870, 873, 888, 889, 872, -+ 870, 878, 875, 879, 871, 874, 876, 877, 878, 880, -+ 879, 882, 890, 883, 884, 880, 873, 884, 885, 876, -+ 883, 896, 889, 882, 888, 889, 891, 893, 878, 885, -+ 879, 892, 884, 895, 890, 893, 880, 891, 882, 890, -+ 897, 884, 899, 894, 884, 885, 894, 908, 898, 892, -+ 900, 895, 896, 891, 893, 898, 899, 903, 892, 900, -+ 895, 894, 902, 901, 902, 904, 903, 897, 905, 899, -+ -+ 894, 906, 909, 894, 910, 898, 901, 900, 908, 905, -+ 906, 909, 911, 913, 903, 918, 912, 0, 914, 902, -+ 901, 904, 904, 912, 915, 905, 919, 920, 906, 909, -+ 915, 922, 914, 911, 918, 910, 920, 927, 921, 911, -+ 919, 923, 918, 912, 913, 914, 921, 924, 915, 928, -+ 929, 915, 923, 919, 920, 931, 924, 915, 930, 926, -+ 927, 934, 922, 932, 927, 921, 926, 932, 923, 933, -+ 935, 928, 929, 931, 924, 936, 928, 929, 937, 938, -+ 930, 933, 931, 935, 939, 930, 926, 942, 934, 940, -+ 932, 941, 943, 937, 938, 936, 933, 935, 944, 945, -+ -+ 941, 948, 936, 947, 940, 937, 938, 950, 942, 949, -+ 954, 953, 952, 951, 942, 939, 940, 958, 941, 943, -+ 963, 947, 944, 953, 949, 944, 945, 952, 948, 950, -+ 947, 951, 954, 955, 950, 956, 949, 954, 953, 952, -+ 951, 957, 956, 959, 958, 962, 955, 963, 960, 961, -+ 965, 955, 962, 957, 960, 966, 964, 961, 967, 970, -+ 955, 968, 956, 964, 972, 973, 974, 973, 957, 971, -+ 976, 975, 962, 955, 959, 960, 961, 965, 971, 977, -+ 977, 977, 966, 964, 978, 968, 977, 982, 968, 967, -+ 970, 978, 973, 974, 977, 972, 971, 975, 975, 981, -+ -+ 987, 976, 979, 980, 988, 981, 977, 977, 977, 979, -+ 980, 978, 984, 977, 982, 983, 983, 985, 987, 991, -+ 989, 990, 992, 992, 985, 993, 981, 987, 997, 979, -+ 980, 988, 989, 994, 994, 998, 0, 991, 984, 984, -+ 1001, 990, 983, 995, 985, 1000, 991, 989, 990, 992, -+ 997, 993, 993, 1002, 995, 997, 999, 1004, 1003, 1005, -+ 994, 1006, 1007, 999, 1004, 1000, 998, 1001, 1015, 1006, -+ 995, 1005, 1000, 1008, 1007, 1002, 1003, 1009, 1010, 1012, -+ 1002, 1016, 1011, 999, 1004, 1003, 1005, 1011, 1006, 1007, -+ 1013, 1018, 1019, 1019, 1008, 1009, 1013, 1014, 1011, 1015, -+ -+ 1008, 1020, 1021, 1017, 1009, 1010, 1012, 1017, 1016, 1011, -+ 1014, 1022, 1023, 1026, 1011, 1024, 1020, 1013, 1025, 1019, -+ 1025, 1028, 1018, 1031, 1014, 0, 1022, 1027, 1020, 1032, -+ 1024, 1029, 1027, 1021, 1017, 1023, 1033, 1034, 1022, 1023, -+ 1035, 1037, 1024, 1036, 1026, 1025, 1029, 1031, 1038, 1040, -+ 1031, 1045, 1028, 1046, 1027, 1032, 1032, 1042, 1029, 1044, -+ 1046, 1035, 1037, 1033, 1034, 1036, 1038, 1035, 1037, 1047, -+ 1036, 1040, 1042, 1048, 1044, 1038, 1040, 1049, 1045, 1050, -+ 1046, 1051, 1048, 1052, 1042, 1049, 1044, 1047, 1053, 1056, -+ 1060, 1057, 1058, 1064, 1055, 1068, 1047, 0, 1056, 1063, -+ -+ 1048, 1053, 1050, 1051, 1049, 1055, 1050, 1066, 1051, 1057, -+ 1058, 1067, 1063, 1065, 1052, 1053, 1056, 1060, 1057, 1058, -+ 1055, 1055, 1068, 1065, 1064, 1070, 1063, 1072, 1071, 1073, -+ 0, 1074, 1055, 1066, 1066, 1071, 1067, 1074, 1067, 1078, -+ 1065, 1079, 1075, 1081, 1076, 1070, 1077, 1073, 1079, 1082, -+ 1087, 1078, 1070, 1072, 1072, 1071, 1073, 1075, 1074, 1076, -+ 1084, 1077, 1086, 1083, 1089, 1081, 1078, 1090, 1079, 1075, -+ 1081, 1076, 1083, 1077, 1082, 1086, 1082, 1087, 1084, 1088, -+ 1088, 1091, 1092, 1095, 1093, 1096, 1089, 1084, 1094, 1086, -+ 1083, 1089, 1090, 1093, 1090, 1094, 1100, 1098, 1107, 1102, -+ -+ 1099, 1101, 1102, 1091, 1092, 1098, 1088, 1096, 1091, 1092, -+ 1103, 1093, 1096, 1099, 1095, 1094, 1101, 1102, 1104, 1105, -+ 1107, 1108, 1112, 1100, 1098, 1107, 1102, 1099, 1101, 1102, -+ 1110, 1111, 1114, 1112, 1105, 1103, 1104, 1103, 1111, 1116, -+ 1117, 1120, 0, 1108, 1110, 1104, 1105, 1119, 1108, 1112, -+ 1122, 1121, 1117, 1114, 1118, 1123, 1118, 1110, 1111, 1114, -+ 1116, 1124, 1126, 1123, 1125, 1119, 1116, 1117, 1120, 1121, -+ 1127, 1128, 1129, 1133, 1119, 1132, 1126, 1122, 1121, 1129, -+ 1134, 1118, 1123, 1136, 1124, 1138, 1125, 1147, 1124, 1126, -+ 1128, 1125, 1136, 1132, 1135, 1137, 1141, 1127, 1128, 1129, -+ -+ 1133, 1140, 1132, 1140, 1142, 1144, 1134, 1134, 1142, 1135, -+ 1136, 1145, 1138, 1143, 1147, 1146, 1148, 1137, 1141, 1150, -+ 1145, 1135, 1137, 1141, 1149, 1143, 1146, 1144, 1140, 1151, -+ 1151, 1142, 1144, 1160, 0, 1157, 1149, 1152, 1145, 1148, -+ 1143, 1150, 1146, 1148, 1154, 1152, 1150, 1154, 1156, 1155, -+ 1157, 1149, 1158, 1161, 1156, 1162, 1151, 1155, 1158, 1163, -+ 1160, 1165, 1157, 1166, 1152, 1167, 1169, 1164, 1170, 1162, -+ 1168, 1154, 1163, 1172, 1173, 1156, 1155, 1161, 1177, 1158, -+ 1161, 1164, 1162, 1171, 1168, 1176, 1163, 1165, 1165, 1179, -+ 1166, 1171, 1167, 1169, 1164, 1170, 1174, 1168, 1178, 1180, -+ -+ 1172, 1173, 1183, 1181, 1174, 1177, 1178, 1176, 1180, 1182, -+ 1171, 1184, 1176, 1185, 1186, 1188, 1179, 1183, 1189, 1189, -+ 1190, 1185, 0, 1174, 1181, 1178, 1180, 0, 1183, 1183, -+ 1181, 1191, 1193, 1182, 1195, 1192, 1182, 1194, 1184, 1194, -+ 1185, 1186, 1188, 1197, 1183, 1189, 1190, 1190, 1195, 1191, -+ 1192, 1196, 1203, 1199, 1193, 1198, 1200, 1196, 1191, 1193, -+ 1201, 1195, 1192, 1202, 1194, 1197, 1207, 1198, 1213, 1205, -+ 1197, 1199, 1208, 1201, 1200, 1203, 1205, 1209, 1196, 1203, -+ 1199, 0, 1198, 1200, 1207, 1214, 1213, 1201, 0, 1210, -+ 1212, 1217, 1219, 1207, 1202, 1213, 1205, 1210, 1208, 1208, -+ -+ 1214, 1216, 1212, 1218, 1221, 0, 1223, 1222, 1209, 1225, -+ 1218, 1224, 1214, 1217, 1227, 1210, 1210, 1212, 1217, 1219, -+ 1222, 1226, 1225, 1229, 1210, 1216, 1224, 1230, 1216, 1226, -+ 1218, 1221, 1223, 1223, 1222, 1231, 1225, 1232, 1224, 0, -+ 1227, 1227, 1233, 1234, 1238, 1235, 1229, 1237, 1226, 1233, -+ 1229, 1230, 1235, 1236, 1230, 1241, 1240, 1242, 1247, 1232, -+ 1243, 1258, 1231, 1250, 1232, 1238, 1234, 1240, 1244, 1233, -+ 1234, 1238, 1235, 1254, 1253, 1236, 1256, 1241, 1237, 1243, -+ 1236, 1259, 1241, 1240, 1247, 1247, 1260, 1243, 1242, 1261, -+ 1250, 1264, 1258, 1244, 1261, 1244, 1253, 1260, 1262, 1267, -+ -+ 1254, 1253, 1268, 1256, 1269, 1271, 1270, 1259, 1259, 1272, -+ 1273, 0, 0, 1260, 1275, 1274, 1261, 1269, 1264, 1276, -+ 1262, 1267, 1279, 1275, 1277, 1262, 1267, 1268, 1270, 1268, -+ 1274, 1269, 1271, 1270, 1276, 1278, 1272, 1273, 1280, 1277, -+ 1281, 1275, 1274, 1282, 1279, 1280, 1276, 1283, 1283, 1279, -+ 1278, 1277, 1284, 1286, 1285, 1288, 1286, 1292, 1287, 1284, -+ 1293, 1282, 1278, 0, 1288, 1280, 1290, 1281, 1285, 1291, -+ 1282, 1287, 1289, 1298, 1283, 0, 1296, 1289, 1298, 1284, -+ 1286, 1285, 1288, 1296, 1292, 1287, 1297, 1293, 1290, 1300, -+ 1299, 1291, 1303, 1290, 1301, 1297, 1291, 1299, 1305, 1289, -+ -+ 1298, 1301, 1302, 1296, 1306, 1308, 1309, 1300, 1307, 1312, -+ 1313, 1302, 1310, 1297, 1308, 1309, 1300, 1299, 1303, 1303, -+ 1307, 1301, 1306, 1310, 0, 1305, 1311, 1324, 1314, 1302, -+ 1315, 1306, 1308, 1309, 1311, 1307, 1312, 1314, 1316, 1310, -+ 1317, 1313, 1315, 1319, 1323, 1322, 1316, 1317, 1325, 1326, -+ 1328, 1319, 1322, 1311, 1324, 1314, 1329, 1315, 1326, 1330, -+ 1325, 1331, 0, 1335, 1329, 1316, 1337, 1317, 1323, 1336, -+ 1319, 1323, 1322, 1338, 1336, 1325, 1326, 1328, 1341, 1339, -+ 1343, 1344, 1345, 1329, 1337, 1347, 1330, 1348, 1331, 1335, -+ 1335, 1340, 1343, 1337, 1350, 1338, 1336, 1341, 1346, 1340, -+ -+ 1338, 1339, 1349, 1344, 1345, 1341, 1339, 1343, 1344, 1345, -+ 1346, 1351, 1347, 1352, 1348, 1355, 1350, 1357, 1340, 0, -+ 1356, 1350, 1359, 1358, 0, 1346, 1360, 1362, 1364, 1361, -+ 0, 0, 0, 1349, 1359, 0, 0, 1368, 1351, 1357, -+ 1352, 1358, 1362, 1356, 1357, 1360, 1355, 1356, 1365, 1359, -+ 1358, 1361, 1364, 1360, 1362, 1364, 1361, 1371, 1366, 1367, -+ 1369, 1372, 1365, 1368, 1368, 1371, 1373, 1374, 1372, 1376, -+ 1378, 1375, 1377, 0, 1373, 1365, 1366, 1367, 1369, 1383, -+ 1388, 1381, 1380, 1386, 1371, 1366, 1367, 1369, 1372, 1375, -+ 1386, 1377, 1378, 1373, 1374, 1381, 1376, 1378, 1375, 1377, -+ -+ 1380, 1387, 1389, 1390, 1388, 1391, 1383, 1388, 1381, 1380, -+ 1386, 1392, 1393, 1394, 1395, 0, 1399, 1400, 1404, 1396, -+ 1392, 0, 1405, 1403, 1403, 1393, 1408, 1387, 1387, 1389, -+ 1390, 1405, 1391, 1403, 1412, 0, 1444, 1399, 1392, 1393, -+ 1404, 1395, 1396, 1399, 1394, 1404, 1396, 1406, 1400, 1405, -+ 1403, 1403, 1407, 1408, 1406, 1409, 1410, 1413, 1411, 1414, -+ 1412, 1412, 1415, 1409, 1421, 1407, 1411, 1444, 1413, 1415, -+ 1416, 1416, 1417, 1418, 1406, 1410, 1424, 1426, 1428, 1407, -+ 1418, 1414, 1409, 1410, 1413, 1411, 1414, 1419, 1421, 1415, -+ 1417, 1421, 1423, 1425, 1419, 1426, 1428, 1416, 1429, 1417, -+ -+ 1418, 1423, 1434, 1424, 1426, 1428, 1430, 0, 1430, 1435, -+ 1436, 1440, 1438, 1429, 1419, 1441, 1425, 1443, 1440, 1423, -+ 1425, 1441, 1439, 1442, 1434, 1429, 1443, 1446, 1436, 1434, -+ 1445, 1450, 1445, 1430, 1438, 1435, 1435, 1436, 1440, 1438, -+ 1439, 1449, 1441, 1448, 1443, 1442, 1451, 1453, 1452, 1439, -+ 1442, 1448, 1454, 1449, 1446, 1453, 1455, 1445, 1450, 1452, -+ 1456, 1456, 1457, 1459, 1451, 1462, 1460, 1464, 1449, 1458, -+ 1448, 1454, 1464, 1451, 1453, 1452, 1465, 1458, 1455, 1454, -+ 1466, 1470, 1473, 1455, 1463, 1468, 1471, 1456, 1460, 1457, -+ 1459, 1463, 1462, 1460, 1464, 1469, 1458, 1467, 1475, 1472, -+ -+ 1468, 1471, 1469, 1465, 1473, 1467, 1472, 1466, 1470, 1473, -+ 1474, 1463, 1468, 1471, 1477, 1476, 1476, 1479, 1474, 1480, -+ 1482, 1484, 1469, 1483, 1467, 1476, 1472, 1480, 1485, 1475, -+ 1486, 1487, 1489, 1482, 1491, 1493, 1498, 1474, 0, 1502, -+ 0, 1477, 1476, 1476, 1479, 1483, 1480, 1482, 1484, 1494, -+ 1483, 1497, 1499, 1487, 1502, 1485, 1503, 1486, 1487, 1489, -+ 1491, 1491, 1493, 1498, 1501, 1503, 1502, 1505, 1505, 1504, -+ 1497, 1494, 1511, 1516, 1499, 1506, 1494, 1505, 1497, 1499, -+ 1504, 1506, 1507, 1503, 1512, 1510, 1501, 1518, 1520, 1521, -+ 1524, 1501, 1510, 1525, 1505, 1505, 1504, 1523, 1542, 1511, -+ -+ 1516, 1521, 1506, 1526, 1507, 1526, 1523, 1512, 1532, 1507, -+ 1518, 1512, 1510, 1527, 1518, 1520, 1521, 1524, 1531, 1529, -+ 1525, 1528, 1530, 1534, 1523, 1527, 1531, 1528, 1536, 1542, -+ 1526, 1539, 1538, 0, 1544, 1532, 0, 0, 1543, 0, -+ 1527, 1529, 1559, 1547, 1530, 1531, 1529, 1538, 1528, 1530, -+ 1534, 1543, 1545, 1546, 1547, 1536, 1544, 1539, 1539, 1538, -+ 1545, 1544, 1546, 1551, 1552, 1543, 1554, 1553, 1555, 1559, -+ 1547, 1552, 1556, 1557, 1554, 1557, 1558, 1555, 1560, 1545, -+ 1546, 1553, 1561, 1556, 1562, 1563, 1551, 1563, 1558, 1564, -+ 1551, 1552, 1565, 1554, 1553, 1555, 1560, 1566, 0, 1556, -+ -+ 1557, 1564, 1568, 1558, 1561, 1560, 1562, 1569, 1570, 1561, -+ 1566, 1562, 1563, 1571, 1568, 1569, 1564, 0, 1572, 1573, -+ 1574, 1580, 1575, 1565, 1566, 1588, 1577, 1578, 1574, 1568, -+ 1576, 1572, 0, 1573, 1569, 1575, 1581, 1589, 1576, 1570, -+ 1577, 1578, 1579, 1580, 1571, 1572, 1573, 1574, 1580, 1575, -+ 1579, 1582, 1584, 1577, 1578, 1583, 1588, 1576, 1581, 1582, -+ 1587, 1585, 1586, 1581, 1589, 1590, 1593, 1591, 1587, 1579, -+ 0, 0, 1592, 1597, 1584, 1591, 0, 1595, 1582, 1584, -+ 1592, 1583, 1583, 1585, 1586, 1590, 1601, 1587, 1585, 1586, -+ 1594, 1595, 1590, 1598, 1591, 1597, 1602, 1593, 1594, 1592, -+ -+ 1597, 1598, 1599, 1603, 1595, 1600, 0, 1604, 0, 1605, -+ 1599, 1603, 1601, 1601, 0, 1606, 1608, 1594, 1602, 1600, -+ 1598, 1607, 1609, 1602, 1608, 1610, 1611, 0, 1613, 1599, -+ 1603, 1612, 1600, 1604, 1604, 1605, 1605, 1606, 1616, 1612, -+ 1617, 1607, 1606, 1608, 1620, 1610, 1611, 0, 1607, 1609, -+ 1613, 1614, 1610, 1611, 1623, 1613, 1618, 1624, 1612, 1614, -+ 1616, 1619, 1617, 1626, 1618, 1616, 1621, 1617, 1622, 1619, -+ 1620, 1620, 1625, 1627, 1621, 0, 1622, 1628, 1614, 1630, -+ 1623, 1623, 1636, 1618, 1624, 1633, 1634, 1637, 1619, 0, -+ 1626, 0, 1625, 1621, 1634, 1622, 0, 1628, 0, 1625, -+ -+ 1627, 1630, 1635, 0, 1628, 0, 1630, 1633, 0, 1636, -+ 1635, 0, 1633, 1634, 1637, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, -+ 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1642, 1642, 1642, -+ 1642, 1642, 1642, 1642, 1643, 1643, 1643, 1643, 1643, 1643, -+ 1643, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1645, 1645, -+ 1645, 1645, 1645, 1645, 1645, 1647, 1647, 0, 1647, 1647, -+ 1647, 1647, 1648, 1648, 0, 0, 0, 1648, 1648, 1649, -+ 1649, 0, 0, 1649, 0, 1649, 1650, 0, 0, 0, -+ 0, 0, 1650, 1651, 1651, 0, 0, 0, 1651, 1651, -+ -+ 1652, 0, 0, 0, 0, 0, 1652, 1653, 1653, 0, -+ 1653, 1653, 1653, 1653, 1654, 1654, 0, 1654, 1654, 1654, -+ 1654, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, -+ 1640, 1640, 1640, 1640, 1640, 1640, 1640 - } ; - - static yy_state_type yy_last_accepting_state; -@@ -2218,7 +2229,7 @@ static void config_end_include(void) - #define YY_NO_INPUT 1 - #endif - --#line 2220 "" -+#line 2231 "" - - #define INITIAL 0 - #define quotedstring 1 -@@ -2405,7 +2416,7 @@ YY_DECL - - #line 197 "util/configlexer.lex" - --#line 2407 "" -+#line 2418 "" - - if ( !(yy_init) ) - { -@@ -2464,13 +2475,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 >= 1628 ) -+ if ( yy_current_state >= 1641 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } -- while ( yy_base[yy_current_state] != 4681 ); -+ while ( yy_base[yy_current_state] != 4722 ); - - yy_find_action: - yy_act = yy_accept[yy_current_state]; -@@ -2705,555 +2716,560 @@ YY_RULE_SETUP - case 42: - YY_RULE_SETUP - #line 242 "util/configlexer.lex" --{ YDVAR(1, VAR_CACHE_MIN_TTL) } -+{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } - YY_BREAK - case 43: - YY_RULE_SETUP - #line 243 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_HOST_TTL) } -+{ YDVAR(1, VAR_CACHE_MIN_TTL) } - YY_BREAK - case 44: - YY_RULE_SETUP - #line 244 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_LAME_TTL) } -+{ YDVAR(1, VAR_INFRA_HOST_TTL) } - YY_BREAK - case 45: - YY_RULE_SETUP - #line 245 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } -+{ YDVAR(1, VAR_INFRA_LAME_TTL) } - YY_BREAK - case 46: - YY_RULE_SETUP - #line 246 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } -+{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } - YY_BREAK - case 47: - YY_RULE_SETUP - #line 247 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } -+{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } - YY_BREAK - case 48: - YY_RULE_SETUP - #line 248 "util/configlexer.lex" --{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } -+{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } - YY_BREAK - case 49: - YY_RULE_SETUP - #line 249 "util/configlexer.lex" --{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } -+{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } - YY_BREAK - case 50: - YY_RULE_SETUP - #line 250 "util/configlexer.lex" --{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } -+{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } - YY_BREAK - case 51: - YY_RULE_SETUP - #line 251 "util/configlexer.lex" --{ YDVAR(1, VAR_DELAY_CLOSE) } -+{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } - YY_BREAK - case 52: - YY_RULE_SETUP - #line 252 "util/configlexer.lex" --{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } -+{ YDVAR(1, VAR_DELAY_CLOSE) } - YY_BREAK - case 53: - YY_RULE_SETUP - #line 253 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } -+{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } - YY_BREAK - case 54: - YY_RULE_SETUP - #line 254 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } -+{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } - YY_BREAK - case 55: - YY_RULE_SETUP - #line 255 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_GLUE) } -+{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } - YY_BREAK - case 56: - YY_RULE_SETUP - #line 256 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } -+{ YDVAR(1, VAR_HARDEN_GLUE) } - YY_BREAK - case 57: - YY_RULE_SETUP - #line 257 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } -+{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } - YY_BREAK - case 58: - YY_RULE_SETUP - #line 258 "util/configlexer.lex" --{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } -+{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } - YY_BREAK - case 59: - YY_RULE_SETUP - #line 259 "util/configlexer.lex" --{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } -+{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } - YY_BREAK - case 60: - YY_RULE_SETUP - #line 260 "util/configlexer.lex" --{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } -+{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } - YY_BREAK - case 61: - YY_RULE_SETUP - #line 261 "util/configlexer.lex" --{ YDVAR(1, VAR_PRIVATE_ADDRESS) } -+{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } - YY_BREAK - case 62: - YY_RULE_SETUP - #line 262 "util/configlexer.lex" --{ YDVAR(1, VAR_PRIVATE_DOMAIN) } -+{ YDVAR(1, VAR_PRIVATE_ADDRESS) } - YY_BREAK - case 63: - YY_RULE_SETUP - #line 263 "util/configlexer.lex" --{ YDVAR(1, VAR_PREFETCH_KEY) } -+{ YDVAR(1, VAR_PRIVATE_DOMAIN) } - YY_BREAK - case 64: - YY_RULE_SETUP - #line 264 "util/configlexer.lex" --{ YDVAR(1, VAR_PREFETCH) } -+{ YDVAR(1, VAR_PREFETCH_KEY) } - YY_BREAK - case 65: - YY_RULE_SETUP - #line 265 "util/configlexer.lex" --{ YDVAR(0, VAR_STUB_ZONE) } -+{ YDVAR(1, VAR_PREFETCH) } - YY_BREAK - case 66: - YY_RULE_SETUP - #line 266 "util/configlexer.lex" --{ YDVAR(1, VAR_NAME) } -+{ YDVAR(0, VAR_STUB_ZONE) } - YY_BREAK - case 67: - YY_RULE_SETUP - #line 267 "util/configlexer.lex" --{ YDVAR(1, VAR_STUB_ADDR) } -+{ YDVAR(1, VAR_NAME) } - YY_BREAK - case 68: - YY_RULE_SETUP - #line 268 "util/configlexer.lex" --{ YDVAR(1, VAR_STUB_HOST) } -+{ YDVAR(1, VAR_STUB_ADDR) } - YY_BREAK - case 69: - YY_RULE_SETUP - #line 269 "util/configlexer.lex" --{ YDVAR(1, VAR_STUB_PRIME) } -+{ YDVAR(1, VAR_STUB_HOST) } - YY_BREAK - case 70: - YY_RULE_SETUP - #line 270 "util/configlexer.lex" --{ YDVAR(1, VAR_STUB_FIRST) } -+{ YDVAR(1, VAR_STUB_PRIME) } - YY_BREAK - case 71: - YY_RULE_SETUP - #line 271 "util/configlexer.lex" --{ YDVAR(0, VAR_FORWARD_ZONE) } -+{ YDVAR(1, VAR_STUB_FIRST) } - YY_BREAK - case 72: - YY_RULE_SETUP - #line 272 "util/configlexer.lex" --{ YDVAR(1, VAR_FORWARD_ADDR) } -+{ YDVAR(0, VAR_FORWARD_ZONE) } - YY_BREAK - case 73: - YY_RULE_SETUP - #line 273 "util/configlexer.lex" --{ YDVAR(1, VAR_FORWARD_HOST) } -+{ YDVAR(1, VAR_FORWARD_ADDR) } - YY_BREAK - case 74: - YY_RULE_SETUP - #line 274 "util/configlexer.lex" --{ YDVAR(1, VAR_FORWARD_FIRST) } -+{ YDVAR(1, VAR_FORWARD_HOST) } - YY_BREAK - case 75: - YY_RULE_SETUP - #line 275 "util/configlexer.lex" --{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } -+{ YDVAR(1, VAR_FORWARD_FIRST) } - YY_BREAK - case 76: - YY_RULE_SETUP - #line 276 "util/configlexer.lex" --{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } -+{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } - YY_BREAK - case 77: - YY_RULE_SETUP - #line 277 "util/configlexer.lex" --{ YDVAR(2, VAR_ACCESS_CONTROL) } -+{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } - YY_BREAK - case 78: - YY_RULE_SETUP - #line 278 "util/configlexer.lex" --{ YDVAR(1, VAR_HIDE_IDENTITY) } -+{ YDVAR(2, VAR_ACCESS_CONTROL) } - YY_BREAK - case 79: - YY_RULE_SETUP - #line 279 "util/configlexer.lex" --{ YDVAR(1, VAR_HIDE_VERSION) } -+{ YDVAR(1, VAR_HIDE_IDENTITY) } - YY_BREAK - case 80: - YY_RULE_SETUP - #line 280 "util/configlexer.lex" --{ YDVAR(1, VAR_IDENTITY) } -+{ YDVAR(1, VAR_HIDE_VERSION) } - YY_BREAK - case 81: - YY_RULE_SETUP - #line 281 "util/configlexer.lex" --{ YDVAR(1, VAR_VERSION) } -+{ YDVAR(1, VAR_IDENTITY) } - YY_BREAK - case 82: - YY_RULE_SETUP - #line 282 "util/configlexer.lex" --{ YDVAR(1, VAR_MODULE_CONF) } -+{ YDVAR(1, VAR_VERSION) } - YY_BREAK - case 83: - YY_RULE_SETUP - #line 283 "util/configlexer.lex" --{ YDVAR(1, VAR_DLV_ANCHOR) } -+{ YDVAR(1, VAR_MODULE_CONF) } - YY_BREAK - case 84: - YY_RULE_SETUP - #line 284 "util/configlexer.lex" --{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } -+{ YDVAR(1, VAR_DLV_ANCHOR) } - YY_BREAK - case 85: - YY_RULE_SETUP - #line 285 "util/configlexer.lex" --{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } -+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } - YY_BREAK - case 86: - YY_RULE_SETUP - #line 286 "util/configlexer.lex" --{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } -+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } - YY_BREAK - case 87: - YY_RULE_SETUP - #line 287 "util/configlexer.lex" --{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } -+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } - YY_BREAK - case 88: - YY_RULE_SETUP - #line 288 "util/configlexer.lex" --{ YDVAR(1, VAR_TRUST_ANCHOR) } -+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } - YY_BREAK - case 89: - YY_RULE_SETUP - #line 289 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } -+{ YDVAR(1, VAR_TRUST_ANCHOR) } - YY_BREAK - case 90: - YY_RULE_SETUP - #line 290 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } -+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } - YY_BREAK - case 91: - YY_RULE_SETUP - #line 291 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } -+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } - YY_BREAK - case 92: - YY_RULE_SETUP - #line 292 "util/configlexer.lex" --{ YDVAR(1, VAR_BOGUS_TTL) } -+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } - YY_BREAK - case 93: - YY_RULE_SETUP - #line 293 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } -+{ YDVAR(1, VAR_BOGUS_TTL) } - YY_BREAK - case 94: - YY_RULE_SETUP - #line 294 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } -+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } - YY_BREAK - case 95: - YY_RULE_SETUP - #line 295 "util/configlexer.lex" --{ YDVAR(1, VAR_IGNORE_CD_FLAG) } -+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } - YY_BREAK - case 96: - YY_RULE_SETUP - #line 296 "util/configlexer.lex" --{ YDVAR(1, VAR_VAL_LOG_LEVEL) } -+{ YDVAR(1, VAR_IGNORE_CD_FLAG) } - YY_BREAK - case 97: - YY_RULE_SETUP - #line 297 "util/configlexer.lex" --{ YDVAR(1, VAR_KEY_CACHE_SIZE) } -+{ YDVAR(1, VAR_VAL_LOG_LEVEL) } - YY_BREAK - case 98: - YY_RULE_SETUP - #line 298 "util/configlexer.lex" --{ YDVAR(1, VAR_KEY_CACHE_SLABS) } -+{ YDVAR(1, VAR_KEY_CACHE_SIZE) } - YY_BREAK - case 99: - YY_RULE_SETUP - #line 299 "util/configlexer.lex" --{ YDVAR(1, VAR_NEG_CACHE_SIZE) } -+{ YDVAR(1, VAR_KEY_CACHE_SLABS) } - YY_BREAK - case 100: - YY_RULE_SETUP - #line 300 "util/configlexer.lex" --{ -- YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } -+{ YDVAR(1, VAR_NEG_CACHE_SIZE) } - YY_BREAK - case 101: - YY_RULE_SETUP --#line 302 "util/configlexer.lex" --{ YDVAR(1, VAR_ADD_HOLDDOWN) } -+#line 301 "util/configlexer.lex" -+{ -+ YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } - YY_BREAK - case 102: - YY_RULE_SETUP - #line 303 "util/configlexer.lex" --{ YDVAR(1, VAR_DEL_HOLDDOWN) } -+{ YDVAR(1, VAR_ADD_HOLDDOWN) } - YY_BREAK - case 103: - YY_RULE_SETUP - #line 304 "util/configlexer.lex" --{ YDVAR(1, VAR_KEEP_MISSING) } -+{ YDVAR(1, VAR_DEL_HOLDDOWN) } - YY_BREAK - case 104: - YY_RULE_SETUP - #line 305 "util/configlexer.lex" --{ YDVAR(1, VAR_USE_SYSLOG) } -+{ YDVAR(1, VAR_KEEP_MISSING) } - YY_BREAK - case 105: - YY_RULE_SETUP - #line 306 "util/configlexer.lex" --{ YDVAR(1, VAR_LOG_TIME_ASCII) } -+{ YDVAR(1, VAR_USE_SYSLOG) } - YY_BREAK - case 106: - YY_RULE_SETUP - #line 307 "util/configlexer.lex" --{ YDVAR(1, VAR_LOG_QUERIES) } -+{ YDVAR(1, VAR_LOG_TIME_ASCII) } - YY_BREAK - case 107: - YY_RULE_SETUP - #line 308 "util/configlexer.lex" --{ YDVAR(2, VAR_LOCAL_ZONE) } -+{ YDVAR(1, VAR_LOG_QUERIES) } - YY_BREAK - case 108: - YY_RULE_SETUP - #line 309 "util/configlexer.lex" --{ YDVAR(1, VAR_LOCAL_DATA) } -+{ YDVAR(2, VAR_LOCAL_ZONE) } - YY_BREAK - case 109: - YY_RULE_SETUP - #line 310 "util/configlexer.lex" --{ YDVAR(1, VAR_LOCAL_DATA_PTR) } -+{ YDVAR(1, VAR_LOCAL_DATA) } - YY_BREAK - case 110: - YY_RULE_SETUP - #line 311 "util/configlexer.lex" --{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } -+{ YDVAR(1, VAR_LOCAL_DATA_PTR) } - YY_BREAK - case 111: - YY_RULE_SETUP - #line 312 "util/configlexer.lex" --{ YDVAR(1, VAR_STATISTICS_INTERVAL) } -+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } - YY_BREAK - case 112: - YY_RULE_SETUP - #line 313 "util/configlexer.lex" --{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } -+{ YDVAR(1, VAR_STATISTICS_INTERVAL) } - YY_BREAK - case 113: - YY_RULE_SETUP - #line 314 "util/configlexer.lex" --{ YDVAR(1, VAR_EXTENDED_STATISTICS) } -+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } - YY_BREAK - case 114: - YY_RULE_SETUP - #line 315 "util/configlexer.lex" --{ YDVAR(0, VAR_REMOTE_CONTROL) } -+{ YDVAR(1, VAR_EXTENDED_STATISTICS) } - YY_BREAK - case 115: - YY_RULE_SETUP - #line 316 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_ENABLE) } -+{ YDVAR(0, VAR_REMOTE_CONTROL) } - YY_BREAK - case 116: - YY_RULE_SETUP - #line 317 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_INTERFACE) } -+{ YDVAR(1, VAR_CONTROL_ENABLE) } - YY_BREAK - case 117: - YY_RULE_SETUP - #line 318 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_PORT) } -+{ YDVAR(1, VAR_CONTROL_INTERFACE) } - YY_BREAK - case 118: - YY_RULE_SETUP - #line 319 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_USE_CERT) } -+{ YDVAR(1, VAR_CONTROL_PORT) } - YY_BREAK - case 119: - YY_RULE_SETUP - #line 320 "util/configlexer.lex" --{ YDVAR(1, VAR_SERVER_KEY_FILE) } -+{ YDVAR(1, VAR_CONTROL_USE_CERT) } - YY_BREAK - case 120: - YY_RULE_SETUP - #line 321 "util/configlexer.lex" --{ YDVAR(1, VAR_SERVER_CERT_FILE) } -+{ YDVAR(1, VAR_SERVER_KEY_FILE) } - YY_BREAK - case 121: - YY_RULE_SETUP - #line 322 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_KEY_FILE) } -+{ YDVAR(1, VAR_SERVER_CERT_FILE) } - YY_BREAK - case 122: - YY_RULE_SETUP - #line 323 "util/configlexer.lex" --{ YDVAR(1, VAR_CONTROL_CERT_FILE) } -+{ YDVAR(1, VAR_CONTROL_KEY_FILE) } - YY_BREAK - case 123: - YY_RULE_SETUP - #line 324 "util/configlexer.lex" --{ YDVAR(1, VAR_PYTHON_SCRIPT) } -+{ YDVAR(1, VAR_CONTROL_CERT_FILE) } - YY_BREAK - case 124: - YY_RULE_SETUP - #line 325 "util/configlexer.lex" --{ YDVAR(0, VAR_PYTHON) } -+{ YDVAR(1, VAR_PYTHON_SCRIPT) } - YY_BREAK - case 125: - YY_RULE_SETUP - #line 326 "util/configlexer.lex" --{ YDVAR(1, VAR_DOMAIN_INSECURE) } -+{ YDVAR(0, VAR_PYTHON) } - YY_BREAK - case 126: - YY_RULE_SETUP - #line 327 "util/configlexer.lex" --{ YDVAR(1, VAR_MINIMAL_RESPONSES) } -+{ YDVAR(1, VAR_DOMAIN_INSECURE) } - YY_BREAK - case 127: - YY_RULE_SETUP - #line 328 "util/configlexer.lex" --{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } -+{ YDVAR(1, VAR_MINIMAL_RESPONSES) } - YY_BREAK - case 128: - YY_RULE_SETUP - #line 329 "util/configlexer.lex" --{ YDVAR(1, VAR_MAX_UDP_SIZE) } -+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } - YY_BREAK - case 129: - YY_RULE_SETUP - #line 330 "util/configlexer.lex" --{ YDVAR(1, VAR_DNS64_PREFIX) } -+{ YDVAR(1, VAR_MAX_UDP_SIZE) } - YY_BREAK - case 130: - YY_RULE_SETUP - #line 331 "util/configlexer.lex" --{ YDVAR(1, VAR_DNS64_SYNTHALL) } -+{ YDVAR(1, VAR_DNS64_PREFIX) } - YY_BREAK - case 131: - YY_RULE_SETUP - #line 332 "util/configlexer.lex" --{ YDVAR(0, VAR_DNSTAP) } -+{ YDVAR(1, VAR_DNS64_SYNTHALL) } - YY_BREAK - case 132: - YY_RULE_SETUP - #line 333 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_ENABLE) } -+{ YDVAR(0, VAR_DNSTAP) } - YY_BREAK - case 133: - YY_RULE_SETUP - #line 334 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } -+{ YDVAR(1, VAR_DNSTAP_ENABLE) } - YY_BREAK - case 134: - YY_RULE_SETUP - #line 335 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } -+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } - YY_BREAK - case 135: - YY_RULE_SETUP - #line 336 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } -+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } - YY_BREAK - case 136: - YY_RULE_SETUP - #line 337 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_IDENTITY) } -+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } - YY_BREAK - case 137: - YY_RULE_SETUP - #line 338 "util/configlexer.lex" --{ YDVAR(1, VAR_DNSTAP_VERSION) } -+{ YDVAR(1, VAR_DNSTAP_IDENTITY) } - YY_BREAK - case 138: - YY_RULE_SETUP - #line 339 "util/configlexer.lex" -+{ YDVAR(1, VAR_DNSTAP_VERSION) } -+ YY_BREAK -+case 139: -+YY_RULE_SETUP -+#line 340 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } - YY_BREAK --case 139: -+case 140: - YY_RULE_SETUP --#line 341 "util/configlexer.lex" -+#line 342 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } - YY_BREAK --case 140: -+case 141: - YY_RULE_SETUP --#line 343 "util/configlexer.lex" -+#line 344 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } - YY_BREAK --case 141: -+case 142: - YY_RULE_SETUP --#line 345 "util/configlexer.lex" -+#line 346 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } - YY_BREAK --case 142: -+case 143: - YY_RULE_SETUP --#line 347 "util/configlexer.lex" -+#line 348 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } - YY_BREAK --case 143: -+case 144: - YY_RULE_SETUP --#line 349 "util/configlexer.lex" -+#line 350 "util/configlexer.lex" - { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } - YY_BREAK --case 144: --/* rule 144 can match eol */ -+case 145: -+/* rule 145 can match eol */ - YY_RULE_SETUP --#line 351 "util/configlexer.lex" -+#line 352 "util/configlexer.lex" - { LEXOUT(("NL\n")); cfg_parser->line++; } - YY_BREAK - /* Quoted strings. Strip leading and ending quotes */ --case 145: -+case 146: - YY_RULE_SETUP --#line 354 "util/configlexer.lex" -+#line 355 "util/configlexer.lex" - { BEGIN(quotedstring); LEXOUT(("QS ")); } - YY_BREAK - case YY_STATE_EOF(quotedstring): --#line 355 "util/configlexer.lex" -+#line 356 "util/configlexer.lex" - { - yyerror("EOF inside quoted string"); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } - } - YY_BREAK --case 146: -+case 147: - YY_RULE_SETUP --#line 360 "util/configlexer.lex" -+#line 361 "util/configlexer.lex" - { LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK --case 147: --/* rule 147 can match eol */ -+case 148: -+/* rule 148 can match eol */ - YY_RULE_SETUP --#line 361 "util/configlexer.lex" -+#line 362 "util/configlexer.lex" - { yyerror("newline inside quoted string, no end \""); - cfg_parser->line++; BEGIN(INITIAL); } - YY_BREAK --case 148: -+case 149: - YY_RULE_SETUP --#line 363 "util/configlexer.lex" -+#line 364 "util/configlexer.lex" - { - LEXOUT(("QE ")); - if(--num_args == 0) { BEGIN(INITIAL); } -@@ -3266,34 +3282,34 @@ YY_RULE_SETUP - } - YY_BREAK - /* Single Quoted strings. Strip leading and ending quotes */ --case 149: -+case 150: - YY_RULE_SETUP --#line 375 "util/configlexer.lex" -+#line 376 "util/configlexer.lex" - { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } - YY_BREAK - case YY_STATE_EOF(singlequotedstr): --#line 376 "util/configlexer.lex" -+#line 377 "util/configlexer.lex" - { - yyerror("EOF inside quoted string"); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } - } - YY_BREAK --case 150: -+case 151: - YY_RULE_SETUP --#line 381 "util/configlexer.lex" -+#line 382 "util/configlexer.lex" - { LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK --case 151: --/* rule 151 can match eol */ -+case 152: -+/* rule 152 can match eol */ - YY_RULE_SETUP --#line 382 "util/configlexer.lex" -+#line 383 "util/configlexer.lex" - { yyerror("newline inside quoted string, no end '"); - cfg_parser->line++; BEGIN(INITIAL); } - YY_BREAK --case 152: -+case 153: - YY_RULE_SETUP --#line 384 "util/configlexer.lex" -+#line 385 "util/configlexer.lex" - { - LEXOUT(("SQE ")); - if(--num_args == 0) { BEGIN(INITIAL); } -@@ -3306,38 +3322,38 @@ YY_RULE_SETUP - } - YY_BREAK - /* include: directive */ --case 153: -+case 154: - YY_RULE_SETUP --#line 396 "util/configlexer.lex" -+#line 397 "util/configlexer.lex" - { - LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } - YY_BREAK - case YY_STATE_EOF(include): --#line 398 "util/configlexer.lex" -+#line 399 "util/configlexer.lex" - { - yyerror("EOF inside include directive"); - BEGIN(inc_prev); - } - YY_BREAK --case 154: --YY_RULE_SETUP --#line 402 "util/configlexer.lex" --{ LEXOUT(("ISP ")); /* ignore */ } -- YY_BREAK - case 155: --/* rule 155 can match eol */ - YY_RULE_SETUP - #line 403 "util/configlexer.lex" --{ LEXOUT(("NL\n")); cfg_parser->line++;} -+{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK - case 156: -+/* rule 156 can match eol */ - YY_RULE_SETUP - #line 404 "util/configlexer.lex" --{ LEXOUT(("IQS ")); BEGIN(include_quoted); } -+{ LEXOUT(("NL\n")); cfg_parser->line++;} - YY_BREAK - case 157: - YY_RULE_SETUP - #line 405 "util/configlexer.lex" -+{ LEXOUT(("IQS ")); BEGIN(include_quoted); } -+ YY_BREAK -+case 158: -+YY_RULE_SETUP -+#line 406 "util/configlexer.lex" - { - LEXOUT(("Iunquotedstr(%s) ", yytext)); - config_start_include_glob(yytext); -@@ -3345,27 +3361,27 @@ YY_RULE_SETUP - } - YY_BREAK - case YY_STATE_EOF(include_quoted): --#line 410 "util/configlexer.lex" -+#line 411 "util/configlexer.lex" - { - yyerror("EOF inside quoted string"); - BEGIN(inc_prev); - } - YY_BREAK --case 158: -+case 159: - YY_RULE_SETUP --#line 414 "util/configlexer.lex" -+#line 415 "util/configlexer.lex" - { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK --case 159: --/* rule 159 can match eol */ -+case 160: -+/* rule 160 can match eol */ - YY_RULE_SETUP --#line 415 "util/configlexer.lex" -+#line 416 "util/configlexer.lex" - { yyerror("newline before \" in include name"); - cfg_parser->line++; BEGIN(inc_prev); } - YY_BREAK --case 160: -+case 161: - YY_RULE_SETUP --#line 417 "util/configlexer.lex" -+#line 418 "util/configlexer.lex" - { - LEXOUT(("IQE ")); - yytext[yyleng - 1] = '\0'; -@@ -3375,7 +3391,7 @@ YY_RULE_SETUP - YY_BREAK - case YY_STATE_EOF(INITIAL): - case YY_STATE_EOF(val): --#line 423 "util/configlexer.lex" -+#line 424 "util/configlexer.lex" - { - LEXOUT(("LEXEOF ")); - yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ -@@ -3387,33 +3403,33 @@ case YY_STATE_EOF(val): - } - } - YY_BREAK --case 161: -+case 162: - YY_RULE_SETUP --#line 434 "util/configlexer.lex" -+#line 435 "util/configlexer.lex" - { LEXOUT(("unquotedstr(%s) ", yytext)); - if(--num_args == 0) { BEGIN(INITIAL); } - yylval.str = strdup(yytext); return STRING_ARG; } - YY_BREAK --case 162: -+case 163: - YY_RULE_SETUP --#line 438 "util/configlexer.lex" -+#line 439 "util/configlexer.lex" - { - ub_c_error_msg("unknown keyword '%s'", yytext); - } - YY_BREAK --case 163: -+case 164: - YY_RULE_SETUP --#line 442 "util/configlexer.lex" -+#line 443 "util/configlexer.lex" - { - ub_c_error_msg("stray '%s'", yytext); - } - YY_BREAK --case 164: -+case 165: - YY_RULE_SETUP --#line 446 "util/configlexer.lex" -+#line 447 "util/configlexer.lex" - ECHO; - YY_BREAK --#line 3415 "" -+#line 3431 "" - - case YY_END_OF_BUFFER: - { -@@ -3703,7 +3719,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 >= 1628 ) -+ if ( yy_current_state >= 1641 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; -@@ -3731,11 +3747,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 >= 1628 ) -+ if ( yy_current_state >= 1641 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; -- yy_is_jam = (yy_current_state == 1627); -+ yy_is_jam = (yy_current_state == 1640); - - return yy_is_jam ? 0 : yy_current_state; - } -@@ -4368,7 +4384,7 @@ void yyfree (void * ptr ) - - #define YYTABLES_NAME "yytables" - --#line 446 "util/configlexer.lex" -+#line 447 "util/configlexer.lex" - - - -diff --git a/util/configparser.c b/util/configparser.c -index 0d7328f..e0dd1f2 100644 ---- a/util/configparser.c -+++ b/util/configparser.c -@@ -1,19 +1,19 @@ --/* A Bison parser, made by GNU Bison 2.7. */ -+/* A Bison parser, made by GNU Bison 3.0.2. */ - - /* Bison implementation for Yacc-like parsers in C -- -- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. -- -+ -+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. -+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. -- -+ - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -- -+ - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -@@ -26,7 +26,7 @@ - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. -- -+ - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -@@ -44,7 +44,7 @@ - #define YYBISON 1 - - /* Bison version. */ --#define YYBISON_VERSION "2.7" -+#define YYBISON_VERSION "3.0.2" - - /* Skeleton name. */ - #define YYSKELETON_NAME "yacc.c" -@@ -62,8 +62,7 @@ - - - /* Copy the first part of user declarations. */ --/* Line 371 of yacc.c */ --#line 38 "util/configparser.y" -+#line 38 "util/configparser.y" /* yacc.c:339 */ - - #include "config.h" - -@@ -90,14 +89,13 @@ extern struct config_parser_state* cfg_parser; - #endif - - --/* Line 371 of yacc.c */ --#line 95 "util/configparser.c" -+#line 93 "util/configparser.c" /* yacc.c:339 */ - --# ifndef YY_NULL -+# ifndef YY_NULLPTR - # if defined __cplusplus && 201103L <= __cplusplus --# define YY_NULL nullptr -+# define YY_NULLPTR nullptr - # else --# define YY_NULL 0 -+# define YY_NULLPTR 0 - # endif - # endif - -@@ -113,7 +111,7 @@ extern struct config_parser_state* cfg_parser; - by #include "configparser.h". */ - #ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED - # define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED --/* Enabling traces. */ -+/* Debug traces. */ - #ifndef YYDEBUG - # define YYDEBUG 0 - #endif -@@ -121,161 +119,161 @@ extern struct config_parser_state* cfg_parser; - extern int yydebug; - #endif - --/* Tokens. */ -+/* Token type. */ - #ifndef YYTOKENTYPE - # define YYTOKENTYPE -- /* Put the tokens into the symbol table, so that GDB and other debuggers -- know about them. */ -- enum yytokentype { -- SPACE = 258, -- LETTER = 259, -- NEWLINE = 260, -- COMMENT = 261, -- COLON = 262, -- ANY = 263, -- ZONESTR = 264, -- STRING_ARG = 265, -- VAR_SERVER = 266, -- VAR_VERBOSITY = 267, -- VAR_NUM_THREADS = 268, -- VAR_PORT = 269, -- VAR_OUTGOING_RANGE = 270, -- VAR_INTERFACE = 271, -- VAR_DO_IP4 = 272, -- VAR_DO_IP6 = 273, -- VAR_DO_UDP = 274, -- VAR_DO_TCP = 275, -- VAR_CHROOT = 276, -- VAR_USERNAME = 277, -- VAR_DIRECTORY = 278, -- VAR_LOGFILE = 279, -- VAR_PIDFILE = 280, -- VAR_MSG_CACHE_SIZE = 281, -- VAR_MSG_CACHE_SLABS = 282, -- VAR_NUM_QUERIES_PER_THREAD = 283, -- VAR_RRSET_CACHE_SIZE = 284, -- VAR_RRSET_CACHE_SLABS = 285, -- VAR_OUTGOING_NUM_TCP = 286, -- VAR_INFRA_HOST_TTL = 287, -- VAR_INFRA_LAME_TTL = 288, -- VAR_INFRA_CACHE_SLABS = 289, -- VAR_INFRA_CACHE_NUMHOSTS = 290, -- VAR_INFRA_CACHE_LAME_SIZE = 291, -- VAR_NAME = 292, -- VAR_STUB_ZONE = 293, -- VAR_STUB_HOST = 294, -- VAR_STUB_ADDR = 295, -- VAR_TARGET_FETCH_POLICY = 296, -- VAR_HARDEN_SHORT_BUFSIZE = 297, -- VAR_HARDEN_LARGE_QUERIES = 298, -- VAR_FORWARD_ZONE = 299, -- VAR_FORWARD_HOST = 300, -- VAR_FORWARD_ADDR = 301, -- VAR_DO_NOT_QUERY_ADDRESS = 302, -- VAR_HIDE_IDENTITY = 303, -- VAR_HIDE_VERSION = 304, -- VAR_IDENTITY = 305, -- VAR_VERSION = 306, -- VAR_HARDEN_GLUE = 307, -- VAR_MODULE_CONF = 308, -- VAR_TRUST_ANCHOR_FILE = 309, -- VAR_TRUST_ANCHOR = 310, -- VAR_VAL_OVERRIDE_DATE = 311, -- VAR_BOGUS_TTL = 312, -- VAR_VAL_CLEAN_ADDITIONAL = 313, -- VAR_VAL_PERMISSIVE_MODE = 314, -- VAR_INCOMING_NUM_TCP = 315, -- VAR_MSG_BUFFER_SIZE = 316, -- VAR_KEY_CACHE_SIZE = 317, -- VAR_KEY_CACHE_SLABS = 318, -- VAR_TRUSTED_KEYS_FILE = 319, -- VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, -- VAR_USE_SYSLOG = 321, -- VAR_OUTGOING_INTERFACE = 322, -- VAR_ROOT_HINTS = 323, -- VAR_DO_NOT_QUERY_LOCALHOST = 324, -- VAR_CACHE_MAX_TTL = 325, -- VAR_HARDEN_DNSSEC_STRIPPED = 326, -- VAR_ACCESS_CONTROL = 327, -- VAR_LOCAL_ZONE = 328, -- VAR_LOCAL_DATA = 329, -- VAR_INTERFACE_AUTOMATIC = 330, -- VAR_STATISTICS_INTERVAL = 331, -- VAR_DO_DAEMONIZE = 332, -- VAR_USE_CAPS_FOR_ID = 333, -- VAR_STATISTICS_CUMULATIVE = 334, -- VAR_OUTGOING_PORT_PERMIT = 335, -- VAR_OUTGOING_PORT_AVOID = 336, -- VAR_DLV_ANCHOR_FILE = 337, -- VAR_DLV_ANCHOR = 338, -- VAR_NEG_CACHE_SIZE = 339, -- VAR_HARDEN_REFERRAL_PATH = 340, -- VAR_PRIVATE_ADDRESS = 341, -- VAR_PRIVATE_DOMAIN = 342, -- VAR_REMOTE_CONTROL = 343, -- VAR_CONTROL_ENABLE = 344, -- VAR_CONTROL_INTERFACE = 345, -- VAR_CONTROL_PORT = 346, -- VAR_SERVER_KEY_FILE = 347, -- VAR_SERVER_CERT_FILE = 348, -- VAR_CONTROL_KEY_FILE = 349, -- VAR_CONTROL_CERT_FILE = 350, -- VAR_CONTROL_USE_CERT = 351, -- VAR_EXTENDED_STATISTICS = 352, -- VAR_LOCAL_DATA_PTR = 353, -- VAR_JOSTLE_TIMEOUT = 354, -- VAR_STUB_PRIME = 355, -- VAR_UNWANTED_REPLY_THRESHOLD = 356, -- VAR_LOG_TIME_ASCII = 357, -- VAR_DOMAIN_INSECURE = 358, -- VAR_PYTHON = 359, -- VAR_PYTHON_SCRIPT = 360, -- VAR_VAL_SIG_SKEW_MIN = 361, -- VAR_VAL_SIG_SKEW_MAX = 362, -- VAR_CACHE_MIN_TTL = 363, -- VAR_VAL_LOG_LEVEL = 364, -- VAR_AUTO_TRUST_ANCHOR_FILE = 365, -- VAR_KEEP_MISSING = 366, -- VAR_ADD_HOLDDOWN = 367, -- VAR_DEL_HOLDDOWN = 368, -- VAR_SO_RCVBUF = 369, -- VAR_EDNS_BUFFER_SIZE = 370, -- VAR_PREFETCH = 371, -- VAR_PREFETCH_KEY = 372, -- VAR_SO_SNDBUF = 373, -- VAR_SO_REUSEPORT = 374, -- VAR_HARDEN_BELOW_NXDOMAIN = 375, -- VAR_IGNORE_CD_FLAG = 376, -- VAR_LOG_QUERIES = 377, -- VAR_TCP_UPSTREAM = 378, -- VAR_SSL_UPSTREAM = 379, -- VAR_SSL_SERVICE_KEY = 380, -- VAR_SSL_SERVICE_PEM = 381, -- VAR_SSL_PORT = 382, -- VAR_FORWARD_FIRST = 383, -- VAR_STUB_FIRST = 384, -- VAR_MINIMAL_RESPONSES = 385, -- VAR_RRSET_ROUNDROBIN = 386, -- VAR_MAX_UDP_SIZE = 387, -- VAR_DELAY_CLOSE = 388, -- VAR_UNBLOCK_LAN_ZONES = 389, -- VAR_INFRA_CACHE_MIN_RTT = 390, -- VAR_DNS64_PREFIX = 391, -- VAR_DNS64_SYNTHALL = 392, -- VAR_DNSTAP = 393, -- VAR_DNSTAP_ENABLE = 394, -- VAR_DNSTAP_SOCKET_PATH = 395, -- VAR_DNSTAP_SEND_IDENTITY = 396, -- VAR_DNSTAP_SEND_VERSION = 397, -- VAR_DNSTAP_IDENTITY = 398, -- VAR_DNSTAP_VERSION = 399, -- VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400, -- VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401, -- VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402, -- VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403, -- VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404, -- VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405 -- }; -+ enum yytokentype -+ { -+ SPACE = 258, -+ LETTER = 259, -+ NEWLINE = 260, -+ COMMENT = 261, -+ COLON = 262, -+ ANY = 263, -+ ZONESTR = 264, -+ STRING_ARG = 265, -+ VAR_SERVER = 266, -+ VAR_VERBOSITY = 267, -+ VAR_NUM_THREADS = 268, -+ VAR_PORT = 269, -+ VAR_OUTGOING_RANGE = 270, -+ VAR_INTERFACE = 271, -+ VAR_DO_IP4 = 272, -+ VAR_DO_IP6 = 273, -+ VAR_DO_UDP = 274, -+ VAR_DO_TCP = 275, -+ VAR_CHROOT = 276, -+ VAR_USERNAME = 277, -+ VAR_DIRECTORY = 278, -+ VAR_LOGFILE = 279, -+ VAR_PIDFILE = 280, -+ VAR_MSG_CACHE_SIZE = 281, -+ VAR_MSG_CACHE_SLABS = 282, -+ VAR_NUM_QUERIES_PER_THREAD = 283, -+ VAR_RRSET_CACHE_SIZE = 284, -+ VAR_RRSET_CACHE_SLABS = 285, -+ VAR_OUTGOING_NUM_TCP = 286, -+ VAR_INFRA_HOST_TTL = 287, -+ VAR_INFRA_LAME_TTL = 288, -+ VAR_INFRA_CACHE_SLABS = 289, -+ VAR_INFRA_CACHE_NUMHOSTS = 290, -+ VAR_INFRA_CACHE_LAME_SIZE = 291, -+ VAR_NAME = 292, -+ VAR_STUB_ZONE = 293, -+ VAR_STUB_HOST = 294, -+ VAR_STUB_ADDR = 295, -+ VAR_TARGET_FETCH_POLICY = 296, -+ VAR_HARDEN_SHORT_BUFSIZE = 297, -+ VAR_HARDEN_LARGE_QUERIES = 298, -+ VAR_FORWARD_ZONE = 299, -+ VAR_FORWARD_HOST = 300, -+ VAR_FORWARD_ADDR = 301, -+ VAR_DO_NOT_QUERY_ADDRESS = 302, -+ VAR_HIDE_IDENTITY = 303, -+ VAR_HIDE_VERSION = 304, -+ VAR_IDENTITY = 305, -+ VAR_VERSION = 306, -+ VAR_HARDEN_GLUE = 307, -+ VAR_MODULE_CONF = 308, -+ VAR_TRUST_ANCHOR_FILE = 309, -+ VAR_TRUST_ANCHOR = 310, -+ VAR_VAL_OVERRIDE_DATE = 311, -+ VAR_BOGUS_TTL = 312, -+ VAR_VAL_CLEAN_ADDITIONAL = 313, -+ VAR_VAL_PERMISSIVE_MODE = 314, -+ VAR_INCOMING_NUM_TCP = 315, -+ VAR_MSG_BUFFER_SIZE = 316, -+ VAR_KEY_CACHE_SIZE = 317, -+ VAR_KEY_CACHE_SLABS = 318, -+ VAR_TRUSTED_KEYS_FILE = 319, -+ VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, -+ VAR_USE_SYSLOG = 321, -+ VAR_OUTGOING_INTERFACE = 322, -+ VAR_ROOT_HINTS = 323, -+ VAR_DO_NOT_QUERY_LOCALHOST = 324, -+ VAR_CACHE_MAX_TTL = 325, -+ VAR_HARDEN_DNSSEC_STRIPPED = 326, -+ VAR_ACCESS_CONTROL = 327, -+ VAR_LOCAL_ZONE = 328, -+ VAR_LOCAL_DATA = 329, -+ VAR_INTERFACE_AUTOMATIC = 330, -+ VAR_STATISTICS_INTERVAL = 331, -+ VAR_DO_DAEMONIZE = 332, -+ VAR_USE_CAPS_FOR_ID = 333, -+ VAR_STATISTICS_CUMULATIVE = 334, -+ VAR_OUTGOING_PORT_PERMIT = 335, -+ VAR_OUTGOING_PORT_AVOID = 336, -+ VAR_DLV_ANCHOR_FILE = 337, -+ VAR_DLV_ANCHOR = 338, -+ VAR_NEG_CACHE_SIZE = 339, -+ VAR_HARDEN_REFERRAL_PATH = 340, -+ VAR_PRIVATE_ADDRESS = 341, -+ VAR_PRIVATE_DOMAIN = 342, -+ VAR_REMOTE_CONTROL = 343, -+ VAR_CONTROL_ENABLE = 344, -+ VAR_CONTROL_INTERFACE = 345, -+ VAR_CONTROL_PORT = 346, -+ VAR_SERVER_KEY_FILE = 347, -+ VAR_SERVER_CERT_FILE = 348, -+ VAR_CONTROL_KEY_FILE = 349, -+ VAR_CONTROL_CERT_FILE = 350, -+ VAR_CONTROL_USE_CERT = 351, -+ VAR_EXTENDED_STATISTICS = 352, -+ VAR_LOCAL_DATA_PTR = 353, -+ VAR_JOSTLE_TIMEOUT = 354, -+ VAR_STUB_PRIME = 355, -+ VAR_UNWANTED_REPLY_THRESHOLD = 356, -+ VAR_LOG_TIME_ASCII = 357, -+ VAR_DOMAIN_INSECURE = 358, -+ VAR_PYTHON = 359, -+ VAR_PYTHON_SCRIPT = 360, -+ VAR_VAL_SIG_SKEW_MIN = 361, -+ VAR_VAL_SIG_SKEW_MAX = 362, -+ VAR_CACHE_MIN_TTL = 363, -+ VAR_VAL_LOG_LEVEL = 364, -+ VAR_AUTO_TRUST_ANCHOR_FILE = 365, -+ VAR_KEEP_MISSING = 366, -+ VAR_ADD_HOLDDOWN = 367, -+ VAR_DEL_HOLDDOWN = 368, -+ VAR_SO_RCVBUF = 369, -+ VAR_EDNS_BUFFER_SIZE = 370, -+ VAR_PREFETCH = 371, -+ VAR_PREFETCH_KEY = 372, -+ VAR_SO_SNDBUF = 373, -+ VAR_SO_REUSEPORT = 374, -+ VAR_HARDEN_BELOW_NXDOMAIN = 375, -+ VAR_IGNORE_CD_FLAG = 376, -+ VAR_LOG_QUERIES = 377, -+ VAR_TCP_UPSTREAM = 378, -+ VAR_SSL_UPSTREAM = 379, -+ VAR_SSL_SERVICE_KEY = 380, -+ VAR_SSL_SERVICE_PEM = 381, -+ VAR_SSL_PORT = 382, -+ VAR_FORWARD_FIRST = 383, -+ VAR_STUB_FIRST = 384, -+ VAR_MINIMAL_RESPONSES = 385, -+ VAR_RRSET_ROUNDROBIN = 386, -+ VAR_MAX_UDP_SIZE = 387, -+ VAR_DELAY_CLOSE = 388, -+ VAR_UNBLOCK_LAN_ZONES = 389, -+ VAR_INFRA_CACHE_MIN_RTT = 390, -+ VAR_DNS64_PREFIX = 391, -+ VAR_DNS64_SYNTHALL = 392, -+ VAR_DNSTAP = 393, -+ VAR_DNSTAP_ENABLE = 394, -+ VAR_DNSTAP_SOCKET_PATH = 395, -+ VAR_DNSTAP_SEND_IDENTITY = 396, -+ VAR_DNSTAP_SEND_VERSION = 397, -+ VAR_DNSTAP_IDENTITY = 398, -+ VAR_DNSTAP_VERSION = 399, -+ VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400, -+ VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401, -+ VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402, -+ VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403, -+ VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404, -+ VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405, -+ VAR_CACHE_MAX_NEGATIVE_TTL = 406 -+ }; - #endif - /* Tokens. */ - #define SPACE 258 -@@ -426,48 +424,33 @@ extern int yydebug; - #define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403 - #define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404 - #define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405 -+#define VAR_CACHE_MAX_NEGATIVE_TTL 406 - -- -- -+/* Value type. */ - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED --typedef union YYSTYPE -+typedef union YYSTYPE YYSTYPE; -+union YYSTYPE - { --/* Line 387 of yacc.c */ --#line 64 "util/configparser.y" -+#line 64 "util/configparser.y" /* yacc.c:355 */ - - char* str; - -- --/* Line 387 of yacc.c */ --#line 443 "util/configparser.c" --} YYSTYPE; -+#line 439 "util/configparser.c" /* yacc.c:355 */ -+}; - # define YYSTYPE_IS_TRIVIAL 1 --# define yystype YYSTYPE /* obsolescent; will be withdrawn */ - # define YYSTYPE_IS_DECLARED 1 - #endif - -+ - extern YYSTYPE yylval; - --#ifdef YYPARSE_PARAM --#if defined __STDC__ || defined __cplusplus --int yyparse (void *YYPARSE_PARAM); --#else --int yyparse (); --#endif --#else /* ! YYPARSE_PARAM */ --#if defined __STDC__ || defined __cplusplus - int yyparse (void); --#else --int yyparse (); --#endif --#endif /* ! YYPARSE_PARAM */ - - #endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ - - /* Copy the second part of user declarations. */ - --/* Line 390 of yacc.c */ --#line 471 "util/configparser.c" -+#line 454 "util/configparser.c" /* yacc.c:358 */ - - #ifdef short - # undef short -@@ -481,11 +464,8 @@ typedef unsigned char yytype_uint8; - - #ifdef YYTYPE_INT8 - typedef YYTYPE_INT8 yytype_int8; --#elif (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --typedef signed char yytype_int8; - #else --typedef short int yytype_int8; -+typedef signed char yytype_int8; - #endif - - #ifdef YYTYPE_UINT16 -@@ -505,8 +485,7 @@ typedef short int yytype_int16; - # define YYSIZE_T __SIZE_TYPE__ - # elif defined size_t - # define YYSIZE_T size_t --# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# elif ! defined YYSIZE_T - # include /* INFRINGES ON USER NAME SPACE */ - # define YYSIZE_T size_t - # else -@@ -528,6 +507,33 @@ typedef short int yytype_int16; - # endif - #endif - -+#ifndef YY_ATTRIBUTE -+# if (defined __GNUC__ \ -+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ -+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -+# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -+# else -+# define YY_ATTRIBUTE(Spec) /* empty */ -+# endif -+#endif -+ -+#ifndef YY_ATTRIBUTE_PURE -+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -+#endif -+ -+#ifndef YY_ATTRIBUTE_UNUSED -+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -+#endif -+ -+#if !defined _Noreturn \ -+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -+# if defined _MSC_VER && 1200 <= _MSC_VER -+# define _Noreturn __declspec (noreturn) -+# else -+# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -+# endif -+#endif -+ - /* Suppress unused-variable warnings by "using" E. */ - #if ! defined lint || defined __GNUC__ - # define YYUSE(E) ((void) (E)) -@@ -535,24 +541,26 @@ typedef short int yytype_int16; - # define YYUSE(E) /* empty */ - #endif - --/* Identity function, used to suppress warnings about constant conditions. */ --#ifndef lint --# define YYID(N) (N) --#else --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --static int --YYID (int yyi) -+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -+/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ -+ _Pragma ("GCC diagnostic push") \ -+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ -+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ -+ _Pragma ("GCC diagnostic pop") - #else --static int --YYID (yyi) -- int yyi; -+# define YY_INITIAL_VALUE(Value) Value - #endif --{ -- return yyi; --} -+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+# define YY_IGNORE_MAYBE_UNINITIALIZED_END -+#endif -+#ifndef YY_INITIAL_VALUE -+# define YY_INITIAL_VALUE(Value) /* Nothing. */ - #endif - -+ - #if ! defined yyoverflow || YYERROR_VERBOSE - - /* The parser invokes alloca or malloc; define the necessary symbols. */ -@@ -570,8 +578,7 @@ YYID (yyi) - # define alloca _alloca - # else - # define YYSTACK_ALLOC alloca --# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS - # include /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ - # ifndef EXIT_SUCCESS -@@ -583,8 +590,8 @@ YYID (yyi) - # endif - - # ifdef YYSTACK_ALLOC -- /* Pacify GCC's `empty if-body' warning. */ --# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -+ /* Pacify GCC's 'empty if-body' warning. */ -+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) - # ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely -@@ -600,7 +607,7 @@ YYID (yyi) - # endif - # if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ -- && (defined YYFREE || defined free))) -+ && (defined YYFREE || defined free))) - # include /* INFRINGES ON USER NAME SPACE */ - # ifndef EXIT_SUCCESS - # define EXIT_SUCCESS 0 -@@ -608,15 +615,13 @@ YYID (yyi) - # endif - # ifndef YYMALLOC - # define YYMALLOC malloc --# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined malloc && ! defined EXIT_SUCCESS - void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ - # endif - # endif - # ifndef YYFREE - # define YYFREE free --# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined free && ! defined EXIT_SUCCESS - void free (void *); /* INFRINGES ON USER NAME SPACE */ - # endif - # endif -@@ -626,7 +631,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ - - #if (! defined yyoverflow \ - && (! defined __cplusplus \ -- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) -+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - - /* A type that is properly aligned for any stack member. */ - union yyalloc -@@ -651,16 +656,16 @@ union yyalloc - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ --# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ -- do \ -- { \ -- YYSIZE_T yynewbytes; \ -- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ -- Stack = &yyptr->Stack_alloc; \ -- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -- yyptr += yynewbytes / sizeof (*yyptr); \ -- } \ -- while (YYID (0)) -+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ -+ do \ -+ { \ -+ YYSIZE_T yynewbytes; \ -+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ -+ Stack = &yyptr->Stack_alloc; \ -+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -+ yyptr += yynewbytes / sizeof (*yyptr); \ -+ } \ -+ while (0) - - #endif - -@@ -679,7 +684,7 @@ union yyalloc - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ -- while (YYID (0)) -+ while (0) - # endif - # endif - #endif /* !YYCOPY_NEEDED */ -@@ -687,25 +692,27 @@ union yyalloc - /* YYFINAL -- State number of the termination state. */ - #define YYFINAL 2 - /* YYLAST -- Last index in YYTABLE. */ --#define YYLAST 280 -+#define YYLAST 281 - - /* YYNTOKENS -- Number of terminals. */ --#define YYNTOKENS 151 -+#define YYNTOKENS 152 - /* YYNNTS -- Number of nonterminals. */ --#define YYNNTS 156 -+#define YYNNTS 157 - /* YYNRULES -- Number of rules. */ --#define YYNRULES 297 --/* YYNRULES -- Number of states. */ --#define YYNSTATES 435 -+#define YYNRULES 299 -+/* YYNSTATES -- Number of states. */ -+#define YYNSTATES 438 - --/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned -+ by yylex, with out-of-bounds checking. */ - #define YYUNDEFTOK 2 --#define YYMAXUTOK 405 -+#define YYMAXUTOK 406 - --#define YYTRANSLATE(YYX) \ -+#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - --/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM -+ as returned by yylex, without out-of-bounds checking. */ - static const yytype_uint8 yytranslate[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, -@@ -748,158 +755,43 @@ static const yytype_uint8 yytranslate[] = - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, -- 145, 146, 147, 148, 149, 150 -+ 145, 146, 147, 148, 149, 150, 151 - }; - - #if YYDEBUG --/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in -- YYRHS. */ --static const yytype_uint16 yyprhs[] = --{ -- 0, 0, 3, 4, 7, 10, 13, 16, 19, 22, -- 25, 27, 30, 31, 33, 35, 37, 39, 41, 43, -- 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, -- 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, -- 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, -- 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, -- 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, -- 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, -- 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, -- 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, -- 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, -- 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, -- 246, 247, 249, 251, 253, 255, 257, 259, 262, 263, -- 265, 267, 269, 271, 274, 277, 280, 283, 286, 289, -- 292, 295, 298, 301, 304, 307, 310, 313, 316, 319, -- 322, 325, 328, 331, 334, 337, 340, 343, 346, 349, -- 352, 355, 358, 361, 364, 367, 370, 373, 376, 379, -- 382, 385, 388, 391, 394, 397, 400, 403, 406, 409, -- 412, 415, 418, 421, 424, 427, 430, 433, 436, 439, -- 442, 445, 448, 451, 454, 457, 460, 463, 466, 469, -- 472, 475, 478, 481, 484, 487, 490, 493, 496, 499, -- 502, 505, 509, 512, 515, 518, 521, 524, 527, 530, -- 533, 536, 539, 542, 545, 548, 551, 554, 557, 560, -- 563, 567, 570, 573, 576, 579, 582, 585, 588, 591, -- 594, 597, 600, 603, 606, 609, 612, 615, 617, 620, -- 621, 623, 625, 627, 629, 631, 633, 635, 637, 640, -- 643, 646, 649, 652, 655, 658, 661, 663, 666, 667, -- 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, -- 689, 691, 694, 697, 700, 703, 706, 709, 712, 715, -- 718, 721, 724, 727, 729, 732, 733, 735 --}; -- --/* YYRHS -- A `-1'-separated list of the rules' RHS. */ --static const yytype_int16 yyrhs[] = --{ -- 152, 0, -1, -1, 152, 153, -1, 154, 155, -1, -- 157, 158, -1, 160, 161, -1, 303, 304, -1, 277, -- 278, -1, 288, 289, -1, 11, -1, 155, 156, -1, -- -1, 163, -1, 164, -1, 168, -1, 171, -1, 177, -- -1, 178, -1, 179, -1, 180, -1, 169, -1, 190, -- -1, 191, -1, 192, -1, 193, -1, 194, -1, 212, -- -1, 213, -1, 214, -1, 218, -1, 219, -1, 174, -- -1, 220, -1, 221, -1, 224, -1, 222, -1, 223, -- -1, 226, -1, 227, -1, 228, -1, 239, -1, 203, -- -1, 204, -1, 205, -1, 206, -1, 229, -1, 242, -- -1, 199, -1, 201, -1, 243, -1, 248, -1, 249, -- -1, 250, -1, 175, -1, 211, -1, 257, -1, 258, -- -1, 200, -1, 253, -1, 187, -1, 170, -1, 195, -- -1, 240, -1, 246, -1, 230, -1, 241, -1, 260, -- -1, 261, -1, 176, -1, 165, -1, 186, -1, 233, -- -1, 166, -1, 172, -1, 173, -1, 196, -1, 197, -- -1, 259, -1, 232, -1, 234, -1, 235, -1, 167, -- -1, 262, -1, 215, -1, 238, -1, 188, -1, 202, -- -1, 244, -1, 245, -1, 247, -1, 252, -1, 198, -- -1, 254, -1, 255, -1, 256, -1, 207, -1, 210, -- -1, 236, -1, 237, -1, 208, -1, 231, -1, 251, -- -1, 189, -1, 181, -1, 182, -1, 183, -1, 184, -- -1, 185, -1, 263, -1, 264, -1, 265, -1, 209, -- -1, 216, -1, 217, -1, 266, -1, 267, -1, 225, -- -1, 38, -1, 158, 159, -1, -1, 268, -1, 269, -- -1, 270, -1, 272, -1, 271, -1, 44, -1, 161, -- 162, -1, -1, 273, -1, 274, -1, 275, -1, 276, -- -1, 13, 10, -1, 12, 10, -1, 76, 10, -1, -- 79, 10, -1, 97, 10, -1, 14, 10, -1, 16, -- 10, -1, 67, 10, -1, 15, 10, -1, 80, 10, -- -1, 81, 10, -1, 31, 10, -1, 60, 10, -1, -- 75, 10, -1, 17, 10, -1, 18, 10, -1, 19, -- 10, -1, 20, 10, -1, 123, 10, -1, 124, 10, -- -1, 125, 10, -1, 126, 10, -1, 127, 10, -1, -- 77, 10, -1, 66, 10, -1, 102, 10, -1, 122, -- 10, -1, 21, 10, -1, 22, 10, -1, 23, 10, -- -1, 24, 10, -1, 25, 10, -1, 68, 10, -1, -- 82, 10, -1, 83, 10, -1, 110, 10, -1, 54, -- 10, -1, 64, 10, -1, 55, 10, -1, 103, 10, -- -1, 48, 10, -1, 49, 10, -1, 50, 10, -1, -- 51, 10, -1, 114, 10, -1, 118, 10, -1, 119, -- 10, -1, 115, 10, -1, 61, 10, -1, 26, 10, -- -1, 27, 10, -1, 28, 10, -1, 99, 10, -1, -- 133, 10, -1, 134, 10, -1, 29, 10, -1, 30, -- 10, -1, 32, 10, -1, 33, 10, -1, 35, 10, -- -1, 36, 10, -1, 34, 10, -1, 135, 10, -1, -- 41, 10, -1, 42, 10, -1, 43, 10, -1, 52, -- 10, -1, 71, 10, -1, 120, 10, -1, 85, 10, -- -1, 78, 10, -1, 86, 10, -1, 87, 10, -1, -- 116, 10, -1, 117, 10, -1, 101, 10, -1, 47, -- 10, -1, 69, 10, -1, 72, 10, 10, -1, 53, -- 10, -1, 56, 10, -1, 106, 10, -1, 107, 10, -- -1, 70, 10, -1, 108, 10, -1, 57, 10, -1, -- 58, 10, -1, 59, 10, -1, 121, 10, -1, 109, -- 10, -1, 65, 10, -1, 112, 10, -1, 113, 10, -- -1, 111, 10, -1, 62, 10, -1, 63, 10, -1, -- 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, -- 98, 10, -1, 130, 10, -1, 131, 10, -1, 132, -- 10, -1, 136, 10, -1, 137, 10, -1, 37, 10, -- -1, 39, 10, -1, 40, 10, -1, 129, 10, -1, -- 100, 10, -1, 37, 10, -1, 45, 10, -1, 46, -- 10, -1, 128, 10, -1, 88, -1, 278, 279, -1, -- -1, 280, -1, 282, -1, 281, -1, 284, -1, 285, -- -1, 286, -1, 287, -1, 283, -1, 89, 10, -1, -- 91, 10, -1, 90, 10, -1, 96, 10, -1, 92, -- 10, -1, 93, 10, -1, 94, 10, -1, 95, 10, -- -1, 138, -1, 289, 290, -1, -1, 291, -1, 292, -- -1, 293, -1, 294, -1, 295, -1, 296, -1, 297, -- -1, 298, -1, 299, -1, 300, -1, 301, -1, 302, -- -1, 139, 10, -1, 140, 10, -1, 141, 10, -1, -- 142, 10, -1, 143, 10, -1, 144, 10, -1, 145, -- 10, -1, 146, 10, -1, 147, 10, -1, 148, 10, -- -1, 149, 10, -1, 150, 10, -1, 104, -1, 304, -- 305, -1, -1, 306, -1, 105, 10, -1 --}; -- --/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ - static const yytype_uint16 yyrline[] = - { -- 0, 123, 123, 123, 124, 124, 125, 125, 126, 126, -- 130, 135, 136, 137, 137, 137, 138, 138, 139, 139, -- 139, 140, 140, 140, 141, 141, 141, 142, 142, 143, -- 143, 144, 144, 145, 145, 146, 146, 147, 147, 148, -- 148, 149, 149, 150, 150, 150, 151, 151, 151, 152, -- 152, 152, 153, 153, 154, 154, 155, 155, 156, 156, -- 157, 157, 157, 158, 158, 159, 159, 160, 160, 160, -- 161, 161, 162, 162, 163, 163, 164, 164, 164, 165, -- 165, 166, 166, 167, 167, 168, 168, 169, 169, 170, -- 170, 170, 171, 171, 172, 172, 172, 173, 173, 173, -- 174, 174, 174, 175, 175, 175, 176, 176, 176, 177, -- 177, 177, 178, 178, 178, 179, 179, 180, 182, 194, -- 195, 196, 196, 196, 196, 196, 198, 210, 211, 212, -- 212, 212, 212, 214, 223, 232, 243, 252, 261, 270, -- 283, 298, 307, 316, 325, 334, 343, 352, 361, 370, -- 379, 388, 397, 406, 413, 420, 429, 438, 452, 461, -- 470, 477, 484, 491, 499, 506, 513, 520, 527, 535, -- 543, 551, 558, 565, 574, 583, 590, 597, 605, 613, -- 623, 636, 647, 655, 668, 677, 686, 695, 705, 713, -- 726, 735, 743, 752, 760, 773, 782, 789, 799, 809, -- 819, 829, 839, 849, 859, 866, 873, 882, 891, 900, -- 907, 917, 934, 941, 959, 972, 985, 994, 1003, 1012, -- 1022, 1032, 1041, 1050, 1057, 1066, 1075, 1084, 1092, 1105, -- 1113, 1136, 1143, 1158, 1168, 1178, 1185, 1192, 1201, 1211, -- 1218, 1225, 1234, 1244, 1254, 1261, 1268, 1277, 1282, 1283, -- 1284, 1284, 1284, 1285, 1285, 1285, 1286, 1286, 1288, 1298, -- 1307, 1314, 1324, 1331, 1338, 1345, 1352, 1357, 1358, 1359, -- 1359, 1360, 1360, 1361, 1361, 1362, 1363, 1364, 1365, 1366, -- 1367, 1369, 1377, 1384, 1392, 1400, 1407, 1414, 1423, 1432, -- 1441, 1450, 1459, 1468, 1473, 1474, 1475, 1477 -+ 0, 124, 124, 124, 125, 125, 126, 126, 127, 127, -+ 131, 136, 137, 138, 138, 138, 139, 139, 140, 140, -+ 140, 141, 141, 141, 142, 142, 142, 143, 143, 144, -+ 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, -+ 149, 150, 150, 151, 151, 151, 152, 152, 152, 153, -+ 153, 153, 154, 154, 155, 155, 156, 156, 157, 157, -+ 158, 158, 158, 159, 159, 160, 160, 161, 161, 161, -+ 162, 162, 163, 163, 164, 164, 165, 165, 165, 166, -+ 166, 167, 167, 168, 168, 169, 169, 170, 170, 171, -+ 171, 171, 172, 172, 173, 173, 173, 174, 174, 174, -+ 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, -+ 178, 178, 179, 179, 179, 180, 180, 181, 181, 183, -+ 195, 196, 197, 197, 197, 197, 197, 199, 211, 212, -+ 213, 213, 213, 213, 215, 224, 233, 244, 253, 262, -+ 271, 284, 299, 308, 317, 326, 335, 344, 353, 362, -+ 371, 380, 389, 398, 407, 414, 421, 430, 439, 453, -+ 462, 471, 478, 485, 492, 500, 507, 514, 521, 528, -+ 536, 544, 552, 559, 566, 575, 584, 591, 598, 606, -+ 614, 624, 637, 648, 656, 669, 678, 687, 696, 706, -+ 714, 727, 736, 744, 753, 761, 774, 783, 790, 800, -+ 810, 820, 830, 840, 850, 860, 867, 874, 883, 892, -+ 901, 908, 918, 935, 942, 960, 973, 986, 995, 1004, -+ 1013, 1022, 1032, 1042, 1051, 1060, 1067, 1076, 1085, 1094, -+ 1102, 1115, 1123, 1146, 1153, 1168, 1178, 1188, 1195, 1202, -+ 1211, 1221, 1228, 1235, 1244, 1254, 1264, 1271, 1278, 1287, -+ 1292, 1293, 1294, 1294, 1294, 1295, 1295, 1295, 1296, 1296, -+ 1298, 1308, 1317, 1324, 1334, 1341, 1348, 1355, 1362, 1367, -+ 1368, 1369, 1369, 1370, 1370, 1371, 1371, 1372, 1373, 1374, -+ 1375, 1376, 1377, 1379, 1387, 1394, 1402, 1410, 1417, 1424, -+ 1433, 1442, 1451, 1460, 1469, 1478, 1483, 1484, 1485, 1487 - }; - #endif - -@@ -960,17 +852,18 @@ static const char *const yytname[] = - "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", - "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES", - "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES", -- "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "$accept", "toplevelvars", -- "toplevelvar", "serverstart", "contents_server", "content_server", -- "stubstart", "contents_stub", "content_stub", "forwardstart", -- "contents_forward", "content_forward", "server_num_threads", -- "server_verbosity", "server_statistics_interval", -- "server_statistics_cumulative", "server_extended_statistics", -- "server_port", "server_interface", "server_outgoing_interface", -- "server_outgoing_range", "server_outgoing_port_permit", -- "server_outgoing_port_avoid", "server_outgoing_num_tcp", -- "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", -- "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream", -+ "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", -+ "VAR_CACHE_MAX_NEGATIVE_TTL", "$accept", "toplevelvars", "toplevelvar", -+ "serverstart", "contents_server", "content_server", "stubstart", -+ "contents_stub", "content_stub", "forwardstart", "contents_forward", -+ "content_forward", "server_num_threads", "server_verbosity", -+ "server_statistics_interval", "server_statistics_cumulative", -+ "server_extended_statistics", "server_port", "server_interface", -+ "server_outgoing_interface", "server_outgoing_range", -+ "server_outgoing_port_permit", "server_outgoing_port_avoid", -+ "server_outgoing_num_tcp", "server_incoming_num_tcp", -+ "server_interface_automatic", "server_do_ip4", "server_do_ip6", -+ "server_do_udp", "server_do_tcp", "server_tcp_upstream", - "server_ssl_upstream", "server_ssl_service_key", - "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", - "server_use_syslog", "server_log_time_ascii", "server_log_queries", -@@ -999,13 +892,14 @@ static const char *const yytname[] = - "server_access_control", "server_module_conf", - "server_val_override_date", "server_val_sig_skew_min", - "server_val_sig_skew_max", "server_cache_max_ttl", -- "server_cache_min_ttl", "server_bogus_ttl", -- "server_val_clean_additional", "server_val_permissive_mode", -- "server_ignore_cd_flag", "server_val_log_level", -- "server_val_nsec3_keysize_iterations", "server_add_holddown", -- "server_del_holddown", "server_keep_missing", "server_key_cache_size", -- "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", -- "server_local_data", "server_local_data_ptr", "server_minimal_responses", -+ "server_cache_max_negative_ttl", "server_cache_min_ttl", -+ "server_bogus_ttl", "server_val_clean_additional", -+ "server_val_permissive_mode", "server_ignore_cd_flag", -+ "server_val_log_level", "server_val_nsec3_keysize_iterations", -+ "server_add_holddown", "server_del_holddown", "server_keep_missing", -+ "server_key_cache_size", "server_key_cache_slabs", -+ "server_neg_cache_size", "server_local_zone", "server_local_data", -+ "server_local_data_ptr", "server_minimal_responses", - "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix", - "server_dns64_synthall", "stub_name", "stub_host", "stub_addr", - "stub_first", "stub_prime", "forward_name", "forward_host", -@@ -1022,13 +916,13 @@ static const char *const yytname[] = - "dt_dnstap_log_client_response_messages", - "dt_dnstap_log_forwarder_query_messages", - "dt_dnstap_log_forwarder_response_messages", "pythonstart", -- "contents_py", "content_py", "py_script", YY_NULL -+ "contents_py", "content_py", "py_script", YY_NULLPTR - }; - #endif - - # ifdef YYPRINT --/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to -- token YYLEX-NUM. */ -+/* YYTOKNUM[NUM] -- (External) token number corresponding to the -+ (internal) symbol number NUM (which must be that of a token). */ - static const yytype_uint16 yytoknum[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, -@@ -1046,87 +940,77 @@ static const yytype_uint16 yytoknum[] = - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, -- 405 -+ 405, 406 - }; - # endif - --/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ --static const yytype_uint16 yyr1[] = --{ -- 0, 151, 152, 152, 153, 153, 153, 153, 153, 153, -- 154, 155, 155, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, -- 156, 156, 156, 156, 156, 156, 156, 156, 157, 158, -- 158, 159, 159, 159, 159, 159, 160, 161, 161, 162, -- 162, 162, 162, 163, 164, 165, 166, 167, 168, 169, -- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, -- 190, 191, 192, 193, 194, 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, -- 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, -- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, -- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -- 270, 271, 272, 273, 274, 275, 276, 277, 278, 278, -- 279, 279, 279, 279, 279, 279, 279, 279, 280, 281, -- 282, 283, 284, 285, 286, 287, 288, 289, 289, 290, -- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, -- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, -- 300, 301, 302, 303, 304, 304, 305, 306 --}; -+#define YYPACT_NINF -81 - --/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ --static const yytype_uint8 yyr2[] = -+#define yypact_value_is_default(Yystate) \ -+ (!!((Yystate) == (-81))) -+ -+#define YYTABLE_NINF -1 -+ -+#define yytable_value_is_error(Yytable_value) \ -+ 0 -+ -+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -+ STATE-NUM. */ -+static const yytype_int16 yypact[] = - { -- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, -- 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, -- 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, -- 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, -- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, -- 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 1, 2, 0, 1, 2 -+ -81, 116, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -12, 40, 47, 39, -+ 2, -80, 16, 17, 18, 22, 23, 24, 66, 68, -+ 71, 72, 73, 78, 107, 126, 127, 128, 143, 145, -+ 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, -+ 157, 158, 160, 161, 162, 163, 164, 166, 167, 168, -+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, -+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, -+ 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, -+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, -+ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -+ 231, 232, 233, 234, 235, 236, 237, 238, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, 239, 240, 241, 242, 243, -+ -81, -81, -81, -81, -81, -81, 245, 246, 247, 248, -+ -81, -81, -81, -81, -81, 249, 250, 251, 252, 253, -+ 254, 255, 256, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, 257, 258, 259, 260, 261, 262, 263, 264, -+ 265, 266, 267, 268, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, 269, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, 270, 271, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81 - }; - --/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. -- Performed when YYTABLE doesn't specify something else to do. Zero -- means the default is an error. */ -+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. -+ Performed when YYTABLE does not specify something else to do. Zero -+ means the default is an error. */ - static const yytype_uint16 yydefact[] = - { -- 2, 0, 1, 10, 118, 126, 247, 293, 266, 3, -- 12, 120, 128, 249, 268, 295, 4, 5, 6, 8, -+ 2, 0, 1, 10, 119, 127, 249, 295, 268, 3, -+ 12, 121, 129, 251, 270, 297, 4, 5, 6, 8, - 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -1137,216 +1021,158 @@ static const yytype_uint16 yydefact[] = - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- 0, 0, 0, 0, 0, 0, 0, 11, 13, 14, -- 70, 73, 82, 15, 21, 61, 16, 74, 75, 32, -- 54, 69, 17, 18, 19, 20, 104, 105, 106, 107, -- 108, 71, 60, 86, 103, 22, 23, 24, 25, 26, -- 62, 76, 77, 92, 48, 58, 49, 87, 42, 43, -- 44, 45, 96, 100, 112, 97, 55, 27, 28, 29, -- 84, 113, 114, 30, 31, 33, 34, 36, 37, 35, -- 117, 38, 39, 40, 46, 65, 101, 79, 72, 80, -- 81, 98, 99, 85, 41, 63, 66, 47, 50, 88, -- 89, 64, 90, 51, 52, 53, 102, 91, 59, 93, -- 94, 95, 56, 57, 78, 67, 68, 83, 109, 110, -- 111, 115, 116, 0, 0, 0, 0, 0, 119, 121, -- 122, 123, 125, 124, 0, 0, 0, 0, 127, 129, -- 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, -- 0, 248, 250, 252, 251, 257, 253, 254, 255, 256, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- 0, 0, 267, 269, 270, 271, 272, 273, 274, 275, -- 276, 277, 278, 279, 280, 0, 294, 296, 134, 133, -- 138, 141, 139, 147, 148, 149, 150, 160, 161, 162, -- 163, 164, 182, 183, 184, 188, 189, 144, 190, 191, -- 194, 192, 193, 196, 197, 198, 209, 173, 174, 175, -- 176, 199, 212, 169, 171, 213, 218, 219, 220, 145, -- 181, 227, 228, 170, 223, 157, 140, 165, 210, 216, -- 200, 0, 0, 231, 146, 135, 156, 203, 136, 142, -- 143, 166, 167, 229, 202, 204, 205, 137, 232, 185, -- 208, 158, 172, 214, 215, 217, 222, 168, 226, 224, -- 225, 177, 180, 206, 207, 178, 179, 201, 221, 159, -- 151, 152, 153, 154, 155, 233, 234, 235, 186, 187, -- 195, 236, 237, 238, 239, 240, 242, 241, 243, 244, -- 245, 246, 258, 260, 259, 262, 263, 264, 265, 261, -- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, -- 291, 292, 297, 211, 230 --}; -- --/* YYDEFGOTO[NTERM-NUM]. */ --static const yytype_int16 yydefgoto[] = --{ -- -1, 1, 9, 10, 16, 127, 11, 17, 238, 12, -- 18, 248, 128, 129, 130, 131, 132, 133, 134, 135, -- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, -- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, -- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, -- 196, 197, 198, 199, 200, 201, 202, 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, 230, 231, 232, 239, 240, 241, -- 242, 243, 249, 250, 251, 252, 13, 19, 261, 262, -- 263, 264, 265, 266, 267, 268, 269, 14, 20, 282, -- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -- 293, 294, 15, 21, 296, 297 -+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, -+ 14, 70, 73, 82, 15, 21, 61, 16, 74, 75, -+ 32, 54, 69, 17, 18, 19, 20, 104, 105, 106, -+ 107, 108, 71, 60, 86, 103, 22, 23, 24, 25, -+ 26, 62, 76, 77, 92, 48, 58, 49, 87, 42, -+ 43, 44, 45, 96, 100, 112, 97, 55, 27, 28, -+ 29, 84, 113, 114, 30, 31, 33, 34, 36, 37, -+ 35, 117, 38, 39, 40, 46, 65, 101, 79, 72, -+ 80, 81, 98, 99, 85, 41, 63, 66, 47, 50, -+ 88, 89, 64, 118, 90, 51, 52, 53, 102, 91, -+ 59, 93, 94, 95, 56, 57, 78, 67, 68, 83, -+ 109, 110, 111, 115, 116, 0, 0, 0, 0, 0, -+ 120, 122, 123, 124, 126, 125, 0, 0, 0, 0, -+ 128, 130, 131, 132, 133, 0, 0, 0, 0, 0, -+ 0, 0, 0, 250, 252, 254, 253, 259, 255, 256, -+ 257, 258, 0, 0, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 269, 271, 272, 273, 274, 275, -+ 276, 277, 278, 279, 280, 281, 282, 0, 296, 298, -+ 135, 134, 139, 142, 140, 148, 149, 150, 151, 161, -+ 162, 163, 164, 165, 183, 184, 185, 189, 190, 145, -+ 191, 192, 195, 193, 194, 197, 198, 199, 210, 174, -+ 175, 176, 177, 200, 213, 170, 172, 214, 220, 221, -+ 222, 146, 182, 229, 230, 171, 225, 158, 141, 166, -+ 211, 217, 201, 0, 0, 233, 147, 136, 157, 204, -+ 137, 143, 144, 167, 168, 231, 203, 205, 206, 138, -+ 234, 186, 209, 159, 173, 215, 216, 219, 224, 169, -+ 228, 226, 227, 178, 181, 207, 208, 179, 180, 202, -+ 223, 160, 152, 153, 154, 155, 156, 235, 236, 237, -+ 187, 188, 196, 238, 239, 218, 240, 241, 242, 244, -+ 243, 245, 246, 247, 248, 260, 262, 261, 264, 265, -+ 266, 267, 263, 283, 284, 285, 286, 287, 288, 289, -+ 290, 291, 292, 293, 294, 299, 212, 232 - }; - --/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -- STATE-NUM. */ --#define YYPACT_NINF -125 --static const yytype_int16 yypact[] = -+ /* YYPGOTO[NTERM-NUM]. */ -+static const yytype_int8 yypgoto[] = - { -- -125, 0, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, 93, -36, -32, -62, -- -124, -103, -4, -3, -2, -1, 2, 25, 26, 27, -- 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, -- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -- 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, -- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -- 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, -- 82, 84, 85, 87, 88, 89, 90, 91, 92, 120, -- 121, 122, 123, 127, 129, 171, 172, 173, 174, 175, -- 176, 177, 178, 179, 183, 187, 188, 211, 212, 221, -- 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -- 232, 233, 234, 235, 236, 237, 238, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, 239, 240, 241, 242, 243, -125, -125, -- -125, -125, -125, -125, 244, 245, 246, 247, -125, -125, -- -125, -125, -125, 248, 249, 250, 251, 252, 253, 254, -- 255, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, -- 266, 267, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, 268, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, 269, 270, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125 -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -+ -81, -81, -81, -81, -81, -81, -81 - }; - --/* YYPGOTO[NTERM-NUM]. */ --static const yytype_int8 yypgoto[] = -+ /* YYDEFGOTO[NTERM-NUM]. */ -+static const yytype_int16 yydefgoto[] = - { -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -- -125, -125, -125, -125, -125, -125 -+ -1, 1, 9, 10, 16, 128, 11, 17, 240, 12, -+ 18, 250, 129, 130, 131, 132, 133, 134, 135, 136, -+ 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, -+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, -+ 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, -+ 197, 198, 199, 200, 201, 202, 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, 230, 231, 232, 233, 234, 241, 242, -+ 243, 244, 245, 251, 252, 253, 254, 13, 19, 263, -+ 264, 265, 266, 267, 268, 269, 270, 271, 14, 20, -+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -+ 294, 295, 296, 15, 21, 298, 299 - }; - --/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If -- positive, shift that token. If negative, reduce the rule which -- number is the opposite. If YYTABLE_NINF, syntax error. */ --#define YYTABLE_NINF -1 -+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If -+ positive, shift that token. If negative, reduce the rule whose -+ number is the opposite. If YYTABLE_NINF, syntax error. */ - static const yytype_uint16 yytable[] = - { -- 2, 233, 295, 234, 235, 244, 298, 299, 300, 301, -- 0, 3, 302, 245, 246, 270, 271, 272, 273, 274, -- 275, 276, 277, 278, 279, 280, 281, 253, 254, 255, -- 256, 257, 258, 259, 260, 303, 304, 305, 4, 306, -- 307, 308, 309, 310, 5, 311, 312, 313, 314, 315, -- 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, -- 326, 327, 328, 329, 236, 330, 331, 332, 333, 334, -- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, -- 345, 346, 347, 348, 349, 350, 351, 352, 6, 353, -- 354, 355, 356, 237, 357, 358, 247, 359, 360, 361, -- 362, 363, 364, 0, 7, 22, 23, 24, 25, 26, -- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, -- 365, 366, 367, 368, 47, 48, 49, 369, 8, 370, -- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, -- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, -- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -- 90, 371, 372, 373, 374, 375, 376, 377, 378, 379, -- 91, 92, 93, 380, 94, 95, 96, 381, 382, 97, -- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, -- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, -- 118, 383, 384, 119, 120, 121, 122, 123, 124, 125, -- 126, 385, 386, 387, 388, 389, 390, 391, 392, 393, -- 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -- 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, -- 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -- 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, -- 434 -+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -+ 42, 43, 44, 45, 46, 297, 300, 301, 302, 47, -+ 48, 49, 303, 304, 305, 50, 51, 52, 53, 54, -+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, -+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -+ 85, 86, 87, 88, 89, 90, 306, 235, 307, 236, -+ 237, 308, 309, 310, 246, 91, 92, 93, 311, 94, -+ 95, 96, 247, 248, 97, 98, 99, 100, 101, 102, -+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, -+ 113, 114, 115, 116, 117, 118, 2, 312, 119, 120, -+ 121, 122, 123, 124, 125, 126, 0, 3, 255, 256, -+ 257, 258, 259, 260, 261, 262, 313, 314, 315, 127, -+ 238, 272, 273, 274, 275, 276, 277, 278, 279, 280, -+ 281, 282, 283, 316, 4, 317, 318, 319, 320, 321, -+ 5, 322, 323, 324, 325, 326, 327, 328, 329, 239, -+ 330, 331, 332, 333, 334, 249, 335, 336, 337, 338, -+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, -+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -+ 359, 360, 361, 362, 6, 363, 364, 365, 366, 367, -+ 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, -+ 7, 378, 379, 380, 381, 382, 383, 384, 385, 386, -+ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, -+ 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, -+ 407, 408, 409, 410, 8, 411, 412, 413, 414, 415, -+ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -+ 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, -+ 436, 437 - }; - --#define yypact_value_is_default(Yystate) \ -- (!!((Yystate) == (-125))) -- --#define yytable_value_is_error(Yytable_value) \ -- YYID (0) -- - static const yytype_int16 yycheck[] = - { -- 0, 37, 105, 39, 40, 37, 10, 10, 10, 10, -- -1, 11, 10, 45, 46, 139, 140, 141, 142, 143, -- 144, 145, 146, 147, 148, 149, 150, 89, 90, 91, -- 92, 93, 94, 95, 96, 10, 10, 10, 38, 10, -- 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, -+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -+ 32, 33, 34, 35, 36, 105, 10, 10, 10, 41, -+ 42, 43, 10, 10, 10, 47, 48, 49, 50, 51, -+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, -+ 82, 83, 84, 85, 86, 87, 10, 37, 10, 39, -+ 40, 10, 10, 10, 37, 97, 98, 99, 10, 101, -+ 102, 103, 45, 46, 106, 107, 108, 109, 110, 111, -+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -+ 122, 123, 124, 125, 126, 127, 0, 10, 130, 131, -+ 132, 133, 134, 135, 136, 137, -1, 11, 89, 90, -+ 91, 92, 93, 94, 95, 96, 10, 10, 10, 151, -+ 100, 139, 140, 141, 142, 143, 144, 145, 146, 147, -+ 148, 149, 150, 10, 38, 10, 10, 10, 10, 10, -+ 44, 10, 10, 10, 10, 10, 10, 10, 10, 129, -+ 10, 10, 10, 10, 10, 128, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -- 10, 10, 10, 10, 100, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -- 10, 10, 10, 10, 10, 10, 10, 10, 88, 10, -- 10, 10, 10, 129, 10, 10, 128, 10, 10, 10, -- 10, 10, 10, -1, 104, 12, 13, 14, 15, 16, -- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -- 10, 10, 10, 10, 41, 42, 43, 10, 138, 10, -- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, -- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, -- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, -- 87, 10, 10, 10, 10, 10, 10, 10, 10, 10, -- 97, 98, 99, 10, 101, 102, 103, 10, 10, 106, -- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -- 127, 10, 10, 130, 131, 132, 133, 134, 135, 136, -- 137, 10, 10, 10, 10, 10, 10, 10, 10, 10, -+ 10, 10, 10, 10, 88, 10, 10, 10, 10, 10, -+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -+ 104, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -+ 10, 10, 10, 10, 138, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -- 10 -+ 10, 10 - }; - --/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -- symbol of state STATE-NUM. */ -+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -+ symbol of state STATE-NUM. */ - static const yytype_uint16 yystos[] = - { -- 0, 152, 0, 11, 38, 44, 88, 104, 138, 153, -- 154, 157, 160, 277, 288, 303, 155, 158, 161, 278, -- 289, 304, 12, 13, 14, 15, 16, 17, 18, 19, -+ 0, 153, 0, 11, 38, 44, 88, 104, 138, 154, -+ 155, 158, 161, 279, 290, 305, 156, 159, 162, 280, -+ 291, 306, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -@@ -1356,7 +1182,7 @@ static const yytype_uint16 yystos[] = - 87, 97, 98, 99, 101, 102, 103, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, -- 131, 132, 133, 134, 135, 136, 137, 156, 163, 164, -+ 131, 132, 133, 134, 135, 136, 137, 151, 157, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -@@ -1367,13 +1193,13 @@ static const yytype_uint16 yystos[] = - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, -- 265, 266, 267, 37, 39, 40, 100, 129, 159, 268, -- 269, 270, 271, 272, 37, 45, 46, 128, 162, 273, -- 274, 275, 276, 89, 90, 91, 92, 93, 94, 95, -- 96, 279, 280, 281, 282, 283, 284, 285, 286, 287, -- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, -- 149, 150, 290, 291, 292, 293, 294, 295, 296, 297, -- 298, 299, 300, 301, 302, 105, 305, 306, 10, 10, -+ 265, 266, 267, 268, 269, 37, 39, 40, 100, 129, -+ 160, 270, 271, 272, 273, 274, 37, 45, 46, 128, -+ 163, 275, 276, 277, 278, 89, 90, 91, 92, 93, -+ 94, 95, 96, 281, 282, 283, 284, 285, 286, 287, -+ 288, 289, 139, 140, 141, 142, 143, 144, 145, 146, -+ 147, 148, 149, 150, 292, 293, 294, 295, 296, 297, -+ 298, 299, 300, 301, 302, 303, 304, 105, 307, 308, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -@@ -1387,33 +1213,89 @@ static const yytype_uint16 yystos[] = - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, -- 10, 10, 10, 10, 10 -+ 10, 10, 10, 10, 10, 10, 10, 10 - }; - --#define yyerrok (yyerrstatus = 0) --#define yyclearin (yychar = YYEMPTY) --#define YYEMPTY (-2) --#define YYEOF 0 -- --#define YYACCEPT goto yyacceptlab --#define YYABORT goto yyabortlab --#define YYERROR goto yyerrorlab -- -- --/* Like YYERROR except do call yyerror. This remains here temporarily -- to ease the transition to the new meaning of YYERROR, for GCC. -- Once GCC version 2 has supplanted version 1, this can go. However, -- YYFAIL appears to be in use. Nevertheless, it is formally deprecated -- in Bison 2.4.2's NEWS entry, where a plan to phase it out is -- discussed. */ -- --#define YYFAIL goto yyerrlab --#if defined YYFAIL -- /* This is here to suppress warnings from the GCC cpp's -- -Wunused-macros. Normally we don't worry about that warning, but -- some users do, and we want to make it easy for users to remove -- YYFAIL uses, which will produce warnings from Bison 2.5. */ --#endif -+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -+static const yytype_uint16 yyr1[] = -+{ -+ 0, 152, 153, 153, 154, 154, 154, 154, 154, 154, -+ 155, 156, 156, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, -+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, -+ 159, 159, 160, 160, 160, 160, 160, 161, 162, 162, -+ 163, 163, 163, 163, 164, 165, 166, 167, 168, 169, -+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, -+ 190, 191, 192, 193, 194, 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, -+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, -+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, -+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, -+ 280, 280, 281, 281, 281, 281, 281, 281, 281, 281, -+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, -+ 291, 292, 292, 292, 292, 292, 292, 292, 292, 292, -+ 292, 292, 292, 293, 294, 295, 296, 297, 298, 299, -+ 300, 301, 302, 303, 304, 305, 306, 306, 307, 308 -+}; -+ -+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -+static const yytype_uint8 yyr2[] = -+{ -+ 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, -+ 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 2, 0, 1, 1, 1, 1, 1, 1, 2, 0, -+ 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, -+ 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, -+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, -+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 1, 2, 0, 1, 2 -+}; -+ -+ -+#define yyerrok (yyerrstatus = 0) -+#define yyclearin (yychar = YYEMPTY) -+#define YYEMPTY (-2) -+#define YYEOF 0 -+ -+#define YYACCEPT goto yyacceptlab -+#define YYABORT goto yyabortlab -+#define YYERROR goto yyerrorlab -+ - - #define YYRECOVERING() (!!yyerrstatus) - -@@ -1430,27 +1312,15 @@ do \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ -- YYERROR; \ -- } \ --while (YYID (0)) -+ YYERROR; \ -+ } \ -+while (0) - - /* Error token number */ --#define YYTERROR 1 --#define YYERRCODE 256 -- -- --/* This macro is provided for backward compatibility. */ --#ifndef YY_LOCATION_PRINT --# define YY_LOCATION_PRINT(File, Loc) ((void) 0) --#endif -+#define YYTERROR 1 -+#define YYERRCODE 256 - - --/* YYLEX -- calling `yylex' with the right arguments. */ --#ifdef YYLEX_PARAM --# define YYLEX yylex (YYLEX_PARAM) --#else --# define YYLEX yylex () --#endif - - /* Enable debugging if requested. */ - #if YYDEBUG -@@ -1460,40 +1330,36 @@ while (YYID (0)) - # define YYFPRINTF fprintf - # endif - --# define YYDPRINTF(Args) \ --do { \ -- if (yydebug) \ -- YYFPRINTF Args; \ --} while (YYID (0)) -+# define YYDPRINTF(Args) \ -+do { \ -+ if (yydebug) \ -+ YYFPRINTF Args; \ -+} while (0) - --# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ --do { \ -- if (yydebug) \ -- { \ -- YYFPRINTF (stderr, "%s ", Title); \ -- yy_symbol_print (stderr, \ -- Type, Value); \ -- YYFPRINTF (stderr, "\n"); \ -- } \ --} while (YYID (0)) -+/* This macro is provided for backward compatibility. */ -+#ifndef YY_LOCATION_PRINT -+# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -+#endif - - --/*--------------------------------. --| Print this symbol on YYOUTPUT. | --`--------------------------------*/ -+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -+do { \ -+ if (yydebug) \ -+ { \ -+ YYFPRINTF (stderr, "%s ", Title); \ -+ yy_symbol_print (stderr, \ -+ Type, Value); \ -+ YYFPRINTF (stderr, "\n"); \ -+ } \ -+} while (0) -+ -+ -+/*----------------------------------------. -+| Print this symbol's value on YYOUTPUT. | -+`----------------------------------------*/ - --/*ARGSUSED*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) --#else --static void --yy_symbol_value_print (yyoutput, yytype, yyvaluep) -- FILE *yyoutput; -- int yytype; -- YYSTYPE const * const yyvaluep; --#endif - { - FILE *yyo = yyoutput; - YYUSE (yyo); -@@ -1502,14 +1368,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) - # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); --# else -- YYUSE (yyoutput); - # endif -- switch (yytype) -- { -- default: -- break; -- } -+ YYUSE (yytype); - } - - -@@ -1517,22 +1377,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) - | Print this symbol on YYOUTPUT. | - `--------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) --#else --static void --yy_symbol_print (yyoutput, yytype, yyvaluep) -- FILE *yyoutput; -- int yytype; -- YYSTYPE const * const yyvaluep; --#endif - { -- if (yytype < YYNTOKENS) -- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); -- else -- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); -+ YYFPRINTF (yyoutput, "%s %s (", -+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -@@ -1543,16 +1392,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) - | TOP (included). | - `------------------------------------------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) --#else --static void --yy_stack_print (yybottom, yytop) -- yytype_int16 *yybottom; -- yytype_int16 *yytop; --#endif - { - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) -@@ -1563,49 +1404,42 @@ yy_stack_print (yybottom, yytop) - YYFPRINTF (stderr, "\n"); - } - --# define YY_STACK_PRINT(Bottom, Top) \ --do { \ -- if (yydebug) \ -- yy_stack_print ((Bottom), (Top)); \ --} while (YYID (0)) -+# define YY_STACK_PRINT(Bottom, Top) \ -+do { \ -+ if (yydebug) \ -+ yy_stack_print ((Bottom), (Top)); \ -+} while (0) - - - /*------------------------------------------------. - | Report that the YYRULE is going to be reduced. | - `------------------------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --static void --yy_reduce_print (YYSTYPE *yyvsp, int yyrule) --#else - static void --yy_reduce_print (yyvsp, yyrule) -- YYSTYPE *yyvsp; -- int yyrule; --#endif -+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) - { -+ unsigned long int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; -- unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", -- yyrule - 1, yylno); -+ yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); -- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], -- &(yyvsp[(yyi + 1) - (yynrhs)]) -- ); -+ yy_symbol_print (stderr, -+ yystos[yyssp[yyi + 1 - yynrhs]], -+ &(yyvsp[(yyi + 1) - (yynrhs)]) -+ ); - YYFPRINTF (stderr, "\n"); - } - } - --# define YY_REDUCE_PRINT(Rule) \ --do { \ -- if (yydebug) \ -- yy_reduce_print (yyvsp, Rule); \ --} while (YYID (0)) -+# define YY_REDUCE_PRINT(Rule) \ -+do { \ -+ if (yydebug) \ -+ yy_reduce_print (yyssp, yyvsp, Rule); \ -+} while (0) - - /* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -@@ -1619,7 +1453,7 @@ int yydebug; - - - /* YYINITDEPTH -- initial size of the parser's stacks. */ --#ifndef YYINITDEPTH -+#ifndef YYINITDEPTH - # define YYINITDEPTH 200 - #endif - -@@ -1642,15 +1476,8 @@ int yydebug; - # define yystrlen strlen - # else - /* Return the length of YYSTR. */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static YYSIZE_T - yystrlen (const char *yystr) --#else --static YYSIZE_T --yystrlen (yystr) -- const char *yystr; --#endif - { - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) -@@ -1666,16 +1493,8 @@ yystrlen (yystr) - # else - /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static char * - yystpcpy (char *yydest, const char *yysrc) --#else --static char * --yystpcpy (yydest, yysrc) -- char *yydest; -- const char *yysrc; --#endif - { - char *yyd = yydest; - const char *yys = yysrc; -@@ -1705,27 +1524,27 @@ yytnamerr (char *yyres, const char *yystr) - char const *yyp = yystr; - - for (;;) -- switch (*++yyp) -- { -- case '\'': -- case ',': -- goto do_not_strip_quotes; -- -- case '\\': -- if (*++yyp != '\\') -- goto do_not_strip_quotes; -- /* Fall through. */ -- default: -- if (yyres) -- yyres[yyn] = *yyp; -- yyn++; -- break; -- -- case '"': -- if (yyres) -- yyres[yyn] = '\0'; -- return yyn; -- } -+ switch (*++yyp) -+ { -+ case '\'': -+ case ',': -+ goto do_not_strip_quotes; -+ -+ case '\\': -+ if (*++yyp != '\\') -+ goto do_not_strip_quotes; -+ /* Fall through. */ -+ default: -+ if (yyres) -+ yyres[yyn] = *yyp; -+ yyn++; -+ break; -+ -+ case '"': -+ if (yyres) -+ yyres[yyn] = '\0'; -+ return yyn; -+ } - do_not_strip_quotes: ; - } - -@@ -1748,11 +1567,11 @@ static int - yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - yytype_int16 *yyssp, int yytoken) - { -- YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); -+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - YYSIZE_T yysize = yysize0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - /* Internationalized format string. */ -- const char *yyformat = YY_NULL; -+ const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat. */ - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per -@@ -1760,10 +1579,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - int yycount = 0; - - /* There are many possibilities here to consider: -- - Assume YYFAIL is not used. It's too flawed to consider. See -- -- for details. YYERROR is fine as it does not invoke this -- function. - - If this state is a consistent state with a default action, then - the only way this function was invoked is if the default action - is an error action. In that case, don't check for expected -@@ -1813,7 +1628,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - } - yyarg[yycount++] = yytname[yyx]; - { -- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); -+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; -@@ -1880,31 +1695,17 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, - | Release the memory associated to this symbol. | - `-----------------------------------------------*/ - --/*ARGSUSED*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) --#else --static void --yydestruct (yymsg, yytype, yyvaluep) -- const char *yymsg; -- int yytype; -- YYSTYPE *yyvaluep; --#endif - { - YYUSE (yyvaluep); -- - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - -- switch (yytype) -- { -- -- default: -- break; -- } -+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+ YYUSE (yytype); -+ YY_IGNORE_MAYBE_UNINITIALIZED_END - } - - -@@ -1913,18 +1714,8 @@ yydestruct (yymsg, yytype, yyvaluep) - /* The lookahead symbol. */ - int yychar; - -- --#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN --# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN --# define YY_IGNORE_MAYBE_UNINITIALIZED_END --#endif --#ifndef YY_INITIAL_VALUE --# define YY_INITIAL_VALUE(Value) /* Nothing. */ --#endif -- - /* The semantic value of the lookahead symbol. */ --YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); -- -+YYSTYPE yylval; - /* Number of syntax errors so far. */ - int yynerrs; - -@@ -1933,35 +1724,16 @@ int yynerrs; - | yyparse. | - `----------*/ - --#ifdef YYPARSE_PARAM --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --int --yyparse (void *YYPARSE_PARAM) --#else --int --yyparse (YYPARSE_PARAM) -- void *YYPARSE_PARAM; --#endif --#else /* ! YYPARSE_PARAM */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - int - yyparse (void) --#else --int --yyparse () -- --#endif --#endif - { - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: -- `yyss': related to states. -- `yyvs': related to semantic values. -+ 'yyss': related to states. -+ 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ -@@ -2029,23 +1801,23 @@ yyparse () - - #ifdef yyoverflow - { -- /* Give user a chance to reallocate the stack. Use copies of -- these so that the &'s don't force the real ones into -- memory. */ -- YYSTYPE *yyvs1 = yyvs; -- yytype_int16 *yyss1 = yyss; -- -- /* Each stack pointer address is followed by the size of the -- data in use in that stack, in bytes. This used to be a -- conditional around just the two extra args, but that might -- be undefined if yyoverflow is a macro. */ -- yyoverflow (YY_("memory exhausted"), -- &yyss1, yysize * sizeof (*yyssp), -- &yyvs1, yysize * sizeof (*yyvsp), -- &yystacksize); -- -- yyss = yyss1; -- yyvs = yyvs1; -+ /* Give user a chance to reallocate the stack. Use copies of -+ these so that the &'s don't force the real ones into -+ memory. */ -+ YYSTYPE *yyvs1 = yyvs; -+ yytype_int16 *yyss1 = yyss; -+ -+ /* Each stack pointer address is followed by the size of the -+ data in use in that stack, in bytes. This used to be a -+ conditional around just the two extra args, but that might -+ be undefined if yyoverflow is a macro. */ -+ yyoverflow (YY_("memory exhausted"), -+ &yyss1, yysize * sizeof (*yyssp), -+ &yyvs1, yysize * sizeof (*yyvsp), -+ &yystacksize); -+ -+ yyss = yyss1; -+ yyvs = yyvs1; - } - #else /* no yyoverflow */ - # ifndef YYSTACK_RELOCATE -@@ -2053,22 +1825,22 @@ yyparse () - # else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) -- goto yyexhaustedlab; -+ goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) -- yystacksize = YYMAXDEPTH; -+ yystacksize = YYMAXDEPTH; - - { -- yytype_int16 *yyss1 = yyss; -- union yyalloc *yyptr = -- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -- if (! yyptr) -- goto yyexhaustedlab; -- YYSTACK_RELOCATE (yyss_alloc, yyss); -- YYSTACK_RELOCATE (yyvs_alloc, yyvs); -+ yytype_int16 *yyss1 = yyss; -+ union yyalloc *yyptr = -+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -+ if (! yyptr) -+ goto yyexhaustedlab; -+ YYSTACK_RELOCATE (yyss_alloc, yyss); -+ YYSTACK_RELOCATE (yyvs_alloc, yyvs); - # undef YYSTACK_RELOCATE -- if (yyss1 != yyssa) -- YYSTACK_FREE (yyss1); -+ if (yyss1 != yyssa) -+ YYSTACK_FREE (yyss1); - } - # endif - #endif /* no yyoverflow */ -@@ -2077,10 +1849,10 @@ yyparse () - yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", -- (unsigned long int) yystacksize)); -+ (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) -- YYABORT; -+ YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); -@@ -2109,7 +1881,7 @@ yybackup: - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); -- yychar = YYLEX; -+ yychar = yylex (); - } - - if (yychar <= YYEOF) -@@ -2174,7 +1946,7 @@ yyreduce: - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: -- `$$ = $1'. -+ '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison -@@ -2188,16 +1960,15 @@ yyreduce: - switch (yyn) - { - case 10: --/* Line 1792 of yacc.c */ --#line 131 "util/configparser.y" -+#line 132 "util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("\nP(server:)\n")); - } -+#line 1968 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 118: --/* Line 1792 of yacc.c */ --#line 183 "util/configparser.y" -+ case 119: -+#line 184 "util/configparser.y" /* yacc.c:1646 */ - { - struct config_stub* s; - OUTYY(("\nP(stub_zone:)\n")); -@@ -2208,11 +1979,11 @@ yyreduce: - } else - yyerror("out of memory"); - } -+#line 1983 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 126: --/* Line 1792 of yacc.c */ --#line 199 "util/configparser.y" -+ case 127: -+#line 200 "util/configparser.y" /* yacc.c:1646 */ - { - struct config_stub* s; - OUTYY(("\nP(forward_zone:)\n")); -@@ -2223,87 +1994,87 @@ yyreduce: - } else - yyerror("out of memory"); - } -+#line 1998 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 133: --/* Line 1792 of yacc.c */ --#line 215 "util/configparser.y" -+ case 134: -+#line 216 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2010 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 134: --/* Line 1792 of yacc.c */ --#line 224 "util/configparser.y" -+ case 135: -+#line 225 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2022 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 135: --/* Line 1792 of yacc.c */ --#line 233 "util/configparser.y" -+ case 136: -+#line 234 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) -+ OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) - cfg_parser->cfg->stat_interval = 0; -- else if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ else if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2036 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 136: --/* Line 1792 of yacc.c */ --#line 244 "util/configparser.y" -+ case 137: -+#line 245 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2048 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 137: --/* Line 1792 of yacc.c */ --#line 253 "util/configparser.y" -+ case 138: -+#line 254 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2060 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 138: --/* Line 1792 of yacc.c */ --#line 262 "util/configparser.y" -+ case 139: -+#line 263 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("port number expected"); -- else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->port = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2072 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 139: --/* Line 1792 of yacc.c */ --#line 271 "util/configparser.y" -+ case 140: -+#line 272 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->num_ifs == 0) - cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); - else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, -@@ -2311,15 +2082,15 @@ yyreduce: - if(!cfg_parser->cfg->ifs) - yyerror("out of memory"); - else -- cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); - } -+#line 2088 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 140: --/* Line 1792 of yacc.c */ --#line 284 "util/configparser.y" -+ case 141: -+#line 285 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->num_out_ifs == 0) - cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); - else cfg_parser->cfg->out_ifs = realloc( -@@ -2329,1136 +2100,1148 @@ yyreduce: - yyerror("out of memory"); - else - cfg_parser->cfg->out_ifs[ -- cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str); -- } -- break; -- -- case 141: --/* Line 1792 of yacc.c */ --#line 299 "util/configparser.y" -- { -- OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -- yyerror("number expected"); -- else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); - } -+#line 2106 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 142: --/* Line 1792 of yacc.c */ --#line 308 "util/configparser.y" -+#line 300 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, -- cfg_parser->cfg->outgoing_avail_ports, 65536)) -- yyerror("port number or range (\"low-high\") expected"); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) -+ yyerror("number expected"); -+ else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2118 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 143: --/* Line 1792 of yacc.c */ --#line 317 "util/configparser.y" -+#line 309 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, -+ OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); -+ if(!cfg_mark_ports((yyvsp[0].str), 1, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2130 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 144: --/* Line 1792 of yacc.c */ --#line 326 "util/configparser.y" -+#line 318 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -- yyerror("number expected"); -- else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); -+ if(!cfg_mark_ports((yyvsp[0].str), 0, -+ cfg_parser->cfg->outgoing_avail_ports, 65536)) -+ yyerror("port number or range (\"low-high\") expected"); -+ free((yyvsp[0].str)); - } -+#line 2142 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 145: --/* Line 1792 of yacc.c */ --#line 335 "util/configparser.y" -+#line 327 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2154 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 146: --/* Line 1792 of yacc.c */ --#line 344 "util/configparser.y" -+#line 336 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -- yyerror("expected yes or no."); -- else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) -+ yyerror("number expected"); -+ else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2166 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 147: --/* Line 1792 of yacc.c */ --#line 353 "util/configparser.y" -+#line 345 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2178 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 148: --/* Line 1792 of yacc.c */ --#line 362 "util/configparser.y" -+#line 354 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2190 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 149: --/* Line 1792 of yacc.c */ --#line 371 "util/configparser.y" -+#line 363 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2202 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 150: --/* Line 1792 of yacc.c */ --#line 380 "util/configparser.y" -+#line 372 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2214 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 151: --/* Line 1792 of yacc.c */ --#line 389 "util/configparser.y" -+#line 381 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2226 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 152: --/* Line 1792 of yacc.c */ --#line 398 "util/configparser.y" -+#line 390 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2238 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 153: --/* Line 1792 of yacc.c */ --#line 407 "util/configparser.y" -+#line 399 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->ssl_service_key); -- cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) -+ yyerror("expected yes or no."); -+ else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2250 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 154: --/* Line 1792 of yacc.c */ --#line 414 "util/configparser.y" -+#line 408 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->ssl_service_pem); -- cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->ssl_service_key); -+ cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); - } -+#line 2260 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 155: --/* Line 1792 of yacc.c */ --#line 421 "util/configparser.y" -+#line 415 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -- yyerror("port number expected"); -- else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->ssl_service_pem); -+ cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); - } -+#line 2270 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 156: --/* Line 1792 of yacc.c */ --#line 430 "util/configparser.y" -+#line 422 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -- yyerror("expected yes or no."); -- else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) -+ yyerror("port number expected"); -+ else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2282 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 157: --/* Line 1792 of yacc.c */ --#line 439 "util/configparser.y" -+#line 431 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); --#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) -- if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0) -- yyerror("no syslog services are available. " -- "(reconfigure and compile to add)"); --#endif -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2294 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 158: --/* Line 1792 of yacc.c */ --#line 453 "util/configparser.y" -+#line 440 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0); -+#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) -+ if(strcmp((yyvsp[0].str), "yes") == 0) -+ yyerror("no syslog services are available. " -+ "(reconfigure and compile to add)"); -+#endif -+ free((yyvsp[0].str)); - } -+#line 2311 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 159: --/* Line 1792 of yacc.c */ --#line 462 "util/configparser.y" -+#line 454 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2323 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 160: --/* Line 1792 of yacc.c */ --#line 471 "util/configparser.y" -+#line 463 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->chrootdir); -- cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) -+ yyerror("expected yes or no."); -+ else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2335 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 161: --/* Line 1792 of yacc.c */ --#line 478 "util/configparser.y" -+#line 472 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->username); -- cfg_parser->cfg->username = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->chrootdir); -+ cfg_parser->cfg->chrootdir = (yyvsp[0].str); - } -+#line 2345 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 162: --/* Line 1792 of yacc.c */ --#line 485 "util/configparser.y" -+#line 479 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->directory); -- cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->username); -+ cfg_parser->cfg->username = (yyvsp[0].str); - } -+#line 2355 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 163: --/* Line 1792 of yacc.c */ --#line 492 "util/configparser.y" -+#line 486 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->logfile); -- cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str); -- cfg_parser->cfg->use_syslog = 0; -+ OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->directory); -+ cfg_parser->cfg->directory = (yyvsp[0].str); - } -+#line 2365 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 164: --/* Line 1792 of yacc.c */ --#line 500 "util/configparser.y" -+#line 493 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->pidfile); -- cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->logfile); -+ cfg_parser->cfg->logfile = (yyvsp[0].str); -+ cfg_parser->cfg->use_syslog = 0; - } -+#line 2376 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 165: --/* Line 1792 of yacc.c */ --#line 507 "util/configparser.y" -+#line 501 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) -- yyerror("out of memory"); -+ OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->pidfile); -+ cfg_parser->cfg->pidfile = (yyvsp[0].str); - } -+#line 2386 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 166: --/* Line 1792 of yacc.c */ --#line 514 "util/configparser.y" -+#line 508 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->dlv_anchor_file); -- cfg_parser->cfg->dlv_anchor_file = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) -+ yyerror("out of memory"); - } -+#line 2396 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 167: --/* Line 1792 of yacc.c */ --#line 521 "util/configparser.y" -+#line 515 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) -- yyerror("out of memory"); -+ OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->dlv_anchor_file); -+ cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); - } -+#line 2406 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 168: --/* Line 1792 of yacc.c */ --#line 528 "util/configparser.y" -+#line 522 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg-> -- auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2416 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 169: --/* Line 1792 of yacc.c */ --#line 536 "util/configparser.y" -+#line 529 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg-> -- trust_anchor_file_list, (yyvsp[(2) - (2)].str))) -+ auto_trust_anchor_file_list, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2427 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 170: --/* Line 1792 of yacc.c */ --#line 544 "util/configparser.y" -+#line 537 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg-> -- trusted_keys_file_list, (yyvsp[(2) - (2)].str))) -+ trust_anchor_file_list, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2438 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 171: --/* Line 1792 of yacc.c */ --#line 552 "util/configparser.y" -+#line 545 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg-> -+ trusted_keys_file_list, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2449 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 172: --/* Line 1792 of yacc.c */ --#line 559 "util/configparser.y" -+#line 553 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2459 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 173: --/* Line 1792 of yacc.c */ --#line 566 "util/configparser.y" -+#line 560 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -- yyerror("expected yes or no."); -- else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) -+ yyerror("out of memory"); - } -+#line 2469 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 174: --/* Line 1792 of yacc.c */ --#line 575 "util/configparser.y" -+#line 567 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2481 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 175: --/* Line 1792 of yacc.c */ --#line 584 "util/configparser.y" -+#line 576 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->identity); -- cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) -+ yyerror("expected yes or no."); -+ else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2493 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 176: --/* Line 1792 of yacc.c */ --#line 591 "util/configparser.y" -+#line 585 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); -- free(cfg_parser->cfg->version); -- cfg_parser->cfg->version = (yyvsp[(2) - (2)].str); -+ OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->identity); -+ cfg_parser->cfg->identity = (yyvsp[0].str); - } -+#line 2503 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 177: --/* Line 1792 of yacc.c */ --#line 598 "util/configparser.y" -+#line 592 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) -- yyerror("buffer size expected"); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); -+ free(cfg_parser->cfg->version); -+ cfg_parser->cfg->version = (yyvsp[0].str); - } -+#line 2513 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 178: --/* Line 1792 of yacc.c */ --#line 606 "util/configparser.y" -+#line 599 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) -+ OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) - yyerror("buffer size expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2524 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 179: --/* Line 1792 of yacc.c */ --#line 614 "util/configparser.y" -+#line 607 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) -+ yyerror("buffer size expected"); -+ free((yyvsp[0].str)); -+ } -+#line 2535 "util/configparser.c" /* yacc.c:1646 */ -+ break; -+ -+ case 180: -+#line 615 "util/configparser.y" /* yacc.c:1646 */ -+ { -+ OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->so_reuseport = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2548 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 180: --/* Line 1792 of yacc.c */ --#line 624 "util/configparser.y" -+ case 181: -+#line 625 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- else if (atoi((yyvsp[(2) - (2)].str)) < 12) -+ else if (atoi((yyvsp[0].str)) < 12) - yyerror("edns buffer size too small"); -- else if (atoi((yyvsp[(2) - (2)].str)) > 65535) -+ else if (atoi((yyvsp[0].str)) > 65535) - cfg_parser->cfg->edns_buffer_size = 65535; -- else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2564 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 181: --/* Line 1792 of yacc.c */ --#line 637 "util/configparser.y" -+ case 182: -+#line 638 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- else if (atoi((yyvsp[(2) - (2)].str)) < 4096) -+ else if (atoi((yyvsp[0].str)) < 4096) - yyerror("message buffer size too small (use 4096)"); -- else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2578 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 182: --/* Line 1792 of yacc.c */ --#line 648 "util/configparser.y" -+ case 183: -+#line 649 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) -+ OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) - yyerror("memory size expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2589 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 183: --/* Line 1792 of yacc.c */ --#line 656 "util/configparser.y" -+ case 184: -+#line 657 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { -- cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) - yyerror("must be a power of 2"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2605 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 184: --/* Line 1792 of yacc.c */ --#line 669 "util/configparser.y" -+ case 185: -+#line 670 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2617 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 185: --/* Line 1792 of yacc.c */ --#line 678 "util/configparser.y" -+ case 186: -+#line 679 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2629 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 186: --/* Line 1792 of yacc.c */ --#line 687 "util/configparser.y" -+ case 187: -+#line 688 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->delay_close = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2641 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 187: --/* Line 1792 of yacc.c */ --#line 696 "util/configparser.y" -+ case 188: -+#line 697 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->unblock_lan_zones = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2654 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 188: --/* Line 1792 of yacc.c */ --#line 706 "util/configparser.y" -+ case 189: -+#line 707 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) -+ OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) - yyerror("memory size expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2665 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 189: --/* Line 1792 of yacc.c */ --#line 714 "util/configparser.y" -+ case 190: -+#line 715 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { -- cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) - yyerror("must be a power of 2"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2681 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 190: --/* Line 1792 of yacc.c */ --#line 727 "util/configparser.y" -+ case 191: -+#line 728 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2693 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 191: --/* Line 1792 of yacc.c */ --#line 736 "util/configparser.y" -+ case 192: -+#line 737 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); - verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " -- "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ "removed, use infra-host-ttl)", (yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2704 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 192: --/* Line 1792 of yacc.c */ --#line 744 "util/configparser.y" -+ case 193: -+#line 745 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2716 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 193: --/* Line 1792 of yacc.c */ --#line 753 "util/configparser.y" -+ case 194: -+#line 754 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); - verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " -- "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2727 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 194: --/* Line 1792 of yacc.c */ --#line 761 "util/configparser.y" -+ case 195: -+#line 762 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { -- cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) - yyerror("must be a power of 2"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2743 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 195: --/* Line 1792 of yacc.c */ --#line 774 "util/configparser.y" -+ case 196: -+#line 775 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2755 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 196: --/* Line 1792 of yacc.c */ --#line 783 "util/configparser.y" -+ case 197: -+#line 784 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->target_fetch_policy); -- cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); - } -+#line 2765 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 197: --/* Line 1792 of yacc.c */ --#line 790 "util/configparser.y" -+ case 198: -+#line 791 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_short_bufsize = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2778 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 198: --/* Line 1792 of yacc.c */ --#line 800 "util/configparser.y" -+ case 199: -+#line 801 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_large_queries = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2791 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 199: --/* Line 1792 of yacc.c */ --#line 810 "util/configparser.y" -+ case 200: -+#line 811 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_glue = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2804 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 200: --/* Line 1792 of yacc.c */ --#line 820 "util/configparser.y" -+ case 201: -+#line 821 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_dnssec_stripped = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2817 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 201: --/* Line 1792 of yacc.c */ --#line 830 "util/configparser.y" -+ case 202: -+#line 831 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_below_nxdomain = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2830 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 202: --/* Line 1792 of yacc.c */ --#line 840 "util/configparser.y" -+ case 203: -+#line 841 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_referral_path = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2843 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 203: --/* Line 1792 of yacc.c */ --#line 850 "util/configparser.y" -+ case 204: -+#line 851 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_caps_bits_for_id = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2856 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 204: --/* Line 1792 of yacc.c */ --#line 860 "util/configparser.y" -+ case 205: -+#line 861 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2866 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 205: --/* Line 1792 of yacc.c */ --#line 867 "util/configparser.y" -+ case 206: -+#line 868 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2876 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 206: --/* Line 1792 of yacc.c */ --#line 874 "util/configparser.y" -+ case 207: -+#line 875 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2888 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 207: --/* Line 1792 of yacc.c */ --#line 883 "util/configparser.y" -+ case 208: -+#line 884 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2900 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 208: --/* Line 1792 of yacc.c */ --#line 892 "util/configparser.y" -+ case 209: -+#line 893 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 2912 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 209: --/* Line 1792 of yacc.c */ --#line 901 "util/configparser.y" -+ case 210: -+#line 902 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 2922 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 210: --/* Line 1792 of yacc.c */ --#line 908 "util/configparser.y" -+ case 211: -+#line 909 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->donotquery_localhost = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 2935 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 211: --/* Line 1792 of yacc.c */ --#line 918 "util/configparser.y" -- { -- OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); -- if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "deny_non_local")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "refuse_non_local")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "allow")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) { -+ case 212: -+#line 919 "util/configparser.y" /* yacc.c:1646 */ -+ { -+ OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && -+ strcmp((yyvsp[0].str), "deny_non_local")!=0 && -+ strcmp((yyvsp[0].str), "refuse_non_local")!=0 && -+ strcmp((yyvsp[0].str), "allow")!=0 && -+ strcmp((yyvsp[0].str), "allow_snoop")!=0) { - yyerror("expected deny, refuse, deny_non_local, " - "refuse_non_local, allow or allow_snoop " - "in access control action"); - } else { -- if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) -+ if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding acl"); - } - } -+#line 2955 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 212: --/* Line 1792 of yacc.c */ --#line 935 "util/configparser.y" -+ case 213: -+#line 936 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->module_conf); -- cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->module_conf = (yyvsp[0].str); - } -+#line 2965 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 213: --/* Line 1792 of yacc.c */ --#line 942 "util/configparser.y" -+ case 214: -+#line 943 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { -+ OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); -+ if(strlen((yyvsp[0].str)) == 0 || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_date_override = 0; -- } else if(strlen((yyvsp[(2) - (2)].str)) == 14) { -+ } else if(strlen((yyvsp[0].str)) == 14) { - cfg_parser->cfg->val_date_override = -- cfg_convert_timeval((yyvsp[(2) - (2)].str)); -+ cfg_convert_timeval((yyvsp[0].str)); - if(!cfg_parser->cfg->val_date_override) - yyerror("bad date/time specification"); - } else { -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); -- cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str)); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 2986 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 214: --/* Line 1792 of yacc.c */ --#line 960 "util/configparser.y" -+ case 215: -+#line 961 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { -+ OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); -+ if(strlen((yyvsp[0].str)) == 0 || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_sig_skew_min = 0; - } else { -- cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str)); - if(!cfg_parser->cfg->val_sig_skew_min) - yyerror("number expected"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 3002 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 215: --/* Line 1792 of yacc.c */ --#line 973 "util/configparser.y" -+ case 216: -+#line 974 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { -+ OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); -+ if(strlen((yyvsp[0].str)) == 0 || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_sig_skew_max = 0; - } else { -- cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str)); - if(!cfg_parser->cfg->val_sig_skew_max) - yyerror("number expected"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 3018 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 216: --/* Line 1792 of yacc.c */ --#line 986 "util/configparser.y" -+ case 217: -+#line 987 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3030 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 217: --/* Line 1792 of yacc.c */ --#line 995 "util/configparser.y" -+ case 218: -+#line 996 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3042 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 218: --/* Line 1792 of yacc.c */ --#line 1004 "util/configparser.y" -+ case 219: -+#line 1005 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3054 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 219: --/* Line 1792 of yacc.c */ --#line 1013 "util/configparser.y" -+ case 220: -+#line 1014 "util/configparser.y" /* yacc.c:1646 */ -+ { -+ OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) -+ yyerror("number expected"); -+ else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); -+ } -+#line 3066 "util/configparser.c" /* yacc.c:1646 */ -+ break; -+ -+ case 221: -+#line 1023 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_clean_additional = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3079 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 220: --/* Line 1792 of yacc.c */ --#line 1023 "util/configparser.y" -+ case 222: -+#line 1033 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_permissive_mode = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3092 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 221: --/* Line 1792 of yacc.c */ --#line 1033 "util/configparser.y" -+ case 223: -+#line 1043 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3104 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 222: --/* Line 1792 of yacc.c */ --#line 1042 "util/configparser.y" -+ case 224: -+#line 1052 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3116 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 223: --/* Line 1792 of yacc.c */ --#line 1051 "util/configparser.y" -+ case 225: -+#line 1061 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->val_nsec3_key_iterations); -- cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); - } -+#line 3126 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 224: --/* Line 1792 of yacc.c */ --#line 1058 "util/configparser.y" -+ case 226: -+#line 1068 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3138 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 225: --/* Line 1792 of yacc.c */ --#line 1067 "util/configparser.y" -+ case 227: -+#line 1077 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3150 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 226: --/* Line 1792 of yacc.c */ --#line 1076 "util/configparser.y" -+ case 228: -+#line 1086 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) -+ OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); -- else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3162 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 227: --/* Line 1792 of yacc.c */ --#line 1085 "util/configparser.y" -+ case 229: -+#line 1095 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) -+ OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) - yyerror("memory size expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 3173 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 228: --/* Line 1792 of yacc.c */ --#line 1093 "util/configparser.y" -+ case 230: -+#line 1103 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { -- cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str)); -+ cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) - yyerror("must be a power of 2"); - } -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 3189 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 229: --/* Line 1792 of yacc.c */ --#line 1106 "util/configparser.y" -+ case 231: -+#line 1116 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) -+ OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); -+ if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) - yyerror("memory size expected"); -- free((yyvsp[(2) - (2)].str)); -+ free((yyvsp[0].str)); - } -+#line 3200 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 230: --/* Line 1792 of yacc.c */ --#line 1114 "util/configparser.y" -- { -- OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); -- if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0 -- && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 && -- strcmp((yyvsp[(3) - (3)].str), "inform")!=0) -+ case 232: -+#line 1124 "util/configparser.y" /* yacc.c:1646 */ -+ { -+ OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && -+ strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && -+ strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 -+ && strcmp((yyvsp[0].str), "typetransparent")!=0 && -+ strcmp((yyvsp[0].str), "inform")!=0) - yyerror("local-zone type: expected static, deny, " - "refuse, redirect, transparent, " - "typetransparent, inform or nodefault"); -- else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { -+ else if(strcmp((yyvsp[0].str), "nodefault")==0) { - if(!cfg_strlist_insert(&cfg_parser->cfg-> -- local_zones_nodefault, (yyvsp[(2) - (3)].str))) -+ local_zones_nodefault, (yyvsp[-1].str))) - fatal_exit("out of memory adding local-zone"); -- free((yyvsp[(3) - (3)].str)); -+ free((yyvsp[0].str)); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, -- (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) -+ (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding local-zone"); - } - } -+#line 3226 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 231: --/* Line 1792 of yacc.c */ --#line 1137 "util/configparser.y" -+ case 233: -+#line 1147 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) - fatal_exit("out of memory adding local-data"); - } -+#line 3236 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 232: --/* Line 1792 of yacc.c */ --#line 1144 "util/configparser.y" -+ case 234: -+#line 1154 "util/configparser.y" /* yacc.c:1646 */ - { - char* ptr; -- OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); -- ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); -+ ptr = cfg_ptr_reverse((yyvsp[0].str)); -+ free((yyvsp[0].str)); - if(ptr) { - if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_data, ptr)) -@@ -3467,429 +3250,429 @@ yyreduce: - yyerror("local-data-ptr could not be reversed"); - } - } -+#line 3254 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 233: --/* Line 1792 of yacc.c */ --#line 1159 "util/configparser.y" -+ case 235: -+#line 1169 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->minimal_responses = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3267 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 234: --/* Line 1792 of yacc.c */ --#line 1169 "util/configparser.y" -+ case 236: -+#line 1179 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->rrset_roundrobin = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3280 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 235: --/* Line 1792 of yacc.c */ --#line 1179 "util/configparser.y" -+ case 237: -+#line 1189 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); -- cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); -+ cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3290 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 236: --/* Line 1792 of yacc.c */ --#line 1186 "util/configparser.y" -+ case 238: -+#line 1196 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dns64_prefix); -- cfg_parser->cfg->dns64_prefix = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); - } -+#line 3300 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 237: --/* Line 1792 of yacc.c */ --#line 1193 "util/configparser.y" -+ case 239: -+#line 1203 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3312 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 238: --/* Line 1792 of yacc.c */ --#line 1202 "util/configparser.y" -+ case 240: -+#line 1212 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(name:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->stubs->name) - yyerror("stub name override, there must be one name " - "for one stub-zone"); - free(cfg_parser->cfg->stubs->name); -- cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->stubs->name = (yyvsp[0].str); - } -+#line 3325 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 239: --/* Line 1792 of yacc.c */ --#line 1212 "util/configparser.y" -+ case 241: -+#line 1222 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 3335 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 240: --/* Line 1792 of yacc.c */ --#line 1219 "util/configparser.y" -+ case 242: -+#line 1229 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 3345 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 241: --/* Line 1792 of yacc.c */ --#line 1226 "util/configparser.y" -+ case 243: -+#line 1236 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3357 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 242: --/* Line 1792 of yacc.c */ --#line 1235 "util/configparser.y" -+ case 244: -+#line 1245 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isprime = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3370 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 243: --/* Line 1792 of yacc.c */ --#line 1245 "util/configparser.y" -+ case 245: -+#line 1255 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(name:%s)\n", (yyvsp[0].str))); - if(cfg_parser->cfg->forwards->name) - yyerror("forward name override, there must be one " - "name for one forward-zone"); - free(cfg_parser->cfg->forwards->name); -- cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->forwards->name = (yyvsp[0].str); - } -+#line 3383 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 244: --/* Line 1792 of yacc.c */ --#line 1255 "util/configparser.y" -+ case 246: -+#line 1265 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 3393 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 245: --/* Line 1792 of yacc.c */ --#line 1262 "util/configparser.y" -+ case 247: -+#line 1272 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 3403 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 246: --/* Line 1792 of yacc.c */ --#line 1269 "util/configparser.y" -+ case 248: -+#line 1279 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3415 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 247: --/* Line 1792 of yacc.c */ --#line 1278 "util/configparser.y" -+ case 249: -+#line 1288 "util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("\nP(remote-control:)\n")); - } -+#line 3423 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 258: --/* Line 1792 of yacc.c */ --#line 1289 "util/configparser.y" -+ case 260: -+#line 1299 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->remote_control_enable = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3436 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 259: --/* Line 1792 of yacc.c */ --#line 1299 "util/configparser.y" -+ case 261: -+#line 1309 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); -- if(atoi((yyvsp[(2) - (2)].str)) == 0) -+ OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); -+ if(atoi((yyvsp[0].str)) == 0) - yyerror("control port number expected"); -- else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str)); -- free((yyvsp[(2) - (2)].str)); -+ else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); -+ free((yyvsp[0].str)); - } -+#line 3448 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 260: --/* Line 1792 of yacc.c */ --#line 1308 "util/configparser.y" -+ case 262: -+#line 1318 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); -- if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) -+ OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); -+ if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) - yyerror("out of memory"); - } -+#line 3458 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 261: --/* Line 1792 of yacc.c */ --#line 1315 "util/configparser.y" -+ case 263: -+#line 1325 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->remote_control_use_cert = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -- free((yyvsp[(2) - (2)].str)); -+ (strcmp((yyvsp[0].str), "yes")==0); -+ free((yyvsp[0].str)); - } -+#line 3471 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 262: --/* Line 1792 of yacc.c */ --#line 1325 "util/configparser.y" -+ case 264: -+#line 1335 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->server_key_file); -- cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->server_key_file = (yyvsp[0].str); - } -+#line 3481 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 263: --/* Line 1792 of yacc.c */ --#line 1332 "util/configparser.y" -+ case 265: -+#line 1342 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->server_cert_file); -- cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->server_cert_file = (yyvsp[0].str); - } -+#line 3491 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 264: --/* Line 1792 of yacc.c */ --#line 1339 "util/configparser.y" -+ case 266: -+#line 1349 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->control_key_file); -- cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->control_key_file = (yyvsp[0].str); - } -+#line 3501 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 265: --/* Line 1792 of yacc.c */ --#line 1346 "util/configparser.y" -+ case 267: -+#line 1356 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->control_cert_file); -- cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->control_cert_file = (yyvsp[0].str); - } -+#line 3511 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 266: --/* Line 1792 of yacc.c */ --#line 1353 "util/configparser.y" -+ case 268: -+#line 1363 "util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("\nP(dnstap:)\n")); - } -+#line 3519 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 281: --/* Line 1792 of yacc.c */ --#line 1370 "util/configparser.y" -+ case 283: -+#line 1380 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->dnstap = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3530 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 282: --/* Line 1792 of yacc.c */ --#line 1378 "util/configparser.y" -+ case 284: -+#line 1388 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_socket_path); -- cfg_parser->cfg->dnstap_socket_path = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); - } -+#line 3540 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 283: --/* Line 1792 of yacc.c */ --#line 1385 "util/configparser.y" -+ case 285: -+#line 1395 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3551 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 284: --/* Line 1792 of yacc.c */ --#line 1393 "util/configparser.y" -+ case 286: -+#line 1403 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -- else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3562 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 285: --/* Line 1792 of yacc.c */ --#line 1401 "util/configparser.y" -+ case 287: -+#line 1411 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_identity); -- cfg_parser->cfg->dnstap_identity = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); - } -+#line 3572 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 286: --/* Line 1792 of yacc.c */ --#line 1408 "util/configparser.y" -+ case 288: -+#line 1418 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_version); -- cfg_parser->cfg->dnstap_version = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->dnstap_version = (yyvsp[0].str); - } -+#line 3582 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 287: --/* Line 1792 of yacc.c */ --#line 1415 "util/configparser.y" -+ case 289: -+#line 1425 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_query_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3594 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 288: --/* Line 1792 of yacc.c */ --#line 1424 "util/configparser.y" -+ case 290: -+#line 1434 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_response_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3606 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 289: --/* Line 1792 of yacc.c */ --#line 1433 "util/configparser.y" -+ case 291: -+#line 1443 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_query_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3618 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 290: --/* Line 1792 of yacc.c */ --#line 1442 "util/configparser.y" -+ case 292: -+#line 1452 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_response_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3630 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 291: --/* Line 1792 of yacc.c */ --#line 1451 "util/configparser.y" -+ case 293: -+#line 1461 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_query_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3642 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 292: --/* Line 1792 of yacc.c */ --#line 1460 "util/configparser.y" -+ case 294: -+#line 1470 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); -- if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) -+ OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); -+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_response_messages = -- (strcmp((yyvsp[(2) - (2)].str), "yes")==0); -+ (strcmp((yyvsp[0].str), "yes")==0); - } -+#line 3654 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 293: --/* Line 1792 of yacc.c */ --#line 1469 "util/configparser.y" -+ case 295: -+#line 1479 "util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("\nP(python:)\n")); - } -+#line 3662 "util/configparser.c" /* yacc.c:1646 */ - break; - -- case 297: --/* Line 1792 of yacc.c */ --#line 1478 "util/configparser.y" -+ case 299: -+#line 1488 "util/configparser.y" /* yacc.c:1646 */ - { -- OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); -+ OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->python_script); -- cfg_parser->cfg->python_script = (yyvsp[(2) - (2)].str); -+ cfg_parser->cfg->python_script = (yyvsp[0].str); - } -+#line 3672 "util/configparser.c" /* yacc.c:1646 */ - break; - - --/* Line 1792 of yacc.c */ --#line 3893 "util/configparser.c" -+#line 3676 "util/configparser.c" /* yacc.c:1646 */ - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires -@@ -3911,7 +3694,7 @@ yyreduce: - - *++yyvsp = yyval; - -- /* Now `shift' the result of the reduction. Determine what state -+ /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - -@@ -3926,9 +3709,9 @@ yyreduce: - goto yynewstate; - - --/*------------------------------------. --| yyerrlab -- here on detecting error | --`------------------------------------*/ -+/*--------------------------------------. -+| yyerrlab -- here on detecting error. | -+`--------------------------------------*/ - yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ -@@ -3979,20 +3762,20 @@ yyerrlab: - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an -- error, discard it. */ -+ error, discard it. */ - - if (yychar <= YYEOF) -- { -- /* Return failure if at end of input. */ -- if (yychar == YYEOF) -- YYABORT; -- } -+ { -+ /* Return failure if at end of input. */ -+ if (yychar == YYEOF) -+ YYABORT; -+ } - else -- { -- yydestruct ("Error: discarding", -- yytoken, &yylval); -- yychar = YYEMPTY; -- } -+ { -+ yydestruct ("Error: discarding", -+ yytoken, &yylval); -+ yychar = YYEMPTY; -+ } - } - - /* Else will try to reuse lookahead token after shifting the error -@@ -4011,7 +3794,7 @@ yyerrorlab: - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - -- /* Do not reclaim the symbols of the rule which action triggered -+ /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; -@@ -4024,29 +3807,29 @@ yyerrorlab: - | yyerrlab1 -- common code for both syntax error and YYERROR. | - `-------------------------------------------------------------*/ - yyerrlab1: -- yyerrstatus = 3; /* Each real token shifted decrements this. */ -+ yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) -- { -- yyn += YYTERROR; -- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -- { -- yyn = yytable[yyn]; -- if (0 < yyn) -- break; -- } -- } -+ { -+ yyn += YYTERROR; -+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -+ { -+ yyn = yytable[yyn]; -+ if (0 < yyn) -+ break; -+ } -+ } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) -- YYABORT; -+ YYABORT; - - - yydestruct ("Error: popping", -- yystos[yystate], yyvsp); -+ yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); -@@ -4097,14 +3880,14 @@ yyreturn: - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } -- /* Do not reclaim the symbols of the rule which action triggered -+ /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", -- yystos[*yyssp], yyvsp); -+ yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } - #ifndef yyoverflow -@@ -4115,13 +3898,9 @@ yyreturn: - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - #endif -- /* Make sure YYID is used. */ -- return YYID (yyresult); -+ return yyresult; - } -- -- --/* Line 2055 of yacc.c */ --#line 1483 "util/configparser.y" -+#line 1493 "util/configparser.y" /* yacc.c:1906 */ - - - /* parse helper routines could be here */ -diff --git a/util/configparser.h b/util/configparser.h -index 95b6f64..0cb86ed 100644 ---- a/util/configparser.h -+++ b/util/configparser.h -@@ -1,19 +1,19 @@ --/* A Bison parser, made by GNU Bison 2.7. */ -+/* A Bison parser, made by GNU Bison 3.0.2. */ - - /* Bison interface for Yacc-like parsers in C -- -- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. -- -+ -+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. -+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. -- -+ - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -- -+ - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -@@ -26,13 +26,13 @@ - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. -- -+ - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - - #ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED - # define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED --/* Enabling traces. */ -+/* Debug traces. */ - #ifndef YYDEBUG - # define YYDEBUG 0 - #endif -@@ -40,161 +40,161 @@ - extern int yydebug; - #endif - --/* Tokens. */ -+/* Token type. */ - #ifndef YYTOKENTYPE - # define YYTOKENTYPE -- /* Put the tokens into the symbol table, so that GDB and other debuggers -- know about them. */ -- enum yytokentype { -- SPACE = 258, -- LETTER = 259, -- NEWLINE = 260, -- COMMENT = 261, -- COLON = 262, -- ANY = 263, -- ZONESTR = 264, -- STRING_ARG = 265, -- VAR_SERVER = 266, -- VAR_VERBOSITY = 267, -- VAR_NUM_THREADS = 268, -- VAR_PORT = 269, -- VAR_OUTGOING_RANGE = 270, -- VAR_INTERFACE = 271, -- VAR_DO_IP4 = 272, -- VAR_DO_IP6 = 273, -- VAR_DO_UDP = 274, -- VAR_DO_TCP = 275, -- VAR_CHROOT = 276, -- VAR_USERNAME = 277, -- VAR_DIRECTORY = 278, -- VAR_LOGFILE = 279, -- VAR_PIDFILE = 280, -- VAR_MSG_CACHE_SIZE = 281, -- VAR_MSG_CACHE_SLABS = 282, -- VAR_NUM_QUERIES_PER_THREAD = 283, -- VAR_RRSET_CACHE_SIZE = 284, -- VAR_RRSET_CACHE_SLABS = 285, -- VAR_OUTGOING_NUM_TCP = 286, -- VAR_INFRA_HOST_TTL = 287, -- VAR_INFRA_LAME_TTL = 288, -- VAR_INFRA_CACHE_SLABS = 289, -- VAR_INFRA_CACHE_NUMHOSTS = 290, -- VAR_INFRA_CACHE_LAME_SIZE = 291, -- VAR_NAME = 292, -- VAR_STUB_ZONE = 293, -- VAR_STUB_HOST = 294, -- VAR_STUB_ADDR = 295, -- VAR_TARGET_FETCH_POLICY = 296, -- VAR_HARDEN_SHORT_BUFSIZE = 297, -- VAR_HARDEN_LARGE_QUERIES = 298, -- VAR_FORWARD_ZONE = 299, -- VAR_FORWARD_HOST = 300, -- VAR_FORWARD_ADDR = 301, -- VAR_DO_NOT_QUERY_ADDRESS = 302, -- VAR_HIDE_IDENTITY = 303, -- VAR_HIDE_VERSION = 304, -- VAR_IDENTITY = 305, -- VAR_VERSION = 306, -- VAR_HARDEN_GLUE = 307, -- VAR_MODULE_CONF = 308, -- VAR_TRUST_ANCHOR_FILE = 309, -- VAR_TRUST_ANCHOR = 310, -- VAR_VAL_OVERRIDE_DATE = 311, -- VAR_BOGUS_TTL = 312, -- VAR_VAL_CLEAN_ADDITIONAL = 313, -- VAR_VAL_PERMISSIVE_MODE = 314, -- VAR_INCOMING_NUM_TCP = 315, -- VAR_MSG_BUFFER_SIZE = 316, -- VAR_KEY_CACHE_SIZE = 317, -- VAR_KEY_CACHE_SLABS = 318, -- VAR_TRUSTED_KEYS_FILE = 319, -- VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, -- VAR_USE_SYSLOG = 321, -- VAR_OUTGOING_INTERFACE = 322, -- VAR_ROOT_HINTS = 323, -- VAR_DO_NOT_QUERY_LOCALHOST = 324, -- VAR_CACHE_MAX_TTL = 325, -- VAR_HARDEN_DNSSEC_STRIPPED = 326, -- VAR_ACCESS_CONTROL = 327, -- VAR_LOCAL_ZONE = 328, -- VAR_LOCAL_DATA = 329, -- VAR_INTERFACE_AUTOMATIC = 330, -- VAR_STATISTICS_INTERVAL = 331, -- VAR_DO_DAEMONIZE = 332, -- VAR_USE_CAPS_FOR_ID = 333, -- VAR_STATISTICS_CUMULATIVE = 334, -- VAR_OUTGOING_PORT_PERMIT = 335, -- VAR_OUTGOING_PORT_AVOID = 336, -- VAR_DLV_ANCHOR_FILE = 337, -- VAR_DLV_ANCHOR = 338, -- VAR_NEG_CACHE_SIZE = 339, -- VAR_HARDEN_REFERRAL_PATH = 340, -- VAR_PRIVATE_ADDRESS = 341, -- VAR_PRIVATE_DOMAIN = 342, -- VAR_REMOTE_CONTROL = 343, -- VAR_CONTROL_ENABLE = 344, -- VAR_CONTROL_INTERFACE = 345, -- VAR_CONTROL_PORT = 346, -- VAR_SERVER_KEY_FILE = 347, -- VAR_SERVER_CERT_FILE = 348, -- VAR_CONTROL_KEY_FILE = 349, -- VAR_CONTROL_CERT_FILE = 350, -- VAR_CONTROL_USE_CERT = 351, -- VAR_EXTENDED_STATISTICS = 352, -- VAR_LOCAL_DATA_PTR = 353, -- VAR_JOSTLE_TIMEOUT = 354, -- VAR_STUB_PRIME = 355, -- VAR_UNWANTED_REPLY_THRESHOLD = 356, -- VAR_LOG_TIME_ASCII = 357, -- VAR_DOMAIN_INSECURE = 358, -- VAR_PYTHON = 359, -- VAR_PYTHON_SCRIPT = 360, -- VAR_VAL_SIG_SKEW_MIN = 361, -- VAR_VAL_SIG_SKEW_MAX = 362, -- VAR_CACHE_MIN_TTL = 363, -- VAR_VAL_LOG_LEVEL = 364, -- VAR_AUTO_TRUST_ANCHOR_FILE = 365, -- VAR_KEEP_MISSING = 366, -- VAR_ADD_HOLDDOWN = 367, -- VAR_DEL_HOLDDOWN = 368, -- VAR_SO_RCVBUF = 369, -- VAR_EDNS_BUFFER_SIZE = 370, -- VAR_PREFETCH = 371, -- VAR_PREFETCH_KEY = 372, -- VAR_SO_SNDBUF = 373, -- VAR_SO_REUSEPORT = 374, -- VAR_HARDEN_BELOW_NXDOMAIN = 375, -- VAR_IGNORE_CD_FLAG = 376, -- VAR_LOG_QUERIES = 377, -- VAR_TCP_UPSTREAM = 378, -- VAR_SSL_UPSTREAM = 379, -- VAR_SSL_SERVICE_KEY = 380, -- VAR_SSL_SERVICE_PEM = 381, -- VAR_SSL_PORT = 382, -- VAR_FORWARD_FIRST = 383, -- VAR_STUB_FIRST = 384, -- VAR_MINIMAL_RESPONSES = 385, -- VAR_RRSET_ROUNDROBIN = 386, -- VAR_MAX_UDP_SIZE = 387, -- VAR_DELAY_CLOSE = 388, -- VAR_UNBLOCK_LAN_ZONES = 389, -- VAR_INFRA_CACHE_MIN_RTT = 390, -- VAR_DNS64_PREFIX = 391, -- VAR_DNS64_SYNTHALL = 392, -- VAR_DNSTAP = 393, -- VAR_DNSTAP_ENABLE = 394, -- VAR_DNSTAP_SOCKET_PATH = 395, -- VAR_DNSTAP_SEND_IDENTITY = 396, -- VAR_DNSTAP_SEND_VERSION = 397, -- VAR_DNSTAP_IDENTITY = 398, -- VAR_DNSTAP_VERSION = 399, -- VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400, -- VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401, -- VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402, -- VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403, -- VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404, -- VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405 -- }; -+ enum yytokentype -+ { -+ SPACE = 258, -+ LETTER = 259, -+ NEWLINE = 260, -+ COMMENT = 261, -+ COLON = 262, -+ ANY = 263, -+ ZONESTR = 264, -+ STRING_ARG = 265, -+ VAR_SERVER = 266, -+ VAR_VERBOSITY = 267, -+ VAR_NUM_THREADS = 268, -+ VAR_PORT = 269, -+ VAR_OUTGOING_RANGE = 270, -+ VAR_INTERFACE = 271, -+ VAR_DO_IP4 = 272, -+ VAR_DO_IP6 = 273, -+ VAR_DO_UDP = 274, -+ VAR_DO_TCP = 275, -+ VAR_CHROOT = 276, -+ VAR_USERNAME = 277, -+ VAR_DIRECTORY = 278, -+ VAR_LOGFILE = 279, -+ VAR_PIDFILE = 280, -+ VAR_MSG_CACHE_SIZE = 281, -+ VAR_MSG_CACHE_SLABS = 282, -+ VAR_NUM_QUERIES_PER_THREAD = 283, -+ VAR_RRSET_CACHE_SIZE = 284, -+ VAR_RRSET_CACHE_SLABS = 285, -+ VAR_OUTGOING_NUM_TCP = 286, -+ VAR_INFRA_HOST_TTL = 287, -+ VAR_INFRA_LAME_TTL = 288, -+ VAR_INFRA_CACHE_SLABS = 289, -+ VAR_INFRA_CACHE_NUMHOSTS = 290, -+ VAR_INFRA_CACHE_LAME_SIZE = 291, -+ VAR_NAME = 292, -+ VAR_STUB_ZONE = 293, -+ VAR_STUB_HOST = 294, -+ VAR_STUB_ADDR = 295, -+ VAR_TARGET_FETCH_POLICY = 296, -+ VAR_HARDEN_SHORT_BUFSIZE = 297, -+ VAR_HARDEN_LARGE_QUERIES = 298, -+ VAR_FORWARD_ZONE = 299, -+ VAR_FORWARD_HOST = 300, -+ VAR_FORWARD_ADDR = 301, -+ VAR_DO_NOT_QUERY_ADDRESS = 302, -+ VAR_HIDE_IDENTITY = 303, -+ VAR_HIDE_VERSION = 304, -+ VAR_IDENTITY = 305, -+ VAR_VERSION = 306, -+ VAR_HARDEN_GLUE = 307, -+ VAR_MODULE_CONF = 308, -+ VAR_TRUST_ANCHOR_FILE = 309, -+ VAR_TRUST_ANCHOR = 310, -+ VAR_VAL_OVERRIDE_DATE = 311, -+ VAR_BOGUS_TTL = 312, -+ VAR_VAL_CLEAN_ADDITIONAL = 313, -+ VAR_VAL_PERMISSIVE_MODE = 314, -+ VAR_INCOMING_NUM_TCP = 315, -+ VAR_MSG_BUFFER_SIZE = 316, -+ VAR_KEY_CACHE_SIZE = 317, -+ VAR_KEY_CACHE_SLABS = 318, -+ VAR_TRUSTED_KEYS_FILE = 319, -+ VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 320, -+ VAR_USE_SYSLOG = 321, -+ VAR_OUTGOING_INTERFACE = 322, -+ VAR_ROOT_HINTS = 323, -+ VAR_DO_NOT_QUERY_LOCALHOST = 324, -+ VAR_CACHE_MAX_TTL = 325, -+ VAR_HARDEN_DNSSEC_STRIPPED = 326, -+ VAR_ACCESS_CONTROL = 327, -+ VAR_LOCAL_ZONE = 328, -+ VAR_LOCAL_DATA = 329, -+ VAR_INTERFACE_AUTOMATIC = 330, -+ VAR_STATISTICS_INTERVAL = 331, -+ VAR_DO_DAEMONIZE = 332, -+ VAR_USE_CAPS_FOR_ID = 333, -+ VAR_STATISTICS_CUMULATIVE = 334, -+ VAR_OUTGOING_PORT_PERMIT = 335, -+ VAR_OUTGOING_PORT_AVOID = 336, -+ VAR_DLV_ANCHOR_FILE = 337, -+ VAR_DLV_ANCHOR = 338, -+ VAR_NEG_CACHE_SIZE = 339, -+ VAR_HARDEN_REFERRAL_PATH = 340, -+ VAR_PRIVATE_ADDRESS = 341, -+ VAR_PRIVATE_DOMAIN = 342, -+ VAR_REMOTE_CONTROL = 343, -+ VAR_CONTROL_ENABLE = 344, -+ VAR_CONTROL_INTERFACE = 345, -+ VAR_CONTROL_PORT = 346, -+ VAR_SERVER_KEY_FILE = 347, -+ VAR_SERVER_CERT_FILE = 348, -+ VAR_CONTROL_KEY_FILE = 349, -+ VAR_CONTROL_CERT_FILE = 350, -+ VAR_CONTROL_USE_CERT = 351, -+ VAR_EXTENDED_STATISTICS = 352, -+ VAR_LOCAL_DATA_PTR = 353, -+ VAR_JOSTLE_TIMEOUT = 354, -+ VAR_STUB_PRIME = 355, -+ VAR_UNWANTED_REPLY_THRESHOLD = 356, -+ VAR_LOG_TIME_ASCII = 357, -+ VAR_DOMAIN_INSECURE = 358, -+ VAR_PYTHON = 359, -+ VAR_PYTHON_SCRIPT = 360, -+ VAR_VAL_SIG_SKEW_MIN = 361, -+ VAR_VAL_SIG_SKEW_MAX = 362, -+ VAR_CACHE_MIN_TTL = 363, -+ VAR_VAL_LOG_LEVEL = 364, -+ VAR_AUTO_TRUST_ANCHOR_FILE = 365, -+ VAR_KEEP_MISSING = 366, -+ VAR_ADD_HOLDDOWN = 367, -+ VAR_DEL_HOLDDOWN = 368, -+ VAR_SO_RCVBUF = 369, -+ VAR_EDNS_BUFFER_SIZE = 370, -+ VAR_PREFETCH = 371, -+ VAR_PREFETCH_KEY = 372, -+ VAR_SO_SNDBUF = 373, -+ VAR_SO_REUSEPORT = 374, -+ VAR_HARDEN_BELOW_NXDOMAIN = 375, -+ VAR_IGNORE_CD_FLAG = 376, -+ VAR_LOG_QUERIES = 377, -+ VAR_TCP_UPSTREAM = 378, -+ VAR_SSL_UPSTREAM = 379, -+ VAR_SSL_SERVICE_KEY = 380, -+ VAR_SSL_SERVICE_PEM = 381, -+ VAR_SSL_PORT = 382, -+ VAR_FORWARD_FIRST = 383, -+ VAR_STUB_FIRST = 384, -+ VAR_MINIMAL_RESPONSES = 385, -+ VAR_RRSET_ROUNDROBIN = 386, -+ VAR_MAX_UDP_SIZE = 387, -+ VAR_DELAY_CLOSE = 388, -+ VAR_UNBLOCK_LAN_ZONES = 389, -+ VAR_INFRA_CACHE_MIN_RTT = 390, -+ VAR_DNS64_PREFIX = 391, -+ VAR_DNS64_SYNTHALL = 392, -+ VAR_DNSTAP = 393, -+ VAR_DNSTAP_ENABLE = 394, -+ VAR_DNSTAP_SOCKET_PATH = 395, -+ VAR_DNSTAP_SEND_IDENTITY = 396, -+ VAR_DNSTAP_SEND_VERSION = 397, -+ VAR_DNSTAP_IDENTITY = 398, -+ VAR_DNSTAP_VERSION = 399, -+ VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 400, -+ VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 401, -+ VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 402, -+ VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 403, -+ VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 404, -+ VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 405, -+ VAR_CACHE_MAX_NEGATIVE_TTL = 406 -+ }; - #endif - /* Tokens. */ - #define SPACE 258 -@@ -345,40 +345,26 @@ extern int yydebug; - #define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 403 - #define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 404 - #define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 405 -+#define VAR_CACHE_MAX_NEGATIVE_TTL 406 - -- -- -+/* Value type. */ - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED --typedef union YYSTYPE -+typedef union YYSTYPE YYSTYPE; -+union YYSTYPE - { --/* Line 2058 of yacc.c */ --#line 64 "util/configparser.y" -+#line 64 "util/configparser.y" /* yacc.c:1909 */ - - char* str; - -- --/* Line 2058 of yacc.c */ --#line 362 "util/configparser.h" --} YYSTYPE; -+#line 360 "util/configparser.h" /* yacc.c:1909 */ -+}; - # define YYSTYPE_IS_TRIVIAL 1 --# define yystype YYSTYPE /* obsolescent; will be withdrawn */ - # define YYSTYPE_IS_DECLARED 1 - #endif - -+ - extern YYSTYPE yylval; - --#ifdef YYPARSE_PARAM --#if defined __STDC__ || defined __cplusplus --int yyparse (void *YYPARSE_PARAM); --#else --int yyparse (); --#endif --#else /* ! YYPARSE_PARAM */ --#if defined __STDC__ || defined __cplusplus - int yyparse (void); --#else --int yyparse (); --#endif --#endif /* ! YYPARSE_PARAM */ - - #endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ --- -2.4.3 - diff --git a/0002-libunbound-examples-produce-sorted-output.patch b/0002-libunbound-examples-produce-sorted-output.patch deleted file mode 100644 index f85d9ae..0000000 --- a/0002-libunbound-examples-produce-sorted-output.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 17384c3ec2eb1d11dc430765890397679699fce1 Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Tue, 14 Apr 2015 12:05:50 +0200 -Subject: [PATCH 2/4] libunbound examples: produce sorted output - -Signed-off-by: Tomas Hozza ---- - libunbound/python/examples/async-lookup.py | 4 ++-- - libunbound/python/examples/dns-lookup.py | 2 +- - libunbound/python/examples/dnssec-valid.py | 2 +- - libunbound/python/examples/dnssec_test.py | 8 ++++---- - libunbound/python/examples/example8-1.py | 6 +++--- - libunbound/python/examples/idn-lookup.py | 6 +++--- - libunbound/python/examples/mx-lookup.py | 4 ++-- - libunbound/python/examples/ns-lookup.py | 2 +- - libunbound/python/examples/reverse-lookup.py | 2 +- - 9 files changed, 18 insertions(+), 18 deletions(-) - -diff --git a/libunbound/python/examples/async-lookup.py b/libunbound/python/examples/async-lookup.py -index 81ba447..936be32 100644 ---- a/libunbound/python/examples/async-lookup.py -+++ b/libunbound/python/examples/async-lookup.py -@@ -40,9 +40,9 @@ ctx = unbound.ub_ctx() - ctx.resolvconf("/etc/resolv.conf") - - def call_back(my_data,status,result): -- print("Call_back:", my_data) -+ print("Call_back:", sorted(my_data)) - if status == 0 and result.havedata: -- print("Result:", result.data.address_list) -+ print("Result:", sorted(result.data.address_list)) - my_data['done_flag'] = True - - -diff --git a/libunbound/python/examples/dns-lookup.py b/libunbound/python/examples/dns-lookup.py -index ec85673..a175dfb 100644 ---- a/libunbound/python/examples/dns-lookup.py -+++ b/libunbound/python/examples/dns-lookup.py -@@ -40,6 +40,6 @@ ctx.resolvconf("/etc/resolv.conf") - - status, result = ctx.resolve("www.nic.cz", unbound.RR_TYPE_A, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: -- print("Result:", result.data.address_list) -+ print("Result:", sorted(result.data.address_list)) - elif status != 0: - print("Error:", unbound.ub_strerror(status)) -diff --git a/libunbound/python/examples/dnssec-valid.py b/libunbound/python/examples/dnssec-valid.py -index e613fd2..386f4c2 100644 ---- a/libunbound/python/examples/dnssec-valid.py -+++ b/libunbound/python/examples/dnssec-valid.py -@@ -49,7 +49,7 @@ if os.path.isfile("keys"): - status, result = ctx.resolve("www.nic.cz", RR_TYPE_A, RR_CLASS_IN) - if status == 0 and result.havedata: - -- print("Result:", result.data.address_list) -+ print("Result:", sorted(result.data.address_list)) - - if result.secure: - print("Result is secure") -diff --git a/libunbound/python/examples/dnssec_test.py b/libunbound/python/examples/dnssec_test.py -index a90ac0c..430e51a 100644 ---- a/libunbound/python/examples/dnssec_test.py -+++ b/libunbound/python/examples/dnssec_test.py -@@ -13,16 +13,16 @@ def dnssecParse(domain, rrType=RR_TYPE_A): - raise RuntimeError("Error parsing DNS packet") - - rrsigs = pkt.rr_list_by_type(RR_TYPE_RRSIG, ldns.LDNS_SECTION_ANSWER) -- print("RRSIGs from answer:", rrsigs) -+ print("RRSIGs from answer:", sorted(rrsigs)) - - rrsigs = pkt.rr_list_by_type(RR_TYPE_RRSIG, ldns.LDNS_SECTION_AUTHORITY) -- print("RRSIGs from authority:", rrsigs) -+ print("RRSIGs from authority:", sorted(rrsigs)) - - nsecs = pkt.rr_list_by_type(RR_TYPE_NSEC, ldns.LDNS_SECTION_AUTHORITY) -- print("NSECs:", nsecs) -+ print("NSECs:", sorted(nsecs)) - - nsec3s = pkt.rr_list_by_type(RR_TYPE_NSEC3, ldns.LDNS_SECTION_AUTHORITY) -- print("NSEC3s:", nsec3s) -+ print("NSEC3s:", sorted(nsec3s)) - - print("---") - -diff --git a/libunbound/python/examples/example8-1.py b/libunbound/python/examples/example8-1.py -index ba093d9..723c406 100644 ---- a/libunbound/python/examples/example8-1.py -+++ b/libunbound/python/examples/example8-1.py -@@ -43,20 +43,20 @@ status, result = ctx.resolve("nic.cz", unbound.RR_TYPE_MX, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.mx_list: -+ for k in sorted(result.data.mx_list): - print(" priority:%d address:%s" % k) - - status, result = ctx.resolve("nic.cz", unbound.RR_TYPE_A, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.address_list: -+ for k in sorted(result.data.address_list): - print(" address:%s" % k) - - status, result = ctx.resolve("nic.cz", unbound.RR_TYPE_NS, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.domain_list: -+ for k in sorted(result.data.domain_list): - print(" host: %s" % k) - -diff --git a/libunbound/python/examples/idn-lookup.py b/libunbound/python/examples/idn-lookup.py -index 8cc63e0..f283150 100644 ---- a/libunbound/python/examples/idn-lookup.py -+++ b/libunbound/python/examples/idn-lookup.py -@@ -46,18 +46,18 @@ status, result = ctx.resolve(u"www.háčkyčárky.cz", unbound.RR_TYPE_A, unboun - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.address_list: -+ for k in sorted(result.data.address_list): - print(" address:%s" % k) - - status, result = ctx.resolve(u"háčkyčárky.cz", unbound.RR_TYPE_MX, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.mx_list_idn: -+ for k in sorted(result.data.mx_list_idn): - print(" priority:%d address:%s" % k) - - status, result = ctx.resolve(unbound.reverse('217.31.204.66')+'.in-addr.arpa', unbound.RR_TYPE_PTR, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result.data:", result.data) -- for k in result.data.domain_list_idn: -+ for k in sorted(result.data.domain_list_idn): - print(" dname:%s" % k) -diff --git a/libunbound/python/examples/mx-lookup.py b/libunbound/python/examples/mx-lookup.py -index f3c4e5f..e9394b3 100644 ---- a/libunbound/python/examples/mx-lookup.py -+++ b/libunbound/python/examples/mx-lookup.py -@@ -43,12 +43,12 @@ status, result = ctx.resolve("nic.cz", unbound.RR_TYPE_MX, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.mx_list: -+ for k in sorted(result.data.mx_list): - print(" priority:%d address:%s" % k) - - status, result = ctx.resolve("nic.cz", unbound.RR_TYPE_A, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.address_list: -+ for k in sorted(result.data.address_list): - print(" address:%s" % k) -diff --git a/libunbound/python/examples/ns-lookup.py b/libunbound/python/examples/ns-lookup.py -index 5acf2a3..49f5672 100644 ---- a/libunbound/python/examples/ns-lookup.py -+++ b/libunbound/python/examples/ns-lookup.py -@@ -43,6 +43,6 @@ status, result = ctx.resolve("vutbr.cz", unbound.RR_TYPE_NS, unbound.RR_CLASS_IN - if status == 0 and result.havedata: - print("Result:") - print(" raw data:", result.data) -- for k in result.data.domain_list: -+ for k in sorted(result.data.domain_list): - print(" host: %s" % k) - -diff --git a/libunbound/python/examples/reverse-lookup.py b/libunbound/python/examples/reverse-lookup.py -index da8ab1a..c9a13fe 100644 ---- a/libunbound/python/examples/reverse-lookup.py -+++ b/libunbound/python/examples/reverse-lookup.py -@@ -40,5 +40,5 @@ ctx.resolvconf("/etc/resolv.conf") - - status, result = ctx.resolve(unbound.reverse("74.125.43.147") + ".in-addr.arpa.", unbound.RR_TYPE_PTR, unbound.RR_CLASS_IN) - if status == 0 and result.havedata: -- print("Result.data:", result.data, result.data.domain_list) -+ print("Result.data:", result.data, sorted(result.data.domain_list)) - --- -2.1.0 - diff --git a/0003-libunbound-Python-libldns-is-not-used-anymore.patch b/0003-libunbound-Python-libldns-is-not-used-anymore.patch deleted file mode 100644 index cac0d43..0000000 --- a/0003-libunbound-Python-libldns-is-not-used-anymore.patch +++ /dev/null @@ -1,37 +0,0 @@ -From a26697b196418201e1162f04317649d64aec89b5 Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Thu, 16 Apr 2015 11:29:21 +0200 -Subject: [PATCH 3/4] libunbound-Python: libldns is not used anymore - -Signed-off-by: Tomas Hozza ---- - libunbound/python/Makefile | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/libunbound/python/Makefile b/libunbound/python/Makefile -index 86ba177..01b0577 100644 ---- a/libunbound/python/Makefile -+++ b/libunbound/python/Makefile -@@ -48,17 +48,14 @@ help: - #../../.libs/libunbound.so.0: ../../Makefile - #$(MAKE) -C ../.. - --#../../ldns-src/lib/libldns.so: ../../ldns-src/Makefile -- #$(MAKE) -C ../../ldns-src -- - clean: - rm -rdf examples/unbound - rm -f _unbound.so libunbound_wrap.o - $(MAKE) -C ../.. clean - --testenv: ../../.libs/libunbound.so.2 ../../ldns-src/lib/libldns.so ../../.libs/_unbound.so -+testenv: ../../.libs/libunbound.so.2 ../../.libs/_unbound.so - rm -rdf examples/unbound -- cd examples && mkdir unbound && ln -s ../../unbound.py unbound/__init__.py && ln -s ../../_unbound.so unbound/_unbound.so && ln -s ../../../../.libs/libunbound.so.2 unbound/libunbound.so.2 && ln -s ../../../../ldns-src/lib/libldns.so.1 unbound/libldns.so.1 && ls -la -+ cd examples && mkdir unbound && ln -s ../../unbound.py unbound/__init__.py && ln -s ../../_unbound.so unbound/_unbound.so && ln -s ../../../../.libs/libunbound.so.2 unbound/libunbound.so.2 && ls -la - cd examples && if test -f ../../../.libs/_unbound.so; then cp ../../../.libs/_unbound.so . ; fi - @echo "Run a script by typing ./script_name.py" - cd examples && LD_LIBRARY_PATH=unbound bash --- -2.1.0 - diff --git a/0004-Resolve-Python-3-incompatibilities-in-libunbound-and.patch b/0004-Resolve-Python-3-incompatibilities-in-libunbound-and.patch deleted file mode 100644 index ee7b777..0000000 --- a/0004-Resolve-Python-3-incompatibilities-in-libunbound-and.patch +++ /dev/null @@ -1,356 +0,0 @@ -From 5fe01bc3b8932b5dffa88578663727c3df694bc4 Mon Sep 17 00:00:00 2001 -From: Tomas Hozza -Date: Tue, 14 Apr 2015 14:01:02 +0200 -Subject: [PATCH 4/4] Resolve Python 3 incompatibilities in libunbound and - pythonmod wrappers - -Signed-off-by: Tomas Hozza - -Fix issue with Python 3 mapping of FILE* using file_py3.i from ldns. ---- - Makefile.in | 3 +- - configure.ac | 2 + - libunbound/python/file_py3.i | 155 +++++++++++++++++++++++++++++++++++++++++ - libunbound/python/libunbound.i | 4 ++ - pythonmod/interface.i | 28 ++++---- - pythonmod/pythonmod.c | 8 ++- - 6 files changed, 184 insertions(+), 16 deletions(-) - create mode 100644 libunbound/python/file_py3.i - -diff --git a/Makefile.in b/Makefile.in -index 94b126d..a84b303 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -25,6 +25,7 @@ DNSTAP_SRC=@DNSTAP_SRC@ - DNSTAP_OBJ=@DNSTAP_OBJ@ - WITH_PYTHONMODULE=@WITH_PYTHONMODULE@ - WITH_PYUNBOUND=@WITH_PYUNBOUND@ -+PY_MAJOR_VERSION=@PY_MAJOR_VERSION@ - PYTHON_SITE_PKG=@PYTHON_SITE_PKG@ - PYTHONMOD_INSTALL=@PYTHONMOD_INSTALL@ - PYTHONMOD_UNINSTALL=@PYTHONMOD_UNINSTALL@ -@@ -393,7 +394,7 @@ libunbound_wrap.lo libunbound_wrap.o: libunbound/python/libunbound_wrap.c \ - unbound.h - libunbound/python/libunbound_wrap.c: $(srcdir)/libunbound/python/libunbound.i unbound.h - @-if test ! -d libunbound/python; then $(INSTALL) -d libunbound/python; fi -- $(SWIG) -python -o $@ $(CPPFLAGS) $(srcdir)/libunbound/python/libunbound.i -+ $(SWIG) -python -o $@ $(CPPFLAGS) -DPY_MAJOR_VERSION=$(PY_MAJOR_VERSION) $(srcdir)/libunbound/python/libunbound.i - - # Pyunbound python unbound wrapper - _unbound.la: libunbound_wrap.lo libunbound.la -diff --git a/configure.ac b/configure.ac -index 6028138..de809af 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -475,6 +475,8 @@ if test x_$ub_test_python != x_no; then - AC_ERROR([Python version >= 2.4.0 is required]) - fi - -+ PY_MAJOR_VERSION="`$PYTHON -c "import sys; print(sys.version_info.major)"`" -+ AC_SUBST(PY_MAJOR_VERSION) - # Have Python - AC_DEFINE(HAVE_PYTHON,1,[Define if you have Python libraries and header files.]) - LIBS="$PYTHON_LDFLAGS $LIBS" -diff --git a/libunbound/python/file_py3.i b/libunbound/python/file_py3.i -new file mode 100644 -index 0000000..5d8b5a2 ---- /dev/null -+++ b/libunbound/python/file_py3.i -@@ -0,0 +1,155 @@ -+/* -+ * file_py3.i: Typemaps for FILE* for Python 3 -+ * -+ * Copyright (c) 2011, Karel Slany (karel.slany AT nic.cz) -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are met: -+ * -+ * * Redistributions of source code must retain the above copyright notice, -+ * this list of conditions and the following disclaimer. -+ * * Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * * Neither the name of the organization nor the names of its -+ * contributors may be used to endorse or promote products derived from this -+ * software without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -+ * POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+%{ -+#include -+#include -+%} -+ -+%types(FILE *); -+ -+//#define SWIG_FILE3_DEBUG -+ -+/* converts basic file descriptor flags onto a string */ -+%fragment("fdfl_to_str", "header") { -+const char * -+fdfl_to_str(int fdfl) { -+ -+ static const char * const file_mode[] = {"w+", "w", "r"}; -+ -+ if (fdfl & O_RDWR) { -+ return file_mode[0]; -+ } else if (fdfl & O_WRONLY) { -+ return file_mode[1]; -+ } else { -+ return file_mode[2]; -+ } -+} -+} -+ -+%fragment("is_obj_file", "header") { -+int -+is_obj_file(PyObject *obj) { -+ int fd, fdfl; -+ if (!PyLong_Check(obj) && /* is not an integer */ -+ PyObject_HasAttrString(obj, "fileno") && /* has fileno method */ -+ (PyObject_CallMethod(obj, "flush", NULL) != NULL) && /* flush() succeeded */ -+ ((fd = PyObject_AsFileDescriptor(obj)) != -1) && /* got file descriptor */ -+ ((fdfl = fcntl(fd, F_GETFL)) != -1) /* got descriptor flags */ -+ ) { -+ return 1; -+ } -+ else { -+ return 0; -+ } -+} -+} -+ -+%fragment("obj_to_file","header", fragment="fdfl_to_str,is_obj_file") { -+FILE * -+obj_to_file(PyObject *obj) { -+ int fd, fdfl; -+ FILE *fp; -+ if (is_obj_file(obj)) { -+ fd = PyObject_AsFileDescriptor(obj); -+ fdfl = fcntl(fd, F_GETFL); -+ fp = fdopen(dup(fd), fdfl_to_str(fdfl)); /* the FILE* must be flushed -+ and closed after being used */ -+#ifdef SWIG_FILE3_DEBUG -+ fprintf(stderr, "opening fd %d (fl %d \"%s\") as FILE %p\n", -+ fd, fdfl, fdfl_to_str(fdfl), (void *)fp); -+#endif -+ return fp; -+ } -+ return NULL; -+} -+} -+ -+/* returns -1 if error occurred */ -+/* caused magic SWIG Syntax errors when was commented out */ -+#if 0 -+%fragment("dispose_file", "header") { -+int -+dispose_file(FILE **fp) { -+#ifdef SWIG_FILE3_DEBUG -+ fprintf(stderr, "flushing FILE %p\n", (void *)fp); -+#endif -+ if (*fp == NULL) { -+ return 0; -+ } -+ if ((fflush(*fp) == 0) && /* flush file */ -+ (fclose(*fp) == 0)) { /* close file */ -+ *fp = NULL; -+ return 0; -+ } -+ return -1; -+} -+} -+#endif -+ -+%typemap(arginit, noblock = 1) FILE* { -+ $1 = NULL; -+} -+ -+/* -+ * added due to ub_ctx_debugout since since it is overloaded: -+ * takes void* and FILE*. In reality only FILE* but the wrapper -+ * and the function is declared in such way. -+ */ -+%typemap(typecheck, noblock = 1, fragment = "is_obj_file", precedence = SWIG_TYPECHECK_POINTER) FILE* { -+ $1 = is_obj_file($input); -+} -+ -+%typemap(check, noblock = 1) FILE* { -+ if ($1 == NULL) { -+ /* The generated wrapper function raises TypeError on mismatching types. */ -+ SWIG_exception_fail(SWIG_TypeError, "in method '" "$symname" "', argument " -+ "$argnum"" of type '" "$type""'"); -+ } -+} -+ -+%typemap(in, noblock = 1, fragment = "obj_to_file") FILE* { -+ $1 = obj_to_file($input); -+} -+ -+/* -+ * Commented out due the way how ub_ctx_debugout() uses the parameter. -+ * This typemap would cause the FILE* to be closed after return from -+ * the function. This caused Python interpreter to crash, since the -+ * function just stores the FILE* internally in ctx and use it for -+ * logging. So we'll leave the closing of the file on the OS. -+ */ -+/*%typemap(freearg, noblock = 1, fragment = "dispose_file") FILE* { -+ if (dispose_file(&$1) == -1) { -+ SWIG_exception_fail(SWIG_IOError, "closing file in method '" "$symname" "', argument " -+ "$argnum"" of type '" "$type""'"); -+ } -+}*/ -diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i -index 1bef79f..3c0e45b 100644 ---- a/libunbound/python/libunbound.i -+++ b/libunbound/python/libunbound.i -@@ -60,7 +60,11 @@ - %} - - //%include "doc.i" -+#if PY_MAJOR_VERSION >= 3 -+%include "file_py3.i" // python 3 FILE * -+#else - %include "file.i" -+#endif - - %feature("docstring") strerror "Convert error value to a human readable string." - -diff --git a/pythonmod/interface.i b/pythonmod/interface.i -index cfaabb3..4b20c6e 100644 ---- a/pythonmod/interface.i -+++ b/pythonmod/interface.i -@@ -37,7 +37,7 @@ - %include "stdint.i" // uint_16_t can be known type now - - %inline %{ -- //converts [len][data][len][data][0] string to a List of labels (PyStrings) -+ //converts [len][data][len][data][0] string to a List of labels (PyBytes) - PyObject* GetNameAsLabelList(const char* name, int len) { - PyObject* list; - int cnt=0, i; -@@ -79,8 +79,8 @@ struct query_info { - %inline %{ - enum enum_rr_class { - RR_CLASS_IN = 1, -- RR_CLASS_CH = 3, -- RR_CLASS_HS = 4, -+ RR_CLASS_CH = 3, -+ RR_CLASS_HS = 4, - RR_CLASS_NONE = 254, - RR_CLASS_ANY = 255, - }; -@@ -164,7 +164,7 @@ struct query_info { - char buf[LDNS_MAX_DOMAINLEN+1]; - buf[0] = '\0'; - dname_str((uint8_t*)dname, buf); -- return PyString_FromString(buf); -+ return PyBytes_FromString(buf); - } - %} - -@@ -440,7 +440,7 @@ struct comm_reply { - reply_addr2str(reply, dest, 64); - if (dest[0] == 0) - return Py_None; -- return PyString_FromString(dest); -+ return PyBytes_FromString(dest); - } - - PyObject* _comm_reply_family_get(struct comm_reply* reply) { -@@ -448,9 +448,9 @@ struct comm_reply { - int af = (int)((struct sockaddr_in*) &(reply->addr))->sin_family; - - switch(af) { -- case AF_INET: return PyString_FromString("ip4"); -- case AF_INET6: return PyString_FromString("ip6"); -- case AF_UNIX: return PyString_FromString("unix"); -+ case AF_INET: return PyBytes_FromString("ip4"); -+ case AF_INET6: return PyBytes_FromString("ip6"); -+ case AF_UNIX: return PyBytes_FromString("unix"); - } - - return Py_None; -@@ -711,13 +711,13 @@ struct delegpt { - - %inline %{ - PyObject* _get_dp_dname(struct delegpt* dp) { -- return PyString_FromStringAndSize((char*)dp->name, dp->namelen); -+ return PyBytes_FromStringAndSize((char*)dp->name, dp->namelen); - } - PyObject* _get_dp_dname_components(struct delegpt* dp) { - return GetNameAsLabelList((char*)dp->name, dp->namelen); - } - PyObject* _get_dpns_dname(struct delegpt_ns* dpns) { -- return PyString_FromStringAndSize((char*)dpns->name, dpns->namelen); -+ return PyBytes_FromStringAndSize((char*)dpns->name, dpns->namelen); - } - PyObject* _get_dpns_dname_components(struct delegpt_ns* dpns) { - return GetNameAsLabelList((char*)dpns->name, dpns->namelen); -@@ -728,7 +728,7 @@ struct delegpt { - delegpt_addr_addr2str(target, dest, 64); - if (dest[0] == 0) - return Py_None; -- return PyString_FromString(dest); -+ return PyBytes_FromString(dest); - } - - %} -@@ -842,7 +842,7 @@ int checkList(PyObject *l) - for (i=0; i < PyList_Size(l); i++) - { - item = PyList_GetItem(l, i); -- if (!PyString_Check(item)) -+ if (!PyBytes_Check(item)) - return 0; - } - return 1; -@@ -864,12 +864,12 @@ int pushRRList(sldns_buffer* qb, PyObject *l, uint32_t default_ttl, int qsec, - - len = sldns_buffer_remaining(qb); - if(qsec) { -- if(sldns_str2wire_rr_question_buf(PyString_AsString(item), -+ if(sldns_str2wire_rr_question_buf(PyBytes_AsString(item), - sldns_buffer_current(qb), &len, NULL, NULL, 0, NULL, 0) - != 0) - return 0; - } else { -- if(sldns_str2wire_rr_buf(PyString_AsString(item), -+ if(sldns_str2wire_rr_buf(PyBytes_AsString(item), - sldns_buffer_current(qb), &len, NULL, default_ttl, - NULL, 0, NULL, 0) != 0) - return 0; -diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c -index 190d41a..48dbc01 100644 ---- a/pythonmod/pythonmod.c -+++ b/pythonmod/pythonmod.c -@@ -133,7 +133,13 @@ int pythonmod_init(struct module_env* env, int id) - /* Initialize Python libraries */ - if (!Py_IsInitialized()) - { -- Py_SetProgramName("unbound"); -+#if PY_MAJOR_VERSION >= 3 -+ wchar_t progname[8]; -+ mbstowcs(progname, "unbound", 8); -+#else -+ char *progname = "unbound"; -+#endif -+ Py_SetProgramName(progname); - Py_NoSiteFlag = 1; - Py_Initialize(); - PyEval_InitThreads(); --- -2.1.0 - diff --git a/sources b/sources index d46dc85..3863a1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f85854baad15adc7ce8acefe6cda4cf8 unbound-1.5.4.tar.gz +e86cccd261c1b01fa9e34cb59b0013d3 unbound-1.5.5.tar.gz diff --git a/unbound.spec b/unbound.spec index 448f1b8..109644f 100644 --- a/unbound.spec +++ b/unbound.spec @@ -20,8 +20,8 @@ Summary: Validating, recursive, and caching DNS(SEC) resolver Name: unbound -Version: 1.5.4 -Release: 5%{?extra_version:.%{extra_version}}%{?dist} +Version: 1.5.5 +Release: 1%{?extra_version:.%{extra_version}}%{?dist} License: BSD Url: http://www.nlnetlabs.nl/unbound/ Source: http://www.unbound.net/downloads/%{name}-%{version}%{?extra_version}.tar.gz @@ -299,7 +299,6 @@ useradd -r -g unbound -d %{_sysconfdir}/unbound -s /sbin/nologin \ %post libs /sbin/ldconfig -%{_sbindir}/runuser --command="%{_sbindir}/unbound-anchor -a %{_sharedstatedir}/unbound/root.key -c %{_sysconfdir}/unbound/icannbundle.pem" --shell /bin/sh unbound ||: %systemd_post unbound-anchor.timer # start the timer only if installing the package to prevent starting it, if it was stopped on purpose if [ "$1" -eq 1 ]; then @@ -359,7 +358,7 @@ popd %endif # with_python3 -%files +%files %doc doc/CREDITS doc/FEATURES %{_unitdir}/%{name}.service %{_unitdir}/%{name}-keygen.service @@ -430,6 +429,10 @@ popd %changelog +* Wed Oct 07 2015 Tomas Hozza - 1.5.5-1 +- New upstream release 1.5.5 (#1269137) +- Removed the anchor update from %%post section of -libs subpackage (#1269137#c2) + * Tue Sep 15 2015 Tomas Hozza - 1.5.4-5 - Removed dependency and ordering on unbound-anchor.service in unbound.service