diff --git a/daemon/worker.c b/daemon/worker.c index 91f7558d..6121c7db 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -502,6 +502,7 @@ answer_norec_from_cache(struct worker* worker, struct query_info* qinfo, * let validator do that */ return 0; case sec_status_bogus: + case sec_status_secure_sentinel_fail: /* some rrsets are bogus, reply servfail */ edns->edns_version = EDNS_ADVERTISED_VERSION; edns->udp_size = EDNS_ADVERTISED_SIZE; @@ -658,7 +659,8 @@ answer_from_cache(struct worker* worker, struct query_info* qinfo, } } /* check security status of the cached answer */ - if( rep->security == sec_status_bogus && must_validate) { + if(must_validate && (rep->security == sec_status_bogus || + rep->security == sec_status_secure_sentinel_fail)) { /* BAD cached */ edns->edns_version = EDNS_ADVERTISED_VERSION; edns->udp_size = EDNS_ADVERTISED_SIZE; diff --git a/doc/Changelog b/doc/Changelog index 7b81fa46..9f463078 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +24 April 2018: Ralph + - Added root-key-sentinel support + 23 April 2018: Wouter - makedist uses bz2 for expat code, instead of tar.gz. - Fix #4092: libunbound: use-caps-for-id lacks colon in diff --git a/doc/example.conf.in b/doc/example.conf.in index 4f45e7d6..160a45d2 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -458,6 +458,9 @@ server: # trust anchor signaling sends a RFC8145 key tag query after priming. # trust-anchor-signaling: yes + + # Root key trust anchor sentinel (draft-ietf-dnsop-kskroll-sentinel) + # root-key-sentinel: yes # File with DLV trusted keys. Same format as trust-anchor-file. # There can be only one DLV configured, it is trusted from root down. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index d6b4cef2..4ddb92fa 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -849,6 +849,9 @@ expanded on start and on reload. .B trust\-anchor\-signaling: \fI<yes or no> Send RFC8145 key tag query after trust anchor priming. Default is on. .TP +.B root\-key\-sentinel: \fI<yes or no> +Root key trust anchor sentinel. Default is on. +.TP .B dlv\-anchor\-file: \fI<filename> This option was used during early days DNSSEC deployment when no parent-side DS record registrations were easily available. Nowadays, it is best to have diff --git a/services/mesh.c b/services/mesh.c index 08e537c5..3027cef0 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -975,7 +975,8 @@ mesh_do_callback(struct mesh_state* m, int rcode, struct reply_info* rep, else secure = 0; if(!rep && rcode == LDNS_RCODE_NOERROR) rcode = LDNS_RCODE_SERVFAIL; - if(!rcode && rep->security == sec_status_bogus) { + if(!rcode && (rep->security == sec_status_bogus || + rep->security == sec_status_secure_sentinel_fail)) { if(!(reason = errinf_to_str(&m->s))) rcode = LDNS_RCODE_SERVFAIL; } @@ -1041,7 +1042,8 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep, /* examine security status */ if(m->s.env->need_to_validate && (!(r->qflags&BIT_CD) || m->s.env->cfg->ignore_cd) && rep && - rep->security <= sec_status_bogus) { + (rep->security <= sec_status_bogus || + rep->security == sec_status_secure_sentinel_fail)) { rcode = LDNS_RCODE_SERVFAIL; if(m->s.env->cfg->stat_extended) m->s.env->mesh->ans_bogus++; diff --git a/util/config_file.c b/util/config_file.c index 20c7627e..3bf5f630 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -213,6 +213,7 @@ config_create(void) cfg->trust_anchor_list = NULL; cfg->trusted_keys_file_list = NULL; cfg->trust_anchor_signaling = 1; + cfg->root_key_sentinel = 1; cfg->dlv_anchor_file = NULL; cfg->dlv_anchor_list = NULL; cfg->domain_insecure = NULL; @@ -521,6 +522,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_STRLIST("trust-anchor:", trust_anchor_list) else S_STRLIST("trusted-keys-file:", trusted_keys_file_list) else S_YNO("trust-anchor-signaling:", trust_anchor_signaling) + else S_YNO("root-key-sentinel:", root_key_sentinel) else S_STR("dlv-anchor-file:", dlv_anchor_file) else S_STRLIST("dlv-anchor:", dlv_anchor_list) else S_STRLIST("domain-insecure:", domain_insecure) @@ -932,6 +934,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LST(opt, "trust-anchor", trust_anchor_list) else O_LST(opt, "trusted-keys-file", trusted_keys_file_list) else O_YNO(opt, "trust-anchor-signaling", trust_anchor_signaling) + else O_YNO(opt, "root-key-sentinel", root_key_sentinel) else O_LST(opt, "dlv-anchor", dlv_anchor_list) else O_LST(opt, "control-interface", control_ifs) else O_LST(opt, "domain-insecure", domain_insecure) diff --git a/util/config_file.h b/util/config_file.h index 9f99390f..eba60b9a 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -291,6 +291,8 @@ struct config_file { struct config_strlist* domain_insecure; /** send key tag query */ int trust_anchor_signaling; + /** enable root key sentinel */ + int root_key_sentinel; /** if not 0, this value is the validation date for RRSIGs */ int32_t val_date_override; diff --git a/util/configlexer.c b/util/configlexer.c index 73ebc729..5626b597 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -172,7 +172,7 @@ extern FILE *yyin, *yyout; do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ @@ -223,7 +223,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 262 -#define YY_END_OF_BUFFER 263 +#define YY_NUM_RULES 263 +#define YY_END_OF_BUFFER 264 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,292 +372,294 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2586] = +static yyconst flex_int16_t yy_accept[2599] = { 0, - 1, 1, 244, 244, 248, 248, 252, 252, 256, 256, - 1, 1, 263, 260, 1, 242, 242, 261, 2, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 244, 245, 245, 246, 261, 248, 249, 249, - 250, 261, 255, 252, 253, 253, 254, 261, 256, 257, - 257, 258, 261, 259, 243, 2, 247, 261, 259, 260, - 0, 1, 2, 2, 2, 2, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 1, 1, 245, 245, 249, 249, 253, 253, 257, 257, + 1, 1, 264, 261, 1, 243, 243, 262, 2, 262, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 245, 246, 246, 247, 262, 249, 250, 250, + 251, 262, 256, 253, 254, 254, 255, 262, 257, 258, + 258, 259, 262, 260, 244, 2, 248, 262, 260, 261, + 0, 1, 2, 2, 2, 2, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 244, - 0, 248, 0, 255, 0, 252, 256, 0, 259, 0, - 2, 2, 259, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 245, + 0, 249, 0, 256, 0, 253, 257, 0, 260, 0, + 2, 2, 260, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 259, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 260, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 101, 260, 260, 260, 260, 260, 260, 260, 259, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 101, 261, 261, 261, 261, 261, 261, 261, 260, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 85, 260, 260, 260, 260, - 260, 260, 8, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 106, 260, 259, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 85, 261, 261, 261, 261, + 261, 261, 8, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 106, 261, 260, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 259, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 45, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 189, 260, 14, 15, 260, 18, - 17, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 100, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 175, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 45, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 190, 261, 14, 15, 261, + 18, 17, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 100, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 176, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 3, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 259, 260, 260, 260, 260, 260, - 260, 260, 236, 260, 260, 235, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 251, 260, 260, 260, + 261, 261, 3, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 260, 261, 261, 261, + 261, 261, 261, 261, 237, 261, 261, 236, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 252, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 48, 260, 213, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 49, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 164, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 20, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 121, 260, 260, 251, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 48, + 261, 214, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 49, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 165, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 20, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 121, 261, 261, 252, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 218, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 139, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 120, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 83, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 219, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 140, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 120, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 83, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 28, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 29, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 46, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 99, 260, - 260, 260, 260, 260, 98, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 47, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 140, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 28, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 29, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 46, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 99, 261, 261, 261, 261, 261, 98, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 47, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 141, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 36, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 204, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 40, 260, 41, 260, 260, 260, 260, - 86, 260, 87, 260, 260, 260, 84, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 36, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 205, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 40, 261, + 41, 261, 261, 261, 261, 86, 261, 87, 261, 261, + 261, 84, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 7, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 182, 260, 260, 260, - 260, 123, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 37, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 156, 260, 155, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 7, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 183, 261, 261, 261, 261, 123, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 37, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 157, 261, 156, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 16, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 50, 260, 260, - 260, 260, 260, 260, 260, 163, 260, 260, 260, 260, - 260, 89, 88, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 150, 260, 260, 260, - 260, 260, 260, 260, 260, 107, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 68, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 16, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 50, 261, 261, 261, 261, 261, 261, 261, + 261, 164, 261, 261, 261, 261, 261, 89, 88, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 151, 261, 261, 261, 261, 261, 261, 261, + 261, 107, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 68, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 72, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 44, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 153, 154, 260, 214, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 6, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 216, 260, 260, 237, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 72, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 44, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 154, 155, + 261, 215, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 6, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 217, 261, 261, 261, 238, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 34, 260, 260, 260, 260, 260, 260, - 260, 260, 146, 260, 260, 260, 102, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 168, 260, 147, - 260, 260, 180, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 35, - 260, 260, 260, 260, 260, 260, 104, 93, 260, 94, - 260, 260, 92, 260, 260, 260, 260, 260, 260, 260, - 260, 118, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 203, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 34, 261, 261, 261, 261, 261, 261, 261, 261, 147, + 261, 261, 261, 102, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 169, 261, 148, 261, 261, 181, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 35, 261, 261, 261, + 261, 261, 261, 104, 93, 261, 94, 261, 261, 92, + 261, 261, 261, 261, 261, 261, 261, 261, 118, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 148, 260, 260, 260, 260, 260, 151, 260, - 260, 179, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 82, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 42, 260, 260, 260, - 22, 260, 260, 260, 260, 260, 19, 260, 260, 260, - 23, 260, 128, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 57, 59, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 220, 260, 260, 260, 190, + 204, 261, 261, 261, 261, 261, 261, 261, 261, 149, + 261, 261, 261, 261, 261, 152, 261, 261, 180, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 82, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 42, 261, 261, 261, 22, 261, + 261, 261, 261, 261, 19, 261, 261, 261, 23, 261, + 128, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 57, + 59, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 95, 260, 260, 260, 260, - 260, 260, 260, 260, 117, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 231, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 122, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 174, 260, - 260, 260, 260, 260, 260, 260, 260, 240, 260, 260, - 260, 260, 260, 260, 260, 138, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 221, 261, 261, 261, 191, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 95, 261, 261, 261, 261, 261, 261, + 261, 261, 117, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 232, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 122, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 175, 261, 261, 261, + 261, 261, 261, 261, 261, 241, 261, 261, 261, 261, + 261, 261, 261, 261, 139, 261, 261, 261, 261, 261, - 260, 260, 260, 260, 260, 260, 133, 260, 141, 260, - 260, 260, 260, 260, 110, 260, 260, 260, 260, 260, - 78, 260, 260, 260, 260, 166, 260, 260, 260, 260, - 260, 181, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 195, 260, 260, 260, 260, 260, - 260, 103, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 137, 260, 260, 260, 260, 260, 60, 61, 260, - 260, 260, 260, 260, 43, 260, 260, 260, 260, 260, - 67, 142, 260, 157, 260, 183, 152, 260, 260, 260, - 53, 260, 144, 260, 260, 260, 260, 260, 9, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 134, 261, 142, 261, 261, + 261, 261, 261, 110, 261, 261, 261, 261, 261, 78, + 261, 261, 261, 261, 167, 261, 261, 261, 261, 261, + 182, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 196, 261, 261, 261, 261, 261, 261, + 103, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 138, 261, 261, 261, 261, 261, 60, 61, 261, 261, + 261, 261, 261, 43, 261, 261, 261, 261, 261, 67, + 143, 261, 158, 261, 184, 153, 261, 261, 261, 53, - 260, 260, 81, 260, 260, 260, 260, 208, 260, 260, - 260, 165, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 136, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 124, - 219, 260, 260, 260, 260, 194, 260, 260, 260, 260, - 260, 260, 260, 260, 176, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 261, 145, 261, 261, 261, 261, 261, 9, 261, 261, + 261, 81, 261, 261, 261, 261, 209, 261, 261, 261, + 166, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 137, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 124, + 220, 261, 261, 261, 261, 195, 261, 261, 261, 261, + 261, 261, 261, 261, 177, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 234, 260, 143, 260, 260, 260, 52, 54, 260, 260, - 260, 260, 260, 260, 260, 80, 260, 260, 260, 260, - 206, 260, 260, 260, 215, 260, 260, 260, 260, 260, - 170, 30, 24, 26, 260, 260, 260, 260, 260, 31, - 25, 27, 260, 260, 260, 260, 260, 260, 77, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 172, 169, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 51, 260, 105, 260, 260, 260, 260, 260, 260, - 260, 260, 119, 13, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 235, 261, 144, 261, 261, 261, 52, 54, 261, 261, + 261, 261, 261, 261, 261, 80, 261, 261, 261, 261, + 207, 261, 261, 261, 216, 261, 261, 261, 261, 261, + 261, 171, 30, 24, 26, 261, 261, 261, 261, 261, + 31, 25, 27, 261, 261, 261, 261, 261, 261, 77, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 173, 170, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 51, 261, 105, 261, 261, 261, 261, 261, - 260, 260, 260, 229, 260, 232, 260, 260, 260, 260, - 260, 260, 12, 260, 260, 21, 260, 260, 260, 212, - 260, 260, 260, 217, 55, 260, 178, 260, 171, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 132, 131, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 173, 167, 260, 260, 260, - 221, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 62, 260, 260, 260, 207, 260, 260, - 260, 260, 260, 177, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 119, 13, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 230, 261, 233, 261, 261, 261, + 261, 261, 261, 12, 261, 261, 21, 261, 261, 261, + 213, 261, 261, 261, 218, 261, 55, 261, 179, 261, + 172, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 133, 132, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 174, 168, 261, + 261, 261, 222, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 62, 261, 261, 261, 208, - 260, 260, 238, 239, 56, 260, 260, 260, 90, 91, - 260, 125, 260, 127, 260, 158, 260, 260, 260, 130, - 260, 260, 184, 260, 260, 260, 260, 260, 260, 260, - 112, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 191, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 159, 260, 260, - 205, 260, 233, 260, 260, 260, 38, 260, 260, 260, - 260, 4, 260, 260, 111, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 187, 32, 33, 260, - 260, 260, 260, 260, 260, 260, 222, 260, 260, 260, + 261, 261, 261, 261, 261, 178, 261, 261, 261, 261, + 261, 261, 261, 261, 239, 240, 130, 56, 261, 261, + 261, 90, 91, 261, 125, 261, 127, 261, 159, 261, + 261, 261, 131, 261, 261, 185, 261, 261, 261, 261, + 261, 261, 261, 112, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 192, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 160, 261, 261, 206, 261, 234, 261, 261, 261, 38, + 261, 261, 261, 261, 4, 261, 261, 111, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 188, - 260, 260, 260, 193, 260, 260, 162, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 65, 260, 39, 211, - 260, 188, 260, 260, 11, 260, 260, 260, 260, 260, - 260, 160, 69, 260, 260, 260, 260, 260, 135, 260, - 260, 260, 260, 260, 114, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 192, 108, 260, 96, 97, 260, - 260, 260, 71, 75, 70, 260, 63, 260, 260, 260, - 10, 260, 260, 260, 209, 260, 260, 260, 260, 134, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 76, 74, 260, + 32, 33, 261, 261, 261, 261, 261, 261, 261, 223, + 261, 261, 261, 261, 261, 261, 194, 261, 261, 163, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 65, + 261, 39, 212, 261, 189, 261, 261, 11, 261, 261, + 261, 261, 261, 261, 161, 69, 261, 261, 261, 261, + 261, 136, 261, 261, 261, 261, 261, 114, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 193, 108, 261, + 96, 97, 261, 261, 261, 71, 75, 70, 261, 63, + 261, 261, 261, 10, 261, 261, 261, 210, 261, 261, + 261, 261, 135, 261, 261, 261, 261, 261, 261, 261, - 64, 230, 260, 260, 260, 149, 260, 260, 161, 260, - 260, 260, 260, 260, 260, 126, 58, 260, 260, 260, - 260, 260, 223, 260, 260, 260, 260, 260, 260, 260, - 109, 73, 115, 116, 66, 260, 210, 129, 260, 260, - 260, 260, 186, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 79, 260, 185, 260, 202, 227, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 5, - 260, 260, 260, 228, 260, 260, 260, 260, 260, 260, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 76, 74, 261, 64, 231, 261, 261, 261, 150, 261, + 261, 162, 261, 261, 261, 261, 261, 261, 126, 58, + 261, 261, 261, 261, 261, 224, 261, 261, 261, 261, + 261, 261, 261, 109, 73, 115, 116, 66, 261, 211, + 129, 261, 261, 261, 261, 187, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 79, 261, 186, + 261, 203, 228, 261, 261, 261, 261, 261, 261, 261, + + 261, 261, 5, 261, 261, 261, 229, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 113, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 146, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 225, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 242, 261, 261, 199, + 261, 261, 261, 261, 261, 226, 261, 261, 261, 261, + 261, 261, 227, 261, 261, 261, 197, 261, 200, 201, + 261, 261, 261, 261, 261, 198, 202, 0 - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 113, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 145, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 224, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 241, 260, 260, 198, 260, 260, 260, - 260, 260, 225, 260, 260, 260, 260, 260, 260, 226, - 260, 260, 260, 196, 260, 199, 200, 260, 260, 260, - 260, 260, 197, 201, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -700,15 +702,15 @@ static yyconst YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[2600] = +static yyconst flex_uint16_t yy_base[2613] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 2404, 2327, 81, 5060, 5060, 5060, 96, 52, + 90, 112, 1850, 1790, 81, 5087, 5087, 5087, 96, 52, 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 2197, 5060, 5060, 5060, 107, 1472, 5060, 5060, - 5060, 165, 1379, 1162, 5060, 5060, 5060, 211, 849, 5060, - 5060, 5060, 180, 788, 5060, 217, 5060, 221, 168, 648, + 191, 152, 1666, 5087, 5087, 5087, 107, 1417, 5087, 5087, + 5087, 165, 1078, 1009, 5087, 5087, 5087, 211, 849, 5087, + 5087, 5087, 180, 788, 5087, 217, 5087, 221, 168, 648, 225, 189, 0, 232, 0, 0, 226, 189, 85, 221, 114, 227, 234, 156, 219, 235, 236, 238, 239, 132, 246, 241, 243, 253, 244, 251, 254, 247, 260, 267, @@ -738,7 +740,7 @@ static yyconst flex_uint16_t yy_base[2600] = 700, 705, 708, 710, 713, 711, 720, 721, 722, 723, 724, 725, 733, 728, 731, 738, 741, 745, 749, 729, 755, 730, 753, 757, 751, 763, 760, 765, 768, 759, - 5060, 775, 767, 795, 770, 787, 805, 800, 769, 789, + 5087, 775, 767, 795, 770, 787, 805, 800, 769, 789, 777, 793, 801, 818, 791, 803, 813, 821, 659, 816, 819, 822, 824, 826, 834, 830, 831, 832, 844, 833, 835, 840, 855, 842, 847, 848, 854, 857, 856, 861, @@ -746,541 +748,545 @@ static yyconst flex_uint16_t yy_base[2600] = 896, 878, 891, 898, 888, 895, 900, 903, 904, 905, 906, 914, 913, 910, 919, 911, 921, 912, 922, 923, - 925, 926, 934, 928, 936, 5060, 941, 930, 938, 943, - 944, 945, 5060, 947, 948, 955, 956, 953, 960, 958, - 959, 966, 976, 961, 972, 977, 978, 979, 980, 982, - 983, 985, 986, 988, 989, 991, 1011, 994, 996, 997, - 999, 1006, 1018, 1000, 1028, 1008, 1026, 1020, 1034, 1007, - 1038, 1036, 1041, 1042, 1025, 1043, 1045, 1046, 1047, 1048, - 1052, 5060, 1059, 1056, 1067, 1062, 1049, 1054, 1069, 1070, - 1071, 1072, 1075, 1077, 1078, 1081, 1090, 1082, 1093, 1091, - 1092, 1096, 1097, 1098, 1099, 1100, 1110, 1106, 1108, 1113, - 1120, 1122, 1124, 1131, 1105, 1127, 1117, 1129, 1130, 1128, + 925, 926, 934, 928, 936, 5087, 941, 930, 938, 943, + 944, 945, 5087, 947, 948, 955, 956, 953, 960, 958, + 959, 966, 976, 961, 972, 984, 971, 982, 979, 983, + 986, 988, 980, 989, 991, 992, 1012, 996, 998, 999, + 1000, 1006, 1003, 1009, 1029, 1010, 1019, 1024, 1035, 1014, + 1040, 1027, 1033, 1037, 1030, 1043, 1046, 1047, 1048, 1053, + 1054, 5087, 1050, 1057, 1064, 1062, 1055, 1063, 1066, 1069, + 1071, 1072, 1073, 1075, 1079, 1091, 1094, 1081, 1098, 1083, + 1096, 1085, 1097, 1101, 1103, 1105, 1112, 1107, 1109, 1114, + 1116, 1118, 1124, 1131, 1115, 1127, 1126, 1129, 1130, 1128, - 1134, 1135, 1144, 1141, 1140, 1142, 1143, 1152, 1149, 1148, - 1156, 1155, 1160, 1157, 1165, 1166, 1167, 1169, 1178, 1174, - 1176, 1182, 1180, 1187, 1177, 1188, 1189, 1190, 1196, 1191, - 1197, 1199, 1204, 1203, 1202, 1212, 1214, 1206, 1207, 1222, - 1218, 1226, 1225, 1227, 1235, 1217, 1231, 1233, 1242, 1237, - 1238, 1240, 1245, 1248, 1241, 1255, 1250, 1257, 1259, 1262, - 1263, 1266, 1267, 1268, 1264, 1269, 1270, 1271, 1272, 1273, - 1275, 1276, 1277, 1296, 1278, 1279, 1293, 1295, 1299, 1300, - 1301, 1303, 1304, 998, 1305, 1306, 1308, 1312, 1309, 1315, - 1314, 1324, 1326, 1318, 1328, 1330, 1332, 1333, 1337, 1338, + 1134, 1135, 1144, 1142, 1140, 1143, 1141, 1155, 1147, 1150, + 1154, 1156, 1159, 1163, 1165, 1167, 1168, 1169, 1177, 1176, + 1175, 1179, 1186, 1187, 1173, 1180, 1190, 1188, 1197, 1194, + 1198, 1199, 1206, 1201, 1209, 1210, 1215, 1204, 1202, 1223, + 1219, 1227, 1225, 1226, 1235, 1230, 1232, 1218, 1239, 1236, + 1240, 1241, 1244, 1248, 1251, 1252, 1259, 1260, 1250, 1254, + 1264, 1265, 1266, 1268, 1269, 1270, 1271, 1272, 1273, 1277, + 1278, 1274, 1285, 1279, 1301, 1280, 1281, 1288, 1290, 1298, + 1302, 1303, 1305, 1307, 1311, 1310, 1312, 1313, 1314, 1317, + 1318, 1329, 1320, 1330, 1319, 1331, 1333, 1334, 1340, 1339, - 1341, 1347, 1334, 1345, 1340, 1350, 1352, 1357, 1358, 1361, - 1353, 5060, 1363, 1371, 1366, 1368, 1369, 1370, 1380, 1375, - 1376, 1377, 1378, 1384, 5060, 1385, 5060, 5060, 1387, 5060, - 5060, 1390, 1391, 1401, 1407, 1409, 1411, 1412, 1395, 1419, - 1427, 1416, 1414, 1418, 1392, 1420, 1425, 1430, 1432, 1438, - 1440, 1442, 1448, 1444, 1450, 1443, 1454, 1456, 1457, 1459, - 1458, 1461, 1464, 1467, 1465, 1463, 1469, 1471, 1486, 5060, - 1482, 1490, 1494, 1489, 1491, 1468, 1493, 1495, 1498, 1499, - 1496, 1505, 1500, 1502, 1514, 1507, 5060, 1511, 1512, 1517, - 1516, 1524, 1518, 1519, 1528, 1530, 1531, 1532, 737, 1535, + 1341, 1344, 1350, 1343, 1352, 1345, 1353, 1355, 1359, 1362, + 1365, 1366, 5087, 1368, 1378, 1369, 1370, 1373, 1377, 1386, + 1382, 1379, 1356, 1383, 1393, 5087, 1384, 5087, 5087, 1391, + 5087, 5087, 1392, 1388, 1396, 1406, 1409, 1411, 1404, 1413, + 1420, 1434, 1416, 1419, 1424, 1423, 1425, 1427, 1430, 1431, + 1429, 1449, 1451, 1454, 1455, 1443, 1447, 1439, 1461, 1462, + 1464, 1463, 1466, 1469, 1472, 1470, 1468, 1473, 1475, 1491, + 5087, 1476, 1493, 1495, 1494, 1492, 1496, 1499, 1500, 1501, + 1502, 1503, 1511, 1505, 1508, 1519, 1512, 5087, 1515, 1517, + 1520, 1521, 1529, 1523, 1527, 1533, 1534, 1536, 1537, 1538, - 5060, 1534, 1540, 1537, 1542, 1543, 1548, 1549, 1544, 1551, - 1552, 1553, 1554, 1555, 1556, 1563, 1559, 1562, 1567, 1580, - 1570, 1577, 1581, 1560, 1583, 1584, 1591, 1586, 1593, 1588, - 1589, 1595, 1594, 1596, 1604, 1616, 1609, 1600, 1611, 1619, - 1602, 1621, 1614, 1623, 1626, 1627, 1629, 1630, 1634, 1635, - 1636, 1638, 5060, 1637, 1639, 5060, 1640, 1643, 1665, 1644, - 1646, 1647, 1648, 1654, 1651, 1667, 1649, 1683, 1671, 1675, - 1669, 1687, 1688, 1680, 1678, 1689, 1690, 1697, 1701, 1709, - 1711, 1695, 1698, 1717, 1707, 1708, 1706, 1710, 1726, 1724, - 1730, 1721, 1712, 1715, 1733, 1740, 5060, 1745, 1746, 1728, + 737, 1539, 5087, 1477, 1544, 1540, 1548, 1545, 1549, 1552, + 1546, 1554, 1555, 1559, 1557, 1560, 1562, 1565, 1567, 1570, + 1576, 1581, 1573, 1578, 1583, 1585, 1588, 1587, 1595, 1590, + 1597, 1592, 1594, 1599, 1600, 1602, 1614, 1612, 1617, 1604, + 1616, 1624, 1621, 1626, 1609, 1628, 1631, 1632, 1634, 1635, + 1637, 1640, 1639, 1642, 5087, 1643, 1648, 5087, 1645, 1649, + 1671, 1650, 1652, 1653, 1654, 1669, 1657, 1658, 1664, 1689, + 1677, 1681, 1675, 1693, 1694, 1686, 1684, 1695, 1696, 1703, + 1707, 1715, 1717, 1701, 1704, 1723, 1713, 1714, 1712, 1716, + 1732, 1730, 1736, 1727, 1718, 1721, 1739, 1746, 5087, 1751, - 1741, 1748, 1750, 1751, 1752, 1753, 1756, 1763, 1758, 1759, - 1760, 1764, 1766, 1768, 1773, 1774, 1775, 5060, 1771, 5060, - 1776, 1777, 1779, 1785, 1781, 1789, 1793, 1792, 1802, 1805, - 1791, 5060, 1795, 1813, 1814, 1806, 1808, 1810, 1816, 1819, - 1820, 1823, 1821, 1824, 1825, 1826, 1828, 1829, 1837, 1838, - 1836, 5060, 1844, 1839, 1847, 1857, 1859, 1840, 1852, 1860, - 1854, 1856, 1861, 1864, 1868, 1871, 1869, 1873, 5060, 1866, - 1882, 1880, 1883, 1867, 1886, 1887, 1888, 1890, 1897, 1899, - 1894, 1895, 1904, 1896, 1905, 1901, 1911, 1908, 1912, 1910, - 1914, 5060, 1916, 1918, 124, 1920, 1922, 1924, 1923, 1931, + 1752, 1734, 1747, 1754, 1756, 1757, 1646, 1758, 1759, 1768, + 1763, 1764, 1765, 1766, 1771, 1769, 1773, 1778, 1780, 5087, + 1777, 5087, 1781, 1779, 1784, 1788, 1791, 1792, 1794, 1800, + 1804, 1807, 1806, 5087, 1808, 1816, 1813, 1818, 1811, 1812, + 1820, 1822, 1826, 1829, 1827, 1834, 1830, 1831, 1837, 1839, + 1840, 1843, 1845, 1846, 5087, 1849, 1851, 1853, 1860, 1862, + 1857, 1863, 1865, 1864, 1869, 1870, 1871, 1878, 1879, 1875, + 1886, 5087, 1874, 1883, 1894, 1876, 1887, 1895, 1889, 1896, + 1897, 1907, 1908, 1903, 1899, 1911, 1906, 1912, 1915, 1917, + 1916, 1919, 1920, 1921, 5087, 1922, 1924, 124, 1929, 1930, - 1933, 1925, 1944, 1947, 1943, 1949, 1950, 1942, 1946, 1952, - 1953, 1954, 1652, 1959, 1958, 1962, 1964, 1963, 1965, 1966, - 1975, 5060, 1969, 1967, 1976, 1979, 1927, 1982, 1987, 1985, - 1984, 1992, 1988, 5060, 1999, 2001, 1995, 2004, 2008, 2002, - 2005, 2010, 2013, 2016, 2014, 2018, 2017, 2019, 2023, 2022, - 2024, 2026, 2027, 2033, 5060, 2038, 2034, 2035, 2037, 2044, - 2050, 2059, 2045, 2051, 2054, 2055, 2068, 2061, 2060, 2072, - 2070, 2075, 2079, 2078, 2084, 2085, 2090, 2082, 2092, 2094, - 2095, 2096, 2103, 2104, 2100, 2106, 2107, 2111, 2115, 2052, - 5060, 2118, 2117, 2108, 2119, 2130, 2120, 2131, 2133, 2134, + 1932, 1931, 1933, 1938, 1935, 1953, 1954, 1951, 1950, 1957, + 1949, 1958, 1959, 1960, 1961, 1966, 1967, 1965, 1969, 1971, + 1970, 1977, 1974, 1976, 5087, 1978, 1986, 1989, 1987, 1997, + 1993, 1998, 1999, 2002, 2003, 2005, 5087, 2010, 2012, 2006, + 2013, 2015, 2014, 2016, 2020, 2022, 2025, 2028, 2029, 2027, + 2030, 2032, 2036, 2033, 2037, 2038, 2043, 5087, 2053, 2045, + 2054, 2044, 2055, 2049, 2069, 2056, 2065, 2067, 2070, 2081, + 2072, 2073, 2083, 2087, 2091, 2084, 2092, 2098, 2101, 2105, + 2095, 2107, 2106, 2099, 2109, 2118, 2120, 2117, 2074, 2110, + 2131, 2123, 2125, 5087, 2129, 2134, 2135, 2137, 2144, 2139, - 2135, 2137, 2138, 2139, 2141, 2140, 2146, 2148, 2151, 2158, - 2150, 2160, 2161, 5060, 2166, 2162, 2153, 2171, 2168, 2175, - 2176, 2177, 2178, 2180, 2182, 2184, 2183, 5060, 2187, 2186, - 2192, 2196, 2203, 2193, 2195, 2204, 2205, 2206, 5060, 2215, - 2217, 2216, 2220, 2218, 2207, 2222, 2224, 2225, 5060, 2228, - 2229, 2236, 2237, 2232, 5060, 2240, 2235, 2239, 2241, 2242, - 2243, 2246, 2244, 2250, 2251, 2257, 2266, 2254, 2258, 5060, - 2260, 2273, 2271, 2268, 2270, 2274, 2278, 2282, 2281, 2285, - 2292, 2291, 2294, 2288, 2297, 2298, 2301, 2300, 2302, 5060, - 2303, 2308, 2309, 2311, 2312, 2313, 2319, 2314, 2320, 2321, + 2140, 2141, 2142, 2147, 2148, 2150, 2154, 2152, 2156, 2160, + 2159, 2162, 2171, 2164, 2165, 2173, 2179, 5087, 2175, 2183, + 2174, 2185, 2182, 2190, 2186, 2192, 2194, 2196, 2197, 2198, + 2199, 5087, 2204, 2200, 2206, 2211, 2218, 2208, 2210, 2219, + 2220, 2221, 5087, 2230, 2232, 2231, 2235, 2233, 2222, 2237, + 2239, 2240, 5087, 2243, 2244, 2251, 2252, 2247, 5087, 2255, + 2250, 2254, 2256, 2257, 2258, 2261, 2259, 2265, 2266, 2272, + 2281, 2269, 2273, 5087, 2275, 2288, 2286, 2283, 2285, 2289, + 2293, 2297, 2296, 2300, 2307, 2306, 2309, 2303, 2312, 2313, + 2316, 2315, 2317, 5087, 2318, 2323, 2324, 2326, 2327, 2328, - 2324, 2325, 2335, 2338, 2337, 2328, 2341, 2347, 2343, 2349, - 2351, 2352, 2359, 2360, 2361, 2363, 5060, 2366, 2367, 2368, - 2356, 2369, 2370, 2373, 2375, 2378, 2379, 2381, 2382, 2384, - 2394, 2401, 2389, 2391, 2392, 2397, 2399, 2408, 2404, 2405, - 2406, 2413, 2414, 2415, 2417, 2418, 2421, 2420, 2423, 2425, - 2428, 2427, 2443, 2440, 2444, 2446, 2447, 2449, 2451, 5060, - 2450, 2452, 2454, 2460, 2464, 2461, 2465, 2468, 2458, 2471, - 2473, 2481, 2480, 5060, 2477, 5060, 2482, 2483, 2484, 2492, - 5060, 2491, 5060, 2497, 2494, 2498, 5060, 2429, 2499, 2487, - 2501, 2504, 2502, 2304, 2511, 2507, 2513, 2509, 2516, 2519, + 2334, 2329, 2335, 2336, 2339, 2340, 2350, 2353, 2352, 2343, + 2356, 2362, 2358, 2364, 2366, 2367, 2374, 2375, 2376, 2378, + 5087, 2381, 2382, 2383, 2371, 2384, 2385, 2388, 2390, 2393, + 2394, 2396, 2397, 2399, 2409, 2416, 2404, 2406, 2407, 2412, + 2414, 2423, 2419, 2420, 2421, 2428, 2429, 2430, 2432, 2433, + 2436, 2435, 2438, 2440, 2443, 2442, 2458, 2455, 2459, 2461, + 2462, 2464, 2466, 5087, 2465, 2467, 2469, 2475, 2479, 2476, + 2483, 2480, 2486, 2473, 2487, 2492, 2500, 2496, 5087, 2497, + 5087, 2498, 2499, 2501, 2509, 5087, 2507, 5087, 2511, 2508, + 2513, 5087, 2444, 2516, 2514, 2518, 2520, 2522, 2319, 2525, - 2520, 2525, 2522, 2527, 2528, 2529, 2530, 5060, 2534, 2531, - 2536, 2537, 2539, 2541, 2542, 2546, 2545, 2547, 2552, 2554, - 2555, 2558, 2563, 2570, 2562, 2577, 5060, 2569, 2573, 2574, - 2578, 5060, 2576, 2579, 2585, 2581, 2587, 2588, 2589, 2590, - 2594, 2596, 2601, 2608, 2609, 2611, 2610, 2597, 2618, 2623, - 2598, 2612, 2624, 2625, 2626, 2627, 2628, 2636, 2637, 2634, - 2641, 2632, 2640, 2643, 2647, 2633, 2649, 2650, 2653, 2654, - 2659, 2660, 2662, 2657, 2658, 2661, 2663, 5060, 2665, 2666, - 2674, 2680, 2672, 2676, 2682, 2683, 2685, 2688, 2689, 2693, - 2691, 5060, 2695, 5060, 2692, 2698, 2700, 2708, 2713, 2704, + 2527, 2528, 2530, 2532, 2534, 2536, 2539, 2542, 2543, 2544, + 2546, 2547, 5087, 2550, 2551, 2553, 2555, 2557, 2558, 2559, + 2561, 2562, 2568, 2563, 2573, 2570, 2577, 2576, 2586, 2584, + 2591, 5087, 2587, 2593, 2589, 2594, 5087, 2595, 2596, 2598, + 2602, 2603, 2605, 2606, 2610, 2612, 2607, 2622, 2623, 2613, + 2626, 2629, 2614, 2630, 2637, 2641, 2643, 2645, 2636, 2638, + 2632, 2646, 2653, 2654, 2652, 2661, 2658, 2659, 2663, 2660, + 2667, 2668, 2669, 2670, 2672, 2671, 2674, 2679, 2675, 2676, + 2677, 2678, 5087, 2693, 2680, 2697, 2703, 2690, 2694, 2682, + 2698, 2701, 2707, 2711, 2712, 2709, 5087, 2713, 5087, 2714, - 2709, 2716, 2718, 2719, 2721, 2720, 2728, 2725, 2726, 2731, - 2734, 2735, 2737, 2736, 5060, 2739, 2740, 2741, 2743, 2745, - 2750, 2756, 2751, 2747, 2761, 2762, 2773, 5060, 2774, 2766, - 2770, 2781, 2778, 2785, 2786, 5060, 2776, 2777, 2793, 2788, - 2794, 5060, 5060, 2789, 2790, 2798, 2799, 2800, 2810, 2802, - 2795, 2805, 2807, 2817, 2816, 2818, 5060, 2822, 2819, 2823, - 2825, 2826, 2828, 2829, 2834, 5060, 2835, 2841, 2837, 2842, - 2843, 2845, 2846, 2848, 2847, 2849, 2851, 2852, 2864, 2853, - 2863, 2867, 2869, 2871, 2876, 5060, 2877, 2878, 2880, 2883, - 2884, 2885, 2889, 2890, 2892, 2893, 2891, 2894, 2901, 2899, + 2720, 2727, 2729, 2731, 2715, 2735, 2736, 2737, 2723, 2738, + 2744, 2749, 2755, 2741, 2745, 2748, 2751, 2756, 2757, 5087, + 2759, 2760, 2762, 2764, 2767, 2768, 2770, 2774, 2775, 2777, + 2779, 2788, 5087, 2781, 2796, 2789, 2792, 2800, 2799, 2808, + 2803, 5087, 2801, 2805, 2812, 2810, 2811, 5087, 5087, 2813, + 2815, 2816, 2817, 2822, 2831, 2826, 2827, 2818, 2828, 2835, + 2833, 2838, 5087, 2843, 2840, 2844, 2846, 2847, 2850, 2853, + 2854, 5087, 2857, 2859, 2861, 2863, 2864, 2866, 2867, 2869, + 2870, 2873, 2868, 2871, 2884, 2874, 2879, 2888, 2890, 2892, + 2899, 5087, 2896, 2893, 2904, 2900, 2905, 2906, 2908, 2910, - 2897, 2898, 2904, 2900, 2906, 2922, 2908, 2917, 2918, 2919, - 2925, 2928, 2931, 2923, 2933, 2934, 2935, 2940, 2937, 2948, - 2944, 5060, 2951, 2946, 2958, 2949, 2950, 2960, 2961, 2963, - 2954, 2965, 2969, 2976, 2971, 5060, 2978, 2979, 2980, 2975, - 2981, 2990, 2983, 2987, 2988, 2995, 2997, 2998, 3000, 3002, - 3003, 3006, 5060, 5060, 3001, 5060, 3008, 3012, 3013, 3014, - 3016, 3015, 3017, 3019, 3022, 5060, 3026, 3033, 3030, 3032, - 3040, 3042, 3044, 3046, 3047, 3035, 3048, 3037, 3054, 3052, - 3053, 3058, 3066, 3061, 3062, 3064, 5060, 3063, 3065, 5060, - 3069, 3071, 3072, 3074, 3086, 3087, 3089, 3093, 3073, 3076, + 2911, 2913, 2914, 2915, 2918, 2920, 2916, 2917, 2922, 2923, + 2934, 2943, 2925, 2936, 2927, 2948, 2940, 2945, 2952, 2949, + 2954, 2956, 2957, 2959, 2960, 2967, 2962, 5087, 2972, 2963, + 2974, 2970, 2973, 2980, 2982, 2990, 2975, 2971, 2985, 2992, + 2993, 5087, 3002, 2997, 2998, 2999, 3003, 3012, 3007, 3004, + 3008, 3015, 3009, 3019, 3017, 3021, 3022, 3026, 5087, 5087, + 3027, 5087, 3028, 3031, 3032, 3033, 3039, 3034, 3041, 3038, + 3045, 5087, 3046, 3050, 3052, 3055, 3059, 3063, 3066, 3068, + 3058, 3054, 3056, 3069, 3076, 3070, 3071, 3077, 3086, 3082, + 3083, 3085, 5087, 3084, 3087, 3092, 5087, 3090, 3091, 3093, - 3095, 3096, 3103, 3099, 3102, 3101, 3108, 3110, 3119, 3120, - 3111, 3118, 3127, 5060, 3122, 3124, 3123, 3125, 3132, 3129, - 3139, 3131, 5060, 3136, 3138, 3140, 5060, 3141, 3146, 3153, - 3155, 3142, 3164, 3159, 3156, 3160, 3163, 5060, 3168, 5060, - 3167, 3169, 5060, 3171, 3174, 3175, 3177, 3178, 3179, 3185, - 3189, 3182, 3191, 3192, 3193, 3194, 3196, 3203, 3195, 5060, - 3204, 3199, 3206, 3211, 3207, 3208, 5060, 5060, 3214, 5060, - 3218, 3222, 5060, 3224, 3223, 3231, 3226, 3227, 3230, 3236, - 3233, 5060, 3240, 3229, 3244, 3242, 3246, 3248, 3250, 3252, - 3253, 3254, 3255, 5060, 3256, 3258, 3266, 3257, 3263, 3268, + 3094, 3101, 3108, 3110, 3114, 3096, 3111, 3115, 3116, 3124, + 3120, 3123, 3122, 3129, 3140, 3137, 3147, 3130, 3132, 3148, + 5087, 3143, 3145, 3146, 3150, 3157, 3152, 3159, 3154, 5087, + 3160, 3161, 3162, 5087, 3165, 3163, 3170, 3177, 3171, 3179, + 3178, 3181, 3182, 3183, 5087, 3185, 5087, 3193, 3187, 5087, + 3189, 3194, 3195, 3198, 3202, 3203, 3204, 3213, 3205, 3207, + 3210, 3214, 3215, 3217, 3224, 3220, 5087, 3226, 3221, 3223, + 3231, 3229, 3230, 5087, 5087, 3236, 5087, 3237, 3242, 5087, + 3244, 3246, 3251, 3247, 3248, 3250, 3255, 3257, 5087, 3256, + 3261, 3266, 3262, 3268, 3270, 3272, 3273, 3269, 3275, 3274, - 3272, 3273, 5060, 3280, 3282, 3278, 3281, 3287, 5060, 3288, - 3289, 5060, 3290, 3299, 3292, 3295, 3301, 3302, 3305, 3306, - 3308, 3315, 3311, 3312, 3313, 5060, 3314, 3317, 3320, 3322, - 3326, 3327, 3335, 3332, 3334, 3330, 3340, 3342, 3343, 3348, - 3350, 3351, 3345, 3356, 3352, 3357, 5060, 3358, 3360, 3363, - 5060, 3364, 3367, 3371, 3372, 3375, 5060, 3373, 3374, 3376, - 5060, 3378, 5060, 3380, 3382, 3383, 3388, 3392, 3394, 3395, - 3400, 3396, 3402, 3403, 3407, 3417, 3418, 3425, 3421, 3414, - 3409, 5060, 5060, 3427, 3430, 3423, 3434, 3435, 3428, 3437, - 3444, 3441, 3443, 3447, 3454, 5060, 3449, 3439, 3457, 5060, + 5087, 3276, 3279, 3278, 3283, 3286, 3294, 3287, 3288, 5087, + 3298, 3300, 3299, 3304, 3305, 5087, 3307, 3311, 5087, 3310, + 3315, 3318, 3320, 3319, 3322, 3323, 3329, 3326, 3336, 3332, + 3335, 3331, 5087, 3333, 3340, 3342, 3349, 3338, 3343, 3351, + 3355, 3356, 3357, 3362, 3359, 3366, 3368, 3370, 3372, 3374, + 3364, 3378, 3380, 3375, 5087, 3382, 3383, 3386, 5087, 3390, + 3392, 3393, 3395, 3398, 5087, 3396, 3397, 3399, 5087, 3400, + 5087, 3401, 3405, 3409, 3410, 3416, 3418, 3420, 3422, 3415, + 3423, 3426, 3430, 3438, 3439, 3442, 3441, 3440, 3445, 5087, + 5087, 3447, 3449, 3451, 3453, 3454, 3456, 3458, 3463, 3461, - 3450, 3458, 3451, 3462, 3460, 3464, 3467, 3469, 3466, 3471, - 3473, 3472, 3476, 3479, 3481, 5060, 3485, 3487, 3488, 3489, - 3490, 3491, 3493, 3494, 5060, 3492, 3497, 3499, 3501, 3503, - 3508, 3518, 3523, 3525, 3516, 3520, 3526, 3528, 3530, 3534, - 5060, 3536, 3532, 3535, 3538, 3543, 3545, 3546, 3548, 3549, - 3554, 3557, 3558, 3551, 5060, 3559, 3561, 3562, 3569, 3566, - 3571, 3573, 3574, 3579, 3563, 3580, 3583, 3586, 5060, 3587, - 3588, 3589, 3592, 3594, 3591, 3597, 3598, 5060, 3600, 3601, - 3608, 3603, 3605, 3609, 3614, 5060, 3619, 3617, 3620, 3623, - 3624, 3626, 3627, 3628, 3630, 3634, 3636, 3638, 3639, 3642, + 3470, 3462, 3477, 5087, 3474, 3459, 3480, 5087, 3472, 3481, + 3473, 3483, 3482, 3485, 3488, 3490, 3491, 3492, 3494, 3493, + 3501, 3500, 3509, 5087, 3502, 3506, 3510, 3511, 3512, 3513, + 3514, 3515, 5087, 3517, 3523, 3524, 3516, 3528, 3530, 3537, + 3540, 3545, 3541, 3546, 3547, 3549, 3551, 3552, 5087, 3555, + 3553, 3554, 3563, 3565, 3567, 3562, 3569, 3570, 3572, 3577, + 3578, 3579, 5087, 3580, 3583, 3584, 3587, 3589, 3590, 3591, + 3599, 3602, 3593, 3595, 3597, 3605, 5087, 3606, 3608, 3609, + 3613, 3619, 3611, 3614, 3620, 5087, 3622, 3623, 3625, 3627, + 3628, 3633, 3636, 3637, 5087, 3638, 3642, 3644, 3640, 3646, - 3644, 3645, 3646, 3643, 3656, 3658, 5060, 3640, 5060, 3659, - 3664, 3667, 3669, 3666, 5060, 3671, 3673, 3675, 3676, 3672, - 5060, 3680, 3677, 3679, 3683, 5060, 3682, 3696, 3684, 3690, - 3698, 5060, 3700, 3703, 3705, 3713, 3714, 3712, 3709, 3715, - 3717, 3718, 3719, 3720, 5060, 3722, 3724, 3731, 3728, 3725, - 3735, 5060, 3734, 3736, 3737, 3740, 3741, 3742, 3749, 3746, - 3748, 5060, 3753, 3750, 3763, 3759, 3758, 5060, 5060, 3762, - 3764, 3768, 3770, 3772, 5060, 3774, 3781, 3777, 3780, 3782, - 5060, 5060, 3784, 5060, 3785, 5060, 5060, 3787, 3788, 3795, - 5060, 3798, 5060, 3805, 3800, 3786, 3790, 3804, 5060, 3806, + 3648, 3651, 3652, 3653, 3655, 3661, 3660, 3662, 3663, 3664, + 3667, 3668, 3674, 3684, 3679, 5087, 3671, 5087, 3680, 3681, + 3692, 3693, 3687, 5087, 3690, 3695, 3697, 3698, 3699, 5087, + 3700, 3701, 3703, 3704, 5087, 3719, 3705, 3714, 3715, 3721, + 5087, 3724, 3725, 3726, 3735, 3736, 3733, 3737, 3738, 3740, + 3741, 3742, 3743, 5087, 3745, 3747, 3754, 3757, 3746, 3756, + 5087, 3748, 3758, 3759, 3763, 3764, 3765, 3775, 3771, 3772, + 5087, 3776, 3774, 3786, 3781, 3783, 5087, 5087, 3782, 3787, + 3791, 3793, 3797, 5087, 3795, 3806, 3801, 3803, 3805, 5087, + 5087, 3808, 5087, 3804, 5087, 5087, 3810, 3811, 3818, 5087, - 3807, 3811, 5060, 3808, 3820, 3813, 3815, 5060, 3822, 3816, - 3818, 5060, 3823, 3827, 3828, 3832, 3829, 3837, 3839, 3841, - 3846, 3848, 3850, 3842, 3838, 3852, 3857, 3855, 3860, 3862, - 3864, 3865, 3866, 3868, 3869, 3870, 3871, 3879, 3872, 3874, - 3876, 3882, 3883, 3884, 3885, 3888, 3887, 3890, 5060, 3892, - 3893, 3894, 3901, 3899, 3903, 3906, 3919, 3921, 3922, 5060, - 5060, 3924, 3909, 3926, 3912, 5060, 3914, 3928, 3916, 3929, - 3930, 3932, 3933, 3935, 5060, 3941, 3944, 3943, 3945, 3947, - 3948, 3954, 3950, 3956, 3957, 3958, 3960, 3962, 3970, 3966, - 3967, 3971, 3975, 3972, 3976, 3978, 3979, 3986, 3987, 3994, + 3821, 5087, 3829, 3824, 3812, 3809, 3827, 5087, 3826, 3830, + 3834, 5087, 3835, 3843, 3836, 3838, 5087, 3840, 3841, 3846, + 5087, 3847, 3850, 3851, 3852, 3859, 3855, 3858, 3862, 3866, + 3871, 3874, 3876, 3868, 3863, 3877, 3882, 3879, 3885, 3887, + 3889, 3890, 3892, 3893, 3894, 3895, 3896, 3898, 3901, 3903, + 3904, 3906, 3907, 3908, 3911, 3909, 3913, 3915, 5087, 3917, + 3920, 3921, 3923, 3925, 3927, 3933, 3937, 3941, 3945, 5087, + 5087, 3947, 3934, 3943, 3949, 5087, 3950, 3951, 3953, 3956, + 3955, 3957, 3960, 3958, 5087, 3962, 3963, 3966, 3967, 3971, + 3973, 3979, 3974, 3981, 3982, 3983, 3987, 3991, 4001, 3988, - 5060, 3988, 5060, 3991, 3995, 3997, 5060, 5060, 3998, 3999, - 4004, 4005, 4001, 4009, 4006, 5060, 4011, 4013, 4022, 4012, - 5060, 4014, 4023, 4028, 5060, 4030, 4031, 4033, 4035, 4037, - 5060, 5060, 5060, 5060, 4038, 4024, 4041, 4042, 4044, 5060, - 5060, 5060, 4047, 4045, 4051, 4049, 4048, 4058, 5060, 4060, - 4063, 4064, 4061, 4071, 4073, 4074, 4077, 4062, 4065, 4084, - 4085, 4086, 4079, 4088, 4092, 4096, 5060, 5060, 4089, 4097, - 4104, 4101, 4105, 4113, 4108, 4109, 4111, 4115, 4116, 4117, - 4119, 5060, 4118, 5060, 4123, 4127, 4125, 4126, 4129, 4133, - 4134, 4136, 5060, 5060, 4137, 4140, 4144, 4147, 4148, 4141, + 3993, 3984, 4000, 3996, 3997, 4004, 4010, 4014, 4018, 4022, + 5087, 4007, 5087, 4015, 4011, 4019, 5087, 5087, 4023, 4025, + 4030, 4027, 4032, 4034, 4035, 5087, 4036, 4037, 4045, 4040, + 5087, 4046, 4047, 4049, 5087, 4052, 4055, 4056, 4058, 4060, + 4062, 5087, 5087, 5087, 5087, 4068, 4059, 4063, 4070, 4071, + 5087, 5087, 5087, 4072, 4073, 4074, 4078, 4082, 4084, 5087, + 4085, 4088, 4089, 4090, 4096, 4098, 4099, 4102, 4091, 4103, + 4110, 4108, 4111, 4114, 4115, 4117, 4119, 5087, 5087, 4122, + 4123, 4131, 4127, 4128, 4140, 4137, 4138, 4136, 4124, 4142, + 4144, 4146, 5087, 4148, 5087, 4147, 4154, 4153, 4155, 4156, - 4149, 4152, 4153, 5060, 4154, 5060, 4155, 4157, 4165, 4171, - 4158, 4168, 5060, 4174, 4176, 5060, 4177, 4178, 4179, 5060, - 4184, 4187, 4191, 5060, 5060, 4196, 5060, 4162, 5060, 4180, - 4197, 4202, 4204, 4205, 4207, 4209, 4212, 4199, 4216, 4213, - 4218, 4223, 4220, 4221, 5060, 5060, 4228, 4224, 4226, 4229, - 4230, 4239, 4234, 4237, 4243, 5060, 5060, 4188, 4240, 4235, - 5060, 4244, 4250, 4245, 4251, 4252, 4254, 4257, 4261, 4258, - 4264, 4265, 4266, 4275, 4278, 4280, 4273, 4282, 4268, 4283, - 4285, 4286, 4290, 5060, 4292, 4293, 4295, 5060, 4298, 4300, - 4302, 4299, 4303, 5060, 4305, 4315, 4316, 4308, 4311, 4325, + 4157, 4160, 4163, 5087, 5087, 4162, 4164, 4167, 4170, 4173, + 4174, 4175, 4177, 4178, 5087, 4179, 5087, 4180, 4185, 4188, + 4196, 4191, 4193, 5087, 4201, 4202, 5087, 4203, 4204, 4205, + 5087, 4208, 4212, 4214, 5087, 4217, 5087, 4222, 5087, 4206, + 5087, 4219, 4223, 4228, 4230, 4231, 4233, 4235, 4238, 4225, + 4242, 4243, 4244, 4251, 4247, 4248, 5087, 5087, 4255, 4250, + 4256, 4257, 4253, 4266, 4262, 4263, 4265, 5087, 5087, 4269, + 4270, 4268, 5087, 4272, 4279, 4275, 4280, 4281, 4283, 4284, + 4289, 4286, 4294, 4290, 4295, 4300, 4306, 4310, 4304, 4308, + 4312, 4291, 4314, 4315, 4316, 5087, 4319, 4321, 4322, 5087, - 4318, 4321, 5060, 5060, 5060, 4328, 4329, 4322, 5060, 5060, - 4332, 5060, 4333, 5060, 4335, 5060, 4336, 4339, 4337, 5060, - 4342, 4348, 5060, 4344, 4351, 4354, 4355, 4358, 4360, 4361, - 5060, 4365, 4362, 4363, 4370, 4371, 4372, 4375, 4373, 4382, - 4374, 4384, 5060, 4377, 4385, 4387, 4381, 4388, 4398, 4395, - 4390, 4392, 4397, 4403, 4407, 4410, 4412, 5060, 4414, 4416, - 5060, 4417, 5060, 4419, 4420, 4421, 5060, 4423, 4424, 4425, - 4427, 5060, 4428, 4435, 5060, 4430, 4440, 4442, 4434, 4437, - 4432, 4447, 4445, 4454, 4455, 4460, 5060, 5060, 5060, 4450, - 4456, 4469, 4467, 4468, 4470, 4472, 5060, 4473, 4474, 4475, + 4326, 4327, 4329, 4333, 4330, 5087, 4331, 4342, 4343, 4337, + 4344, 4351, 4348, 4353, 5087, 5087, 5087, 5087, 4355, 4356, + 4352, 5087, 5087, 4357, 5087, 4358, 5087, 4360, 5087, 4363, + 4366, 4369, 5087, 4371, 4373, 5087, 4380, 4384, 4386, 4387, + 4372, 4375, 4388, 5087, 4395, 4397, 4398, 4391, 4399, 4400, + 4401, 4404, 4411, 4407, 4409, 5087, 4410, 4412, 4414, 4415, + 4418, 4416, 4424, 4419, 4423, 4426, 4425, 4436, 4438, 4439, + 5087, 4441, 4444, 5087, 4445, 5087, 4447, 4448, 4449, 5087, + 4451, 4452, 4453, 4455, 5087, 4456, 4459, 5087, 4460, 4468, + 4470, 4471, 4461, 4465, 4463, 4477, 4479, 4483, 4487, 5087, - 4483, 4480, 4482, 5060, 4485, 4486, 5060, 4488, 4492, 4495, - 4489, 4496, 4507, 4509, 4511, 4499, 5060, 4513, 5060, 5060, - 4502, 5060, 4493, 4516, 5060, 4519, 4514, 4520, 4522, 4524, - 4525, 5060, 5060, 4527, 4532, 4529, 4534, 4538, 5060, 4535, - 4536, 4539, 4542, 4545, 5060, 4549, 4546, 4547, 4548, 4552, - 4550, 4558, 4553, 4559, 5060, 5060, 4560, 5060, 5060, 4562, - 4572, 4569, 5060, 5060, 5060, 4578, 5060, 4582, 4586, 4585, - 5060, 4588, 4579, 4590, 5060, 4592, 4593, 4594, 4595, 5060, - 4596, 4599, 4601, 4606, 4612, 4603, 4615, 4607, 4623, 4627, - 4609, 4613, 4624, 4625, 4626, 4629, 4633, 5060, 5060, 4636, + 5087, 5087, 4489, 4485, 4496, 4492, 4495, 4499, 4494, 5087, + 4502, 4503, 4500, 4510, 4506, 4514, 5087, 4516, 4509, 5087, + 4518, 4521, 4522, 4511, 4526, 4530, 4533, 4535, 4536, 5087, + 4538, 5087, 5087, 4539, 5087, 4540, 4542, 5087, 4545, 4546, + 4547, 4548, 4550, 4551, 5087, 5087, 4552, 4559, 4555, 4565, + 4568, 5087, 4554, 4561, 4570, 4571, 4572, 5087, 4569, 4576, + 4579, 4580, 4584, 4582, 4586, 4585, 4587, 5087, 5087, 4588, + 5087, 5087, 4590, 4594, 4597, 5087, 5087, 5087, 4610, 5087, + 4612, 4616, 4615, 5087, 4618, 4605, 4607, 5087, 4625, 4620, + 4622, 4628, 5087, 4629, 4630, 4631, 4634, 4636, 4637, 4591, - 5060, 5060, 4638, 4640, 4642, 5060, 4643, 4647, 5060, 4650, - 4644, 4651, 4653, 4655, 4657, 5060, 5060, 4658, 4661, 4660, - 4665, 4662, 5060, 4668, 4673, 4669, 4672, 4674, 4678, 4675, - 5060, 5060, 5060, 5060, 5060, 4679, 5060, 5060, 4681, 4684, - 4685, 4687, 5060, 4689, 4692, 4690, 4697, 4694, 4706, 4698, - 4700, 4702, 4708, 4710, 4713, 4714, 4715, 4717, 4718, 4722, - 4725, 4731, 4733, 4723, 4736, 4737, 4738, 4739, 4741, 4745, - 4752, 4747, 4749, 4750, 5060, 4753, 5060, 4754, 5060, 5060, - 4758, 4762, 4751, 4755, 4770, 4771, 4767, 4773, 4775, 5060, - 4776, 4777, 4778, 5060, 4779, 4780, 4783, 4784, 4787, 4788, + 4641, 4646, 4644, 4642, 4648, 4649, 4651, 4654, 4655, 4658, + 5087, 5087, 4661, 5087, 5087, 4665, 4669, 4672, 5087, 4666, + 4677, 5087, 4679, 4673, 4680, 4681, 4683, 4685, 5087, 5087, + 4686, 4687, 4689, 4693, 4691, 5087, 4696, 4701, 4697, 4700, + 4702, 4706, 4703, 5087, 5087, 5087, 5087, 5087, 4707, 5087, + 5087, 4708, 4712, 4713, 4714, 5087, 4717, 4718, 4720, 4730, + 4722, 4726, 4723, 4734, 4738, 4735, 4739, 4742, 4741, 4744, + 4746, 4743, 4748, 4749, 4755, 4760, 4762, 4763, 4765, 4766, + 4767, 4769, 4770, 4779, 4774, 4776, 4777, 5087, 4778, 5087, + 4780, 5087, 5087, 4787, 4789, 4784, 4782, 4797, 4805, 4795, - 4790, 4793, 4792, 4789, 4804, 4801, 4811, 4812, 4809, 4815, - 4816, 4817, 4824, 4822, 4826, 5060, 4819, 4828, 4830, 4829, - 4831, 4838, 4833, 4840, 4834, 5060, 4842, 4845, 4839, 4843, - 4846, 4851, 4855, 4858, 4859, 5060, 4849, 4860, 4866, 4867, - 4869, 4871, 4873, 4874, 4878, 4879, 4881, 4887, 4882, 4888, - 4890, 4891, 4892, 5060, 4898, 4894, 5060, 4899, 4900, 4901, - 4902, 4906, 5060, 4915, 4903, 4908, 4916, 4919, 4923, 5060, - 4925, 4929, 4926, 5060, 4931, 5060, 5060, 4932, 4934, 4935, - 4939, 4941, 5060, 5060, 5060, 4968, 4975, 4982, 4989, 4996, - 88, 5003, 5010, 5017, 5024, 5031, 5038, 5045, 5052 + 4800, 4802, 5087, 4803, 4804, 4806, 5087, 4807, 4811, 4812, + 4815, 4817, 4814, 4819, 4820, 4808, 4822, 4835, 4832, 4842, + 4838, 4840, 4843, 4844, 4846, 4853, 4850, 4852, 5087, 4854, + 4856, 4857, 4859, 4860, 4867, 4862, 4863, 4868, 5087, 4871, + 4873, 4872, 4874, 4880, 4883, 4886, 4884, 4888, 5087, 4866, + 4890, 4894, 4897, 4902, 4895, 4904, 4905, 4907, 4909, 4908, + 4916, 4912, 4918, 4917, 4921, 4920, 5087, 4923, 4927, 5087, + 4928, 4929, 4930, 4931, 4937, 5087, 4941, 4932, 4935, 4942, + 4945, 4948, 5087, 4953, 4957, 4958, 5087, 4959, 5087, 5087, + 4961, 4960, 4962, 4968, 4970, 5087, 5087, 5087, 4995, 5002, + 5009, 5016, 5023, 88, 5030, 5037, 5044, 5051, 5058, 5065, + 5072, 5079 } ; -static yyconst flex_int16_t yy_def[2600] = +static yyconst flex_int16_t yy_def[2613] = { 0, - 2585, 1, 2586, 2586, 2587, 2587, 2588, 2588, 2589, 2589, - 2590, 2590, 2585, 2591, 2585, 2585, 2585, 2585, 2592, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2593, 2585, 2585, 2585, 2593, 2594, 2585, 2585, - 2585, 2594, 2595, 2585, 2585, 2585, 2585, 2595, 2596, 2585, - 2585, 2585, 2596, 2597, 2585, 2598, 2585, 2597, 2597, 2591, - 2591, 2585, 2599, 2592, 2599, 2592, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2598, 1, 2599, 2599, 2600, 2600, 2601, 2601, 2602, 2602, + 2603, 2603, 2598, 2604, 2598, 2598, 2598, 2598, 2605, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2606, 2598, 2598, 2598, 2606, 2607, 2598, 2598, + 2598, 2607, 2608, 2598, 2598, 2598, 2598, 2608, 2609, 2598, + 2598, 2598, 2609, 2610, 2598, 2611, 2598, 2610, 2610, 2604, + 2604, 2598, 2612, 2605, 2612, 2605, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2593, - 2593, 2594, 2594, 2595, 2595, 2585, 2596, 2596, 2597, 2597, - 2598, 2598, 2597, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2606, + 2606, 2607, 2607, 2608, 2608, 2598, 2609, 2609, 2610, 2610, + 2611, 2611, 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2597, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2597, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2597, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2610, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2597, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2585, 2585, 2591, 2585, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2610, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2598, 2604, + 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2597, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2610, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2597, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2610, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2585, 2591, 2591, 2591, 2591, - 2585, 2591, 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2585, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2585, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2585, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2585, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2585, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2585, 2585, 2591, 2585, 2591, 2585, 2585, 2591, 2591, 2591, - 2585, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2585, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, + 2598, 2604, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2585, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2585, 2591, 2585, 2591, 2591, 2591, 2585, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2585, 2585, 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2585, - 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2598, 2604, 2604, 2604, 2598, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, + 2604, 2598, 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604, + 2598, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2585, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2585, 2585, 2591, 2585, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2585, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604, + 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2604, 2598, 2604, + 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, - 2591, 2591, 2585, 2585, 2585, 2591, 2591, 2591, 2585, 2585, - 2591, 2585, 2591, 2585, 2591, 2585, 2591, 2591, 2591, 2585, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, - 2585, 2591, 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2604, 2604, + 2604, 2598, 2598, 2604, 2598, 2604, 2598, 2604, 2598, 2604, + 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2604, 2604, 2598, 2604, 2598, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, - 2591, 2591, 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2585, 2585, - 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2585, 2585, 2591, 2591, 2591, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2585, 2585, 2591, - 2591, 2591, 2585, 2585, 2585, 2591, 2585, 2591, 2591, 2591, - 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, + 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, + 2604, 2598, 2598, 2604, 2598, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2598, 2598, 2604, 2604, 2604, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, 2604, + 2598, 2598, 2604, 2604, 2604, 2598, 2598, 2598, 2604, 2598, + 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2585, 2585, 2591, 2591, 2591, 2585, 2591, 2591, 2585, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2585, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2585, 2585, 2585, 2585, 2585, 2591, 2585, 2585, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2585, 2591, 2585, 2591, 2585, 2585, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2598, 2598, 2604, 2598, 2598, 2604, 2604, 2604, 2598, 2604, + 2604, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2598, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2598, 2598, 2598, 2598, 2598, 2604, 2598, + 2598, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2598, + 2604, 2598, 2598, 2604, 2604, 2604, 2604, 2604, 2604, 2604, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2585, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, - 2591, 2591, 2591, 2585, 2591, 2591, 2585, 2591, 2591, 2591, - 2591, 2591, 2585, 2591, 2591, 2591, 2591, 2591, 2591, 2585, - 2591, 2591, 2591, 2585, 2591, 2585, 2585, 2591, 2591, 2591, - 2591, 2591, 2585, 2585, 0, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585 + 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, + 2604, 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2598, + 2604, 2604, 2604, 2604, 2604, 2598, 2604, 2604, 2604, 2604, + 2604, 2604, 2598, 2604, 2604, 2604, 2598, 2604, 2598, 2598, + 2604, 2604, 2604, 2604, 2604, 2598, 2598, 0, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598 } ; -static yyconst flex_uint16_t yy_nxt[5101] = +static yyconst flex_uint16_t yy_nxt[5128] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1366,7 +1372,7 @@ static yyconst flex_uint16_t yy_nxt[5101] = 422, 71, 71, 71, 71, 425, 71, 418, 416, 424, 71, 71, 436, 421, 71, 419, 431, 420, 71, 426, 437, 423, 71, 427, 71, 429, 71, 430, 71, 428, - 71, 432, 71, 71, 848, 438, 71, 439, 71, 441, + 71, 432, 71, 71, 851, 438, 71, 439, 71, 441, 71, 71, 150, 71, 433, 440, 448, 434, 71, 435, 71, 449, 442, 445, 451, 443, 447, 444, 459, 446, @@ -1389,463 +1395,466 @@ static yyconst flex_uint16_t yy_nxt[5101] = 535, 71, 533, 529, 71, 536, 71, 71, 71, 538, 71, 71, 534, 546, 537, 539, 71, 548, 71, 71, 541, 71, 71, 71, 71, 547, 549, 540, 542, 71, - 543, 544, 545, 552, 555, 71, 550, 551, 554, 71, - 71, 71, 71, 71, 553, 71, 71, 558, 71, 71, + 543, 544, 545, 553, 71, 71, 550, 551, 555, 71, + 552, 556, 71, 71, 554, 71, 71, 71, 558, 71, - 561, 71, 71, 562, 71, 557, 564, 71, 556, 71, - 71, 71, 71, 71, 563, 559, 560, 577, 565, 71, - 71, 71, 729, 566, 71, 567, 576, 574, 575, 580, - 568, 71, 569, 71, 578, 581, 579, 583, 71, 71, - 570, 71, 584, 571, 572, 587, 582, 71, 586, 71, - 573, 71, 588, 585, 71, 71, 71, 592, 71, 71, - 71, 71, 71, 594, 589, 71, 590, 71, 595, 150, - 591, 598, 71, 600, 601, 71, 597, 603, 593, 596, - 71, 599, 71, 71, 71, 71, 604, 602, 71, 608, - 71, 71, 610, 612, 71, 71, 605, 613, 606, 611, + 559, 71, 71, 562, 71, 71, 563, 565, 564, 71, + 146, 71, 71, 71, 560, 557, 71, 561, 578, 71, + 566, 580, 71, 71, 567, 71, 568, 71, 577, 575, + 576, 569, 71, 570, 579, 585, 582, 71, 581, 584, + 71, 571, 71, 71, 572, 573, 71, 583, 71, 587, + 71, 574, 588, 71, 589, 590, 71, 586, 591, 71, + 71, 71, 593, 71, 595, 592, 71, 71, 71, 596, + 150, 602, 600, 599, 601, 71, 71, 71, 594, 71, + 597, 598, 71, 604, 71, 71, 71, 603, 71, 609, + 611, 145, 71, 606, 71, 605, 71, 607, 71, 610, - 615, 609, 607, 71, 71, 71, 71, 614, 617, 71, - 71, 71, 71, 71, 620, 619, 616, 624, 71, 71, - 627, 71, 625, 71, 618, 628, 71, 629, 621, 623, - 71, 622, 626, 71, 630, 71, 631, 71, 632, 633, - 71, 71, 71, 71, 71, 634, 637, 71, 71, 635, - 636, 641, 640, 71, 71, 71, 71, 71, 642, 646, - 644, 71, 71, 146, 638, 71, 639, 647, 71, 71, - 71, 643, 649, 71, 653, 648, 645, 650, 71, 71, - 71, 651, 71, 655, 656, 659, 652, 71, 654, 71, - 71, 71, 661, 71, 657, 71, 660, 658, 664, 662, + 612, 614, 608, 613, 71, 616, 615, 71, 617, 71, + 71, 71, 618, 619, 71, 620, 71, 621, 71, 625, + 71, 628, 71, 630, 626, 71, 629, 71, 71, 71, + 631, 71, 622, 627, 624, 623, 632, 71, 633, 71, + 71, 71, 71, 71, 71, 635, 638, 71, 71, 634, + 637, 642, 641, 71, 71, 71, 71, 71, 636, 643, + 71, 645, 647, 71, 639, 648, 640, 71, 71, 71, + 650, 644, 71, 654, 646, 651, 71, 649, 71, 652, + 71, 71, 71, 656, 660, 657, 71, 653, 71, 71, + 71, 662, 71, 71, 655, 658, 663, 659, 661, 71, - 71, 71, 71, 71, 71, 665, 666, 668, 670, 71, - 71, 674, 71, 671, 667, 71, 71, 71, 676, 71, - 71, 663, 675, 669, 673, 71, 672, 71, 677, 681, - 71, 71, 678, 683, 680, 71, 682, 679, 71, 71, - 71, 684, 686, 688, 71, 685, 71, 687, 71, 692, - 71, 71, 697, 71, 71, 71, 695, 689, 71, 699, - 694, 71, 700, 71, 702, 690, 691, 701, 71, 693, - 71, 696, 71, 698, 704, 71, 71, 71, 706, 71, - 71, 71, 71, 71, 71, 71, 71, 712, 71, 71, - 71, 71, 71, 713, 705, 703, 710, 707, 708, 709, + 71, 71, 667, 71, 665, 666, 668, 71, 669, 671, + 71, 71, 71, 675, 71, 71, 672, 71, 664, 71, + 676, 670, 71, 71, 674, 677, 678, 673, 71, 681, + 682, 71, 71, 679, 684, 680, 71, 683, 71, 71, + 71, 685, 687, 71, 686, 71, 693, 688, 71, 71, + 691, 692, 71, 71, 71, 699, 689, 71, 690, 696, + 697, 71, 695, 71, 71, 71, 702, 71, 694, 706, + 701, 703, 71, 71, 704, 698, 700, 71, 71, 71, + 708, 71, 71, 71, 71, 71, 71, 71, 705, 714, + 71, 71, 71, 71, 71, 715, 707, 709, 71, 710, - 714, 717, 711, 719, 715, 718, 71, 716, 71, 71, - 720, 721, 71, 71, 71, 726, 71, 71, 71, 71, - 727, 71, 71, 730, 722, 71, 723, 71, 71, 734, - 724, 71, 725, 735, 736, 731, 728, 71, 733, 71, - 732, 71, 737, 71, 738, 71, 71, 71, 740, 739, - 71, 150, 741, 71, 71, 743, 745, 746, 71, 742, - 71, 748, 744, 71, 747, 71, 71, 749, 750, 753, - 71, 71, 754, 756, 71, 757, 71, 751, 759, 71, - 755, 71, 71, 71, 71, 761, 752, 764, 71, 71, - 71, 71, 145, 71, 762, 758, 765, 71, 71, 760, + 711, 71, 712, 71, 713, 716, 718, 720, 721, 717, + 719, 71, 722, 723, 71, 71, 71, 728, 71, 724, + 71, 725, 729, 71, 71, 71, 71, 71, 732, 726, + 71, 71, 71, 71, 727, 731, 737, 736, 739, 730, + 735, 733, 71, 71, 71, 734, 71, 71, 740, 738, + 741, 742, 71, 71, 150, 743, 71, 71, 71, 747, + 748, 744, 745, 71, 746, 71, 71, 749, 71, 71, + 750, 755, 71, 752, 751, 71, 756, 758, 71, 71, + 753, 71, 71, 71, 757, 761, 71, 763, 759, 754, + 71, 71, 71, 766, 769, 71, 71, 71, 764, 71, - 71, 763, 769, 71, 71, 71, 770, 766, 71, 771, - 777, 768, 776, 774, 71, 767, 772, 775, 778, 773, - 71, 779, 71, 780, 71, 71, 784, 71, 783, 71, - 795, 71, 71, 71, 792, 781, 796, 797, 71, 782, - 71, 785, 786, 71, 787, 71, 799, 788, 793, 794, - 798, 71, 789, 71, 801, 71, 71, 71, 790, 791, - 802, 71, 804, 71, 803, 805, 800, 71, 806, 71, - 71, 71, 71, 808, 71, 812, 71, 71, 71, 811, - 71, 71, 71, 818, 71, 143, 807, 817, 816, 826, - 809, 810, 813, 819, 814, 71, 815, 822, 820, 71, + 760, 71, 762, 767, 71, 71, 71, 779, 765, 71, + 768, 771, 776, 780, 778, 772, 770, 71, 773, 71, + 781, 777, 71, 782, 71, 774, 71, 786, 775, 71, + 143, 784, 71, 71, 794, 783, 71, 71, 71, 799, + 71, 798, 71, 71, 71, 801, 785, 71, 787, 788, + 800, 789, 71, 795, 790, 796, 71, 802, 807, 791, + 71, 797, 71, 803, 71, 792, 793, 71, 71, 804, + 805, 809, 808, 806, 71, 71, 71, 71, 810, 71, + 814, 71, 71, 71, 813, 71, 71, 820, 71, 71, + 71, 819, 854, 818, 823, 811, 812, 815, 821, 816, - 821, 823, 71, 71, 71, 824, 71, 71, 71, 71, - 825, 71, 71, 71, 827, 71, 829, 832, 71, 830, - 71, 835, 833, 834, 71, 71, 828, 71, 831, 71, - 71, 71, 71, 837, 838, 839, 842, 71, 840, 836, - 841, 71, 844, 71, 71, 71, 843, 71, 71, 851, - 71, 849, 852, 71, 847, 71, 71, 71, 845, 850, - 854, 71, 71, 846, 71, 71, 71, 71, 71, 71, - 861, 853, 71, 71, 860, 71, 71, 855, 864, 858, - 71, 856, 857, 71, 859, 862, 868, 863, 865, 867, - 71, 866, 869, 71, 71, 873, 71, 71, 876, 71, + 824, 817, 825, 822, 71, 71, 71, 71, 71, 71, + 826, 827, 71, 71, 71, 71, 71, 828, 71, 831, + 829, 71, 832, 834, 71, 71, 837, 835, 71, 836, + 71, 830, 71, 71, 71, 833, 71, 839, 841, 840, + 71, 844, 71, 842, 838, 843, 71, 71, 847, 71, + 71, 71, 71, 71, 845, 852, 855, 71, 71, 71, + 850, 71, 71, 853, 848, 71, 857, 71, 71, 849, + 71, 846, 71, 71, 856, 71, 864, 863, 71, 858, + 71, 861, 859, 71, 867, 860, 71, 862, 865, 71, + 868, 71, 866, 872, 71, 871, 71, 870, 71, 869, - 878, 71, 71, 870, 71, 879, 71, 71, 71, 71, - 871, 875, 883, 71, 872, 71, 874, 71, 885, 877, - 881, 880, 71, 886, 71, 887, 890, 71, 882, 71, - 884, 888, 71, 892, 71, 891, 71, 889, 895, 150, - 71, 894, 71, 71, 898, 893, 897, 71, 71, 71, - 71, 71, 71, 71, 901, 896, 71, 71, 913, 71, - 71, 71, 71, 914, 71, 71, 904, 71, 900, 899, - 902, 917, 1067, 905, 903, 915, 920, 906, 71, 918, - 71, 907, 71, 908, 71, 919, 916, 909, 71, 910, - 921, 71, 924, 71, 911, 922, 71, 925, 923, 912, + 71, 71, 879, 71, 881, 71, 873, 71, 71, 882, + 71, 874, 71, 71, 878, 71, 875, 71, 886, 889, + 876, 877, 71, 880, 884, 71, 883, 71, 888, 71, + 71, 893, 885, 890, 71, 891, 887, 71, 895, 71, + 896, 71, 892, 898, 150, 71, 897, 71, 71, 901, + 71, 900, 71, 71, 894, 71, 71, 904, 71, 71, + 899, 71, 71, 71, 916, 71, 71, 71, 967, 917, + 71, 71, 902, 903, 905, 907, 922, 71, 908, 141, + 906, 918, 71, 909, 71, 921, 920, 910, 71, 911, + 71, 923, 919, 912, 71, 913, 924, 71, 927, 71, - 71, 71, 71, 71, 933, 926, 928, 929, 71, 932, - 71, 71, 930, 934, 71, 927, 931, 935, 936, 71, - 71, 71, 71, 71, 71, 71, 946, 937, 71, 938, - 71, 939, 945, 947, 71, 948, 940, 71, 941, 71, - 949, 71, 950, 71, 953, 955, 71, 954, 952, 942, - 943, 951, 957, 71, 71, 961, 944, 956, 71, 71, - 959, 71, 958, 71, 71, 71, 71, 960, 962, 71, - 967, 71, 71, 71, 964, 965, 71, 71, 970, 71, - 968, 71, 976, 963, 71, 966, 71, 71, 71, 71, - 71, 969, 71, 972, 71, 974, 975, 971, 71, 982, + 914, 925, 71, 928, 926, 915, 71, 71, 71, 71, + 936, 929, 931, 932, 71, 935, 71, 71, 933, 937, + 71, 930, 934, 938, 939, 71, 71, 71, 71, 71, + 71, 71, 949, 940, 71, 941, 71, 942, 948, 950, + 71, 951, 943, 71, 944, 71, 952, 71, 953, 71, + 956, 958, 71, 957, 955, 945, 946, 954, 960, 71, + 71, 964, 947, 959, 71, 71, 962, 71, 961, 71, + 71, 71, 71, 963, 965, 970, 71, 71, 71, 71, + 968, 71, 71, 973, 71, 971, 71, 979, 969, 966, + 71, 71, 71, 71, 71, 977, 972, 71, 975, 974, - 977, 973, 71, 978, 71, 71, 71, 983, 71, 979, - 980, 984, 987, 981, 985, 71, 986, 988, 71, 71, - 990, 71, 994, 71, 989, 991, 71, 71, 992, 71, - 1000, 993, 71, 71, 71, 995, 71, 71, 71, 71, - 1002, 71, 71, 996, 1004, 998, 1005, 997, 999, 71, - 71, 71, 71, 71, 1001, 1007, 1008, 71, 1006, 1003, - 71, 1009, 1015, 1010, 1013, 71, 1012, 71, 1011, 71, - 71, 1014, 71, 71, 71, 1022, 1017, 71, 1023, 71, - 71, 71, 71, 1016, 71, 1018, 71, 1024, 1019, 1027, - 1021, 1025, 1028, 71, 1020, 71, 71, 1026, 1030, 71, + 978, 71, 976, 71, 71, 71, 980, 71, 981, 985, + 986, 982, 987, 71, 990, 983, 984, 71, 989, 71, + 71, 71, 988, 993, 71, 71, 71, 995, 994, 71, + 996, 71, 991, 71, 997, 71, 1003, 992, 998, 71, + 71, 1005, 71, 71, 71, 999, 1006, 71, 1001, 2598, + 71, 1000, 71, 71, 1002, 1008, 71, 1009, 71, 71, + 1004, 1011, 71, 1012, 71, 1007, 71, 1017, 1014, 1010, + 71, 1013, 1016, 71, 1018, 71, 71, 71, 71, 1019, + 1015, 1021, 71, 71, 71, 1026, 1027, 71, 71, 71, + 1031, 71, 71, 1028, 1020, 1022, 71, 1025, 1033, 71, - 71, 71, 1031, 71, 1035, 1029, 1036, 71, 71, 71, - 71, 1032, 71, 1038, 71, 1034, 1039, 71, 71, 1033, - 1043, 71, 1037, 71, 71, 71, 1042, 71, 1040, 71, - 1049, 71, 1041, 71, 1045, 71, 71, 71, 71, 1044, - 71, 1053, 1046, 1083, 71, 1055, 71, 1050, 1048, 1052, - 1051, 1057, 1047, 1054, 1058, 71, 71, 71, 1056, 71, - 71, 1059, 71, 71, 1060, 71, 71, 71, 1061, 1062, - 1064, 71, 71, 1063, 1070, 71, 71, 71, 71, 71, - 71, 1065, 71, 1079, 1073, 1080, 1066, 1068, 71, 71, - 1069, 1071, 71, 1075, 1072, 71, 1081, 71, 71, 1074, + 71, 1023, 71, 1024, 1029, 1030, 1032, 71, 71, 71, + 71, 1035, 71, 1036, 1039, 1040, 71, 1042, 1034, 71, + 71, 71, 1038, 1043, 71, 71, 1047, 1037, 71, 71, + 71, 1041, 71, 71, 71, 71, 1053, 71, 1044, 1045, + 1046, 1049, 71, 71, 71, 71, 71, 1048, 71, 1057, + 1059, 71, 1050, 2598, 1052, 1058, 1054, 1056, 1055, 1051, + 1061, 1062, 71, 71, 71, 1064, 71, 71, 1060, 1063, + 71, 71, 71, 71, 71, 1065, 1066, 1068, 71, 71, + 71, 1074, 71, 71, 71, 1067, 1071, 71, 1069, 71, + 71, 71, 1083, 1070, 1079, 1072, 1077, 1073, 1075, 71, - 71, 71, 1076, 1086, 1077, 71, 1082, 1078, 71, 1085, - 1088, 1090, 71, 1084, 71, 71, 1087, 71, 71, 1091, - 1089, 71, 1093, 71, 1095, 1094, 71, 71, 1092, 71, - 71, 71, 71, 1096, 1100, 71, 71, 71, 1098, 71, - 71, 1105, 1097, 1101, 1099, 1110, 71, 71, 71, 1102, - 71, 71, 1106, 1103, 1104, 1109, 1112, 71, 71, 1107, - 1108, 1111, 1114, 71, 71, 71, 1116, 71, 71, 1121, - 1113, 1117, 71, 71, 71, 1115, 1154, 1118, 1119, 1130, - 1120, 71, 1129, 71, 1131, 71, 1122, 1128, 71, 1123, - 1124, 71, 71, 1132, 1125, 71, 1134, 71, 71, 1136, + 71, 1076, 71, 1080, 1084, 1081, 71, 1078, 1082, 1085, + 71, 71, 71, 1087, 1086, 71, 71, 1090, 71, 71, + 1089, 1092, 1094, 71, 1088, 71, 71, 71, 71, 71, + 1095, 1097, 1098, 71, 1091, 71, 1099, 1093, 71, 1096, + 71, 71, 71, 71, 1100, 71, 71, 1102, 1104, 71, + 71, 71, 1101, 1103, 1105, 1109, 71, 71, 71, 1106, + 1114, 1110, 71, 1108, 1107, 1113, 71, 71, 71, 71, + 1111, 1112, 1115, 1118, 1119, 1116, 1120, 1117, 71, 2598, + 71, 1121, 71, 71, 1125, 71, 71, 71, 1122, 2598, + 1134, 1150, 1123, 1124, 71, 1133, 71, 71, 1132, 1126, - 1126, 1133, 1135, 71, 1127, 71, 1137, 71, 71, 71, - 1143, 1144, 1140, 71, 1139, 1138, 71, 71, 1145, 71, - 71, 71, 1141, 1146, 71, 1152, 1153, 1142, 71, 1147, - 71, 71, 71, 71, 1148, 1155, 1149, 1159, 1150, 1157, - 1151, 1158, 1160, 71, 71, 1156, 71, 71, 71, 1162, - 71, 71, 71, 71, 71, 1161, 1164, 1168, 1166, 71, - 1163, 71, 1170, 71, 71, 1167, 71, 1165, 1169, 1173, - 1174, 71, 1176, 71, 71, 71, 1177, 1171, 1175, 71, - 1179, 71, 1178, 1181, 71, 1180, 1172, 1183, 71, 71, - 71, 71, 1187, 71, 1184, 71, 71, 71, 1190, 71, + 71, 1135, 1127, 1128, 71, 71, 1137, 1129, 71, 1136, + 1138, 71, 71, 1130, 71, 1140, 1139, 1131, 71, 71, + 71, 1141, 71, 71, 1144, 1147, 1145, 1148, 1142, 1143, + 71, 71, 1151, 71, 1157, 1149, 71, 1152, 71, 1153, + 1146, 1154, 71, 1155, 71, 1156, 1159, 71, 71, 1158, + 71, 1163, 71, 71, 71, 71, 1164, 71, 1166, 1162, + 71, 71, 1160, 71, 1168, 71, 1161, 71, 1167, 71, + 1173, 1171, 71, 71, 1165, 71, 1179, 71, 71, 1169, + 1170, 1172, 1175, 1174, 71, 1181, 71, 71, 71, 1178, + 1176, 1183, 71, 1180, 1182, 71, 71, 1186, 71, 71, - 71, 1182, 1189, 1191, 1192, 71, 71, 1196, 71, 71, - 141, 1185, 1186, 1193, 1194, 1188, 71, 71, 71, 71, - 71, 1195, 1201, 1198, 1202, 1199, 1197, 1204, 71, 71, - 71, 71, 1200, 71, 1203, 71, 1208, 71, 71, 1206, - 1205, 71, 71, 1212, 1213, 71, 1207, 1215, 71, 71, - 71, 1214, 71, 71, 71, 71, 71, 71, 1209, 71, - 1222, 1210, 1216, 71, 71, 1211, 1219, 71, 1217, 1220, - 71, 71, 1218, 71, 1221, 1226, 1229, 1223, 1227, 71, - 1231, 71, 1225, 71, 71, 1232, 71, 71, 1224, 1234, - 1228, 71, 1230, 1233, 71, 71, 1241, 1235, 71, 1243, + 1177, 1184, 1188, 71, 1189, 71, 1185, 71, 1192, 71, + 71, 71, 71, 71, 1195, 1187, 1194, 71, 1197, 71, + 1196, 71, 1201, 71, 71, 2598, 1190, 1198, 1191, 1199, + 1193, 71, 71, 71, 71, 71, 1200, 1206, 1203, 1207, + 1204, 1202, 1209, 71, 71, 71, 71, 1205, 71, 1208, + 71, 1213, 71, 71, 1211, 1210, 71, 71, 1217, 1218, + 71, 1212, 1220, 71, 71, 71, 1219, 71, 71, 71, + 71, 71, 71, 1214, 71, 1227, 1215, 1221, 71, 71, + 1216, 1224, 71, 1222, 1225, 71, 71, 1223, 71, 1226, + 1231, 1234, 1228, 1232, 71, 1236, 71, 1230, 71, 71, - 1239, 71, 1236, 1240, 71, 71, 1237, 71, 1244, 1238, - 71, 71, 1242, 71, 71, 71, 71, 71, 1245, 1249, - 1246, 71, 71, 1254, 71, 71, 71, 71, 1255, 1248, - 1252, 1250, 71, 71, 71, 1251, 1247, 71, 71, 1253, - 71, 71, 1352, 1256, 1258, 1257, 1259, 1260, 71, 1261, - 71, 71, 1262, 1264, 71, 1266, 71, 1263, 1265, 1267, - 71, 1269, 71, 1268, 71, 71, 1274, 1275, 1271, 71, - 1273, 1270, 71, 71, 71, 1276, 71, 1277, 1278, 71, - 71, 71, 71, 71, 1279, 1272, 71, 1281, 71, 1285, - 1280, 71, 71, 1284, 71, 71, 1282, 71, 1283, 1288, + 1237, 71, 71, 1229, 1239, 1233, 71, 1235, 1238, 71, + 71, 1246, 1240, 71, 1248, 1244, 71, 1241, 1245, 71, + 71, 1242, 71, 1249, 1243, 71, 71, 1247, 71, 71, + 71, 71, 71, 1250, 1254, 1251, 71, 71, 1259, 71, + 71, 71, 71, 1260, 1253, 1257, 1255, 71, 71, 71, + 1256, 1252, 71, 71, 1258, 2598, 71, 1358, 1261, 1263, + 1262, 1264, 1265, 71, 1266, 71, 71, 1267, 1269, 71, + 1271, 71, 1268, 1270, 1272, 71, 1274, 71, 1273, 71, + 71, 1279, 1280, 1276, 71, 1278, 1275, 71, 71, 71, + 1281, 71, 1282, 1283, 71, 71, 71, 71, 71, 1284, - 1287, 1291, 71, 2585, 71, 71, 1292, 71, 1293, 1289, - 71, 1286, 71, 1294, 71, 1300, 1290, 71, 71, 71, - 1304, 71, 1295, 1296, 1297, 1303, 71, 71, 71, 1298, - 71, 71, 1299, 71, 71, 2585, 71, 1302, 71, 1312, - 71, 71, 71, 1301, 1313, 1346, 1305, 1306, 1309, 1307, - 1308, 1311, 1314, 71, 1310, 1315, 71, 71, 1316, 71, - 71, 1317, 71, 71, 71, 71, 1321, 71, 1324, 1319, - 1322, 71, 1318, 71, 71, 1320, 1328, 71, 71, 1329, - 1325, 71, 1330, 1323, 71, 1331, 71, 1326, 1335, 1327, - 71, 1332, 1336, 71, 71, 71, 71, 71, 1340, 1341, + 1277, 71, 1286, 71, 1290, 1285, 71, 71, 1289, 71, + 71, 1287, 71, 1288, 1293, 1292, 1296, 71, 2598, 71, + 71, 1297, 71, 1298, 1294, 71, 1291, 71, 1299, 71, + 1305, 1295, 71, 71, 71, 1309, 71, 1300, 1301, 1302, + 1308, 71, 71, 71, 1303, 71, 71, 1304, 71, 71, + 2598, 71, 1307, 71, 1317, 71, 71, 71, 1306, 1318, + 1352, 1310, 1311, 1314, 1312, 1313, 1316, 1319, 71, 1315, + 1320, 71, 71, 1321, 71, 71, 1322, 71, 71, 71, + 71, 1326, 71, 1329, 1324, 1327, 71, 1323, 71, 71, + 1325, 1333, 71, 71, 1334, 1330, 71, 1336, 1328, 71, - 71, 1339, 1333, 1342, 71, 71, 1334, 71, 1337, 1343, - 71, 71, 71, 1347, 71, 71, 1338, 71, 1350, 1349, - 71, 1348, 71, 1344, 71, 1353, 71, 1345, 1357, 71, - 1351, 1355, 71, 71, 1354, 71, 1358, 1356, 71, 1360, - 71, 71, 71, 71, 71, 1363, 1366, 71, 1365, 71, - 71, 1362, 71, 1359, 71, 71, 1373, 1361, 71, 71, - 71, 1364, 1367, 1368, 1374, 71, 1371, 71, 71, 1369, - 1370, 71, 1378, 1380, 1377, 71, 71, 1382, 1375, 1372, - 1376, 1381, 71, 71, 1384, 1386, 71, 71, 1379, 71, - 71, 71, 71, 1390, 71, 1383, 1385, 1388, 71, 1391, + 71, 1335, 1331, 1337, 1332, 71, 1338, 1341, 1342, 71, + 71, 71, 71, 71, 71, 1346, 1347, 1345, 1339, 1348, + 71, 71, 71, 1349, 71, 1340, 71, 71, 1343, 71, + 1353, 71, 1344, 71, 1356, 71, 1355, 1350, 71, 1359, + 71, 71, 1351, 71, 1363, 71, 1361, 71, 1354, 71, + 1357, 1364, 71, 1366, 1360, 71, 71, 71, 1362, 71, + 71, 1369, 1372, 71, 71, 1371, 71, 1368, 71, 1365, + 71, 71, 71, 1379, 71, 71, 71, 1367, 1370, 1380, + 1374, 71, 1373, 71, 1377, 1383, 71, 1375, 1376, 71, + 71, 1384, 1386, 1388, 1387, 1381, 1378, 71, 1390, 71, - 71, 71, 71, 71, 1396, 1395, 1387, 71, 1392, 71, - 71, 71, 1409, 1389, 71, 1402, 1394, 1399, 1393, 1397, - 1400, 71, 71, 71, 71, 71, 1410, 1403, 1405, 1398, - 1408, 71, 1401, 1404, 1407, 1406, 71, 71, 71, 71, - 71, 71, 1411, 1416, 1417, 71, 71, 71, 1419, 71, - 71, 1412, 1418, 71, 71, 1422, 71, 1413, 1421, 1414, - 71, 1415, 71, 71, 1424, 1423, 71, 71, 1420, 1431, - 71, 71, 71, 71, 71, 71, 71, 1436, 71, 71, - 1427, 1428, 1425, 1426, 1429, 71, 1430, 71, 1434, 71, - 1432, 1433, 1438, 71, 1439, 71, 71, 1435, 71, 1437, + 71, 1382, 71, 1385, 71, 1392, 71, 71, 71, 71, + 1396, 71, 1397, 1394, 1391, 71, 71, 1389, 71, 71, + 71, 1393, 1401, 71, 1402, 71, 71, 71, 2598, 1398, + 1408, 1409, 1395, 1400, 1399, 71, 71, 1403, 1405, 71, + 1404, 1406, 71, 71, 1414, 71, 1413, 1411, 1410, 71, + 71, 71, 1412, 1407, 71, 1415, 71, 1416, 71, 71, + 1422, 1423, 1418, 1417, 1420, 71, 71, 71, 1425, 1419, + 1424, 71, 71, 71, 71, 1428, 71, 1427, 1429, 1421, + 71, 71, 71, 71, 71, 71, 1437, 71, 71, 71, + 71, 71, 71, 71, 1426, 71, 1435, 1433, 1430, 1434, - 1440, 71, 71, 1441, 71, 71, 71, 1444, 71, 1446, - 1453, 71, 1454, 71, 1443, 1447, 1445, 71, 1448, 1442, - 1449, 71, 71, 1450, 1455, 1456, 71, 1458, 1451, 71, - 1452, 71, 71, 71, 71, 1465, 1457, 1466, 71, 71, - 1460, 71, 1464, 1462, 71, 1459, 1463, 71, 71, 71, - 71, 1461, 71, 71, 71, 1475, 71, 1468, 71, 1467, - 71, 1472, 1470, 71, 71, 1469, 1471, 1477, 1478, 71, - 1479, 1474, 1476, 1481, 71, 71, 1482, 1473, 1483, 71, - 1486, 1488, 1490, 71, 1480, 1487, 71, 71, 1491, 71, - 71, 71, 1493, 1485, 71, 1484, 1492, 1489, 71, 71, + 1436, 1431, 1432, 71, 1440, 1442, 71, 71, 1438, 1439, + 71, 71, 1441, 1443, 71, 1444, 71, 1445, 1446, 1448, + 71, 1447, 71, 1450, 71, 71, 71, 71, 71, 1449, + 2598, 1452, 1459, 71, 1453, 1451, 71, 1454, 1455, 1460, + 71, 1456, 71, 1462, 71, 1461, 1457, 1463, 71, 71, + 71, 71, 1458, 1464, 71, 1467, 1471, 71, 71, 1466, + 1468, 71, 71, 1469, 71, 1465, 1470, 1472, 71, 71, + 71, 1474, 71, 71, 1473, 71, 1481, 71, 1476, 1475, + 71, 71, 1478, 71, 1485, 1477, 1484, 71, 71, 1483, + 71, 1480, 71, 1482, 71, 1492, 1487, 1479, 1486, 1488, - 1497, 71, 71, 71, 1496, 1494, 71, 71, 71, 1495, - 1499, 71, 71, 71, 1498, 71, 1500, 1506, 71, 1503, - 71, 1501, 1502, 71, 1511, 1504, 1508, 1505, 1507, 71, - 71, 71, 71, 1510, 1514, 71, 71, 1509, 71, 71, - 1516, 71, 71, 1517, 1518, 1512, 1519, 71, 71, 1513, - 71, 1520, 1515, 1523, 71, 71, 71, 1527, 71, 71, - 71, 71, 71, 1522, 71, 71, 71, 1525, 1529, 1524, - 1521, 1534, 1530, 1528, 1531, 1526, 71, 71, 1535, 2585, - 71, 1538, 71, 1532, 71, 1533, 1537, 1539, 1540, 71, - 71, 71, 1543, 71, 1536, 1541, 71, 71, 71, 1545, + 1493, 71, 71, 1495, 1497, 71, 1489, 1498, 1494, 71, + 1491, 1490, 71, 71, 71, 1500, 71, 1499, 71, 1504, + 1496, 71, 1501, 71, 71, 71, 71, 1506, 71, 71, + 71, 71, 1503, 1507, 1502, 71, 1505, 1510, 1513, 71, + 71, 71, 1518, 1511, 71, 1508, 71, 1509, 71, 1512, + 1516, 71, 1514, 71, 1517, 1521, 71, 71, 1515, 71, + 71, 1523, 1519, 71, 1524, 1525, 71, 71, 1526, 1520, + 71, 1530, 71, 1522, 71, 1527, 71, 71, 1534, 71, + 71, 71, 71, 71, 71, 1529, 71, 71, 1532, 1536, + 1528, 1541, 71, 1531, 1535, 1537, 1533, 71, 1538, 1542, - 1542, 1546, 71, 71, 71, 71, 71, 71, 1544, 1551, - 71, 71, 71, 71, 71, 1555, 1552, 71, 1560, 71, - 1556, 71, 1547, 1549, 1550, 1548, 1553, 1554, 1559, 1561, - 71, 71, 71, 1557, 1565, 71, 71, 1558, 71, 1566, - 1567, 71, 1562, 1568, 71, 1570, 71, 71, 71, 1563, - 71, 1564, 1573, 71, 1574, 1575, 1569, 71, 1577, 71, - 1576, 71, 71, 71, 71, 1579, 1581, 71, 1571, 1572, - 1584, 71, 1582, 71, 71, 1583, 71, 1578, 71, 1585, - 1586, 1587, 71, 1591, 71, 1593, 1588, 1580, 71, 71, - 1594, 71, 71, 71, 71, 1596, 71, 1599, 1589, 1597, + 1539, 71, 1545, 71, 1540, 71, 71, 1544, 1546, 71, + 1543, 1547, 71, 71, 1548, 1549, 1550, 71, 71, 71, + 1552, 71, 1553, 71, 71, 1551, 71, 71, 71, 71, + 71, 71, 1558, 71, 1562, 71, 71, 1559, 71, 1563, + 71, 1554, 1556, 1560, 1557, 1555, 1567, 71, 1561, 71, + 1568, 1566, 1564, 71, 1573, 1565, 71, 1574, 71, 1569, + 1571, 71, 71, 1572, 1575, 71, 1577, 71, 1570, 71, + 71, 1580, 71, 71, 1582, 71, 71, 1581, 1583, 1584, + 71, 1586, 1576, 71, 71, 71, 71, 71, 71, 1588, + 1578, 1579, 1589, 71, 1585, 71, 1590, 1591, 71, 1598, - 71, 71, 1590, 71, 1592, 1600, 1595, 1603, 71, 1598, - 71, 71, 1605, 71, 71, 71, 71, 1608, 1609, 71, - 1601, 71, 1602, 1610, 1612, 71, 71, 71, 71, 71, - 71, 1617, 71, 1606, 1614, 71, 1604, 1607, 1615, 71, - 1621, 1613, 1611, 71, 1620, 71, 71, 1624, 71, 1625, - 71, 1619, 1623, 71, 1616, 71, 1626, 71, 1618, 71, - 71, 71, 1631, 1622, 1627, 71, 71, 71, 1629, 1628, - 1632, 71, 1635, 1636, 71, 71, 71, 71, 71, 71, - 1630, 1639, 71, 1633, 71, 71, 71, 71, 1644, 71, - 1638, 1645, 1634, 1642, 1637, 1641, 1646, 1640, 1647, 71, + 1592, 1593, 1594, 71, 1596, 71, 71, 1595, 1587, 1600, + 71, 71, 71, 1603, 1601, 71, 71, 71, 1597, 1606, + 71, 71, 71, 1604, 1602, 71, 1599, 1610, 71, 1607, + 71, 1605, 71, 1612, 71, 71, 1615, 1608, 1616, 71, + 71, 71, 1609, 1619, 71, 71, 71, 71, 1611, 1617, + 1613, 71, 71, 1621, 71, 1624, 1614, 1628, 71, 71, + 1620, 1622, 1618, 71, 1627, 71, 1631, 71, 71, 71, + 1632, 71, 71, 1623, 1626, 1630, 71, 1625, 1633, 71, + 1635, 71, 71, 71, 71, 1629, 1634, 1636, 1637, 71, + 71, 1642, 1639, 1643, 1638, 71, 71, 71, 71, 71, - 71, 1643, 71, 1653, 1648, 1651, 71, 1652, 71, 71, - 1656, 1657, 71, 1649, 71, 71, 71, 1662, 1650, 1658, - 1661, 71, 1663, 71, 71, 1659, 1664, 1665, 1654, 1655, - 1660, 71, 71, 71, 1668, 71, 71, 71, 71, 1673, - 71, 1670, 71, 1667, 71, 71, 1675, 1669, 1671, 71, - 1666, 71, 71, 71, 71, 71, 1676, 1680, 1679, 71, - 1681, 1677, 2585, 1672, 1674, 1682, 71, 1683, 71, 71, - 1678, 1685, 71, 71, 1687, 1684, 71, 71, 1686, 1688, - 71, 71, 71, 1691, 71, 1689, 1690, 71, 71, 1696, - 71, 71, 71, 1695, 1692, 71, 1693, 1698, 71, 1694, + 71, 1640, 1646, 71, 71, 71, 71, 71, 1652, 71, + 1641, 1645, 1653, 1655, 71, 1644, 1654, 1648, 1647, 1649, + 1650, 71, 1651, 71, 71, 1656, 1659, 71, 71, 71, + 1660, 1664, 1665, 71, 1657, 71, 71, 71, 1661, 1658, + 1666, 1669, 71, 71, 1672, 71, 1667, 1670, 1662, 1663, + 71, 1668, 1671, 71, 1673, 1676, 71, 1675, 71, 71, + 71, 71, 1678, 71, 1681, 71, 1683, 71, 1677, 1674, + 71, 1679, 71, 71, 71, 71, 71, 1689, 71, 1684, + 1687, 1688, 1690, 71, 71, 1685, 1693, 1682, 1680, 1691, + 71, 71, 71, 1686, 71, 71, 71, 1694, 71, 1695, - 1697, 1700, 71, 1699, 71, 71, 71, 71, 71, 71, - 1707, 1705, 71, 1702, 1706, 1701, 71, 71, 1709, 71, - 71, 71, 1708, 1703, 71, 1704, 1716, 71, 1712, 1710, - 1711, 71, 1714, 1713, 1715, 71, 71, 71, 1721, 71, - 71, 1723, 71, 71, 71, 1724, 71, 1717, 1725, 71, - 1720, 1718, 1719, 71, 1726, 71, 1722, 71, 1729, 71, - 1727, 71, 1728, 71, 1730, 71, 71, 71, 71, 71, - 71, 71, 2585, 1732, 1737, 1733, 71, 1734, 1741, 71, - 1731, 71, 1736, 1740, 1744, 71, 71, 1738, 1742, 1739, - 1745, 71, 1735, 71, 71, 71, 1743, 1748, 1747, 1750, + 71, 1696, 71, 1698, 1692, 1697, 71, 71, 71, 1699, + 1704, 71, 1700, 1703, 1701, 71, 71, 71, 71, 1702, + 71, 1706, 1707, 71, 1705, 1708, 71, 71, 71, 1710, + 71, 1715, 1713, 71, 71, 1714, 71, 71, 1709, 71, + 1717, 1711, 71, 71, 71, 1720, 1712, 1716, 1724, 71, + 71, 1718, 1719, 1721, 1722, 71, 1723, 71, 1729, 71, + 71, 71, 1731, 71, 71, 1732, 1725, 1733, 71, 71, + 71, 1726, 1727, 1728, 71, 71, 1735, 1730, 1734, 71, + 1737, 71, 71, 71, 1738, 71, 71, 71, 71, 71, + 1749, 71, 71, 1745, 1736, 1740, 71, 1741, 1742, 71, - 71, 71, 71, 71, 1753, 71, 1746, 1751, 71, 1749, - 1752, 1755, 71, 1757, 71, 71, 1758, 1754, 71, 71, - 1759, 71, 1763, 1760, 71, 71, 71, 71, 71, 1764, - 71, 1756, 1769, 71, 1766, 71, 1770, 1761, 1765, 71, - 71, 1762, 1773, 71, 1768, 71, 1767, 71, 71, 1775, - 1774, 1776, 1778, 71, 1771, 71, 71, 1780, 71, 1777, - 1772, 71, 1781, 71, 71, 71, 1784, 1779, 1786, 71, - 71, 71, 1782, 71, 1787, 1783, 71, 71, 1790, 1785, - 71, 1791, 1788, 1789, 71, 71, 71, 71, 71, 71, - 1792, 71, 1798, 71, 1799, 71, 71, 1800, 1797, 1802, + 71, 71, 1739, 1744, 1748, 1753, 1746, 71, 1743, 1747, + 1752, 71, 71, 71, 1750, 1756, 1755, 71, 71, 1751, + 71, 1754, 1758, 71, 71, 1759, 1761, 1763, 71, 1760, + 1757, 71, 71, 71, 1766, 71, 71, 1762, 1765, 71, + 1767, 1768, 71, 1771, 71, 71, 71, 2598, 71, 71, + 1772, 71, 1774, 71, 1777, 71, 71, 1764, 1781, 1770, + 1769, 1773, 71, 1778, 71, 1775, 1779, 1776, 71, 71, + 71, 1783, 71, 1782, 1786, 71, 1780, 71, 1784, 71, + 1788, 71, 1789, 71, 1787, 71, 1785, 71, 71, 1793, + 1795, 71, 1790, 71, 1791, 71, 71, 1792, 1794, 71, - 1793, 71, 1794, 1795, 1796, 71, 1807, 71, 71, 71, - 1801, 1804, 1809, 71, 1806, 71, 71, 1808, 1803, 1811, - 71, 1812, 71, 2585, 1814, 1816, 1805, 71, 1810, 1815, - 71, 71, 1817, 1813, 71, 1819, 71, 1818, 71, 1821, - 71, 71, 1820, 71, 1822, 1825, 1826, 71, 71, 1827, - 71, 1830, 71, 1828, 71, 1832, 71, 71, 1823, 1831, - 71, 1834, 71, 71, 71, 1833, 1835, 71, 1829, 1824, - 71, 71, 1836, 71, 1837, 71, 1839, 71, 1842, 71, - 71, 1845, 71, 1846, 71, 71, 71, 1840, 1838, 71, - 1841, 1848, 71, 1852, 71, 1843, 1844, 1851, 71, 1847, + 1797, 1799, 1796, 71, 1800, 71, 71, 1798, 71, 71, + 71, 71, 71, 71, 71, 1807, 1801, 1808, 71, 1809, + 1811, 1806, 71, 71, 1803, 1802, 1804, 1805, 71, 71, + 1816, 71, 1810, 71, 1818, 71, 71, 1813, 1815, 71, + 1820, 1812, 1817, 71, 1821, 1823, 1825, 1819, 1814, 1826, + 1824, 71, 71, 71, 71, 71, 1822, 1827, 71, 1830, + 71, 1828, 71, 1831, 71, 1835, 71, 71, 1836, 71, + 1839, 71, 71, 1834, 71, 71, 71, 1832, 1829, 1840, + 1842, 1837, 1841, 71, 1843, 71, 71, 71, 1833, 1838, + 71, 1844, 1845, 71, 71, 71, 71, 1846, 71, 1848, - 71, 71, 71, 71, 71, 71, 71, 71, 1850, 1862, - 71, 1849, 71, 2585, 71, 1863, 71, 1853, 1859, 1854, - 1861, 71, 1857, 2585, 1855, 1858, 1856, 1864, 1860, 71, - 1865, 71, 1867, 71, 1866, 1868, 71, 1869, 71, 71, - 1872, 71, 1875, 71, 1870, 71, 1871, 71, 71, 71, - 1873, 71, 1876, 1874, 1877, 1881, 71, 1882, 71, 71, - 1884, 71, 71, 1880, 71, 1878, 1886, 71, 1879, 1887, - 71, 71, 71, 1891, 71, 71, 71, 1890, 1883, 71, - 1885, 1893, 71, 1889, 71, 1888, 71, 71, 1897, 1896, - 1895, 1899, 71, 71, 1892, 1900, 71, 1894, 1903, 71, + 1851, 71, 1854, 71, 71, 71, 71, 71, 1855, 1849, + 1847, 1850, 1857, 71, 71, 71, 1852, 1853, 1860, 71, + 1856, 1861, 71, 71, 71, 71, 71, 71, 71, 71, + 71, 2598, 1858, 1859, 1862, 1871, 71, 71, 1863, 1868, + 1872, 71, 1873, 71, 1866, 1870, 1864, 1867, 1865, 1869, + 71, 1876, 1877, 71, 71, 1874, 1875, 1878, 71, 71, + 71, 1881, 71, 1884, 71, 71, 71, 71, 71, 1879, + 1885, 1882, 1880, 1886, 1883, 71, 71, 1890, 71, 1891, + 71, 1893, 71, 71, 1895, 71, 1887, 1888, 1889, 1896, + 71, 71, 71, 71, 1892, 1900, 71, 71, 1899, 1902, - 71, 71, 71, 1898, 71, 71, 1908, 71, 1901, 1907, - 71, 71, 1912, 71, 71, 1902, 71, 1906, 71, 1916, - 1904, 71, 71, 1909, 1905, 1910, 1911, 71, 1914, 1918, - 71, 1917, 71, 71, 1913, 1920, 71, 71, 1921, 71, - 71, 71, 1915, 71, 1919, 1925, 1926, 71, 1927, 71, - 1923, 71, 71, 71, 1929, 71, 71, 71, 71, 71, - 1924, 1922, 1928, 1937, 1932, 1931, 1933, 1934, 1935, 71, - 1936, 71, 71, 1939, 1942, 1938, 1930, 71, 1941, 71, - 71, 1940, 71, 1943, 71, 71, 71, 1949, 71, 71, - 71, 1944, 71, 71, 1951, 71, 71, 71, 1956, 1945, + 71, 1894, 71, 71, 71, 1897, 71, 1905, 71, 1904, + 71, 1898, 71, 1906, 1908, 71, 1901, 1912, 71, 71, + 1903, 71, 71, 1910, 71, 1909, 71, 71, 1907, 1911, + 1916, 1917, 71, 71, 1921, 71, 71, 1915, 71, 1913, + 71, 71, 1919, 1918, 1914, 1923, 71, 1926, 1920, 71, + 71, 71, 1928, 71, 1924, 71, 1922, 71, 1927, 71, + 1930, 71, 1931, 1929, 71, 71, 71, 1925, 71, 1935, + 1936, 1937, 1933, 71, 71, 71, 71, 71, 1932, 1939, + 71, 71, 1934, 1938, 71, 1942, 1943, 71, 1941, 1944, + 1945, 1947, 71, 71, 71, 1951, 1948, 71, 1940, 1952, - 1947, 1946, 1948, 71, 1950, 1952, 1953, 1954, 1955, 71, - 1960, 71, 1961, 71, 1957, 1959, 71, 1958, 71, 1962, - 1964, 1965, 71, 1963, 1966, 71, 71, 71, 71, 1968, - 71, 71, 71, 71, 1972, 71, 1967, 71, 71, 1973, - 1974, 71, 1969, 1975, 71, 1970, 1976, 71, 71, 71, - 71, 1971, 1978, 71, 71, 71, 1985, 1982, 1977, 71, - 1984, 71, 71, 71, 1981, 1986, 71, 1979, 1989, 1980, - 1990, 71, 71, 1992, 1983, 71, 71, 71, 1994, 1987, - 1991, 71, 1988, 71, 1995, 71, 1997, 71, 1999, 1993, - 71, 1998, 2001, 71, 71, 71, 2003, 71, 71, 71, + 71, 1946, 1950, 71, 1949, 71, 71, 1953, 71, 1959, + 71, 71, 71, 71, 71, 1954, 71, 71, 71, 1957, + 1955, 1961, 1956, 1967, 1958, 1962, 1960, 71, 71, 1965, + 1963, 1964, 71, 1970, 71, 1966, 1971, 71, 71, 71, + 1969, 1972, 1974, 1975, 1973, 1976, 71, 1968, 71, 71, + 71, 71, 1978, 71, 71, 71, 71, 1982, 71, 71, + 71, 71, 1983, 1984, 1977, 1979, 1985, 71, 1980, 71, + 71, 71, 71, 1988, 1981, 1986, 71, 71, 71, 1987, + 1992, 1989, 1995, 1994, 71, 71, 1991, 71, 71, 71, + 1996, 1990, 1999, 2000, 71, 71, 71, 1993, 2002, 71, - 71, 71, 2000, 71, 2002, 2005, 2006, 2007, 71, 1996, - 2008, 71, 2009, 71, 2010, 2011, 2004, 71, 71, 71, - 71, 71, 2013, 2016, 71, 2012, 71, 2018, 71, 71, - 2017, 71, 2015, 71, 2021, 71, 71, 2024, 2014, 2025, - 71, 71, 71, 2020, 2019, 71, 2026, 2027, 2022, 2023, - 71, 71, 71, 2031, 71, 71, 2028, 2030, 2032, 71, - 2033, 71, 2034, 71, 2029, 71, 2037, 2035, 71, 2036, - 71, 2038, 2040, 71, 2041, 71, 2042, 71, 71, 71, - 2039, 71, 71, 71, 71, 71, 2044, 71, 2047, 71, - 2043, 2049, 71, 2045, 2050, 71, 71, 71, 71, 2056, + 71, 2004, 2001, 1997, 71, 1998, 71, 2005, 71, 2003, + 71, 2007, 2008, 2009, 71, 2011, 71, 71, 71, 71, + 2013, 71, 71, 71, 71, 71, 2010, 2012, 2015, 2016, + 2017, 71, 2006, 2018, 71, 2014, 2019, 71, 2020, 71, + 71, 2021, 71, 71, 2022, 2023, 2026, 71, 71, 71, + 2028, 71, 2031, 71, 71, 2025, 71, 2027, 2024, 71, + 71, 2034, 2035, 71, 71, 71, 2030, 2029, 71, 2036, + 2037, 71, 71, 2032, 2038, 71, 71, 2033, 2042, 71, + 2041, 71, 2039, 2043, 71, 2040, 2044, 71, 2045, 71, + 71, 2048, 71, 2046, 2047, 71, 2049, 2051, 71, 2052, - 71, 71, 2046, 71, 2048, 71, 71, 71, 2053, 2052, - 2057, 2055, 71, 2051, 71, 2058, 71, 2063, 2059, 71, - 2054, 2065, 71, 2060, 2066, 71, 2064, 71, 2061, 71, - 2062, 2067, 71, 2068, 71, 71, 2069, 71, 2070, 71, - 2071, 71, 71, 71, 2073, 71, 71, 2074, 71, 2081, - 2072, 2076, 2078, 2082, 71, 2084, 71, 71, 71, 2075, - 71, 71, 2077, 71, 2080, 2079, 2083, 71, 2087, 71, - 71, 71, 2093, 71, 2094, 71, 2085, 2095, 2086, 71, - 71, 2089, 2088, 71, 71, 71, 2091, 2090, 71, 71, - 2092, 71, 71, 2099, 2103, 2097, 2102, 2096, 2104, 71, + 71, 2053, 71, 71, 2050, 71, 71, 71, 71, 71, + 2060, 71, 2055, 2058, 71, 2054, 71, 71, 2056, 71, + 71, 71, 71, 2061, 71, 2067, 71, 2057, 71, 2059, + 71, 2068, 2064, 71, 71, 2066, 71, 2063, 71, 2074, + 71, 2069, 2062, 2070, 2065, 2076, 71, 71, 2071, 2078, + 71, 2077, 2075, 2079, 71, 2072, 71, 2073, 71, 2080, + 71, 2081, 71, 71, 71, 2082, 71, 2083, 71, 71, + 71, 71, 2092, 71, 2093, 71, 71, 2089, 2095, 71, + 71, 2084, 2086, 2085, 71, 2094, 71, 71, 2087, 2088, + 2090, 2091, 71, 2098, 71, 71, 71, 71, 2096, 2104, - 71, 71, 2105, 2098, 71, 2100, 2106, 71, 71, 2101, - 71, 71, 71, 2108, 71, 2112, 2113, 71, 71, 71, - 2107, 2116, 71, 2117, 71, 71, 71, 71, 2109, 2110, - 2119, 2111, 2115, 2114, 2120, 71, 71, 71, 2121, 2118, - 2124, 71, 2125, 71, 71, 2127, 71, 2122, 71, 2129, - 71, 71, 2130, 2128, 71, 71, 2123, 71, 71, 2131, - 71, 71, 71, 2126, 71, 2135, 2134, 2132, 2133, 2137, - 2138, 71, 2136, 71, 71, 71, 71, 71, 71, 2140, - 2139, 2142, 2143, 2145, 71, 2146, 71, 71, 2141, 2144, - 71, 2151, 71, 2149, 2147, 2148, 2150, 71, 71, 71, + 71, 71, 2097, 2105, 71, 2100, 71, 2099, 2106, 71, + 71, 2102, 2101, 71, 71, 2103, 2109, 71, 2110, 2107, + 71, 2108, 2113, 71, 71, 2114, 2115, 71, 71, 2111, + 2112, 71, 71, 2116, 2117, 71, 71, 2119, 71, 2118, + 71, 2123, 2124, 71, 2120, 71, 2127, 71, 71, 71, + 71, 2121, 2128, 71, 2130, 2125, 2122, 2131, 71, 71, + 71, 2135, 71, 2126, 2129, 71, 2132, 2137, 71, 71, + 2139, 71, 71, 71, 2141, 71, 71, 2136, 2140, 2133, + 2134, 71, 2142, 71, 71, 71, 71, 71, 2138, 2144, + 2147, 71, 2149, 2146, 2143, 71, 2145, 71, 71, 2150, - 2153, 71, 71, 2152, 2156, 71, 2155, 2154, 2157, 71, - 71, 2160, 2585, 2159, 71, 2158, 2161, 71, 71, 2162, - 2164, 71, 71, 2163, 71, 2165, 71, 2166, 71, 71, - 71, 71, 71, 2167, 2172, 2170, 71, 2169, 71, 71, - 71, 2173, 71, 2168, 2171, 2174, 71, 71, 2179, 71, - 71, 2177, 2176, 71, 71, 2178, 2175, 71, 2180, 2184, - 71, 71, 71, 2186, 2188, 71, 71, 71, 71, 2181, - 71, 71, 2193, 2182, 2192, 71, 2183, 2187, 71, 2195, - 2185, 71, 2190, 2194, 71, 2189, 2196, 71, 2191, 71, - 71, 71, 71, 71, 2199, 2206, 2197, 71, 2202, 2203, + 2148, 71, 71, 71, 71, 2152, 2154, 2155, 2157, 71, + 2158, 71, 71, 2153, 2151, 71, 71, 2163, 2156, 2159, + 2160, 71, 2161, 71, 71, 2165, 2164, 71, 71, 2168, + 71, 2169, 71, 2167, 2162, 71, 71, 71, 2172, 2171, + 71, 71, 2166, 2173, 71, 2174, 2175, 2176, 2170, 71, + 71, 71, 2180, 71, 2177, 71, 2178, 71, 2179, 71, + 71, 71, 2182, 2181, 2184, 2185, 71, 71, 71, 71, + 71, 2183, 2186, 71, 2191, 71, 71, 71, 2189, 2190, + 71, 2188, 2196, 71, 2187, 2192, 71, 71, 71, 2200, + 71, 71, 71, 71, 2193, 2205, 2198, 2194, 71, 2195, - 71, 71, 2198, 2204, 71, 2200, 2232, 2201, 2205, 71, - 71, 2208, 71, 2207, 2209, 71, 2210, 71, 71, 2212, - 71, 2211, 71, 2213, 2214, 71, 71, 2215, 2216, 71, - 2219, 71, 2220, 71, 71, 2222, 71, 71, 2221, 71, - 2223, 71, 71, 71, 2217, 2218, 2228, 71, 71, 2227, - 71, 2234, 71, 71, 2230, 2231, 71, 71, 71, 2225, - 2224, 2233, 2226, 71, 71, 71, 2236, 71, 2585, 2239, - 71, 71, 2229, 2243, 71, 2237, 2238, 71, 71, 71, - 2247, 71, 2235, 2240, 2242, 2245, 71, 2241, 71, 2248, - 2244, 71, 2249, 71, 2250, 71, 71, 2246, 71, 71, + 2598, 71, 2204, 2199, 71, 2197, 71, 2202, 2206, 71, + 2201, 2208, 2207, 2203, 71, 71, 71, 71, 71, 71, + 2211, 71, 2214, 2209, 2215, 71, 2216, 71, 2210, 2217, + 71, 2212, 71, 2213, 2218, 71, 71, 2221, 71, 2219, + 2222, 71, 2223, 71, 71, 2225, 71, 2224, 71, 2226, + 2227, 71, 2220, 2228, 2229, 71, 71, 71, 2232, 2233, + 71, 71, 2235, 71, 71, 2234, 71, 2236, 71, 71, + 71, 2231, 2240, 2241, 2230, 71, 71, 2244, 71, 71, + 2243, 71, 71, 71, 2247, 71, 2237, 2245, 71, 2238, + 2239, 2246, 71, 71, 71, 2249, 71, 71, 2252, 71, - 2252, 2253, 2251, 71, 2258, 71, 71, 2255, 71, 2259, - 2261, 71, 71, 71, 2263, 71, 71, 2264, 71, 2256, - 2262, 71, 2254, 2257, 71, 2265, 2260, 2267, 71, 71, - 2269, 71, 2271, 2268, 71, 71, 2266, 2272, 71, 2270, - 2275, 71, 71, 2274, 2273, 71, 71, 2277, 71, 71, - 71, 2276, 71, 2282, 2281, 71, 2287, 71, 2279, 2283, - 2284, 71, 2285, 2288, 71, 2286, 2289, 71, 71, 2280, - 2278, 71, 2294, 71, 71, 71, 71, 2290, 71, 2293, - 2295, 2296, 2297, 71, 71, 71, 71, 71, 71, 2302, - 71, 2291, 2292, 2300, 71, 71, 2304, 71, 71, 2307, + 2242, 2256, 71, 71, 71, 2250, 2251, 71, 71, 2260, + 2248, 2255, 2253, 71, 2261, 2258, 2254, 71, 2257, 71, + 2262, 71, 2259, 71, 2263, 71, 2265, 71, 71, 71, + 2267, 2271, 71, 2264, 71, 71, 2268, 2272, 2274, 71, + 71, 2276, 71, 71, 71, 2266, 71, 2275, 2269, 2270, + 71, 2277, 2278, 2273, 2280, 71, 71, 71, 2284, 2282, + 2281, 71, 2279, 2285, 71, 71, 71, 2288, 71, 71, + 71, 71, 2283, 71, 2286, 2287, 71, 2290, 2289, 71, + 2295, 2294, 71, 2292, 71, 71, 71, 2298, 71, 2297, + 2299, 2296, 2300, 71, 2293, 2291, 2301, 71, 2302, 71, - 71, 71, 2298, 71, 2301, 71, 2299, 2308, 71, 2305, - 71, 71, 2303, 2306, 2309, 2310, 71, 2311, 2314, 2312, - 71, 2315, 2317, 71, 2313, 71, 2319, 71, 2320, 71, - 71, 2322, 71, 71, 71, 2325, 71, 71, 71, 2324, - 71, 71, 2329, 71, 2318, 71, 2316, 71, 71, 2323, - 71, 2321, 2332, 71, 2333, 71, 2334, 2326, 71, 2328, - 71, 2327, 2330, 71, 2336, 2331, 2339, 71, 71, 71, - 2335, 2340, 2337, 71, 2341, 2342, 2344, 2347, 2338, 2345, - 71, 71, 71, 71, 2346, 71, 71, 71, 71, 2343, - 2352, 2349, 2350, 71, 2355, 71, 71, 2356, 71, 71, + 71, 71, 2307, 2310, 71, 2304, 2306, 2305, 71, 2303, + 71, 71, 71, 71, 71, 2308, 2309, 71, 2315, 2313, + 71, 2317, 71, 71, 71, 71, 2320, 71, 71, 71, + 2311, 71, 71, 2323, 2312, 2314, 71, 71, 71, 71, + 2319, 2321, 2318, 2328, 2322, 2316, 2324, 2327, 2325, 71, + 2330, 71, 71, 2332, 71, 2326, 2333, 71, 71, 2335, + 71, 71, 71, 2338, 71, 71, 71, 2337, 71, 71, + 2342, 2331, 71, 71, 71, 2329, 71, 2336, 71, 2334, + 2345, 71, 2346, 71, 71, 2339, 2343, 2341, 2350, 2340, + 71, 2352, 71, 2347, 2348, 2344, 71, 2349, 71, 2353, - 2358, 71, 71, 2348, 2359, 71, 71, 2351, 71, 71, - 2353, 2354, 71, 2360, 2362, 71, 2361, 2366, 2357, 2363, - 71, 2364, 71, 2365, 71, 2367, 71, 71, 2369, 71, - 2370, 2371, 71, 71, 2368, 71, 2375, 71, 71, 2378, - 71, 2372, 71, 2376, 2374, 71, 2380, 71, 71, 71, - 2379, 71, 71, 2373, 2377, 71, 2381, 2384, 71, 71, - 71, 71, 71, 71, 2386, 71, 71, 2385, 2382, 2383, - 2387, 71, 71, 71, 2398, 71, 2585, 2396, 2388, 2392, - 2389, 2390, 71, 2391, 2399, 71, 2400, 2395, 2393, 2394, - 2401, 71, 71, 2397, 2402, 71, 2403, 2404, 71, 71, + 71, 2354, 71, 2357, 2358, 71, 2360, 71, 71, 71, + 2351, 2359, 71, 71, 2355, 71, 71, 2365, 2356, 71, + 2362, 2363, 71, 71, 71, 2361, 2368, 71, 2369, 71, + 2371, 71, 2364, 2372, 71, 71, 2366, 2367, 2374, 71, + 2373, 2370, 2376, 71, 2375, 2377, 71, 2378, 71, 71, + 2380, 71, 71, 71, 2379, 71, 2383, 2384, 71, 71, + 71, 71, 2388, 71, 71, 71, 2391, 71, 71, 2389, + 2387, 2381, 71, 2385, 71, 2382, 2392, 2393, 71, 2390, + 2386, 71, 71, 71, 71, 71, 2394, 2395, 2397, 71, + 2400, 2399, 71, 71, 2396, 71, 2398, 71, 71, 71, - 2406, 71, 2405, 71, 2409, 71, 71, 71, 71, 71, - 2407, 2411, 71, 2410, 71, 2415, 71, 2408, 2416, 71, - 71, 2414, 71, 2412, 2417, 71, 71, 2413, 71, 2420, - 2422, 2418, 2421, 2419, 2424, 2423, 71, 71, 71, 71, - 71, 2426, 71, 2428, 2429, 2431, 71, 2425, 2432, 71, - 2433, 71, 2434, 71, 2435, 71, 71, 71, 2427, 2437, - 71, 2430, 2438, 71, 71, 2436, 71, 2441, 71, 2443, - 71, 71, 2439, 71, 71, 71, 2440, 2445, 71, 2447, - 2450, 71, 71, 2442, 2449, 71, 71, 71, 71, 2444, - 2452, 71, 71, 2448, 71, 2456, 2451, 71, 71, 2446, + 71, 71, 2411, 71, 71, 2409, 2412, 71, 2401, 2432, + 71, 2405, 2402, 2403, 2413, 2404, 2406, 2407, 71, 2408, + 71, 2410, 2414, 71, 2415, 71, 2416, 2417, 71, 71, + 2419, 71, 2418, 71, 2421, 71, 2420, 2422, 71, 2424, + 2423, 71, 71, 71, 71, 2428, 2429, 71, 2430, 71, + 71, 2437, 2427, 2435, 71, 71, 2425, 71, 2436, 71, + 2426, 71, 71, 2433, 71, 2431, 2434, 71, 71, 2441, + 2444, 71, 2442, 2445, 71, 2598, 2439, 2446, 71, 71, + 2438, 2447, 71, 2440, 2448, 71, 71, 2443, 2449, 2450, + 71, 2451, 71, 71, 71, 2454, 71, 2456, 71, 71, - 71, 2458, 71, 71, 2455, 71, 2453, 71, 2463, 2454, - 71, 71, 2464, 71, 2460, 71, 2462, 2457, 2459, 71, - 2466, 71, 2465, 71, 2467, 2461, 71, 71, 71, 2475, - 71, 71, 2468, 2469, 2477, 71, 71, 2470, 71, 2478, - 2476, 2472, 2474, 2479, 71, 2480, 71, 2473, 2471, 71, - 71, 71, 71, 2483, 71, 2481, 2484, 2485, 71, 2488, - 71, 2490, 71, 71, 71, 71, 71, 71, 71, 2482, - 2494, 71, 2496, 2487, 2489, 71, 2495, 2498, 2499, 2486, - 71, 2492, 2491, 71, 71, 2493, 71, 2497, 71, 71, - 71, 71, 71, 71, 2500, 2505, 71, 71, 2507, 2501, + 71, 2452, 71, 2458, 71, 2453, 71, 2460, 2463, 71, + 71, 2455, 2462, 71, 71, 71, 71, 2457, 2465, 71, + 71, 71, 2461, 2469, 2464, 71, 71, 71, 2459, 2471, + 71, 71, 2468, 71, 2466, 71, 71, 2467, 2476, 71, + 2479, 2473, 2475, 71, 2470, 2477, 2472, 71, 71, 2480, + 2478, 71, 71, 2474, 71, 71, 71, 71, 2488, 71, + 2490, 71, 71, 2491, 2483, 2489, 2481, 2492, 71, 2482, + 2485, 2487, 2493, 71, 2486, 71, 71, 2484, 71, 71, + 71, 2496, 71, 71, 2497, 2498, 2501, 71, 2503, 71, + 71, 71, 71, 71, 2494, 71, 2495, 71, 2500, 2507, - 71, 71, 71, 71, 2504, 71, 71, 2502, 2512, 2503, - 2509, 2513, 2506, 2510, 71, 2508, 2516, 71, 2518, 2517, - 2511, 2515, 71, 2514, 71, 71, 2519, 2520, 71, 71, - 71, 2524, 71, 2521, 2522, 71, 2527, 71, 2526, 71, - 2525, 71, 71, 71, 71, 2532, 71, 71, 2535, 2523, - 2529, 71, 71, 71, 2536, 71, 71, 2539, 71, 71, - 2528, 2530, 71, 2531, 71, 2533, 2534, 2537, 71, 2543, - 2538, 71, 71, 71, 2547, 2540, 2544, 2542, 2541, 71, - 71, 2549, 71, 2550, 71, 2545, 71, 71, 2546, 2551, - 2554, 71, 71, 2552, 71, 71, 2556, 2555, 2548, 2557, + 71, 2502, 71, 2508, 2511, 2509, 2505, 2499, 71, 2504, + 71, 2506, 2512, 71, 2510, 71, 71, 71, 71, 71, + 71, 71, 2513, 2518, 71, 71, 2514, 71, 71, 2520, + 71, 2517, 71, 71, 2515, 71, 2516, 2525, 2526, 2527, + 2519, 2522, 2598, 2523, 2521, 71, 2524, 2529, 71, 2531, + 2530, 71, 2532, 71, 2528, 71, 71, 71, 2533, 71, + 2537, 2534, 2535, 71, 2539, 71, 71, 71, 2538, 71, + 71, 2540, 71, 71, 2545, 71, 71, 2542, 2536, 71, + 71, 71, 2548, 2549, 71, 71, 71, 71, 2541, 2547, + 2552, 2543, 2544, 71, 2546, 2550, 71, 71, 2551, 71, - 71, 71, 2558, 71, 71, 71, 2553, 71, 2559, 2561, - 2563, 71, 71, 71, 71, 71, 71, 2565, 2566, 71, - 2569, 71, 2560, 2585, 2562, 2585, 2564, 2570, 71, 71, - 2573, 2574, 71, 2567, 2568, 2571, 71, 2576, 71, 71, - 2572, 2577, 71, 2575, 71, 71, 2578, 71, 71, 2579, - 2580, 2583, 71, 2584, 71, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2581, 2582, 43, 43, - 43, 43, 43, 43, 43, 48, 48, 48, 48, 48, - 48, 48, 53, 53, 53, 53, 53, 53, 53, 59, - 59, 59, 59, 59, 59, 59, 64, 64, 64, 64, + 2556, 71, 2557, 71, 2560, 2559, 2553, 71, 71, 2555, + 71, 2562, 2554, 2564, 2558, 71, 2563, 71, 71, 2567, + 71, 71, 71, 2569, 2565, 71, 2561, 2568, 2570, 71, + 71, 71, 2571, 71, 71, 2576, 71, 2566, 2572, 2574, + 71, 71, 71, 71, 71, 71, 2578, 2579, 71, 2573, + 71, 2582, 2575, 2583, 71, 71, 2586, 2587, 71, 2577, + 2598, 71, 2580, 2581, 2584, 2589, 71, 2585, 2588, 2590, + 71, 71, 71, 71, 71, 71, 2598, 2592, 2591, 2593, + 2596, 71, 2597, 71, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2594, 2598, 2595, 43, 43, 43, 43, 43, - 64, 64, 64, 74, 74, 2585, 74, 74, 74, 74, - 140, 140, 2585, 2585, 2585, 140, 140, 142, 142, 2585, - 2585, 142, 2585, 142, 144, 2585, 2585, 2585, 2585, 2585, - 144, 147, 147, 2585, 2585, 2585, 147, 147, 149, 2585, - 2585, 2585, 2585, 2585, 149, 151, 151, 2585, 151, 151, - 151, 151, 75, 75, 2585, 75, 75, 75, 75, 13, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585 + 43, 43, 48, 48, 48, 48, 48, 48, 48, 53, + 53, 53, 53, 53, 53, 53, 59, 59, 59, 59, + 59, 59, 59, 64, 64, 64, 64, 64, 64, 64, + 74, 74, 2598, 74, 74, 74, 74, 140, 140, 2598, + 2598, 2598, 140, 140, 142, 142, 2598, 2598, 142, 2598, + 142, 144, 2598, 2598, 2598, 2598, 2598, 144, 147, 147, + 2598, 2598, 2598, 147, 147, 149, 2598, 2598, 2598, 2598, + 2598, 149, 151, 151, 2598, 151, 151, 151, 151, 75, + 75, 2598, 75, 75, 75, 75, 13, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598 } ; -static yyconst flex_int16_t yy_chk[5101] = +static yyconst flex_int16_t yy_chk[5128] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1855,13 +1864,13 @@ static yyconst flex_int16_t yy_chk[5101] = 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2591, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2604, 31, 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, 23, 23, 21, 21, 24, 12, 21, 81, 23, 24, - 34, 21, 23, 24, 12, 23, 24, 895, 24, 24, + 34, 21, 23, 24, 12, 23, 24, 898, 24, 24, 21, 26, 26, 27, 27, 90, 28, 81, 32, 32, 28, 34, 27, 28, 33, 33, 26, 32, 36, 33, 28, 35, 28, 32, 90, 42, 35, 32, 52, 84, @@ -1929,9 +1938,9 @@ static yyconst flex_int16_t yy_chk[5101] = 297, 303, 304, 304, 306, 306, 305, 302, 301, 300, 303, 305, 300, 307, 308, 309, 310, 311, 312, 308, 313, 314, 320, 322, 315, 316, 313, 309, 307, 315, - 699, 316, 322, 312, 317, 310, 320, 311, 318, 317, + 701, 316, 322, 312, 317, 310, 320, 311, 318, 317, 323, 314, 319, 318, 325, 319, 323, 319, 321, 318, - 324, 321, 330, 327, 699, 324, 326, 325, 328, 326, + 324, 321, 330, 327, 701, 324, 326, 325, 328, 326, 333, 329, 339, 335, 321, 325, 330, 321, 332, 321, 341, 332, 326, 327, 333, 326, 329, 326, 335, 328, @@ -1954,460 +1963,463 @@ static yyconst flex_int16_t yy_chk[5101] = 405, 409, 403, 399, 407, 407, 410, 411, 412, 409, 414, 415, 404, 417, 408, 410, 418, 419, 416, 417, 412, 420, 421, 419, 424, 418, 420, 411, 414, 422, - 414, 415, 416, 423, 426, 425, 421, 422, 425, 423, - 426, 427, 428, 429, 424, 430, 431, 428, 432, 433, + 414, 415, 416, 423, 427, 425, 421, 422, 425, 423, + 422, 426, 429, 433, 424, 428, 430, 426, 427, 431, - 431, 434, 435, 432, 436, 427, 434, 438, 426, 439, - 440, 584, 441, 444, 433, 429, 430, 441, 435, 442, - 450, 446, 584, 436, 437, 437, 440, 438, 439, 444, - 437, 443, 437, 448, 442, 445, 443, 446, 455, 447, - 437, 445, 447, 437, 437, 450, 445, 449, 449, 452, - 437, 451, 451, 448, 453, 454, 456, 455, 457, 458, - 459, 460, 467, 457, 452, 461, 453, 468, 458, 464, - 454, 461, 463, 464, 465, 466, 460, 467, 456, 459, - 465, 463, 469, 470, 471, 472, 468, 466, 473, 472, - 474, 475, 474, 476, 476, 478, 469, 477, 470, 475, + 428, 432, 434, 431, 435, 436, 432, 434, 433, 438, + 54, 439, 440, 441, 429, 426, 443, 430, 441, 442, + 435, 443, 444, 446, 436, 437, 437, 450, 440, 438, + 439, 437, 447, 437, 442, 447, 445, 448, 444, 446, + 452, 437, 445, 455, 437, 437, 453, 445, 449, 449, + 454, 437, 450, 451, 451, 452, 456, 448, 453, 457, + 458, 459, 455, 463, 457, 454, 460, 461, 467, 458, + 464, 465, 463, 461, 464, 466, 468, 465, 456, 469, + 459, 460, 470, 467, 471, 472, 473, 466, 474, 472, + 474, 53, 475, 469, 478, 468, 480, 470, 482, 473, - 479, 473, 471, 477, 480, 481, 479, 478, 481, 482, - 483, 484, 485, 486, 484, 483, 480, 487, 495, 488, - 489, 489, 487, 487, 482, 490, 490, 491, 485, 486, - 497, 485, 488, 491, 492, 492, 493, 493, 494, 495, - 496, 500, 498, 499, 494, 496, 499, 501, 502, 497, - 498, 503, 502, 505, 504, 506, 507, 503, 504, 508, - 506, 510, 509, 54, 500, 508, 501, 509, 512, 511, - 514, 505, 511, 513, 513, 510, 507, 511, 515, 516, - 517, 511, 518, 515, 516, 519, 512, 520, 514, 521, - 525, 519, 521, 523, 517, 522, 520, 518, 523, 522, + 475, 477, 471, 476, 476, 479, 478, 477, 480, 481, + 483, 479, 481, 482, 484, 483, 485, 484, 486, 487, + 488, 489, 489, 491, 487, 487, 490, 490, 495, 491, + 492, 492, 485, 488, 486, 485, 493, 493, 494, 497, + 496, 500, 498, 499, 494, 496, 499, 501, 502, 495, + 498, 503, 502, 505, 507, 504, 506, 503, 497, 504, + 509, 506, 508, 510, 500, 509, 501, 511, 508, 512, + 511, 505, 513, 513, 507, 511, 514, 510, 515, 511, + 516, 517, 518, 515, 519, 516, 525, 512, 521, 520, + 519, 521, 522, 526, 514, 517, 522, 518, 520, 523, - 524, 526, 527, 528, 530, 524, 525, 527, 529, 529, - 531, 533, 532, 530, 526, 535, 534, 533, 535, 538, - 539, 522, 534, 528, 532, 536, 531, 537, 536, 540, - 546, 541, 537, 542, 539, 540, 541, 538, 543, 542, - 544, 543, 545, 546, 547, 544, 548, 545, 545, 549, - 550, 551, 553, 552, 555, 549, 552, 547, 553, 555, - 551, 554, 556, 557, 557, 548, 548, 556, 556, 550, - 558, 552, 559, 554, 559, 560, 561, 565, 561, 562, - 563, 564, 566, 567, 568, 569, 570, 567, 571, 572, - 573, 575, 576, 568, 560, 558, 565, 562, 563, 564, + 524, 528, 525, 527, 523, 524, 526, 530, 527, 529, + 529, 531, 532, 533, 534, 539, 530, 538, 522, 533, + 534, 528, 535, 536, 532, 535, 536, 531, 537, 539, + 540, 548, 541, 537, 542, 538, 540, 541, 543, 544, + 542, 543, 545, 546, 544, 547, 549, 545, 545, 550, + 548, 548, 549, 551, 552, 554, 546, 553, 547, 552, + 553, 554, 551, 559, 555, 556, 557, 560, 550, 560, + 556, 557, 557, 558, 558, 553, 555, 561, 562, 563, + 562, 564, 565, 566, 567, 568, 569, 572, 559, 568, + 570, 571, 574, 576, 577, 569, 561, 563, 573, 564, - 569, 572, 566, 574, 570, 573, 577, 571, 578, 574, - 575, 576, 579, 580, 581, 581, 582, 583, 585, 586, - 582, 587, 589, 585, 577, 588, 578, 591, 590, 589, - 579, 594, 580, 590, 591, 586, 583, 592, 588, 593, - 587, 595, 592, 596, 593, 597, 598, 603, 595, 594, - 599, 600, 596, 605, 601, 598, 600, 601, 604, 597, - 602, 603, 599, 606, 602, 607, 611, 604, 605, 608, - 608, 609, 609, 610, 610, 611, 613, 606, 614, 615, - 609, 616, 617, 618, 614, 616, 607, 619, 620, 621, - 622, 623, 53, 619, 617, 613, 620, 624, 626, 615, + 565, 578, 566, 579, 567, 570, 572, 574, 575, 571, + 573, 580, 576, 577, 575, 581, 582, 582, 583, 578, + 584, 579, 583, 586, 585, 587, 588, 589, 586, 580, + 590, 591, 595, 593, 581, 585, 591, 590, 593, 584, + 589, 587, 592, 594, 596, 588, 597, 598, 594, 592, + 595, 596, 600, 599, 601, 597, 604, 602, 606, 601, + 602, 598, 599, 603, 600, 605, 607, 603, 608, 623, + 604, 609, 609, 606, 605, 610, 610, 611, 611, 612, + 607, 614, 616, 617, 610, 615, 618, 617, 612, 608, + 619, 615, 622, 620, 623, 621, 624, 627, 618, 620, - 629, 618, 624, 632, 633, 645, 624, 621, 639, 624, - 633, 623, 632, 626, 634, 622, 624, 629, 634, 624, - 635, 635, 636, 636, 637, 638, 640, 643, 639, 642, - 645, 644, 640, 646, 642, 637, 646, 647, 647, 638, - 641, 641, 641, 648, 641, 649, 649, 641, 643, 644, - 648, 650, 641, 651, 651, 652, 656, 654, 641, 641, - 652, 653, 654, 655, 653, 655, 650, 657, 656, 658, - 659, 661, 660, 658, 662, 662, 666, 663, 665, 661, - 664, 676, 667, 668, 668, 48, 657, 667, 666, 676, - 659, 660, 663, 669, 664, 671, 665, 672, 669, 669, + 614, 634, 616, 621, 630, 633, 625, 634, 619, 635, + 622, 625, 627, 635, 633, 625, 624, 639, 625, 636, + 636, 630, 637, 637, 638, 625, 640, 641, 625, 643, + 48, 639, 644, 641, 643, 638, 646, 645, 647, 648, + 648, 647, 651, 649, 650, 650, 640, 642, 642, 642, + 649, 642, 658, 644, 642, 645, 656, 651, 656, 642, + 657, 646, 652, 652, 653, 642, 642, 654, 655, 653, + 654, 658, 657, 655, 659, 660, 662, 661, 659, 663, + 663, 667, 664, 666, 662, 665, 668, 669, 669, 672, + 704, 668, 704, 667, 672, 660, 661, 664, 670, 665, - 671, 673, 674, 672, 675, 674, 677, 673, 678, 681, - 675, 679, 680, 683, 677, 684, 679, 682, 682, 680, - 686, 685, 683, 684, 688, 689, 678, 685, 681, 691, - 690, 693, 694, 688, 689, 690, 693, 692, 691, 686, - 692, 695, 695, 696, 697, 698, 694, 702, 700, 702, - 704, 700, 703, 703, 698, 705, 706, 709, 696, 700, - 705, 707, 708, 697, 710, 711, 712, 713, 714, 715, - 712, 704, 717, 724, 711, 718, 716, 706, 715, 709, - 719, 707, 708, 721, 710, 713, 719, 714, 716, 718, - 722, 717, 720, 720, 723, 724, 725, 726, 727, 728, + 673, 666, 674, 670, 670, 676, 673, 675, 674, 677, + 675, 676, 678, 679, 680, 681, 682, 677, 684, 680, + 678, 685, 681, 683, 683, 687, 686, 684, 689, 685, + 690, 679, 686, 691, 692, 682, 694, 689, 691, 690, + 695, 694, 693, 692, 687, 693, 696, 697, 697, 698, + 699, 700, 702, 706, 695, 702, 705, 705, 708, 711, + 700, 707, 709, 702, 698, 710, 707, 712, 713, 699, + 715, 696, 714, 716, 706, 717, 714, 713, 718, 708, + 719, 711, 709, 720, 717, 710, 723, 712, 715, 721, + 718, 724, 716, 722, 722, 721, 725, 720, 726, 719, - 729, 730, 731, 721, 727, 730, 729, 733, 732, 734, - 722, 726, 733, 738, 723, 741, 725, 735, 735, 728, - 732, 731, 737, 736, 739, 737, 740, 743, 732, 736, - 734, 738, 740, 742, 742, 741, 744, 739, 745, 745, - 746, 744, 747, 748, 748, 743, 747, 749, 750, 751, - 754, 752, 755, 757, 751, 746, 758, 760, 760, 761, - 762, 763, 767, 761, 765, 913, 755, 764, 750, 749, - 752, 764, 913, 757, 754, 762, 767, 758, 759, 765, - 766, 759, 771, 759, 769, 766, 763, 759, 770, 759, - 768, 775, 770, 774, 759, 768, 768, 771, 769, 759, + 728, 727, 729, 730, 731, 732, 723, 733, 729, 732, + 731, 724, 734, 735, 728, 736, 725, 740, 735, 738, + 726, 727, 745, 730, 734, 738, 733, 737, 737, 741, + 739, 742, 734, 739, 743, 740, 736, 742, 744, 744, + 745, 746, 741, 747, 747, 748, 746, 749, 750, 750, + 751, 749, 753, 752, 743, 754, 756, 753, 759, 807, + 748, 757, 760, 762, 762, 763, 764, 765, 807, 763, + 767, 768, 751, 752, 754, 757, 768, 769, 759, 43, + 756, 764, 766, 760, 761, 767, 766, 761, 773, 761, + 771, 769, 765, 761, 772, 761, 770, 777, 772, 776, - 772, 773, 776, 777, 778, 772, 773, 774, 782, 777, - 778, 783, 775, 779, 779, 772, 776, 780, 781, 787, - 785, 786, 780, 788, 781, 793, 786, 782, 794, 783, - 784, 784, 785, 787, 792, 788, 784, 790, 784, 789, - 789, 800, 790, 791, 793, 795, 795, 794, 792, 784, - 784, 791, 798, 796, 801, 802, 784, 796, 798, 799, - 800, 802, 799, 803, 804, 805, 806, 801, 803, 807, - 808, 809, 810, 811, 805, 806, 808, 812, 811, 813, - 809, 814, 817, 804, 819, 807, 815, 816, 817, 821, - 822, 810, 823, 813, 825, 815, 816, 812, 824, 825, + 761, 770, 770, 773, 771, 761, 774, 775, 778, 779, + 780, 774, 775, 776, 784, 779, 780, 785, 777, 781, + 781, 774, 778, 782, 783, 789, 787, 788, 782, 790, + 783, 795, 788, 784, 796, 785, 786, 786, 787, 789, + 794, 790, 786, 792, 786, 791, 791, 802, 792, 793, + 795, 797, 797, 796, 794, 786, 786, 793, 800, 798, + 803, 804, 786, 798, 800, 801, 802, 804, 801, 805, + 806, 808, 809, 803, 805, 810, 811, 812, 813, 814, + 808, 810, 816, 813, 815, 811, 817, 819, 809, 806, + 821, 818, 824, 819, 823, 817, 812, 825, 815, 814, - 819, 814, 826, 821, 831, 828, 827, 826, 833, 822, - 823, 827, 830, 824, 828, 829, 829, 831, 830, 836, - 834, 837, 836, 838, 833, 834, 834, 835, 835, 839, - 842, 835, 840, 841, 843, 837, 842, 844, 845, 846, - 844, 847, 848, 838, 846, 840, 847, 839, 841, 851, - 849, 850, 854, 858, 843, 849, 850, 853, 848, 845, - 855, 851, 858, 853, 856, 859, 855, 861, 854, 862, - 856, 857, 857, 860, 863, 865, 860, 864, 866, 870, - 874, 865, 867, 859, 866, 861, 868, 867, 862, 871, - 864, 868, 872, 872, 863, 871, 873, 870, 874, 875, + 818, 826, 816, 14, 827, 828, 821, 829, 823, 827, + 828, 824, 829, 830, 832, 825, 826, 831, 831, 833, + 832, 835, 830, 836, 839, 840, 837, 837, 836, 836, + 837, 838, 833, 841, 838, 842, 844, 835, 839, 843, + 845, 846, 844, 847, 848, 840, 847, 846, 842, 13, + 849, 841, 850, 851, 843, 849, 852, 850, 853, 854, + 845, 852, 856, 853, 857, 848, 858, 859, 856, 851, + 861, 854, 858, 859, 860, 860, 862, 864, 863, 861, + 857, 863, 865, 866, 867, 868, 869, 873, 870, 876, + 874, 868, 869, 870, 862, 864, 874, 867, 876, 871, - 876, 877, 875, 878, 879, 873, 880, 881, 882, 884, - 879, 876, 880, 882, 886, 878, 883, 883, 885, 877, - 887, 888, 881, 890, 887, 889, 886, 891, 884, 893, - 894, 894, 885, 896, 889, 897, 899, 898, 902, 888, - 927, 899, 890, 927, 900, 901, 901, 896, 893, 898, - 897, 903, 891, 900, 904, 908, 905, 903, 902, 909, - 904, 905, 906, 907, 906, 910, 911, 912, 907, 908, - 910, 915, 914, 909, 916, 916, 918, 917, 919, 920, - 924, 911, 923, 923, 919, 924, 912, 914, 921, 925, - 915, 917, 926, 921, 918, 928, 925, 931, 930, 920, + 877, 865, 879, 866, 871, 873, 875, 875, 878, 880, + 881, 878, 885, 879, 882, 883, 884, 885, 877, 887, + 882, 883, 881, 886, 886, 888, 890, 880, 889, 891, + 890, 884, 892, 893, 894, 896, 897, 897, 887, 888, + 889, 892, 899, 900, 902, 901, 903, 891, 905, 902, + 904, 904, 893, 0, 896, 903, 899, 901, 900, 894, + 906, 907, 911, 909, 908, 909, 906, 907, 905, 908, + 910, 912, 913, 914, 915, 910, 911, 913, 918, 916, + 917, 919, 919, 921, 920, 912, 916, 923, 914, 924, + 922, 926, 926, 915, 924, 917, 922, 918, 920, 927, - 929, 933, 921, 930, 921, 932, 926, 921, 937, 929, - 932, 935, 935, 928, 936, 940, 931, 938, 941, 936, - 933, 939, 938, 942, 940, 939, 943, 945, 937, 944, - 947, 946, 948, 941, 945, 950, 949, 951, 943, 952, - 953, 950, 942, 946, 944, 956, 954, 957, 958, 947, - 959, 956, 951, 948, 949, 954, 958, 960, 963, 952, - 953, 957, 960, 961, 964, 990, 962, 965, 966, 966, - 959, 962, 962, 969, 968, 961, 990, 963, 964, 970, - 965, 967, 969, 971, 971, 970, 967, 968, 972, 967, - 967, 974, 973, 972, 967, 978, 974, 975, 976, 976, + 929, 921, 928, 924, 927, 924, 931, 923, 924, 928, + 930, 932, 933, 930, 929, 934, 935, 933, 936, 940, + 932, 935, 938, 938, 931, 939, 941, 943, 942, 944, + 939, 941, 942, 945, 934, 946, 943, 936, 947, 940, + 950, 948, 949, 951, 944, 952, 954, 946, 948, 953, + 955, 956, 945, 947, 949, 953, 957, 962, 960, 950, + 959, 954, 964, 952, 951, 957, 959, 961, 963, 966, + 955, 956, 960, 963, 964, 961, 965, 962, 967, 0, + 968, 965, 965, 969, 969, 971, 972, 989, 966, 0, + 973, 989, 967, 968, 970, 972, 973, 976, 971, 970, - 967, 973, 975, 977, 967, 979, 977, 980, 981, 982, - 983, 984, 980, 985, 979, 978, 983, 984, 985, 986, - 987, 994, 981, 986, 988, 988, 989, 982, 989, 987, - 993, 992, 995, 997, 987, 992, 987, 996, 987, 994, - 987, 995, 996, 996, 998, 993, 999, 1000, 1001, 998, - 1002, 1003, 1004, 1006, 1005, 997, 1000, 1004, 1002, 1007, - 999, 1008, 1006, 1011, 1009, 1003, 1017, 1001, 1005, 1009, - 1010, 1010, 1012, 1012, 1013, 1016, 1013, 1007, 1011, 1015, - 1016, 1019, 1015, 1018, 1018, 1017, 1008, 1020, 1020, 1021, - 1022, 1023, 1024, 1024, 1021, 1025, 1027, 1026, 1027, 1030, + 974, 974, 970, 970, 975, 977, 976, 970, 981, 975, + 977, 978, 984, 970, 979, 979, 978, 970, 980, 983, + 982, 980, 985, 990, 983, 986, 984, 987, 981, 982, + 988, 986, 990, 987, 992, 988, 992, 990, 993, 990, + 985, 990, 995, 990, 991, 991, 995, 996, 997, 993, + 998, 999, 1000, 1001, 1002, 1003, 999, 999, 1001, 998, + 1004, 1005, 996, 1006, 1003, 1008, 997, 1007, 1002, 1009, + 1008, 1006, 1011, 1010, 1000, 1012, 1014, 1014, 1015, 1004, + 1005, 1007, 1010, 1009, 1013, 1016, 1016, 1021, 1019, 1013, + 1011, 1019, 1017, 1015, 1017, 1023, 1020, 1022, 1022, 1025, - 1029, 1019, 1026, 1029, 1030, 1031, 1034, 1034, 1035, 1032, - 43, 1022, 1023, 1031, 1032, 1025, 1033, 1036, 1037, 1038, - 1045, 1033, 1040, 1036, 1041, 1037, 1035, 1043, 1040, 1042, - 1041, 1044, 1038, 1043, 1042, 1046, 1047, 1047, 1048, 1045, - 1044, 1050, 1051, 1052, 1053, 1054, 1046, 1056, 1057, 1052, - 1053, 1054, 1058, 1056, 1059, 1060, 1061, 1063, 1048, 1062, - 1062, 1050, 1057, 1064, 1065, 1051, 1059, 1068, 1057, 1060, - 1066, 1069, 1058, 1071, 1061, 1066, 1069, 1063, 1067, 1067, - 1072, 1074, 1065, 1075, 1073, 1072, 1072, 1076, 1064, 1074, - 1068, 1077, 1071, 1073, 1079, 1078, 1079, 1075, 1080, 1081, + 1012, 1020, 1024, 1024, 1025, 1026, 1021, 1027, 1028, 1028, + 1029, 1030, 1031, 1034, 1031, 1023, 1030, 1033, 1034, 1035, + 1033, 1038, 1038, 1039, 1036, 0, 1026, 1035, 1027, 1036, + 1029, 1037, 1040, 1041, 1042, 1049, 1037, 1044, 1040, 1045, + 1041, 1039, 1047, 1044, 1046, 1045, 1048, 1042, 1047, 1046, + 1050, 1051, 1051, 1052, 1049, 1048, 1054, 1055, 1056, 1057, + 1058, 1050, 1060, 1061, 1056, 1057, 1058, 1062, 1060, 1063, + 1064, 1065, 1067, 1052, 1066, 1066, 1054, 1061, 1068, 1069, + 1055, 1063, 1072, 1061, 1064, 1070, 1073, 1062, 1075, 1065, + 1070, 1073, 1067, 1071, 1071, 1076, 1078, 1069, 1079, 1077, - 1078, 1084, 1076, 1078, 1082, 1081, 1077, 1083, 1082, 1077, - 1085, 1086, 1080, 1088, 1087, 1089, 1091, 1194, 1083, 1087, - 1084, 1092, 1093, 1093, 1094, 1095, 1096, 1098, 1094, 1086, - 1091, 1088, 1097, 1099, 1100, 1089, 1085, 1101, 1102, 1092, - 14, 1106, 1194, 1095, 1097, 1096, 1098, 1099, 1103, 1100, - 1105, 1104, 1101, 1103, 1107, 1105, 1109, 1102, 1104, 1106, - 1108, 1108, 1110, 1107, 1111, 1112, 1113, 1114, 1110, 1121, - 1112, 1109, 1113, 1114, 1115, 1115, 1116, 1116, 1118, 1118, - 1119, 1120, 1122, 1123, 1119, 1111, 1124, 1121, 1125, 1125, - 1120, 1126, 1127, 1124, 1128, 1129, 1122, 1130, 1123, 1128, + 1076, 1076, 1080, 1068, 1078, 1072, 1081, 1075, 1077, 1083, + 1082, 1083, 1079, 1084, 1085, 1082, 1088, 1080, 1082, 1086, + 1085, 1081, 1087, 1086, 1081, 1089, 1090, 1084, 1092, 1091, + 1093, 1095, 1199, 1087, 1091, 1088, 1096, 1097, 1097, 1098, + 1099, 1100, 1102, 1098, 1090, 1095, 1092, 1101, 1103, 1104, + 1093, 1089, 1105, 1106, 1096, 0, 1110, 1199, 1099, 1101, + 1100, 1102, 1103, 1107, 1104, 1109, 1108, 1105, 1107, 1111, + 1109, 1113, 1106, 1108, 1110, 1112, 1112, 1114, 1111, 1115, + 1116, 1117, 1118, 1114, 1125, 1116, 1113, 1117, 1118, 1119, + 1119, 1120, 1120, 1122, 1122, 1123, 1124, 1126, 1127, 1123, - 1127, 1131, 1133, 13, 1134, 1135, 1131, 1131, 1132, 1129, - 1136, 1126, 1137, 1132, 1132, 1138, 1130, 1139, 1140, 1141, - 1142, 1138, 1133, 1134, 1135, 1141, 1142, 1143, 1144, 1136, - 1145, 1146, 1137, 1148, 1147, 0, 1149, 1140, 1150, 1150, - 1152, 1151, 1188, 1139, 1151, 1188, 1143, 1144, 1147, 1145, - 1146, 1149, 1152, 1154, 1148, 1153, 1153, 1155, 1154, 1156, - 1157, 1155, 1158, 1161, 1159, 1162, 1159, 1163, 1161, 1157, - 1159, 1169, 1156, 1164, 1166, 1158, 1165, 1165, 1167, 1166, - 1162, 1168, 1167, 1159, 1170, 1168, 1171, 1163, 1172, 1164, - 1175, 1169, 1173, 1173, 1172, 1177, 1178, 1179, 1179, 1180, + 1115, 1128, 1125, 1129, 1129, 1124, 1130, 1131, 1128, 1132, + 1133, 1126, 1134, 1127, 1132, 1131, 1135, 1137, 0, 1138, + 1139, 1135, 1135, 1136, 1133, 1140, 1130, 1141, 1136, 1136, + 1142, 1134, 1143, 1144, 1145, 1146, 1142, 1137, 1138, 1139, + 1145, 1146, 1147, 1148, 1140, 1149, 1150, 1141, 1152, 1151, + 0, 1153, 1144, 1154, 1154, 1156, 1155, 1193, 1143, 1155, + 1193, 1147, 1148, 1151, 1149, 1150, 1153, 1156, 1158, 1152, + 1157, 1157, 1159, 1158, 1160, 1161, 1159, 1162, 1165, 1163, + 1166, 1163, 1167, 1165, 1161, 1163, 1174, 1160, 1168, 1170, + 1162, 1169, 1169, 1172, 1170, 1166, 1171, 1172, 1163, 1173, - 1190, 1178, 1170, 1182, 1182, 1180, 1171, 1185, 1175, 1184, - 1184, 1186, 1189, 1189, 1191, 1193, 1177, 1192, 1192, 1191, - 1196, 1190, 1198, 1185, 1195, 1195, 1197, 1186, 1199, 1199, - 1193, 1197, 1200, 1201, 1196, 1203, 1200, 1198, 1202, 1202, - 1204, 1205, 1206, 1207, 1210, 1205, 1209, 1209, 1207, 1211, - 1212, 1204, 1213, 1201, 1214, 1215, 1215, 1203, 1217, 1216, - 1218, 1206, 1210, 1211, 1216, 1219, 1213, 1220, 1221, 1212, - 1212, 1222, 1220, 1222, 1219, 1225, 1223, 1224, 1217, 1214, - 1218, 1223, 1228, 1224, 1226, 1229, 1229, 1230, 1221, 1233, - 1226, 1231, 1234, 1234, 1236, 1225, 1228, 1231, 1235, 1235, + 1175, 1171, 1167, 1173, 1168, 1176, 1174, 1177, 1178, 1178, + 1180, 1182, 1183, 1177, 1184, 1184, 1185, 1183, 1175, 1187, + 1187, 1190, 1185, 1189, 1189, 1176, 1191, 1195, 1180, 1194, + 1194, 1196, 1182, 1197, 1197, 1198, 1196, 1190, 1200, 1200, + 1201, 1202, 1191, 1203, 1204, 1204, 1202, 1205, 1195, 1206, + 1198, 1205, 1207, 1207, 1201, 1208, 1209, 1210, 1203, 1211, + 1212, 1210, 1214, 1214, 1215, 1212, 1216, 1209, 1217, 1206, + 1218, 1219, 1220, 1220, 1221, 1222, 1224, 1208, 1211, 1221, + 1216, 1223, 1215, 1226, 1218, 1224, 1225, 1217, 1217, 1228, + 1227, 1225, 1227, 1229, 1228, 1222, 1219, 1230, 1231, 1229, - 1237, 1238, 1239, 1240, 1240, 1239, 1230, 1241, 1236, 1242, - 1248, 1251, 1251, 1233, 1243, 1244, 1238, 1243, 1237, 1241, - 1243, 1244, 1245, 1247, 1246, 1252, 1252, 1245, 1247, 1242, - 1250, 1249, 1243, 1246, 1249, 1248, 1250, 1253, 1254, 1255, - 1256, 1257, 1253, 1258, 1259, 1262, 1266, 1260, 1261, 1258, - 1259, 1254, 1260, 1263, 1261, 1264, 1264, 1255, 1263, 1256, - 1265, 1257, 1267, 1268, 1266, 1265, 1269, 1270, 1262, 1273, - 1274, 1275, 1271, 1272, 1276, 1273, 1277, 1279, 1279, 1280, - 1269, 1270, 1267, 1268, 1271, 1283, 1272, 1281, 1276, 1284, - 1274, 1275, 1281, 1282, 1282, 1285, 1286, 1277, 1287, 1280, + 1233, 1223, 1235, 1226, 1231, 1234, 1234, 1236, 1238, 1239, + 1239, 1240, 1240, 1236, 1233, 1241, 1242, 1230, 1243, 1244, + 1247, 1235, 1244, 1245, 1245, 1246, 1250, 1253, 0, 1241, + 1249, 1250, 1238, 1243, 1242, 1248, 1249, 1246, 1248, 1251, + 1247, 1248, 1252, 1254, 1255, 1261, 1254, 1252, 1251, 1259, + 1255, 1260, 1253, 1248, 1256, 1256, 1257, 1257, 1258, 1262, + 1263, 1264, 1259, 1258, 1261, 1265, 1263, 1264, 1266, 1260, + 1265, 1267, 1268, 1270, 1266, 1269, 1269, 1268, 1270, 1262, + 1271, 1272, 1273, 1274, 1276, 1275, 1278, 1277, 1279, 1280, + 1281, 1282, 1278, 1285, 1267, 1290, 1276, 1274, 1271, 1275, - 1283, 1288, 1289, 1284, 1291, 1295, 1290, 1287, 1293, 1289, - 1296, 1296, 1297, 1297, 1286, 1290, 1288, 1300, 1290, 1285, - 1291, 1298, 1301, 1293, 1298, 1299, 1299, 1301, 1293, 1302, - 1295, 1303, 1304, 1306, 1305, 1307, 1300, 1308, 1308, 1309, - 1303, 1307, 1306, 1305, 1310, 1302, 1305, 1311, 1312, 1314, - 1313, 1304, 1316, 1317, 1318, 1318, 1319, 1310, 1320, 1309, - 1324, 1314, 1312, 1321, 1323, 1311, 1313, 1320, 1321, 1322, - 1322, 1317, 1319, 1323, 1325, 1326, 1323, 1316, 1324, 1330, - 1327, 1329, 1331, 1331, 1322, 1327, 1327, 1329, 1332, 1337, - 1338, 1333, 1334, 1326, 1332, 1325, 1333, 1330, 1334, 1335, + 1277, 1272, 1273, 1288, 1281, 1284, 1284, 1289, 1279, 1280, + 1286, 1291, 1282, 1285, 1292, 1286, 1287, 1287, 1288, 1290, + 1293, 1289, 1296, 1292, 1294, 1295, 1298, 1300, 1305, 1291, + 0, 1294, 1301, 1301, 1295, 1293, 1309, 1295, 1296, 1302, + 1302, 1298, 1303, 1304, 1304, 1303, 1298, 1305, 1306, 1307, + 1308, 1310, 1300, 1306, 1314, 1309, 1312, 1311, 1315, 1308, + 1310, 1316, 1312, 1310, 1317, 1307, 1311, 1313, 1313, 1318, + 1319, 1315, 1321, 1322, 1314, 1323, 1323, 1324, 1317, 1316, + 1325, 1326, 1319, 1327, 1327, 1318, 1326, 1328, 1329, 1325, + 1330, 1322, 1331, 1324, 1334, 1332, 1328, 1321, 1327, 1328, - 1339, 1340, 1344, 1345, 1338, 1335, 1339, 1341, 1351, 1337, - 1341, 1346, 1347, 1348, 1340, 1350, 1341, 1349, 1352, 1346, - 1353, 1344, 1345, 1349, 1354, 1347, 1351, 1348, 1350, 1355, - 1354, 1356, 1359, 1353, 1358, 1358, 1360, 1352, 1361, 1362, - 1360, 1363, 1364, 1361, 1362, 1355, 1363, 1365, 1367, 1356, - 1369, 1364, 1359, 1368, 1368, 1370, 1371, 1372, 1372, 1373, - 1375, 1374, 1376, 1367, 1377, 1378, 1380, 1370, 1374, 1369, - 1365, 1379, 1375, 1373, 1376, 1371, 1381, 1379, 1380, 0, - 1382, 1383, 1383, 1377, 1384, 1378, 1382, 1384, 1385, 1385, - 1387, 1388, 1389, 1389, 1381, 1387, 1390, 1391, 1392, 1391, + 1332, 1332, 1336, 1335, 1337, 1337, 1329, 1338, 1334, 1335, + 1331, 1330, 1339, 1338, 1343, 1340, 1341, 1339, 1344, 1345, + 1336, 1340, 1341, 1346, 1347, 1345, 1350, 1347, 1351, 1352, + 1353, 1358, 1344, 1347, 1343, 1354, 1346, 1352, 1355, 1356, + 1357, 1359, 1360, 1353, 1355, 1350, 1361, 1351, 1360, 1354, + 1358, 1362, 1356, 1365, 1359, 1364, 1364, 1366, 1357, 1367, + 1368, 1366, 1361, 1369, 1367, 1368, 1370, 1371, 1369, 1362, + 1373, 1374, 1374, 1365, 1375, 1370, 1376, 1377, 1378, 1378, + 1379, 1383, 1380, 1381, 1384, 1373, 1382, 1386, 1376, 1380, + 1371, 1385, 1387, 1375, 1379, 1381, 1377, 1385, 1382, 1386, - 1388, 1392, 1393, 1394, 1397, 1395, 1396, 1398, 1390, 1397, - 1401, 1402, 1400, 1404, 1399, 1401, 1398, 1403, 1405, 1405, - 1402, 1407, 1393, 1395, 1396, 1394, 1399, 1400, 1404, 1406, - 1408, 1409, 1410, 1402, 1410, 1406, 1414, 1403, 1411, 1411, - 1412, 1412, 1407, 1413, 1413, 1415, 1415, 1416, 1417, 1408, - 1419, 1409, 1418, 1418, 1419, 1420, 1414, 1421, 1423, 1424, - 1421, 1420, 1426, 1427, 1423, 1425, 1427, 1431, 1416, 1417, - 1430, 1425, 1428, 1428, 1429, 1429, 1430, 1424, 1432, 1431, - 1431, 1431, 1433, 1434, 1435, 1437, 1431, 1426, 1440, 1434, - 1437, 1437, 1438, 1439, 1441, 1439, 1443, 1442, 1432, 1440, + 1383, 1388, 1389, 1389, 1384, 1390, 1394, 1388, 1390, 1393, + 1387, 1391, 1391, 1396, 1393, 1394, 1395, 1395, 1397, 1398, + 1397, 1399, 1398, 1400, 1401, 1396, 1402, 1403, 1404, 1407, + 1408, 1405, 1403, 1406, 1407, 1409, 1410, 1404, 1413, 1408, + 1415, 1399, 1401, 1405, 1402, 1400, 1411, 1411, 1406, 1414, + 1412, 1410, 1408, 1417, 1417, 1409, 1412, 1418, 1418, 1413, + 1415, 1416, 1420, 1416, 1419, 1419, 1421, 1421, 1414, 1422, + 1423, 1424, 1424, 1425, 1426, 1427, 1430, 1425, 1427, 1429, + 1426, 1431, 1420, 1432, 1438, 1429, 1433, 1431, 1437, 1433, + 1422, 1423, 1434, 1434, 1430, 1435, 1435, 1436, 1439, 1440, - 1444, 1445, 1433, 1442, 1435, 1443, 1438, 1446, 1446, 1441, - 1447, 1448, 1448, 1449, 1455, 1450, 1451, 1451, 1452, 1452, - 1444, 1457, 1445, 1455, 1458, 1458, 1459, 1460, 1462, 1461, - 1463, 1463, 1464, 1449, 1460, 1465, 1447, 1450, 1461, 1467, - 1468, 1459, 1457, 1469, 1467, 1470, 1468, 1471, 1476, 1472, - 1478, 1465, 1470, 1471, 1462, 1472, 1473, 1473, 1464, 1474, - 1475, 1477, 1478, 1469, 1474, 1480, 1481, 1479, 1476, 1475, - 1479, 1482, 1482, 1483, 1484, 1485, 1488, 1486, 1489, 1483, - 1477, 1486, 1491, 1480, 1492, 1493, 1499, 1494, 1492, 1500, - 1485, 1493, 1481, 1489, 1484, 1488, 1494, 1486, 1495, 1495, + 1437, 1437, 1437, 1436, 1438, 1440, 1441, 1437, 1432, 1443, + 1444, 1445, 1446, 1445, 1443, 1443, 1447, 1450, 1439, 1448, + 1449, 1451, 1453, 1446, 1444, 1448, 1441, 1452, 1452, 1449, + 1455, 1447, 1454, 1454, 1456, 1457, 1457, 1450, 1458, 1458, + 1461, 1463, 1451, 1464, 1464, 1465, 1466, 1468, 1453, 1461, + 1455, 1470, 1467, 1466, 1469, 1469, 1456, 1474, 1471, 1473, + 1465, 1467, 1463, 1474, 1473, 1475, 1477, 1482, 1476, 1483, + 1478, 1481, 1477, 1468, 1471, 1476, 1478, 1470, 1479, 1479, + 1481, 1480, 1484, 1486, 1487, 1475, 1480, 1482, 1483, 1485, + 1488, 1488, 1485, 1489, 1484, 1490, 1491, 1494, 1492, 1489, - 1496, 1491, 1497, 1500, 1496, 1498, 1498, 1499, 1501, 1502, - 1503, 1504, 1504, 1497, 1506, 1505, 1503, 1508, 1497, 1505, - 1507, 1507, 1508, 1508, 1511, 1506, 1509, 1510, 1501, 1502, - 1506, 1512, 1509, 1510, 1513, 1515, 1517, 1516, 1518, 1519, - 1513, 1516, 1520, 1512, 1522, 1519, 1521, 1515, 1517, 1524, - 1511, 1525, 1521, 1526, 1528, 1532, 1522, 1528, 1526, 1529, - 1529, 1524, 0, 1518, 1520, 1530, 1530, 1531, 1531, 1535, - 1525, 1533, 1534, 1536, 1535, 1532, 1537, 1533, 1534, 1536, - 1541, 1539, 1542, 1541, 1544, 1537, 1539, 1545, 1546, 1547, - 1547, 1548, 1549, 1546, 1542, 1552, 1544, 1549, 1550, 1545, + 1495, 1486, 1492, 1498, 1499, 1496, 1500, 1501, 1499, 1506, + 1487, 1491, 1500, 1502, 1502, 1490, 1501, 1494, 1492, 1495, + 1496, 1503, 1498, 1504, 1507, 1503, 1505, 1505, 1508, 1509, + 1506, 1510, 1511, 1511, 1504, 1513, 1512, 1510, 1507, 1504, + 1512, 1514, 1514, 1518, 1516, 1519, 1513, 1515, 1508, 1509, + 1516, 1513, 1515, 1515, 1517, 1520, 1522, 1519, 1523, 1524, + 1517, 1520, 1523, 1525, 1526, 1527, 1528, 1529, 1522, 1518, + 1526, 1524, 1528, 1531, 1532, 1533, 1536, 1536, 1535, 1529, + 1533, 1535, 1537, 1537, 1539, 1531, 1540, 1527, 1525, 1538, + 1538, 1541, 1540, 1532, 1542, 1543, 1544, 1541, 1546, 1542, - 1548, 1551, 1551, 1550, 1553, 1554, 1555, 1556, 1559, 1557, - 1558, 1556, 1562, 1553, 1557, 1552, 1558, 1561, 1561, 1563, - 1565, 1566, 1559, 1554, 1564, 1555, 1569, 1569, 1563, 1561, - 1562, 1571, 1565, 1564, 1566, 1572, 1575, 1574, 1576, 1577, - 1578, 1578, 1584, 1579, 1576, 1579, 1581, 1571, 1580, 1580, - 1575, 1572, 1574, 1583, 1581, 1586, 1577, 1585, 1585, 1587, - 1583, 1588, 1584, 1589, 1586, 1590, 1591, 1592, 1593, 1595, - 1598, 1596, 0, 1588, 1593, 1589, 1599, 1590, 1597, 1597, - 1587, 1600, 1592, 1596, 1600, 1601, 1602, 1593, 1598, 1595, - 1601, 1606, 1591, 1604, 1607, 1605, 1599, 1605, 1604, 1607, + 1549, 1543, 1551, 1546, 1539, 1544, 1548, 1552, 1553, 1548, + 1554, 1554, 1549, 1553, 1551, 1555, 1556, 1557, 1559, 1552, + 1560, 1556, 1557, 1561, 1555, 1558, 1558, 1562, 1563, 1560, + 1564, 1565, 1563, 1566, 1569, 1564, 1570, 1565, 1559, 1568, + 1568, 1561, 1572, 1573, 1571, 1570, 1562, 1566, 1576, 1576, + 1578, 1568, 1569, 1571, 1572, 1579, 1573, 1581, 1583, 1582, + 1584, 1585, 1585, 1586, 1583, 1586, 1578, 1587, 1587, 1590, + 1588, 1579, 1581, 1582, 1591, 1593, 1590, 1584, 1588, 1592, + 1592, 1594, 1598, 1595, 1593, 1596, 1597, 1600, 1599, 1602, + 1604, 1604, 1603, 1600, 1591, 1595, 1605, 1596, 1597, 1606, - 1608, 1610, 1611, 1613, 1611, 1615, 1602, 1608, 1616, 1606, - 1610, 1614, 1614, 1616, 1617, 1618, 1617, 1613, 1619, 1620, - 1618, 1621, 1622, 1619, 1623, 1624, 1625, 1627, 1622, 1623, - 1628, 1615, 1629, 1629, 1625, 1630, 1630, 1620, 1624, 1631, - 1632, 1621, 1633, 1636, 1628, 1634, 1627, 1635, 1633, 1635, - 1634, 1636, 1637, 1637, 1631, 1638, 1639, 1639, 1643, 1636, - 1632, 1640, 1640, 1641, 1642, 1645, 1642, 1638, 1644, 1644, - 1646, 1648, 1641, 1649, 1645, 1641, 1650, 1652, 1649, 1643, - 1653, 1650, 1646, 1648, 1654, 1655, 1658, 1659, 1656, 1660, - 1652, 1662, 1659, 1664, 1660, 1665, 1666, 1662, 1658, 1664, + 1608, 1609, 1594, 1599, 1603, 1608, 1600, 1607, 1598, 1602, + 1607, 1611, 1613, 1612, 1605, 1612, 1611, 1614, 1615, 1606, + 1617, 1609, 1614, 1620, 1618, 1615, 1618, 1621, 1621, 1617, + 1613, 1622, 1624, 1623, 1624, 1625, 1626, 1620, 1623, 1628, + 1625, 1626, 1627, 1629, 1632, 1630, 1634, 0, 1631, 1629, + 1630, 1638, 1632, 1635, 1636, 1636, 1639, 1622, 1640, 1628, + 1627, 1631, 1637, 1637, 1640, 1634, 1638, 1635, 1641, 1642, + 1643, 1642, 1645, 1641, 1644, 1644, 1639, 1651, 1643, 1646, + 1646, 1647, 1647, 1648, 1645, 1649, 1643, 1650, 1654, 1650, + 1652, 1652, 1648, 1653, 1649, 1656, 1657, 1649, 1651, 1658, - 1653, 1667, 1654, 1655, 1656, 1668, 1669, 1669, 1670, 1672, - 1662, 1666, 1671, 1671, 1668, 1673, 1674, 1670, 1665, 1673, - 1675, 1674, 1681, 0, 1676, 1677, 1667, 1680, 1672, 1676, - 1676, 1677, 1678, 1675, 1679, 1680, 1686, 1679, 1678, 1684, - 1684, 1689, 1681, 1685, 1685, 1686, 1687, 1687, 1688, 1688, - 1690, 1691, 1698, 1689, 1692, 1693, 1693, 1691, 1685, 1692, - 1694, 1695, 1697, 1701, 1703, 1694, 1697, 1695, 1690, 1685, - 1699, 1702, 1698, 1705, 1699, 1704, 1702, 1706, 1705, 1709, - 1707, 1708, 1708, 1709, 1710, 1712, 1711, 1703, 1701, 1713, - 1704, 1711, 1714, 1715, 1715, 1706, 1707, 1714, 1717, 1710, + 1654, 1657, 1653, 1660, 1658, 1661, 1662, 1656, 1663, 1666, + 1667, 1664, 1668, 1670, 1672, 1667, 1660, 1668, 1673, 1670, + 1672, 1666, 1674, 1675, 1662, 1661, 1663, 1664, 1680, 1676, + 1677, 1677, 1670, 1678, 1679, 1679, 1681, 1674, 1676, 1682, + 1681, 1673, 1678, 1683, 1682, 1684, 1685, 1680, 1675, 1686, + 1684, 1684, 1685, 1688, 1687, 1686, 1683, 1687, 1689, 1692, + 1692, 1688, 1693, 1693, 1694, 1695, 1695, 1696, 1696, 1697, + 1699, 1698, 1706, 1694, 1700, 1702, 1699, 1693, 1689, 1700, + 1702, 1697, 1701, 1701, 1703, 1709, 1711, 1705, 1693, 1698, + 1703, 1705, 1706, 1707, 1710, 1713, 1712, 1707, 1714, 1710, - 1718, 1719, 1720, 1721, 1722, 1726, 1723, 1724, 1713, 1727, - 1727, 1712, 1728, 0, 1729, 1728, 1730, 1717, 1723, 1718, - 1726, 1731, 1721, 0, 1719, 1722, 1720, 1729, 1724, 1735, - 1730, 1732, 1732, 1736, 1731, 1733, 1733, 1734, 1734, 1737, - 1737, 1738, 1739, 1739, 1735, 1743, 1736, 1740, 1744, 1742, - 1738, 1745, 1740, 1738, 1742, 1746, 1746, 1747, 1747, 1748, - 1749, 1749, 1750, 1745, 1754, 1743, 1751, 1751, 1744, 1752, - 1752, 1753, 1756, 1757, 1757, 1758, 1765, 1756, 1748, 1760, - 1750, 1759, 1759, 1754, 1761, 1753, 1762, 1763, 1763, 1762, - 1761, 1764, 1764, 1766, 1758, 1765, 1767, 1760, 1768, 1768, + 1713, 1715, 1716, 1716, 1717, 1718, 1720, 1719, 1717, 1711, + 1709, 1712, 1719, 1722, 1721, 1725, 1714, 1715, 1722, 1726, + 1718, 1723, 1723, 1727, 1728, 1729, 1730, 1731, 1732, 1737, + 1734, 0, 1720, 1721, 1725, 1735, 1735, 1736, 1726, 1731, + 1736, 1738, 1737, 1739, 1729, 1734, 1727, 1730, 1728, 1732, + 1740, 1740, 1741, 1741, 1743, 1738, 1739, 1742, 1742, 1744, + 1745, 1745, 1746, 1747, 1747, 1748, 1751, 1752, 1750, 1743, + 1748, 1746, 1744, 1750, 1746, 1756, 1753, 1754, 1754, 1755, + 1755, 1757, 1757, 1758, 1759, 1759, 1751, 1752, 1753, 1760, + 1760, 1761, 1762, 1764, 1756, 1765, 1765, 1766, 1764, 1767, - 1770, 1771, 1772, 1763, 1775, 1773, 1774, 1774, 1766, 1773, - 1776, 1777, 1779, 1779, 1780, 1767, 1782, 1772, 1783, 1783, - 1770, 1781, 1784, 1775, 1771, 1776, 1777, 1785, 1781, 1785, - 1788, 1784, 1787, 1789, 1780, 1788, 1790, 1791, 1789, 1792, - 1793, 1794, 1782, 1795, 1787, 1793, 1794, 1796, 1795, 1797, - 1791, 1798, 1799, 1808, 1797, 1800, 1804, 1801, 1802, 1803, - 1792, 1790, 1796, 1805, 1800, 1799, 1801, 1802, 1803, 1805, - 1804, 1806, 1810, 1808, 1812, 1806, 1798, 1811, 1811, 1814, - 1812, 1810, 1813, 1813, 1816, 1820, 1817, 1818, 1818, 1819, - 1823, 1813, 1824, 1822, 1820, 1827, 1825, 1829, 1827, 1814, + 1767, 1758, 1768, 1769, 1770, 1761, 1773, 1770, 1774, 1769, + 1775, 1762, 1771, 1771, 1772, 1772, 1766, 1776, 1776, 1778, + 1768, 1779, 1780, 1774, 1783, 1773, 1781, 1784, 1771, 1775, + 1781, 1782, 1782, 1785, 1787, 1787, 1788, 1780, 1789, 1778, + 1790, 1791, 1784, 1783, 1779, 1789, 1792, 1792, 1785, 1793, + 1794, 1796, 1794, 1799, 1790, 1797, 1788, 1798, 1793, 1800, + 1797, 1801, 1798, 1796, 1802, 1803, 1804, 1791, 1805, 1802, + 1803, 1804, 1800, 1807, 1806, 1808, 1809, 1810, 1799, 1806, + 1811, 1812, 1801, 1805, 1817, 1809, 1810, 1813, 1808, 1811, + 1812, 1814, 1815, 1819, 1820, 1820, 1815, 1814, 1807, 1821, - 1816, 1814, 1817, 1830, 1819, 1822, 1823, 1824, 1825, 1828, - 1831, 1831, 1833, 1833, 1828, 1830, 1834, 1829, 1835, 1834, - 1836, 1837, 1839, 1835, 1838, 1838, 1836, 1837, 1840, 1840, - 1841, 1842, 1843, 1844, 1844, 1846, 1839, 1847, 1850, 1846, - 1847, 1849, 1841, 1848, 1848, 1842, 1849, 1853, 1851, 1854, - 1855, 1843, 1851, 1856, 1857, 1858, 1859, 1856, 1850, 1860, - 1858, 1861, 1859, 1864, 1855, 1860, 1863, 1853, 1864, 1854, - 1865, 1867, 1866, 1867, 1857, 1870, 1865, 1871, 1871, 1861, - 1866, 1872, 1863, 1873, 1872, 1874, 1874, 1876, 1877, 1870, - 1878, 1876, 1879, 1879, 1877, 1880, 1883, 1883, 1885, 1896, + 1823, 1813, 1819, 1825, 1817, 1821, 1822, 1822, 1826, 1827, + 1827, 1828, 1829, 1831, 1832, 1822, 1833, 1834, 1837, 1825, + 1823, 1829, 1823, 1837, 1826, 1831, 1828, 1838, 1839, 1834, + 1832, 1833, 1836, 1840, 1840, 1836, 1842, 1842, 1843, 1844, + 1839, 1843, 1845, 1846, 1844, 1847, 1847, 1838, 1845, 1846, + 1848, 1849, 1849, 1850, 1851, 1852, 1853, 1853, 1855, 1859, + 1856, 1862, 1855, 1856, 1848, 1850, 1857, 1857, 1851, 1860, + 1858, 1863, 1864, 1860, 1852, 1858, 1865, 1866, 1867, 1859, + 1865, 1862, 1868, 1867, 1869, 1870, 1864, 1873, 1868, 1872, + 1869, 1863, 1873, 1874, 1875, 1879, 1876, 1866, 1876, 1874, - 1888, 1889, 1878, 1897, 1880, 1888, 1889, 1890, 1890, 1873, - 1892, 1892, 1894, 1895, 1895, 1896, 1885, 1898, 1894, 1900, - 1901, 1904, 1898, 1902, 1902, 1897, 1906, 1905, 1907, 1910, - 1904, 1911, 1901, 1905, 1909, 1909, 1913, 1913, 1900, 1914, - 1914, 1915, 1917, 1907, 1906, 1916, 1915, 1916, 1910, 1911, - 1918, 1925, 1919, 1920, 1920, 1924, 1917, 1919, 1921, 1921, - 1922, 1922, 1923, 1923, 1918, 1926, 1926, 1924, 1928, 1925, - 1927, 1927, 1929, 1929, 1930, 1930, 1931, 1931, 1932, 1933, - 1928, 1934, 1935, 1936, 1937, 1939, 1933, 1940, 1936, 1941, - 1932, 1938, 1938, 1934, 1939, 1942, 1943, 1944, 1945, 1945, + 1880, 1880, 1875, 1870, 1881, 1872, 1882, 1881, 1885, 1879, + 1883, 1883, 1885, 1886, 1887, 1888, 1888, 1894, 1889, 1886, + 1892, 1892, 1906, 1897, 1898, 1905, 1887, 1889, 1897, 1898, + 1899, 1899, 1882, 1901, 1901, 1894, 1903, 1904, 1904, 1909, + 1907, 1905, 1903, 1910, 1906, 1907, 1911, 1911, 1913, 1915, + 1914, 1916, 1918, 1918, 1919, 1910, 1914, 1913, 1909, 1920, + 1922, 1922, 1923, 1923, 1924, 1925, 1916, 1915, 1927, 1924, + 1925, 1928, 1926, 1919, 1926, 1929, 1935, 1920, 1930, 1930, + 1929, 1934, 1927, 1931, 1931, 1928, 1932, 1932, 1933, 1933, + 1936, 1936, 1938, 1934, 1935, 1937, 1937, 1939, 1939, 1940, - 1947, 1946, 1935, 1948, 1937, 1950, 1951, 1952, 1942, 1941, - 1946, 1944, 1954, 1940, 1953, 1947, 1955, 1953, 1948, 1956, - 1943, 1955, 1963, 1950, 1956, 1965, 1954, 1967, 1951, 1969, - 1952, 1957, 1957, 1958, 1958, 1959, 1959, 1962, 1962, 1964, - 1963, 1968, 1970, 1971, 1965, 1972, 1973, 1967, 1974, 1974, - 1964, 1969, 1971, 1976, 1976, 1978, 1978, 1977, 1979, 1968, - 1980, 1981, 1970, 1983, 1973, 1972, 1977, 1982, 1981, 1984, - 1985, 1986, 1987, 1987, 1988, 1988, 1979, 1989, 1980, 1990, - 1991, 1983, 1982, 1989, 1992, 1994, 1985, 1984, 1993, 1995, - 1986, 1996, 1997, 1993, 1997, 1991, 1996, 1990, 1998, 1998, + 1940, 1941, 1941, 1942, 1938, 1943, 1944, 1945, 1946, 1947, + 1948, 1948, 1943, 1946, 1949, 1942, 1950, 1951, 1944, 1952, + 1953, 1954, 1956, 1949, 1955, 1955, 1957, 1945, 1958, 1947, + 1960, 1956, 1952, 1961, 1962, 1954, 1963, 1951, 1964, 1963, + 1965, 1957, 1950, 1958, 1953, 1965, 1966, 1973, 1960, 1967, + 1967, 1966, 1964, 1968, 1968, 1961, 1974, 1962, 1969, 1969, + 1972, 1972, 1975, 1977, 1978, 1973, 1979, 1974, 1981, 1980, + 1982, 1984, 1984, 1983, 1986, 1986, 1987, 1981, 1988, 1988, + 1989, 1975, 1978, 1977, 1990, 1987, 1991, 1993, 1979, 1980, + 1982, 1983, 1992, 1991, 1994, 1995, 1996, 2002, 1989, 1997, - 1999, 2002, 1999, 1992, 2004, 1994, 2000, 2000, 2005, 1995, - 2006, 2009, 2010, 2004, 2013, 2010, 2011, 2011, 2012, 2015, - 2002, 2014, 2014, 2015, 2017, 2020, 2018, 2022, 2005, 2006, - 2018, 2009, 2013, 2012, 2019, 2019, 2023, 2036, 2020, 2017, - 2024, 2024, 2026, 2026, 2027, 2028, 2028, 2022, 2029, 2030, - 2030, 2035, 2035, 2029, 2037, 2038, 2023, 2039, 2044, 2036, - 2043, 2047, 2046, 2027, 2045, 2043, 2039, 2037, 2038, 2045, - 2046, 2048, 2044, 2050, 2053, 2058, 2051, 2052, 2059, 2048, - 2047, 2051, 2052, 2054, 2054, 2055, 2055, 2056, 2050, 2053, - 2057, 2060, 2063, 2058, 2056, 2057, 2059, 2060, 2061, 2062, + 1997, 2000, 1990, 1998, 1998, 1993, 2001, 1992, 1999, 2004, + 2005, 1995, 1994, 2003, 1999, 1996, 2002, 2006, 2003, 2000, + 2012, 2001, 2006, 2007, 2015, 2007, 2008, 2008, 2014, 2004, + 2005, 2009, 2016, 2009, 2010, 2010, 2019, 2014, 2020, 2012, + 2022, 2020, 2021, 2021, 2015, 2023, 2024, 2024, 2025, 2027, + 2028, 2016, 2025, 2030, 2028, 2022, 2019, 2029, 2029, 2032, + 2033, 2034, 2034, 2023, 2027, 2036, 2030, 2037, 2037, 2038, + 2039, 2039, 2047, 2040, 2041, 2041, 2048, 2036, 2040, 2032, + 2033, 2046, 2046, 2049, 2050, 2054, 2055, 2056, 2038, 2048, + 2054, 2057, 2056, 2050, 2047, 2058, 2049, 2059, 2061, 2057, - 2062, 2064, 2069, 2061, 2065, 2065, 2064, 2063, 2066, 2066, - 2070, 2071, 0, 2070, 2072, 2069, 2071, 2071, 2073, 2072, - 2074, 2075, 2076, 2073, 2077, 2075, 2074, 2076, 2078, 2079, - 2080, 2083, 2081, 2077, 2083, 2080, 2085, 2079, 2087, 2088, - 2086, 2085, 2089, 2078, 2081, 2086, 2090, 2091, 2091, 2092, - 2095, 2089, 2088, 2096, 2100, 2090, 2087, 2097, 2092, 2098, - 2098, 2099, 2101, 2100, 2102, 2102, 2103, 2105, 2107, 2095, - 2108, 2111, 2109, 2096, 2108, 2128, 2097, 2101, 2109, 2111, - 2099, 2112, 2105, 2110, 2110, 2103, 2112, 2114, 2107, 2115, - 2117, 2118, 2119, 2130, 2117, 2128, 2114, 2121, 2121, 2122, + 2055, 2062, 2063, 2064, 2069, 2059, 2062, 2063, 2065, 2065, + 2066, 2066, 2067, 2061, 2058, 2068, 2070, 2071, 2064, 2067, + 2068, 2072, 2069, 2071, 2073, 2073, 2072, 2074, 2075, 2076, + 2076, 2077, 2077, 2075, 2070, 2080, 2081, 2089, 2082, 2081, + 2083, 2084, 2074, 2082, 2082, 2083, 2084, 2085, 2080, 2088, + 2086, 2087, 2089, 2085, 2086, 2090, 2087, 2091, 2088, 2092, + 2096, 2094, 2091, 2090, 2094, 2096, 2098, 2097, 2099, 2100, + 2101, 2092, 2097, 2102, 2102, 2106, 2103, 2107, 2100, 2101, + 2108, 2099, 2109, 2109, 2098, 2103, 2110, 2111, 2112, 2113, + 2113, 2114, 2116, 2118, 2106, 2120, 2111, 2107, 2119, 2108, - 2122, 2158, 2115, 2123, 2123, 2118, 2158, 2119, 2126, 2126, - 2131, 2131, 2138, 2130, 2132, 2132, 2133, 2133, 2134, 2135, - 2135, 2134, 2136, 2136, 2137, 2137, 2140, 2138, 2139, 2139, - 2142, 2141, 2143, 2143, 2144, 2147, 2142, 2148, 2144, 2149, - 2147, 2147, 2150, 2151, 2140, 2141, 2152, 2153, 2160, 2151, - 2154, 2160, 2152, 2159, 2154, 2155, 2155, 2162, 2164, 2149, - 2148, 2159, 2150, 2163, 2165, 2166, 2163, 2167, 0, 2165, - 2168, 2170, 2153, 2169, 2169, 2164, 2164, 2171, 2172, 2173, - 2173, 2179, 2162, 2166, 2168, 2171, 2177, 2167, 2174, 2174, - 2170, 2175, 2175, 2176, 2176, 2178, 2180, 2172, 2181, 2182, + 0, 2120, 2119, 2112, 2122, 2110, 2123, 2116, 2121, 2121, + 2114, 2123, 2122, 2118, 2125, 2126, 2128, 2129, 2130, 2140, + 2128, 2132, 2132, 2125, 2133, 2133, 2134, 2134, 2126, 2136, + 2136, 2129, 2142, 2130, 2138, 2138, 2143, 2143, 2150, 2140, + 2144, 2144, 2145, 2145, 2146, 2147, 2147, 2146, 2148, 2148, + 2149, 2149, 2142, 2150, 2151, 2151, 2152, 2153, 2154, 2155, + 2155, 2156, 2159, 2160, 2154, 2156, 2163, 2159, 2159, 2161, + 2162, 2153, 2163, 2164, 2152, 2165, 2166, 2167, 2167, 2164, + 2166, 2172, 2170, 2171, 2172, 2174, 2160, 2170, 2176, 2161, + 2162, 2171, 2175, 2177, 2178, 2175, 2179, 2180, 2177, 2182, - 2178, 2179, 2177, 2183, 2185, 2185, 2186, 2181, 2187, 2186, - 2189, 2189, 2192, 2190, 2191, 2191, 2193, 2192, 2195, 2182, - 2190, 2198, 2180, 2183, 2199, 2193, 2187, 2196, 2196, 2197, - 2198, 2201, 2200, 2197, 2202, 2208, 2195, 2200, 2200, 2199, - 2206, 2206, 2207, 2202, 2201, 2211, 2213, 2208, 2215, 2217, - 2219, 2207, 2218, 2218, 2217, 2221, 2224, 2224, 2213, 2219, - 2221, 2222, 2222, 2225, 2225, 2222, 2226, 2226, 2227, 2215, - 2211, 2228, 2232, 2229, 2230, 2233, 2234, 2227, 2232, 2230, - 2233, 2234, 2235, 2235, 2236, 2237, 2239, 2241, 2238, 2240, - 2244, 2228, 2229, 2238, 2247, 2240, 2242, 2242, 2245, 2246, + 2165, 2181, 2181, 2184, 2192, 2176, 2176, 2183, 2185, 2185, + 2174, 2180, 2178, 2186, 2186, 2183, 2179, 2189, 2182, 2187, + 2187, 2190, 2184, 2188, 2188, 2191, 2190, 2193, 2194, 2195, + 2192, 2197, 2197, 2189, 2198, 2199, 2193, 2198, 2201, 2201, + 2202, 2203, 2203, 2205, 2207, 2191, 2204, 2202, 2194, 2195, + 2210, 2204, 2205, 2199, 2208, 2208, 2209, 2211, 2212, 2210, + 2209, 2213, 2207, 2212, 2212, 2221, 2214, 2219, 2219, 2220, + 2224, 2226, 2211, 2228, 2213, 2214, 2230, 2221, 2220, 2231, + 2231, 2230, 2232, 2226, 2234, 2241, 2235, 2235, 2242, 2234, + 2235, 2232, 2237, 2237, 2228, 2224, 2238, 2238, 2239, 2239, - 2246, 2248, 2236, 2251, 2239, 2252, 2237, 2247, 2250, 2244, - 2253, 2249, 2241, 2245, 2248, 2249, 2254, 2250, 2253, 2251, - 2255, 2254, 2256, 2256, 2252, 2257, 2259, 2259, 2260, 2260, - 2262, 2264, 2264, 2265, 2266, 2268, 2268, 2269, 2270, 2266, - 2271, 2273, 2273, 2276, 2257, 2281, 2255, 2279, 2274, 2265, - 2280, 2262, 2277, 2277, 2278, 2278, 2279, 2269, 2283, 2271, - 2282, 2270, 2274, 2290, 2281, 2276, 2284, 2284, 2285, 2291, - 2280, 2285, 2282, 2286, 2286, 2290, 2292, 2295, 2283, 2293, - 2293, 2294, 2292, 2295, 2294, 2296, 2298, 2299, 2300, 2291, - 2301, 2298, 2299, 2302, 2303, 2303, 2301, 2305, 2305, 2306, + 2240, 2243, 2245, 2248, 2248, 2241, 2243, 2242, 2245, 2240, + 2246, 2247, 2249, 2250, 2251, 2246, 2247, 2252, 2253, 2251, + 2254, 2255, 2255, 2257, 2253, 2258, 2259, 2259, 2260, 2262, + 2249, 2261, 2264, 2262, 2250, 2252, 2265, 2263, 2267, 2266, + 2258, 2260, 2257, 2267, 2261, 2254, 2263, 2266, 2264, 2268, + 2269, 2269, 2270, 2272, 2272, 2265, 2273, 2273, 2275, 2277, + 2277, 2278, 2279, 2281, 2281, 2282, 2283, 2279, 2284, 2286, + 2286, 2270, 2287, 2289, 2293, 2268, 2295, 2278, 2294, 2275, + 2290, 2290, 2291, 2291, 2292, 2282, 2287, 2284, 2295, 2283, + 2296, 2297, 2297, 2292, 2293, 2289, 2298, 2294, 2304, 2298, - 2308, 2308, 2311, 2296, 2309, 2309, 2323, 2300, 2310, 2312, - 2302, 2302, 2316, 2310, 2312, 2321, 2311, 2316, 2306, 2313, - 2313, 2314, 2314, 2315, 2315, 2318, 2318, 2327, 2323, 2324, - 2324, 2326, 2326, 2328, 2321, 2329, 2330, 2330, 2331, 2335, - 2334, 2327, 2336, 2331, 2329, 2335, 2337, 2337, 2340, 2341, - 2336, 2338, 2342, 2328, 2334, 2343, 2338, 2342, 2344, 2347, - 2348, 2349, 2346, 2351, 2344, 2350, 2353, 2343, 2340, 2341, - 2346, 2352, 2354, 2357, 2360, 2360, 0, 2354, 2347, 2351, - 2348, 2349, 2362, 2350, 2361, 2361, 2362, 2353, 2352, 2352, - 2366, 2366, 2373, 2357, 2368, 2368, 2369, 2369, 2370, 2369, + 2299, 2299, 2303, 2305, 2306, 2306, 2308, 2309, 2307, 2305, + 2296, 2307, 2308, 2313, 2303, 2311, 2312, 2314, 2304, 2315, + 2311, 2312, 2319, 2314, 2324, 2309, 2316, 2316, 2318, 2318, + 2321, 2321, 2313, 2322, 2322, 2323, 2315, 2315, 2324, 2325, + 2323, 2319, 2326, 2326, 2325, 2327, 2327, 2328, 2328, 2329, + 2331, 2331, 2334, 2336, 2329, 2337, 2337, 2339, 2339, 2340, + 2341, 2342, 2343, 2343, 2344, 2347, 2348, 2353, 2349, 2344, + 2342, 2334, 2348, 2340, 2354, 2336, 2349, 2350, 2350, 2347, + 2341, 2351, 2359, 2355, 2356, 2357, 2351, 2353, 2355, 2360, + 2359, 2357, 2361, 2362, 2354, 2364, 2356, 2363, 2366, 2365, - 2372, 2372, 2370, 2374, 2376, 2376, 2377, 2378, 2379, 2381, - 2373, 2378, 2382, 2377, 2383, 2383, 2386, 2374, 2384, 2384, - 2388, 2382, 2391, 2379, 2385, 2385, 2392, 2381, 2387, 2388, - 2389, 2386, 2388, 2387, 2390, 2389, 2389, 2393, 2394, 2395, - 2390, 2392, 2396, 2394, 2395, 2397, 2397, 2391, 2400, 2400, - 2403, 2403, 2404, 2404, 2405, 2405, 2407, 2411, 2393, 2408, - 2408, 2396, 2410, 2410, 2412, 2407, 2413, 2413, 2414, 2415, - 2415, 2418, 2411, 2420, 2419, 2422, 2412, 2419, 2421, 2421, - 2425, 2424, 2426, 2414, 2424, 2427, 2425, 2428, 2430, 2418, - 2427, 2429, 2436, 2422, 2439, 2436, 2426, 2440, 2441, 2420, + 2367, 2370, 2373, 2373, 2400, 2367, 2374, 2374, 2360, 2400, + 2375, 2364, 2361, 2362, 2375, 2363, 2365, 2365, 2386, 2366, + 2387, 2370, 2379, 2379, 2381, 2381, 2382, 2382, 2383, 2382, + 2385, 2385, 2383, 2390, 2387, 2391, 2386, 2389, 2389, 2391, + 2390, 2392, 2394, 2395, 2396, 2396, 2397, 2397, 2398, 2398, + 2399, 2403, 2395, 2402, 2401, 2404, 2392, 2403, 2402, 2402, + 2394, 2405, 2406, 2401, 2407, 2399, 2401, 2408, 2409, 2407, + 2410, 2410, 2408, 2413, 2413, 0, 2405, 2416, 2416, 2420, + 2404, 2417, 2417, 2406, 2418, 2418, 2424, 2409, 2420, 2421, + 2421, 2423, 2423, 2425, 2426, 2426, 2427, 2428, 2428, 2431, - 2442, 2440, 2444, 2446, 2430, 2445, 2428, 2448, 2446, 2429, - 2447, 2450, 2447, 2451, 2442, 2452, 2445, 2439, 2441, 2449, - 2449, 2453, 2448, 2454, 2450, 2444, 2455, 2456, 2457, 2458, - 2458, 2459, 2451, 2452, 2460, 2460, 2464, 2453, 2461, 2461, - 2459, 2455, 2457, 2462, 2462, 2463, 2463, 2456, 2454, 2465, - 2466, 2467, 2468, 2466, 2469, 2464, 2467, 2468, 2470, 2471, - 2472, 2473, 2473, 2474, 2483, 2471, 2476, 2478, 2484, 2465, - 2481, 2481, 2483, 2470, 2472, 2482, 2482, 2485, 2486, 2469, - 2487, 2476, 2474, 2485, 2486, 2478, 2488, 2484, 2489, 2491, - 2492, 2493, 2495, 2496, 2487, 2493, 2497, 2498, 2496, 2488, + 2432, 2424, 2433, 2432, 2435, 2425, 2434, 2434, 2438, 2437, + 2439, 2427, 2437, 2440, 2438, 2441, 2443, 2431, 2440, 2442, + 2449, 2452, 2435, 2449, 2439, 2453, 2454, 2455, 2433, 2453, + 2457, 2458, 2443, 2459, 2441, 2461, 2463, 2442, 2459, 2462, + 2462, 2455, 2458, 2460, 2452, 2460, 2454, 2464, 2466, 2463, + 2461, 2465, 2467, 2457, 2469, 2468, 2472, 2470, 2471, 2471, + 2473, 2473, 2474, 2474, 2466, 2472, 2464, 2475, 2475, 2465, + 2468, 2470, 2476, 2476, 2469, 2477, 2478, 2467, 2479, 2480, + 2481, 2479, 2482, 2483, 2480, 2481, 2484, 2485, 2486, 2486, + 2487, 2489, 2484, 2491, 2477, 2497, 2478, 2496, 2483, 2494, - 2499, 2500, 2504, 2501, 2492, 2503, 2502, 2489, 2501, 2491, - 2498, 2502, 2495, 2499, 2506, 2497, 2505, 2505, 2507, 2506, - 2500, 2504, 2509, 2503, 2507, 2508, 2508, 2509, 2510, 2511, - 2512, 2513, 2517, 2510, 2511, 2514, 2517, 2513, 2515, 2515, - 2514, 2518, 2520, 2519, 2521, 2522, 2523, 2525, 2525, 2512, - 2519, 2522, 2529, 2524, 2527, 2527, 2530, 2529, 2528, 2531, - 2518, 2520, 2537, 2521, 2532, 2523, 2524, 2528, 2533, 2533, - 2528, 2534, 2535, 2538, 2538, 2530, 2534, 2532, 2531, 2539, - 2540, 2540, 2541, 2541, 2542, 2535, 2543, 2544, 2537, 2542, - 2545, 2545, 2546, 2543, 2547, 2549, 2547, 2546, 2539, 2548, + 2494, 2485, 2495, 2495, 2498, 2496, 2489, 2482, 2500, 2487, + 2498, 2491, 2499, 2501, 2497, 2502, 2504, 2505, 2499, 2506, + 2508, 2516, 2500, 2506, 2509, 2510, 2501, 2513, 2511, 2509, + 2512, 2505, 2514, 2515, 2502, 2517, 2504, 2514, 2515, 2516, + 2508, 2511, 0, 2512, 2510, 2519, 2513, 2518, 2518, 2520, + 2519, 2521, 2521, 2522, 2517, 2520, 2523, 2524, 2522, 2525, + 2526, 2523, 2524, 2527, 2528, 2528, 2526, 2530, 2527, 2531, + 2532, 2530, 2533, 2534, 2535, 2536, 2537, 2532, 2525, 2550, + 2535, 2538, 2538, 2540, 2540, 2542, 2541, 2543, 2531, 2537, + 2542, 2533, 2534, 2544, 2536, 2541, 2545, 2547, 2541, 2546, - 2548, 2550, 2549, 2551, 2552, 2553, 2544, 2556, 2550, 2552, - 2555, 2555, 2558, 2559, 2560, 2561, 2565, 2558, 2559, 2562, - 2562, 2566, 2551, 0, 2553, 0, 2556, 2564, 2564, 2567, - 2567, 2568, 2568, 2560, 2561, 2565, 2569, 2571, 2571, 2573, - 2566, 2572, 2572, 2569, 2575, 2578, 2573, 2579, 2580, 2575, - 2578, 2581, 2581, 2582, 2582, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2579, 2580, 2586, 2586, - 2586, 2586, 2586, 2586, 2586, 2587, 2587, 2587, 2587, 2587, - 2587, 2587, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2589, - 2589, 2589, 2589, 2589, 2589, 2589, 2590, 2590, 2590, 2590, + 2546, 2548, 2547, 2551, 2551, 2550, 2543, 2552, 2555, 2545, + 2553, 2553, 2544, 2555, 2548, 2554, 2554, 2556, 2557, 2558, + 2558, 2560, 2559, 2560, 2556, 2562, 2552, 2559, 2561, 2561, + 2564, 2563, 2562, 2566, 2565, 2568, 2568, 2557, 2563, 2565, + 2569, 2571, 2572, 2573, 2574, 2578, 2571, 2572, 2579, 2564, + 2575, 2575, 2566, 2577, 2577, 2580, 2580, 2581, 2581, 2569, + 0, 2582, 2573, 2574, 2578, 2584, 2584, 2579, 2582, 2585, + 2585, 2586, 2588, 2592, 2591, 2593, 0, 2588, 2586, 2591, + 2594, 2594, 2595, 2595, 0, 0, 0, 0, 0, 0, + 0, 0, 2592, 0, 2593, 2599, 2599, 2599, 2599, 2599, - 2590, 2590, 2590, 2592, 2592, 0, 2592, 2592, 2592, 2592, - 2593, 2593, 0, 0, 0, 2593, 2593, 2594, 2594, 0, - 0, 2594, 0, 2594, 2595, 0, 0, 0, 0, 0, - 2595, 2596, 2596, 0, 0, 0, 2596, 2596, 2597, 0, - 0, 0, 0, 0, 2597, 2598, 2598, 0, 2598, 2598, - 2598, 2598, 2599, 2599, 0, 2599, 2599, 2599, 2599, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, - 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585 + 2599, 2599, 2600, 2600, 2600, 2600, 2600, 2600, 2600, 2601, + 2601, 2601, 2601, 2601, 2601, 2601, 2602, 2602, 2602, 2602, + 2602, 2602, 2602, 2603, 2603, 2603, 2603, 2603, 2603, 2603, + 2605, 2605, 0, 2605, 2605, 2605, 2605, 2606, 2606, 0, + 0, 0, 2606, 2606, 2607, 2607, 0, 0, 2607, 0, + 2607, 2608, 0, 0, 0, 0, 0, 2608, 2609, 2609, + 0, 0, 0, 2609, 2609, 2610, 0, 0, 0, 0, + 0, 2610, 2611, 2611, 0, 2611, 2611, 2611, 2611, 2612, + 2612, 0, 2612, 2612, 2612, 2612, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, + 2598, 2598, 2598, 2598, 2598, 2598, 2598 } ; static yy_state_type yy_last_accepting_state; @@ -2617,7 +2629,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2619 "<stdout>" +#line 2631 "<stdout>" #define INITIAL 0 #define quotedstring 1 @@ -2729,7 +2741,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - int n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -2742,7 +2754,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -2840,7 +2852,7 @@ YY_DECL { #line 206 "./util/configlexer.lex" -#line 2842 "<stdout>" +#line 2854 "<stdout>" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2873,13 +2885,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 >= 2586 ) + if ( yy_current_state >= 2599 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 5060 ); + while ( yy_base[yy_current_state] != 5087 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3554,607 +3566,612 @@ YY_RULE_SETUP case 130: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 131: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 132: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 133: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 134: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 135: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 136: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 137: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 138: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 139: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 140: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 141: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 142: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 143: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 144: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 145: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 146: YY_RULE_SETUP -#line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 355 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 147: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 148: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 149: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 150: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 151: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 152: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 153: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 154: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 155: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 156: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 157: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 158: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 159: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 160: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 161: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 162: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 163: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 164: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 165: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 166: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 167: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 168: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 169: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 170: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 171: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 172: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 173: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 174: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 175: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 176: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 177: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 178: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 179: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 180: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 181: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 182: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 183: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 184: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 185: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 186: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 187: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 188: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 189: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 190: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 191: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 192: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 193: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 194: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 195: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 196: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 197: YY_RULE_SETUP -#line 408 "./util/configlexer.lex" +#line 407 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 198: YY_RULE_SETUP -#line 410 "./util/configlexer.lex" +#line 409 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 199: YY_RULE_SETUP -#line 412 "./util/configlexer.lex" +#line 411 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 200: YY_RULE_SETUP -#line 414 "./util/configlexer.lex" +#line 413 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 201: YY_RULE_SETUP -#line 416 "./util/configlexer.lex" +#line 415 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 202: YY_RULE_SETUP -#line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 417 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 203: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 204: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 205: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 206: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 207: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 208: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 209: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 210: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 211: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 212: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 213: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 214: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT_PCT) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 215: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_LOW_RTT_PCT) } YY_BREAK case 216: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 217: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 218: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 219: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 220: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 221: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 222: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 223: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 224: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 225: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 226: YY_RULE_SETUP -#line 443 "./util/configlexer.lex" +#line 442 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 227: YY_RULE_SETUP -#line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 444 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 228: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 229: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 230: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 231: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 232: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 233: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 234: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 235: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 236: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 237: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 238: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 239: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 240: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 241: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 242: -/* rule 242 can match eol */ YY_RULE_SETUP #line 460 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 243: +/* rule 243 can match eol */ +YY_RULE_SETUP +#line 461 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 243: +case 244: YY_RULE_SETUP -#line 463 "./util/configlexer.lex" +#line 464 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 464 "./util/configlexer.lex" +#line 465 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 244: -YY_RULE_SETUP -#line 469 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 245: -/* rule 245 can match eol */ YY_RULE_SETUP #line 470 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 246: +/* rule 246 can match eol */ +YY_RULE_SETUP +#line 471 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 246: +case 247: YY_RULE_SETUP -#line 472 "./util/configlexer.lex" +#line 473 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4167,34 +4184,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 247: +case 248: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 485 "./util/configlexer.lex" +#line 486 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 248: -YY_RULE_SETUP -#line 490 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 249: -/* rule 249 can match eol */ YY_RULE_SETUP #line 491 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 250: +/* rule 250 can match eol */ +YY_RULE_SETUP +#line 492 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 250: +case 251: YY_RULE_SETUP -#line 493 "./util/configlexer.lex" +#line 494 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4207,38 +4224,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 251: +case 252: YY_RULE_SETUP -#line 505 "./util/configlexer.lex" +#line 506 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 507 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 252: -YY_RULE_SETUP -#line 511 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 253: -/* rule 253 can match eol */ YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 254: +/* rule 254 can match eol */ YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 255: YY_RULE_SETUP #line 514 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 256: +YY_RULE_SETUP +#line 515 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4246,27 +4263,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 519 "./util/configlexer.lex" +#line 520 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 256: -YY_RULE_SETUP -#line 523 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 257: -/* rule 257 can match eol */ YY_RULE_SETUP #line 524 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 258: +/* rule 258 can match eol */ +YY_RULE_SETUP +#line 525 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 258: +case 259: YY_RULE_SETUP -#line 526 "./util/configlexer.lex" +#line 527 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4276,7 +4293,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 532 "./util/configlexer.lex" +#line 533 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4288,33 +4305,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 259: +case 260: YY_RULE_SETUP -#line 543 "./util/configlexer.lex" +#line 544 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 260: +case 261: YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 261: +case 262: YY_RULE_SETUP -#line 551 "./util/configlexer.lex" +#line 552 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 262: +case 263: YY_RULE_SETUP -#line 555 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4316 "<stdout>" +#line 4333 "<stdout>" case YY_END_OF_BUFFER: { @@ -4457,7 +4474,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4486,7 +4503,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4522,7 +4539,7 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ @@ -4568,10 +4585,10 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } @@ -4605,7 +4622,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 >= 2586 ) + if ( yy_current_state >= 2599 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4633,11 +4650,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 >= 2586 ) + if ( yy_current_state >= 2599 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 2585); + yy_is_jam = (yy_current_state == 2598); return yy_is_jam ? 0 : yy_current_state; } @@ -4795,12 +4812,12 @@ static void yy_load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = size; + b->yy_buf_size = (yy_size_t)size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -4956,9 +4973,9 @@ static void yyensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -4987,7 +5004,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -5003,7 +5020,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; @@ -5044,10 +5061,10 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) _yybytes_len + 2; + n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -5086,7 +5103,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) do \ { \ /* Undo effects of setting up yytext. */ \ - yy_size_t yyless_macro_arg = (n); \ + int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ @@ -5103,7 +5120,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -5276,7 +5293,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 555 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 4b10d857..73dfe4bd 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -336,6 +336,7 @@ auto-trust-anchor-file{COLON} { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } trusted-keys-file{COLON} { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } trust-anchor{COLON} { YDVAR(1, VAR_TRUST_ANCHOR) } trust-anchor-signaling{COLON} { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +root-key-sentinel{COLON} { YDVAR(1, VAR_ROOT_KEY_SENTINEL) } val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } diff --git a/util/configparser.c b/util/configparser.c index 47c69be3..1de9421c 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -329,41 +329,42 @@ extern int yydebug; VAR_USE_SYSTEMD = 458, VAR_SHM_ENABLE = 459, VAR_SHM_KEY = 460, - VAR_DNSCRYPT = 461, - VAR_DNSCRYPT_ENABLE = 462, - VAR_DNSCRYPT_PORT = 463, - VAR_DNSCRYPT_PROVIDER = 464, - VAR_DNSCRYPT_SECRET_KEY = 465, - VAR_DNSCRYPT_PROVIDER_CERT = 466, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 467, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 468, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 469, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 470, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 471, - VAR_IPSECMOD_ENABLED = 472, - VAR_IPSECMOD_HOOK = 473, - VAR_IPSECMOD_IGNORE_BOGUS = 474, - VAR_IPSECMOD_MAX_TTL = 475, - VAR_IPSECMOD_WHITELIST = 476, - VAR_IPSECMOD_STRICT = 477, - VAR_CACHEDB = 478, - VAR_CACHEDB_BACKEND = 479, - VAR_CACHEDB_SECRETSEED = 480, - VAR_CACHEDB_REDISHOST = 481, - VAR_CACHEDB_REDISPORT = 482, - VAR_CACHEDB_REDISTIMEOUT = 483, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 484, - VAR_FOR_UPSTREAM = 485, - VAR_AUTH_ZONE = 486, - VAR_ZONEFILE = 487, - VAR_MASTER = 488, - VAR_URL = 489, - VAR_FOR_DOWNSTREAM = 490, - VAR_FALLBACK_ENABLED = 491, - VAR_ADDITIONAL_TLS_PORT = 492, - VAR_LOW_RTT = 493, - VAR_LOW_RTT_PCT = 494, - VAR_ALLOW_NOTIFY = 495 + VAR_ROOT_KEY_SENTINEL = 461, + VAR_DNSCRYPT = 462, + VAR_DNSCRYPT_ENABLE = 463, + VAR_DNSCRYPT_PORT = 464, + VAR_DNSCRYPT_PROVIDER = 465, + VAR_DNSCRYPT_SECRET_KEY = 466, + VAR_DNSCRYPT_PROVIDER_CERT = 467, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 468, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 469, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 470, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 471, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 472, + VAR_IPSECMOD_ENABLED = 473, + VAR_IPSECMOD_HOOK = 474, + VAR_IPSECMOD_IGNORE_BOGUS = 475, + VAR_IPSECMOD_MAX_TTL = 476, + VAR_IPSECMOD_WHITELIST = 477, + VAR_IPSECMOD_STRICT = 478, + VAR_CACHEDB = 479, + VAR_CACHEDB_BACKEND = 480, + VAR_CACHEDB_SECRETSEED = 481, + VAR_CACHEDB_REDISHOST = 482, + VAR_CACHEDB_REDISPORT = 483, + VAR_CACHEDB_REDISTIMEOUT = 484, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 485, + VAR_FOR_UPSTREAM = 486, + VAR_AUTH_ZONE = 487, + VAR_ZONEFILE = 488, + VAR_MASTER = 489, + VAR_URL = 490, + VAR_FOR_DOWNSTREAM = 491, + VAR_FALLBACK_ENABLED = 492, + VAR_ADDITIONAL_TLS_PORT = 493, + VAR_LOW_RTT = 494, + VAR_LOW_RTT_PCT = 495, + VAR_ALLOW_NOTIFY = 496 }; #endif /* Tokens. */ @@ -570,41 +571,42 @@ extern int yydebug; #define VAR_USE_SYSTEMD 458 #define VAR_SHM_ENABLE 459 #define VAR_SHM_KEY 460 -#define VAR_DNSCRYPT 461 -#define VAR_DNSCRYPT_ENABLE 462 -#define VAR_DNSCRYPT_PORT 463 -#define VAR_DNSCRYPT_PROVIDER 464 -#define VAR_DNSCRYPT_SECRET_KEY 465 -#define VAR_DNSCRYPT_PROVIDER_CERT 466 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 467 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 468 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 469 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 470 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 471 -#define VAR_IPSECMOD_ENABLED 472 -#define VAR_IPSECMOD_HOOK 473 -#define VAR_IPSECMOD_IGNORE_BOGUS 474 -#define VAR_IPSECMOD_MAX_TTL 475 -#define VAR_IPSECMOD_WHITELIST 476 -#define VAR_IPSECMOD_STRICT 477 -#define VAR_CACHEDB 478 -#define VAR_CACHEDB_BACKEND 479 -#define VAR_CACHEDB_SECRETSEED 480 -#define VAR_CACHEDB_REDISHOST 481 -#define VAR_CACHEDB_REDISPORT 482 -#define VAR_CACHEDB_REDISTIMEOUT 483 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 484 -#define VAR_FOR_UPSTREAM 485 -#define VAR_AUTH_ZONE 486 -#define VAR_ZONEFILE 487 -#define VAR_MASTER 488 -#define VAR_URL 489 -#define VAR_FOR_DOWNSTREAM 490 -#define VAR_FALLBACK_ENABLED 491 -#define VAR_ADDITIONAL_TLS_PORT 492 -#define VAR_LOW_RTT 493 -#define VAR_LOW_RTT_PCT 494 -#define VAR_ALLOW_NOTIFY 495 +#define VAR_ROOT_KEY_SENTINEL 461 +#define VAR_DNSCRYPT 462 +#define VAR_DNSCRYPT_ENABLE 463 +#define VAR_DNSCRYPT_PORT 464 +#define VAR_DNSCRYPT_PROVIDER 465 +#define VAR_DNSCRYPT_SECRET_KEY 466 +#define VAR_DNSCRYPT_PROVIDER_CERT 467 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 468 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 469 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 470 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 471 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 472 +#define VAR_IPSECMOD_ENABLED 473 +#define VAR_IPSECMOD_HOOK 474 +#define VAR_IPSECMOD_IGNORE_BOGUS 475 +#define VAR_IPSECMOD_MAX_TTL 476 +#define VAR_IPSECMOD_WHITELIST 477 +#define VAR_IPSECMOD_STRICT 478 +#define VAR_CACHEDB 479 +#define VAR_CACHEDB_BACKEND 480 +#define VAR_CACHEDB_SECRETSEED 481 +#define VAR_CACHEDB_REDISHOST 482 +#define VAR_CACHEDB_REDISPORT 483 +#define VAR_CACHEDB_REDISTIMEOUT 484 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 485 +#define VAR_FOR_UPSTREAM 486 +#define VAR_AUTH_ZONE 487 +#define VAR_ZONEFILE 488 +#define VAR_MASTER 489 +#define VAR_URL 490 +#define VAR_FOR_DOWNSTREAM 491 +#define VAR_FALLBACK_ENABLED 492 +#define VAR_ADDITIONAL_TLS_PORT 493 +#define VAR_LOW_RTT 494 +#define VAR_LOW_RTT_PCT 495 +#define VAR_ALLOW_NOTIFY 496 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -615,7 +617,7 @@ union YYSTYPE char* str; -#line 619 "util/configparser.c" /* yacc.c:355 */ +#line 621 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -632,7 +634,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 636 "util/configparser.c" /* yacc.c:358 */ +#line 638 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -874,21 +876,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 487 +#define YYLAST 489 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 241 +#define YYNTOKENS 242 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 261 +#define YYNNTS 262 /* YYNRULES -- Number of rules. */ -#define YYNRULES 499 +#define YYNRULES 501 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 747 +#define YYNSTATES 750 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 495 +#define YYMAXUTOK 496 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -946,63 +948,64 @@ static const yytype_uint8 yytranslate[] = 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 + 235, 236, 237, 238, 239, 240, 241 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 162, 162, 162, 163, 163, 164, 164, 165, 165, - 165, 166, 166, 167, 171, 176, 177, 178, 178, 178, - 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, - 183, 184, 184, 184, 185, 185, 186, 186, 187, 187, - 188, 188, 189, 189, 190, 190, 191, 191, 192, 192, - 193, 193, 193, 194, 194, 194, 195, 195, 195, 196, - 196, 197, 197, 198, 198, 199, 199, 200, 200, 200, - 201, 201, 202, 202, 203, 203, 203, 204, 204, 205, - 205, 206, 206, 207, 207, 207, 208, 208, 209, 209, - 210, 210, 211, 211, 212, 212, 213, 213, 213, 214, - 214, 215, 215, 215, 216, 216, 216, 217, 217, 217, - 218, 218, 218, 218, 219, 219, 219, 220, 220, 220, - 221, 221, 222, 222, 223, 223, 224, 224, 225, 225, - 225, 226, 226, 227, 227, 228, 229, 229, 230, 230, - 231, 231, 232, 233, 233, 234, 234, 235, 235, 236, - 236, 236, 237, 237, 238, 238, 239, 239, 240, 240, - 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, - 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, - 249, 249, 250, 252, 264, 265, 266, 266, 266, 266, - 266, 267, 269, 281, 282, 283, 283, 283, 283, 284, - 286, 300, 301, 302, 302, 302, 302, 303, 303, 303, - 305, 321, 322, 323, 323, 323, 323, 324, 324, 324, - 325, 327, 336, 345, 356, 365, 374, 383, 394, 403, - 414, 427, 442, 453, 470, 487, 500, 515, 524, 533, - 542, 551, 560, 569, 578, 587, 596, 605, 614, 623, - 632, 641, 650, 659, 666, 673, 682, 689, 697, 706, - 715, 729, 738, 747, 756, 763, 770, 796, 804, 811, - 818, 825, 832, 840, 848, 856, 863, 874, 881, 890, - 899, 908, 915, 922, 930, 938, 948, 958, 968, 981, - 992, 1000, 1013, 1022, 1031, 1040, 1050, 1060, 1068, 1081, - 1090, 1098, 1107, 1115, 1128, 1137, 1144, 1154, 1164, 1174, - 1184, 1194, 1204, 1214, 1224, 1231, 1238, 1245, 1254, 1263, - 1272, 1279, 1289, 1306, 1313, 1331, 1344, 1357, 1366, 1375, - 1384, 1393, 1403, 1413, 1424, 1433, 1442, 1455, 1468, 1477, - 1484, 1493, 1502, 1511, 1520, 1528, 1541, 1549, 1578, 1585, - 1600, 1610, 1620, 1627, 1634, 1643, 1657, 1676, 1695, 1707, - 1719, 1731, 1742, 1761, 1771, 1780, 1788, 1796, 1809, 1822, - 1835, 1848, 1857, 1866, 1875, 1884, 1894, 1904, 1917, 1930, - 1941, 1954, 1965, 1978, 1988, 1995, 2002, 2011, 2021, 2031, - 2041, 2048, 2055, 2064, 2074, 2084, 2091, 2098, 2105, 2113, - 2123, 2133, 2143, 2153, 2183, 2193, 2201, 2210, 2225, 2234, - 2239, 2240, 2241, 2241, 2241, 2242, 2242, 2242, 2243, 2243, - 2245, 2255, 2264, 2271, 2281, 2288, 2295, 2302, 2309, 2314, - 2315, 2316, 2316, 2317, 2317, 2318, 2318, 2319, 2320, 2321, - 2322, 2323, 2324, 2326, 2334, 2341, 2349, 2357, 2364, 2371, - 2380, 2389, 2398, 2407, 2416, 2425, 2430, 2431, 2432, 2434, - 2440, 2450, 2457, 2466, 2474, 2480, 2481, 2483, 2483, 2483, - 2484, 2484, 2485, 2486, 2487, 2488, 2489, 2491, 2501, 2511, - 2518, 2527, 2534, 2543, 2551, 2564, 2572, 2585, 2590, 2591, - 2592, 2592, 2593, 2593, 2593, 2595, 2609, 2624, 2636, 2651 + 0, 163, 163, 163, 164, 164, 165, 165, 166, 166, + 166, 167, 167, 168, 172, 177, 178, 179, 179, 179, + 180, 180, 181, 181, 182, 182, 183, 183, 184, 184, + 184, 185, 185, 185, 186, 186, 187, 187, 188, 188, + 189, 189, 190, 190, 191, 191, 192, 192, 193, 193, + 194, 194, 194, 195, 195, 195, 196, 196, 196, 197, + 197, 198, 198, 199, 199, 200, 200, 201, 201, 201, + 202, 202, 203, 203, 204, 204, 204, 205, 205, 206, + 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, + 211, 211, 212, 212, 213, 213, 214, 214, 214, 215, + 215, 216, 216, 216, 217, 217, 217, 218, 218, 218, + 219, 219, 219, 219, 220, 220, 220, 221, 221, 221, + 222, 222, 223, 223, 224, 224, 225, 225, 226, 226, + 226, 227, 227, 228, 228, 229, 230, 230, 231, 231, + 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, + 237, 237, 238, 238, 239, 239, 240, 240, 241, 241, + 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, + 245, 246, 247, 247, 248, 248, 249, 249, 250, 250, + 251, 251, 251, 252, 254, 266, 267, 268, 268, 268, + 268, 268, 269, 271, 283, 284, 285, 285, 285, 285, + 286, 288, 302, 303, 304, 304, 304, 304, 305, 305, + 305, 307, 323, 324, 325, 325, 325, 325, 326, 326, + 326, 327, 329, 338, 347, 358, 367, 376, 385, 396, + 405, 416, 429, 444, 455, 472, 489, 502, 517, 526, + 535, 544, 553, 562, 571, 580, 589, 598, 607, 616, + 625, 634, 643, 652, 661, 668, 675, 684, 691, 699, + 708, 717, 731, 740, 749, 758, 765, 772, 798, 806, + 813, 820, 827, 834, 842, 850, 858, 865, 876, 887, + 894, 903, 912, 921, 928, 935, 943, 951, 961, 971, + 981, 994, 1005, 1013, 1026, 1035, 1044, 1053, 1063, 1073, + 1081, 1094, 1103, 1111, 1120, 1128, 1141, 1150, 1157, 1167, + 1177, 1187, 1197, 1207, 1217, 1227, 1237, 1244, 1251, 1258, + 1267, 1276, 1285, 1292, 1302, 1319, 1326, 1344, 1357, 1370, + 1379, 1388, 1397, 1406, 1416, 1426, 1437, 1446, 1455, 1468, + 1481, 1490, 1497, 1506, 1515, 1524, 1533, 1541, 1554, 1562, + 1591, 1598, 1613, 1623, 1633, 1640, 1647, 1656, 1670, 1689, + 1708, 1720, 1732, 1744, 1755, 1774, 1784, 1793, 1801, 1809, + 1822, 1835, 1848, 1861, 1870, 1879, 1888, 1897, 1907, 1917, + 1930, 1943, 1954, 1967, 1978, 1991, 2001, 2008, 2015, 2024, + 2034, 2044, 2054, 2061, 2068, 2077, 2087, 2097, 2104, 2111, + 2118, 2126, 2136, 2146, 2156, 2166, 2196, 2206, 2214, 2223, + 2238, 2247, 2252, 2253, 2254, 2254, 2254, 2255, 2255, 2255, + 2256, 2256, 2258, 2268, 2277, 2284, 2294, 2301, 2308, 2315, + 2322, 2327, 2328, 2329, 2329, 2330, 2330, 2331, 2331, 2332, + 2333, 2334, 2335, 2336, 2337, 2339, 2347, 2354, 2362, 2370, + 2377, 2384, 2393, 2402, 2411, 2420, 2429, 2438, 2443, 2444, + 2445, 2447, 2453, 2463, 2470, 2479, 2487, 2493, 2494, 2496, + 2496, 2496, 2497, 2497, 2498, 2499, 2500, 2501, 2502, 2504, + 2514, 2524, 2531, 2540, 2547, 2556, 2564, 2577, 2585, 2598, + 2603, 2604, 2605, 2605, 2606, 2606, 2606, 2608, 2622, 2637, + 2649, 2664 }; #endif @@ -1084,9 +1087,10 @@ static const char *const yytname[] = "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING", "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", - "VAR_SHM_KEY", "VAR_DNSCRYPT", "VAR_DNSCRYPT_ENABLE", - "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", "VAR_DNSCRYPT_SECRET_KEY", - "VAR_DNSCRYPT_PROVIDER_CERT", "VAR_DNSCRYPT_PROVIDER_CERT_ROTATED", + "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT", + "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", + "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT", + "VAR_DNSCRYPT_PROVIDER_CERT_ROTATED", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", @@ -1125,10 +1129,11 @@ static const char *const yytname[] = "server_dlv_anchor", "server_auto_trust_anchor_file", "server_trust_anchor_file", "server_trusted_keys_file", "server_trust_anchor", "server_trust_anchor_signaling", - "server_domain_insecure", "server_hide_identity", "server_hide_version", - "server_hide_trustanchor", "server_identity", "server_version", - "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport", - "server_ip_transparent", "server_ip_freebind", "server_edns_buffer_size", + "server_root_key_sentinel", "server_domain_insecure", + "server_hide_identity", "server_hide_version", "server_hide_trustanchor", + "server_identity", "server_version", "server_so_rcvbuf", + "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", + "server_ip_freebind", "server_edns_buffer_size", "server_msg_buffer_size", "server_msg_cache_size", "server_msg_cache_slabs", "server_num_queries_per_thread", "server_jostle_timeout", "server_delay_close", @@ -1235,14 +1240,14 @@ static const yytype_uint16 yytoknum[] = 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495 + 495, 496 }; # endif -#define YYPACT_NINF -195 +#define YYPACT_NINF -184 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-195))) + (!!((Yystate) == (-184))) #define YYTABLE_NINF -1 @@ -1253,81 +1258,81 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -195, 0, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, 220, -37, -32, -39, -38, -25, - -129, -104, -159, -194, -3, -1, 2, 3, 4, 5, - 25, 26, 29, 30, 32, 33, 34, 35, 36, 48, - 49, 50, 51, 53, 54, 55, 65, 66, 67, 68, + -184, 0, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, 221, -37, -32, -38, -39, -62, + -129, -104, -160, -183, -3, -1, 2, 3, 4, 5, + 30, 48, 49, 50, 51, 52, 54, 55, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 87, 88, 91, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, + 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 147, 148, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 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, 189, 190, 191, 193, 194, 195, 197, + 179, 180, 181, 189, 190, 191, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, - 219, 250, 251, 252, 253, 257, 258, 259, 301, 302, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, 303, 304, 305, - 306, 307, 308, -195, -195, -195, -195, -195, -195, -195, - 309, 313, 317, 318, 342, -195, -195, -195, -195, -195, - -195, 343, 344, 346, 356, 357, 358, 359, -195, -195, - -195, -195, -195, -195, -195, -195, 360, 361, 362, 363, - 364, 365, 366, 367, -195, -195, -195, -195, -195, -195, - -195, -195, -195, 368, 403, 405, 416, 417, 418, 419, - 420, -195, -195, -195, -195, -195, -195, -195, -195, -195, - 421, 422, 423, 424, 425, 426, 433, 434, 435, 436, - 437, 438, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, 440, -195, -195, 441, 442, - 443, 444, 445, 446, 450, 451, 452, 453, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, 454, - 455, 456, 457, 458, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, 459, 460, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, 461, 462, 463, -195, -195, -195, -195, -195, -195, - -195, -195, -195, 464, 465, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - 466, 467, 468, 469, 470, 471, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, 472, -195, - -195, 473, 474, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, 475, 476, 477, - -195, -195, -195, -195, -195, -195, -195 + 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, + 219, 220, 251, 252, 253, 254, 258, 259, 260, 302, + 303, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, 304, + 305, 306, 307, 308, 309, -184, -184, -184, -184, -184, + -184, -184, 310, 314, 318, 319, 343, -184, -184, -184, + -184, -184, -184, 344, 345, 347, 357, 358, 359, 360, + -184, -184, -184, -184, -184, -184, -184, -184, 361, 362, + 363, 364, 365, 366, 367, 368, -184, -184, -184, -184, + -184, -184, -184, -184, -184, 369, 404, 406, 418, 419, + 420, 421, 422, -184, -184, -184, -184, -184, -184, -184, + -184, -184, 423, 424, 425, 426, 427, 428, 435, 436, + 437, 438, 439, 440, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, 442, -184, -184, + 443, 444, 445, 446, 447, 448, 452, 453, 454, 455, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, 456, 457, 458, 459, 460, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, 461, 462, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, 463, 464, 465, -184, -184, -184, -184, + -184, -184, -184, -184, -184, 466, 467, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, 468, 469, 470, 471, 472, 473, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, 474, -184, -184, 475, 476, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + 477, 478, 479, -184, -184, -184, -184, -184, -184, -184 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1335,9 +1340,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 183, 192, 409, 455, 428, 200, - 464, 487, 210, 3, 16, 185, 194, 202, 212, 411, - 430, 457, 466, 489, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 184, 193, 411, 457, 430, 201, + 466, 489, 211, 3, 16, 186, 195, 203, 213, 413, + 432, 459, 468, 491, 4, 5, 6, 10, 13, 8, 9, 7, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1355,125 +1360,125 @@ 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, - 15, 17, 18, 77, 80, 89, 166, 167, 19, 139, - 140, 141, 142, 143, 144, 28, 68, 20, 81, 82, - 39, 61, 76, 21, 22, 24, 25, 23, 26, 27, - 112, 177, 113, 114, 115, 116, 179, 180, 162, 78, - 67, 93, 110, 111, 29, 30, 31, 32, 33, 69, - 83, 84, 99, 55, 65, 56, 170, 94, 49, 50, - 169, 51, 52, 103, 107, 120, 128, 149, 104, 62, - 34, 35, 36, 91, 121, 122, 123, 37, 38, 40, - 41, 43, 44, 42, 126, 45, 46, 47, 53, 72, - 108, 86, 127, 79, 145, 87, 88, 105, 106, 92, - 48, 70, 73, 54, 57, 95, 96, 71, 146, 97, - 58, 59, 60, 178, 109, 159, 160, 168, 98, 66, - 100, 101, 102, 147, 63, 64, 85, 74, 75, 90, - 117, 118, 119, 124, 125, 150, 151, 153, 155, 156, - 154, 157, 163, 129, 130, 133, 134, 131, 132, 135, - 136, 138, 137, 181, 182, 148, 158, 171, 173, 172, - 174, 175, 176, 152, 161, 164, 165, 0, 0, 0, - 0, 0, 0, 184, 186, 187, 188, 190, 191, 189, - 0, 0, 0, 0, 0, 193, 195, 196, 197, 198, - 199, 0, 0, 0, 0, 0, 0, 0, 201, 203, - 204, 207, 208, 205, 209, 206, 0, 0, 0, 0, - 0, 0, 0, 0, 211, 213, 214, 215, 216, 220, - 217, 218, 219, 0, 0, 0, 0, 0, 0, 0, - 0, 410, 412, 414, 413, 419, 415, 416, 417, 418, + 0, 15, 17, 18, 77, 80, 89, 166, 167, 19, + 139, 140, 141, 142, 143, 144, 28, 68, 20, 81, + 82, 39, 61, 76, 21, 22, 24, 25, 23, 26, + 27, 112, 178, 113, 114, 115, 116, 180, 181, 162, + 78, 67, 93, 110, 111, 29, 30, 31, 32, 33, + 69, 83, 84, 99, 55, 65, 56, 170, 171, 94, + 49, 50, 169, 51, 52, 103, 107, 120, 128, 149, + 104, 62, 34, 35, 36, 91, 121, 122, 123, 37, + 38, 40, 41, 43, 44, 42, 126, 45, 46, 47, + 53, 72, 108, 86, 127, 79, 145, 87, 88, 105, + 106, 92, 48, 70, 73, 54, 57, 95, 96, 71, + 146, 97, 58, 59, 60, 179, 109, 159, 160, 168, + 98, 66, 100, 101, 102, 147, 63, 64, 85, 74, + 75, 90, 117, 118, 119, 124, 125, 150, 151, 153, + 155, 156, 154, 157, 163, 129, 130, 133, 134, 131, + 132, 135, 136, 138, 137, 182, 183, 148, 158, 172, + 174, 173, 175, 176, 177, 152, 161, 164, 165, 0, + 0, 0, 0, 0, 0, 185, 187, 188, 189, 191, + 192, 190, 0, 0, 0, 0, 0, 194, 196, 197, + 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, + 202, 204, 205, 208, 209, 206, 210, 207, 0, 0, + 0, 0, 0, 0, 0, 0, 212, 214, 215, 216, + 217, 221, 218, 219, 220, 0, 0, 0, 0, 0, + 0, 0, 0, 412, 414, 416, 415, 421, 417, 418, + 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 431, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 0, 458, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 429, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 0, 456, 458, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 465, 467, - 468, 469, 471, 472, 470, 473, 474, 475, 476, 0, - 0, 0, 0, 0, 488, 490, 491, 492, 493, 494, - 222, 221, 228, 237, 235, 243, 244, 247, 245, 246, - 248, 249, 264, 265, 266, 267, 268, 290, 291, 292, - 297, 298, 240, 299, 300, 303, 301, 302, 305, 306, - 307, 320, 278, 279, 281, 282, 308, 323, 273, 275, - 324, 330, 331, 332, 241, 289, 344, 345, 274, 339, - 260, 236, 269, 321, 327, 309, 0, 0, 348, 242, - 223, 259, 313, 224, 238, 239, 270, 271, 346, 311, - 315, 316, 225, 349, 293, 319, 261, 277, 325, 326, - 329, 338, 272, 342, 340, 341, 283, 288, 317, 318, - 284, 285, 310, 334, 262, 263, 250, 252, 253, 254, - 255, 256, 350, 351, 352, 294, 295, 296, 304, 353, - 354, 0, 0, 0, 312, 286, 460, 363, 367, 365, - 364, 368, 366, 0, 0, 371, 372, 229, 230, 231, - 232, 233, 234, 314, 328, 343, 375, 376, 287, 355, - 0, 0, 0, 0, 0, 0, 335, 336, 337, 461, - 280, 276, 333, 258, 226, 227, 377, 379, 378, 380, - 381, 382, 251, 257, 373, 374, 383, 384, 385, 388, - 387, 386, 389, 390, 391, 392, 393, 402, 0, 406, - 407, 0, 0, 408, 394, 400, 395, 396, 397, 399, - 401, 398, 420, 422, 421, 424, 425, 426, 427, 423, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 459, 477, 478, 479, 482, 480, 481, 483, - 484, 485, 486, 495, 496, 497, 498, 499, 322, 347, - 362, 462, 463, 369, 370, 356, 357, 0, 0, 0, - 361, 403, 404, 405, 360, 358, 359 + 467, 469, 470, 471, 473, 474, 472, 475, 476, 477, + 478, 0, 0, 0, 0, 0, 490, 492, 493, 494, + 495, 496, 223, 222, 229, 238, 236, 244, 245, 248, + 246, 247, 249, 250, 265, 266, 267, 268, 269, 292, + 293, 294, 299, 300, 241, 301, 302, 305, 303, 304, + 307, 308, 309, 322, 280, 281, 283, 284, 310, 325, + 274, 276, 326, 332, 333, 334, 242, 291, 346, 347, + 275, 341, 261, 237, 270, 323, 329, 311, 0, 0, + 350, 243, 224, 260, 315, 225, 239, 240, 271, 272, + 348, 313, 317, 318, 226, 351, 295, 321, 262, 279, + 327, 328, 331, 340, 273, 344, 342, 343, 285, 290, + 319, 320, 286, 287, 312, 336, 263, 264, 251, 253, + 254, 255, 256, 257, 352, 353, 354, 296, 297, 298, + 306, 355, 356, 0, 0, 0, 314, 288, 462, 365, + 369, 367, 366, 370, 368, 0, 0, 373, 374, 230, + 231, 232, 233, 234, 235, 316, 330, 345, 377, 378, + 289, 357, 0, 0, 0, 0, 0, 0, 337, 338, + 339, 463, 282, 277, 335, 259, 227, 228, 278, 379, + 381, 380, 382, 383, 384, 252, 258, 375, 376, 385, + 386, 387, 390, 389, 388, 391, 392, 393, 394, 395, + 404, 0, 408, 409, 0, 0, 410, 396, 402, 397, + 398, 399, 401, 403, 400, 422, 424, 423, 426, 427, + 428, 429, 425, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 461, 479, 480, 481, 484, + 482, 483, 485, 486, 487, 488, 497, 498, 499, 500, + 501, 324, 349, 364, 464, 465, 371, 372, 358, 359, + 0, 0, 0, 363, 405, 406, 407, 362, 360, 361 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, - -195 + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 13, 14, 24, 200, 15, 25, 373, 16, - 26, 385, 17, 27, 398, 18, 28, 414, 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, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 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, - 374, 375, 376, 377, 378, 379, 386, 387, 388, 389, - 390, 415, 416, 417, 418, 419, 420, 421, 422, 399, - 400, 401, 402, 403, 404, 405, 19, 29, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 20, 30, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 21, 31, 466, 467, 363, 364, 365, 366, - 22, 32, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 23, 33, 494, 495, 496, 497, 498, - 499 + -1, 1, 13, 14, 24, 201, 15, 25, 375, 16, + 26, 387, 17, 27, 400, 18, 28, 416, 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, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 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, 363, + 364, 376, 377, 378, 379, 380, 381, 388, 389, 390, + 391, 392, 417, 418, 419, 420, 421, 422, 423, 424, + 401, 402, 403, 404, 405, 406, 407, 19, 29, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 20, 30, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 21, 31, 468, 469, 365, 366, 367, + 368, 22, 32, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 23, 33, 496, 497, 498, 499, + 500, 501 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1481,55 +1486,55 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 391, 406, 367, 465, 368, 369, 500, 380, 501, - 0, 3, 502, 503, 504, 505, 381, 382, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 489, 490, 491, 492, 493, 506, 507, 392, 393, 508, - 509, 4, 510, 511, 512, 513, 514, 5, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 515, 516, - 517, 518, 394, 519, 520, 521, 370, 423, 424, 425, - 426, 427, 428, 429, 430, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 6, 538, 539, 540, 541, 371, 542, 543, 372, - 383, 544, 384, 545, 546, 547, 548, 7, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 395, 396, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 8, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 397, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 407, 9, 408, 409, 410, 411, 412, 629, - 630, 631, 413, 632, 633, 634, 10, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 11, 651, 652, 653, 654, 655, 656, - 0, 12, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 657, 658, 659, 660, 62, 63, 64, 661, 662, 663, - 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, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 664, 665, 666, 667, 668, 669, 670, 671, 672, - 106, 107, 108, 673, 109, 110, 111, 674, 675, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 676, 677, 678, 135, 679, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 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, 693, 179, 694, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 190, 191, 192, - 193, 194, 195, 706, 707, 708, 709, 710, 711, 196, - 712, 713, 714, 715, 716, 717, 718, 197, 198, 199, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, - 739, 740, 741, 742, 743, 744, 745, 746 + 2, 408, 393, 369, 467, 370, 371, 502, 382, 503, + 0, 3, 504, 505, 506, 507, 383, 384, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 425, 426, 427, 428, 429, 430, 431, 432, 394, 395, + 508, 4, 491, 492, 493, 494, 495, 5, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 509, 510, + 511, 512, 513, 396, 514, 515, 372, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 6, 540, 541, 542, 543, 373, 544, 545, 374, + 385, 546, 386, 547, 548, 549, 550, 7, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 397, 398, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 8, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 399, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 409, 9, 410, 411, 412, 413, 414, 631, + 632, 633, 415, 634, 635, 636, 637, 10, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 11, 654, 655, 656, 657, 658, + 659, 0, 12, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 660, 661, 662, 663, 62, 63, 64, 664, 665, + 666, 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, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 106, 107, 108, 676, 109, 110, 111, 677, 678, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 679, 680, 681, 135, 682, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 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, 696, 179, 697, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 191, + 192, 193, 194, 195, 196, 709, 710, 711, 712, 713, + 714, 197, 715, 716, 717, 718, 719, 720, 721, 198, + 199, 200, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, 748, 749 }; static const yytype_int16 yycheck[] = @@ -1537,62 +1542,62 @@ static const yytype_int16 yycheck[] = 0, 40, 40, 40, 108, 42, 43, 10, 40, 10, -1, 11, 10, 10, 10, 10, 48, 49, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 224, 225, 226, 227, 228, 10, 10, 76, 77, 10, - 10, 41, 10, 10, 10, 10, 10, 47, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 10, 10, - 10, 10, 101, 10, 10, 10, 103, 92, 93, 94, - 95, 96, 97, 98, 99, 10, 10, 10, 10, 10, + 92, 93, 94, 95, 96, 97, 98, 99, 76, 77, + 10, 41, 225, 226, 227, 228, 229, 47, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 10, 10, + 10, 10, 10, 101, 10, 10, 103, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 91, 10, 10, 10, 10, 133, 10, 10, 136, 132, 10, 134, 10, 10, 10, 10, 107, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 160, 161, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 160, 161, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 146, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 195, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 195, 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, 230, 193, 232, 233, 234, 235, 236, 10, - 10, 10, 240, 10, 10, 10, 206, 10, 10, 10, + 10, 10, 231, 193, 233, 234, 235, 236, 237, 10, + 10, 10, 241, 10, 10, 10, 10, 207, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 223, 10, 10, 10, 10, 10, 10, - -1, 231, 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, 37, 38, 39, - 10, 10, 10, 10, 44, 45, 46, 10, 10, 10, - 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, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 100, 101, 102, 10, 104, 105, 106, 10, 10, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 10, 10, 10, 135, 10, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 10, 194, 10, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 217, 218, 219, - 220, 221, 222, 10, 10, 10, 10, 10, 10, 229, - 10, 10, 10, 10, 10, 10, 10, 237, 238, 239, + 10, 10, 10, 10, 224, 10, 10, 10, 10, 10, + 10, -1, 232, 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, 37, 38, + 39, 10, 10, 10, 10, 44, 45, 46, 10, 10, + 10, 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, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 100, 101, 102, 10, 104, 105, 106, 10, 10, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 10, 10, 10, 135, 10, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 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, 10, 194, 10, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 218, + 219, 220, 221, 222, 223, 10, 10, 10, 10, 10, + 10, 230, 10, 10, 10, 10, 10, 10, 10, 238, + 239, 240, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 242, 0, 11, 41, 47, 91, 107, 146, 193, - 206, 223, 231, 243, 244, 247, 250, 253, 256, 447, - 458, 473, 481, 494, 245, 248, 251, 254, 257, 448, - 459, 474, 482, 495, 12, 13, 14, 15, 16, 17, + 0, 243, 0, 11, 41, 47, 91, 107, 146, 193, + 207, 224, 232, 244, 245, 248, 251, 254, 257, 449, + 460, 475, 483, 496, 246, 249, 252, 255, 258, 450, + 461, 476, 484, 497, 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, 37, 38, 39, 44, 45, 46, 50, 51, 52, 53, 54, @@ -1608,8 +1613,8 @@ static const yytype_uint16 yystos[] = 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 217, 218, 219, 220, 221, 222, 229, 237, 238, 239, - 246, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 206, 218, 219, 220, 221, 222, 223, 230, 238, 239, + 240, 247, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, @@ -1625,20 +1630,21 @@ static const yytype_uint16 yystos[] = 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, 477, 478, 479, 480, 40, 42, 43, - 103, 133, 136, 249, 421, 422, 423, 424, 425, 426, - 40, 48, 49, 132, 134, 252, 427, 428, 429, 430, - 431, 40, 76, 77, 101, 160, 161, 195, 255, 440, - 441, 442, 443, 444, 445, 446, 40, 230, 232, 233, - 234, 235, 236, 240, 258, 432, 433, 434, 435, 436, - 437, 438, 439, 92, 93, 94, 95, 96, 97, 98, - 99, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 108, 475, 476, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 224, - 225, 226, 227, 228, 496, 497, 498, 499, 500, 501, + 418, 419, 420, 421, 422, 479, 480, 481, 482, 40, + 42, 43, 103, 133, 136, 250, 423, 424, 425, 426, + 427, 428, 40, 48, 49, 132, 134, 253, 429, 430, + 431, 432, 433, 40, 76, 77, 101, 160, 161, 195, + 256, 442, 443, 444, 445, 446, 447, 448, 40, 231, + 233, 234, 235, 236, 237, 241, 259, 434, 435, 436, + 437, 438, 439, 440, 441, 92, 93, 94, 95, 96, + 97, 98, 99, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 108, 477, 478, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 225, 226, 227, 228, 229, 498, 499, 500, 501, + 502, 503, 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, @@ -1662,36 +1668,35 @@ 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, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 241, 242, 242, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 244, 245, 245, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 247, 248, 248, 249, 249, 249, 249, - 249, 249, 250, 251, 251, 252, 252, 252, 252, 252, - 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, - 256, 257, 257, 258, 258, 258, 258, 258, 258, 258, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 0, 242, 243, 243, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 245, 246, 246, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 248, 249, 249, 250, 250, 250, + 250, 250, 250, 251, 252, 252, 253, 253, 253, 253, + 253, 254, 255, 255, 256, 256, 256, 256, 256, 256, + 256, 257, 258, 258, 259, 259, 259, 259, 259, 259, + 259, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, @@ -1710,15 +1715,16 @@ static const yytype_uint16 yyr1[] = 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 448, 449, 449, 449, 449, 449, 449, 449, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 459, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 460, 460, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 482, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 495, - 496, 496, 496, 496, 496, 497, 498, 499, 500, 501 + 448, 449, 450, 450, 451, 451, 451, 451, 451, 451, + 451, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 461, 462, 462, 462, 462, 462, 462, 462, + 462, 462, 462, 462, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 484, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 497, 498, 498, 498, 498, 498, 499, 500, 501, + 502, 503 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1742,38 +1748,39 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 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, + 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, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, + 2, 3, 3, 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, 3, 3, 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, 2, 0, 1, 1, 1, 1, 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, 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, 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, - 4, 3, 3, 2, 2, 2, 2, 2, 2, 3, - 3, 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, 3, 3, 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, - 2, 2, 3, 3, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2 + 1, 2, 2, 2, 3, 3, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2 }; @@ -2450,15 +2457,15 @@ yyreduce: switch (yyn) { case 14: -#line 172 "./util/configparser.y" /* yacc.c:1646 */ +#line 173 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2458 "util/configparser.c" /* yacc.c:1646 */ +#line 2465 "util/configparser.c" /* yacc.c:1646 */ break; - case 183: -#line 253 "./util/configparser.y" /* yacc.c:1646 */ + case 184: +#line 255 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2469,11 +2476,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2473 "util/configparser.c" /* yacc.c:1646 */ +#line 2480 "util/configparser.c" /* yacc.c:1646 */ break; - case 192: -#line 270 "./util/configparser.y" /* yacc.c:1646 */ + case 193: +#line 272 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2484,11 +2491,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2488 "util/configparser.c" /* yacc.c:1646 */ +#line 2495 "util/configparser.c" /* yacc.c:1646 */ break; - case 200: -#line 287 "./util/configparser.y" /* yacc.c:1646 */ + case 201: +#line 289 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2501,11 +2508,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2505 "util/configparser.c" /* yacc.c:1646 */ +#line 2512 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 306 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 308 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2520,11 +2527,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2524 "util/configparser.c" /* yacc.c:1646 */ +#line 2531 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 328 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 330 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2532,11 +2539,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2536 "util/configparser.c" /* yacc.c:1646 */ +#line 2543 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 337 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 339 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2544,11 +2551,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2548 "util/configparser.c" /* yacc.c:1646 */ +#line 2555 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 346 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 348 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2558,11 +2565,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2562 "util/configparser.c" /* yacc.c:1646 */ +#line 2569 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 357 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 359 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2570,11 +2577,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2574 "util/configparser.c" /* yacc.c:1646 */ +#line 2581 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 366 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 368 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2582,11 +2589,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2586 "util/configparser.c" /* yacc.c:1646 */ +#line 2593 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 375 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 377 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2594,11 +2601,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2598 "util/configparser.c" /* yacc.c:1646 */ +#line 2605 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 384 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 386 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2608,11 +2615,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2612 "util/configparser.c" /* yacc.c:1646 */ +#line 2619 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 395 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 397 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2620,11 +2627,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2624 "util/configparser.c" /* yacc.c:1646 */ +#line 2631 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 404 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 406 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2634,11 +2641,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2638 "util/configparser.c" /* yacc.c:1646 */ +#line 2645 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 415 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 417 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2649,11 +2656,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2653 "util/configparser.c" /* yacc.c:1646 */ +#line 2660 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 428 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 430 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2667,11 +2674,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2671 "util/configparser.c" /* yacc.c:1646 */ +#line 2678 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 443 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 445 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2681,11 +2688,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2685 "util/configparser.c" /* yacc.c:1646 */ +#line 2692 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 454 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 456 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2701,11 +2708,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2705 "util/configparser.c" /* yacc.c:1646 */ +#line 2712 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 471 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 473 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2721,11 +2728,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2725 "util/configparser.c" /* yacc.c:1646 */ +#line 2732 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 488 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 490 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2737,11 +2744,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2741 "util/configparser.c" /* yacc.c:1646 */ +#line 2748 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 501 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 503 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2755,11 +2762,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2759 "util/configparser.c" /* yacc.c:1646 */ +#line 2766 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 516 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 518 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2767,11 +2774,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2771 "util/configparser.c" /* yacc.c:1646 */ +#line 2778 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 525 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 527 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -2779,11 +2786,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2783 "util/configparser.c" /* yacc.c:1646 */ +#line 2790 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 534 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 536 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -2791,11 +2798,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2795 "util/configparser.c" /* yacc.c:1646 */ +#line 2802 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 543 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 545 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2803,11 +2810,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2807 "util/configparser.c" /* yacc.c:1646 */ +#line 2814 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 552 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 554 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2815,11 +2822,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2819 "util/configparser.c" /* yacc.c:1646 */ +#line 2826 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 561 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 563 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2827,11 +2834,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2831 "util/configparser.c" /* yacc.c:1646 */ +#line 2838 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 570 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 572 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2839,11 +2846,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2843 "util/configparser.c" /* yacc.c:1646 */ +#line 2850 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 579 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 581 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2851,11 +2858,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2855 "util/configparser.c" /* yacc.c:1646 */ +#line 2862 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 588 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 590 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2863,11 +2870,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2867 "util/configparser.c" /* yacc.c:1646 */ +#line 2874 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 597 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 599 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2875,11 +2882,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2879 "util/configparser.c" /* yacc.c:1646 */ +#line 2886 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 606 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 608 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2887,11 +2894,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2891 "util/configparser.c" /* yacc.c:1646 */ +#line 2898 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 615 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 617 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2899,11 +2906,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2903 "util/configparser.c" /* yacc.c:1646 */ +#line 2910 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 624 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 626 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2911,11 +2918,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2915 "util/configparser.c" /* yacc.c:1646 */ +#line 2922 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 633 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 635 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2923,11 +2930,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2927 "util/configparser.c" /* yacc.c:1646 */ +#line 2934 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 642 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 644 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2935,11 +2942,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2939 "util/configparser.c" /* yacc.c:1646 */ +#line 2946 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 651 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 653 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2947,31 +2954,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2951 "util/configparser.c" /* yacc.c:1646 */ +#line 2958 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 660 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 662 "./util/configparser.y" /* yacc.c:1646 */ { 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 2961 "util/configparser.c" /* yacc.c:1646 */ +#line 2968 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 667 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 669 "./util/configparser.y" /* yacc.c:1646 */ { 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 2971 "util/configparser.c" /* yacc.c:1646 */ +#line 2978 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 674 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 676 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2979,32 +2986,32 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2983 "util/configparser.c" /* yacc.c:1646 */ +#line 2990 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 683 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 685 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 2993 "util/configparser.c" /* yacc.c:1646 */ +#line 3000 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 690 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 692 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_additional_tls_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->additional_tls_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3004 "util/configparser.c" /* yacc.c:1646 */ +#line 3011 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 698 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 700 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3012,11 +3019,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3016 "util/configparser.c" /* yacc.c:1646 */ +#line 3023 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 707 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 709 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3024,11 +3031,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3028 "util/configparser.c" /* yacc.c:1646 */ +#line 3035 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 716 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 718 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3041,11 +3048,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3045 "util/configparser.c" /* yacc.c:1646 */ +#line 3052 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 730 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 732 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3053,11 +3060,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3057 "util/configparser.c" /* yacc.c:1646 */ +#line 3064 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 739 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 741 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3065,11 +3072,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3069 "util/configparser.c" /* yacc.c:1646 */ +#line 3076 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 748 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 750 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3077,31 +3084,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3081 "util/configparser.c" /* yacc.c:1646 */ +#line 3088 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 757 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 759 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3091 "util/configparser.c" /* yacc.c:1646 */ +#line 3098 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 764 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 766 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3101 "util/configparser.c" /* yacc.c:1646 */ +#line 3108 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 771 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 773 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3126,105 +3133,105 @@ yyreduce: } } } -#line 3130 "util/configparser.c" /* yacc.c:1646 */ +#line 3137 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 797 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 799 "./util/configparser.y" /* yacc.c:1646 */ { 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 3141 "util/configparser.c" /* yacc.c:1646 */ +#line 3148 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 805 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 807 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3151 "util/configparser.c" /* yacc.c:1646 */ +#line 3158 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 812 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 814 "./util/configparser.y" /* yacc.c:1646 */ { 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 3161 "util/configparser.c" /* yacc.c:1646 */ +#line 3168 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 819 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 821 "./util/configparser.y" /* yacc.c:1646 */ { 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 3171 "util/configparser.c" /* yacc.c:1646 */ +#line 3178 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 826 "./util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 828 "./util/configparser.y" /* yacc.c:1646 */ { 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 3181 "util/configparser.c" /* yacc.c:1646 */ +#line 3188 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 833 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 835 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3192 "util/configparser.c" /* yacc.c:1646 */ +#line 3199 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 841 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 843 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3203 "util/configparser.c" /* yacc.c:1646 */ +#line 3210 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 849 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 851 "./util/configparser.y" /* yacc.c:1646 */ { 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 3214 "util/configparser.c" /* yacc.c:1646 */ +#line 3221 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 857 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 859 "./util/configparser.y" /* yacc.c:1646 */ { 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 3224 "util/configparser.c" /* yacc.c:1646 */ +#line 3231 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 864 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 866 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3234,21 +3241,35 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3238 "util/configparser.c" /* yacc.c:1646 */ +#line 3245 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 875 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 877 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_root_key_sentinel:%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->root_key_sentinel = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3259 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 279: +#line 888 "./util/configparser.y" /* yacc.c:1646 */ { 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 3248 "util/configparser.c" /* yacc.c:1646 */ +#line 3269 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 882 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 895 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3256,11 +3277,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3260 "util/configparser.c" /* yacc.c:1646 */ +#line 3281 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 891 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 904 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3268,11 +3289,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3272 "util/configparser.c" /* yacc.c:1646 */ +#line 3293 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 900 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 913 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3280,53 +3301,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3284 "util/configparser.c" /* yacc.c:1646 */ +#line 3305 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 909 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 922 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 3294 "util/configparser.c" /* yacc.c:1646 */ +#line 3315 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 916 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 929 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 3304 "util/configparser.c" /* yacc.c:1646 */ +#line 3325 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 923 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 936 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); } -#line 3315 "util/configparser.c" /* yacc.c:1646 */ +#line 3336 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 931 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 944 "./util/configparser.y" /* yacc.c:1646 */ { 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 3326 "util/configparser.c" /* yacc.c:1646 */ +#line 3347 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 939 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 952 "./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) @@ -3335,11 +3356,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3339 "util/configparser.c" /* yacc.c:1646 */ +#line 3360 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 949 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 962 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3348,11 +3369,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3352 "util/configparser.c" /* yacc.c:1646 */ +#line 3373 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 959 "./util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 972 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3361,11 +3382,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3365 "util/configparser.c" /* yacc.c:1646 */ +#line 3386 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 969 "./util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 982 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3377,11 +3398,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3381 "util/configparser.c" /* yacc.c:1646 */ +#line 3402 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 982 "./util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 995 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3391,22 +3412,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3395 "util/configparser.c" /* yacc.c:1646 */ +#line 3416 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 993 "./util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1006 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); } -#line 3406 "util/configparser.c" /* yacc.c:1646 */ +#line 3427 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 1001 "./util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1014 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3418,11 +3439,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3422 "util/configparser.c" /* yacc.c:1646 */ +#line 3443 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1014 "./util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1027 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3430,11 +3451,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3434 "util/configparser.c" /* yacc.c:1646 */ +#line 3455 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1023 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1036 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3442,11 +3463,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3446 "util/configparser.c" /* yacc.c:1646 */ +#line 3467 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1032 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1045 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3454,11 +3475,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3458 "util/configparser.c" /* yacc.c:1646 */ +#line 3479 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1041 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3467,11 +3488,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3471 "util/configparser.c" /* yacc.c:1646 */ +#line 3492 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1051 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1064 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3480,22 +3501,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3484 "util/configparser.c" /* yacc.c:1646 */ +#line 3505 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1061 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1074 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); } -#line 3495 "util/configparser.c" /* yacc.c:1646 */ +#line 3516 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1069 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1082 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3507,11 +3528,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3511 "util/configparser.c" /* yacc.c:1646 */ +#line 3532 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1082 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1095 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3519,22 +3540,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3523 "util/configparser.c" /* yacc.c:1646 */ +#line 3544 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1091 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1104 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); free((yyvsp[0].str)); } -#line 3534 "util/configparser.c" /* yacc.c:1646 */ +#line 3555 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1099 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1112 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3542,22 +3563,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3546 "util/configparser.c" /* yacc.c:1646 */ +#line 3567 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1108 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1121 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); free((yyvsp[0].str)); } -#line 3557 "util/configparser.c" /* yacc.c:1646 */ +#line 3578 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1116 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1129 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3569,11 +3590,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3573 "util/configparser.c" /* yacc.c:1646 */ +#line 3594 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1129 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1142 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3581,21 +3602,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3585 "util/configparser.c" /* yacc.c:1646 */ +#line 3606 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1138 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1151 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 3595 "util/configparser.c" /* yacc.c:1646 */ +#line 3616 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1145 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1158 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3604,11 +3625,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3608 "util/configparser.c" /* yacc.c:1646 */ +#line 3629 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1155 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1168 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3617,11 +3638,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3621 "util/configparser.c" /* yacc.c:1646 */ +#line 3642 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1165 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1178 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3630,11 +3651,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" /* yacc.c:1646 */ +#line 3655 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1175 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1188 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3643,11 +3664,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3647 "util/configparser.c" /* yacc.c:1646 */ +#line 3668 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1185 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1198 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3656,11 +3677,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3660 "util/configparser.c" /* yacc.c:1646 */ +#line 3681 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1195 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1208 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3669,11 +3690,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3673 "util/configparser.c" /* yacc.c:1646 */ +#line 3694 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1205 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1218 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3682,11 +3703,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3686 "util/configparser.c" /* yacc.c:1646 */ +#line 3707 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1215 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1228 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -3695,41 +3716,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3699 "util/configparser.c" /* yacc.c:1646 */ +#line 3720 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1225 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1238 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3709 "util/configparser.c" /* yacc.c:1646 */ +#line 3730 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1232 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1245 "./util/configparser.y" /* yacc.c:1646 */ { 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 3719 "util/configparser.c" /* yacc.c:1646 */ +#line 3740 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1239 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1252 "./util/configparser.y" /* yacc.c:1646 */ { 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 3729 "util/configparser.c" /* yacc.c:1646 */ +#line 3750 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1246 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1259 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3737,11 +3758,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3741 "util/configparser.c" /* yacc.c:1646 */ +#line 3762 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1255 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1268 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3749,11 +3770,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3753 "util/configparser.c" /* yacc.c:1646 */ +#line 3774 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1264 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1277 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3761,21 +3782,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3765 "util/configparser.c" /* yacc.c:1646 */ +#line 3786 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1273 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1286 "./util/configparser.y" /* yacc.c:1646 */ { 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 3775 "util/configparser.c" /* yacc.c:1646 */ +#line 3796 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1280 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1293 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -3784,11 +3805,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3788 "util/configparser.c" /* yacc.c:1646 */ +#line 3809 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1290 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1303 "./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 && @@ -3804,21 +3825,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3808 "util/configparser.c" /* yacc.c:1646 */ +#line 3829 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1307 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1320 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 3818 "util/configparser.c" /* yacc.c:1646 */ +#line 3839 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1314 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1327 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3835,11 +3856,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3839 "util/configparser.c" /* yacc.c:1646 */ +#line 3860 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1332 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1345 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3851,11 +3872,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3855 "util/configparser.c" /* yacc.c:1646 */ +#line 3876 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1345 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1358 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -3867,11 +3888,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3871 "util/configparser.c" /* yacc.c:1646 */ +#line 3892 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1358 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1371 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3879,11 +3900,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3883 "util/configparser.c" /* yacc.c:1646 */ +#line 3904 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1367 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1380 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3891,11 +3912,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3895 "util/configparser.c" /* yacc.c:1646 */ +#line 3916 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1376 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1389 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3903,11 +3924,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3907 "util/configparser.c" /* yacc.c:1646 */ +#line 3928 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1385 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1398 "./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) @@ -3915,11 +3936,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3919 "util/configparser.c" /* yacc.c:1646 */ +#line 3940 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1394 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1407 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3928,11 +3949,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3932 "util/configparser.c" /* yacc.c:1646 */ +#line 3953 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1404 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1417 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3941,11 +3962,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3945 "util/configparser.c" /* yacc.c:1646 */ +#line 3966 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1414 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1427 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3955,11 +3976,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3959 "util/configparser.c" /* yacc.c:1646 */ +#line 3980 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1425 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1438 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3967,11 +3988,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3971 "util/configparser.c" /* yacc.c:1646 */ +#line 3992 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1434 "./util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1447 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3979,11 +4000,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3983 "util/configparser.c" /* yacc.c:1646 */ +#line 4004 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1443 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1456 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3995,11 +4016,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3999 "util/configparser.c" /* yacc.c:1646 */ +#line 4020 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1456 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1469 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4011,11 +4032,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4015 "util/configparser.c" /* yacc.c:1646 */ +#line 4036 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1469 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1482 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4023,21 +4044,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4027 "util/configparser.c" /* yacc.c:1646 */ +#line 4048 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1478 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1491 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 4037 "util/configparser.c" /* yacc.c:1646 */ +#line 4058 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1485 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1498 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4045,11 +4066,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4049 "util/configparser.c" /* yacc.c:1646 */ +#line 4070 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1494 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1507 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4057,11 +4078,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4061 "util/configparser.c" /* yacc.c:1646 */ +#line 4082 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1503 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1516 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4069,11 +4090,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4073 "util/configparser.c" /* yacc.c:1646 */ +#line 4094 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1512 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1525 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4082,22 +4103,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4086 "util/configparser.c" /* yacc.c:1646 */ +#line 4107 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1521 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1534 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); } -#line 4097 "util/configparser.c" /* yacc.c:1646 */ +#line 4118 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1529 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1542 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4109,22 +4130,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4113 "util/configparser.c" /* yacc.c:1646 */ +#line 4134 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1542 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1555 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str)); } -#line 4124 "util/configparser.c" /* yacc.c:1646 */ +#line 4145 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1550 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1563 "./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 && @@ -4152,21 +4173,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4156 "util/configparser.c" /* yacc.c:1646 */ +#line 4177 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1579 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1592 "./util/configparser.y" /* yacc.c:1646 */ { 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 4166 "util/configparser.c" /* yacc.c:1646 */ +#line 4187 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1586 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1599 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4180,11 +4201,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4184 "util/configparser.c" /* yacc.c:1646 */ +#line 4205 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1601 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4193,11 +4214,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4197 "util/configparser.c" /* yacc.c:1646 */ +#line 4218 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1611 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1624 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4206,31 +4227,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4210 "util/configparser.c" /* yacc.c:1646 */ +#line 4231 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1621 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1634 "./util/configparser.y" /* yacc.c:1646 */ { 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 4220 "util/configparser.c" /* yacc.c:1646 */ +#line 4241 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1628 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1641 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 4230 "util/configparser.c" /* yacc.c:1646 */ +#line 4251 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1635 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1648 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4238,11 +4259,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4242 "util/configparser.c" /* yacc.c:1646 */ +#line 4263 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1644 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1657 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4255,11 +4276,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4259 "util/configparser.c" /* yacc.c:1646 */ +#line 4280 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1658 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1671 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4277,11 +4298,11 @@ yyreduce: } } } -#line 4281 "util/configparser.c" /* yacc.c:1646 */ +#line 4302 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1677 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1690 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4299,11 +4320,11 @@ yyreduce: } } } -#line 4303 "util/configparser.c" /* yacc.c:1646 */ +#line 4324 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1696 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1709 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -4314,11 +4335,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4318 "util/configparser.c" /* yacc.c:1646 */ +#line 4339 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1708 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1721 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -4329,11 +4350,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4333 "util/configparser.c" /* yacc.c:1646 */ +#line 4354 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1720 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1733 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -4344,11 +4365,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4348 "util/configparser.c" /* yacc.c:1646 */ +#line 4369 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1732 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1745 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -4358,11 +4379,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4362 "util/configparser.c" /* yacc.c:1646 */ +#line 4383 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1743 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1756 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4380,11 +4401,11 @@ yyreduce: } } } -#line 4384 "util/configparser.c" /* yacc.c:1646 */ +#line 4405 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1762 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1775 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4392,11 +4413,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4396 "util/configparser.c" /* yacc.c:1646 */ +#line 4417 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1772 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1785 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4404,33 +4425,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4408 "util/configparser.c" /* yacc.c:1646 */ +#line 4429 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1781 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1794 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4419 "util/configparser.c" /* yacc.c:1646 */ +#line 4440 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1789 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1802 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4430 "util/configparser.c" /* yacc.c:1646 */ +#line 4451 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1797 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1810 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4442,11 +4463,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4446 "util/configparser.c" /* yacc.c:1646 */ +#line 4467 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1810 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1823 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4458,11 +4479,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4462 "util/configparser.c" /* yacc.c:1646 */ +#line 4483 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1823 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1836 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4474,11 +4495,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4478 "util/configparser.c" /* yacc.c:1646 */ +#line 4499 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1836 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1849 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4490,11 +4511,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4494 "util/configparser.c" /* yacc.c:1646 */ +#line 4515 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1849 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1862 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4502,11 +4523,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4506 "util/configparser.c" /* yacc.c:1646 */ +#line 4527 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1858 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1871 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4514,11 +4535,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4518 "util/configparser.c" /* yacc.c:1646 */ +#line 4539 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1867 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1880 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_low_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4526,11 +4547,11 @@ yyreduce: else cfg_parser->cfg->low_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4530 "util/configparser.c" /* yacc.c:1646 */ +#line 4551 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1876 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1889 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_low_rtt_pct:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4538,11 +4559,11 @@ yyreduce: else cfg_parser->cfg->low_rtt_pct = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4542 "util/configparser.c" /* yacc.c:1646 */ +#line 4563 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1885 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1898 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4551,11 +4572,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4555 "util/configparser.c" /* yacc.c:1646 */ +#line 4576 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1895 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1908 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4564,11 +4585,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4568 "util/configparser.c" /* yacc.c:1646 */ +#line 4589 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1905 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1918 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4580,11 +4601,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4584 "util/configparser.c" /* yacc.c:1646 */ +#line 4605 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1918 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1931 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4596,11 +4617,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4600 "util/configparser.c" /* yacc.c:1646 */ +#line 4621 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1931 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1944 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4610,11 +4631,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4614 "util/configparser.c" /* yacc.c:1646 */ +#line 4635 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1942 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 1955 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4626,11 +4647,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4630 "util/configparser.c" /* yacc.c:1646 */ +#line 4651 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 1955 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 1968 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4640,11 +4661,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4644 "util/configparser.c" /* yacc.c:1646 */ +#line 4665 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 1966 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 1979 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4656,11 +4677,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4660 "util/configparser.c" /* yacc.c:1646 */ +#line 4681 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 1979 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 1992 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4669,31 +4690,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4673 "util/configparser.c" /* yacc.c:1646 */ +#line 4694 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 1989 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 2002 "./util/configparser.y" /* yacc.c:1646 */ { 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 4683 "util/configparser.c" /* yacc.c:1646 */ +#line 4704 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 1996 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 2009 "./util/configparser.y" /* yacc.c:1646 */ { 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 4693 "util/configparser.c" /* yacc.c:1646 */ +#line 4714 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 2003 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 2016 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4701,11 +4722,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4705 "util/configparser.c" /* yacc.c:1646 */ +#line 4726 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 2012 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 2025 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4714,11 +4735,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4718 "util/configparser.c" /* yacc.c:1646 */ +#line 4739 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 2022 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 2035 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4727,11 +4748,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4731 "util/configparser.c" /* yacc.c:1646 */ +#line 4752 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 2032 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 2045 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4740,31 +4761,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4744 "util/configparser.c" /* yacc.c:1646 */ +#line 4765 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 2042 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 2055 "./util/configparser.y" /* yacc.c:1646 */ { 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 4754 "util/configparser.c" /* yacc.c:1646 */ +#line 4775 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 2049 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 2062 "./util/configparser.y" /* yacc.c:1646 */ { 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 4764 "util/configparser.c" /* yacc.c:1646 */ +#line 4785 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 2056 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 2069 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4772,11 +4793,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4776 "util/configparser.c" /* yacc.c:1646 */ +#line 4797 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 2065 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 2078 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4785,11 +4806,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4789 "util/configparser.c" /* yacc.c:1646 */ +#line 4810 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 2075 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 2088 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -4798,52 +4819,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 4802 "util/configparser.c" /* yacc.c:1646 */ +#line 4823 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 2085 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 2098 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 4812 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 396: -#line 2092 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(master:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 4822 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 397: -#line 2099 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(url:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 4832 "util/configparser.c" /* yacc.c:1646 */ +#line 4833 "util/configparser.c" /* yacc.c:1646 */ break; case 398: -#line 2106 "./util/configparser.y" /* yacc.c:1646 */ +#line 2105 "./util/configparser.y" /* yacc.c:1646 */ { - OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, - (yyvsp[0].str))) + OUTYY(("P(master:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } #line 4843 "util/configparser.c" /* yacc.c:1646 */ break; case 399: -#line 2114 "./util/configparser.y" /* yacc.c:1646 */ +#line 2112 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(url:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) + yyerror("out of memory"); + } +#line 4853 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 400: +#line 2119 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, + (yyvsp[0].str))) + yyerror("out of memory"); + } +#line 4864 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 401: +#line 2127 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4852,11 +4873,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4856 "util/configparser.c" /* yacc.c:1646 */ +#line 4877 "util/configparser.c" /* yacc.c:1646 */ break; - case 400: -#line 2124 "./util/configparser.y" /* yacc.c:1646 */ + case 402: +#line 2137 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4865,11 +4886,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4869 "util/configparser.c" /* yacc.c:1646 */ +#line 4890 "util/configparser.c" /* yacc.c:1646 */ break; - case 401: -#line 2134 "./util/configparser.y" /* yacc.c:1646 */ + case 403: +#line 2147 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4878,11 +4899,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4882 "util/configparser.c" /* yacc.c:1646 */ +#line 4903 "util/configparser.c" /* yacc.c:1646 */ break; - case 402: -#line 2144 "./util/configparser.y" /* yacc.c:1646 */ + case 404: +#line 2157 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4891,11 +4912,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4895 "util/configparser.c" /* yacc.c:1646 */ +#line 4916 "util/configparser.c" /* yacc.c:1646 */ break; - case 403: -#line 2154 "./util/configparser.y" /* yacc.c:1646 */ + case 405: +#line 2167 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -4924,11 +4945,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4928 "util/configparser.c" /* yacc.c:1646 */ +#line 4949 "util/configparser.c" /* yacc.c:1646 */ break; - case 404: -#line 2184 "./util/configparser.y" /* yacc.c:1646 */ + case 406: +#line 2197 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -4937,22 +4958,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4941 "util/configparser.c" /* yacc.c:1646 */ +#line 4962 "util/configparser.c" /* yacc.c:1646 */ break; - case 405: -#line 2194 "./util/configparser.y" /* yacc.c:1646 */ + case 407: +#line 2207 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 4952 "util/configparser.c" /* yacc.c:1646 */ +#line 4973 "util/configparser.c" /* yacc.c:1646 */ break; - case 406: -#line 2202 "./util/configparser.y" /* yacc.c:1646 */ + case 408: +#line 2215 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { @@ -4960,11 +4981,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4964 "util/configparser.c" /* yacc.c:1646 */ +#line 4985 "util/configparser.c" /* yacc.c:1646 */ break; - case 407: -#line 2211 "./util/configparser.y" /* yacc.c:1646 */ + case 409: +#line 2224 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4978,11 +4999,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4982 "util/configparser.c" /* yacc.c:1646 */ +#line 5003 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2226 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2239 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4990,19 +5011,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4994 "util/configparser.c" /* yacc.c:1646 */ +#line 5015 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2235 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2248 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 5002 "util/configparser.c" /* yacc.c:1646 */ +#line 5023 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2246 "./util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2259 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5011,11 +5032,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5015 "util/configparser.c" /* yacc.c:1646 */ +#line 5036 "util/configparser.c" /* yacc.c:1646 */ break; - case 421: -#line 2256 "./util/configparser.y" /* yacc.c:1646 */ + case 423: +#line 2269 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5023,21 +5044,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5027 "util/configparser.c" /* yacc.c:1646 */ +#line 5048 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2265 "./util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2278 "./util/configparser.y" /* yacc.c:1646 */ { 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 5037 "util/configparser.c" /* yacc.c:1646 */ +#line 5058 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2272 "./util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2285 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5046,122 +5067,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5050 "util/configparser.c" /* yacc.c:1646 */ +#line 5071 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2282 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2295 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 5060 "util/configparser.c" /* yacc.c:1646 */ +#line 5081 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2289 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2302 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 5070 "util/configparser.c" /* yacc.c:1646 */ +#line 5091 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2296 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2309 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 5080 "util/configparser.c" /* yacc.c:1646 */ +#line 5101 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2303 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2316 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 5090 "util/configparser.c" /* yacc.c:1646 */ +#line 5111 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2310 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2323 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5098 "util/configparser.c" /* yacc.c:1646 */ +#line 5119 "util/configparser.c" /* yacc.c:1646 */ break; - case 443: -#line 2327 "./util/configparser.y" /* yacc.c:1646 */ + case 445: +#line 2340 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str), "yes")==0); } -#line 5109 "util/configparser.c" /* yacc.c:1646 */ +#line 5130 "util/configparser.c" /* yacc.c:1646 */ break; - case 444: -#line 2335 "./util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2348 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str); } -#line 5119 "util/configparser.c" /* yacc.c:1646 */ +#line 5140 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2342 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2355 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str), "yes")==0); } -#line 5130 "util/configparser.c" /* yacc.c:1646 */ +#line 5151 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2350 "./util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2363 "./util/configparser.y" /* yacc.c:1646 */ { 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[0].str), "yes")==0); } -#line 5141 "util/configparser.c" /* yacc.c:1646 */ +#line 5162 "util/configparser.c" /* yacc.c:1646 */ break; - case 447: -#line 2358 "./util/configparser.y" /* yacc.c:1646 */ + case 449: +#line 2371 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 5151 "util/configparser.c" /* yacc.c:1646 */ +#line 5172 "util/configparser.c" /* yacc.c:1646 */ break; - case 448: -#line 2365 "./util/configparser.y" /* yacc.c:1646 */ + case 450: +#line 2378 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 5161 "util/configparser.c" /* yacc.c:1646 */ +#line 5182 "util/configparser.c" /* yacc.c:1646 */ break; - case 449: -#line 2372 "./util/configparser.y" /* yacc.c:1646 */ + case 451: +#line 2385 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5169,11 +5190,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5173 "util/configparser.c" /* yacc.c:1646 */ +#line 5194 "util/configparser.c" /* yacc.c:1646 */ break; - case 450: -#line 2381 "./util/configparser.y" /* yacc.c:1646 */ + case 452: +#line 2394 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5181,11 +5202,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5185 "util/configparser.c" /* yacc.c:1646 */ +#line 5206 "util/configparser.c" /* yacc.c:1646 */ break; - case 451: -#line 2390 "./util/configparser.y" /* yacc.c:1646 */ + case 453: +#line 2403 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5193,11 +5214,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5197 "util/configparser.c" /* yacc.c:1646 */ +#line 5218 "util/configparser.c" /* yacc.c:1646 */ break; - case 452: -#line 2399 "./util/configparser.y" /* yacc.c:1646 */ + case 454: +#line 2412 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5205,11 +5226,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5209 "util/configparser.c" /* yacc.c:1646 */ +#line 5230 "util/configparser.c" /* yacc.c:1646 */ break; - case 453: -#line 2408 "./util/configparser.y" /* yacc.c:1646 */ + case 455: +#line 2421 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5217,11 +5238,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5221 "util/configparser.c" /* yacc.c:1646 */ +#line 5242 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2417 "./util/configparser.y" /* yacc.c:1646 */ + case 456: +#line 2430 "./util/configparser.y" /* yacc.c:1646 */ { 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) @@ -5229,29 +5250,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5233 "util/configparser.c" /* yacc.c:1646 */ +#line 5254 "util/configparser.c" /* yacc.c:1646 */ break; - case 455: -#line 2426 "./util/configparser.y" /* yacc.c:1646 */ + case 457: +#line 2439 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5241 "util/configparser.c" /* yacc.c:1646 */ +#line 5262 "util/configparser.c" /* yacc.c:1646 */ break; - case 459: -#line 2435 "./util/configparser.y" /* yacc.c:1646 */ + case 461: +#line 2448 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->python_script); cfg_parser->cfg->python_script = (yyvsp[0].str); } -#line 5251 "util/configparser.c" /* yacc.c:1646 */ +#line 5272 "util/configparser.c" /* yacc.c:1646 */ break; - case 460: -#line 2441 "./util/configparser.y" /* yacc.c:1646 */ + case 462: +#line 2454 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5260,21 +5281,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5264 "util/configparser.c" /* yacc.c:1646 */ +#line 5285 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2451 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2464 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 5274 "util/configparser.c" /* yacc.c:1646 */ +#line 5295 "util/configparser.c" /* yacc.c:1646 */ break; - case 462: -#line 2458 "./util/configparser.y" /* yacc.c:1646 */ + case 464: +#line 2471 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5282,31 +5303,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5286 "util/configparser.c" /* yacc.c:1646 */ +#line 5307 "util/configparser.c" /* yacc.c:1646 */ break; - case 463: -#line 2467 "./util/configparser.y" /* yacc.c:1646 */ + case 465: +#line 2480 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5297 "util/configparser.c" /* yacc.c:1646 */ +#line 5318 "util/configparser.c" /* yacc.c:1646 */ break; - case 464: -#line 2475 "./util/configparser.y" /* yacc.c:1646 */ + case 466: +#line 2488 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5306 "util/configparser.c" /* yacc.c:1646 */ +#line 5327 "util/configparser.c" /* yacc.c:1646 */ break; - case 477: -#line 2492 "./util/configparser.y" /* yacc.c:1646 */ + case 479: +#line 2505 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5314,11 +5335,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5318 "util/configparser.c" /* yacc.c:1646 */ +#line 5339 "util/configparser.c" /* yacc.c:1646 */ break; - case 478: -#line 2502 "./util/configparser.y" /* yacc.c:1646 */ + case 480: +#line 2515 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5327,21 +5348,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5331 "util/configparser.c" /* yacc.c:1646 */ +#line 5352 "util/configparser.c" /* yacc.c:1646 */ break; - case 479: -#line 2512 "./util/configparser.y" /* yacc.c:1646 */ + case 481: +#line 2525 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 5341 "util/configparser.c" /* yacc.c:1646 */ +#line 5362 "util/configparser.c" /* yacc.c:1646 */ break; - case 480: -#line 2519 "./util/configparser.y" /* yacc.c:1646 */ + case 482: +#line 2532 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -5349,21 +5370,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5353 "util/configparser.c" /* yacc.c:1646 */ +#line 5374 "util/configparser.c" /* yacc.c:1646 */ break; - case 481: -#line 2528 "./util/configparser.y" /* yacc.c:1646 */ + case 483: +#line 2541 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 5363 "util/configparser.c" /* yacc.c:1646 */ +#line 5384 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2535 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2548 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -5371,22 +5392,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5375 "util/configparser.c" /* yacc.c:1646 */ +#line 5396 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2544 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2557 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5386 "util/configparser.c" /* yacc.c:1646 */ +#line 5407 "util/configparser.c" /* yacc.c:1646 */ break; - case 484: -#line 2552 "./util/configparser.y" /* yacc.c:1646 */ + case 486: +#line 2565 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5398,22 +5419,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5402 "util/configparser.c" /* yacc.c:1646 */ +#line 5423 "util/configparser.c" /* yacc.c:1646 */ break; - case 485: -#line 2565 "./util/configparser.y" /* yacc.c:1646 */ + case 487: +#line 2578 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5413 "util/configparser.c" /* yacc.c:1646 */ +#line 5434 "util/configparser.c" /* yacc.c:1646 */ break; - case 486: -#line 2573 "./util/configparser.y" /* yacc.c:1646 */ + case 488: +#line 2586 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5425,19 +5446,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5429 "util/configparser.c" /* yacc.c:1646 */ +#line 5450 "util/configparser.c" /* yacc.c:1646 */ break; - case 487: -#line 2586 "./util/configparser.y" /* yacc.c:1646 */ + case 489: +#line 2599 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5437 "util/configparser.c" /* yacc.c:1646 */ +#line 5458 "util/configparser.c" /* yacc.c:1646 */ break; - case 495: -#line 2596 "./util/configparser.y" /* yacc.c:1646 */ + case 497: +#line 2609 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5450,11 +5471,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5454 "util/configparser.c" /* yacc.c:1646 */ +#line 5475 "util/configparser.c" /* yacc.c:1646 */ break; - case 496: -#line 2610 "./util/configparser.y" /* yacc.c:1646 */ + case 498: +#line 2623 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5468,11 +5489,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5472 "util/configparser.c" /* yacc.c:1646 */ +#line 5493 "util/configparser.c" /* yacc.c:1646 */ break; - case 497: -#line 2625 "./util/configparser.y" /* yacc.c:1646 */ + case 499: +#line 2638 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -5483,11 +5504,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5487 "util/configparser.c" /* yacc.c:1646 */ +#line 5508 "util/configparser.c" /* yacc.c:1646 */ break; - case 498: -#line 2637 "./util/configparser.y" /* yacc.c:1646 */ + case 500: +#line 2650 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -5501,11 +5522,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5505 "util/configparser.c" /* yacc.c:1646 */ +#line 5526 "util/configparser.c" /* yacc.c:1646 */ break; - case 499: -#line 2652 "./util/configparser.y" /* yacc.c:1646 */ + case 501: +#line 2665 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -5517,11 +5538,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5521 "util/configparser.c" /* yacc.c:1646 */ +#line 5542 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5525 "util/configparser.c" /* yacc.c:1646 */ +#line 5546 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5749,7 +5770,7 @@ yyreturn: #endif return yyresult; } -#line 2664 "./util/configparser.y" /* yacc.c:1906 */ +#line 2677 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index b4cae91f..6196e0c8 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -248,41 +248,42 @@ extern int yydebug; VAR_USE_SYSTEMD = 458, VAR_SHM_ENABLE = 459, VAR_SHM_KEY = 460, - VAR_DNSCRYPT = 461, - VAR_DNSCRYPT_ENABLE = 462, - VAR_DNSCRYPT_PORT = 463, - VAR_DNSCRYPT_PROVIDER = 464, - VAR_DNSCRYPT_SECRET_KEY = 465, - VAR_DNSCRYPT_PROVIDER_CERT = 466, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 467, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 468, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 469, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 470, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 471, - VAR_IPSECMOD_ENABLED = 472, - VAR_IPSECMOD_HOOK = 473, - VAR_IPSECMOD_IGNORE_BOGUS = 474, - VAR_IPSECMOD_MAX_TTL = 475, - VAR_IPSECMOD_WHITELIST = 476, - VAR_IPSECMOD_STRICT = 477, - VAR_CACHEDB = 478, - VAR_CACHEDB_BACKEND = 479, - VAR_CACHEDB_SECRETSEED = 480, - VAR_CACHEDB_REDISHOST = 481, - VAR_CACHEDB_REDISPORT = 482, - VAR_CACHEDB_REDISTIMEOUT = 483, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 484, - VAR_FOR_UPSTREAM = 485, - VAR_AUTH_ZONE = 486, - VAR_ZONEFILE = 487, - VAR_MASTER = 488, - VAR_URL = 489, - VAR_FOR_DOWNSTREAM = 490, - VAR_FALLBACK_ENABLED = 491, - VAR_ADDITIONAL_TLS_PORT = 492, - VAR_LOW_RTT = 493, - VAR_LOW_RTT_PCT = 494, - VAR_ALLOW_NOTIFY = 495 + VAR_ROOT_KEY_SENTINEL = 461, + VAR_DNSCRYPT = 462, + VAR_DNSCRYPT_ENABLE = 463, + VAR_DNSCRYPT_PORT = 464, + VAR_DNSCRYPT_PROVIDER = 465, + VAR_DNSCRYPT_SECRET_KEY = 466, + VAR_DNSCRYPT_PROVIDER_CERT = 467, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 468, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 469, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 470, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 471, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 472, + VAR_IPSECMOD_ENABLED = 473, + VAR_IPSECMOD_HOOK = 474, + VAR_IPSECMOD_IGNORE_BOGUS = 475, + VAR_IPSECMOD_MAX_TTL = 476, + VAR_IPSECMOD_WHITELIST = 477, + VAR_IPSECMOD_STRICT = 478, + VAR_CACHEDB = 479, + VAR_CACHEDB_BACKEND = 480, + VAR_CACHEDB_SECRETSEED = 481, + VAR_CACHEDB_REDISHOST = 482, + VAR_CACHEDB_REDISPORT = 483, + VAR_CACHEDB_REDISTIMEOUT = 484, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 485, + VAR_FOR_UPSTREAM = 486, + VAR_AUTH_ZONE = 487, + VAR_ZONEFILE = 488, + VAR_MASTER = 489, + VAR_URL = 490, + VAR_FOR_DOWNSTREAM = 491, + VAR_FALLBACK_ENABLED = 492, + VAR_ADDITIONAL_TLS_PORT = 493, + VAR_LOW_RTT = 494, + VAR_LOW_RTT_PCT = 495, + VAR_ALLOW_NOTIFY = 496 }; #endif /* Tokens. */ @@ -489,41 +490,42 @@ extern int yydebug; #define VAR_USE_SYSTEMD 458 #define VAR_SHM_ENABLE 459 #define VAR_SHM_KEY 460 -#define VAR_DNSCRYPT 461 -#define VAR_DNSCRYPT_ENABLE 462 -#define VAR_DNSCRYPT_PORT 463 -#define VAR_DNSCRYPT_PROVIDER 464 -#define VAR_DNSCRYPT_SECRET_KEY 465 -#define VAR_DNSCRYPT_PROVIDER_CERT 466 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 467 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 468 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 469 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 470 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 471 -#define VAR_IPSECMOD_ENABLED 472 -#define VAR_IPSECMOD_HOOK 473 -#define VAR_IPSECMOD_IGNORE_BOGUS 474 -#define VAR_IPSECMOD_MAX_TTL 475 -#define VAR_IPSECMOD_WHITELIST 476 -#define VAR_IPSECMOD_STRICT 477 -#define VAR_CACHEDB 478 -#define VAR_CACHEDB_BACKEND 479 -#define VAR_CACHEDB_SECRETSEED 480 -#define VAR_CACHEDB_REDISHOST 481 -#define VAR_CACHEDB_REDISPORT 482 -#define VAR_CACHEDB_REDISTIMEOUT 483 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 484 -#define VAR_FOR_UPSTREAM 485 -#define VAR_AUTH_ZONE 486 -#define VAR_ZONEFILE 487 -#define VAR_MASTER 488 -#define VAR_URL 489 -#define VAR_FOR_DOWNSTREAM 490 -#define VAR_FALLBACK_ENABLED 491 -#define VAR_ADDITIONAL_TLS_PORT 492 -#define VAR_LOW_RTT 493 -#define VAR_LOW_RTT_PCT 494 -#define VAR_ALLOW_NOTIFY 495 +#define VAR_ROOT_KEY_SENTINEL 461 +#define VAR_DNSCRYPT 462 +#define VAR_DNSCRYPT_ENABLE 463 +#define VAR_DNSCRYPT_PORT 464 +#define VAR_DNSCRYPT_PROVIDER 465 +#define VAR_DNSCRYPT_SECRET_KEY 466 +#define VAR_DNSCRYPT_PROVIDER_CERT 467 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 468 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 469 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 470 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 471 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 472 +#define VAR_IPSECMOD_ENABLED 473 +#define VAR_IPSECMOD_HOOK 474 +#define VAR_IPSECMOD_IGNORE_BOGUS 475 +#define VAR_IPSECMOD_MAX_TTL 476 +#define VAR_IPSECMOD_WHITELIST 477 +#define VAR_IPSECMOD_STRICT 478 +#define VAR_CACHEDB 479 +#define VAR_CACHEDB_BACKEND 480 +#define VAR_CACHEDB_SECRETSEED 481 +#define VAR_CACHEDB_REDISHOST 482 +#define VAR_CACHEDB_REDISPORT 483 +#define VAR_CACHEDB_REDISTIMEOUT 484 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 485 +#define VAR_FOR_UPSTREAM 486 +#define VAR_AUTH_ZONE 487 +#define VAR_ZONEFILE 488 +#define VAR_MASTER 489 +#define VAR_URL 490 +#define VAR_FOR_DOWNSTREAM 491 +#define VAR_FALLBACK_ENABLED 492 +#define VAR_ADDITIONAL_TLS_PORT 493 +#define VAR_LOW_RTT 494 +#define VAR_LOW_RTT_PCT 495 +#define VAR_ALLOW_NOTIFY 496 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -534,7 +536,7 @@ union YYSTYPE char* str; -#line 538 "util/configparser.h" /* yacc.c:1909 */ +#line 540 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 16f89ec2..a71bf914 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -142,6 +142,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_FAKE_DSA VAR_FAKE_SHA1 %token VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR VAR_TRUST_ANCHOR_SIGNALING %token VAR_AGGRESSIVE_NSEC VAR_USE_SYSTEMD VAR_SHM_ENABLE VAR_SHM_KEY +%token VAR_ROOT_KEY_SENTINEL %token VAR_DNSCRYPT VAR_DNSCRYPT_ENABLE VAR_DNSCRYPT_PORT VAR_DNSCRYPT_PROVIDER %token VAR_DNSCRYPT_SECRET_KEY VAR_DNSCRYPT_PROVIDER_CERT %token VAR_DNSCRYPT_PROVIDER_CERT_ROTATED @@ -242,6 +243,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_response_ip_tag | server_response_ip | server_response_ip_data | server_shm_enable | server_shm_key | server_fake_sha1 | server_hide_trustanchor | server_trust_anchor_signaling | + server_root_key_sentinel | server_ipsecmod_enabled | server_ipsecmod_hook | server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl | server_ipsecmod_whitelist | server_ipsecmod_strict | @@ -871,6 +873,17 @@ server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG free($2); } ; +server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG + { + OUTYY(("P(server_root_key_sentinel:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else + cfg_parser->cfg->root_key_sentinel = + (strcmp($2, "yes")==0); + free($2); + } + ; server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG { OUTYY(("P(server_domain_insecure:%s)\n", $2)); diff --git a/util/data/dname.c b/util/data/dname.c index 517af284..c7360f75 100644 --- a/util/data/dname.c +++ b/util/data/dname.c @@ -523,6 +523,29 @@ dname_lab_cmp(uint8_t* d1, int labs1, uint8_t* d2, int labs2, int* mlabs) return lastdiff; } +int +dname_lab_startswith(uint8_t* label, char* prefix, char** endptr) +{ + size_t plen = strlen(prefix); + size_t orig_plen = plen; + size_t lablen = (size_t)*label; + if(plen > lablen) + return 0; + label++; + while(plen--) { + if(*prefix != tolower((unsigned char)*label)) { + return 0; + } + prefix++; label++; + } + if(orig_plen < lablen) + *endptr = (char *)label; + else + /* prefix length == label length */ + *endptr = NULL; + return 1; +} + int dname_buffer_write(sldns_buffer* pkt, uint8_t* dname) { diff --git a/util/data/dname.h b/util/data/dname.h index 53b341bf..53a33c68 100644 --- a/util/data/dname.h +++ b/util/data/dname.h @@ -185,6 +185,17 @@ int dname_count_size_labels(uint8_t* dname, size_t* size); */ int dname_lab_cmp(uint8_t* d1, int labs1, uint8_t* d2, int labs2, int* mlabs); +/** + * Check if labels starts with given prefix + * @param label: dname label + * @param prefix: the string to match label with, null terminated. + * @param endptr: pointer to location in label after prefix, only if return + * value is 1. NULL if nothing in the label after the prefix, i.e. prefix + * and label are the same. + * @return: 1 if label starts with prefix, else 0 + */ +int dname_lab_startswith(uint8_t* label, char* prefix, char** endptr); + /** * See if domain name d1 is a strict subdomain of d2. * That is a subdomain, but not equal. diff --git a/util/data/packed_rrset.c b/util/data/packed_rrset.c index 9944087c..7b9d5494 100644 --- a/util/data/packed_rrset.c +++ b/util/data/packed_rrset.c @@ -253,6 +253,7 @@ sec_status_to_string(enum sec_status s) case sec_status_bogus: return "sec_status_bogus"; case sec_status_indeterminate: return "sec_status_indeterminate"; case sec_status_insecure: return "sec_status_insecure"; + case sec_status_secure_sentinel_fail: return "sec_status_secure_sentinel_fail"; case sec_status_secure: return "sec_status_secure"; } return "unknown_sec_status_value"; diff --git a/util/data/packed_rrset.h b/util/data/packed_rrset.h index 28f603d6..3a5335dd 100644 --- a/util/data/packed_rrset.h +++ b/util/data/packed_rrset.h @@ -187,6 +187,10 @@ enum sec_status { * insecure. Generally this means that this RRset is below a trust * anchor, but also below a verified, insecure delegation. */ sec_status_insecure, + /** SECURE_SENTINEL_FAIL means that the object (RRset or message) + * validated according to local policy but did not succeed in the root + * KSK sentinel test (draft-ietf-dnsop-kskroll-sentinel). */ + sec_status_secure_sentinel_fail, /** SECURE means that the object (RRset or message) validated * according to local policy. */ sec_status_secure diff --git a/validator/val_anchor.c b/validator/val_anchor.c index 6c632244..8ae9e7f3 100644 --- a/validator/val_anchor.c +++ b/validator/val_anchor.c @@ -1309,3 +1309,44 @@ anchor_list_keytags(struct trust_anchor* ta, uint16_t* list, size_t num) qsort(list, ret, sizeof(*list), keytag_compare); return ret; } + +int +anchor_has_keytag(struct val_anchors* anchors, uint8_t* name, int namelabs, + size_t namelen, uint16_t dclass, uint16_t keytag) +{ + uint16_t* taglist; + uint16_t* tl; + size_t numtag, i; + struct trust_anchor* anchor = anchor_find(anchors, + name, namelabs, namelen, dclass); + if(!anchor) + return 0; + if(!anchor->numDS && !anchor->numDNSKEY) { + lock_basic_unlock(&anchor->lock); + return 0; + } + + taglist = calloc(anchor->numDS + anchor->numDNSKEY, sizeof(*taglist)); + if(!taglist) { + lock_basic_unlock(&anchor->lock); + return 0; + } + + numtag = anchor_list_keytags(anchor, taglist, + anchor->numDS+anchor->numDNSKEY); + lock_basic_unlock(&anchor->lock); + if(!numtag) { + free(taglist); + return 0; + } + tl = taglist; + for(i=0; i<numtag; i++) { + if(*tl == keytag) { + free(taglist); + return 1; + } + tl++; + } + free(taglist); + return 0; +} diff --git a/validator/val_anchor.h b/validator/val_anchor.h index 318a2b22..a2a795d0 100644 --- a/validator/val_anchor.h +++ b/validator/val_anchor.h @@ -227,4 +227,19 @@ void anchors_delete_insecure(struct val_anchors* anchors, uint16_t c, */ size_t anchor_list_keytags(struct trust_anchor* ta, uint16_t* list, size_t num); +/** + * Check if there is a trust anchor for given zone with this keytag. + * + * @param anchors: anchor storage + * @param name: name of trust anchor (wireformat) + * @param namelabs: labels in name + * @param namelen: length of name + * @param dclass: class of trust anchor + * @param keytag: keytag + * @return 1 if there is a trust anchor in the trustachor store for this zone + * and keytag, else 0. + */ +int anchor_has_keytag(struct val_anchors* anchors, uint8_t* name, int namelabs, + size_t namelen, uint16_t dclass, uint16_t keytag); + #endif /* VALIDATOR_VAL_ANCHOR_H */ diff --git a/validator/validator.c b/validator/validator.c index 5ed45e9b..a06b676a 100644 --- a/validator/validator.c +++ b/validator/validator.c @@ -40,6 +40,7 @@ * According to RFC 4034. */ #include "config.h" +#include <ctype.h> #include "validator/validator.h" #include "validator/val_anchor.h" #include "validator/val_kcache.h" @@ -477,6 +478,31 @@ generate_keytag_query(struct module_qstate* qstate, int id, return 1; } +/** + * Get keytag as uint16_t from string + * + * @param start: start of string containing keytag + * @param keytag: pointer where to store the extracted keytag + * @return: 1 if keytag was extracted, else 0. + */ +static int +sentinel_get_keytag(char* start, uint16_t* keytag) { + char* keytag_str; + char* e = NULL; + keytag_str = calloc(1, SENTINEL_KEYTAG_LEN + 1 /* null byte */); + if(!keytag_str) + return 0; + strncpy(keytag_str, start, SENTINEL_KEYTAG_LEN); + keytag_str[SENTINEL_KEYTAG_LEN] = '\0'; + *keytag = (uint16_t)strtol(keytag_str, &e, 10); + if(!e || *e != '\0') { + free(keytag_str); + return 0; + } + free(keytag_str); + return 1; +} + /** * Prime trust anchor for use. * Generate and dispatch a priming query for the given trust anchor. @@ -2223,6 +2249,34 @@ processFinished(struct module_qstate* qstate, struct val_qstate* vq, vq->orig_msg->rep->security = sec_status_indeterminate; } + if(vq->orig_msg->rep->security == sec_status_secure && + qstate->env->cfg->root_key_sentinel && + (qstate->qinfo.qtype == LDNS_RR_TYPE_A || + qstate->qinfo.qtype == LDNS_RR_TYPE_AAAA)) { + char* keytag_start; + uint16_t keytag; + if(*qstate->qinfo.qname == strlen(SENTINEL_IS) + + SENTINEL_KEYTAG_LEN && + dname_lab_startswith(qstate->qinfo.qname, SENTINEL_IS, + &keytag_start)) { + if(sentinel_get_keytag(keytag_start, &keytag) && + !anchor_has_keytag(qstate->env->anchors, + (uint8_t*)"", 1, 0, vq->qchase.qclass, keytag)) { + vq->orig_msg->rep->security = + sec_status_secure_sentinel_fail; + } + } else if(*qstate->qinfo.qname == strlen(SENTINEL_NOT) + + SENTINEL_KEYTAG_LEN && + dname_lab_startswith(qstate->qinfo.qname, SENTINEL_NOT, + &keytag_start)) { + if(sentinel_get_keytag(keytag_start, &keytag) && + anchor_has_keytag(qstate->env->anchors, + (uint8_t*)"", 1, 0, vq->qchase.qclass, keytag)) { + vq->orig_msg->rep->security = + sec_status_secure_sentinel_fail; + } + } + } /* store results in cache */ if(qstate->query_flags&BIT_RD) { /* if secure, this will override cache anyway, no need diff --git a/validator/validator.h b/validator/validator.h index 9a591078..9e4c8a94 100644 --- a/validator/validator.h +++ b/validator/validator.h @@ -67,6 +67,13 @@ struct config_strlist; /** max number of query restarts, number of IPs to probe */ #define VAL_MAX_RESTART_COUNT 5 +/** Root key sentinel is ta preamble */ +#define SENTINEL_IS "root-key-sentinel-is-ta-" +/** Root key sentinel is not ta preamble */ +#define SENTINEL_NOT "root-key-sentinel-not-ta-" +/** Root key sentinal keytag length */ +#define SENTINEL_KEYTAG_LEN 5 + /** * Global state for the validator. */