From 52e2331dd495ca820c631d9aab6649455cb0c6e5 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 17 Oct 2017 07:34:49 +0000 Subject: [PATCH] - [dnscrypt] prevent dnscrypt-secret-key, dnscrypt-provider-cert duplicates - [dnscrypt] introduce dnscrypt-provider-cert-rotated option, from Manu Bretelle. This option allows handling multiple cert/key pairs while only distributing some of them. In order to reliably match a client magic with a given key without strong assumption as to how those were generated, we need both key and cert. Likewise, in order to know which ES version should be used. On the other hand, when rotating a cert, it can be desirable to only serve the new cert but still be able to handle clients that are still using the old certs's public key. The `dnscrypt-provider-cert-rotated` allow to instruct unbound to not publish the cert as part of the DNS's provider_name's TXT answer. git-svn-id: file:///svn/unbound/trunk@4373 be551aaa-1e26-0410-a405-d3ace91eadb9 --- dnscrypt/dnscrypt.c | 49 +- dnscrypt/dnscrypt.h | 2 + doc/Changelog | 16 +- doc/unbound.conf.5.in | 13 + util/config_file.c | 27 +- util/config_file.h | 13 + util/configlexer.c | 1578 ++++++++++++++++++------------------- util/configlexer.lex | 1 + util/configparser.c | 1713 +++++++++++++++++++++-------------------- util/configparser.h | 60 +- util/configparser.y | 13 + 11 files changed, 1819 insertions(+), 1666 deletions(-) diff --git a/dnscrypt/dnscrypt.c b/dnscrypt/dnscrypt.c index a0db12077..8103107b2 100644 --- a/dnscrypt/dnscrypt.c +++ b/dnscrypt/dnscrypt.c @@ -5,6 +5,7 @@ #ifdef HAVE_TIME_H #include #endif +#include #include #include #include "sldns/sbuffer.h" @@ -588,18 +589,26 @@ dnsc_chroot_path(struct config_file *cfg, char *path) static int dnsc_parse_certs(struct dnsc_env *env, struct config_file *cfg) { - struct config_strlist *head; + struct config_strlist *head, *head2; size_t signed_cert_id; + size_t rotated_cert_id; char *nm; env->signed_certs_count = 0U; + env->rotated_certs_count = 0U; for (head = cfg->dnscrypt_provider_cert; head; head = head->next) { env->signed_certs_count++; } + for (head = cfg->dnscrypt_provider_cert_rotated; head; head = head->next) { + env->rotated_certs_count++; + } env->signed_certs = sodium_allocarray(env->signed_certs_count, sizeof *env->signed_certs); + env->rotated_certs = sodium_allocarray(env->rotated_certs_count, + sizeof env->signed_certs); signed_cert_id = 0U; + rotated_cert_id = 0U; for(head = cfg->dnscrypt_provider_cert; head; head = head->next, signed_cert_id++) { nm = dnsc_chroot_path(cfg, head->str); if(dnsc_read_from_file( @@ -608,6 +617,14 @@ dnsc_parse_certs(struct dnsc_env *env, struct config_file *cfg) sizeof(struct SignedCert)) != 0) { fatal_exit("dnsc_parse_certs: failed to load %s: %s", head->str, strerror(errno)); } + for(head2 = cfg->dnscrypt_provider_cert_rotated; head2; head2 = head2->next) { + if(strcmp(head->str, head2->str) == 0) { + *(env->rotated_certs + rotated_cert_id) = env->signed_certs + signed_cert_id; + rotated_cert_id++; + verbose(VERB_OPS, "Cert %s is rotated and will not be distributed via DNS", head->str); + break; + } + } verbose(VERB_OPS, "Loaded cert %s", head->str); } return signed_cert_id; @@ -692,7 +709,27 @@ dnsc_load_local_data(struct dnsc_env* dnscenv, struct config_file *cfg) // 2.dnscrypt-cert.example.com 86400 IN TXT "DNSC......" for(i=0; isigned_certs_count; i++) { const char *ttl_class_type = " 86400 IN TXT \""; + int rotated_cert = 0; + uint32_t serial; struct SignedCert *cert = dnscenv->signed_certs + i; + // Check if the certificate is being rotated and should not be published + for(j=0; jrotated_certs_count; j++){ + if(cert == dnscenv->rotated_certs[j]) { + rotated_cert = 1; + break; + } + } + memcpy(&serial, cert->serial, sizeof serial); + serial = htonl(serial); + if(rotated_cert) { + verbose(VERB_OPS, + "DNSCrypt: not adding cert with serial #%" + PRIu32 + " to local-data as it is rotated", + serial + ); + continue; + } uint16_t rrlen = strlen(dnscenv->provider_name) + strlen(ttl_class_type) + 4 * sizeof(struct SignedCert) + // worst case scenario @@ -705,14 +742,19 @@ dnsc_load_local_data(struct dnsc_env* dnscenv, struct config_file *cfg) } snprintf(rr, rrlen - 1, "%s 86400 IN TXT \"", dnscenv->provider_name); for(j=0; jlocal_data, strdup(rr)); free(rr); @@ -957,6 +999,7 @@ dnsc_delete(struct dnsc_env *env) } verbose(VERB_OPS, "DNSCrypt: Freeing environment."); sodium_free(env->signed_certs); + sodium_free(env->rotated_certs); sodium_free(env->certs); sodium_free(env->keypairs); slabhash_delete(env->shared_secrets_cache); diff --git a/dnscrypt/dnscrypt.h b/dnscrypt/dnscrypt.h index 7dec2c488..666f54e62 100644 --- a/dnscrypt/dnscrypt.h +++ b/dnscrypt/dnscrypt.h @@ -54,8 +54,10 @@ typedef struct cert_ { struct dnsc_env { struct SignedCert *signed_certs; + struct SignedCert **rotated_certs; dnsccert *certs; size_t signed_certs_count; + size_t rotated_certs_count; uint8_t provider_publickey[crypto_sign_ed25519_PUBLICKEYBYTES]; uint8_t provider_secretkey[crypto_sign_ed25519_SECRETKEYBYTES]; KeyPair *keypairs; diff --git a/doc/Changelog b/doc/Changelog index 68ac8646d..dfbdc9bcf 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,20 @@ -11 October 2017: Wouter +17 October 2017: Wouter - Fix #1749: With harden-referral-path: performance drops, due to circular dependency in NS and DS lookups. + - [dnscrypt] prevent dnscrypt-secret-key, dnscrypt-provider-cert + duplicates + - [dnscrypt] introduce dnscrypt-provider-cert-rotated option, + from Manu Bretelle. + This option allows handling multiple cert/key pairs while only + distributing some of them. + In order to reliably match a client magic with a given key without + strong assumption as to how those were generated, we need both key and + cert. Likewise, in order to know which ES version should be used. + On the other hand, when rotating a cert, it can be desirable to only + serve the new cert but still be able to handle clients that are still + using the old certs's public key. + The `dnscrypt-provider-cert-rotated` allow to instruct unbound to not + publish the cert as part of the DNS's provider_name's TXT answer. 10 October 2017: Wouter - tag 1.6.7 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index c61340488..41154bee2 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1513,6 +1513,19 @@ times. Path to the certificate related to the \fBdnscrypt\-secret\-key\fRs. This option may be specified multiple times. .TP +.B dnscrypt\-provider\-cert\-rotated: \fI\fR +Path to a certificate that we should be able to serve existing connection from +but do not want to advertise over \fBdnscrypt\-provider\fR's TXT record certs +distribution. +A typical use case is when rotating certificates, existing clients may still use +the client magic from the old cert in their queries until they fetch and update +the new cert. Likewise, it would allow to prime the new cert/key without +distributing the new cert yet, this can be useful when using a network of +servers using anycast and on which the configuration may not get updated at the +exact same time. By priming the cert, the servers can handle both old and new +certs traffic while distributing only one. +This option may be specified multiple times. +.TP .B dnscrypt\-shared\-secret\-cache\-size: \fI Give the size of the data structure in which the shared secret keys are kept in. Default 4m. In bytes or use m(mega), k(kilo), g(giga). diff --git a/util/config_file.c b/util/config_file.c index ae3b6682e..c20d0ba89 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -282,6 +282,7 @@ config_create(void) cfg->dnscrypt_port = 0; cfg->dnscrypt_provider = NULL; cfg->dnscrypt_provider_cert = NULL; + cfg->dnscrypt_provider_cert_rotated = NULL; cfg->dnscrypt_secret_key = NULL; cfg->dnscrypt_shared_secret_cache_size = 4*1024*1024; cfg->dnscrypt_shared_secret_cache_slabs = 4; @@ -374,6 +375,10 @@ struct config_file* config_create_forlib(void) /** put string into strlist */ #define S_STRLIST(str, var) if(strcmp(opt, str)==0) \ { return cfg_strlist_insert(&cfg->var, strdup(val)); } +/** put string into strlist if not present yet*/ +#define S_STRLIST_UNIQ(str, var) if(strcmp(opt, str)==0) \ + { if(cfg_strlist_find(cfg->var, val)) { return 0;} \ + return cfg_strlist_insert(&cfg->var, strdup(val)); } int config_set_option(struct config_file* cfg, const char* opt, const char* val) @@ -570,8 +575,9 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("dnscrypt-enable:", dnscrypt) else S_NUMBER_NONZERO("dnscrypt-port:", dnscrypt_port) else S_STR("dnscrypt-provider:", dnscrypt_provider) - else S_STRLIST("dnscrypt-provider-cert:", dnscrypt_provider_cert) - else S_STRLIST("dnscrypt-secret-key:", dnscrypt_secret_key) + else S_STRLIST_UNIQ("dnscrypt-provider-cert:", dnscrypt_provider_cert) + else S_STRLIST("dnscrypt-provider-cert-rotated:", dnscrypt_provider_cert_rotated) + else S_STRLIST_UNIQ("dnscrypt-secret-key:", dnscrypt_secret_key) else S_MEMSIZE("dnscrypt-shared-secret-cache-size:", dnscrypt_shared_secret_cache_size) else S_POW2("dnscrypt-shared-secret-cache-slabs:", @@ -941,6 +947,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "dnscrypt-port", dnscrypt_port) else O_STR(opt, "dnscrypt-provider", dnscrypt_provider) else O_LST(opt, "dnscrypt-provider-cert", dnscrypt_provider_cert) + else O_LST(opt, "dnscrypt-provider-cert-rotated", dnscrypt_provider_cert_rotated) else O_LST(opt, "dnscrypt-secret-key", dnscrypt_secret_key) else O_MEM(opt, "dnscrypt-shared-secret-cache-size", dnscrypt_shared_secret_cache_size) @@ -1458,6 +1465,22 @@ cfg_region_strlist_insert(struct regional* region, return 1; } +struct config_strlist* +cfg_strlist_find(struct config_strlist* head, const char *item) +{ + struct config_strlist *s = head; + if(!head){ + return NULL; + } + while(s) { + if(strcmp(s->str, item) == 0) { + return s; + } + s = s->next; + } + return NULL; +} + int cfg_strlist_insert(struct config_strlist** head, char* item) { diff --git a/util/config_file.h b/util/config_file.h index 5d9b2d0be..364d0265d 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -466,6 +466,10 @@ struct config_file { struct config_strlist* dnscrypt_secret_key; /** dnscrypt provider certs 1.cert */ struct config_strlist* dnscrypt_provider_cert; + /** dnscrypt provider certs 1.cert which have been rotated and should not be + * advertised through DNS's providername TXT record but are required to be + * able to handle existing traffic using the old cert. */ + struct config_strlist* dnscrypt_provider_cert_rotated; /** memory size in bytes for dnscrypt shared secrets cache */ size_t dnscrypt_shared_secret_cache_size; /** number of slabs for dnscrypt shared secrets cache */ @@ -720,6 +724,15 @@ char* config_collate_cat(struct config_strlist* list); */ int cfg_strlist_append(struct config_strlist_head* list, char* item); +/** + * Find string in strlist. + * @param head: pointer to strlist head variable. + * @param item: the item to search for. + * @return: the element in the list when found, NULL otherwise. + */ +struct config_strlist* cfg_strlist_find(struct config_strlist* head, + const char* item); + /** * Insert string into strlist. * @param head: pointer to strlist head variable. diff --git a/util/configlexer.c b/util/configlexer.c index 866156d1b..64d9c596c 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -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 237 -#define YY_END_OF_BUFFER 238 +#define YY_NUM_RULES 238 +#define YY_END_OF_BUFFER 239 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,265 +372,266 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2341] = +static yyconst flex_int16_t yy_accept[2350] = { 0, - 1, 1, 219, 219, 223, 223, 227, 227, 231, 231, - 1, 1, 238, 235, 1, 217, 217, 236, 2, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 219, 220, 220, 221, 236, 223, 224, 224, 225, - 236, 230, 227, 228, 228, 229, 236, 231, 232, 232, - 233, 236, 234, 218, 2, 222, 236, 234, 235, 0, - 1, 2, 2, 2, 2, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 1, 1, 220, 220, 224, 224, 228, 228, 232, 232, + 1, 1, 239, 236, 1, 218, 218, 237, 2, 237, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 220, 221, 221, 222, 237, 224, 225, 225, 226, + 237, 231, 228, 229, 229, 230, 237, 232, 233, 233, + 234, 237, 235, 219, 2, 223, 237, 235, 236, 0, + 1, 2, 2, 2, 2, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 219, 0, 223, 0, 230, 0, 227, - 231, 0, 234, 0, 2, 2, 234, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 220, 0, 224, 0, 231, 0, 228, + 232, 0, 235, 0, 2, 2, 235, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 234, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 235, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 234, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 77, - 235, 235, 235, 235, 235, 235, 8, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 235, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 77, + 236, 236, 236, 236, 236, 236, 8, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 88, - 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 88, + 235, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, - 235, 235, 235, 235, 235, 235, 235, 37, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 170, 235, 14, 15, 235, 18, 17, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 235, + 236, 236, 236, 236, 236, 236, 236, 37, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 170, 236, 14, 15, 236, 18, 17, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 156, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 3, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 234, 235, 235, 235, - 214, 235, 235, 213, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 156, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 3, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 235, 236, 236, 236, + 215, 236, 236, 214, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 226, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 40, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 41, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 145, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 20, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 103, 235, 226, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 227, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 40, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 41, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 145, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 20, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 103, 236, 227, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 197, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 120, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 102, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 75, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 197, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 120, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 102, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 75, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 25, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 38, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 39, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 121, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 28, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 25, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 38, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 39, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 121, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 28, 236, 236, 236, 236, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 185, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 32, 235, - 33, 235, 235, 235, 78, 235, 79, 235, 235, 76, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 7, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 163, 235, 235, 235, 235, 105, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 185, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 32, 236, + 33, 236, 236, 236, 78, 236, 79, 236, 236, 76, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 7, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 163, 236, 236, 236, 236, 105, 236, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 29, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 137, 235, 136, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 16, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 42, 235, 235, - 235, 235, 235, 235, 235, 144, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 29, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 137, 236, 136, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 16, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 42, 236, 236, + 236, 236, 236, 236, 236, 144, 236, 236, 236, 236, - 81, 80, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 131, 235, 235, 235, 235, 235, 235, 235, 235, - 89, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 60, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 64, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 36, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 134, + 81, 80, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 131, 236, 236, 236, 236, 236, 236, 236, 236, + 89, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 60, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 64, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 36, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 134, - 135, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 6, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 195, 235, 235, 215, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 26, 235, 235, 235, 235, 235, 235, 235, - 235, 127, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 149, 235, 128, 235, 235, 161, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 27, 235, 235, 235, 235, 84, + 135, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 6, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 195, 236, 236, 216, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 26, 236, 236, 236, 236, 236, 236, 236, + 236, 127, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 149, 236, 128, 236, 236, 161, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 27, 236, 236, 236, 236, 84, - 235, 85, 235, 83, 235, 235, 235, 235, 235, 235, - 235, 235, 100, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 184, 235, 235, 235, 235, 235, - 235, 235, 235, 129, 235, 235, 235, 235, 235, 132, - 235, 235, 160, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 74, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 34, 235, 235, 22, 235, - 235, 235, 235, 19, 235, 110, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 85, 236, 83, 236, 236, 236, 236, 236, 236, + 236, 236, 100, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 184, 236, 236, 236, 236, 236, + 236, 236, 236, 129, 236, 236, 236, 236, 236, 132, + 236, 236, 160, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 74, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 34, 236, 236, 22, 236, + 236, 236, 236, 19, 236, 110, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 235, 49, 51, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 199, 235, 235, 235, 171, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 86, 235, 235, 235, 235, 235, 235, - 235, 99, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 209, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 104, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 155, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 119, + 236, 49, 51, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 199, 236, 236, 236, 171, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 86, 236, 236, 236, 236, 236, 236, + 236, 99, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 210, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 104, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 155, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 119, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 115, 235, 122, 235, 235, - 235, 235, 235, 92, 235, 235, 70, 235, 235, 235, - 235, 147, 235, 235, 235, 235, 235, 162, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 176, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 118, 235, 235, 235, 235, 235, - 52, 53, 235, 235, 235, 235, 235, 35, 235, 235, - 235, 235, 235, 59, 123, 235, 138, 235, 164, 133, - 235, 235, 235, 45, 235, 125, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 115, 236, 122, 236, 236, + 236, 236, 236, 92, 236, 236, 70, 236, 236, 236, + 236, 147, 236, 236, 236, 236, 236, 162, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 176, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 118, 236, 236, 236, 236, 236, + 52, 53, 236, 236, 236, 236, 236, 35, 236, 236, + 236, 236, 236, 59, 123, 236, 138, 236, 164, 133, + 236, 236, 236, 45, 236, 125, 236, 236, 236, 236, - 235, 9, 235, 235, 235, 73, 235, 235, 235, 235, - 189, 235, 146, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 106, 198, 235, 235, 235, 235, 175, 235, - 235, 235, 235, 235, 235, 235, 235, 157, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 212, 235, 124, 235, 235, 235, 44, 46, 235, + 236, 9, 236, 236, 236, 73, 236, 236, 236, 236, + 189, 236, 146, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 106, 198, 236, 236, 236, 236, 175, 236, + 236, 236, 236, 236, 236, 236, 236, 157, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 213, 236, 124, 236, 236, 236, 44, 46, 236, - 235, 235, 235, 235, 235, 235, 72, 235, 235, 235, - 235, 187, 235, 194, 235, 235, 235, 235, 235, 151, - 23, 24, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 69, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 153, 150, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 43, 235, 235, 235, 235, 235, 235, - 235, 235, 101, 13, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 207, 235, 210, 235, 235, 235, 235, - 235, 235, 12, 235, 235, 21, 235, 235, 235, 193, + 236, 236, 236, 236, 236, 236, 72, 236, 236, 236, + 236, 187, 236, 194, 236, 236, 236, 236, 236, 151, + 23, 24, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 69, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 153, 150, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 43, 236, 236, 236, 236, 236, 236, + 236, 236, 101, 13, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 208, 236, 211, 236, 236, 236, 236, + 236, 236, 12, 236, 236, 21, 236, 236, 236, 193, - 235, 196, 47, 235, 159, 235, 152, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 114, 113, 235, 235, 235, 235, 235, 235, 235, - 154, 148, 235, 235, 235, 200, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 54, 235, 235, - 235, 188, 235, 235, 235, 235, 235, 158, 235, 235, - 235, 235, 235, 235, 235, 235, 48, 235, 235, 235, - 82, 235, 107, 235, 109, 235, 139, 235, 235, 235, - 112, 235, 235, 165, 235, 235, 235, 235, 235, 94, + 236, 196, 47, 236, 159, 236, 152, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 114, 113, 236, 236, 236, 236, 236, 236, 236, + 154, 148, 236, 236, 236, 200, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 54, 236, 236, + 236, 188, 236, 236, 236, 236, 236, 158, 236, 236, + 236, 236, 236, 236, 236, 236, 48, 236, 236, 236, + 82, 236, 107, 236, 109, 236, 139, 236, 236, 236, + 112, 236, 236, 165, 236, 236, 236, 236, 236, 94, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 172, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 140, 235, 235, 186, 235, - 211, 235, 235, 235, 30, 235, 235, 235, 235, 4, - 235, 235, 93, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 168, 235, 235, 235, 235, 235, - 235, 235, 201, 235, 235, 235, 235, 235, 235, 174, - 235, 235, 143, 235, 235, 235, 235, 235, 235, 235, - 235, 57, 235, 31, 192, 235, 169, 235, 235, 11, - 235, 235, 235, 235, 235, 235, 141, 61, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 172, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 140, 236, 236, 186, 236, + 212, 236, 236, 236, 30, 236, 236, 236, 236, 4, + 236, 236, 93, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 168, 236, 236, 236, 236, 236, + 236, 236, 201, 236, 236, 236, 236, 236, 236, 174, + 236, 236, 143, 236, 236, 236, 236, 236, 236, 236, + 236, 57, 236, 31, 192, 236, 169, 236, 236, 11, + 236, 236, 236, 236, 236, 236, 141, 61, 236, 236, - 235, 235, 235, 117, 235, 235, 235, 235, 235, 96, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 173, - 90, 235, 87, 235, 235, 235, 63, 67, 62, 235, - 55, 235, 235, 235, 10, 235, 235, 235, 190, 235, - 235, 235, 235, 116, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 68, 66, 235, 56, 208, 235, 235, 235, 130, - 235, 235, 142, 235, 235, 235, 235, 235, 235, 108, - 50, 235, 235, 235, 235, 202, 235, 235, 235, 235, - 235, 235, 235, 91, 65, 97, 98, 58, 235, 191, + 236, 236, 236, 117, 236, 236, 236, 236, 236, 96, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 173, + 90, 236, 87, 236, 236, 236, 63, 67, 62, 236, + 55, 236, 236, 236, 10, 236, 236, 236, 190, 236, + 236, 236, 236, 116, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 68, 66, 236, 56, 209, 236, 236, 236, 130, + 236, 236, 142, 236, 236, 236, 236, 236, 236, 108, + 50, 236, 236, 236, 236, 236, 202, 236, 236, 236, + 236, 236, 236, 236, 91, 65, 97, 98, 58, 236, - 111, 235, 235, 235, 235, 167, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 71, 235, 166, 235, 183, - 205, 235, 235, 235, 235, 235, 235, 235, 235, 5, - 235, 235, 235, 206, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 95, 235, 235, 235, 235, 235, 235, - 235, 235, 126, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 191, 111, 236, 236, 236, 236, 167, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 71, 236, + 166, 236, 183, 206, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 5, 236, 236, 236, 207, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 95, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 126, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 203, - 235, 235, 235, 235, 235, 235, 235, 235, 216, 235, - 235, 179, 235, 235, 235, 235, 235, 203, 235, 235, - 235, 235, 235, 235, 204, 235, 235, 235, 177, 235, - 180, 181, 235, 235, 235, 235, 235, 178, 182, 0 + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 217, 236, 236, + 179, 236, 236, 236, 236, 236, 204, 236, 236, 236, + 236, 236, 236, 205, 236, 236, 236, 177, 236, 180, + 181, 236, 236, 236, 236, 236, 178, 182, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -673,15 +674,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[2355] = +static yyconst flex_uint16_t yy_base[2364] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 3642, 3416, 81, 4589, 4589, 4589, 96, 52, + 90, 112, 3642, 3416, 81, 4607, 4607, 4607, 96, 52, 72, 63, 107, 111, 70, 91, 109, 124, 98, 127, 114, 133, 136, 130, 144, 146, 163, 165, 171, 179, - 186, 3294, 4589, 4589, 4589, 164, 3246, 4589, 4589, 4589, - 95, 2906, 2815, 4589, 4589, 4589, 206, 2513, 4589, 4589, - 4589, 176, 2465, 4589, 212, 4589, 216, 147, 2167, 220, + 186, 3294, 4607, 4607, 4607, 164, 3246, 4607, 4607, 4607, + 95, 2906, 2815, 4607, 4607, 4607, 206, 2513, 4607, 4607, + 4607, 176, 2465, 4607, 212, 4607, 216, 147, 2167, 220, 147, 0, 227, 0, 0, 221, 188, 97, 222, 228, 158, 214, 216, 229, 232, 233, 156, 240, 238, 236, 190, 239, 242, 243, 145, 245, 258, 254, 246, 262, @@ -714,13 +715,13 @@ static yyconst flex_uint16_t yy_base[2355] = 763, 772, 762, 764, 765, 771, 773, 783, 784, 776, 777, 786, 708, 792, 789, 790, 802, 798, 801, 800, 805, 809, 811, 813, 815, 814, 816, 824, 821, 822, - 823, 830, 832, 833, 831, 836, 841, 834, 847, 4589, - 849, 838, 624, 842, 840, 852, 4589, 853, 854, 856, + 823, 830, 832, 833, 831, 836, 841, 834, 847, 4607, + 849, 838, 624, 842, 840, 852, 4607, 853, 854, 856, 863, 858, 861, 862, 869, 878, 865, 879, 881, 880, 883, 868, 884, 887, 886, 892, 893, 889, 910, 895, 898, 896, 919, 904, 900, 902, 906, 914, 927, 923, - 921, 925, 930, 931, 932, 934, 935, 941, 942, 4589, + 921, 925, 930, 931, 932, 934, 935, 941, 942, 4607, 946, 951, 947, 944, 957, 952, 958, 955, 967, 970, 968, 975, 971, 973, 972, 974, 978, 977, 982, 990, 986, 992, 995, 1003, 1001, 1005, 1008, 985, 1007, 1009, @@ -734,472 +735,474 @@ static yyconst flex_uint16_t yy_base[2355] = 1134, 1135, 1137, 1136, 1139, 1138, 1142, 1143, 1152, 1147, 1148, 1159, 1164, 1150, 1162, 1165, 1163, 1157, 1171, 1174, 1172, 1175, 1178, 1180, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1198, 1193, 1201, 1206, 1209, 1210, 4589, 1205, 1217, + 1192, 1198, 1193, 1201, 1206, 1209, 1210, 4607, 1205, 1217, 1212, 1216, 1213, 1218, 1227, 1222, 1223, 1226, 1228, 1233, - 4589, 1229, 4589, 4589, 1237, 4589, 4589, 1231, 1243, 1235, + 4607, 1229, 4607, 4607, 1237, 4607, 4607, 1231, 1243, 1235, 1246, 1256, 1259, 1260, 1258, 1250, 1265, 1266, 1270, 1269, 1274, 1275, 1277, 1284, 1282, 1286, 1288, 1294, 1290, 1280, 1297, 1295, 1298, 1300, 1303, 1305, 1307, 1306, 1310, 1309, 1312, 1313, 1325, 1329, 1327, 1326, 1328, 1331, 1316, 1333, - 1335, 1337, 1341, 1343, 1345, 1350, 1346, 4589, 1348, 1349, - 1351, 1355, 1347, 1362, 1359, 1364, 1366, 1367, 1368, 4589, + 1335, 1337, 1341, 1343, 1345, 1350, 1346, 4607, 1348, 1349, + 1351, 1355, 1347, 1362, 1359, 1364, 1366, 1367, 1368, 4607, 1370, 1377, 1369, 1373, 1380, 1382, 1381, 1384, 1385, 1388, 1387, 1389, 1386, 1397, 1393, 1400, 1399, 1396, 1410, 1417, 1412, 1419, 1414, 1415, 1421, 1420, 1422, 1426, 1429, 1428, 1430, 1436, 1444, 1435, 1440, 1442, 1446, 1437, 1447, 1450, - 4589, 1453, 1454, 4589, 1456, 1457, 1479, 1458, 1461, 1466, + 4607, 1453, 1454, 4607, 1456, 1457, 1479, 1458, 1461, 1466, 1462, 1463, 1470, 1475, 1472, 1497, 1489, 1494, 1492, 1499, 1501, 1502, 1505, 1508, 1509, 1517, 1474, 1518, 1519, 1471, 1523, 1510, 1521, 1529, 1531, 1532, 1534, 1493, 1535, 1542, - 1539, 4589, 1550, 1546, 1537, 1547, 1557, 1553, 1552, 1555, + 1539, 4607, 1550, 1546, 1537, 1547, 1557, 1553, 1552, 1555, 1559, 1561, 1569, 1565, 1562, 1567, 1566, 1570, 1573, 1576, - 1578, 1588, 4589, 1575, 1579, 1583, 1580, 1591, 1592, 1594, - 1600, 1602, 1610, 1605, 4589, 1590, 1613, 1615, 1608, 1614, + 1578, 1588, 4607, 1575, 1579, 1583, 1580, 1591, 1592, 1594, + 1600, 1602, 1610, 1605, 4607, 1590, 1613, 1615, 1608, 1614, 1617, 1620, 1627, 1622, 1623, 1624, 1625, 1629, 1631, 1633, - 1636, 1632, 4589, 1640, 1639, 1643, 1651, 1648, 1652, 1653, - 1654, 1658, 1659, 1660, 1667, 1663, 1664, 4589, 1662, 1671, + 1636, 1632, 4607, 1640, 1639, 1643, 1651, 1648, 1652, 1653, + 1654, 1658, 1659, 1660, 1667, 1663, 1664, 4607, 1662, 1671, 1665, 1666, 1675, 1688, 1689, 1678, 1681, 1691, 1685, 1692, - 1695, 1698, 1696, 1699, 1697, 1700, 4589, 1701, 143, 1703, + 1695, 1698, 1696, 1699, 1697, 1700, 4607, 1701, 143, 1703, 1709, 1702, 1711, 1718, 1710, 1719, 1723, 1713, 1726, 1729, 1730, 1731, 1732, 1733, 1735, 1737, 1738, 1741, 1743, 1742, - 1751, 4589, 1746, 1753, 1757, 1755, 1760, 1761, 1766, 1768, - 1771, 1772, 1774, 4589, 1781, 1778, 1776, 1783, 1784, 1786, + 1751, 4607, 1746, 1753, 1757, 1755, 1760, 1761, 1766, 1768, + 1771, 1772, 1774, 4607, 1781, 1778, 1776, 1783, 1784, 1786, 1787, 1788, 1789, 1791, 1792, 1796, 1799, 1795, 1797, 1804, - 4589, 1811, 1806, 1816, 1807, 1818, 1809, 1831, 1819, 1822, + 4607, 1811, 1806, 1816, 1807, 1818, 1809, 1831, 1819, 1822, 1826, 1828, 1840, 1833, 1832, 1843, 1834, 1842, 1851, 1850, 1852, 1861, 1844, 1856, 1866, 1854, 1858, 1873, 1875, 1872, - 1870, 1878, 1879, 1883, 1882, 4589, 1884, 1885, 1886, 1890, + 1870, 1878, 1879, 1883, 1882, 4607, 1884, 1885, 1886, 1890, 1903, 1891, 1901, 1889, 1906, 1895, 1907, 1911, 1913, 1915, - 1916, 1918, 1920, 1917, 1927, 4589, 1921, 1929, 1928, 1931, + 1916, 1918, 1920, 1917, 1927, 4607, 1921, 1929, 1928, 1931, 1935, 1937, 1938, 1939, 1945, 1942, 1946, 1940, 1949, 1952, - 1958, 1950, 1961, 1956, 1953, 4589, 1970, 1971, 1969, 1978, + 1958, 1950, 1961, 1956, 1953, 4607, 1970, 1971, 1969, 1978, 1973, 1975, 1976, 1980, 1977, 1981, 1983, 1990, 1985, 1988, 1986, 1989, 1991, 1992, 1995, 1996, 2000, 2002, 2011, 2004, - 2012, 4589, 2013, 2020, 2016, 2022, 2023, 2024, 2026, 2028, + 2012, 4607, 2013, 2020, 2016, 2022, 2023, 2024, 2026, 2028, 2029, 2034, 2046, 2038, 2043, 2045, 2035, 2047, 2050, 2049, - 2051, 4589, 2052, 2057, 2053, 2058, 2059, 2062, 2063, 2060, + 2051, 4607, 2052, 2057, 2053, 2058, 2059, 2062, 2063, 2060, 2069, 2076, 2080, 2066, 2081, 2086, 2082, 2088, 2068, 2091, - 2098, 2099, 2100, 2102, 4589, 2105, 2106, 2107, 2095, 2108, + 2098, 2099, 2100, 2102, 4607, 2105, 2106, 2107, 2095, 2108, 2109, 2111, 2114, 2112, 2117, 2121, 2119, 2120, 2129, 2136, 2127, 2131, 2134, 2137, 2144, 2140, 2141, 2142, 2149, 2145, 2146, 2151, 2152, 2154, 2155, 2157, 2158, 2174, 2161, 2163, - 2175, 2178, 2179, 2181, 2183, 2185, 4589, 2169, 2184, 2194, - 2197, 2195, 2201, 2186, 2198, 2188, 2209, 2211, 4589, 2207, - 4589, 2212, 2213, 2221, 4589, 2219, 4589, 2223, 2220, 4589, + 2175, 2178, 2179, 2181, 2183, 2185, 4607, 2169, 2184, 2194, + 2197, 2195, 2201, 2186, 2198, 2188, 2209, 2211, 4607, 2207, + 4607, 2212, 2213, 2221, 4607, 2219, 4607, 2223, 2220, 4607, 2224, 2228, 2226, 2230, 2231, 2233, 2234, 2235, 2238, 2240, - 2242, 2245, 2243, 2248, 2249, 2251, 2252, 4589, 2261, 2254, + 2242, 2245, 2243, 2248, 2249, 2251, 2252, 4607, 2261, 2254, 2263, 2266, 2264, 2256, 2258, 2271, 2268, 2274, 2279, 2282, - 2289, 2275, 2290, 4589, 2285, 2292, 2286, 2296, 4589, 2288, + 2289, 2275, 2290, 4607, 2285, 2292, 2286, 2296, 4607, 2288, 2297, 2300, 2293, 2303, 2304, 2306, 2310, 2308, 2313, 2322, 2323, 2324, 2318, 2326, 2314, 2332, 2336, 2315, 2334, 2337, 2338, 2347, 2343, 2350, 2342, 2346, 2354, 2355, 2345, 2349, 2357, 2359, 2361, 2362, 2366, 2370, 2367, 2368, 2371, 2372, - 4589, 2381, 2376, 2378, 2389, 2382, 2384, 2386, 2391, 2392, - 2399, 2395, 2394, 2400, 4589, 2404, 4589, 2405, 2408, 2412, + 4607, 2381, 2376, 2378, 2389, 2382, 2384, 2386, 2391, 2392, + 2399, 2395, 2394, 2400, 4607, 2404, 4607, 2405, 2408, 2412, 2415, 2413, 2417, 2420, 2425, 2421, 2426, 2428, 2429, 2442, - 2427, 2431, 2433, 2439, 2443, 2445, 4589, 2446, 2448, 2449, - 2452, 2454, 2455, 2461, 2458, 2456, 2478, 4589, 2475, 2464, - 2480, 2487, 2483, 2490, 2485, 4589, 2473, 2492, 2489, 2494, + 2427, 2431, 2433, 2439, 2443, 2445, 4607, 2446, 2448, 2449, + 2452, 2454, 2455, 2461, 2458, 2456, 2478, 4607, 2475, 2464, + 2480, 2487, 2483, 2490, 2485, 4607, 2473, 2492, 2489, 2494, - 4589, 4589, 2495, 2496, 2498, 2499, 2500, 2505, 2507, 2506, - 2508, 4589, 2510, 2512, 2516, 2523, 2524, 2525, 2527, 2515, - 4589, 2531, 2534, 2521, 2537, 2539, 2540, 2541, 2542, 2549, - 2545, 2547, 2548, 2556, 2550, 2559, 4589, 2561, 2563, 2568, + 4607, 4607, 2495, 2496, 2498, 2499, 2500, 2505, 2507, 2506, + 2508, 4607, 2510, 2512, 2516, 2523, 2524, 2525, 2527, 2515, + 4607, 2531, 2534, 2521, 2537, 2539, 2540, 2541, 2542, 2549, + 2545, 2547, 2548, 2556, 2550, 2559, 4607, 2561, 2563, 2568, 2564, 2569, 2570, 2574, 2575, 2577, 2578, 2579, 2580, 2581, 2583, 2582, 2590, 2585, 2586, 2592, 2606, 2588, 2602, 2603, - 2608, 2604, 2611, 2613, 2615, 2616, 2625, 2626, 4589, 2628, + 2608, 2604, 2611, 2613, 2615, 2616, 2625, 2626, 4607, 2628, 2617, 2633, 2618, 2636, 2631, 2637, 2646, 2641, 2632, 2642, - 2650, 2645, 4589, 2657, 2647, 2664, 2648, 2658, 2669, 2667, - 2668, 2649, 2672, 2674, 2677, 2675, 2679, 2680, 2683, 4589, + 2650, 2645, 4607, 2657, 2647, 2664, 2648, 2658, 2669, 2667, + 2668, 2649, 2672, 2674, 2677, 2675, 2679, 2680, 2683, 4607, - 4589, 2684, 2685, 2687, 2689, 2690, 2694, 2691, 2698, 2692, - 2696, 4589, 2702, 2711, 2708, 2709, 2719, 2720, 2722, 2710, + 4607, 2684, 2685, 2687, 2689, 2690, 2694, 2691, 2698, 2692, + 2696, 4607, 2702, 2711, 2708, 2709, 2719, 2720, 2722, 2710, 2723, 2724, 2726, 2725, 2727, 2729, 2731, 2733, 2735, 2736, - 4589, 2739, 2738, 4589, 2741, 2742, 2743, 2752, 2755, 2748, + 4607, 2739, 2738, 4607, 2741, 2742, 2743, 2752, 2755, 2748, 2763, 2751, 2765, 2766, 2773, 2769, 2776, 2777, 2780, 2778, - 2781, 2788, 4589, 2783, 2785, 2784, 2787, 2797, 2792, 2800, - 2790, 4589, 2798, 2805, 2808, 2810, 2799, 2817, 2815, 2813, - 2816, 2820, 4589, 2823, 4589, 2824, 2825, 4589, 2826, 2830, + 2781, 2788, 4607, 2783, 2785, 2784, 2787, 2797, 2792, 2800, + 2790, 4607, 2798, 2805, 2808, 2810, 2799, 2817, 2815, 2813, + 2816, 2820, 4607, 2823, 4607, 2824, 2825, 4607, 2826, 2830, 2831, 2833, 2834, 2835, 2839, 2846, 2841, 2847, 2848, 2849, - 2850, 2852, 2859, 2851, 4589, 2862, 2855, 2858, 2860, 4589, + 2850, 2852, 2859, 2851, 4607, 2862, 2855, 2858, 2860, 4607, - 2871, 4589, 2864, 4589, 2872, 2875, 2882, 2877, 2878, 2881, - 2885, 2888, 4589, 2886, 2890, 2891, 2895, 2897, 2899, 2900, - 2901, 2898, 2902, 2903, 4589, 2905, 2907, 2915, 2908, 2916, - 2920, 2927, 2921, 4589, 2928, 2929, 2930, 2934, 2935, 4589, - 2937, 2938, 4589, 2943, 2945, 2947, 2949, 2950, 2951, 2953, - 2959, 2955, 2966, 2962, 2961, 2963, 4589, 2964, 2965, 2969, + 2871, 4607, 2864, 4607, 2872, 2875, 2882, 2877, 2878, 2881, + 2885, 2888, 4607, 2886, 2890, 2891, 2895, 2897, 2899, 2900, + 2901, 2898, 2902, 2903, 4607, 2905, 2907, 2915, 2908, 2916, + 2920, 2927, 2921, 4607, 2928, 2929, 2930, 2934, 2935, 4607, + 2937, 2938, 4607, 2943, 2945, 2947, 2949, 2950, 2951, 2953, + 2959, 2955, 2966, 2962, 2961, 2963, 4607, 2964, 2965, 2969, 2980, 2970, 2972, 2982, 2984, 2986, 2978, 2993, 2995, 2991, - 2997, 2987, 3002, 2998, 3004, 4589, 3005, 3006, 4589, 3009, - 3012, 3013, 3014, 4589, 3015, 4589, 3017, 3018, 3020, 3019, + 2997, 2987, 3002, 2998, 3004, 4607, 3005, 3006, 4607, 3009, + 3012, 3013, 3014, 4607, 3015, 4607, 3017, 3018, 3020, 3019, 3024, 3026, 3027, 3029, 3037, 3038, 3040, 3039, 3049, 3046, - 3047, 4589, 4589, 3051, 3057, 3053, 3060, 3063, 3061, 3066, - 3071, 3069, 3076, 3077, 3085, 4589, 3086, 3068, 3087, 4589, + 3047, 4607, 4607, 3051, 3057, 3053, 3060, 3063, 3061, 3066, + 3071, 3069, 3076, 3077, 3085, 4607, 3086, 3068, 3087, 4607, 3055, 3089, 3070, 3081, 3092, 3095, 3098, 3100, 3101, 3102, - 3103, 3078, 3106, 4589, 3107, 3109, 3110, 3111, 3112, 3115, - 3116, 4589, 3120, 3119, 3121, 3123, 3128, 3131, 3138, 3141, - 3146, 3143, 3147, 3148, 3150, 3152, 3156, 4589, 3163, 3153, + 3103, 3078, 3106, 4607, 3107, 3109, 3110, 3111, 3112, 3115, + 3116, 4607, 3120, 3119, 3121, 3123, 3128, 3131, 3138, 3141, + 3146, 3143, 3147, 3148, 3150, 3152, 3156, 4607, 3163, 3153, 3154, 3155, 3165, 3170, 3157, 3172, 3166, 3178, 3180, 3175, - 3181, 4589, 3182, 3186, 3183, 3191, 3188, 3192, 3193, 3194, - 3204, 3197, 3199, 3201, 3208, 4589, 3205, 3209, 3211, 3213, - 3219, 3212, 3222, 3215, 3122, 3223, 3227, 3224, 3234, 4589, + 3181, 4607, 3182, 3186, 3183, 3191, 3188, 3192, 3193, 3194, + 3204, 3197, 3199, 3201, 3208, 4607, 3205, 3209, 3211, 3213, + 3219, 3212, 3222, 3215, 3122, 3223, 3227, 3224, 3234, 4607, 3229, 3237, 3230, 3238, 3239, 3240, 3243, 3244, 3247, 3252, - 3253, 3254, 3250, 3271, 3266, 4589, 3257, 4589, 3258, 3268, - 3278, 3273, 3275, 4589, 3276, 3279, 4589, 3280, 3283, 3281, - 3286, 4589, 3284, 3285, 3289, 3293, 3301, 4589, 3303, 3304, + 3253, 3254, 3250, 3271, 3266, 4607, 3257, 4607, 3258, 3268, + 3278, 3273, 3275, 4607, 3276, 3279, 4607, 3280, 3283, 3281, + 3286, 4607, 3284, 3285, 3289, 3293, 3301, 4607, 3303, 3304, 3306, 3314, 3316, 3313, 3315, 3317, 3319, 3320, 3321, 3322, - 4589, 3324, 3327, 3326, 3332, 3333, 3335, 3336, 3338, 3339, - 3341, 3349, 3345, 3344, 4589, 3347, 3352, 3354, 3356, 3358, - 4589, 4589, 3361, 3365, 3367, 3368, 3371, 4589, 3369, 3380, - 3376, 3378, 3381, 4589, 4589, 3383, 4589, 3379, 4589, 4589, - 3384, 3386, 3393, 4589, 3396, 4589, 3404, 3399, 3385, 3387, + 4607, 3324, 3327, 3326, 3332, 3333, 3335, 3336, 3338, 3339, + 3341, 3349, 3345, 3344, 4607, 3347, 3352, 3354, 3356, 3358, + 4607, 4607, 3361, 3365, 3367, 3368, 3371, 4607, 3369, 3380, + 3376, 3378, 3381, 4607, 4607, 3383, 4607, 3379, 4607, 4607, + 3384, 3386, 3393, 4607, 3396, 4607, 3404, 3399, 3385, 3387, - 3402, 4589, 3403, 3405, 3411, 4589, 3406, 3414, 3412, 3413, - 4589, 3419, 4589, 3420, 3424, 3426, 3425, 3429, 3432, 3433, + 3402, 4607, 3403, 3405, 3411, 4607, 3406, 3414, 3412, 3413, + 4607, 3419, 4607, 3420, 3424, 3426, 3425, 3429, 3432, 3433, 3435, 3437, 3440, 3441, 3442, 3444, 3447, 3449, 3448, 3450, 3451, 3452, 3454, 3464, 3456, 3458, 3466, 3467, 3468, 3469, 3472, 3470, 3475, 3476, 3477, 3478, 3482, 3485, 3489, 3488, - 3502, 3503, 4589, 4589, 3505, 3491, 3497, 3495, 4589, 3499, - 3507, 3510, 3511, 3512, 3513, 3516, 3517, 4589, 3523, 3515, + 3502, 3503, 4607, 4607, 3505, 3491, 3497, 3495, 4607, 3499, + 3507, 3510, 3511, 3512, 3513, 3516, 3517, 4607, 3523, 3515, 3520, 3528, 3526, 3527, 3529, 3530, 3536, 3540, 3543, 3550, 3548, 3537, 3549, 3551, 3553, 3554, 3557, 3558, 3564, 3559, - 3570, 4589, 3565, 4589, 3567, 3571, 3575, 4589, 4589, 3572, + 3570, 4607, 3565, 4607, 3567, 3571, 3575, 4607, 4607, 3572, - 3577, 3579, 3581, 3582, 3586, 3583, 4589, 3588, 3589, 3598, - 3595, 4589, 3602, 4589, 3605, 3590, 3607, 3610, 3612, 4589, - 4589, 4589, 3613, 3599, 3616, 3617, 3618, 3619, 3620, 3622, - 3624, 3627, 4589, 3631, 3632, 3634, 3636, 3641, 3645, 3642, - 3647, 3654, 3650, 3656, 3638, 3658, 3660, 3662, 4589, 4589, + 3577, 3579, 3581, 3582, 3586, 3583, 4607, 3588, 3589, 3598, + 3595, 4607, 3602, 4607, 3605, 3590, 3607, 3610, 3612, 4607, + 4607, 4607, 3613, 3599, 3616, 3617, 3618, 3619, 3620, 3622, + 3624, 3627, 4607, 3631, 3632, 3634, 3636, 3641, 3645, 3642, + 3647, 3654, 3650, 3656, 3638, 3658, 3660, 3662, 4607, 4607, 3664, 3665, 3672, 3669, 3670, 3673, 3676, 3678, 3679, 3681, - 3682, 3684, 3685, 4589, 3691, 3687, 3686, 3693, 3698, 3699, - 3700, 3702, 4589, 4589, 3695, 3703, 3705, 3710, 3712, 3713, - 3715, 3717, 3718, 4589, 3719, 4589, 3720, 3721, 3732, 3728, - 3733, 3738, 4589, 3735, 3729, 4589, 3745, 3736, 3739, 4589, + 3682, 3684, 3685, 4607, 3691, 3687, 3686, 3693, 3698, 3699, + 3700, 3702, 4607, 4607, 3695, 3703, 3705, 3710, 3712, 3713, + 3715, 3717, 3718, 4607, 3719, 4607, 3720, 3721, 3732, 3728, + 3733, 3738, 4607, 3735, 3729, 4607, 3745, 3736, 3739, 4607, - 3746, 4589, 4589, 3752, 4589, 3748, 4589, 3753, 3755, 3758, + 3746, 4607, 4607, 3752, 4607, 3748, 4607, 3753, 3755, 3758, 3759, 3761, 3763, 3766, 3767, 3770, 3771, 3772, 3780, 3776, - 3777, 4589, 4589, 3784, 3779, 3785, 3793, 3788, 3790, 3796, - 4589, 4589, 3792, 3798, 3800, 4589, 3799, 3801, 3805, 3807, + 3777, 4607, 4607, 3784, 3779, 3785, 3793, 3788, 3790, 3796, + 4607, 4607, 3792, 3798, 3800, 4607, 3799, 3801, 3805, 3807, 3808, 3809, 3811, 3815, 3816, 3810, 3817, 3819, 3827, 3830, - 3821, 3833, 3832, 3834, 3839, 3841, 3842, 4589, 3844, 3846, - 3840, 4589, 3851, 3847, 3856, 3859, 3857, 4589, 3845, 3868, - 3865, 3870, 3871, 3878, 3874, 3873, 4589, 3876, 3880, 3881, - 4589, 3883, 4589, 3884, 4589, 3885, 4589, 3890, 3891, 3888, - 4589, 3894, 3900, 4589, 3903, 3898, 3905, 3909, 3910, 4589, + 3821, 3833, 3832, 3834, 3839, 3841, 3842, 4607, 3844, 3846, + 3840, 4607, 3851, 3847, 3856, 3859, 3857, 4607, 3845, 3868, + 3865, 3870, 3871, 3878, 3874, 3873, 4607, 3876, 3880, 3881, + 4607, 3883, 4607, 3884, 4607, 3885, 4607, 3890, 3891, 3888, + 4607, 3894, 3900, 4607, 3903, 3898, 3905, 3909, 3910, 4607, 3917, 3913, 3914, 3921, 3912, 3916, 3922, 3923, 3932, 3924, - 3934, 4589, 3929, 3931, 3936, 3938, 3939, 3944, 3940, 3942, - 3947, 3945, 3952, 3958, 3954, 4589, 3960, 3963, 4589, 3964, - 4589, 3966, 3967, 3969, 4589, 3971, 3968, 3972, 3975, 4589, - 3976, 3979, 4589, 3980, 3982, 3987, 3989, 3984, 3990, 3991, - 3992, 3997, 4005, 3999, 4589, 4001, 4006, 4016, 4015, 4017, - 4024, 4007, 4589, 4022, 4023, 4011, 4035, 4019, 4032, 4589, - 4034, 4021, 4589, 4039, 4041, 4042, 4043, 4045, 4050, 4052, - 4053, 4589, 4055, 4589, 4589, 4047, 4589, 4057, 4059, 4589, - 4062, 4063, 4064, 4065, 4068, 4070, 4589, 4589, 4069, 4078, + 3934, 4607, 3929, 3931, 3936, 3938, 3939, 3944, 3940, 3942, + 3947, 3945, 3952, 3958, 3954, 4607, 3960, 3963, 4607, 3964, + 4607, 3966, 3967, 3969, 4607, 3971, 3968, 3972, 3975, 4607, + 3976, 3979, 4607, 3980, 3982, 3987, 3989, 3984, 3990, 3991, + 3992, 3997, 4005, 3999, 4607, 4001, 4006, 4016, 4015, 4017, + 4024, 4007, 4607, 4022, 4023, 4011, 4035, 4019, 4032, 4607, + 4034, 4021, 4607, 4039, 4041, 4042, 4043, 4045, 4050, 4052, + 4053, 4607, 4055, 4607, 4607, 4047, 4607, 4057, 4059, 4607, + 4062, 4063, 4064, 4065, 4068, 4070, 4607, 4607, 4069, 4078, - 4073, 4086, 4071, 4589, 4080, 4082, 4087, 4089, 4088, 4589, - 4090, 4091, 4093, 4095, 4096, 4103, 4099, 4097, 4104, 4589, - 4589, 4105, 4589, 4107, 4112, 4120, 4589, 4589, 4589, 4122, - 4589, 4127, 4131, 4130, 4589, 4133, 4123, 4135, 4589, 4137, - 4138, 4139, 4140, 4589, 4142, 4144, 4146, 4151, 4157, 4148, - 4154, 4152, 4166, 4168, 4158, 4167, 4169, 4170, 4171, 4172, - 4174, 4589, 4589, 4178, 4589, 4589, 4180, 4185, 4187, 4589, - 4188, 4193, 4589, 4195, 4181, 4189, 4198, 4200, 4203, 4589, - 4589, 4204, 4205, 4206, 4209, 4589, 4211, 4213, 4212, 4216, - 4217, 4219, 4218, 4589, 4589, 4589, 4589, 4589, 4220, 4589, + 4073, 4086, 4071, 4607, 4080, 4082, 4087, 4089, 4088, 4607, + 4090, 4091, 4093, 4095, 4096, 4103, 4099, 4097, 4104, 4607, + 4607, 4105, 4607, 4107, 4112, 4120, 4607, 4607, 4607, 4122, + 4607, 4127, 4131, 4130, 4607, 4133, 4123, 4135, 4607, 4137, + 4138, 4139, 4140, 4607, 4142, 4144, 4146, 4151, 4157, 4148, + 4154, 4152, 4168, 4171, 4158, 4166, 4169, 4170, 4172, 4173, + 4179, 4607, 4607, 4185, 4607, 4607, 4187, 4189, 4194, 4607, + 4182, 4196, 4607, 4198, 4199, 4200, 4201, 4203, 4205, 4607, + 4607, 4206, 4207, 4208, 4215, 4209, 4607, 4217, 4180, 4211, + 4221, 4213, 4219, 4222, 4607, 4607, 4607, 4607, 4607, 4228, - 4589, 4224, 4225, 4228, 4227, 4589, 4230, 4231, 4233, 4243, - 4239, 4244, 4235, 4246, 4249, 4250, 4251, 4252, 4255, 4259, - 4261, 4263, 4267, 4274, 4277, 4260, 4278, 4280, 4282, 4271, - 4283, 4290, 4286, 4289, 4291, 4589, 4292, 4589, 4293, 4589, - 4589, 4295, 4297, 4299, 4308, 4309, 4301, 4304, 4306, 4589, - 4312, 4313, 4316, 4589, 4314, 4321, 4322, 4323, 4324, 4326, - 4328, 4329, 4330, 4338, 4345, 4341, 4346, 4348, 4350, 4344, - 4358, 4354, 4357, 4589, 4360, 4361, 4362, 4364, 4371, 4366, - 4367, 4369, 4589, 4375, 4372, 4373, 4374, 4376, 4390, 4394, - 4382, 4378, 4396, 4386, 4400, 4402, 4406, 4407, 4398, 4409, + 4607, 4607, 4223, 4229, 4230, 4235, 4607, 4236, 4240, 4239, + 4241, 4242, 4247, 4245, 4252, 4254, 4253, 4255, 4260, 4256, + 4263, 4262, 4264, 4266, 4267, 4279, 4282, 4270, 4274, 4283, + 4285, 4287, 4284, 4288, 4297, 4293, 4296, 4298, 4607, 4299, + 4607, 4300, 4607, 4607, 4302, 4304, 4308, 4306, 4319, 4321, + 4310, 4320, 4311, 4607, 4312, 4322, 4323, 4607, 4326, 4329, + 4328, 4331, 4335, 4337, 4338, 4340, 4339, 4341, 4350, 4353, + 4361, 4351, 4354, 4362, 4363, 4364, 4371, 4369, 4373, 4607, + 4366, 4375, 4377, 4376, 4378, 4385, 4380, 4387, 4381, 4607, + 4389, 4392, 4386, 4390, 4393, 4398, 4402, 4405, 4406, 4607, - 4410, 4416, 4413, 4419, 4420, 4421, 4423, 4422, 4589, 4425, - 4429, 4589, 4430, 4431, 4432, 4433, 4437, 4589, 4443, 4434, - 4439, 4444, 4447, 4449, 4589, 4455, 4460, 4450, 4589, 4461, - 4589, 4589, 4462, 4463, 4464, 4469, 4471, 4589, 4589, 4589, - 4497, 4504, 4511, 4518, 4525, 70, 4532, 4539, 4546, 4553, - 4560, 4567, 4574, 4581 + 4396, 4407, 4413, 4414, 4416, 4418, 4420, 4421, 4425, 4426, + 4428, 4434, 4429, 4435, 4437, 4438, 4439, 4607, 4445, 4441, + 4607, 4446, 4447, 4448, 4449, 4453, 4607, 4462, 4450, 4455, + 4463, 4466, 4470, 4607, 4472, 4476, 4473, 4607, 4478, 4607, + 4607, 4479, 4481, 4482, 4486, 4488, 4607, 4607, 4607, 4515, + 4522, 4529, 4536, 4543, 70, 4550, 4557, 4564, 4571, 4578, + 4585, 4592, 4599 } ; -static yyconst flex_int16_t yy_def[2355] = +static yyconst flex_int16_t yy_def[2364] = { 0, - 2340, 1, 2341, 2341, 2342, 2342, 2343, 2343, 2344, 2344, - 2345, 2345, 2340, 2346, 2340, 2340, 2340, 2340, 2347, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2348, 2340, 2340, 2340, 2348, 2349, 2340, 2340, 2340, - 2349, 2350, 2340, 2340, 2340, 2340, 2350, 2351, 2340, 2340, - 2340, 2351, 2352, 2340, 2353, 2340, 2352, 2352, 2346, 2346, - 2340, 2354, 2347, 2354, 2347, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2349, 1, 2350, 2350, 2351, 2351, 2352, 2352, 2353, 2353, + 2354, 2354, 2349, 2355, 2349, 2349, 2349, 2349, 2356, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2357, 2349, 2349, 2349, 2357, 2358, 2349, 2349, 2349, + 2358, 2359, 2349, 2349, 2349, 2349, 2359, 2360, 2349, 2349, + 2349, 2360, 2361, 2349, 2362, 2349, 2361, 2361, 2355, 2355, + 2349, 2363, 2356, 2363, 2356, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2348, 2348, 2349, 2349, 2350, 2350, 2340, - 2351, 2351, 2352, 2352, 2353, 2353, 2352, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2357, 2357, 2358, 2358, 2359, 2359, 2349, + 2360, 2360, 2361, 2361, 2362, 2362, 2361, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2361, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2361, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2361, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2352, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2361, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2349, 2349, 2355, 2349, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2352, 2346, 2346, 2346, - 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2361, 2355, 2355, 2355, + 2349, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2352, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2361, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, - 2340, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, + 2349, 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2349, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, - 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, + 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2349, - 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, - 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2349, 2355, + 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, - 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2355, 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, - 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2340, 2340, 2346, 2340, 2346, 2340, 2340, - 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, + 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2349, 2349, 2355, 2349, 2355, 2349, 2349, + 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2355, - 2346, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2340, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2346, + 2355, 2349, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2349, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2349, 2355, 2355, 2355, 2355, 2349, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2349, 2349, 2355, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, - 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2340, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, + 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2349, 2355, 2355, 2355, 2349, - 2346, 2340, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2340, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, - 2340, 2346, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346, - 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, + 2355, 2349, 2349, 2355, 2349, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2349, 2349, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2349, 2355, 2349, 2355, 2349, 2355, 2349, 2355, 2355, 2355, + 2349, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, - 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2346, 2340, 2340, 2346, 2340, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340, 2346, 2346, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2349, 2355, + 2349, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2355, 2349, 2349, 2355, 2349, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2349, 2355, 2355, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2340, 2346, - 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346, 2340, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2340, 2340, 2340, 2340, 2346, 2340, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2349, 2355, 2349, 2355, 2355, 2355, 2349, 2349, 2349, 2355, + 2349, 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2349, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2349, 2349, 2355, 2349, 2349, 2355, 2355, 2355, 2349, + 2355, 2355, 2349, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2349, 2349, 2349, 2349, 2349, 2355, - 2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2340, - 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2349, 2349, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, + 2349, 2355, 2349, 2349, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2349, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, - 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, - 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, - 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346, - 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2340, 0, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340 + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, + 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, + 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2355, 2355, 2355, + 2355, 2355, 2355, 2349, 2355, 2355, 2355, 2349, 2355, 2349, + 2349, 2355, 2355, 2355, 2355, 2355, 2349, 2349, 0, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349 } ; -static yyconst flex_uint16_t yy_nxt[4630] = +static yyconst flex_uint16_t yy_nxt[4648] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1601,7 +1604,7 @@ static yyconst flex_uint16_t yy_nxt[4630] = 1900, 70, 70, 1895, 1902, 70, 1898, 1903, 70, 1905, 70, 1901, 1904, 70, 1907, 70, 70, 1908, 1906, 70, 70, 70, 70, 70, 1909, 70, 1912, 70, 1914, 1911, - 70, 2340, 1910, 1915, 70, 70, 1913, 70, 1917, 70, + 70, 2349, 1910, 1915, 70, 70, 1913, 70, 1917, 70, 1919, 70, 1920, 1922, 70, 70, 1916, 1923, 70, 1918, 70, 1926, 1924, 70, 1921, 1925, 1929, 70, 1927, 70, 1928, 70, 1931, 70, 1932, 70, 1930, 70, 70, 1935, @@ -1625,7 +1628,7 @@ static yyconst flex_uint16_t yy_nxt[4630] = 70, 2014, 70, 2016, 70, 2006, 2007, 2004, 2011, 2009, 70, 2017, 2010, 70, 2018, 70, 70, 70, 2013, 2015, 2019, 2020, 70, 70, 70, 70, 2026, 70, 70, 70, - 70, 2023, 2027, 2029, 70, 2021, 2340, 2030, 2031, 70, + 70, 2023, 2027, 2029, 70, 2021, 2349, 2030, 2031, 70, 70, 2028, 70, 2022, 2024, 2025, 2034, 2032, 70, 2033, 2035, 70, 2036, 70, 70, 2039, 70, 70, 2043, 70, 2040, 70, 2037, 70, 70, 2042, 70, 70, 70, 2038, @@ -1654,65 +1657,67 @@ static yyconst flex_uint16_t yy_nxt[4630] = 70, 70, 70, 70, 70, 2148, 70, 2150, 70, 70, 70, 2151, 70, 2146, 2149, 2147, 70, 70, 70, 2162, - 70, 2340, 2160, 2152, 2163, 70, 2153, 2155, 2154, 2157, + 70, 2349, 2160, 2152, 2163, 70, 2153, 2155, 2154, 2157, 2158, 2159, 2156, 70, 2165, 70, 70, 2164, 2161, 2166, 70, 2167, 2168, 70, 70, 2170, 70, 2169, 70, 2173, 70, 70, 70, 70, 2171, 70, 2175, 70, 2174, 70, 2179, 70, 2172, 2180, 70, 70, 2178, 70, 2176, 2181, - 70, 70, 2183, 2177, 2184, 2187, 2182, 2185, 2186, 70, - 70, 70, 70, 70, 70, 70, 2194, 70, 2191, 2192, - 2195, 70, 2196, 70, 70, 2189, 2188, 2197, 70, 2198, + 70, 70, 2183, 2177, 2184, 2186, 2182, 2185, 2188, 70, + 2187, 70, 70, 70, 70, 70, 70, 2214, 2192, 2349, + 2193, 2195, 70, 70, 2190, 70, 2189, 2196, 70, 2197, - 70, 70, 70, 2190, 2193, 2200, 70, 2201, 70, 2202, - 2199, 70, 2204, 70, 2203, 2206, 70, 70, 70, 70, - 2212, 2208, 70, 2210, 70, 70, 70, 2211, 2205, 70, - 70, 70, 70, 70, 2214, 2207, 2218, 70, 70, 2213, - 70, 70, 2220, 70, 70, 2209, 70, 2217, 70, 2215, - 2216, 2225, 70, 2227, 2222, 2224, 70, 70, 2226, 70, - 2219, 2221, 70, 70, 70, 70, 2223, 2229, 70, 2340, - 2228, 2236, 70, 70, 70, 2238, 70, 2230, 2231, 2233, - 70, 2239, 2235, 2237, 70, 2234, 2240, 70, 2232, 2241, - 70, 70, 2242, 70, 2243, 70, 70, 2248, 2244, 70, + 70, 2198, 70, 2191, 2200, 2194, 2199, 70, 2201, 70, + 2202, 70, 70, 70, 70, 2205, 70, 2207, 70, 70, + 70, 70, 70, 2209, 70, 2204, 70, 2203, 70, 2211, + 70, 2206, 70, 2213, 70, 70, 70, 2208, 2215, 2216, + 2212, 70, 70, 70, 2220, 2217, 2222, 2210, 70, 70, + 2218, 2219, 70, 70, 70, 70, 2228, 2227, 70, 2221, + 70, 2230, 2224, 2223, 2226, 70, 70, 70, 70, 70, + 2229, 2231, 2225, 70, 2239, 70, 70, 70, 2241, 70, + 70, 2242, 2234, 70, 2232, 2233, 2240, 70, 2236, 2237, + 2238, 2243, 70, 2235, 2244, 70, 70, 70, 70, 2247, - 2245, 2250, 70, 70, 70, 70, 70, 2254, 70, 2246, - 70, 2247, 70, 2249, 70, 2257, 2258, 70, 2255, 70, - 2252, 70, 70, 2251, 2253, 70, 70, 70, 2259, 70, - 2260, 2256, 2265, 2264, 70, 70, 70, 70, 2261, 70, - 2263, 70, 70, 70, 2270, 2262, 2271, 2340, 2267, 2268, - 2274, 70, 2275, 2266, 70, 2276, 2269, 70, 70, 70, - 2272, 70, 2273, 70, 2277, 2281, 2278, 70, 2279, 2283, - 70, 70, 2282, 70, 70, 70, 2280, 70, 2288, 70, - 70, 2285, 70, 2291, 70, 70, 70, 70, 70, 70, - 2294, 70, 2284, 2290, 2286, 70, 2287, 2292, 2289, 70, + 70, 70, 2245, 2248, 2252, 2249, 70, 2246, 2254, 70, + 70, 70, 70, 70, 2258, 70, 2251, 70, 2259, 70, + 2253, 70, 2250, 70, 70, 70, 2262, 2256, 2263, 2260, + 2255, 2257, 70, 70, 70, 70, 70, 2264, 2261, 70, + 2269, 70, 70, 2266, 70, 2267, 2265, 2271, 70, 2268, + 70, 70, 70, 70, 70, 2349, 2276, 2273, 2277, 2270, + 2272, 2274, 2280, 70, 70, 2283, 70, 70, 2282, 2275, + 2278, 2281, 2284, 2279, 70, 70, 70, 70, 2288, 70, + 2285, 2286, 70, 2291, 70, 2290, 70, 2289, 70, 70, + 70, 70, 2296, 70, 70, 2299, 2287, 2293, 70, 70, - 2293, 2340, 2297, 70, 2298, 2295, 2296, 70, 2300, 70, - 2302, 70, 2299, 70, 2304, 70, 2305, 2301, 2303, 70, - 70, 2309, 70, 70, 2306, 2312, 70, 2307, 2310, 70, - 2308, 2311, 70, 70, 70, 70, 70, 2318, 70, 2313, - 2314, 2316, 70, 70, 70, 70, 70, 70, 2320, 2321, - 70, 2324, 70, 2315, 2317, 2325, 70, 70, 2328, 2329, - 70, 2319, 70, 70, 2322, 2323, 2326, 2331, 70, 2330, - 2333, 2327, 2332, 70, 70, 70, 70, 70, 2340, 2334, - 2335, 2338, 70, 2339, 70, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2336, 2337, 42, 42, 42, + 70, 2300, 70, 70, 2303, 70, 70, 2292, 2294, 70, + 2295, 70, 2297, 2298, 2301, 70, 2307, 2302, 70, 70, + 70, 2311, 2304, 2308, 2306, 2305, 70, 70, 2313, 70, + 2314, 70, 2309, 70, 70, 2310, 2315, 2318, 70, 70, + 2316, 70, 70, 2320, 2319, 2312, 2321, 70, 70, 2322, + 70, 70, 70, 2317, 70, 2323, 2325, 2327, 70, 70, + 70, 70, 70, 70, 2329, 2330, 70, 2333, 70, 2324, + 2349, 2326, 2349, 2328, 2334, 70, 70, 2337, 2338, 70, + 2331, 2332, 2335, 70, 2340, 70, 70, 2336, 2341, 70, + 2339, 70, 70, 2342, 70, 70, 2343, 2344, 2347, 70, - 42, 42, 42, 42, 47, 47, 47, 47, 47, 47, - 47, 52, 52, 52, 52, 52, 52, 52, 58, 58, - 58, 58, 58, 58, 58, 63, 63, 63, 63, 63, - 63, 63, 73, 73, 2340, 73, 73, 73, 73, 134, - 134, 2340, 2340, 2340, 134, 134, 136, 136, 2340, 2340, - 136, 2340, 136, 138, 2340, 2340, 2340, 2340, 2340, 138, - 141, 141, 2340, 2340, 2340, 141, 141, 143, 2340, 2340, - 2340, 2340, 2340, 143, 145, 145, 2340, 145, 145, 145, - 145, 74, 74, 2340, 74, 74, 74, 74, 13, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2348, 70, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2345, 2346, 42, 42, 42, 42, 42, + 42, 42, 47, 47, 47, 47, 47, 47, 47, 52, + 52, 52, 52, 52, 52, 52, 58, 58, 58, 58, + 58, 58, 58, 63, 63, 63, 63, 63, 63, 63, + 73, 73, 2349, 73, 73, 73, 73, 134, 134, 2349, + 2349, 2349, 134, 134, 136, 136, 2349, 2349, 136, 2349, + 136, 138, 2349, 2349, 2349, 2349, 2349, 138, 141, 141, + 2349, 2349, 2349, 141, 141, 143, 2349, 2349, 2349, 2349, + 2349, 143, 145, 145, 2349, 145, 145, 145, 145, 74, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340 + 74, 2349, 74, 74, 74, 74, 13, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349 } ; -static yyconst flex_int16_t yy_chk[4630] = +static yyconst flex_int16_t yy_chk[4648] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1721,7 +1726,7 @@ static yyconst flex_int16_t yy_chk[4630] = 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, - 2346, 8, 7, 9, 9, 9, 22, 22, 8, 10, + 2355, 8, 7, 9, 9, 9, 22, 22, 8, 10, 10, 10, 15, 25, 9, 21, 15, 25, 21, 21, 10, 11, 11, 11, 11, 11, 11, 19, 51, 19, @@ -2172,57 +2177,59 @@ static yyconst flex_int16_t yy_chk[4630] = 2132, 2133, 2133, 2134, 2133, 2136, 2136, 2134, 2138, 2140, 2140, 2141, 2142, 2143, 2137, 2145, 2142, 2146, 2141, 2147, 2147, 2150, 2138, 2148, 2148, 2152, 2146, 2151, 2143, 2149, - 2149, 2155, 2151, 2145, 2152, 2154, 2150, 2152, 2153, 2153, - 2156, 2154, 2157, 2158, 2159, 2160, 2161, 2161, 2158, 2159, - 2164, 2164, 2167, 2167, 2175, 2156, 2155, 2168, 2168, 2169, + 2149, 2155, 2151, 2145, 2152, 2153, 2150, 2152, 2154, 2156, + 2153, 2153, 2157, 2158, 2154, 2159, 2160, 2189, 2158, 0, + 2159, 2161, 2161, 2189, 2156, 2171, 2155, 2164, 2164, 2167, - 2169, 2171, 2176, 2157, 2160, 2172, 2172, 2174, 2174, 2175, - 2171, 2177, 2177, 2178, 2176, 2179, 2179, 2182, 2183, 2184, - 2188, 2183, 2185, 2185, 2187, 2189, 2188, 2187, 2178, 2190, - 2191, 2193, 2192, 2199, 2190, 2182, 2199, 2202, 2203, 2189, - 2205, 2204, 2203, 2207, 2208, 2184, 2209, 2193, 2213, 2191, - 2192, 2209, 2211, 2211, 2205, 2208, 2210, 2212, 2210, 2214, - 2202, 2204, 2215, 2216, 2217, 2218, 2207, 2213, 2219, 0, - 2212, 2220, 2220, 2226, 2221, 2222, 2222, 2214, 2215, 2217, - 2223, 2223, 2219, 2221, 2230, 2218, 2224, 2224, 2216, 2225, - 2225, 2227, 2226, 2228, 2227, 2229, 2231, 2232, 2228, 2233, + 2167, 2168, 2168, 2157, 2171, 2160, 2169, 2169, 2172, 2172, + 2174, 2174, 2175, 2176, 2177, 2177, 2178, 2179, 2179, 2182, + 2183, 2184, 2186, 2183, 2190, 2176, 2192, 2175, 2185, 2185, + 2188, 2178, 2193, 2188, 2191, 2194, 2203, 2182, 2190, 2191, + 2186, 2200, 2204, 2205, 2200, 2192, 2204, 2184, 2206, 2208, + 2193, 2194, 2210, 2209, 2211, 2212, 2211, 2210, 2214, 2203, + 2213, 2213, 2206, 2205, 2209, 2215, 2217, 2216, 2218, 2220, + 2212, 2214, 2208, 2219, 2222, 2222, 2221, 2223, 2224, 2224, + 2225, 2225, 2217, 2228, 2215, 2216, 2223, 2229, 2219, 2220, + 2221, 2226, 2226, 2218, 2227, 2227, 2230, 2233, 2231, 2230, - 2229, 2234, 2234, 2232, 2235, 2237, 2239, 2242, 2242, 2230, - 2243, 2231, 2244, 2233, 2247, 2245, 2246, 2248, 2243, 2249, - 2237, 2245, 2246, 2235, 2239, 2251, 2252, 2255, 2247, 2253, - 2248, 2244, 2255, 2253, 2256, 2257, 2258, 2259, 2249, 2260, - 2252, 2261, 2262, 2263, 2260, 2251, 2261, 0, 2257, 2258, - 2264, 2264, 2265, 2256, 2266, 2266, 2259, 2270, 2265, 2267, - 2262, 2268, 2263, 2269, 2267, 2271, 2268, 2272, 2269, 2273, - 2273, 2271, 2272, 2275, 2276, 2277, 2270, 2278, 2279, 2280, - 2281, 2276, 2282, 2282, 2279, 2285, 2286, 2287, 2284, 2288, - 2285, 2292, 2275, 2281, 2277, 2291, 2278, 2284, 2280, 2294, + 2232, 2234, 2228, 2231, 2235, 2232, 2236, 2229, 2237, 2237, + 2235, 2238, 2240, 2242, 2245, 2245, 2234, 2246, 2246, 2248, + 2236, 2247, 2233, 2251, 2253, 2255, 2249, 2240, 2250, 2247, + 2238, 2242, 2249, 2252, 2250, 2256, 2257, 2251, 2248, 2259, + 2257, 2261, 2260, 2253, 2262, 2255, 2252, 2260, 2263, 2256, + 2264, 2265, 2267, 2266, 2268, 0, 2265, 2262, 2266, 2259, + 2261, 2263, 2269, 2269, 2272, 2272, 2270, 2273, 2271, 2264, + 2267, 2270, 2273, 2268, 2271, 2274, 2275, 2276, 2277, 2281, + 2274, 2275, 2278, 2281, 2277, 2279, 2279, 2278, 2282, 2284, + 2283, 2285, 2286, 2287, 2289, 2289, 2276, 2283, 2286, 2293, - 2284, 0, 2288, 2289, 2289, 2286, 2287, 2290, 2291, 2293, - 2293, 2299, 2290, 2295, 2295, 2296, 2296, 2292, 2294, 2297, - 2298, 2300, 2300, 2301, 2297, 2303, 2303, 2298, 2301, 2302, - 2299, 2302, 2304, 2305, 2306, 2308, 2307, 2310, 2310, 2304, - 2305, 2307, 2311, 2313, 2314, 2315, 2316, 2320, 2313, 2314, - 2317, 2317, 2321, 2306, 2308, 2319, 2319, 2322, 2322, 2323, - 2323, 2311, 2324, 2328, 2315, 2316, 2320, 2326, 2326, 2324, - 2328, 2321, 2327, 2327, 2330, 2333, 2334, 2335, 0, 2330, - 2333, 2336, 2336, 2337, 2337, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2334, 2335, 2341, 2341, 2341, + 2288, 2291, 2291, 2294, 2293, 2292, 2295, 2282, 2284, 2301, + 2285, 2296, 2287, 2288, 2292, 2297, 2297, 2292, 2298, 2299, + 2302, 2302, 2294, 2298, 2296, 2295, 2303, 2304, 2304, 2305, + 2305, 2306, 2299, 2307, 2308, 2301, 2306, 2309, 2309, 2310, + 2307, 2311, 2313, 2311, 2310, 2303, 2312, 2312, 2314, 2313, + 2315, 2316, 2317, 2308, 2320, 2314, 2316, 2319, 2319, 2322, + 2323, 2324, 2325, 2329, 2322, 2323, 2326, 2326, 2330, 2315, + 0, 2317, 0, 2320, 2328, 2328, 2331, 2331, 2332, 2332, + 2324, 2325, 2329, 2333, 2335, 2335, 2337, 2330, 2336, 2336, + 2333, 2339, 2342, 2337, 2343, 2344, 2339, 2342, 2345, 2345, - 2341, 2341, 2341, 2341, 2342, 2342, 2342, 2342, 2342, 2342, - 2342, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2344, 2344, - 2344, 2344, 2344, 2344, 2344, 2345, 2345, 2345, 2345, 2345, - 2345, 2345, 2347, 2347, 0, 2347, 2347, 2347, 2347, 2348, - 2348, 0, 0, 0, 2348, 2348, 2349, 2349, 0, 0, - 2349, 0, 2349, 2350, 0, 0, 0, 0, 0, 2350, - 2351, 2351, 0, 0, 0, 2351, 2351, 2352, 0, 0, - 0, 0, 0, 2352, 2353, 2353, 0, 2353, 2353, 2353, - 2353, 2354, 2354, 0, 2354, 2354, 2354, 2354, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2346, 2346, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2343, 2344, 2350, 2350, 2350, 2350, 2350, + 2350, 2350, 2351, 2351, 2351, 2351, 2351, 2351, 2351, 2352, + 2352, 2352, 2352, 2352, 2352, 2352, 2353, 2353, 2353, 2353, + 2353, 2353, 2353, 2354, 2354, 2354, 2354, 2354, 2354, 2354, + 2356, 2356, 0, 2356, 2356, 2356, 2356, 2357, 2357, 0, + 0, 0, 2357, 2357, 2358, 2358, 0, 0, 2358, 0, + 2358, 2359, 0, 0, 0, 0, 0, 2359, 2360, 2360, + 0, 0, 0, 2360, 2360, 2361, 0, 0, 0, 0, + 0, 2361, 2362, 2362, 0, 2362, 2362, 2362, 2362, 2363, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, - 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340 + 2363, 0, 2363, 2363, 2363, 2363, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 2349, + 2349, 2349, 2349, 2349, 2349, 2349, 2349 } ; static yy_state_type yy_last_accepting_state; @@ -2433,7 +2440,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2435 "" +#line 2442 "" #define INITIAL 0 #define quotedstring 1 @@ -2656,7 +2663,7 @@ YY_DECL { #line 207 "./util/configlexer.lex" -#line 2658 "" +#line 2665 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2689,13 +2696,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 >= 2341 ) + if ( yy_current_state >= 2350 ) 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] != 4589 ); + while ( yy_base[yy_current_state] != 4607 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3742,110 +3749,115 @@ YY_RULE_SETUP case 203: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 204: YY_RULE_SETUP -#line 422 "./util/configlexer.lex" +#line 421 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 205: YY_RULE_SETUP -#line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 423 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 206: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 207: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 208: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 209: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 210: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 211: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 212: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 213: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 214: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 215: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 216: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 217: -/* rule 217 can match eol */ YY_RULE_SETUP #line 436 "./util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 218: +/* rule 218 can match eol */ +YY_RULE_SETUP +#line 437 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 218: +case 219: YY_RULE_SETUP -#line 439 "./util/configlexer.lex" +#line 440 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 440 "./util/configlexer.lex" +#line 441 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 219: -YY_RULE_SETUP -#line 445 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 220: -/* rule 220 can match eol */ YY_RULE_SETUP #line 446 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 221: +/* rule 221 can match eol */ +YY_RULE_SETUP +#line 447 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 448 "./util/configlexer.lex" +#line 449 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3858,34 +3870,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 222: +case 223: YY_RULE_SETUP -#line 460 "./util/configlexer.lex" +#line 461 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 461 "./util/configlexer.lex" +#line 462 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 223: -YY_RULE_SETUP -#line 466 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 224: -/* rule 224 can match eol */ YY_RULE_SETUP #line 467 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 225: +/* rule 225 can match eol */ +YY_RULE_SETUP +#line 468 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 225: +case 226: YY_RULE_SETUP -#line 469 "./util/configlexer.lex" +#line 470 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3898,38 +3910,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 226: +case 227: YY_RULE_SETUP -#line 481 "./util/configlexer.lex" +#line 482 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 483 "./util/configlexer.lex" +#line 484 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 227: -YY_RULE_SETUP -#line 487 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 228: -/* rule 228 can match eol */ YY_RULE_SETUP #line 488 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 229: +/* rule 229 can match eol */ YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 230: YY_RULE_SETUP #line 490 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 231: +YY_RULE_SETUP +#line 491 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3937,27 +3949,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 495 "./util/configlexer.lex" +#line 496 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 231: -YY_RULE_SETUP -#line 499 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 232: -/* rule 232 can match eol */ YY_RULE_SETUP #line 500 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 233: +/* rule 233 can match eol */ +YY_RULE_SETUP +#line 501 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 233: +case 234: YY_RULE_SETUP -#line 502 "./util/configlexer.lex" +#line 503 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3967,7 +3979,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 508 "./util/configlexer.lex" +#line 509 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3979,33 +3991,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 234: +case 235: YY_RULE_SETUP -#line 519 "./util/configlexer.lex" +#line 520 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 235: +case 236: YY_RULE_SETUP -#line 523 "./util/configlexer.lex" +#line 524 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 236: +case 237: YY_RULE_SETUP -#line 527 "./util/configlexer.lex" +#line 528 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 237: +case 238: YY_RULE_SETUP -#line 531 "./util/configlexer.lex" +#line 532 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4007 "" +#line 4019 "" case YY_END_OF_BUFFER: { @@ -4296,7 +4308,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 >= 2341 ) + if ( yy_current_state >= 2350 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4324,11 +4336,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 >= 2341 ) + if ( yy_current_state >= 2350 ) 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 == 2340); + yy_is_jam = (yy_current_state == 2349); return yy_is_jam ? 0 : yy_current_state; } @@ -4967,7 +4979,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 531 "./util/configlexer.lex" +#line 532 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index b7b1ae5e8..51758ca51 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -417,6 +417,7 @@ dnscrypt-port{COLON} { YDVAR(1, VAR_DNSCRYPT_PORT) } dnscrypt-provider{COLON} { YDVAR(1, VAR_DNSCRYPT_PROVIDER) } dnscrypt-secret-key{COLON} { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } dnscrypt-provider-cert{COLON} { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +dnscrypt-provider-cert-rotated{COLON} { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } dnscrypt-shared-secret-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } dnscrypt-shared-secret-cache-slabs{COLON} { diff --git a/util/configparser.c b/util/configparser.c index e3da56529..a9361863d 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -333,20 +333,21 @@ extern int yydebug; VAR_DNSCRYPT_PROVIDER = 462, VAR_DNSCRYPT_SECRET_KEY = 463, VAR_DNSCRYPT_PROVIDER_CERT = 464, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 465, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 466, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 467, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 468, - VAR_IPSECMOD_ENABLED = 469, - VAR_IPSECMOD_HOOK = 470, - VAR_IPSECMOD_IGNORE_BOGUS = 471, - VAR_IPSECMOD_MAX_TTL = 472, - VAR_IPSECMOD_WHITELIST = 473, - VAR_IPSECMOD_STRICT = 474, - VAR_CACHEDB = 475, - VAR_CACHEDB_BACKEND = 476, - VAR_CACHEDB_SECRETSEED = 477, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 478 + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 465, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 466, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 467, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 468, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 469, + VAR_IPSECMOD_ENABLED = 470, + VAR_IPSECMOD_HOOK = 471, + VAR_IPSECMOD_IGNORE_BOGUS = 472, + VAR_IPSECMOD_MAX_TTL = 473, + VAR_IPSECMOD_WHITELIST = 474, + VAR_IPSECMOD_STRICT = 475, + VAR_CACHEDB = 476, + VAR_CACHEDB_BACKEND = 477, + VAR_CACHEDB_SECRETSEED = 478, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 479 }; #endif /* Tokens. */ @@ -557,20 +558,21 @@ extern int yydebug; #define VAR_DNSCRYPT_PROVIDER 462 #define VAR_DNSCRYPT_SECRET_KEY 463 #define VAR_DNSCRYPT_PROVIDER_CERT 464 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 465 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 466 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 467 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 468 -#define VAR_IPSECMOD_ENABLED 469 -#define VAR_IPSECMOD_HOOK 470 -#define VAR_IPSECMOD_IGNORE_BOGUS 471 -#define VAR_IPSECMOD_MAX_TTL 472 -#define VAR_IPSECMOD_WHITELIST 473 -#define VAR_IPSECMOD_STRICT 474 -#define VAR_CACHEDB 475 -#define VAR_CACHEDB_BACKEND 476 -#define VAR_CACHEDB_SECRETSEED 477 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 478 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 465 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 466 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 467 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 468 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 469 +#define VAR_IPSECMOD_ENABLED 470 +#define VAR_IPSECMOD_HOOK 471 +#define VAR_IPSECMOD_IGNORE_BOGUS 472 +#define VAR_IPSECMOD_MAX_TTL 473 +#define VAR_IPSECMOD_WHITELIST 474 +#define VAR_IPSECMOD_STRICT 475 +#define VAR_CACHEDB 476 +#define VAR_CACHEDB_BACKEND 477 +#define VAR_CACHEDB_SECRETSEED 478 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 479 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -581,7 +583,7 @@ union YYSTYPE char* str; -#line 585 "util/configparser.c" /* yacc.c:355 */ +#line 587 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -598,7 +600,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 602 "util/configparser.c" /* yacc.c:358 */ +#line 604 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -840,21 +842,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 452 +#define YYLAST 454 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 224 +#define YYNTOKENS 225 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 241 +#define YYNNTS 242 /* YYNRULES -- Number of rules. */ -#define YYNRULES 461 +#define YYNRULES 463 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 692 +#define YYNSTATES 695 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 478 +#define YYMAXUTOK 479 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -910,60 +912,60 @@ static const yytype_uint8 yytranslate[] = 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223 + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 157, 157, 157, 158, 158, 159, 159, 160, 160, - 160, 162, 163, 167, 172, 173, 174, 174, 174, 175, - 175, 176, 176, 177, 177, 178, 178, 179, 179, 179, - 180, 180, 180, 181, 181, 182, 182, 183, 183, 184, - 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, - 189, 189, 190, 190, 190, 191, 191, 191, 192, 192, - 193, 193, 194, 194, 195, 195, 196, 196, 196, 197, - 197, 198, 198, 199, 199, 199, 200, 200, 201, 201, - 202, 202, 203, 203, 203, 204, 204, 205, 205, 206, - 206, 207, 207, 208, 208, 209, 209, 209, 210, 210, - 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, - 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, - 217, 218, 218, 219, 219, 220, 220, 221, 221, 221, - 222, 222, 223, 223, 224, 225, 225, 226, 226, 227, - 227, 228, 229, 229, 230, 230, 231, 231, 232, 232, - 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, - 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, - 241, 241, 242, 242, 243, 243, 244, 246, 258, 259, - 260, 260, 260, 260, 260, 261, 263, 275, 276, 277, - 277, 277, 277, 278, 280, 294, 295, 296, 296, 296, - 296, 297, 297, 297, 299, 308, 317, 328, 337, 346, - 355, 366, 375, 386, 399, 414, 425, 442, 459, 472, - 487, 496, 505, 514, 523, 532, 541, 550, 559, 568, - 577, 586, 595, 604, 613, 622, 631, 638, 645, 654, - 663, 672, 686, 695, 704, 713, 720, 727, 753, 761, - 768, 775, 782, 789, 797, 805, 813, 820, 831, 838, - 847, 856, 865, 872, 879, 887, 895, 905, 915, 925, - 938, 949, 957, 970, 979, 988, 997, 1007, 1017, 1025, - 1038, 1047, 1055, 1064, 1072, 1085, 1094, 1101, 1111, 1121, - 1131, 1141, 1151, 1161, 1171, 1181, 1188, 1195, 1202, 1211, - 1220, 1229, 1236, 1246, 1263, 1270, 1288, 1301, 1314, 1323, - 1332, 1341, 1350, 1360, 1370, 1379, 1388, 1401, 1414, 1423, - 1430, 1439, 1448, 1457, 1466, 1474, 1487, 1495, 1523, 1530, - 1545, 1555, 1565, 1572, 1579, 1588, 1602, 1621, 1640, 1652, - 1664, 1676, 1687, 1706, 1716, 1725, 1733, 1741, 1754, 1767, - 1780, 1793, 1802, 1811, 1821, 1831, 1844, 1857, 1868, 1881, - 1892, 1905, 1915, 1922, 1929, 1938, 1948, 1958, 1968, 1975, - 1982, 1991, 2001, 2011, 2040, 2050, 2058, 2067, 2082, 2091, - 2096, 2097, 2098, 2098, 2098, 2099, 2099, 2099, 2100, 2100, - 2102, 2112, 2121, 2128, 2138, 2145, 2152, 2159, 2166, 2171, - 2172, 2173, 2173, 2174, 2174, 2175, 2175, 2176, 2177, 2178, - 2179, 2180, 2181, 2183, 2191, 2198, 2206, 2214, 2221, 2228, - 2237, 2246, 2255, 2264, 2273, 2282, 2287, 2288, 2289, 2291, - 2297, 2307, 2314, 2323, 2331, 2337, 2338, 2340, 2340, 2340, - 2341, 2341, 2342, 2343, 2344, 2345, 2347, 2357, 2367, 2374, - 2381, 2388, 2396, 2409, 2417, 2430, 2435, 2436, 2437, 2437, - 2439, 2453 + 0, 158, 158, 158, 159, 159, 160, 160, 161, 161, + 161, 163, 164, 168, 173, 174, 175, 175, 175, 176, + 176, 177, 177, 178, 178, 179, 179, 180, 180, 180, + 181, 181, 181, 182, 182, 183, 183, 184, 184, 185, + 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, + 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, + 194, 194, 195, 195, 196, 196, 197, 197, 197, 198, + 198, 199, 199, 200, 200, 200, 201, 201, 202, 202, + 203, 203, 204, 204, 204, 205, 205, 206, 206, 207, + 207, 208, 208, 209, 209, 210, 210, 210, 211, 211, + 212, 212, 212, 213, 213, 213, 214, 214, 214, 215, + 215, 215, 215, 216, 216, 216, 217, 217, 217, 218, + 218, 219, 219, 220, 220, 221, 221, 222, 222, 222, + 223, 223, 224, 224, 225, 226, 226, 227, 227, 228, + 228, 229, 230, 230, 231, 231, 232, 232, 233, 233, + 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, + 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, + 242, 242, 243, 243, 244, 244, 245, 247, 259, 260, + 261, 261, 261, 261, 261, 262, 264, 276, 277, 278, + 278, 278, 278, 279, 281, 295, 296, 297, 297, 297, + 297, 298, 298, 298, 300, 309, 318, 329, 338, 347, + 356, 367, 376, 387, 400, 415, 426, 443, 460, 473, + 488, 497, 506, 515, 524, 533, 542, 551, 560, 569, + 578, 587, 596, 605, 614, 623, 632, 639, 646, 655, + 664, 673, 687, 696, 705, 714, 721, 728, 754, 762, + 769, 776, 783, 790, 798, 806, 814, 821, 832, 839, + 848, 857, 866, 873, 880, 888, 896, 906, 916, 926, + 939, 950, 958, 971, 980, 989, 998, 1008, 1018, 1026, + 1039, 1048, 1056, 1065, 1073, 1086, 1095, 1102, 1112, 1122, + 1132, 1142, 1152, 1162, 1172, 1182, 1189, 1196, 1203, 1212, + 1221, 1230, 1237, 1247, 1264, 1271, 1289, 1302, 1315, 1324, + 1333, 1342, 1351, 1361, 1371, 1380, 1389, 1402, 1415, 1424, + 1431, 1440, 1449, 1458, 1467, 1475, 1488, 1496, 1524, 1531, + 1546, 1556, 1566, 1573, 1580, 1589, 1603, 1622, 1641, 1653, + 1665, 1677, 1688, 1707, 1717, 1726, 1734, 1742, 1755, 1768, + 1781, 1794, 1803, 1812, 1822, 1832, 1845, 1858, 1869, 1882, + 1893, 1906, 1916, 1923, 1930, 1939, 1949, 1959, 1969, 1976, + 1983, 1992, 2002, 2012, 2041, 2051, 2059, 2068, 2083, 2092, + 2097, 2098, 2099, 2099, 2099, 2100, 2100, 2100, 2101, 2101, + 2103, 2113, 2122, 2129, 2139, 2146, 2153, 2160, 2167, 2172, + 2173, 2174, 2174, 2175, 2175, 2176, 2176, 2177, 2178, 2179, + 2180, 2181, 2182, 2184, 2192, 2199, 2207, 2215, 2222, 2229, + 2238, 2247, 2256, 2265, 2274, 2283, 2288, 2289, 2290, 2292, + 2298, 2308, 2315, 2324, 2332, 2338, 2339, 2341, 2341, 2341, + 2342, 2342, 2343, 2344, 2345, 2346, 2347, 2349, 2359, 2369, + 2376, 2385, 2392, 2401, 2409, 2422, 2430, 2443, 2448, 2449, + 2450, 2450, 2452, 2466 }; #endif @@ -1046,6 +1048,7 @@ static const char *const yytname[] = "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_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", @@ -1145,8 +1148,8 @@ static const char *const yytname[] = "server_response_ip", "server_response_ip_data", "dnscstart", "contents_dnsc", "content_dnsc", "dnsc_dnscrypt_enable", "dnsc_dnscrypt_port", "dnsc_dnscrypt_provider", - "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_secret_key", - "dnsc_dnscrypt_shared_secret_cache_size", + "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_provider_cert_rotated", + "dnsc_dnscrypt_secret_key", "dnsc_dnscrypt_shared_secret_cache_size", "dnsc_dnscrypt_shared_secret_cache_slabs", "dnsc_dnscrypt_nonce_cache_size", "dnsc_dnscrypt_nonce_cache_slabs", "cachedbstart", "contents_cachedb", "content_cachedb", @@ -1181,14 +1184,14 @@ static const yytype_uint16 yytoknum[] = 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478 + 475, 476, 477, 478, 479 }; # endif -#define YYPACT_NINF -215 +#define YYPACT_NINF -216 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-215))) + (!!((Yystate) == (-216))) #define YYTABLE_NINF -1 @@ -1199,76 +1202,76 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -215, 0, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, 209, -38, -34, -39, -44, -130, -105, -177, - -214, -1, 2, 3, 29, 30, 32, 33, 34, 35, - 36, 46, 47, 48, 49, 50, 51, 53, 54, 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, 82, 83, 84, 86, 89, 91, - 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 239, 240, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, 241, 242, 246, 247, 248, 290, - -215, -215, -215, -215, -215, -215, -215, 291, 292, 293, - 294, 295, -215, -215, -215, -215, -215, -215, 296, 297, - 298, 302, 306, 307, 331, -215, -215, -215, -215, -215, - -215, -215, -215, 332, 333, 334, 344, 345, 346, 347, - 348, -215, -215, -215, -215, -215, -215, -215, -215, -215, - 349, 350, 351, 352, 353, 354, 355, 356, 391, 393, - 403, 404, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, 405, -215, -215, 406, 407, - 408, 409, 410, 411, 412, 419, 420, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, 421, 423, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, 424, 425, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, 426, 427, 428, -215, -215, -215, -215, -215, - -215, -215, -215, -215, 429, 430, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, 431, 432, 433, 434, 435, 436, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, 437, -215, -215, 438, 439, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, 440, 441, 442, -215, -215, -215, -215, -215, - -215, -215 + -216, 0, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, 210, -38, -34, -39, -64, -130, -105, -157, + -215, -1, 2, 3, 26, 29, 30, 32, 33, 34, + 35, 36, 48, 49, 50, 51, 53, 54, 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, 82, 83, 84, 86, 89, 91, 92, + 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 240, 241, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, 242, 243, 247, 248, 249, 291, + -216, -216, -216, -216, -216, -216, -216, 292, 293, 294, + 295, 296, -216, -216, -216, -216, -216, -216, 297, 298, + 299, 303, 307, 308, 332, -216, -216, -216, -216, -216, + -216, -216, -216, 333, 334, 335, 345, 346, 347, 348, + 349, -216, -216, -216, -216, -216, -216, -216, -216, -216, + 350, 351, 352, 353, 354, 355, 356, 357, 392, 394, + 404, 405, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, 406, -216, -216, 407, 408, + 409, 410, 411, 412, 413, 414, 421, 422, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, 423, + 425, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + 426, 427, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, 428, 429, 430, -216, -216, -216, + -216, -216, -216, -216, -216, -216, 431, 432, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, 433, 434, 435, 436, 437, 438, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, 439, -216, -216, + 440, 441, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, 442, 443, 444, -216, -216, + -216, -216, -216, -216, -216 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1277,8 +1280,8 @@ static const yytype_int16 yypact[] = static const yytype_uint16 yydefact[] = { 2, 0, 1, 13, 177, 186, 379, 425, 398, 194, - 434, 455, 3, 15, 179, 188, 196, 381, 400, 427, - 436, 457, 4, 5, 6, 10, 8, 9, 7, 11, + 434, 457, 3, 15, 179, 188, 196, 381, 400, 427, + 436, 459, 4, 5, 6, 10, 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, 0, 0, 0, @@ -1320,62 +1323,62 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 0, 426, 428, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 435, 437, 438, - 439, 441, 440, 442, 443, 444, 445, 0, 0, 456, - 458, 459, 205, 204, 211, 220, 218, 226, 227, 230, - 228, 229, 231, 232, 245, 246, 247, 248, 249, 271, - 272, 273, 278, 279, 223, 280, 281, 284, 282, 283, - 286, 287, 288, 301, 259, 260, 262, 263, 289, 304, - 254, 256, 305, 311, 312, 313, 224, 270, 324, 325, - 255, 319, 241, 219, 250, 302, 308, 290, 0, 0, - 328, 225, 206, 240, 294, 207, 221, 222, 251, 252, - 326, 292, 296, 297, 208, 329, 274, 300, 242, 258, - 306, 307, 310, 318, 253, 322, 320, 321, 264, 269, - 298, 299, 265, 266, 291, 314, 243, 244, 233, 235, - 236, 237, 238, 330, 331, 332, 275, 276, 277, 285, - 333, 334, 0, 0, 0, 293, 267, 430, 343, 347, - 345, 344, 348, 346, 0, 0, 351, 352, 212, 213, - 214, 215, 216, 217, 295, 309, 323, 353, 354, 268, - 335, 0, 0, 0, 0, 0, 0, 315, 316, 317, - 431, 261, 257, 239, 209, 210, 355, 357, 356, 358, - 359, 360, 234, 361, 362, 363, 366, 365, 364, 367, - 368, 369, 370, 371, 372, 0, 376, 377, 0, 0, - 378, 390, 392, 391, 394, 395, 396, 397, 393, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 429, 446, 447, 448, 450, 449, 451, 452, 453, - 454, 460, 461, 303, 327, 342, 432, 433, 349, 350, - 336, 337, 0, 0, 0, 341, 373, 374, 375, 340, - 338, 339 + 0, 0, 0, 0, 0, 0, 0, 0, 435, 437, + 438, 439, 441, 442, 440, 443, 444, 445, 446, 0, + 0, 458, 460, 461, 205, 204, 211, 220, 218, 226, + 227, 230, 228, 229, 231, 232, 245, 246, 247, 248, + 249, 271, 272, 273, 278, 279, 223, 280, 281, 284, + 282, 283, 286, 287, 288, 301, 259, 260, 262, 263, + 289, 304, 254, 256, 305, 311, 312, 313, 224, 270, + 324, 325, 255, 319, 241, 219, 250, 302, 308, 290, + 0, 0, 328, 225, 206, 240, 294, 207, 221, 222, + 251, 252, 326, 292, 296, 297, 208, 329, 274, 300, + 242, 258, 306, 307, 310, 318, 253, 322, 320, 321, + 264, 269, 298, 299, 265, 266, 291, 314, 243, 244, + 233, 235, 236, 237, 238, 330, 331, 332, 275, 276, + 277, 285, 333, 334, 0, 0, 0, 293, 267, 430, + 343, 347, 345, 344, 348, 346, 0, 0, 351, 352, + 212, 213, 214, 215, 216, 217, 295, 309, 323, 353, + 354, 268, 335, 0, 0, 0, 0, 0, 0, 315, + 316, 317, 431, 261, 257, 239, 209, 210, 355, 357, + 356, 358, 359, 360, 234, 361, 362, 363, 366, 365, + 364, 367, 368, 369, 370, 371, 372, 0, 376, 377, + 0, 0, 378, 390, 392, 391, 394, 395, 396, 397, + 393, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 429, 447, 448, 449, 452, 450, 451, + 453, 454, 455, 456, 462, 463, 303, 327, 342, 432, + 433, 349, 350, 336, 337, 0, 0, 0, 341, 373, + 374, 375, 340, 338, 339 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215 + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1403,9 +1406,9 @@ static const yytype_int16 yydefgoto[] = 17, 26, 401, 402, 403, 404, 405, 406, 407, 408, 409, 18, 27, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 19, 28, 436, 437, - 350, 351, 352, 353, 20, 29, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 21, 30, 459, 460, - 461 + 350, 351, 352, 353, 20, 29, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 21, 30, 461, + 462, 463 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1413,62 +1416,62 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 378, 354, 435, 355, 356, 367, 457, 458, 462, - 0, 3, 463, 464, 368, 369, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 379, 380, 465, - 466, 4, 467, 468, 469, 470, 471, 5, 393, 394, - 395, 396, 397, 398, 399, 400, 472, 473, 474, 475, - 476, 477, 381, 478, 479, 357, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 6, 505, 506, 507, 358, 508, 359, 370, 509, - 371, 510, 511, 512, 513, 514, 515, 7, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 382, 383, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 8, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 384, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 9, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 10, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 0, - 11, 31, 32, 33, 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, 621, - 622, 623, 624, 59, 60, 61, 625, 626, 627, 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, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 103, - 104, 105, 637, 106, 107, 108, 638, 639, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 640, 641, 642, 643, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 657, 175, 658, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 185, 186, 187, 188, 189, 190, 669, - 670, 671, 191, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691 + 2, 378, 354, 435, 355, 356, 367, 459, 460, 464, + 0, 3, 465, 466, 368, 369, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 393, 394, + 395, 396, 397, 398, 399, 400, 467, 379, 380, 468, + 469, 4, 470, 471, 472, 473, 474, 5, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 475, 476, + 477, 478, 381, 479, 480, 357, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 6, 506, 507, 508, 358, 509, 359, 370, 510, + 371, 511, 512, 513, 514, 515, 516, 7, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 382, 383, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 8, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 384, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 9, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 10, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 0, 11, 31, 32, 33, 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, + 623, 624, 625, 626, 59, 60, 61, 627, 628, 629, + 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, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 103, 104, 105, 639, 106, 107, 108, 640, 641, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 642, 643, 644, 645, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 659, 175, 660, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 185, 186, 187, 188, 189, + 190, 672, 673, 674, 191, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694 }; static const yytype_int16 yycheck[] = { - 0, 40, 40, 108, 42, 43, 40, 221, 222, 10, + 0, 40, 40, 108, 42, 43, 40, 222, 223, 10, -1, 11, 10, 10, 48, 49, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 76, 77, 10, - 10, 41, 10, 10, 10, 10, 10, 47, 92, 93, - 94, 95, 96, 97, 98, 99, 10, 10, 10, 10, + 150, 151, 152, 153, 154, 155, 156, 157, 92, 93, + 94, 95, 96, 97, 98, 99, 10, 76, 77, 10, + 10, 41, 10, 10, 10, 10, 10, 47, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 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, @@ -1484,41 +1487,41 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 192, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 204, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, -1, - 220, 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, 10, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 10, 193, 10, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 214, 215, 216, 217, 218, 219, 10, - 10, 10, 223, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 + -1, 221, 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, 10, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 10, 193, 10, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 215, 216, 217, 218, 219, + 220, 10, 10, 10, 224, 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, 225, 0, 11, 41, 47, 91, 107, 145, 192, - 204, 220, 226, 227, 230, 233, 236, 414, 425, 440, - 448, 460, 228, 231, 234, 237, 415, 426, 441, 449, - 461, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 0, 226, 0, 11, 41, 47, 91, 107, 145, 192, + 204, 221, 227, 228, 231, 234, 237, 415, 426, 441, + 449, 462, 229, 232, 235, 238, 416, 427, 442, 450, + 463, 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, 55, 56, 57, @@ -1533,8 +1536,84 @@ static const yytype_uint16 yystos[] = 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, 193, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 214, 215, 216, 217, 218, - 219, 223, 229, 239, 240, 241, 242, 243, 244, 245, + 199, 200, 201, 202, 203, 215, 216, 217, 218, 219, + 220, 224, 230, 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, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 445, 446, 447, 448, 40, 42, 43, 103, 133, 135, + 233, 397, 398, 399, 400, 401, 402, 40, 48, 49, + 132, 134, 236, 403, 404, 405, 406, 407, 40, 76, + 77, 101, 159, 160, 194, 239, 408, 409, 410, 411, + 412, 413, 414, 92, 93, 94, 95, 96, 97, 98, + 99, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 108, 443, 444, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 222, + 223, 464, 465, 466, 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, 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, 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, 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, 10, 10, 10 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 225, 226, 226, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 228, 229, 229, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 231, 232, 232, + 233, 233, 233, 233, 233, 233, 234, 235, 235, 236, + 236, 236, 236, 236, 237, 238, 238, 239, 239, 239, + 239, 239, 239, 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, @@ -1550,93 +1629,17 @@ static const yytype_uint16 yystos[] = 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 444, 445, 446, 447, 40, 42, 43, 103, 133, 135, - 232, 396, 397, 398, 399, 400, 401, 40, 48, 49, - 132, 134, 235, 402, 403, 404, 405, 406, 40, 76, - 77, 101, 159, 160, 194, 238, 407, 408, 409, 410, - 411, 412, 413, 92, 93, 94, 95, 96, 97, 98, - 99, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 108, 442, 443, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 221, 222, 462, - 463, 464, 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, 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, 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, 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, - 10, 10 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 224, 225, 225, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 227, 228, 228, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 230, 231, 231, - 232, 232, 232, 232, 232, 232, 233, 234, 234, 235, - 235, 235, 235, 235, 236, 237, 237, 238, 238, 238, - 238, 238, 238, 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, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 415, 416, 416, 416, 416, 416, 416, 416, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 426, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 449, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 461, 462, 462, - 463, 464 + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 416, 417, 417, 417, 417, 417, 417, 417, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 427, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 450, 451, 451, 451, + 451, 451, 451, 451, 451, 451, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 463, + 464, 464, 465, 466 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1686,9 +1689,9 @@ static const yytype_uint8 yyr2[] = 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, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, - 2, 2 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 1, 2, 2 }; @@ -2365,15 +2368,15 @@ yyreduce: switch (yyn) { case 13: -#line 168 "./util/configparser.y" /* yacc.c:1646 */ +#line 169 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2373 "util/configparser.c" /* yacc.c:1646 */ +#line 2376 "util/configparser.c" /* yacc.c:1646 */ break; case 177: -#line 247 "./util/configparser.y" /* yacc.c:1646 */ +#line 248 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2384,11 +2387,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2388 "util/configparser.c" /* yacc.c:1646 */ +#line 2391 "util/configparser.c" /* yacc.c:1646 */ break; case 186: -#line 264 "./util/configparser.y" /* yacc.c:1646 */ +#line 265 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2399,11 +2402,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2403 "util/configparser.c" /* yacc.c:1646 */ +#line 2406 "util/configparser.c" /* yacc.c:1646 */ break; case 194: -#line 281 "./util/configparser.y" /* yacc.c:1646 */ +#line 282 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2416,11 +2419,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2420 "util/configparser.c" /* yacc.c:1646 */ +#line 2423 "util/configparser.c" /* yacc.c:1646 */ break; case 204: -#line 300 "./util/configparser.y" /* yacc.c:1646 */ +#line 301 "./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) @@ -2428,11 +2431,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2432 "util/configparser.c" /* yacc.c:1646 */ +#line 2435 "util/configparser.c" /* yacc.c:1646 */ break; case 205: -#line 309 "./util/configparser.y" /* yacc.c:1646 */ +#line 310 "./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) @@ -2440,11 +2443,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2444 "util/configparser.c" /* yacc.c:1646 */ +#line 2447 "util/configparser.c" /* yacc.c:1646 */ break; case 206: -#line 318 "./util/configparser.y" /* yacc.c:1646 */ +#line 319 "./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) @@ -2454,11 +2457,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2458 "util/configparser.c" /* yacc.c:1646 */ +#line 2461 "util/configparser.c" /* yacc.c:1646 */ break; case 207: -#line 329 "./util/configparser.y" /* yacc.c:1646 */ +#line 330 "./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) @@ -2466,11 +2469,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2470 "util/configparser.c" /* yacc.c:1646 */ +#line 2473 "util/configparser.c" /* yacc.c:1646 */ break; case 208: -#line 338 "./util/configparser.y" /* yacc.c:1646 */ +#line 339 "./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) @@ -2478,11 +2481,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2482 "util/configparser.c" /* yacc.c:1646 */ +#line 2485 "util/configparser.c" /* yacc.c:1646 */ break; case 209: -#line 347 "./util/configparser.y" /* yacc.c:1646 */ +#line 348 "./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) @@ -2490,11 +2493,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2494 "util/configparser.c" /* yacc.c:1646 */ +#line 2497 "util/configparser.c" /* yacc.c:1646 */ break; case 210: -#line 356 "./util/configparser.y" /* yacc.c:1646 */ +#line 357 "./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) @@ -2504,11 +2507,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2508 "util/configparser.c" /* yacc.c:1646 */ +#line 2511 "util/configparser.c" /* yacc.c:1646 */ break; case 211: -#line 367 "./util/configparser.y" /* yacc.c:1646 */ +#line 368 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2516,11 +2519,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2520 "util/configparser.c" /* yacc.c:1646 */ +#line 2523 "util/configparser.c" /* yacc.c:1646 */ break; case 212: -#line 376 "./util/configparser.y" /* yacc.c:1646 */ +#line 377 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2530,11 +2533,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2534 "util/configparser.c" /* yacc.c:1646 */ +#line 2537 "util/configparser.c" /* yacc.c:1646 */ break; case 213: -#line 387 "./util/configparser.y" /* yacc.c:1646 */ +#line 388 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2545,11 +2548,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2549 "util/configparser.c" /* yacc.c:1646 */ +#line 2552 "util/configparser.c" /* yacc.c:1646 */ break; case 214: -#line 400 "./util/configparser.y" /* yacc.c:1646 */ +#line 401 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2563,11 +2566,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2567 "util/configparser.c" /* yacc.c:1646 */ +#line 2570 "util/configparser.c" /* yacc.c:1646 */ break; case 215: -#line 415 "./util/configparser.y" /* yacc.c:1646 */ +#line 416 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2577,11 +2580,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2581 "util/configparser.c" /* yacc.c:1646 */ +#line 2584 "util/configparser.c" /* yacc.c:1646 */ break; case 216: -#line 426 "./util/configparser.y" /* yacc.c:1646 */ +#line 427 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2597,11 +2600,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2601 "util/configparser.c" /* yacc.c:1646 */ +#line 2604 "util/configparser.c" /* yacc.c:1646 */ break; case 217: -#line 443 "./util/configparser.y" /* yacc.c:1646 */ +#line 444 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2617,11 +2620,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2621 "util/configparser.c" /* yacc.c:1646 */ +#line 2624 "util/configparser.c" /* yacc.c:1646 */ break; case 218: -#line 460 "./util/configparser.y" /* yacc.c:1646 */ +#line 461 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2633,11 +2636,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2637 "util/configparser.c" /* yacc.c:1646 */ +#line 2640 "util/configparser.c" /* yacc.c:1646 */ break; case 219: -#line 473 "./util/configparser.y" /* yacc.c:1646 */ +#line 474 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2651,11 +2654,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2655 "util/configparser.c" /* yacc.c:1646 */ +#line 2658 "util/configparser.c" /* yacc.c:1646 */ break; case 220: -#line 488 "./util/configparser.y" /* yacc.c:1646 */ +#line 489 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2663,11 +2666,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2667 "util/configparser.c" /* yacc.c:1646 */ +#line 2670 "util/configparser.c" /* yacc.c:1646 */ break; case 221: -#line 497 "./util/configparser.y" /* yacc.c:1646 */ +#line 498 "./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, @@ -2675,11 +2678,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2679 "util/configparser.c" /* yacc.c:1646 */ +#line 2682 "util/configparser.c" /* yacc.c:1646 */ break; case 222: -#line 506 "./util/configparser.y" /* yacc.c:1646 */ +#line 507 "./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, @@ -2687,11 +2690,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2691 "util/configparser.c" /* yacc.c:1646 */ +#line 2694 "util/configparser.c" /* yacc.c:1646 */ break; case 223: -#line 515 "./util/configparser.y" /* yacc.c:1646 */ +#line 516 "./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) @@ -2699,11 +2702,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2703 "util/configparser.c" /* yacc.c:1646 */ +#line 2706 "util/configparser.c" /* yacc.c:1646 */ break; case 224: -#line 524 "./util/configparser.y" /* yacc.c:1646 */ +#line 525 "./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) @@ -2711,11 +2714,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2715 "util/configparser.c" /* yacc.c:1646 */ +#line 2718 "util/configparser.c" /* yacc.c:1646 */ break; case 225: -#line 533 "./util/configparser.y" /* yacc.c:1646 */ +#line 534 "./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) @@ -2723,11 +2726,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2727 "util/configparser.c" /* yacc.c:1646 */ +#line 2730 "util/configparser.c" /* yacc.c:1646 */ break; case 226: -#line 542 "./util/configparser.y" /* yacc.c:1646 */ +#line 543 "./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) @@ -2735,11 +2738,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2739 "util/configparser.c" /* yacc.c:1646 */ +#line 2742 "util/configparser.c" /* yacc.c:1646 */ break; case 227: -#line 551 "./util/configparser.y" /* yacc.c:1646 */ +#line 552 "./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) @@ -2747,11 +2750,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2751 "util/configparser.c" /* yacc.c:1646 */ +#line 2754 "util/configparser.c" /* yacc.c:1646 */ break; case 228: -#line 560 "./util/configparser.y" /* yacc.c:1646 */ +#line 561 "./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) @@ -2759,11 +2762,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2763 "util/configparser.c" /* yacc.c:1646 */ +#line 2766 "util/configparser.c" /* yacc.c:1646 */ break; case 229: -#line 569 "./util/configparser.y" /* yacc.c:1646 */ +#line 570 "./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) @@ -2771,11 +2774,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2775 "util/configparser.c" /* yacc.c:1646 */ +#line 2778 "util/configparser.c" /* yacc.c:1646 */ break; case 230: -#line 578 "./util/configparser.y" /* yacc.c:1646 */ +#line 579 "./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) @@ -2783,11 +2786,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2787 "util/configparser.c" /* yacc.c:1646 */ +#line 2790 "util/configparser.c" /* yacc.c:1646 */ break; case 231: -#line 587 "./util/configparser.y" /* yacc.c:1646 */ +#line 588 "./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) @@ -2795,11 +2798,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2799 "util/configparser.c" /* yacc.c:1646 */ +#line 2802 "util/configparser.c" /* yacc.c:1646 */ break; case 232: -#line 596 "./util/configparser.y" /* yacc.c:1646 */ +#line 597 "./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) @@ -2807,11 +2810,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2811 "util/configparser.c" /* yacc.c:1646 */ +#line 2814 "util/configparser.c" /* yacc.c:1646 */ break; case 233: -#line 605 "./util/configparser.y" /* yacc.c:1646 */ +#line 606 "./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) @@ -2819,11 +2822,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2823 "util/configparser.c" /* yacc.c:1646 */ +#line 2826 "util/configparser.c" /* yacc.c:1646 */ break; case 234: -#line 614 "./util/configparser.y" /* yacc.c:1646 */ +#line 615 "./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) @@ -2831,11 +2834,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2835 "util/configparser.c" /* yacc.c:1646 */ +#line 2838 "util/configparser.c" /* yacc.c:1646 */ break; case 235: -#line 623 "./util/configparser.y" /* yacc.c:1646 */ +#line 624 "./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) @@ -2843,31 +2846,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2847 "util/configparser.c" /* yacc.c:1646 */ +#line 2850 "util/configparser.c" /* yacc.c:1646 */ break; case 236: -#line 632 "./util/configparser.y" /* yacc.c:1646 */ +#line 633 "./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 2857 "util/configparser.c" /* yacc.c:1646 */ +#line 2860 "util/configparser.c" /* yacc.c:1646 */ break; case 237: -#line 639 "./util/configparser.y" /* yacc.c:1646 */ +#line 640 "./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 2867 "util/configparser.c" /* yacc.c:1646 */ +#line 2870 "util/configparser.c" /* yacc.c:1646 */ break; case 238: -#line 646 "./util/configparser.y" /* yacc.c:1646 */ +#line 647 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2875,11 +2878,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2879 "util/configparser.c" /* yacc.c:1646 */ +#line 2882 "util/configparser.c" /* yacc.c:1646 */ break; case 239: -#line 655 "./util/configparser.y" /* yacc.c:1646 */ +#line 656 "./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) @@ -2887,11 +2890,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2891 "util/configparser.c" /* yacc.c:1646 */ +#line 2894 "util/configparser.c" /* yacc.c:1646 */ break; case 240: -#line 664 "./util/configparser.y" /* yacc.c:1646 */ +#line 665 "./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) @@ -2899,11 +2902,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2903 "util/configparser.c" /* yacc.c:1646 */ +#line 2906 "util/configparser.c" /* yacc.c:1646 */ break; case 241: -#line 673 "./util/configparser.y" /* yacc.c:1646 */ +#line 674 "./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) @@ -2916,11 +2919,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2920 "util/configparser.c" /* yacc.c:1646 */ +#line 2923 "util/configparser.c" /* yacc.c:1646 */ break; case 242: -#line 687 "./util/configparser.y" /* yacc.c:1646 */ +#line 688 "./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) @@ -2928,11 +2931,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2932 "util/configparser.c" /* yacc.c:1646 */ +#line 2935 "util/configparser.c" /* yacc.c:1646 */ break; case 243: -#line 696 "./util/configparser.y" /* yacc.c:1646 */ +#line 697 "./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) @@ -2940,11 +2943,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2944 "util/configparser.c" /* yacc.c:1646 */ +#line 2947 "util/configparser.c" /* yacc.c:1646 */ break; case 244: -#line 705 "./util/configparser.y" /* yacc.c:1646 */ +#line 706 "./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) @@ -2952,31 +2955,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2956 "util/configparser.c" /* yacc.c:1646 */ +#line 2959 "util/configparser.c" /* yacc.c:1646 */ break; case 245: -#line 714 "./util/configparser.y" /* yacc.c:1646 */ +#line 715 "./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 2966 "util/configparser.c" /* yacc.c:1646 */ +#line 2969 "util/configparser.c" /* yacc.c:1646 */ break; case 246: -#line 721 "./util/configparser.y" /* yacc.c:1646 */ +#line 722 "./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 2976 "util/configparser.c" /* yacc.c:1646 */ +#line 2979 "util/configparser.c" /* yacc.c:1646 */ break; case 247: -#line 728 "./util/configparser.y" /* yacc.c:1646 */ +#line 729 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3001,105 +3004,105 @@ yyreduce: } } } -#line 3005 "util/configparser.c" /* yacc.c:1646 */ +#line 3008 "util/configparser.c" /* yacc.c:1646 */ break; case 248: -#line 754 "./util/configparser.y" /* yacc.c:1646 */ +#line 755 "./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 3016 "util/configparser.c" /* yacc.c:1646 */ +#line 3019 "util/configparser.c" /* yacc.c:1646 */ break; case 249: -#line 762 "./util/configparser.y" /* yacc.c:1646 */ +#line 763 "./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 3026 "util/configparser.c" /* yacc.c:1646 */ +#line 3029 "util/configparser.c" /* yacc.c:1646 */ break; case 250: -#line 769 "./util/configparser.y" /* yacc.c:1646 */ +#line 770 "./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 3036 "util/configparser.c" /* yacc.c:1646 */ +#line 3039 "util/configparser.c" /* yacc.c:1646 */ break; case 251: -#line 776 "./util/configparser.y" /* yacc.c:1646 */ +#line 777 "./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 3046 "util/configparser.c" /* yacc.c:1646 */ +#line 3049 "util/configparser.c" /* yacc.c:1646 */ break; case 252: -#line 783 "./util/configparser.y" /* yacc.c:1646 */ +#line 784 "./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 3056 "util/configparser.c" /* yacc.c:1646 */ +#line 3059 "util/configparser.c" /* yacc.c:1646 */ break; case 253: -#line 790 "./util/configparser.y" /* yacc.c:1646 */ +#line 791 "./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 3067 "util/configparser.c" /* yacc.c:1646 */ +#line 3070 "util/configparser.c" /* yacc.c:1646 */ break; case 254: -#line 798 "./util/configparser.y" /* yacc.c:1646 */ +#line 799 "./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 3078 "util/configparser.c" /* yacc.c:1646 */ +#line 3081 "util/configparser.c" /* yacc.c:1646 */ break; case 255: -#line 806 "./util/configparser.y" /* yacc.c:1646 */ +#line 807 "./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 3089 "util/configparser.c" /* yacc.c:1646 */ +#line 3092 "util/configparser.c" /* yacc.c:1646 */ break; case 256: -#line 814 "./util/configparser.y" /* yacc.c:1646 */ +#line 815 "./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 3099 "util/configparser.c" /* yacc.c:1646 */ +#line 3102 "util/configparser.c" /* yacc.c:1646 */ break; case 257: -#line 821 "./util/configparser.y" /* yacc.c:1646 */ +#line 822 "./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) @@ -3109,21 +3112,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3113 "util/configparser.c" /* yacc.c:1646 */ +#line 3116 "util/configparser.c" /* yacc.c:1646 */ break; case 258: -#line 832 "./util/configparser.y" /* yacc.c:1646 */ +#line 833 "./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 3123 "util/configparser.c" /* yacc.c:1646 */ +#line 3126 "util/configparser.c" /* yacc.c:1646 */ break; case 259: -#line 839 "./util/configparser.y" /* yacc.c:1646 */ +#line 840 "./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) @@ -3131,11 +3134,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3135 "util/configparser.c" /* yacc.c:1646 */ +#line 3138 "util/configparser.c" /* yacc.c:1646 */ break; case 260: -#line 848 "./util/configparser.y" /* yacc.c:1646 */ +#line 849 "./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) @@ -3143,11 +3146,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3147 "util/configparser.c" /* yacc.c:1646 */ +#line 3150 "util/configparser.c" /* yacc.c:1646 */ break; case 261: -#line 857 "./util/configparser.y" /* yacc.c:1646 */ +#line 858 "./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) @@ -3155,53 +3158,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3159 "util/configparser.c" /* yacc.c:1646 */ +#line 3162 "util/configparser.c" /* yacc.c:1646 */ break; case 262: -#line 866 "./util/configparser.y" /* yacc.c:1646 */ +#line 867 "./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 3169 "util/configparser.c" /* yacc.c:1646 */ +#line 3172 "util/configparser.c" /* yacc.c:1646 */ break; case 263: -#line 873 "./util/configparser.y" /* yacc.c:1646 */ +#line 874 "./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 3179 "util/configparser.c" /* yacc.c:1646 */ +#line 3182 "util/configparser.c" /* yacc.c:1646 */ break; case 264: -#line 880 "./util/configparser.y" /* yacc.c:1646 */ +#line 881 "./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 3190 "util/configparser.c" /* yacc.c:1646 */ +#line 3193 "util/configparser.c" /* yacc.c:1646 */ break; case 265: -#line 888 "./util/configparser.y" /* yacc.c:1646 */ +#line 889 "./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 3201 "util/configparser.c" /* yacc.c:1646 */ +#line 3204 "util/configparser.c" /* yacc.c:1646 */ break; case 266: -#line 896 "./util/configparser.y" /* yacc.c:1646 */ +#line 897 "./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) @@ -3210,11 +3213,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3214 "util/configparser.c" /* yacc.c:1646 */ +#line 3217 "util/configparser.c" /* yacc.c:1646 */ break; case 267: -#line 906 "./util/configparser.y" /* yacc.c:1646 */ +#line 907 "./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) @@ -3223,11 +3226,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3227 "util/configparser.c" /* yacc.c:1646 */ +#line 3230 "util/configparser.c" /* yacc.c:1646 */ break; case 268: -#line 916 "./util/configparser.y" /* yacc.c:1646 */ +#line 917 "./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) @@ -3236,11 +3239,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3240 "util/configparser.c" /* yacc.c:1646 */ +#line 3243 "util/configparser.c" /* yacc.c:1646 */ break; case 269: -#line 926 "./util/configparser.y" /* yacc.c:1646 */ +#line 927 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3252,11 +3255,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3256 "util/configparser.c" /* yacc.c:1646 */ +#line 3259 "util/configparser.c" /* yacc.c:1646 */ break; case 270: -#line 939 "./util/configparser.y" /* yacc.c:1646 */ +#line 940 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3266,22 +3269,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3270 "util/configparser.c" /* yacc.c:1646 */ +#line 3273 "util/configparser.c" /* yacc.c:1646 */ break; case 271: -#line 950 "./util/configparser.y" /* yacc.c:1646 */ +#line 951 "./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 3281 "util/configparser.c" /* yacc.c:1646 */ +#line 3284 "util/configparser.c" /* yacc.c:1646 */ break; case 272: -#line 958 "./util/configparser.y" /* yacc.c:1646 */ +#line 959 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3293,11 +3296,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3297 "util/configparser.c" /* yacc.c:1646 */ +#line 3300 "util/configparser.c" /* yacc.c:1646 */ break; case 273: -#line 971 "./util/configparser.y" /* yacc.c:1646 */ +#line 972 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3305,11 +3308,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3309 "util/configparser.c" /* yacc.c:1646 */ +#line 3312 "util/configparser.c" /* yacc.c:1646 */ break; case 274: -#line 980 "./util/configparser.y" /* yacc.c:1646 */ +#line 981 "./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) @@ -3317,11 +3320,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3321 "util/configparser.c" /* yacc.c:1646 */ +#line 3324 "util/configparser.c" /* yacc.c:1646 */ break; case 275: -#line 989 "./util/configparser.y" /* yacc.c:1646 */ +#line 990 "./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) @@ -3329,11 +3332,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3333 "util/configparser.c" /* yacc.c:1646 */ +#line 3336 "util/configparser.c" /* yacc.c:1646 */ break; case 276: -#line 998 "./util/configparser.y" /* yacc.c:1646 */ +#line 999 "./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) @@ -3342,11 +3345,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3346 "util/configparser.c" /* yacc.c:1646 */ +#line 3349 "util/configparser.c" /* yacc.c:1646 */ break; case 277: -#line 1008 "./util/configparser.y" /* yacc.c:1646 */ +#line 1009 "./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) @@ -3355,22 +3358,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3359 "util/configparser.c" /* yacc.c:1646 */ +#line 3362 "util/configparser.c" /* yacc.c:1646 */ break; case 278: -#line 1018 "./util/configparser.y" /* yacc.c:1646 */ +#line 1019 "./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 3370 "util/configparser.c" /* yacc.c:1646 */ +#line 3373 "util/configparser.c" /* yacc.c:1646 */ break; case 279: -#line 1026 "./util/configparser.y" /* yacc.c:1646 */ +#line 1027 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3382,11 +3385,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3386 "util/configparser.c" /* yacc.c:1646 */ +#line 3389 "util/configparser.c" /* yacc.c:1646 */ break; case 280: -#line 1039 "./util/configparser.y" /* yacc.c:1646 */ +#line 1040 "./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) @@ -3394,22 +3397,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3398 "util/configparser.c" /* yacc.c:1646 */ +#line 3401 "util/configparser.c" /* yacc.c:1646 */ break; case 281: -#line 1048 "./util/configparser.y" /* yacc.c:1646 */ +#line 1049 "./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 3409 "util/configparser.c" /* yacc.c:1646 */ +#line 3412 "util/configparser.c" /* yacc.c:1646 */ break; case 282: -#line 1056 "./util/configparser.y" /* yacc.c:1646 */ +#line 1057 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3417,22 +3420,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3421 "util/configparser.c" /* yacc.c:1646 */ +#line 3424 "util/configparser.c" /* yacc.c:1646 */ break; case 283: -#line 1065 "./util/configparser.y" /* yacc.c:1646 */ +#line 1066 "./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 3432 "util/configparser.c" /* yacc.c:1646 */ +#line 3435 "util/configparser.c" /* yacc.c:1646 */ break; case 284: -#line 1073 "./util/configparser.y" /* yacc.c:1646 */ +#line 1074 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3444,11 +3447,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3448 "util/configparser.c" /* yacc.c:1646 */ +#line 3451 "util/configparser.c" /* yacc.c:1646 */ break; case 285: -#line 1086 "./util/configparser.y" /* yacc.c:1646 */ +#line 1087 "./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) @@ -3456,21 +3459,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3460 "util/configparser.c" /* yacc.c:1646 */ +#line 3463 "util/configparser.c" /* yacc.c:1646 */ break; case 286: -#line 1095 "./util/configparser.y" /* yacc.c:1646 */ +#line 1096 "./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 3470 "util/configparser.c" /* yacc.c:1646 */ +#line 3473 "util/configparser.c" /* yacc.c:1646 */ break; case 287: -#line 1102 "./util/configparser.y" /* yacc.c:1646 */ +#line 1103 "./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) @@ -3479,11 +3482,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3483 "util/configparser.c" /* yacc.c:1646 */ +#line 3486 "util/configparser.c" /* yacc.c:1646 */ break; case 288: -#line 1112 "./util/configparser.y" /* yacc.c:1646 */ +#line 1113 "./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) @@ -3492,11 +3495,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3496 "util/configparser.c" /* yacc.c:1646 */ +#line 3499 "util/configparser.c" /* yacc.c:1646 */ break; case 289: -#line 1122 "./util/configparser.y" /* yacc.c:1646 */ +#line 1123 "./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) @@ -3505,11 +3508,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3509 "util/configparser.c" /* yacc.c:1646 */ +#line 3512 "util/configparser.c" /* yacc.c:1646 */ break; case 290: -#line 1132 "./util/configparser.y" /* yacc.c:1646 */ +#line 1133 "./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) @@ -3518,11 +3521,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3522 "util/configparser.c" /* yacc.c:1646 */ +#line 3525 "util/configparser.c" /* yacc.c:1646 */ break; case 291: -#line 1142 "./util/configparser.y" /* yacc.c:1646 */ +#line 1143 "./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) @@ -3531,11 +3534,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3535 "util/configparser.c" /* yacc.c:1646 */ +#line 3538 "util/configparser.c" /* yacc.c:1646 */ break; case 292: -#line 1152 "./util/configparser.y" /* yacc.c:1646 */ +#line 1153 "./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) @@ -3544,11 +3547,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3548 "util/configparser.c" /* yacc.c:1646 */ +#line 3551 "util/configparser.c" /* yacc.c:1646 */ break; case 293: -#line 1162 "./util/configparser.y" /* yacc.c:1646 */ +#line 1163 "./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) @@ -3557,11 +3560,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3561 "util/configparser.c" /* yacc.c:1646 */ +#line 3564 "util/configparser.c" /* yacc.c:1646 */ break; case 294: -#line 1172 "./util/configparser.y" /* yacc.c:1646 */ +#line 1173 "./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) @@ -3570,41 +3573,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3574 "util/configparser.c" /* yacc.c:1646 */ +#line 3577 "util/configparser.c" /* yacc.c:1646 */ break; case 295: -#line 1182 "./util/configparser.y" /* yacc.c:1646 */ +#line 1183 "./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 3584 "util/configparser.c" /* yacc.c:1646 */ +#line 3587 "util/configparser.c" /* yacc.c:1646 */ break; case 296: -#line 1189 "./util/configparser.y" /* yacc.c:1646 */ +#line 1190 "./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 3594 "util/configparser.c" /* yacc.c:1646 */ +#line 3597 "util/configparser.c" /* yacc.c:1646 */ break; case 297: -#line 1196 "./util/configparser.y" /* yacc.c:1646 */ +#line 1197 "./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 3604 "util/configparser.c" /* yacc.c:1646 */ +#line 3607 "util/configparser.c" /* yacc.c:1646 */ break; case 298: -#line 1203 "./util/configparser.y" /* yacc.c:1646 */ +#line 1204 "./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) @@ -3612,11 +3615,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3616 "util/configparser.c" /* yacc.c:1646 */ +#line 3619 "util/configparser.c" /* yacc.c:1646 */ break; case 299: -#line 1212 "./util/configparser.y" /* yacc.c:1646 */ +#line 1213 "./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) @@ -3624,11 +3627,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3628 "util/configparser.c" /* yacc.c:1646 */ +#line 3631 "util/configparser.c" /* yacc.c:1646 */ break; case 300: -#line 1221 "./util/configparser.y" /* yacc.c:1646 */ +#line 1222 "./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) @@ -3636,21 +3639,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3640 "util/configparser.c" /* yacc.c:1646 */ +#line 3643 "util/configparser.c" /* yacc.c:1646 */ break; case 301: -#line 1230 "./util/configparser.y" /* yacc.c:1646 */ +#line 1231 "./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 3650 "util/configparser.c" /* yacc.c:1646 */ +#line 3653 "util/configparser.c" /* yacc.c:1646 */ break; case 302: -#line 1237 "./util/configparser.y" /* yacc.c:1646 */ +#line 1238 "./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) @@ -3659,11 +3662,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3663 "util/configparser.c" /* yacc.c:1646 */ +#line 3666 "util/configparser.c" /* yacc.c:1646 */ break; case 303: -#line 1247 "./util/configparser.y" /* yacc.c:1646 */ +#line 1248 "./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 && @@ -3679,21 +3682,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3683 "util/configparser.c" /* yacc.c:1646 */ +#line 3686 "util/configparser.c" /* yacc.c:1646 */ break; case 304: -#line 1264 "./util/configparser.y" /* yacc.c:1646 */ +#line 1265 "./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 3693 "util/configparser.c" /* yacc.c:1646 */ +#line 3696 "util/configparser.c" /* yacc.c:1646 */ break; case 305: -#line 1271 "./util/configparser.y" /* yacc.c:1646 */ +#line 1272 "./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) { @@ -3710,11 +3713,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3714 "util/configparser.c" /* yacc.c:1646 */ +#line 3717 "util/configparser.c" /* yacc.c:1646 */ break; case 306: -#line 1289 "./util/configparser.y" /* yacc.c:1646 */ +#line 1290 "./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) { @@ -3726,11 +3729,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3730 "util/configparser.c" /* yacc.c:1646 */ +#line 3733 "util/configparser.c" /* yacc.c:1646 */ break; case 307: -#line 1302 "./util/configparser.y" /* yacc.c:1646 */ +#line 1303 "./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) { @@ -3742,11 +3745,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3746 "util/configparser.c" /* yacc.c:1646 */ +#line 3749 "util/configparser.c" /* yacc.c:1646 */ break; case 308: -#line 1315 "./util/configparser.y" /* yacc.c:1646 */ +#line 1316 "./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) @@ -3754,11 +3757,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3758 "util/configparser.c" /* yacc.c:1646 */ +#line 3761 "util/configparser.c" /* yacc.c:1646 */ break; case 309: -#line 1324 "./util/configparser.y" /* yacc.c:1646 */ +#line 1325 "./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) @@ -3766,11 +3769,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3770 "util/configparser.c" /* yacc.c:1646 */ +#line 3773 "util/configparser.c" /* yacc.c:1646 */ break; case 310: -#line 1333 "./util/configparser.y" /* yacc.c:1646 */ +#line 1334 "./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) @@ -3778,11 +3781,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3782 "util/configparser.c" /* yacc.c:1646 */ +#line 3785 "util/configparser.c" /* yacc.c:1646 */ break; case 311: -#line 1342 "./util/configparser.y" /* yacc.c:1646 */ +#line 1343 "./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) @@ -3790,11 +3793,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3794 "util/configparser.c" /* yacc.c:1646 */ +#line 3797 "util/configparser.c" /* yacc.c:1646 */ break; case 312: -#line 1351 "./util/configparser.y" /* yacc.c:1646 */ +#line 1352 "./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) @@ -3803,11 +3806,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3807 "util/configparser.c" /* yacc.c:1646 */ +#line 3810 "util/configparser.c" /* yacc.c:1646 */ break; case 313: -#line 1361 "./util/configparser.y" /* yacc.c:1646 */ +#line 1362 "./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) @@ -3816,11 +3819,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3820 "util/configparser.c" /* yacc.c:1646 */ +#line 3823 "util/configparser.c" /* yacc.c:1646 */ break; case 314: -#line 1371 "./util/configparser.y" /* yacc.c:1646 */ +#line 1372 "./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) @@ -3828,11 +3831,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3832 "util/configparser.c" /* yacc.c:1646 */ +#line 3835 "util/configparser.c" /* yacc.c:1646 */ break; case 315: -#line 1380 "./util/configparser.y" /* yacc.c:1646 */ +#line 1381 "./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) @@ -3840,11 +3843,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3844 "util/configparser.c" /* yacc.c:1646 */ +#line 3847 "util/configparser.c" /* yacc.c:1646 */ break; case 316: -#line 1389 "./util/configparser.y" /* yacc.c:1646 */ +#line 1390 "./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) @@ -3856,11 +3859,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3860 "util/configparser.c" /* yacc.c:1646 */ +#line 3863 "util/configparser.c" /* yacc.c:1646 */ break; case 317: -#line 1402 "./util/configparser.y" /* yacc.c:1646 */ +#line 1403 "./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) @@ -3872,11 +3875,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3876 "util/configparser.c" /* yacc.c:1646 */ +#line 3879 "util/configparser.c" /* yacc.c:1646 */ break; case 318: -#line 1415 "./util/configparser.y" /* yacc.c:1646 */ +#line 1416 "./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) @@ -3884,21 +3887,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3888 "util/configparser.c" /* yacc.c:1646 */ +#line 3891 "util/configparser.c" /* yacc.c:1646 */ break; case 319: -#line 1424 "./util/configparser.y" /* yacc.c:1646 */ +#line 1425 "./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 3898 "util/configparser.c" /* yacc.c:1646 */ +#line 3901 "util/configparser.c" /* yacc.c:1646 */ break; case 320: -#line 1431 "./util/configparser.y" /* yacc.c:1646 */ +#line 1432 "./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) @@ -3906,11 +3909,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3910 "util/configparser.c" /* yacc.c:1646 */ +#line 3913 "util/configparser.c" /* yacc.c:1646 */ break; case 321: -#line 1440 "./util/configparser.y" /* yacc.c:1646 */ +#line 1441 "./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) @@ -3918,11 +3921,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3922 "util/configparser.c" /* yacc.c:1646 */ +#line 3925 "util/configparser.c" /* yacc.c:1646 */ break; case 322: -#line 1449 "./util/configparser.y" /* yacc.c:1646 */ +#line 1450 "./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) @@ -3930,11 +3933,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3934 "util/configparser.c" /* yacc.c:1646 */ +#line 3937 "util/configparser.c" /* yacc.c:1646 */ break; case 323: -#line 1458 "./util/configparser.y" /* yacc.c:1646 */ +#line 1459 "./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) @@ -3943,22 +3946,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3947 "util/configparser.c" /* yacc.c:1646 */ +#line 3950 "util/configparser.c" /* yacc.c:1646 */ break; case 324: -#line 1467 "./util/configparser.y" /* yacc.c:1646 */ +#line 1468 "./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 3958 "util/configparser.c" /* yacc.c:1646 */ +#line 3961 "util/configparser.c" /* yacc.c:1646 */ break; case 325: -#line 1475 "./util/configparser.y" /* yacc.c:1646 */ +#line 1476 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3970,22 +3973,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3974 "util/configparser.c" /* yacc.c:1646 */ +#line 3977 "util/configparser.c" /* yacc.c:1646 */ break; case 326: -#line 1488 "./util/configparser.y" /* yacc.c:1646 */ +#line 1489 "./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 3985 "util/configparser.c" /* yacc.c:1646 */ +#line 3988 "util/configparser.c" /* yacc.c:1646 */ break; case 327: -#line 1496 "./util/configparser.y" /* yacc.c:1646 */ +#line 1497 "./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 && @@ -4012,21 +4015,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4016 "util/configparser.c" /* yacc.c:1646 */ +#line 4019 "util/configparser.c" /* yacc.c:1646 */ break; case 328: -#line 1524 "./util/configparser.y" /* yacc.c:1646 */ +#line 1525 "./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 4026 "util/configparser.c" /* yacc.c:1646 */ +#line 4029 "util/configparser.c" /* yacc.c:1646 */ break; case 329: -#line 1531 "./util/configparser.y" /* yacc.c:1646 */ +#line 1532 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4040,11 +4043,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4044 "util/configparser.c" /* yacc.c:1646 */ +#line 4047 "util/configparser.c" /* yacc.c:1646 */ break; case 330: -#line 1546 "./util/configparser.y" /* yacc.c:1646 */ +#line 1547 "./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) @@ -4053,11 +4056,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4057 "util/configparser.c" /* yacc.c:1646 */ +#line 4060 "util/configparser.c" /* yacc.c:1646 */ break; case 331: -#line 1556 "./util/configparser.y" /* yacc.c:1646 */ +#line 1557 "./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) @@ -4066,31 +4069,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4070 "util/configparser.c" /* yacc.c:1646 */ +#line 4073 "util/configparser.c" /* yacc.c:1646 */ break; case 332: -#line 1566 "./util/configparser.y" /* yacc.c:1646 */ +#line 1567 "./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 4080 "util/configparser.c" /* yacc.c:1646 */ +#line 4083 "util/configparser.c" /* yacc.c:1646 */ break; case 333: -#line 1573 "./util/configparser.y" /* yacc.c:1646 */ +#line 1574 "./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 4090 "util/configparser.c" /* yacc.c:1646 */ +#line 4093 "util/configparser.c" /* yacc.c:1646 */ break; case 334: -#line 1580 "./util/configparser.y" /* yacc.c:1646 */ +#line 1581 "./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) @@ -4098,11 +4101,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4102 "util/configparser.c" /* yacc.c:1646 */ +#line 4105 "util/configparser.c" /* yacc.c:1646 */ break; case 335: -#line 1589 "./util/configparser.y" /* yacc.c:1646 */ +#line 1590 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4115,11 +4118,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4119 "util/configparser.c" /* yacc.c:1646 */ +#line 4122 "util/configparser.c" /* yacc.c:1646 */ break; case 336: -#line 1603 "./util/configparser.y" /* yacc.c:1646 */ +#line 1604 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4137,11 +4140,11 @@ yyreduce: } } } -#line 4141 "util/configparser.c" /* yacc.c:1646 */ +#line 4144 "util/configparser.c" /* yacc.c:1646 */ break; case 337: -#line 1622 "./util/configparser.y" /* yacc.c:1646 */ +#line 1623 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4159,11 +4162,11 @@ yyreduce: } } } -#line 4163 "util/configparser.c" /* yacc.c:1646 */ +#line 4166 "util/configparser.c" /* yacc.c:1646 */ break; case 338: -#line 1641 "./util/configparser.y" /* yacc.c:1646 */ +#line 1642 "./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, @@ -4174,11 +4177,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4178 "util/configparser.c" /* yacc.c:1646 */ +#line 4181 "util/configparser.c" /* yacc.c:1646 */ break; case 339: -#line 1653 "./util/configparser.y" /* yacc.c:1646 */ +#line 1654 "./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, @@ -4189,11 +4192,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4193 "util/configparser.c" /* yacc.c:1646 */ +#line 4196 "util/configparser.c" /* yacc.c:1646 */ break; case 340: -#line 1665 "./util/configparser.y" /* yacc.c:1646 */ +#line 1666 "./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, @@ -4204,11 +4207,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4208 "util/configparser.c" /* yacc.c:1646 */ +#line 4211 "util/configparser.c" /* yacc.c:1646 */ break; case 341: -#line 1677 "./util/configparser.y" /* yacc.c:1646 */ +#line 1678 "./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, @@ -4218,11 +4221,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4222 "util/configparser.c" /* yacc.c:1646 */ +#line 4225 "util/configparser.c" /* yacc.c:1646 */ break; case 342: -#line 1688 "./util/configparser.y" /* yacc.c:1646 */ +#line 1689 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4240,11 +4243,11 @@ yyreduce: } } } -#line 4244 "util/configparser.c" /* yacc.c:1646 */ +#line 4247 "util/configparser.c" /* yacc.c:1646 */ break; case 343: -#line 1707 "./util/configparser.y" /* yacc.c:1646 */ +#line 1708 "./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) @@ -4252,11 +4255,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4256 "util/configparser.c" /* yacc.c:1646 */ +#line 4259 "util/configparser.c" /* yacc.c:1646 */ break; case 344: -#line 1717 "./util/configparser.y" /* yacc.c:1646 */ +#line 1718 "./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) @@ -4264,33 +4267,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4268 "util/configparser.c" /* yacc.c:1646 */ +#line 4271 "util/configparser.c" /* yacc.c:1646 */ break; case 345: -#line 1726 "./util/configparser.y" /* yacc.c:1646 */ +#line 1727 "./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 4279 "util/configparser.c" /* yacc.c:1646 */ +#line 4282 "util/configparser.c" /* yacc.c:1646 */ break; case 346: -#line 1734 "./util/configparser.y" /* yacc.c:1646 */ +#line 1735 "./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 4290 "util/configparser.c" /* yacc.c:1646 */ +#line 4293 "util/configparser.c" /* yacc.c:1646 */ break; case 347: -#line 1742 "./util/configparser.y" /* yacc.c:1646 */ +#line 1743 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4302,11 +4305,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4306 "util/configparser.c" /* yacc.c:1646 */ +#line 4309 "util/configparser.c" /* yacc.c:1646 */ break; case 348: -#line 1755 "./util/configparser.y" /* yacc.c:1646 */ +#line 1756 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4318,11 +4321,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4322 "util/configparser.c" /* yacc.c:1646 */ +#line 4325 "util/configparser.c" /* yacc.c:1646 */ break; case 349: -#line 1768 "./util/configparser.y" /* yacc.c:1646 */ +#line 1769 "./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) { @@ -4334,11 +4337,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4338 "util/configparser.c" /* yacc.c:1646 */ +#line 4341 "util/configparser.c" /* yacc.c:1646 */ break; case 350: -#line 1781 "./util/configparser.y" /* yacc.c:1646 */ +#line 1782 "./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) { @@ -4350,11 +4353,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4354 "util/configparser.c" /* yacc.c:1646 */ +#line 4357 "util/configparser.c" /* yacc.c:1646 */ break; case 351: -#line 1794 "./util/configparser.y" /* yacc.c:1646 */ +#line 1795 "./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) @@ -4362,11 +4365,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4366 "util/configparser.c" /* yacc.c:1646 */ +#line 4369 "util/configparser.c" /* yacc.c:1646 */ break; case 352: -#line 1803 "./util/configparser.y" /* yacc.c:1646 */ +#line 1804 "./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) @@ -4374,11 +4377,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4378 "util/configparser.c" /* yacc.c:1646 */ +#line 4381 "util/configparser.c" /* yacc.c:1646 */ break; case 353: -#line 1812 "./util/configparser.y" /* yacc.c:1646 */ +#line 1813 "./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) @@ -4387,11 +4390,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4391 "util/configparser.c" /* yacc.c:1646 */ +#line 4394 "util/configparser.c" /* yacc.c:1646 */ break; case 354: -#line 1822 "./util/configparser.y" /* yacc.c:1646 */ +#line 1823 "./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) @@ -4400,11 +4403,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4404 "util/configparser.c" /* yacc.c:1646 */ +#line 4407 "util/configparser.c" /* yacc.c:1646 */ break; case 355: -#line 1832 "./util/configparser.y" /* yacc.c:1646 */ +#line 1833 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4416,11 +4419,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4420 "util/configparser.c" /* yacc.c:1646 */ +#line 4423 "util/configparser.c" /* yacc.c:1646 */ break; case 356: -#line 1845 "./util/configparser.y" /* yacc.c:1646 */ +#line 1846 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4432,11 +4435,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4436 "util/configparser.c" /* yacc.c:1646 */ +#line 4439 "util/configparser.c" /* yacc.c:1646 */ break; case 357: -#line 1858 "./util/configparser.y" /* yacc.c:1646 */ +#line 1859 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4446,11 +4449,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4450 "util/configparser.c" /* yacc.c:1646 */ +#line 4453 "util/configparser.c" /* yacc.c:1646 */ break; case 358: -#line 1869 "./util/configparser.y" /* yacc.c:1646 */ +#line 1870 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4462,11 +4465,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4466 "util/configparser.c" /* yacc.c:1646 */ +#line 4469 "util/configparser.c" /* yacc.c:1646 */ break; case 359: -#line 1882 "./util/configparser.y" /* yacc.c:1646 */ +#line 1883 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4476,11 +4479,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4480 "util/configparser.c" /* yacc.c:1646 */ +#line 4483 "util/configparser.c" /* yacc.c:1646 */ break; case 360: -#line 1893 "./util/configparser.y" /* yacc.c:1646 */ +#line 1894 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4492,11 +4495,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4496 "util/configparser.c" /* yacc.c:1646 */ +#line 4499 "util/configparser.c" /* yacc.c:1646 */ break; case 361: -#line 1906 "./util/configparser.y" /* yacc.c:1646 */ +#line 1907 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4505,31 +4508,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4509 "util/configparser.c" /* yacc.c:1646 */ +#line 4512 "util/configparser.c" /* yacc.c:1646 */ break; case 362: -#line 1916 "./util/configparser.y" /* yacc.c:1646 */ +#line 1917 "./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 4519 "util/configparser.c" /* yacc.c:1646 */ +#line 4522 "util/configparser.c" /* yacc.c:1646 */ break; case 363: -#line 1923 "./util/configparser.y" /* yacc.c:1646 */ +#line 1924 "./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 4529 "util/configparser.c" /* yacc.c:1646 */ +#line 4532 "util/configparser.c" /* yacc.c:1646 */ break; case 364: -#line 1930 "./util/configparser.y" /* yacc.c:1646 */ +#line 1931 "./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) @@ -4537,11 +4540,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4541 "util/configparser.c" /* yacc.c:1646 */ +#line 4544 "util/configparser.c" /* yacc.c:1646 */ break; case 365: -#line 1939 "./util/configparser.y" /* yacc.c:1646 */ +#line 1940 "./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) @@ -4550,11 +4553,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4554 "util/configparser.c" /* yacc.c:1646 */ +#line 4557 "util/configparser.c" /* yacc.c:1646 */ break; case 366: -#line 1949 "./util/configparser.y" /* yacc.c:1646 */ +#line 1950 "./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) @@ -4563,11 +4566,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4567 "util/configparser.c" /* yacc.c:1646 */ +#line 4570 "util/configparser.c" /* yacc.c:1646 */ break; case 367: -#line 1959 "./util/configparser.y" /* yacc.c:1646 */ +#line 1960 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4576,31 +4579,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4580 "util/configparser.c" /* yacc.c:1646 */ +#line 4583 "util/configparser.c" /* yacc.c:1646 */ break; case 368: -#line 1969 "./util/configparser.y" /* yacc.c:1646 */ +#line 1970 "./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 4590 "util/configparser.c" /* yacc.c:1646 */ +#line 4593 "util/configparser.c" /* yacc.c:1646 */ break; case 369: -#line 1976 "./util/configparser.y" /* yacc.c:1646 */ +#line 1977 "./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 4600 "util/configparser.c" /* yacc.c:1646 */ +#line 4603 "util/configparser.c" /* yacc.c:1646 */ break; case 370: -#line 1983 "./util/configparser.y" /* yacc.c:1646 */ +#line 1984 "./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) @@ -4608,11 +4611,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4612 "util/configparser.c" /* yacc.c:1646 */ +#line 4615 "util/configparser.c" /* yacc.c:1646 */ break; case 371: -#line 1992 "./util/configparser.y" /* yacc.c:1646 */ +#line 1993 "./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) @@ -4621,11 +4624,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4625 "util/configparser.c" /* yacc.c:1646 */ +#line 4628 "util/configparser.c" /* yacc.c:1646 */ break; case 372: -#line 2002 "./util/configparser.y" /* yacc.c:1646 */ +#line 2003 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4634,11 +4637,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4638 "util/configparser.c" /* yacc.c:1646 */ +#line 4641 "util/configparser.c" /* yacc.c:1646 */ break; case 373: -#line 2012 "./util/configparser.y" /* yacc.c:1646 */ +#line 2013 "./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 && @@ -4666,11 +4669,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4670 "util/configparser.c" /* yacc.c:1646 */ +#line 4673 "util/configparser.c" /* yacc.c:1646 */ break; case 374: -#line 2041 "./util/configparser.y" /* yacc.c:1646 */ +#line 2042 "./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)); @@ -4679,22 +4682,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4683 "util/configparser.c" /* yacc.c:1646 */ +#line 4686 "util/configparser.c" /* yacc.c:1646 */ break; case 375: -#line 2051 "./util/configparser.y" /* yacc.c:1646 */ +#line 2052 "./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 4694 "util/configparser.c" /* yacc.c:1646 */ +#line 4697 "util/configparser.c" /* yacc.c:1646 */ break; case 376: -#line 2059 "./util/configparser.y" /* yacc.c:1646 */ +#line 2060 "./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))) { @@ -4702,11 +4705,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4706 "util/configparser.c" /* yacc.c:1646 */ +#line 4709 "util/configparser.c" /* yacc.c:1646 */ break; case 377: -#line 2068 "./util/configparser.y" /* yacc.c:1646 */ +#line 2069 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4720,11 +4723,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4724 "util/configparser.c" /* yacc.c:1646 */ +#line 4727 "util/configparser.c" /* yacc.c:1646 */ break; case 378: -#line 2083 "./util/configparser.y" /* yacc.c:1646 */ +#line 2084 "./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) @@ -4732,19 +4735,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4736 "util/configparser.c" /* yacc.c:1646 */ +#line 4739 "util/configparser.c" /* yacc.c:1646 */ break; case 379: -#line 2092 "./util/configparser.y" /* yacc.c:1646 */ +#line 2093 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 4744 "util/configparser.c" /* yacc.c:1646 */ +#line 4747 "util/configparser.c" /* yacc.c:1646 */ break; case 390: -#line 2103 "./util/configparser.y" /* yacc.c:1646 */ +#line 2104 "./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) @@ -4753,11 +4756,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4757 "util/configparser.c" /* yacc.c:1646 */ +#line 4760 "util/configparser.c" /* yacc.c:1646 */ break; case 391: -#line 2113 "./util/configparser.y" /* yacc.c:1646 */ +#line 2114 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4765,21 +4768,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4769 "util/configparser.c" /* yacc.c:1646 */ +#line 4772 "util/configparser.c" /* yacc.c:1646 */ break; case 392: -#line 2122 "./util/configparser.y" /* yacc.c:1646 */ +#line 2123 "./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 4779 "util/configparser.c" /* yacc.c:1646 */ +#line 4782 "util/configparser.c" /* yacc.c:1646 */ break; case 393: -#line 2129 "./util/configparser.y" /* yacc.c:1646 */ +#line 2130 "./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) @@ -4788,122 +4791,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4792 "util/configparser.c" /* yacc.c:1646 */ +#line 4795 "util/configparser.c" /* yacc.c:1646 */ break; case 394: -#line 2139 "./util/configparser.y" /* yacc.c:1646 */ +#line 2140 "./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 4802 "util/configparser.c" /* yacc.c:1646 */ +#line 4805 "util/configparser.c" /* yacc.c:1646 */ break; case 395: -#line 2146 "./util/configparser.y" /* yacc.c:1646 */ +#line 2147 "./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 4812 "util/configparser.c" /* yacc.c:1646 */ +#line 4815 "util/configparser.c" /* yacc.c:1646 */ break; case 396: -#line 2153 "./util/configparser.y" /* yacc.c:1646 */ +#line 2154 "./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 4822 "util/configparser.c" /* yacc.c:1646 */ +#line 4825 "util/configparser.c" /* yacc.c:1646 */ break; case 397: -#line 2160 "./util/configparser.y" /* yacc.c:1646 */ +#line 2161 "./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 4832 "util/configparser.c" /* yacc.c:1646 */ +#line 4835 "util/configparser.c" /* yacc.c:1646 */ break; case 398: -#line 2167 "./util/configparser.y" /* yacc.c:1646 */ +#line 2168 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 4840 "util/configparser.c" /* yacc.c:1646 */ +#line 4843 "util/configparser.c" /* yacc.c:1646 */ break; case 413: -#line 2184 "./util/configparser.y" /* yacc.c:1646 */ +#line 2185 "./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 4851 "util/configparser.c" /* yacc.c:1646 */ +#line 4854 "util/configparser.c" /* yacc.c:1646 */ break; case 414: -#line 2192 "./util/configparser.y" /* yacc.c:1646 */ +#line 2193 "./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 4861 "util/configparser.c" /* yacc.c:1646 */ +#line 4864 "util/configparser.c" /* yacc.c:1646 */ break; case 415: -#line 2199 "./util/configparser.y" /* yacc.c:1646 */ +#line 2200 "./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 4872 "util/configparser.c" /* yacc.c:1646 */ +#line 4875 "util/configparser.c" /* yacc.c:1646 */ break; case 416: -#line 2207 "./util/configparser.y" /* yacc.c:1646 */ +#line 2208 "./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 4883 "util/configparser.c" /* yacc.c:1646 */ +#line 4886 "util/configparser.c" /* yacc.c:1646 */ break; case 417: -#line 2215 "./util/configparser.y" /* yacc.c:1646 */ +#line 2216 "./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 4893 "util/configparser.c" /* yacc.c:1646 */ +#line 4896 "util/configparser.c" /* yacc.c:1646 */ break; case 418: -#line 2222 "./util/configparser.y" /* yacc.c:1646 */ +#line 2223 "./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 4903 "util/configparser.c" /* yacc.c:1646 */ +#line 4906 "util/configparser.c" /* yacc.c:1646 */ break; case 419: -#line 2229 "./util/configparser.y" /* yacc.c:1646 */ +#line 2230 "./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) @@ -4911,11 +4914,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4915 "util/configparser.c" /* yacc.c:1646 */ +#line 4918 "util/configparser.c" /* yacc.c:1646 */ break; case 420: -#line 2238 "./util/configparser.y" /* yacc.c:1646 */ +#line 2239 "./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) @@ -4923,11 +4926,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4927 "util/configparser.c" /* yacc.c:1646 */ +#line 4930 "util/configparser.c" /* yacc.c:1646 */ break; case 421: -#line 2247 "./util/configparser.y" /* yacc.c:1646 */ +#line 2248 "./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) @@ -4935,11 +4938,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4939 "util/configparser.c" /* yacc.c:1646 */ +#line 4942 "util/configparser.c" /* yacc.c:1646 */ break; case 422: -#line 2256 "./util/configparser.y" /* yacc.c:1646 */ +#line 2257 "./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) @@ -4947,11 +4950,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4951 "util/configparser.c" /* yacc.c:1646 */ +#line 4954 "util/configparser.c" /* yacc.c:1646 */ break; case 423: -#line 2265 "./util/configparser.y" /* yacc.c:1646 */ +#line 2266 "./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) @@ -4959,11 +4962,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4963 "util/configparser.c" /* yacc.c:1646 */ +#line 4966 "util/configparser.c" /* yacc.c:1646 */ break; case 424: -#line 2274 "./util/configparser.y" /* yacc.c:1646 */ +#line 2275 "./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) @@ -4971,29 +4974,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4975 "util/configparser.c" /* yacc.c:1646 */ +#line 4978 "util/configparser.c" /* yacc.c:1646 */ break; case 425: -#line 2283 "./util/configparser.y" /* yacc.c:1646 */ +#line 2284 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 4983 "util/configparser.c" /* yacc.c:1646 */ +#line 4986 "util/configparser.c" /* yacc.c:1646 */ break; case 429: -#line 2292 "./util/configparser.y" /* yacc.c:1646 */ +#line 2293 "./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 4993 "util/configparser.c" /* yacc.c:1646 */ +#line 4996 "util/configparser.c" /* yacc.c:1646 */ break; case 430: -#line 2298 "./util/configparser.y" /* yacc.c:1646 */ +#line 2299 "./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) @@ -5002,21 +5005,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5006 "util/configparser.c" /* yacc.c:1646 */ +#line 5009 "util/configparser.c" /* yacc.c:1646 */ break; case 431: -#line 2308 "./util/configparser.y" /* yacc.c:1646 */ +#line 2309 "./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 5016 "util/configparser.c" /* yacc.c:1646 */ +#line 5019 "util/configparser.c" /* yacc.c:1646 */ break; case 432: -#line 2315 "./util/configparser.y" /* yacc.c:1646 */ +#line 2316 "./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)); @@ -5024,31 +5027,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5028 "util/configparser.c" /* yacc.c:1646 */ +#line 5031 "util/configparser.c" /* yacc.c:1646 */ break; case 433: -#line 2324 "./util/configparser.y" /* yacc.c:1646 */ +#line 2325 "./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 5039 "util/configparser.c" /* yacc.c:1646 */ +#line 5042 "util/configparser.c" /* yacc.c:1646 */ break; case 434: -#line 2332 "./util/configparser.y" /* yacc.c:1646 */ +#line 2333 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5048 "util/configparser.c" /* yacc.c:1646 */ +#line 5051 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2348 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2350 "./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) @@ -5056,11 +5059,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5060 "util/configparser.c" /* yacc.c:1646 */ +#line 5063 "util/configparser.c" /* yacc.c:1646 */ break; - case 447: -#line 2358 "./util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2360 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5069,52 +5072,66 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5073 "util/configparser.c" /* yacc.c:1646 */ +#line 5076 "util/configparser.c" /* yacc.c:1646 */ break; - case 448: -#line 2368 "./util/configparser.y" /* yacc.c:1646 */ + case 449: +#line 2370 "./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 5083 "util/configparser.c" /* yacc.c:1646 */ - break; - - case 449: -#line 2375 "./util/configparser.y" /* yacc.c:1646 */ - { - OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) - fatal_exit("out of memory adding dnscrypt-provider-cert"); - } -#line 5093 "util/configparser.c" /* yacc.c:1646 */ +#line 5086 "util/configparser.c" /* yacc.c:1646 */ break; case 450: -#line 2382 "./util/configparser.y" /* yacc.c:1646 */ +#line 2377 "./util/configparser.y" /* yacc.c:1646 */ { - OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) - fatal_exit("out of memory adding dnscrypt-secret-key"); + OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) + fatal_exit("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str)); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) + fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5103 "util/configparser.c" /* yacc.c:1646 */ +#line 5098 "util/configparser.c" /* yacc.c:1646 */ break; case 451: -#line 2389 "./util/configparser.y" /* yacc.c:1646 */ +#line 2386 "./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 5108 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 452: +#line 2393 "./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))) + fatal_exit("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str)); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) + fatal_exit("out of memory adding dnscrypt-secret-key"); + } +#line 5120 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 453: +#line 2402 "./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 5114 "util/configparser.c" /* yacc.c:1646 */ +#line 5131 "util/configparser.c" /* yacc.c:1646 */ break; - case 452: -#line 2397 "./util/configparser.y" /* yacc.c:1646 */ + case 454: +#line 2410 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5126,22 +5143,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5130 "util/configparser.c" /* yacc.c:1646 */ +#line 5147 "util/configparser.c" /* yacc.c:1646 */ break; - case 453: -#line 2410 "./util/configparser.y" /* yacc.c:1646 */ + case 455: +#line 2423 "./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 5141 "util/configparser.c" /* yacc.c:1646 */ +#line 5158 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2418 "./util/configparser.y" /* yacc.c:1646 */ + case 456: +#line 2431 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5153,19 +5170,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5157 "util/configparser.c" /* yacc.c:1646 */ +#line 5174 "util/configparser.c" /* yacc.c:1646 */ break; - case 455: -#line 2431 "./util/configparser.y" /* yacc.c:1646 */ + case 457: +#line 2444 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5165 "util/configparser.c" /* yacc.c:1646 */ +#line 5182 "util/configparser.c" /* yacc.c:1646 */ break; - case 460: -#line 2440 "./util/configparser.y" /* yacc.c:1646 */ + case 462: +#line 2453 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5178,11 +5195,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5182 "util/configparser.c" /* yacc.c:1646 */ +#line 5199 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2454 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2467 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5196,11 +5213,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5200 "util/configparser.c" /* yacc.c:1646 */ +#line 5217 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5204 "util/configparser.c" /* yacc.c:1646 */ +#line 5221 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5428,7 +5445,7 @@ yyreturn: #endif return yyresult; } -#line 2468 "./util/configparser.y" /* yacc.c:1906 */ +#line 2481 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 0e3f53ce4..c715bb1a2 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -252,20 +252,21 @@ extern int yydebug; VAR_DNSCRYPT_PROVIDER = 462, VAR_DNSCRYPT_SECRET_KEY = 463, VAR_DNSCRYPT_PROVIDER_CERT = 464, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 465, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 466, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 467, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 468, - VAR_IPSECMOD_ENABLED = 469, - VAR_IPSECMOD_HOOK = 470, - VAR_IPSECMOD_IGNORE_BOGUS = 471, - VAR_IPSECMOD_MAX_TTL = 472, - VAR_IPSECMOD_WHITELIST = 473, - VAR_IPSECMOD_STRICT = 474, - VAR_CACHEDB = 475, - VAR_CACHEDB_BACKEND = 476, - VAR_CACHEDB_SECRETSEED = 477, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 478 + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 465, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 466, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 467, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 468, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 469, + VAR_IPSECMOD_ENABLED = 470, + VAR_IPSECMOD_HOOK = 471, + VAR_IPSECMOD_IGNORE_BOGUS = 472, + VAR_IPSECMOD_MAX_TTL = 473, + VAR_IPSECMOD_WHITELIST = 474, + VAR_IPSECMOD_STRICT = 475, + VAR_CACHEDB = 476, + VAR_CACHEDB_BACKEND = 477, + VAR_CACHEDB_SECRETSEED = 478, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 479 }; #endif /* Tokens. */ @@ -476,20 +477,21 @@ extern int yydebug; #define VAR_DNSCRYPT_PROVIDER 462 #define VAR_DNSCRYPT_SECRET_KEY 463 #define VAR_DNSCRYPT_PROVIDER_CERT 464 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 465 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 466 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 467 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 468 -#define VAR_IPSECMOD_ENABLED 469 -#define VAR_IPSECMOD_HOOK 470 -#define VAR_IPSECMOD_IGNORE_BOGUS 471 -#define VAR_IPSECMOD_MAX_TTL 472 -#define VAR_IPSECMOD_WHITELIST 473 -#define VAR_IPSECMOD_STRICT 474 -#define VAR_CACHEDB 475 -#define VAR_CACHEDB_BACKEND 476 -#define VAR_CACHEDB_SECRETSEED 477 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 478 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 465 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 466 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 467 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 468 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 469 +#define VAR_IPSECMOD_ENABLED 470 +#define VAR_IPSECMOD_HOOK 471 +#define VAR_IPSECMOD_IGNORE_BOGUS 472 +#define VAR_IPSECMOD_MAX_TTL 473 +#define VAR_IPSECMOD_WHITELIST 474 +#define VAR_IPSECMOD_STRICT 475 +#define VAR_CACHEDB 476 +#define VAR_CACHEDB_BACKEND 477 +#define VAR_CACHEDB_SECRETSEED 478 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 479 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -500,7 +502,7 @@ union YYSTYPE char* str; -#line 504 "util/configparser.h" /* yacc.c:1909 */ +#line 506 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 1f72c73b0..75e88e7ea 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -144,6 +144,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_USE_SYSTEMD VAR_SHM_ENABLE VAR_SHM_KEY %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 %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS %token VAR_DNSCRYPT_NONCE_CACHE_SIZE @@ -2339,6 +2340,7 @@ contents_dnsc: contents_dnsc content_dnsc content_dnsc: dnsc_dnscrypt_enable | dnsc_dnscrypt_port | dnsc_dnscrypt_provider | dnsc_dnscrypt_secret_key | dnsc_dnscrypt_provider_cert | + dnsc_dnscrypt_provider_cert_rotated | dnsc_dnscrypt_shared_secret_cache_size | dnsc_dnscrypt_shared_secret_cache_slabs | dnsc_dnscrypt_nonce_cache_size | @@ -2374,13 +2376,24 @@ dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", $2)); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, $2)) + fatal_exit("dnscrypt-provider-cert %s is a duplicate", $2); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, $2)) fatal_exit("out of memory adding dnscrypt-provider-cert"); } ; +dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG + { + OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", $2)); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, $2)) + fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); + } + ; dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", $2)); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, $2)) + fatal_exit("dnscrypt-secret-key: %s is a duplicate", $2); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, $2)) fatal_exit("out of memory adding dnscrypt-secret-key"); }