From: Wouter Wijngaards Date: Mon, 6 Jun 2016 10:00:25 +0000 (+0000) Subject: - local-zone-override config directive. X-Git-Tag: release-1.5.10~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=65bcb9b0cacf61fb51eacbdefacf8723ccd8b65d;p=thirdparty%2Funbound.git - local-zone-override config directive. git-svn-id: file:///svn/unbound/trunk@3758 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 5e0810fc5..b6a6b6bc4 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 6 June 2016: Wouter - Better help text from -h (from Ray Griffith). - access-control-tag config directive. + - local-zone-override config directive. 3 June 2016: Wouter - Fix to not ignore return value of chown() in daemon startup. diff --git a/doc/example.conf.in b/doc/example.conf.in index 82ce0d75d..ee2976970 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -588,6 +588,9 @@ server: # tag a localzone with a list of tag names (in "" with spaces between) # local-zone-tag: "example.com" "tag2 tag3" + # add a netblock specific override to a localzone, with zone type + # local-zone-override: "example.com" 192.0.2.0/24 refuse + # service clients over SSL (on the TCP sockets), with plain DNS inside # the SSL stream. Give the certificate to use and private key. # default is "" (disabled). requires restart to take effect. diff --git a/services/localzone.c b/services/localzone.c index fcf6e8dfd..7acb5bd72 100644 --- a/services/localzone.c +++ b/services/localzone.c @@ -542,6 +542,89 @@ lz_enter_zone_tag(struct local_zones* zones, char* zname, uint8_t* list, return r; } +/** enter override into zone */ +static int +lz_enter_override(struct local_zones* zones, char* zname, char* netblock, + char* type, uint16_t rr_class) +{ + uint8_t dname[LDNS_MAX_DOMAINLEN+1]; + size_t dname_len = sizeof(dname); + int dname_labs; + struct sockaddr_storage addr; + int net; + socklen_t addrlen; + struct local_zone* z; + enum localzone_type t; + + /* parse zone name */ + if(sldns_str2wire_dname_buf(zname, dname, &dname_len) != 0) { + log_err("cannot parse zone name in local-zone-override: %s %s", + zname, netblock); + return 0; + } + dname_labs = dname_count_labels(dname); + + /* parse netblock */ + if(!netblockstrtoaddr(netblock, UNBOUND_DNS_PORT, &addr, &addrlen, + &net)) { + log_err("cannot parse netblock in local-zone-override: %s %s", + zname, netblock); + return 0; + } + + /* parse zone type */ + if(!local_zone_str2type(type, &t)) { + log_err("cannot parse type in local-zone-override: %s %s %s", + zname, netblock, type); + return 0; + } + + /* find localzone entry */ + lock_rw_rdlock(&zones->lock); + z = local_zones_lookup(zones, dname, dname_len, dname_labs, rr_class); + if(!z) { + lock_rw_unlock(&zones->lock); + log_err("no local-zone for local-zone-override %s", zname); + return 0; + } + lock_rw_wrlock(&z->lock); + lock_rw_unlock(&zones->lock); + + /* create netblock addr_tree if not present yet */ + if(!z->override_tree) { + z->override_tree = (struct rbtree_t*)regional_alloc_zero( + z->region, sizeof(*z->override_tree)); + if(!z->override_tree) { + lock_rw_unlock(&z->lock); + log_err("out of memory"); + return 0; + } + addr_tree_init(z->override_tree); + } + /* add new elem to tree */ + if(z->override_tree) { + struct local_zone_override* n; + n = (struct local_zone_override*)regional_alloc_zero( + z->region, sizeof(*n)); + if(!n) { + lock_rw_unlock(&z->lock); + log_err("out of memory"); + return 0; + } + n->type = t; + if(!addr_tree_insert(z->override_tree, + (struct addr_tree_node*)n, &addr, addrlen, net)) { + lock_rw_unlock(&z->lock); + log_err("duplicate local-zone-override %s %s", + zname, netblock); + return 0; + } + } + + lock_rw_unlock(&z->lock); + return 1; +} + /** parse local-zone: statements */ static int lz_enter_zones(struct local_zones* zones, struct config_file* cfg) @@ -720,6 +803,19 @@ lz_enter_defaults(struct local_zones* zones, struct config_file* cfg) return 1; } +/** parse local-zone-override: statements */ +static int +lz_enter_overrides(struct local_zones* zones, struct config_file* cfg) +{ + struct config_str3list* p; + for(p = cfg->local_zone_overrides; p; p = p->next) { + if(!lz_enter_override(zones, p->str, p->str2, p->str3, + LDNS_RR_CLASS_IN)) + return 0; + } + return 1; +} + /** setup parent pointers, so that a lookup can be done for closest match */ static void init_parents(struct local_zones* zones) @@ -749,6 +845,9 @@ init_parents(struct local_zones* zones) break; } prev = node; + + if(node->override_tree) + addr_tree_init_parents(node->override_tree); lock_rw_unlock(&node->lock); } lock_rw_unlock(&zones->lock); @@ -887,6 +986,10 @@ local_zones_apply_cfg(struct local_zones* zones, struct config_file* cfg) if(!lz_enter_defaults(zones, cfg)) { return 0; } + /* enter local zone overrides */ + if(!lz_enter_overrides(zones, cfg)) { + return 0; + } /* create implicit transparent zone from data. */ if(!lz_setup_implicit(zones, cfg)) { return 0; diff --git a/services/localzone.h b/services/localzone.h index 964df1938..91347cdaf 100644 --- a/services/localzone.h +++ b/services/localzone.h @@ -43,6 +43,7 @@ #define SERVICES_LOCALZONE_H #include "util/rbtree.h" #include "util/locks.h" +#include "util/storage/dnstree.h" struct ub_packed_rrset_key; struct regional; struct config_file; @@ -119,6 +120,9 @@ struct local_zone { uint8_t* taglist; /** length of the taglist (in bytes) */ size_t taglen; + /** netblock addr_tree with struct local_zone_override information + * or NULL if there are no override elements */ + struct rbtree_t* override_tree; /** in this region the zone's data is allocated. * the struct local_zone itself is malloced. */ @@ -157,6 +161,16 @@ struct local_rrset { struct ub_packed_rrset_key* rrset; }; +/** + * Local zone override information + */ +struct local_zone_override { + /** node in addrtree */ + struct addr_tree_node node; + /** override for local zone type */ + enum localzone_type type; +}; + /** * Create local zones storage * @return new struct or NULL on error. diff --git a/util/config_file.c b/util/config_file.c index 76c7f2cc8..35ca00bd1 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -212,6 +212,7 @@ config_create(void) cfg->local_zones = NULL; cfg->local_zones_nodefault = NULL; cfg->local_data = NULL; + cfg->local_zone_overrides = NULL; cfg->unblock_lan_zones = 0; cfg->insecure_lan_zones = 0; cfg->python_script = NULL; @@ -640,6 +641,14 @@ config_collate_cat(struct config_strlist* list) func(buf, arg); \ } \ } +/** compare and print list option */ +#define O_LS3(opt, name, lst) if(strcmp(opt, name)==0) { \ + struct config_str3list* p = cfg->lst; \ + for(p = cfg->lst; p; p = p->next) { \ + snprintf(buf, len, "%s %s %s", p->str, p->str2, p->str3); \ + func(buf, arg); \ + } \ + } /** compare and print taglist option */ #define O_LTG(opt, name, lst) if(strcmp(opt, name)==0) { \ char* tmpstr = NULL; \ @@ -785,6 +794,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_IFC(opt, "define-tag", num_tags, tagname) else O_LTG(opt, "local-zone-tag", local_zone_tags) else O_LTG(opt, "access-control-tag", acl_tags) + else O_LS3(opt, "local-zone-override", local_zone_overrides) /* not here: * outgoing-permit, outgoing-avoid - have list of ports * local-zone - zones and nodefault variables @@ -936,6 +946,20 @@ config_deldblstrlist(struct config_str2list* p) } } +void +config_deltrplstrlist(struct config_str3list* p) +{ + struct config_str3list *np; + while(p) { + np = p->next; + free(p->str); + free(p->str2); + free(p->str3); + free(p); + p = np; + } +} + void config_delstub(struct config_stub* p) { @@ -1021,6 +1045,7 @@ config_delete(struct config_file* cfg) config_deldblstrlist(cfg->local_zones); config_delstrlist(cfg->local_zones_nodefault); config_delstrlist(cfg->local_data); + config_deltrplstrlist(cfg->local_zone_overrides); config_del_strarray(cfg->tagname, cfg->num_tags); config_del_strbytelist(cfg->local_zone_tags); config_del_strbytelist(cfg->acl_tags); @@ -1212,6 +1237,24 @@ cfg_str2list_insert(struct config_str2list** head, char* item, char* i2) return 1; } +int +cfg_str3list_insert(struct config_str3list** head, char* item, char* i2, + char* i3) +{ + struct config_str3list *s; + if(!item || !i2 || !i3 || !head) + return 0; + s = (struct config_str3list*)calloc(1, sizeof(struct config_str3list)); + if(!s) + return 0; + s->str = item; + s->str2 = i2; + s->str3 = i3; + s->next = *head; + *head = s; + return 1; +} + int cfg_strbytelist_insert(struct config_strbytelist** head, char* item, uint8_t* i2, size_t i2len) diff --git a/util/config_file.h b/util/config_file.h index 9a82a8f6d..c68421681 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -44,6 +44,7 @@ struct config_stub; struct config_strlist; struct config_str2list; +struct config_str3list; struct config_strbytelist; struct module_qstate; struct sock_list; @@ -292,6 +293,8 @@ struct config_file { struct config_strlist* local_zones_nodefault; /** local data RRs configured */ struct config_strlist* local_data; + /** local zone override types per netblock */ + struct config_str3list* local_zone_overrides; /** unblock lan zones (reverse lookups for AS112 zones) */ int unblock_lan_zones; /** insecure lan zones (don't validate AS112 zones) */ @@ -435,6 +438,21 @@ struct config_str2list { char* str2; }; +/** + * List of three strings for config options + */ +struct config_str3list { + /** next item in list */ + struct config_str3list* next; + /** first string */ + char* str; + /** second string */ + char* str2; + /** third string */ + char* str3; +}; + + /** * List of string, bytestring for config options */ @@ -586,9 +604,20 @@ int cfg_strlist_insert(struct config_strlist** head, char* item); */ int cfg_str2list_insert(struct config_str2list** head, char* item, char* i2); +/** + * Insert string into str3list. + * @param head: pointer to str3list head variable. + * @param item: new item. malloced by caller. If NULL the insertion fails. + * @param i2: 2nd string, malloced by caller. If NULL the insertion fails. + * @param i3: 3rd string, malloced by caller. If NULL the insertion fails. + * @return: true on success. + */ +int cfg_str3list_insert(struct config_str3list** head, char* item, char* i2, + char* i3); + /** * Insert string into strbytelist. - * @param head: pointer to str2list head variable. + * @param head: pointer to strbytelist head variable. * @param item: new item. malloced by caller. If NULL the insertion fails. * @param i2: 2nd string, malloced by caller. If NULL the insertion fails. * @param i2len: length of the i2 bytestring. @@ -620,6 +649,12 @@ void config_delstrlist(struct config_strlist* list); */ void config_deldblstrlist(struct config_str2list* list); +/** + * Delete items in config triple string list. + * @param list: list. + */ +void config_deltrplstrlist(struct config_str3list* list); + /** * Delete a stub item * @param p: stub item diff --git a/util/configlexer.c b/util/configlexer.c index 940f484ca..88de2d8b7 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -378,8 +378,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 184 -#define YY_END_OF_BUFFER 185 +#define YY_NUM_RULES 185 +#define YY_END_OF_BUFFER 186 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -387,212 +387,212 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1852] = +static yyconst flex_int16_t yy_accept[1861] = { 0, - 1, 1, 166, 166, 170, 170, 174, 174, 178, 178, - 1, 1, 185, 182, 1, 164, 164, 183, 2, 183, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 166, 167, 167, 168, 183, 170, 171, 171, 172, 183, - 177, 174, 175, 175, 176, 183, 178, 179, 179, 180, - 183, 181, 165, 2, 169, 183, 181, 182, 0, 1, - 2, 2, 2, 2, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 166, 0, 170, 0, - 177, 0, 174, 178, 0, 181, 0, 2, 2, 181, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 181, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 181, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 74, 182, 182, 182, 182, 182, 182, 7, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 181, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 181, 182, 182, 182, 182, 182, 34, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 144, 182, - 13, 14, 182, 16, 15, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 134, 182, 182, 182, - 182, 182, 182, 182, 3, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 181, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 173, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 37, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 38, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 18, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 89, 173, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 88, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 72, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 23, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 35, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 36, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 25, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 158, 182, 182, 182, 182, 182, 182, 29, - 182, 30, 182, 182, 182, 75, 182, 76, 182, 73, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 6, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 141, - 182, 182, 182, 182, 91, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 26, 182, - 182, 182, 182, 182, 182, 117, 182, 116, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 39, 182, 182, 182, 182, 182, 182, - 182, 182, 78, 77, 182, 182, 182, 182, 182, 182, - 182, 113, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 57, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 61, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 33, 182, 182, 182, 182, 182, 182, 182, 115, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 5, - - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 109, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 127, 182, 110, 182, 182, 139, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 24, 182, 182, - 182, 182, 80, 182, 81, 79, 182, 182, 182, 182, - 182, 182, 182, 87, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 111, 182, 182, 182, - - 182, 182, 138, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 71, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 31, 182, 182, 20, 182, 182, 182, 17, 182, - 96, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 46, 48, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 145, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 82, 182, 182, 182, 182, 182, 182, 86, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 90, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 133, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 100, 182, 104, 182, 182, 182, 182, - 182, 85, 182, 182, 67, 182, 125, 182, 182, 182, - 182, 182, 140, 182, 182, 182, 182, 182, 182, 182, - 150, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 103, 182, 182, 182, 182, 182, 49, 50, - 182, 182, 32, 56, 105, 182, 118, 142, 114, 182, - - 182, 42, 182, 107, 182, 182, 182, 182, 182, 8, - 182, 182, 182, 70, 182, 182, 182, 182, 160, 182, - 124, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 92, 149, 182, 182, 182, 182, 182, 182, 182, 182, - 135, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 106, 182, 41, 43, - 182, 182, 182, 182, 182, 182, 182, 69, 182, 182, - 182, 182, 159, 182, 182, 182, 182, 129, 21, 22, - - 182, 182, 182, 182, 182, 182, 182, 66, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 131, - 128, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 40, 182, 182, 182, 182, 182, 182, 182, 12, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 11, 182, - 182, 19, 182, 182, 182, 163, 182, 44, 182, 137, - 130, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 99, 98, 182, 182, 182, 132, 126, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 51, 182, - - 182, 136, 182, 182, 182, 182, 182, 182, 182, 182, - 45, 182, 182, 182, 93, 95, 119, 182, 182, 182, - 97, 182, 143, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 146, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 120, 182, 182, 27, 182, - 182, 182, 4, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 148, 182, 182, 123, 182, 182, 182, 182, 182, 182, - 182, 54, 182, 28, 182, 10, 182, 182, 182, 182, - 182, 121, 58, 182, 182, 182, 102, 182, 182, 182, - - 182, 182, 182, 182, 182, 147, 83, 182, 182, 182, - 182, 60, 64, 59, 182, 52, 182, 9, 182, 182, - 161, 182, 182, 101, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 65, 63, 182, 53, 182, - 112, 182, 122, 182, 182, 94, 47, 182, 182, 182, - 182, 182, 182, 182, 84, 62, 55, 162, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 68, 182, 157, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - - 182, 182, 182, 182, 182, 182, 108, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 153, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 151, - 182, 154, 155, 182, 182, 182, 182, 182, 152, 156, - 0 + 1, 1, 167, 167, 171, 171, 175, 175, 179, 179, + 1, 1, 186, 183, 1, 165, 165, 184, 2, 184, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 167, 168, 168, 169, 184, 171, 172, 172, 173, 184, + 178, 175, 176, 176, 177, 184, 179, 180, 180, 181, + 184, 182, 166, 2, 170, 184, 182, 183, 0, 1, + 2, 2, 2, 2, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 167, 0, 171, 0, + 178, 0, 175, 179, 0, 182, 0, 2, 2, 182, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 182, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 74, 183, 183, 183, 183, 183, 183, 7, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 182, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 182, 183, 183, 183, 183, 183, 34, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 145, 183, + 13, 14, 183, 16, 15, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 134, 183, 183, 183, + 183, 183, 183, 183, 3, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 182, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 174, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 37, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 38, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 18, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 89, 174, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 88, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 72, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 23, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 35, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 36, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 25, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 159, 183, 183, 183, 183, 183, 183, 29, + 183, 30, 183, 183, 183, 75, 183, 76, 183, 73, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 6, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 141, + 183, 183, 183, 183, 91, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 26, 183, + 183, 183, 183, 183, 183, 117, 183, 116, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 39, 183, 183, 183, 183, 183, 183, + 183, 183, 78, 77, 183, 183, 183, 183, 183, 183, + 183, 113, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 57, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 61, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 33, 183, 183, 183, 183, 183, 183, 183, 183, + 115, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 5, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 109, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 127, 183, 110, 183, 183, 139, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 24, 183, + 183, 183, 183, 80, 183, 81, 79, 183, 183, 183, + 183, 183, 183, 183, 87, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 111, 183, 183, + + 183, 183, 183, 183, 138, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 71, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 31, 183, 183, 20, 183, 183, 183, + 17, 183, 96, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 46, 48, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 146, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 82, 183, 183, 183, 183, 183, 183, 86, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 90, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 133, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 100, 183, 104, 183, + 183, 183, 183, 183, 85, 183, 183, 67, 183, 125, + 183, 183, 183, 183, 183, 140, 183, 183, 183, 183, + 183, 183, 183, 151, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 103, 183, 183, 183, 183, + 183, 49, 50, 183, 183, 32, 56, 105, 183, 118, + + 183, 142, 114, 183, 183, 42, 183, 107, 183, 183, + 183, 183, 183, 8, 183, 183, 183, 70, 183, 183, + 183, 183, 161, 183, 124, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 92, 150, 183, 183, 183, 183, + 183, 183, 183, 183, 135, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 106, 183, 183, 41, 43, 183, 183, 183, 183, 183, + 183, 183, 69, 183, 183, 183, 183, 160, 183, 183, + + 183, 183, 129, 21, 22, 183, 183, 183, 183, 183, + 183, 183, 66, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 131, 128, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 40, 183, 183, 183, 183, + 183, 183, 183, 12, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 11, 183, 183, 19, 183, 183, + 183, 164, 183, 44, 183, 137, 130, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 99, 98, + 183, 183, 183, 132, 126, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 51, 183, 183, 183, 136, 183, + 183, 183, 183, 183, 183, 183, 183, 45, 183, 183, + 183, 93, 95, 119, 183, 183, 183, 97, 183, 143, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 147, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 120, 183, 183, 183, 27, 183, 183, 183, + 4, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 149, 183, + 183, 123, 183, 183, 183, 183, 183, 183, 183, 54, + 183, 28, 144, 183, 10, 183, 183, 183, 183, 183, + + 121, 58, 183, 183, 183, 102, 183, 183, 183, 183, + 183, 183, 183, 183, 148, 83, 183, 183, 183, 183, + 60, 64, 59, 183, 52, 183, 9, 183, 183, 162, + 183, 183, 101, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 65, 63, 183, 53, 183, 112, + 183, 122, 183, 183, 94, 47, 183, 183, 183, 183, + 183, 183, 183, 84, 62, 55, 163, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 68, 183, 158, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 108, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 154, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 152, 183, + 155, 156, 183, 183, 183, 183, 183, 153, 157, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -635,15 +635,15 @@ static yyconst YY_CHAR yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[1866] = +static yyconst flex_uint16_t yy_base[1875] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 3326, 2459, 50, 3655, 3655, 3655, 129, 94, + 87, 108, 2327, 2209, 50, 3682, 3682, 3682, 129, 94, 70, 104, 130, 90, 92, 115, 127, 95, 84, 111, 137, 148, 50, 170, 122, 150, 157, 160, 140, 166, - 2191, 3655, 3655, 3655, 70, 2071, 3655, 3655, 3655, 42, - 2030, 1970, 3655, 3655, 3655, 192, 1217, 3655, 3655, 3655, - 141, 1000, 3655, 198, 3655, 202, 197, 956, 210, 120, + 2199, 3682, 3682, 3682, 70, 2123, 3682, 3682, 3682, 42, + 2030, 1970, 3682, 3682, 3682, 192, 1217, 3682, 3682, 3682, + 141, 1000, 3682, 198, 3682, 202, 197, 956, 210, 120, 0, 223, 0, 0, 103, 203, 180, 205, 164, 206, 213, 210, 125, 216, 231, 218, 227, 224, 230, 233, 234, 236, 240, 254, 238, 251, 255, 241, 252, 263, @@ -673,7 +673,7 @@ static yyconst flex_uint16_t yy_base[1866] = 684, 686, 687, 692, 694, 695, 689, 697, 700, 701, 708, 712, 705, 720, 698, 717, 721, 724, 726, 728, 718, 734, 737, 730, 736, 738, 739, 740, 742, 744, - 748, 3655, 752, 746, 754, 755, 756, 757, 3655, 758, + 748, 3682, 752, 746, 754, 755, 756, 757, 3682, 758, 759, 760, 766, 763, 768, 775, 782, 770, 771, 780, 781, 784, 786, 787, 789, 809, 792, 794, 790, 800, 804, 796, 797, 802, 818, 811, 820, 814, 821, 822, @@ -688,15 +688,15 @@ static yyconst flex_uint16_t yy_base[1866] = 972, 983, 984, 985, 987, 988, 989, 990, 992, 993, 995, 996, 1004, 997, 998, 1014, 1006, 1012, 1019, 1018, 1020, 1022, 1021, 1025, 1026, 1027, 1031, 1029, 1037, 1040, - 1038, 1041, 1042, 1050, 1043, 1056, 1051, 3655, 1053, 1055, - 1058, 1059, 1061, 1068, 1066, 1067, 1069, 1095, 3655, 1072, - 3655, 3655, 1073, 3655, 3655, 1077, 1070, 1078, 1088, 1118, + 1038, 1041, 1042, 1050, 1043, 1056, 1051, 3682, 1053, 1055, + 1058, 1059, 1061, 1068, 1066, 1067, 1069, 1095, 3682, 1072, + 3682, 3682, 1073, 3682, 3682, 1077, 1070, 1078, 1088, 1118, 1084, 1080, 1081, 1093, 1092, 1101, 1102, 1097, 1109, 1111, 1121, 1123, 1113, 1126, 1127, 1129, 1131, 1132, 1134, 1135, 1138, 1141, 1151, 1155, 1154, 1099, 1144, 1156, 1142, 1158, - 1159, 1161, 1168, 1162, 1174, 1165, 3655, 1172, 1173, 1175, - 1171, 1176, 1179, 1186, 3655, 1183, 1187, 1188, 1190, 1191, + 1159, 1161, 1168, 1162, 1174, 1165, 3682, 1172, 1173, 1175, + 1171, 1176, 1179, 1186, 3682, 1183, 1187, 1188, 1190, 1191, 1195, 1193, 1196, 1198, 1199, 1203, 1205, 1201, 1221, 1206, 1208, 1228, 1229, 1227, 1211, 1225, 1233, 1214, 1239, 1241, 1242, 1232, 1234, 1248, 1244, 1252, 1254, 1246, 1255, 1249, @@ -704,356 +704,358 @@ static yyconst flex_uint16_t yy_base[1866] = 1272, 1273, 1279, 1285, 1283, 1294, 1295, 1296, 1301, 1303, 1305, 1312, 1313, 1276, 1315, 1304, 1316, 1323, 1325, 1326, - 1327, 1329, 1332, 1333, 3655, 1340, 1342, 1336, 1338, 1349, + 1327, 1329, 1332, 1333, 3682, 1340, 1342, 1336, 1338, 1349, 1347, 1343, 1350, 1353, 1354, 1346, 1356, 1357, 1358, 1364, - 1371, 3655, 1360, 1367, 1368, 1370, 1376, 1382, 1380, 1390, - 1393, 1384, 3655, 1399, 1400, 1392, 1396, 1386, 1402, 1403, + 1371, 3682, 1360, 1367, 1368, 1370, 1376, 1382, 1380, 1390, + 1393, 1384, 3682, 1399, 1400, 1392, 1396, 1386, 1402, 1403, 1405, 1407, 1409, 1411, 1412, 1413, 1415, 1420, 1422, 1424, - 1427, 1425, 1426, 1432, 1433, 1434, 1435, 3655, 1436, 1438, + 1427, 1425, 1426, 1432, 1433, 1434, 1435, 3682, 1436, 1438, 1437, 1444, 1455, 1458, 1447, 1460, 1449, 1451, 1457, 1378, - 1461, 1463, 1464, 1466, 3655, 158, 1467, 1470, 1473, 1476, + 1461, 1463, 1464, 1466, 3682, 158, 1467, 1470, 1473, 1476, 1480, 1477, 1484, 1474, 1478, 1490, 1486, 1487, 1496, 1494, 1497, 1499, 1500, 1502, 1504, 1505, 1507, 1512, 1511, 1513, 1519, 1515, 1521, 1523, 1524, 1526, 1529, 1532, 1535, 1534, 1537, 1538, 1539, 1540, 1541, 1542, 1547, 1546, 1550, 1554, - 3655, 1569, 1557, 1558, 1555, 1567, 1556, 1578, 1565, 1574, + 3682, 1569, 1557, 1558, 1555, 1567, 1556, 1578, 1565, 1574, 1579, 1576, 1581, 1587, 1585, 1591, 1592, 1593, 1595, 1598, - 1599, 1583, 1605, 1607, 1606, 1608, 1614, 1609, 1615, 3655, + 1599, 1583, 1605, 1607, 1606, 1608, 1614, 1609, 1615, 3682, 1616, 1618, 1617, 1622, 1641, 1624, 1625, 1619, 1629, 1621, - 1637, 1646, 1642, 1648, 3655, 1649, 1650, 1651, 1654, 1656, + 1637, 1646, 1642, 1648, 3682, 1649, 1650, 1651, 1654, 1656, 1659, 1660, 1664, 1661, 1666, 1667, 1668, 1677, 1669, 1674, - 1672, 3655, 1688, 1689, 1685, 1691, 1692, 1693, 1694, 1696, + 1672, 3682, 1688, 1689, 1685, 1691, 1692, 1693, 1694, 1696, 1682, 1697, 1703, 1699, 1704, 1706, 1707, 1708, 1710, 1711, - 1714, 1716, 1723, 1715, 1726, 3655, 1727, 1734, 1728, 1735, + 1714, 1716, 1723, 1715, 1726, 3682, 1727, 1734, 1728, 1735, 1306, 1739, 1745, 1744, 1741, 1742, 1747, 1749, 1750, 1751, 1754, 1756, 1757, 1758, 1762, 1763, 1764, 1765, 1766, 1780, 1781, 1770, 1759, 1782, 1783, 1772, 1785, 1796, 1799, 1800, - 1802, 3655, 1805, 1806, 1795, 1807, 1808, 1792, 1819, 1821, + 1802, 3682, 1805, 1806, 1795, 1807, 1808, 1792, 1819, 1821, 1798, 1809, 1815, 1823, 1824, 1831, 1825, 1827, 1829, 1832, 1833, 1834, 1835, 1836, 1840, 1845, 1849, 1852, 1853, 1858, - 1859, 1862, 3655, 1860, 1839, 1865, 1869, 1863, 1876, 3655, - 1861, 3655, 1877, 1874, 1889, 3655, 1886, 3655, 1888, 3655, + 1859, 1862, 3682, 1860, 1839, 1865, 1869, 1863, 1876, 3682, + 1861, 3682, 1877, 1874, 1889, 3682, 1886, 3682, 1888, 3682, 1890, 1891, 1894, 1878, 1896, 1895, 1897, 1899, 1901, 1904, - 1902, 1906, 1907, 1908, 1913, 3655, 1914, 1915, 1919, 1923, - 1916, 1922, 1925, 1926, 1931, 1930, 1943, 1937, 1944, 3655, - 1940, 1948, 1941, 1945, 3655, 1949, 1952, 1950, 1955, 1958, + 1902, 1906, 1907, 1908, 1913, 3682, 1914, 1915, 1919, 1923, + 1916, 1922, 1925, 1926, 1931, 1930, 1943, 1937, 1944, 3682, + 1940, 1948, 1941, 1945, 3682, 1949, 1952, 1950, 1955, 1958, 1968, 1965, 1969, 1966, 1956, 1974, 1972, 1979, 1982, 1983, 1984, 1985, 1991, 1987, 1988, 1995, 1992, 1989, 1996, 1998, - 1999, 2003, 2001, 2011, 2005, 2008, 2009, 2012, 3655, 2020, - 2017, 2021, 2024, 2026, 2027, 3655, 2029, 3655, 2040, 2034, - 2041, 2032, 2042, 2044, 2045, 2047, 2055, 2053, 2058, 2059, - 2061, 2060, 2064, 2065, 2062, 2066, 2067, 2069, 2073, 2070, - - 2088, 2081, 2076, 3655, 2091, 2083, 2097, 2096, 2095, 2104, - 2098, 2105, 3655, 3655, 2109, 2100, 2106, 2107, 2121, 2112, - 2118, 3655, 2110, 2119, 2120, 2122, 2129, 2131, 2132, 2133, - 2138, 2135, 2139, 2141, 2142, 2143, 2150, 2144, 2147, 2151, - 2159, 2160, 2167, 3655, 2164, 2152, 2171, 2168, 2172, 2173, - 2174, 2175, 2176, 2178, 2179, 2183, 2185, 2193, 2189, 2192, - 2194, 2196, 2197, 2202, 2204, 2205, 2212, 2213, 3655, 2220, - 2206, 2223, 2208, 2222, 2225, 2232, 2228, 2219, 2229, 2235, - 2231, 3655, 2234, 2236, 2238, 2243, 2244, 2246, 2252, 3655, - 2250, 2255, 2256, 2258, 2261, 2260, 2262, 2264, 2267, 3655, - - 2268, 2277, 2274, 2275, 2281, 2284, 2288, 2280, 2289, 2291, - 2278, 2292, 2293, 2295, 2299, 2300, 2302, 2303, 2305, 2306, - 2307, 2309, 2310, 2315, 2318, 2319, 2328, 2330, 2332, 2340, - 2324, 2334, 2341, 2337, 2338, 2343, 2344, 2352, 2345, 2353, - 2351, 3655, 2354, 2358, 2361, 2365, 2356, 2362, 2366, 2372, - 2370, 3655, 2375, 3655, 2374, 2373, 3655, 2381, 2383, 2384, - 2386, 2387, 2388, 2390, 2391, 2397, 2389, 3655, 2398, 2400, - 2402, 2406, 3655, 2409, 3655, 3655, 2401, 2412, 2419, 1700, - 2420, 2422, 2428, 3655, 2423, 2413, 2431, 2425, 2417, 2429, - 2435, 2436, 2437, 2439, 2440, 2442, 3655, 2444, 2443, 2446, - - 2450, 2452, 3655, 2451, 2456, 2453, 2466, 2467, 2468, 2470, - 2458, 2472, 2482, 2478, 2474, 2480, 3655, 2481, 2484, 2486, - 2489, 2491, 2493, 2499, 2496, 2495, 2502, 2503, 2505, 2508, - 2504, 3655, 2518, 2519, 3655, 2509, 2510, 2511, 3655, 2520, - 3655, 2525, 2521, 2528, 2529, 2533, 2534, 2540, 2535, 2537, - 2542, 2544, 2550, 2548, 2546, 3655, 3655, 2552, 2555, 2559, - 2560, 2562, 2563, 2570, 2567, 2569, 3655, 2571, 2573, 2575, - 2576, 2577, 2579, 2583, 2585, 2586, 2580, 2587, 2588, 2589, - 3655, 2593, 2594, 2600, 2601, 2603, 2602, 3655, 2605, 2606, - 2607, 2610, 2612, 2626, 2629, 2631, 2617, 2621, 2636, 2638, - - 2640, 2633, 2642, 2644, 2646, 2647, 3655, 2648, 2650, 2651, - 2655, 2656, 2657, 2658, 2659, 2665, 2662, 2667, 2668, 2672, - 3655, 2669, 2673, 2676, 2679, 2678, 2680, 2685, 2686, 2692, - 2688, 2690, 2695, 2694, 2698, 2701, 2703, 2705, 2704, 2706, - 2707, 2714, 2723, 3655, 2710, 3655, 2716, 2717, 2729, 2731, - 2726, 3655, 2728, 2733, 3655, 2735, 3655, 2734, 2736, 2738, - 2739, 2745, 3655, 2749, 2750, 2752, 2754, 2755, 2756, 2759, - 3655, 2757, 2762, 2768, 2771, 2763, 2770, 2773, 2772, 2774, - 2785, 2781, 3655, 2778, 2786, 2793, 2782, 2611, 3655, 3655, - 2789, 2795, 3655, 3655, 3655, 2798, 3655, 3655, 3655, 2799, - - 2801, 3655, 2806, 3655, 2807, 2808, 2810, 2811, 2812, 3655, - 2813, 2815, 2819, 3655, 2814, 2821, 2820, 2822, 3655, 2825, - 3655, 2829, 2828, 2831, 2835, 2842, 2844, 2847, 2836, 2839, - 2849, 2850, 2851, 2853, 2852, 2855, 2856, 2859, 2860, 2864, - 2866, 2867, 2868, 2870, 2871, 2873, 2874, 2876, 2883, 2886, - 3655, 3655, 2884, 2889, 2891, 2892, 2894, 2895, 2896, 2897, - 3655, 2900, 2901, 2902, 2905, 2906, 2908, 2911, 2916, 2918, - 2928, 2919, 2921, 2922, 2925, 2929, 3655, 2931, 3655, 3655, - 2932, 2939, 2934, 2938, 2940, 2944, 2947, 3655, 2945, 2955, - 2957, 2948, 3655, 2963, 2946, 2967, 2969, 3655, 3655, 3655, - - 2970, 2954, 2964, 2972, 2974, 2975, 2978, 3655, 2980, 2982, - 2983, 2981, 2985, 2990, 2991, 2997, 2999, 3001, 3003, 3655, - 3655, 2993, 3010, 3007, 3008, 3009, 3012, 3014, 3015, 3016, - 3655, 3021, 3017, 3019, 3025, 3029, 3030, 3033, 3655, 3026, - 3023, 3036, 3040, 3037, 3041, 3047, 3044, 3048, 3655, 3049, - 3051, 3655, 3057, 3054, 3059, 3655, 3062, 3655, 3066, 3655, - 3655, 3060, 3069, 3072, 3077, 3079, 3082, 3067, 3073, 3088, - 3090, 3091, 3655, 3655, 3093, 3094, 3101, 3655, 3655, 3097, - 3086, 3105, 3098, 3099, 3106, 3108, 3109, 3113, 3111, 3114, - 3117, 3122, 3124, 3112, 3123, 3125, 3126, 3127, 3655, 3136, - - 3137, 3655, 3133, 3142, 3139, 3144, 3145, 3155, 3071, 3148, - 3655, 3150, 3152, 3131, 3655, 3655, 3655, 3158, 3161, 3165, - 3655, 3166, 3655, 3167, 3168, 3175, 3169, 3172, 3173, 3183, - 3179, 3181, 3655, 3182, 3184, 3186, 3189, 3187, 3192, 3194, - 3195, 3197, 3198, 3206, 3200, 3655, 3210, 3207, 3655, 3215, - 3211, 3216, 3655, 3217, 3220, 3221, 3223, 3226, 3227, 3228, - 3229, 3233, 3230, 3235, 3238, 3245, 3237, 3252, 3236, 3258, - 3655, 3260, 3244, 3655, 3261, 3248, 3264, 3268, 3271, 3273, - 3274, 3655, 3276, 3655, 3277, 3655, 3281, 3251, 3282, 3284, - 3285, 3655, 3655, 3286, 3288, 3292, 3655, 3293, 3289, 3295, - - 3296, 3299, 3300, 3302, 3304, 3655, 3655, 3305, 3307, 3311, - 3308, 3655, 3655, 3655, 3320, 3655, 3322, 3655, 3328, 3316, - 3655, 3332, 3321, 3655, 3324, 3334, 3338, 3335, 3329, 3341, - 3339, 3343, 3344, 3345, 3347, 3655, 3655, 3351, 3655, 3353, - 3655, 3358, 3655, 3355, 3361, 3655, 3655, 3363, 3370, 3359, - 3369, 3368, 3371, 3372, 3655, 3655, 3655, 3655, 3375, 3376, - 3380, 3377, 3378, 3381, 3382, 3383, 3385, 3393, 3386, 3402, - 3404, 3405, 3394, 3403, 3411, 3407, 3655, 3412, 3655, 3413, - 3420, 3422, 3414, 3416, 3423, 3424, 3425, 3426, 3430, 3431, - 3435, 3436, 3433, 3445, 3448, 3449, 3451, 3447, 3460, 3458, - - 3461, 3459, 3462, 3469, 3463, 3467, 3655, 3465, 3471, 3472, - 3473, 3474, 3479, 3476, 3487, 3492, 3489, 3496, 3483, 3498, - 3499, 3500, 3485, 3505, 3501, 3655, 3508, 3509, 3511, 3512, - 3515, 3517, 3518, 3521, 3524, 3519, 3528, 3533, 3534, 3655, - 3535, 3655, 3655, 3538, 3525, 3529, 3546, 3550, 3655, 3655, - 3655, 3563, 3570, 3577, 3584, 3591, 94, 3598, 3605, 3612, - 3619, 3626, 3633, 3640, 3647 + 1999, 2003, 2001, 2011, 2005, 2008, 2009, 2012, 3682, 2020, + 2017, 2021, 2024, 2026, 2027, 3682, 2029, 3682, 2040, 2034, + 2041, 2032, 2042, 2045, 2047, 2052, 2055, 2054, 2057, 2058, + 2060, 2062, 2063, 2068, 2065, 2066, 2069, 2067, 2072, 2082, + + 2073, 2085, 2075, 3682, 2091, 2089, 2100, 2092, 2096, 2104, + 2101, 2102, 3682, 3682, 2109, 2106, 2103, 2108, 2115, 2112, + 2113, 3682, 2118, 2120, 2125, 2129, 2132, 2126, 2122, 2133, + 2140, 2136, 2142, 2141, 2143, 2144, 2151, 2147, 2152, 2154, + 2157, 2158, 2165, 3682, 2162, 2166, 2169, 2171, 2172, 2173, + 2174, 2176, 2179, 2178, 2181, 2180, 2189, 2190, 2192, 2193, + 2194, 2197, 2198, 2203, 2205, 2206, 2216, 2217, 3682, 2224, + 2207, 2226, 2208, 2223, 2227, 2234, 2230, 2215, 2231, 2237, + 2236, 3682, 2238, 2239, 2241, 2245, 2246, 2248, 2250, 2253, + 3682, 2255, 2258, 2259, 2262, 2261, 2263, 2265, 2267, 2275, + + 3682, 2273, 2281, 2277, 2279, 2285, 2287, 2284, 2290, 2292, + 2288, 2294, 2298, 2296, 2300, 2302, 2303, 2305, 2306, 2307, + 2309, 2312, 2317, 2319, 2324, 2311, 2326, 2334, 2337, 2343, + 2344, 2327, 2333, 2346, 2347, 2348, 2349, 2331, 2355, 2351, + 2362, 2354, 3682, 2360, 2364, 2368, 2370, 2358, 2371, 2374, + 2375, 2376, 3682, 2382, 3682, 2380, 2372, 3682, 2386, 2389, + 2390, 2391, 2393, 2394, 2392, 2397, 2404, 2395, 3682, 2405, + 2401, 2403, 2407, 3682, 2415, 3682, 3682, 2408, 2418, 2425, + 1700, 2421, 2424, 2428, 3682, 2429, 2430, 2433, 2431, 2435, + 2437, 2439, 2441, 2438, 2442, 2443, 2445, 3682, 2447, 2444, + + 2448, 2454, 2455, 2458, 3682, 2460, 2469, 2461, 2470, 2471, + 2472, 2476, 2478, 2479, 2485, 2483, 2482, 2484, 3682, 2486, + 2489, 2491, 2493, 2497, 2498, 2506, 2502, 2508, 2504, 2511, + 2513, 2500, 2514, 3682, 2517, 2519, 3682, 2521, 2525, 2527, + 3682, 2529, 3682, 2530, 2531, 2528, 2532, 2538, 2533, 2540, + 2544, 2547, 2549, 2548, 2557, 2550, 2555, 3682, 3682, 2560, + 2562, 2565, 2566, 2568, 2569, 2577, 2573, 2582, 3682, 2570, + 2574, 2576, 2583, 2584, 2585, 2586, 2591, 2588, 2593, 2596, + 2594, 2597, 3682, 2600, 2604, 2605, 2606, 2607, 2609, 3682, + 2611, 2612, 2613, 2617, 2621, 2632, 2636, 2638, 2614, 2639, + + 2641, 2643, 2645, 2646, 2648, 2649, 2651, 2654, 2655, 3682, + 2656, 2658, 2659, 2663, 2664, 2660, 2622, 2668, 2671, 2672, + 2673, 2675, 2677, 3682, 2679, 2680, 2681, 2683, 2686, 2689, + 2693, 2690, 2697, 2695, 2700, 2701, 2702, 2705, 2707, 2709, + 2710, 2711, 2713, 2715, 2724, 2717, 3682, 2723, 3682, 2726, + 2730, 2737, 2733, 2736, 3682, 2738, 2739, 3682, 2740, 3682, + 2741, 2745, 2746, 2747, 2755, 3682, 2758, 2749, 2760, 2762, + 2751, 2764, 2767, 3682, 2769, 2772, 2771, 2776, 2777, 2778, + 2780, 2779, 2782, 2790, 2788, 3682, 2786, 2791, 2798, 2795, + 2804, 3682, 3682, 2800, 2807, 3682, 3682, 3682, 2810, 3682, + + 2801, 3682, 3682, 2811, 2813, 3682, 2818, 3682, 2820, 2821, + 2789, 2823, 2824, 3682, 2825, 2826, 2828, 3682, 2830, 2836, + 2832, 2833, 3682, 2835, 3682, 2837, 2841, 2840, 2846, 2853, + 2856, 2858, 2847, 2849, 2860, 2861, 2862, 2863, 2864, 2866, + 2869, 2870, 2871, 2875, 2876, 2879, 2880, 2877, 2882, 2885, + 2887, 2898, 2902, 2905, 3682, 3682, 2883, 2889, 2886, 2894, + 2909, 2899, 2910, 2911, 3682, 2916, 2913, 2917, 2920, 2921, + 2923, 2926, 2925, 2930, 2932, 2931, 2933, 2934, 2938, 2936, + 3682, 2937, 2940, 3682, 3682, 2945, 2947, 2952, 2954, 2955, + 2958, 2960, 3682, 2961, 2962, 2968, 2970, 3682, 2972, 2963, + + 2975, 2978, 3682, 3682, 3682, 2979, 2981, 2984, 2985, 2986, + 2987, 2988, 3682, 2989, 2992, 2994, 2995, 3001, 3008, 2998, + 3014, 3011, 3013, 3018, 3682, 3682, 3002, 3024, 3021, 3022, + 3020, 3023, 3026, 3028, 3030, 3682, 3032, 3031, 3037, 3036, + 3039, 3040, 3043, 3682, 3044, 3046, 3051, 3054, 3055, 3047, + 3057, 3059, 3060, 3062, 3682, 3064, 3065, 3682, 3071, 3069, + 3072, 3682, 3076, 3682, 3080, 3682, 3682, 3081, 3084, 3086, + 3091, 3093, 3095, 3082, 3088, 3103, 3097, 3104, 3682, 3682, + 3106, 3107, 3114, 3682, 3682, 3110, 3099, 3118, 3111, 3112, + 3119, 3121, 3122, 3126, 3124, 3127, 3130, 3135, 3137, 3125, + + 3136, 3138, 3139, 3140, 3682, 3149, 3150, 3152, 3682, 3146, + 3155, 3161, 3158, 3156, 3169, 3163, 3166, 3682, 3170, 3172, + 3173, 3682, 3682, 3682, 3177, 3180, 3174, 3682, 3185, 3682, + 3178, 3186, 3193, 3189, 3191, 3194, 3197, 3195, 3200, 3682, + 3202, 3201, 3204, 3205, 3208, 3207, 3211, 3214, 3213, 3215, + 3225, 3219, 3682, 3227, 3229, 3231, 3682, 3233, 3234, 3235, + 3682, 3239, 3237, 3242, 3244, 3246, 3247, 3248, 3249, 3253, + 3250, 3255, 3256, 3263, 3257, 3270, 3261, 3272, 3682, 3274, + 3267, 3682, 3277, 3280, 3283, 3285, 3290, 3292, 3293, 3682, + 3296, 3682, 3682, 3299, 3682, 3302, 3297, 3303, 3305, 3308, + + 3682, 3682, 3306, 3310, 3315, 3682, 3316, 3307, 3317, 3318, + 3322, 3323, 3324, 3326, 3682, 3682, 3327, 3329, 3333, 3330, + 3682, 3682, 3682, 3343, 3682, 3335, 3682, 3349, 3337, 3682, + 3353, 3344, 3682, 3346, 3355, 3357, 3358, 3350, 3361, 3360, + 3362, 3365, 3366, 3369, 3682, 3682, 3372, 3682, 3374, 3682, + 3378, 3682, 3379, 3382, 3682, 3682, 3384, 3393, 3380, 3390, + 3386, 3389, 3392, 3682, 3682, 3682, 3682, 3396, 3397, 3398, + 3399, 3401, 3403, 3402, 3404, 3410, 3414, 3406, 3423, 3411, + 3419, 3426, 3427, 3433, 3430, 3682, 3431, 3682, 3434, 3437, + 3440, 3436, 3439, 3438, 3441, 3443, 3445, 3447, 3448, 3449, + + 3456, 3459, 3463, 3465, 3466, 3468, 3469, 3477, 3475, 3476, + 3479, 3480, 3486, 3482, 3484, 3682, 3485, 3487, 3489, 3491, + 3492, 3495, 3494, 3502, 3509, 3507, 3511, 3496, 3517, 3514, + 3519, 3505, 3520, 3522, 3682, 3523, 3527, 3529, 3530, 3533, + 3531, 3535, 3536, 3539, 3540, 3543, 3545, 3546, 3682, 3551, + 3682, 3682, 3552, 3555, 3558, 3560, 3562, 3682, 3682, 3682, + 3590, 3597, 3604, 3611, 3618, 94, 3625, 3632, 3639, 3646, + 3653, 3660, 3667, 3674 } ; -static yyconst flex_int16_t yy_def[1866] = +static yyconst flex_int16_t yy_def[1875] = { 0, - 1851, 1, 1852, 1852, 1853, 1853, 1854, 1854, 1855, 1855, - 1856, 1856, 1851, 1857, 1851, 1851, 1851, 1851, 1858, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1859, 1851, 1851, 1851, 1859, 1860, 1851, 1851, 1851, 1860, - 1861, 1851, 1851, 1851, 1851, 1861, 1862, 1851, 1851, 1851, - 1862, 1863, 1851, 1864, 1851, 1863, 1863, 1857, 1857, 1851, - 1865, 1858, 1865, 1858, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1859, 1859, 1860, 1860, - 1861, 1861, 1851, 1862, 1862, 1863, 1863, 1864, 1864, 1863, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1863, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1863, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1863, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1863, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1851, 1851, 1857, 1851, 1851, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1863, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1851, 1863, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1851, 1857, 1857, 1857, 1851, 1857, 1851, 1857, 1851, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1851, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1851, 1857, 1851, 1851, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1851, 1857, 1857, 1857, 1851, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1851, 1857, 1851, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1857, 1851, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1851, 1851, - 1857, 1857, 1851, 1851, 1851, 1857, 1851, 1851, 1851, 1857, - - 1857, 1851, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1851, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1851, 1851, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1851, 1851, 1851, - - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - 1857, 1851, 1857, 1857, 1857, 1851, 1857, 1851, 1857, 1851, - 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1851, 1857, 1857, 1857, 1851, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, - - 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1857, 1851, 1851, 1851, 1857, 1857, 1857, - 1851, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1851, 1857, - 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1851, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1851, 1857, 1851, 1857, 1851, 1857, 1857, 1857, 1857, - 1857, 1851, 1851, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1851, 1851, 1857, 1857, 1857, - 1857, 1851, 1851, 1851, 1857, 1851, 1857, 1851, 1857, 1857, - 1851, 1857, 1857, 1851, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1851, 1857, 1851, 1857, - 1851, 1857, 1851, 1857, 1857, 1851, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1851, 1851, 1851, 1851, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1851, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - - 1857, 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1851, 1857, 1857, 1857, 1857, - 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1851, - 1857, 1851, 1851, 1857, 1857, 1857, 1857, 1857, 1851, 1851, - 0, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851 + 1860, 1, 1861, 1861, 1862, 1862, 1863, 1863, 1864, 1864, + 1865, 1865, 1860, 1866, 1860, 1860, 1860, 1860, 1867, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1868, 1860, 1860, 1860, 1868, 1869, 1860, 1860, 1860, 1869, + 1870, 1860, 1860, 1860, 1860, 1870, 1871, 1860, 1860, 1860, + 1871, 1872, 1860, 1873, 1860, 1872, 1872, 1866, 1866, 1860, + 1874, 1867, 1874, 1867, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1868, 1868, 1869, 1869, + 1870, 1870, 1860, 1871, 1871, 1872, 1872, 1873, 1873, 1872, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1872, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1860, 1860, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1872, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1872, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1860, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1860, 1866, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1860, 1866, 1860, 1860, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, + + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1866, 1866, + 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1860, 1860, 1866, 1866, 1860, 1860, 1860, 1866, 1860, + + 1866, 1860, 1860, 1866, 1866, 1860, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1866, + 1866, 1866, 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1860, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1860, 1866, 1866, + + 1866, 1866, 1860, 1860, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1860, 1866, 1866, + 1866, 1860, 1866, 1860, 1866, 1860, 1860, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1860, + 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, + 1866, 1860, 1860, 1860, 1866, 1866, 1866, 1860, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1860, 1866, 1866, 1866, 1860, 1866, 1866, 1866, + 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, + 1866, 1860, 1860, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + + 1860, 1860, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, + 1860, 1860, 1860, 1866, 1860, 1866, 1860, 1866, 1866, 1860, + 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1860, 1866, 1860, 1866, 1860, + 1866, 1860, 1866, 1866, 1860, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1860, 1860, 1860, 1860, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1860, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1860, 1866, 1866, 1866, 1866, 1866, + 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1860, 1866, + 1860, 1860, 1866, 1866, 1866, 1866, 1866, 1860, 1860, 0, + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860 } ; -static yyconst flex_uint16_t yy_nxt[3695] = +static yyconst flex_uint16_t yy_nxt[3722] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -1244,7 +1246,7 @@ static yyconst flex_uint16_t yy_nxt[3695] = 69, 69, 911, 69, 69, 69, 69, 916, 69, 69, 919, 69, 69, 913, 917, 69, 69, 915, 69, 69, - 69, 925, 69, 69, 914, 920, 69, 69, 69, 1285, + 69, 925, 69, 69, 914, 920, 69, 69, 69, 1287, 923, 921, 918, 929, 930, 69, 922, 924, 69, 69, 69, 934, 926, 932, 928, 935, 69, 69, 927, 936, 931, 69, 940, 69, 69, 937, 69, 69, 933, 69, @@ -1279,192 +1281,195 @@ static yyconst flex_uint16_t yy_nxt[3695] = 69, 69, 1062, 69, 1063, 69, 1064, 69, 1077, 1071, 69, 69, 1067, 69, 69, 1074, 1076, 1075, 1072, 69, 1073, 1082, 69, 69, 1083, 1080, 69, 1078, 69, 69, - 1079, 69, 132, 1085, 69, 1081, 69, 1086, 1084, 1091, - 1087, 1090, 69, 69, 69, 1088, 69, 69, 1092, 69, - 1093, 1089, 1099, 1094, 1100, 69, 1096, 69, 1098, 1097, - 69, 69, 69, 69, 69, 1095, 69, 69, 69, 69, - 1109, 69, 69, 130, 1102, 69, 1104, 1112, 69, 1106, - 1101, 1103, 1105, 69, 1111, 69, 1108, 1110, 1118, 1107, - - 69, 1113, 1115, 69, 1120, 1116, 1117, 69, 69, 69, - 69, 1123, 69, 1119, 1121, 1114, 69, 69, 69, 69, - 1125, 69, 69, 1124, 69, 1128, 1126, 1122, 1131, 1127, - 69, 69, 69, 69, 69, 1135, 1129, 1136, 1130, 1137, - 1132, 69, 1134, 69, 69, 69, 1138, 69, 1133, 1142, - 69, 69, 1139, 69, 69, 69, 69, 1148, 1144, 69, - 1141, 1143, 69, 69, 69, 1145, 1146, 1140, 1149, 1151, - 1152, 69, 69, 1156, 1147, 1153, 69, 1150, 1154, 69, - 69, 1155, 1157, 69, 69, 69, 69, 69, 69, 1159, - 69, 69, 1158, 1163, 1160, 69, 1168, 69, 1161, 1164, - - 1169, 69, 1162, 128, 69, 69, 69, 1173, 69, 69, - 1167, 1166, 1165, 1175, 69, 1176, 69, 69, 69, 1178, - 69, 1177, 1170, 1171, 69, 69, 1172, 1180, 1179, 1174, - 1182, 69, 69, 1184, 69, 69, 1181, 69, 1185, 1186, - 69, 69, 1193, 69, 69, 1183, 69, 69, 69, 1197, - 69, 1191, 1187, 1188, 1189, 69, 69, 1199, 69, 1190, - 1195, 1192, 69, 1194, 69, 1201, 1203, 69, 69, 1196, - 69, 1202, 69, 69, 69, 1208, 69, 1205, 1200, 69, - 69, 1198, 1206, 1204, 1212, 1211, 69, 69, 1215, 69, - 69, 1216, 69, 69, 1214, 1210, 69, 1218, 1207, 1217, - - 69, 69, 1209, 69, 69, 69, 1213, 69, 1223, 1221, - 1219, 69, 69, 1226, 69, 69, 1222, 69, 69, 69, - 1232, 69, 69, 1220, 1230, 1224, 1235, 69, 1231, 1227, - 69, 69, 1229, 1233, 1228, 1238, 69, 1225, 1234, 1240, - 69, 1239, 69, 1241, 69, 1237, 69, 1242, 1245, 69, - 69, 1236, 69, 69, 1247, 69, 69, 69, 1244, 1250, - 1252, 1246, 1243, 69, 69, 69, 69, 1248, 69, 1254, - 69, 1255, 1256, 69, 69, 1253, 1257, 69, 69, 1251, - 1259, 1249, 69, 1260, 69, 69, 69, 69, 1258, 1264, - 1261, 1262, 1263, 69, 1267, 69, 69, 1265, 69, 69, - - 69, 69, 69, 69, 1274, 1266, 1272, 1269, 1273, 69, - 69, 1276, 69, 69, 69, 1275, 1268, 1270, 69, 1271, - 1281, 69, 1277, 1279, 69, 69, 1284, 1280, 1282, 69, - 1278, 69, 69, 1286, 69, 69, 1287, 69, 1283, 1288, - 69, 69, 1289, 69, 1291, 1290, 1292, 69, 69, 69, - 1293, 69, 69, 1294, 69, 69, 69, 1302, 69, 1295, - 1296, 1301, 69, 69, 69, 69, 1298, 1307, 69, 1304, - 69, 69, 1299, 1305, 1300, 1297, 1303, 1306, 69, 69, - 69, 1310, 69, 1309, 69, 1311, 69, 1312, 1313, 1315, - 69, 1308, 69, 69, 69, 1316, 69, 1321, 69, 1317, - - 1318, 69, 1322, 69, 1314, 69, 1325, 69, 69, 1327, - 1320, 69, 1319, 1326, 69, 69, 69, 69, 1323, 1331, - 69, 69, 69, 69, 1329, 1324, 1328, 1330, 1333, 1332, - 69, 69, 69, 69, 1336, 1334, 1335, 69, 1339, 1338, - 69, 69, 1337, 1340, 1344, 69, 69, 69, 1341, 69, - 1343, 1346, 69, 1348, 69, 1345, 69, 1351, 69, 1349, - 69, 1352, 69, 1355, 69, 1342, 1347, 69, 1353, 1350, - 1357, 69, 69, 1358, 69, 69, 1356, 1361, 1354, 69, - 1363, 69, 69, 69, 1362, 69, 1359, 69, 69, 69, - 1365, 69, 69, 1360, 1368, 69, 1371, 69, 69, 69, - - 69, 69, 1372, 1367, 1374, 69, 69, 1373, 1364, 1369, - 1366, 1370, 69, 69, 69, 69, 1383, 69, 69, 69, - 1376, 1384, 69, 69, 69, 1474, 1375, 1381, 1377, 69, - 1378, 1379, 1385, 69, 1380, 1382, 1386, 1387, 69, 1388, - 1389, 69, 1390, 69, 1391, 69, 1392, 1393, 69, 1394, - 69, 1395, 69, 1397, 69, 1398, 69, 1399, 69, 69, - 69, 1402, 69, 69, 1396, 1401, 1404, 69, 69, 69, - 69, 69, 1408, 1407, 69, 1406, 1410, 69, 1400, 69, - 69, 69, 1403, 1414, 69, 69, 1405, 1409, 69, 1419, - 69, 69, 69, 1411, 1412, 1418, 1421, 69, 69, 1413, - - 69, 1415, 69, 1417, 69, 1423, 69, 69, 1416, 1424, - 69, 1420, 1426, 69, 1425, 69, 69, 69, 69, 69, - 1430, 1435, 69, 1428, 1422, 1432, 69, 1433, 69, 69, - 1439, 1427, 1431, 1434, 1429, 69, 1440, 1438, 69, 1436, - 69, 69, 1437, 69, 1441, 69, 69, 69, 69, 1447, - 69, 69, 1442, 1448, 1445, 1444, 1451, 69, 1443, 1446, - 1452, 69, 69, 1450, 69, 1454, 69, 69, 69, 69, - 1449, 69, 1458, 1459, 69, 69, 1453, 1460, 1455, 1461, - 69, 1456, 69, 69, 69, 69, 69, 1457, 1462, 1465, - 69, 1467, 1468, 69, 69, 1463, 1464, 69, 69, 1469, - - 1472, 69, 1473, 1471, 1466, 69, 1470, 69, 1476, 1477, - 69, 69, 1479, 69, 1481, 1475, 1478, 1480, 69, 69, - 69, 1482, 69, 69, 69, 69, 69, 69, 1490, 1485, - 1488, 69, 69, 69, 69, 1489, 1493, 69, 1483, 1487, - 69, 69, 1495, 69, 1486, 1484, 1494, 69, 69, 1492, - 1491, 69, 1497, 1498, 69, 1499, 69, 1496, 1500, 69, - 1501, 69, 69, 69, 69, 69, 1508, 69, 69, 1502, - 1506, 69, 69, 1503, 1504, 1505, 69, 1509, 69, 69, - 69, 1515, 69, 69, 1507, 69, 69, 1520, 69, 1512, - 1518, 1519, 1511, 1514, 1521, 69, 69, 1510, 69, 1522, - - 1516, 69, 1513, 69, 69, 1517, 69, 69, 69, 69, - 1530, 1531, 69, 69, 69, 1527, 1523, 69, 69, 1524, - 69, 1533, 1532, 69, 1526, 1525, 1529, 1528, 69, 1539, - 69, 69, 1534, 69, 69, 1540, 1535, 69, 1536, 1537, - 69, 69, 1544, 69, 69, 1549, 69, 1538, 1542, 1541, - 69, 69, 69, 1543, 1548, 1552, 69, 69, 69, 69, - 69, 1545, 1546, 1553, 1547, 1550, 69, 69, 1556, 69, - 1551, 1555, 1554, 1557, 1558, 69, 69, 1559, 1560, 69, - 1561, 69, 69, 1562, 69, 1564, 69, 69, 1563, 1565, - 69, 1566, 69, 69, 69, 69, 1573, 69, 1568, 1570, - - 1571, 1574, 69, 69, 1576, 69, 1567, 1569, 1572, 69, - 1575, 69, 1578, 69, 1579, 69, 1577, 1581, 1580, 69, - 69, 69, 69, 1582, 69, 1583, 69, 69, 69, 69, - 1584, 69, 1587, 69, 1586, 69, 1589, 69, 69, 1585, - 1588, 69, 69, 1594, 1591, 69, 1592, 1590, 69, 69, - 1593, 1599, 69, 69, 1595, 1597, 69, 1596, 1602, 69, - 69, 69, 1601, 69, 1603, 1604, 69, 1598, 1600, 69, - 1605, 69, 69, 1607, 69, 1610, 1606, 1611, 69, 69, - 1608, 69, 1613, 69, 69, 69, 1609, 1614, 1615, 69, - 1616, 69, 1612, 1617, 69, 1620, 1654, 1618, 69, 1619, - - 69, 1621, 69, 69, 1623, 69, 69, 1622, 1625, 69, - 69, 69, 1624, 69, 1626, 1627, 1628, 69, 69, 1633, - 69, 69, 1629, 69, 69, 69, 69, 1637, 1630, 69, - 1638, 1631, 1632, 1635, 69, 69, 69, 69, 69, 69, - 1634, 1640, 1636, 69, 1641, 69, 1643, 1646, 69, 69, - 1639, 69, 1647, 1649, 69, 1650, 69, 69, 1644, 1645, - 69, 1642, 69, 1648, 69, 1651, 1653, 69, 1658, 1655, - 69, 1656, 1652, 69, 1660, 1659, 1657, 69, 69, 69, - 69, 69, 1665, 1662, 69, 69, 1661, 69, 1663, 1667, - 1669, 69, 1671, 69, 69, 69, 69, 1674, 69, 69, - - 1664, 69, 1666, 1668, 69, 1675, 69, 69, 1676, 69, - 69, 1673, 69, 1672, 1680, 1679, 1670, 1682, 69, 69, - 1677, 1684, 69, 69, 1685, 1678, 1686, 69, 69, 69, - 1689, 1683, 69, 69, 1692, 69, 1681, 1693, 69, 69, - 69, 69, 69, 1687, 1697, 69, 1690, 69, 69, 69, - 69, 1688, 1695, 1700, 1698, 1691, 69, 69, 1694, 1703, - 69, 1696, 1701, 69, 69, 1704, 1705, 1699, 1702, 1706, - 69, 1707, 69, 69, 1710, 1708, 69, 1719, 1709, 1712, - 69, 1711, 1713, 69, 1714, 69, 69, 1716, 69, 69, - 1717, 1715, 1718, 69, 69, 1721, 69, 69, 69, 1724, - - 69, 69, 1722, 1720, 69, 69, 1723, 69, 69, 1725, - 1726, 69, 69, 1727, 69, 1728, 69, 69, 1736, 69, - 69, 1734, 1737, 69, 1738, 1851, 1729, 1730, 69, 1731, - 1732, 1739, 69, 69, 69, 1733, 69, 1735, 1740, 1741, - 69, 69, 1742, 1743, 69, 1746, 69, 69, 1744, 1747, - 69, 69, 1748, 69, 1745, 69, 69, 69, 1755, 69, - 1752, 1753, 1756, 69, 1757, 69, 1749, 69, 1750, 1758, - 69, 69, 1751, 69, 1760, 69, 1754, 1762, 1761, 1759, - 69, 69, 69, 69, 69, 1763, 1764, 69, 69, 69, - 69, 1768, 69, 69, 69, 69, 1851, 69, 69, 1765, - - 1767, 1766, 1771, 1770, 1777, 69, 69, 1778, 1769, 1772, - 1774, 1773, 1776, 1779, 69, 69, 69, 69, 1784, 69, - 1775, 1780, 1781, 69, 69, 69, 69, 1788, 69, 1789, - 1783, 1782, 69, 1785, 69, 69, 69, 69, 69, 1786, - 1790, 1791, 69, 69, 1787, 69, 1851, 69, 69, 1851, - 1793, 1795, 1798, 1799, 1792, 1796, 1794, 69, 1801, 69, - 69, 69, 1797, 69, 1800, 1802, 1803, 1806, 1804, 1807, - 69, 69, 69, 69, 69, 69, 1811, 69, 1805, 69, - 1808, 69, 1814, 69, 69, 69, 69, 1818, 69, 1851, - 1809, 69, 1813, 1810, 1812, 69, 1819, 69, 1817, 69, - - 1821, 69, 1815, 1816, 69, 1822, 1823, 1820, 69, 1826, - 69, 69, 69, 69, 1825, 1824, 1829, 69, 1827, 1828, - 69, 69, 1830, 69, 69, 1832, 1833, 69, 1836, 69, - 69, 69, 1831, 69, 1839, 1840, 69, 69, 1841, 1842, - 69, 69, 1834, 1835, 1843, 69, 69, 69, 1837, 1838, - 69, 1851, 1845, 1844, 1851, 1846, 1847, 1849, 69, 1851, - 1848, 1850, 69, 41, 41, 41, 41, 41, 41, 41, - 46, 46, 46, 46, 46, 46, 46, 51, 51, 51, - 51, 51, 51, 51, 57, 57, 57, 57, 57, 57, - 57, 62, 62, 62, 62, 62, 62, 62, 72, 72, - - 1851, 72, 72, 72, 72, 127, 127, 1851, 1851, 1851, - 127, 127, 129, 129, 1851, 1851, 129, 1851, 129, 131, - 1851, 1851, 1851, 1851, 1851, 131, 134, 134, 1851, 1851, - 1851, 134, 134, 136, 1851, 1851, 1851, 1851, 1851, 136, - 138, 138, 1851, 138, 138, 138, 138, 73, 73, 1851, - 73, 73, 73, 73, 13, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851 - + 1079, 69, 132, 1085, 69, 1081, 69, 1086, 1084, 1092, + 1087, 1091, 69, 69, 69, 1088, 1089, 69, 1093, 69, + 1094, 1090, 1100, 1095, 69, 1101, 69, 69, 1097, 69, + 69, 1098, 69, 1099, 69, 69, 1096, 69, 69, 69, + 69, 69, 1110, 1103, 69, 69, 1114, 69, 1105, 1102, + 1104, 1106, 1107, 1112, 69, 1111, 1109, 69, 1119, 1113, + + 1115, 69, 1108, 69, 69, 1118, 1116, 1121, 69, 1117, + 1122, 1124, 69, 69, 69, 69, 69, 1126, 69, 1120, + 69, 69, 1132, 1127, 69, 69, 1125, 69, 1123, 1128, + 69, 1129, 69, 1130, 69, 130, 1136, 69, 69, 1131, + 1133, 69, 1137, 1134, 69, 69, 1138, 1140, 69, 1139, + 1135, 1143, 69, 69, 69, 69, 69, 1141, 1149, 69, + 1142, 1145, 1144, 69, 69, 1146, 69, 1147, 1153, 69, + 69, 1150, 1152, 1154, 69, 1148, 1155, 69, 69, 1156, + 1158, 69, 1151, 69, 69, 69, 69, 1157, 69, 1160, + 69, 69, 69, 69, 1161, 1159, 1164, 1170, 1162, 1165, + + 1169, 69, 69, 1163, 69, 69, 69, 1168, 1174, 69, + 69, 128, 1166, 1167, 1176, 69, 1177, 69, 69, 69, + 69, 69, 1178, 1179, 1172, 1171, 1173, 69, 69, 69, + 1175, 1181, 1180, 1183, 1185, 69, 69, 1182, 69, 69, + 1186, 1187, 69, 69, 1194, 1184, 69, 1192, 69, 69, + 69, 69, 1198, 69, 1188, 1189, 1190, 69, 69, 1200, + 69, 1191, 69, 1193, 1196, 69, 1203, 69, 1195, 1205, + 69, 69, 1197, 69, 69, 69, 1204, 69, 1210, 69, + 1201, 1207, 1208, 1199, 1202, 69, 1206, 69, 1214, 69, + 1213, 69, 1217, 69, 1218, 1219, 69, 69, 1216, 69, + + 69, 1209, 69, 1212, 69, 1211, 69, 1220, 69, 1215, + 69, 1225, 69, 1221, 69, 69, 1228, 69, 69, 69, + 1222, 69, 1224, 69, 69, 1223, 1860, 1232, 1234, 69, + 1226, 69, 1229, 1233, 1231, 1237, 69, 1230, 69, 69, + 1227, 1240, 1235, 69, 1238, 69, 69, 1236, 1241, 69, + 1242, 1244, 1239, 1247, 1243, 69, 69, 1246, 69, 69, + 69, 69, 1252, 69, 1249, 1245, 69, 69, 1251, 1254, + 69, 1248, 69, 1250, 69, 1256, 69, 1257, 1255, 1258, + 69, 1259, 69, 69, 69, 1253, 69, 69, 69, 1261, + 1260, 1262, 69, 1263, 69, 1266, 1267, 1264, 69, 1265, + + 1269, 69, 69, 69, 69, 69, 69, 69, 1274, 69, + 1268, 1276, 1271, 69, 1275, 69, 69, 69, 1278, 69, + 69, 1277, 1270, 1272, 1281, 1273, 1283, 69, 1282, 1279, + 69, 1280, 1286, 69, 1288, 1284, 69, 69, 1289, 1290, + 69, 69, 69, 69, 1285, 69, 1293, 69, 1291, 69, + 69, 69, 1294, 69, 69, 69, 69, 69, 1304, 69, + 69, 1296, 1292, 1297, 1303, 1298, 69, 69, 1295, 1300, + 69, 1306, 69, 69, 1307, 1301, 1299, 1302, 1305, 1308, + 1310, 69, 69, 69, 69, 1313, 1309, 1312, 69, 1314, + 69, 69, 1318, 1315, 69, 69, 69, 69, 69, 1311, + + 1319, 69, 1324, 69, 1321, 69, 1325, 1320, 1316, 69, + 69, 1317, 69, 1328, 69, 1323, 69, 1322, 69, 1329, + 69, 1335, 1330, 69, 1326, 69, 69, 1334, 1331, 69, + 1327, 69, 1332, 69, 1337, 1333, 1338, 69, 1336, 69, + 69, 69, 69, 69, 69, 69, 1339, 1342, 1343, 1347, + 69, 1349, 69, 1346, 1348, 1341, 69, 1340, 1344, 69, + 69, 69, 69, 1351, 1354, 1345, 1352, 69, 1355, 69, + 1356, 1358, 69, 1353, 69, 1350, 1360, 69, 69, 1361, + 69, 69, 69, 1359, 1364, 69, 69, 1357, 69, 69, + 1365, 1368, 1362, 1366, 69, 69, 69, 69, 69, 1363, + + 69, 1371, 1374, 69, 1375, 69, 69, 1367, 69, 69, + 1370, 1369, 69, 1377, 1373, 1372, 69, 69, 69, 69, + 1376, 69, 1386, 69, 69, 69, 69, 1387, 1379, 69, + 1860, 1384, 1378, 69, 69, 1380, 1382, 1411, 1388, 1383, + 1381, 1394, 1385, 1389, 69, 1391, 1390, 1392, 69, 1393, + 69, 69, 1396, 69, 1397, 69, 1398, 69, 69, 1400, + 69, 69, 1402, 69, 1395, 1403, 69, 69, 69, 1406, + 69, 69, 69, 1405, 1408, 69, 69, 1399, 1410, 1401, + 69, 1412, 1414, 69, 69, 69, 1404, 69, 1418, 69, + 1407, 69, 69, 69, 1409, 69, 1413, 1423, 69, 1422, + + 1416, 69, 69, 1415, 1425, 69, 1417, 69, 1421, 69, + 1427, 1419, 69, 69, 69, 1420, 1428, 69, 1430, 69, + 1424, 69, 69, 69, 1429, 69, 1434, 69, 1426, 69, + 1432, 1439, 1436, 1440, 1437, 69, 69, 1435, 69, 1431, + 1433, 1438, 69, 1443, 1444, 69, 1445, 1442, 69, 69, + 69, 69, 69, 69, 1446, 1441, 1451, 69, 69, 69, + 1449, 69, 1452, 69, 1450, 1448, 1455, 69, 1447, 1456, + 69, 1454, 69, 1458, 69, 1457, 69, 1460, 1453, 69, + 1462, 69, 1465, 69, 69, 1463, 1459, 1464, 69, 69, + 69, 69, 69, 1466, 69, 1461, 1469, 1472, 69, 1471, + + 69, 69, 69, 69, 1468, 1476, 1473, 69, 1475, 1467, + 69, 1470, 69, 69, 1474, 1477, 69, 1488, 1478, 69, + 1480, 1481, 69, 69, 1484, 69, 1479, 1486, 1483, 1485, + 69, 1482, 69, 69, 1487, 69, 69, 69, 69, 1493, + 69, 1490, 69, 1495, 69, 69, 1498, 69, 69, 69, + 1492, 1494, 69, 69, 1499, 1500, 1491, 1489, 69, 69, + 1497, 69, 1496, 1502, 1503, 69, 1501, 1504, 69, 1505, + 69, 1506, 69, 69, 69, 69, 69, 1513, 69, 1507, + 1511, 69, 69, 69, 1508, 1509, 1510, 69, 69, 69, + 1514, 69, 69, 1520, 69, 69, 1512, 69, 69, 69, + + 1517, 69, 1523, 1516, 1524, 1519, 69, 1521, 1515, 1525, + 69, 69, 1518, 1526, 69, 1528, 1522, 69, 1527, 1529, + 1530, 69, 69, 69, 1535, 69, 1531, 1536, 69, 69, + 1532, 1533, 69, 69, 1537, 69, 1538, 69, 69, 1545, + 1534, 1544, 69, 69, 69, 69, 69, 1539, 69, 69, + 69, 1540, 69, 1541, 1542, 1549, 1543, 69, 1551, 69, + 1547, 1546, 1554, 1555, 69, 1548, 69, 69, 1550, 1558, + 69, 1552, 69, 69, 69, 69, 1559, 1553, 1561, 1562, + 69, 1556, 69, 1564, 69, 1557, 1566, 69, 1560, 1567, + 69, 69, 1568, 69, 1565, 1563, 69, 69, 69, 69, + + 69, 69, 1571, 1572, 69, 1570, 69, 69, 1574, 1576, + 69, 1577, 1579, 69, 69, 1569, 1575, 1581, 1573, 1580, + 69, 1582, 1578, 69, 1584, 69, 69, 1586, 1583, 1585, + 69, 1587, 69, 69, 69, 69, 69, 1588, 69, 1589, + 69, 1590, 69, 69, 69, 1593, 1592, 1595, 69, 69, + 1591, 69, 69, 1600, 1594, 69, 69, 1598, 69, 69, + 1599, 1596, 1597, 69, 1601, 1605, 69, 69, 1607, 69, + 1609, 69, 69, 1608, 69, 1602, 69, 69, 1603, 1611, + 1610, 69, 1604, 69, 69, 1612, 1606, 1614, 69, 1617, + 1613, 1618, 69, 69, 69, 1615, 69, 1620, 69, 1616, + + 69, 1621, 1622, 69, 1623, 69, 1624, 69, 1628, 69, + 1627, 69, 1625, 1619, 1626, 69, 69, 1630, 69, 69, + 1629, 1632, 69, 69, 69, 1631, 69, 1633, 1634, 1635, + 69, 69, 1640, 69, 69, 1636, 69, 69, 69, 69, + 1644, 1637, 69, 1645, 1638, 1639, 1642, 69, 69, 69, + 69, 69, 69, 1641, 1647, 1643, 1860, 1648, 69, 1650, + 1653, 69, 69, 1646, 69, 1654, 1657, 69, 69, 1655, + 69, 1651, 1652, 69, 1649, 69, 1656, 1658, 69, 1659, + 1661, 69, 69, 1660, 69, 69, 69, 1663, 1662, 69, + 69, 1664, 69, 1668, 1667, 1669, 1665, 69, 69, 1671, + + 1673, 69, 1670, 69, 1677, 69, 69, 69, 1675, 69, + 1666, 1679, 69, 69, 69, 1682, 69, 69, 1672, 69, + 69, 1683, 1674, 69, 1676, 69, 69, 69, 1681, 1684, + 1688, 69, 1678, 1680, 1687, 1685, 1690, 69, 1692, 69, + 1693, 69, 1686, 69, 1695, 69, 69, 69, 1694, 69, + 1691, 69, 1698, 1689, 69, 1701, 69, 1702, 69, 69, + 69, 69, 69, 1699, 1706, 69, 1696, 69, 69, 69, + 1697, 1709, 1704, 69, 1707, 69, 1700, 1712, 1703, 69, + 1710, 1705, 69, 1715, 69, 1716, 69, 1708, 1711, 69, + 1713, 1714, 69, 1860, 1718, 69, 1721, 69, 1717, 1860, + + 1720, 1722, 69, 1723, 69, 69, 1719, 1725, 69, 69, + 1724, 69, 1726, 1727, 69, 69, 1730, 69, 69, 69, + 69, 1733, 69, 1728, 1729, 1731, 1732, 69, 69, 69, + 69, 1736, 1734, 1735, 69, 69, 69, 1737, 69, 69, + 1745, 69, 69, 1743, 1746, 69, 1747, 69, 1738, 69, + 1739, 1749, 1740, 1741, 1748, 69, 69, 1742, 69, 1744, + 1750, 69, 69, 1751, 1752, 69, 1755, 69, 1756, 69, + 69, 1753, 69, 69, 69, 1757, 1754, 69, 69, 1761, + 1764, 69, 1762, 1765, 69, 1766, 69, 1758, 1759, 1767, + 69, 69, 69, 1760, 69, 1769, 69, 1763, 69, 1770, + + 1771, 69, 69, 1768, 69, 69, 1772, 1773, 69, 69, + 69, 69, 1777, 69, 69, 69, 69, 1774, 69, 1775, + 1776, 1779, 69, 69, 1780, 1786, 69, 1787, 1789, 1778, + 1783, 69, 1781, 1782, 1788, 69, 1790, 1785, 69, 69, + 1793, 1784, 69, 69, 1797, 69, 69, 1798, 69, 69, + 69, 69, 69, 69, 1792, 69, 1794, 69, 1795, 69, + 69, 69, 1799, 1791, 1800, 1796, 1807, 1802, 69, 1801, + 1804, 69, 1805, 1808, 1803, 69, 1810, 69, 69, 1806, + 69, 69, 1811, 1812, 1815, 1813, 1816, 69, 69, 69, + 1809, 69, 69, 1820, 69, 1817, 69, 69, 69, 69, + + 1814, 69, 1823, 69, 69, 1827, 69, 69, 69, 1822, + 1818, 1819, 1828, 1821, 69, 1830, 1826, 69, 1824, 69, + 1825, 69, 1831, 69, 1832, 1829, 69, 1834, 1835, 69, + 1833, 69, 69, 1836, 69, 69, 1838, 1839, 1837, 69, + 1841, 69, 69, 69, 1842, 69, 1845, 69, 69, 1848, + 1849, 69, 69, 1840, 1851, 69, 1852, 69, 69, 1850, + 1843, 1844, 1846, 69, 69, 1853, 1847, 69, 1854, 1855, + 69, 1858, 69, 1859, 69, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1856, 1860, 1860, 1857, + 41, 41, 41, 41, 41, 41, 41, 46, 46, 46, + + 46, 46, 46, 46, 51, 51, 51, 51, 51, 51, + 51, 57, 57, 57, 57, 57, 57, 57, 62, 62, + 62, 62, 62, 62, 62, 72, 72, 1860, 72, 72, + 72, 72, 127, 127, 1860, 1860, 1860, 127, 127, 129, + 129, 1860, 1860, 129, 1860, 129, 131, 1860, 1860, 1860, + 1860, 1860, 131, 134, 134, 1860, 1860, 1860, 134, 134, + 136, 1860, 1860, 1860, 1860, 1860, 136, 138, 138, 1860, + 138, 138, 138, 138, 73, 73, 1860, 73, 73, 73, + 73, 13, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860 } ; -static yyconst flex_int16_t yy_chk[3695] = +static yyconst flex_int16_t yy_chk[3722] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1475,7 +1480,7 @@ static yyconst flex_int16_t yy_chk[3695] = 9, 158, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 45, 45, 7, 8, 8, 8, 8, 10, 8, 21, 33, 158, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1857, 20, 29, 20, 20, 11, + 11, 11, 11, 11, 1866, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 75, 22, 22, 75, 25, @@ -1654,8 +1659,8 @@ static yyconst flex_int16_t yy_chk[3695] = 788, 791, 790, 784, 801, 793, 794, 795, 796, 789, 793, 794, 795, 796, 797, 798, 799, 800, 800, 802, - 803, 804, 1180, 797, 801, 803, 805, 799, 806, 807, - 808, 808, 809, 810, 798, 804, 811, 814, 812, 1180, + 803, 804, 1181, 797, 801, 803, 805, 799, 806, 807, + 808, 808, 809, 810, 798, 804, 811, 814, 812, 1181, 806, 804, 802, 812, 813, 813, 805, 807, 815, 817, 819, 818, 809, 815, 811, 818, 818, 820, 810, 819, 814, 822, 823, 825, 826, 820, 824, 823, 817, 827, @@ -1691,188 +1696,191 @@ static yyconst flex_int16_t yy_chk[3695] = 966, 967, 954, 964, 968, 961, 963, 962, 959, 971, 960, 970, 970, 972, 971, 967, 973, 965, 974, 975, 966, 977, 51, 973, 982, 968, 980, 974, 972, 980, - 974, 979, 979, 981, 983, 975, 984, 985, 981, 986, - 982, 977, 987, 983, 988, 988, 985, 987, 986, 985, - 989, 990, 992, 991, 995, 984, 993, 994, 996, 997, - 997, 998, 1000, 46, 990, 999, 992, 1000, 1003, 994, - 989, 991, 993, 1002, 999, 1006, 996, 998, 1005, 995, - - 1001, 1001, 1002, 1005, 1007, 1002, 1003, 1009, 1008, 1007, - 1011, 1010, 1016, 1006, 1008, 1001, 1010, 1012, 1017, 1018, - 1012, 1015, 1023, 1011, 1020, 1016, 1012, 1009, 1019, 1015, - 1021, 1024, 1025, 1019, 1026, 1024, 1017, 1025, 1018, 1026, - 1020, 1027, 1023, 1028, 1029, 1030, 1027, 1032, 1021, 1031, - 1031, 1033, 1028, 1034, 1035, 1036, 1038, 1037, 1033, 1039, - 1030, 1032, 1037, 1040, 1046, 1034, 1035, 1029, 1038, 1040, - 1041, 1041, 1042, 1046, 1036, 1042, 1045, 1039, 1043, 1043, - 1048, 1045, 1047, 1047, 1049, 1050, 1051, 1052, 1053, 1049, - 1054, 1055, 1048, 1053, 1050, 1056, 1057, 1057, 1051, 1054, - - 1058, 1059, 1052, 41, 1060, 1058, 1061, 1062, 1062, 1063, - 1056, 1055, 1054, 1064, 1064, 1065, 1065, 1066, 1071, 1067, - 1073, 1066, 1059, 1060, 1067, 1068, 1061, 1070, 1068, 1063, - 1072, 1078, 1070, 1074, 1074, 1072, 1071, 1075, 1075, 1076, - 1077, 1079, 1080, 1081, 1076, 1073, 1083, 1080, 1084, 1085, - 1085, 1078, 1077, 1077, 1077, 1086, 1087, 1087, 1088, 1077, - 1083, 1079, 1091, 1081, 1089, 1089, 1092, 1092, 1093, 1084, - 1094, 1091, 1096, 1095, 1097, 1097, 1098, 1094, 1088, 1099, - 1101, 1086, 1095, 1093, 1102, 1101, 1103, 1104, 1105, 1102, - 1111, 1106, 1108, 1105, 1104, 1099, 1106, 1108, 1096, 1107, - - 1107, 1109, 1098, 1110, 1112, 1113, 1103, 1114, 1113, 1111, - 1109, 1115, 1116, 1116, 1117, 1118, 1112, 1119, 1120, 1121, - 1122, 1122, 1123, 1110, 1120, 1114, 1124, 1124, 1121, 1117, - 1125, 1126, 1119, 1123, 1118, 1127, 1131, 1115, 1123, 1129, - 1127, 1128, 1128, 1129, 1129, 1126, 1132, 1130, 1133, 1134, - 1135, 1125, 1130, 1133, 1135, 1136, 1137, 1139, 1132, 1138, - 1140, 1134, 1131, 1141, 1138, 1140, 1143, 1136, 1147, 1143, - 1144, 1144, 1145, 1145, 1148, 1141, 1146, 1146, 1149, 1139, - 1148, 1137, 1151, 1149, 1150, 1156, 1155, 1153, 1147, 1155, - 1150, 1151, 1153, 1158, 1159, 1159, 1160, 1156, 1161, 1162, - - 1163, 1167, 1164, 1165, 1166, 1158, 1164, 1161, 1165, 1166, - 1169, 1169, 1170, 1177, 1171, 1167, 1160, 1162, 1172, 1163, - 1174, 1174, 1169, 1171, 1178, 1186, 1179, 1172, 1177, 1189, - 1170, 1179, 1181, 1181, 1182, 1185, 1182, 1188, 1178, 1183, - 1183, 1190, 1185, 1187, 1187, 1186, 1188, 1191, 1192, 1193, - 1189, 1194, 1195, 1190, 1196, 1199, 1198, 1199, 1200, 1191, - 1192, 1198, 1201, 1204, 1202, 1206, 1194, 1205, 1205, 1201, - 1211, 14, 1195, 1202, 1196, 1193, 1200, 1204, 1207, 1208, - 1209, 1208, 1210, 1207, 1212, 1209, 1215, 1210, 1211, 1213, - 1214, 1206, 1216, 1218, 1213, 1214, 1219, 1220, 1220, 1215, - - 1216, 1221, 1221, 1222, 1212, 1223, 1224, 1226, 1225, 1226, - 1219, 1224, 1218, 1225, 1227, 1228, 1231, 1229, 1222, 1229, - 1230, 1236, 1237, 1238, 1228, 1223, 1227, 1228, 1231, 1230, - 1233, 1234, 1240, 1243, 1236, 1233, 1234, 1242, 1240, 1238, - 1244, 1245, 1237, 1242, 1246, 1246, 1247, 1249, 1243, 1250, - 1245, 1248, 1248, 1250, 1251, 1247, 1252, 1253, 1255, 1251, - 1254, 1253, 1253, 1258, 1258, 1244, 1249, 1259, 1254, 1252, - 1260, 1260, 1261, 1261, 1262, 1263, 1259, 1264, 1255, 1265, - 1266, 1266, 1264, 1268, 1265, 1269, 1262, 1270, 1271, 1272, - 1269, 1273, 1277, 1263, 1272, 1274, 1275, 1275, 1276, 1278, - - 1279, 1280, 1276, 1271, 1278, 1282, 1283, 1277, 1268, 1273, - 1270, 1274, 1284, 1285, 1287, 1286, 1289, 1289, 1290, 1291, - 1280, 1290, 1292, 1388, 1293, 1388, 1279, 1286, 1282, 1297, - 1283, 1284, 1291, 1298, 1285, 1287, 1292, 1293, 1294, 1294, - 1295, 1295, 1296, 1296, 1297, 1302, 1298, 1299, 1299, 1300, - 1300, 1301, 1301, 1303, 1303, 1304, 1304, 1305, 1305, 1306, - 1308, 1309, 1309, 1310, 1302, 1308, 1311, 1311, 1312, 1313, - 1314, 1315, 1315, 1314, 1317, 1313, 1316, 1316, 1306, 1318, - 1319, 1322, 1310, 1320, 1320, 1323, 1312, 1315, 1324, 1326, - 1326, 1325, 1327, 1317, 1318, 1325, 1328, 1328, 1329, 1319, - - 1331, 1322, 1332, 1324, 1330, 1330, 1334, 1333, 1323, 1331, - 1335, 1327, 1333, 1336, 1332, 1337, 1339, 1338, 1340, 1341, - 1337, 1342, 1345, 1335, 1329, 1339, 1342, 1340, 1347, 1348, - 1348, 1334, 1338, 1341, 1336, 1343, 1349, 1347, 1351, 1343, - 1353, 1349, 1345, 1350, 1350, 1354, 1358, 1356, 1359, 1358, - 1360, 1361, 1350, 1359, 1354, 1353, 1362, 1362, 1351, 1356, - 1364, 1364, 1365, 1361, 1366, 1366, 1367, 1368, 1369, 1372, - 1360, 1370, 1370, 1372, 1373, 1376, 1365, 1373, 1367, 1374, - 1374, 1368, 1377, 1375, 1379, 1378, 1380, 1369, 1375, 1378, - 1384, 1380, 1381, 1382, 1387, 1376, 1377, 1381, 1385, 1382, - - 1386, 1391, 1387, 1385, 1379, 1386, 1384, 1392, 1392, 1396, - 1396, 1400, 1401, 1401, 1405, 1391, 1400, 1403, 1403, 1405, - 1406, 1406, 1407, 1408, 1409, 1411, 1415, 1412, 1416, 1409, - 1413, 1413, 1417, 1416, 1418, 1415, 1420, 1420, 1407, 1412, - 1423, 1422, 1423, 1424, 1411, 1408, 1422, 1425, 1429, 1418, - 1417, 1430, 1425, 1426, 1426, 1427, 1427, 1424, 1428, 1428, - 1429, 1431, 1432, 1433, 1435, 1434, 1436, 1436, 1437, 1430, - 1434, 1438, 1439, 1431, 1432, 1433, 1440, 1437, 1441, 1442, - 1443, 1443, 1444, 1445, 1435, 1446, 1447, 1448, 1448, 1440, - 1446, 1447, 1439, 1442, 1449, 1449, 1453, 1438, 1450, 1450, - - 1444, 1454, 1441, 1455, 1456, 1445, 1457, 1458, 1459, 1460, - 1460, 1462, 1462, 1463, 1464, 1457, 1453, 1465, 1466, 1454, - 1467, 1464, 1463, 1468, 1456, 1455, 1459, 1458, 1469, 1470, - 1470, 1472, 1465, 1473, 1474, 1471, 1466, 1475, 1467, 1468, - 1471, 1476, 1475, 1478, 1481, 1483, 1483, 1469, 1473, 1472, - 1484, 1482, 1485, 1474, 1482, 1486, 1486, 1489, 1495, 1487, - 1492, 1476, 1478, 1487, 1481, 1484, 1502, 1490, 1491, 1491, - 1485, 1490, 1489, 1492, 1494, 1494, 1503, 1495, 1496, 1496, - 1497, 1497, 1501, 1501, 1504, 1503, 1505, 1506, 1502, 1504, - 1507, 1505, 1509, 1512, 1510, 1511, 1513, 1513, 1507, 1510, - - 1511, 1514, 1514, 1515, 1516, 1522, 1506, 1509, 1512, 1516, - 1515, 1517, 1518, 1518, 1519, 1519, 1517, 1523, 1522, 1524, - 1525, 1526, 1523, 1524, 1527, 1525, 1528, 1529, 1530, 1533, - 1526, 1534, 1529, 1532, 1528, 1541, 1532, 1535, 1540, 1527, - 1530, 1536, 1537, 1537, 1534, 1538, 1535, 1533, 1542, 1544, - 1536, 1543, 1543, 1545, 1538, 1541, 1547, 1540, 1546, 1546, - 1548, 1550, 1545, 1551, 1547, 1548, 1554, 1542, 1544, 1553, - 1550, 1555, 1562, 1553, 1557, 1557, 1551, 1559, 1559, 1568, - 1554, 1563, 1563, 1609, 1564, 1569, 1555, 1564, 1565, 1565, - 1566, 1566, 1562, 1567, 1567, 1570, 1609, 1568, 1581, 1569, - - 1570, 1571, 1571, 1572, 1575, 1575, 1576, 1572, 1577, 1580, - 1583, 1584, 1576, 1577, 1580, 1581, 1581, 1582, 1585, 1586, - 1586, 1587, 1582, 1589, 1594, 1588, 1590, 1590, 1583, 1591, - 1591, 1584, 1585, 1588, 1592, 1595, 1593, 1596, 1597, 1598, - 1587, 1593, 1589, 1614, 1594, 1603, 1596, 1600, 1600, 1601, - 1592, 1605, 1601, 1604, 1604, 1605, 1606, 1607, 1597, 1598, - 1610, 1595, 1612, 1603, 1613, 1606, 1608, 1608, 1614, 1610, - 1618, 1612, 1607, 1619, 1619, 1618, 1613, 1620, 1622, 1624, - 1625, 1627, 1626, 1622, 1628, 1629, 1620, 1626, 1624, 1628, - 1630, 1631, 1632, 1632, 1634, 1630, 1635, 1636, 1636, 1638, - - 1625, 1637, 1627, 1629, 1639, 1637, 1640, 1641, 1638, 1642, - 1643, 1635, 1645, 1634, 1642, 1641, 1631, 1644, 1644, 1648, - 1639, 1647, 1647, 1651, 1648, 1640, 1650, 1650, 1652, 1654, - 1654, 1645, 1655, 1656, 1657, 1657, 1643, 1658, 1658, 1659, - 1660, 1661, 1663, 1651, 1662, 1662, 1655, 1664, 1669, 1667, - 1665, 1652, 1660, 1665, 1663, 1656, 1673, 1666, 1659, 1668, - 1676, 1661, 1666, 1688, 1668, 1669, 1669, 1664, 1667, 1670, - 1670, 1672, 1672, 1675, 1676, 1673, 1677, 1688, 1675, 1678, - 1678, 1677, 1679, 1679, 1680, 1680, 1681, 1683, 1683, 1685, - 1685, 1681, 1687, 1687, 1689, 1690, 1690, 1691, 1694, 1695, - - 1695, 1699, 1691, 1689, 1696, 1698, 1694, 1700, 1701, 1696, - 1698, 1702, 1703, 1699, 1704, 1700, 1705, 1708, 1709, 1709, - 1711, 1705, 1710, 1710, 1711, 13, 1701, 1702, 1720, 1703, - 1703, 1715, 1715, 1723, 1717, 1704, 1725, 1708, 1717, 1719, - 1719, 1729, 1720, 1722, 1722, 1726, 1726, 1728, 1723, 1727, - 1727, 1731, 1728, 1730, 1725, 1732, 1733, 1734, 1735, 1735, - 1732, 1733, 1738, 1738, 1740, 1740, 1729, 1744, 1730, 1742, - 1742, 1750, 1731, 1745, 1745, 1748, 1734, 1749, 1748, 1744, - 1752, 1751, 1749, 1753, 1754, 1750, 1751, 1759, 1760, 1762, - 1763, 1759, 1761, 1764, 1765, 1766, 0, 1767, 1769, 1752, - - 1754, 1753, 1762, 1761, 1768, 1768, 1773, 1769, 1760, 1763, - 1765, 1764, 1767, 1770, 1770, 1774, 1771, 1772, 1775, 1776, - 1766, 1771, 1772, 1775, 1778, 1780, 1783, 1781, 1784, 1782, - 1774, 1773, 1781, 1776, 1782, 1785, 1786, 1787, 1788, 1778, - 1783, 1784, 1789, 1790, 1780, 1793, 0, 1791, 1792, 0, - 1786, 1788, 1791, 1792, 1785, 1789, 1787, 1794, 1794, 1798, - 1795, 1796, 1790, 1797, 1793, 1795, 1796, 1799, 1797, 1800, - 1800, 1802, 1799, 1801, 1803, 1805, 1804, 1808, 1798, 1806, - 1801, 1804, 1808, 1809, 1810, 1811, 1812, 1812, 1814, 0, - 1802, 1813, 1806, 1803, 1805, 1819, 1813, 1823, 1811, 1815, - - 1815, 1817, 1809, 1810, 1816, 1816, 1817, 1814, 1818, 1820, - 1820, 1821, 1822, 1825, 1819, 1818, 1823, 1824, 1821, 1822, - 1827, 1828, 1824, 1829, 1830, 1827, 1828, 1831, 1831, 1832, - 1833, 1836, 1825, 1834, 1834, 1835, 1835, 1845, 1836, 1837, - 1837, 1846, 1829, 1830, 1838, 1838, 1839, 1841, 1832, 1833, - 1844, 0, 1841, 1839, 0, 1844, 1845, 1847, 1847, 0, - 1846, 1848, 1848, 1852, 1852, 1852, 1852, 1852, 1852, 1852, - 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1854, 1854, 1854, - 1854, 1854, 1854, 1854, 1855, 1855, 1855, 1855, 1855, 1855, - 1855, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1858, 1858, - - 0, 1858, 1858, 1858, 1858, 1859, 1859, 0, 0, 0, - 1859, 1859, 1860, 1860, 0, 0, 1860, 0, 1860, 1861, - 0, 0, 0, 0, 0, 1861, 1862, 1862, 0, 0, - 0, 1862, 1862, 1863, 0, 0, 0, 0, 0, 1863, - 1864, 1864, 0, 1864, 1864, 1864, 1864, 1865, 1865, 0, - 1865, 1865, 1865, 1865, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, - 1851, 1851, 1851, 1851 - + 974, 979, 979, 981, 983, 975, 977, 984, 981, 985, + 982, 977, 987, 983, 986, 988, 988, 987, 985, 989, + 990, 985, 991, 986, 992, 993, 984, 995, 996, 998, + 994, 997, 997, 990, 999, 1001, 1001, 1003, 992, 989, + 991, 993, 994, 999, 1000, 998, 996, 1002, 1005, 1000, + + 1001, 1006, 995, 1005, 1008, 1003, 1002, 1007, 1009, 1002, + 1008, 1010, 1007, 1011, 1012, 1017, 1010, 1012, 1016, 1006, + 1018, 1015, 1019, 1012, 1020, 1021, 1011, 1019, 1009, 1015, + 1023, 1016, 1024, 1017, 1029, 46, 1024, 1025, 1028, 1018, + 1020, 1026, 1025, 1021, 1027, 1030, 1026, 1028, 1032, 1027, + 1023, 1031, 1031, 1034, 1033, 1035, 1036, 1029, 1037, 1038, + 1030, 1033, 1032, 1037, 1039, 1034, 1040, 1035, 1041, 1041, + 1042, 1038, 1040, 1042, 1045, 1036, 1043, 1043, 1046, 1045, + 1047, 1047, 1039, 1048, 1049, 1050, 1051, 1046, 1052, 1049, + 1054, 1053, 1056, 1055, 1050, 1048, 1053, 1058, 1051, 1054, + + 1057, 1057, 1058, 1052, 1059, 1060, 1061, 1056, 1062, 1062, + 1063, 41, 1054, 1055, 1064, 1064, 1065, 1065, 1066, 1071, + 1073, 14, 1066, 1067, 1060, 1059, 1061, 1078, 1067, 1068, + 1063, 1070, 1068, 1072, 1074, 1074, 1070, 1071, 1072, 1075, + 1075, 1076, 1077, 1079, 1080, 1073, 1076, 1078, 1081, 1080, + 1083, 1084, 1085, 1085, 1077, 1077, 1077, 1086, 1087, 1087, + 1088, 1077, 1089, 1079, 1083, 1090, 1090, 1092, 1081, 1093, + 1093, 1094, 1084, 1096, 1095, 1097, 1092, 1098, 1098, 1099, + 1088, 1095, 1096, 1086, 1089, 1102, 1094, 1100, 1103, 1104, + 1102, 1105, 1106, 1103, 1107, 1108, 1108, 1106, 1105, 1107, + + 1111, 1097, 1109, 1100, 1110, 1099, 1112, 1109, 1114, 1104, + 1113, 1114, 1115, 1110, 1116, 1117, 1117, 1118, 1119, 1120, + 1111, 1121, 1113, 1126, 1122, 1112, 13, 1121, 1123, 1123, + 1115, 1124, 1118, 1122, 1120, 1125, 1125, 1119, 1127, 1132, + 1116, 1128, 1124, 1138, 1126, 1133, 1128, 1124, 1129, 1129, + 1130, 1131, 1127, 1134, 1130, 1130, 1131, 1133, 1134, 1135, + 1136, 1137, 1139, 1140, 1136, 1132, 1142, 1139, 1138, 1141, + 1148, 1135, 1144, 1137, 1141, 1144, 1145, 1145, 1142, 1146, + 1146, 1147, 1147, 1149, 1157, 1140, 1150, 1151, 1152, 1149, + 1148, 1150, 1156, 1151, 1154, 1156, 1157, 1152, 1159, 1154, + + 1160, 1160, 1161, 1162, 1165, 1163, 1164, 1168, 1165, 1166, + 1159, 1167, 1162, 1171, 1166, 1172, 1167, 1170, 1170, 1173, + 1178, 1168, 1161, 1163, 1172, 1164, 1175, 1175, 1173, 1170, + 1179, 1171, 1180, 1182, 1182, 1178, 1183, 1180, 1183, 1184, + 1184, 1186, 1187, 1189, 1179, 1188, 1188, 1190, 1186, 1191, + 1194, 1192, 1189, 1193, 1195, 1196, 1200, 1197, 1200, 1199, + 1201, 1191, 1187, 1192, 1199, 1193, 1202, 1203, 1190, 1195, + 1204, 1202, 1206, 1208, 1203, 1196, 1194, 1197, 1201, 1204, + 1207, 1207, 1209, 1210, 1211, 1210, 1206, 1209, 1212, 1211, + 1213, 1214, 1215, 1212, 1217, 1216, 1218, 1215, 1220, 1208, + + 1216, 1221, 1222, 1222, 1218, 1223, 1223, 1217, 1213, 1224, + 1225, 1214, 1232, 1226, 1227, 1221, 1229, 1220, 1226, 1227, + 1228, 1232, 1228, 1230, 1224, 1231, 1233, 1231, 1229, 1235, + 1225, 1236, 1230, 1238, 1235, 1230, 1236, 1239, 1233, 1240, + 1246, 1242, 1244, 1245, 1247, 1249, 1238, 1242, 1244, 1248, + 1248, 1250, 1250, 1247, 1249, 1240, 1251, 1239, 1245, 1252, + 1254, 1253, 1256, 1252, 1255, 1246, 1253, 1257, 1255, 1255, + 1256, 1260, 1260, 1254, 1261, 1251, 1262, 1262, 1263, 1263, + 1264, 1265, 1270, 1261, 1266, 1267, 1271, 1257, 1272, 1266, + 1267, 1271, 1264, 1268, 1268, 1273, 1274, 1275, 1276, 1265, + + 1278, 1274, 1277, 1277, 1278, 1279, 1281, 1270, 1280, 1282, + 1273, 1272, 1284, 1280, 1276, 1275, 1285, 1286, 1287, 1288, + 1279, 1289, 1291, 1291, 1292, 1293, 1299, 1292, 1282, 1294, + 0, 1288, 1281, 1295, 1317, 1284, 1286, 1317, 1293, 1287, + 1285, 1299, 1289, 1294, 1296, 1296, 1295, 1297, 1297, 1298, + 1298, 1300, 1301, 1301, 1302, 1302, 1303, 1303, 1304, 1305, + 1305, 1306, 1307, 1307, 1300, 1308, 1308, 1309, 1311, 1312, + 1312, 1313, 1316, 1311, 1314, 1314, 1315, 1304, 1316, 1306, + 1318, 1318, 1319, 1319, 1320, 1321, 1309, 1322, 1323, 1323, + 1313, 1325, 1326, 1327, 1315, 1328, 1318, 1329, 1329, 1328, + + 1321, 1330, 1332, 1320, 1331, 1331, 1322, 1334, 1327, 1333, + 1333, 1325, 1335, 1336, 1337, 1326, 1334, 1338, 1336, 1339, + 1330, 1340, 1341, 1342, 1335, 1343, 1340, 1344, 1332, 1346, + 1338, 1345, 1342, 1346, 1343, 1348, 1345, 1341, 1350, 1337, + 1339, 1344, 1351, 1351, 1352, 1353, 1353, 1350, 1354, 1352, + 1356, 1357, 1359, 1361, 1353, 1348, 1361, 1362, 1363, 1364, + 1357, 1368, 1362, 1371, 1359, 1356, 1365, 1365, 1354, 1367, + 1367, 1364, 1369, 1369, 1370, 1368, 1372, 1371, 1363, 1373, + 1373, 1375, 1377, 1377, 1376, 1375, 1370, 1376, 1378, 1379, + 1380, 1382, 1381, 1378, 1383, 1372, 1381, 1384, 1387, 1383, + + 1385, 1411, 1384, 1388, 1380, 1389, 1385, 1390, 1388, 1379, + 1389, 1382, 1394, 1401, 1387, 1390, 1391, 1411, 1391, 1395, + 1395, 1399, 1399, 1404, 1405, 1405, 1394, 1409, 1404, 1407, + 1407, 1401, 1409, 1410, 1410, 1412, 1413, 1415, 1416, 1417, + 1417, 1413, 1419, 1420, 1421, 1422, 1424, 1424, 1420, 1426, + 1416, 1419, 1428, 1427, 1426, 1427, 1415, 1412, 1429, 1433, + 1422, 1434, 1421, 1429, 1430, 1430, 1428, 1431, 1431, 1432, + 1432, 1433, 1435, 1436, 1437, 1438, 1439, 1440, 1440, 1434, + 1438, 1441, 1442, 1443, 1435, 1436, 1437, 1444, 1445, 1448, + 1441, 1446, 1447, 1447, 1449, 1457, 1439, 1450, 1459, 1451, + + 1444, 1458, 1450, 1443, 1451, 1446, 1460, 1448, 1442, 1452, + 1452, 1462, 1445, 1453, 1453, 1457, 1449, 1454, 1454, 1458, + 1459, 1461, 1463, 1464, 1464, 1467, 1460, 1466, 1466, 1468, + 1461, 1462, 1469, 1470, 1467, 1471, 1468, 1473, 1472, 1475, + 1463, 1474, 1474, 1476, 1475, 1477, 1478, 1469, 1480, 1482, + 1479, 1470, 1483, 1471, 1472, 1479, 1473, 1486, 1482, 1487, + 1477, 1476, 1487, 1488, 1488, 1478, 1489, 1490, 1480, 1491, + 1491, 1483, 1492, 1494, 1495, 1500, 1492, 1486, 1495, 1496, + 1496, 1489, 1497, 1499, 1499, 1490, 1501, 1501, 1494, 1502, + 1502, 1506, 1506, 1507, 1500, 1497, 1508, 1509, 1510, 1511, + + 1512, 1514, 1509, 1510, 1515, 1508, 1516, 1517, 1512, 1515, + 1520, 1516, 1518, 1518, 1527, 1507, 1514, 1520, 1511, 1519, + 1519, 1521, 1517, 1522, 1523, 1523, 1521, 1527, 1522, 1524, + 1524, 1528, 1531, 1529, 1530, 1532, 1528, 1529, 1533, 1530, + 1534, 1531, 1535, 1538, 1537, 1534, 1533, 1537, 1540, 1539, + 1532, 1541, 1542, 1542, 1535, 1543, 1545, 1540, 1546, 1550, + 1541, 1538, 1539, 1547, 1543, 1548, 1548, 1549, 1550, 1551, + 1552, 1552, 1553, 1551, 1554, 1545, 1556, 1557, 1546, 1554, + 1553, 1560, 1547, 1559, 1561, 1556, 1549, 1559, 1563, 1563, + 1557, 1565, 1565, 1568, 1574, 1560, 1569, 1569, 1570, 1561, + + 1575, 1570, 1571, 1571, 1572, 1572, 1573, 1573, 1577, 1577, + 1576, 1587, 1574, 1568, 1575, 1576, 1578, 1581, 1581, 1582, + 1578, 1583, 1586, 1589, 1590, 1582, 1583, 1586, 1587, 1587, + 1588, 1591, 1592, 1592, 1593, 1588, 1595, 1600, 1594, 1596, + 1596, 1589, 1597, 1597, 1590, 1591, 1594, 1598, 1601, 1599, + 1602, 1603, 1604, 1593, 1599, 1595, 0, 1600, 1610, 1602, + 1606, 1606, 1607, 1598, 1608, 1607, 1611, 1611, 1614, 1608, + 1613, 1603, 1604, 1612, 1601, 1616, 1610, 1612, 1617, 1613, + 1615, 1615, 1619, 1614, 1620, 1621, 1627, 1617, 1616, 1625, + 1631, 1619, 1626, 1626, 1625, 1627, 1620, 1629, 1632, 1631, + + 1633, 1634, 1629, 1635, 1637, 1633, 1636, 1638, 1635, 1637, + 1621, 1639, 1639, 1642, 1641, 1643, 1643, 1644, 1632, 1646, + 1645, 1644, 1634, 1647, 1636, 1649, 1648, 1650, 1642, 1645, + 1649, 1652, 1638, 1641, 1648, 1646, 1651, 1651, 1654, 1654, + 1655, 1655, 1647, 1656, 1658, 1658, 1659, 1660, 1656, 1663, + 1652, 1662, 1662, 1650, 1664, 1665, 1665, 1666, 1666, 1667, + 1668, 1669, 1671, 1663, 1670, 1670, 1659, 1672, 1673, 1675, + 1660, 1673, 1668, 1677, 1671, 1674, 1664, 1676, 1667, 1681, + 1674, 1669, 1676, 1678, 1678, 1680, 1680, 1672, 1675, 1683, + 1677, 1677, 1684, 0, 1683, 1685, 1686, 1686, 1681, 0, + + 1685, 1687, 1687, 1688, 1688, 1689, 1684, 1691, 1691, 1697, + 1689, 1694, 1694, 1696, 1696, 1698, 1699, 1699, 1703, 1708, + 1700, 1704, 1704, 1697, 1698, 1700, 1703, 1705, 1707, 1709, + 1710, 1708, 1705, 1707, 1711, 1712, 1713, 1709, 1714, 1717, + 1718, 1718, 1720, 1714, 1719, 1719, 1720, 1726, 1710, 1729, + 1711, 1726, 1712, 1712, 1724, 1724, 1732, 1713, 1734, 1717, + 1728, 1728, 1738, 1729, 1731, 1731, 1735, 1735, 1736, 1736, + 1737, 1732, 1740, 1739, 1741, 1737, 1734, 1742, 1743, 1741, + 1744, 1744, 1742, 1747, 1747, 1749, 1749, 1738, 1739, 1751, + 1751, 1753, 1759, 1740, 1754, 1754, 1757, 1743, 1761, 1757, + + 1758, 1762, 1760, 1753, 1763, 1758, 1759, 1760, 1768, 1769, + 1770, 1771, 1768, 1772, 1774, 1773, 1775, 1761, 1778, 1762, + 1763, 1770, 1776, 1780, 1771, 1777, 1777, 1778, 1780, 1769, + 1774, 1781, 1772, 1773, 1779, 1779, 1781, 1776, 1782, 1783, + 1784, 1775, 1785, 1787, 1790, 1784, 1789, 1791, 1792, 1790, + 1794, 1793, 1791, 1795, 1783, 1796, 1785, 1797, 1787, 1798, + 1799, 1800, 1792, 1782, 1793, 1789, 1800, 1795, 1801, 1794, + 1797, 1802, 1798, 1801, 1796, 1803, 1803, 1804, 1805, 1799, + 1806, 1807, 1804, 1805, 1808, 1806, 1809, 1809, 1810, 1808, + 1802, 1811, 1812, 1813, 1814, 1810, 1815, 1817, 1813, 1818, + + 1807, 1819, 1817, 1820, 1821, 1821, 1823, 1822, 1828, 1815, + 1811, 1812, 1822, 1814, 1824, 1824, 1820, 1832, 1818, 1826, + 1819, 1825, 1825, 1827, 1826, 1823, 1830, 1828, 1829, 1829, + 1827, 1831, 1833, 1830, 1834, 1836, 1832, 1833, 1831, 1837, + 1836, 1838, 1839, 1841, 1837, 1840, 1840, 1842, 1843, 1843, + 1844, 1844, 1845, 1834, 1846, 1846, 1847, 1847, 1848, 1845, + 1838, 1839, 1841, 1850, 1853, 1848, 1842, 1854, 1850, 1853, + 1855, 1856, 1856, 1857, 1857, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1854, 0, 0, 1855, + 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1862, 1862, 1862, + + 1862, 1862, 1862, 1862, 1863, 1863, 1863, 1863, 1863, 1863, + 1863, 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1865, 1865, + 1865, 1865, 1865, 1865, 1865, 1867, 1867, 0, 1867, 1867, + 1867, 1867, 1868, 1868, 0, 0, 0, 1868, 1868, 1869, + 1869, 0, 0, 1869, 0, 1869, 1870, 0, 0, 0, + 0, 0, 1870, 1871, 1871, 0, 0, 0, 1871, 1871, + 1872, 0, 0, 0, 0, 0, 1872, 1873, 1873, 0, + 1873, 1873, 1873, 1873, 1874, 1874, 0, 1874, 1874, 1874, + 1874, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, + 1860 } ; static yy_state_type yy_last_accepting_state; @@ -2077,7 +2085,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2079 "" +#line 2087 "" #define INITIAL 0 #define quotedstring 1 @@ -2300,7 +2308,7 @@ YY_DECL { #line 201 "./util/configlexer.lex" -#line 2302 "" +#line 2310 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2333,13 +2341,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1852 ) + if ( yy_current_state >= 1861 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3655 ); + while ( yy_base[yy_current_state] != 3682 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3085,144 +3093,149 @@ YY_RULE_SETUP case 144: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 145: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 146: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 147: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 148: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 149: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 150: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 151: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 152: YY_RULE_SETUP -#line 358 "./util/configlexer.lex" +#line 357 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 153: YY_RULE_SETUP -#line 360 "./util/configlexer.lex" +#line 359 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 154: YY_RULE_SETUP -#line 362 "./util/configlexer.lex" +#line 361 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 155: YY_RULE_SETUP -#line 364 "./util/configlexer.lex" +#line 363 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 156: YY_RULE_SETUP -#line 366 "./util/configlexer.lex" +#line 365 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 157: YY_RULE_SETUP -#line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 367 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 158: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 159: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 160: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 161: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 162: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 163: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 164: -/* rule 164 can match eol */ YY_RULE_SETUP #line 375 "./util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 165: +/* rule 165 can match eol */ +YY_RULE_SETUP +#line 376 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 165: +case 166: YY_RULE_SETUP -#line 378 "./util/configlexer.lex" +#line 379 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 379 "./util/configlexer.lex" +#line 380 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 384 "./util/configlexer.lex" +#line 385 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 167: -/* rule 167 can match eol */ +case 168: +/* rule 168 can match eol */ YY_RULE_SETUP -#line 385 "./util/configlexer.lex" +#line 386 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 387 "./util/configlexer.lex" +#line 388 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3235,34 +3248,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 169: +case 170: YY_RULE_SETUP -#line 399 "./util/configlexer.lex" +#line 400 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 400 "./util/configlexer.lex" +#line 401 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 405 "./util/configlexer.lex" +#line 406 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 171: -/* rule 171 can match eol */ +case 172: +/* rule 172 can match eol */ YY_RULE_SETUP -#line 406 "./util/configlexer.lex" +#line 407 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 408 "./util/configlexer.lex" +#line 409 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -3275,38 +3288,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 173: +case 174: YY_RULE_SETUP -#line 420 "./util/configlexer.lex" +#line 421 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 422 "./util/configlexer.lex" +#line 423 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 174: -YY_RULE_SETUP -#line 426 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 175: -/* rule 175 can match eol */ YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 176: +/* rule 176 can match eol */ YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 177: YY_RULE_SETUP #line 429 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 178: +YY_RULE_SETUP +#line 430 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -3314,27 +3327,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 434 "./util/configlexer.lex" +#line 435 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 438 "./util/configlexer.lex" +#line 439 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 179: -/* rule 179 can match eol */ +case 180: +/* rule 180 can match eol */ YY_RULE_SETUP -#line 439 "./util/configlexer.lex" +#line 440 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 441 "./util/configlexer.lex" +#line 442 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -3344,7 +3357,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 447 "./util/configlexer.lex" +#line 448 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -3356,33 +3369,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 458 "./util/configlexer.lex" +#line 459 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 462 "./util/configlexer.lex" +#line 463 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 466 "./util/configlexer.lex" +#line 467 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 470 "./util/configlexer.lex" +#line 471 "./util/configlexer.lex" ECHO; YY_BREAK -#line 3384 "" +#line 3397 "" case YY_END_OF_BUFFER: { @@ -3673,7 +3686,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1852 ) + if ( yy_current_state >= 1861 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3701,11 +3714,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1852 ) + if ( yy_current_state >= 1861 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1851); + yy_is_jam = (yy_current_state == 1860); return yy_is_jam ? 0 : yy_current_state; } @@ -4344,7 +4357,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 470 "./util/configlexer.lex" +#line 471 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 3fe675d33..8665ea54e 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -346,6 +346,7 @@ dns64-synthall{COLON} { YDVAR(1, VAR_DNS64_SYNTHALL) } define-tag{COLON} { YDVAR(1, VAR_DEFINE_TAG) } local-zone-tag{COLON} { YDVAR(2, VAR_LOCAL_ZONE_TAG) } access-control-tag{COLON} { YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +local-zone-override{COLON} { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } dnstap{COLON} { YDVAR(0, VAR_DNSTAP) } dnstap-enable{COLON} { YDVAR(1, VAR_DNSTAP_ENABLE) } dnstap-socket-path{COLON} { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } diff --git a/util/configparser.c b/util/configparser.c index 1d050483a..2445cc4b9 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -291,7 +291,8 @@ extern int yydebug; VAR_IP_FREEBIND = 422, VAR_DEFINE_TAG = 423, VAR_LOCAL_ZONE_TAG = 424, - VAR_ACCESS_CONTROL_TAG = 425 + VAR_ACCESS_CONTROL_TAG = 425, + VAR_LOCAL_ZONE_OVERRIDE = 426 }; #endif /* Tokens. */ @@ -463,6 +464,7 @@ extern int yydebug; #define VAR_DEFINE_TAG 423 #define VAR_LOCAL_ZONE_TAG 424 #define VAR_ACCESS_CONTROL_TAG 425 +#define VAR_LOCAL_ZONE_OVERRIDE 426 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -473,7 +475,7 @@ union YYSTYPE char* str; -#line 477 "util/configparser.c" /* yacc.c:355 */ +#line 479 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -490,7 +492,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 494 "util/configparser.c" /* yacc.c:358 */ +#line 496 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -732,21 +734,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 323 +#define YYLAST 327 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 171 +#define YYNTOKENS 172 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 176 +#define YYNNTS 177 /* YYNRULES -- Number of rules. */ -#define YYNRULES 337 +#define YYNRULES 339 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 499 +#define YYNSTATES 504 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 425 +#define YYMAXUTOK 426 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -797,7 +799,7 @@ static const yytype_uint8 yytranslate[] = 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170 + 165, 166, 167, 168, 169, 170, 171 }; #if YYDEBUG @@ -817,27 +819,27 @@ static const yytype_uint16 yyrline[] = 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 187, 188, 188, 189, 189, 190, 190, 191, 191, 192, 192, 192, 193, 193, 194, 194, 195, - 195, 196, 196, 197, 197, 197, 198, 198, 200, 212, - 213, 214, 214, 214, 214, 214, 216, 228, 229, 230, - 230, 230, 230, 232, 241, 250, 261, 270, 279, 288, - 301, 316, 325, 334, 343, 352, 361, 370, 379, 388, - 397, 406, 415, 424, 433, 442, 449, 456, 465, 474, - 488, 497, 506, 513, 520, 527, 535, 542, 549, 556, - 563, 571, 579, 587, 594, 601, 610, 619, 626, 633, - 641, 649, 659, 669, 679, 692, 703, 711, 724, 733, - 742, 751, 761, 771, 779, 792, 801, 809, 818, 826, - 839, 848, 855, 865, 875, 885, 895, 905, 915, 925, - 935, 942, 949, 956, 965, 974, 983, 990, 1000, 1017, - 1024, 1042, 1055, 1068, 1077, 1086, 1095, 1104, 1114, 1124, - 1133, 1142, 1149, 1158, 1167, 1176, 1185, 1193, 1206, 1214, - 1238, 1245, 1260, 1270, 1280, 1287, 1294, 1303, 1317, 1336, - 1355, 1364, 1372, 1385, 1398, 1411, 1420, 1430, 1440, 1447, - 1454, 1463, 1473, 1483, 1490, 1497, 1506, 1511, 1512, 1513, - 1513, 1513, 1514, 1514, 1514, 1515, 1515, 1517, 1527, 1536, - 1543, 1553, 1560, 1567, 1574, 1581, 1586, 1587, 1588, 1588, - 1589, 1589, 1590, 1590, 1591, 1592, 1593, 1594, 1595, 1596, - 1598, 1606, 1613, 1621, 1629, 1636, 1643, 1652, 1661, 1670, - 1679, 1688, 1697, 1702, 1703, 1704, 1706, 1712 + 195, 196, 196, 197, 197, 197, 198, 198, 199, 201, + 213, 214, 215, 215, 215, 215, 215, 217, 229, 230, + 231, 231, 231, 231, 233, 242, 251, 262, 271, 280, + 289, 302, 317, 326, 335, 344, 353, 362, 371, 380, + 389, 398, 407, 416, 425, 434, 443, 450, 457, 466, + 475, 489, 498, 507, 514, 521, 528, 536, 543, 550, + 557, 564, 572, 580, 588, 595, 602, 611, 620, 627, + 634, 642, 650, 660, 670, 680, 693, 704, 712, 725, + 734, 743, 752, 762, 772, 780, 793, 802, 810, 819, + 827, 840, 849, 856, 866, 876, 886, 896, 906, 916, + 926, 936, 943, 950, 957, 966, 975, 984, 991, 1001, + 1018, 1025, 1043, 1056, 1069, 1078, 1087, 1096, 1105, 1115, + 1125, 1134, 1143, 1150, 1159, 1168, 1177, 1186, 1194, 1207, + 1215, 1239, 1246, 1261, 1271, 1281, 1288, 1295, 1304, 1318, + 1337, 1356, 1368, 1377, 1385, 1398, 1411, 1424, 1433, 1443, + 1453, 1460, 1467, 1476, 1486, 1496, 1503, 1510, 1519, 1524, + 1525, 1526, 1526, 1526, 1527, 1527, 1527, 1528, 1528, 1530, + 1540, 1549, 1556, 1566, 1573, 1580, 1587, 1594, 1599, 1600, + 1601, 1601, 1602, 1602, 1603, 1603, 1604, 1605, 1606, 1607, + 1608, 1609, 1611, 1619, 1626, 1634, 1642, 1649, 1656, 1665, + 1674, 1683, 1692, 1701, 1710, 1715, 1716, 1717, 1719, 1725 }; #endif @@ -906,16 +908,17 @@ static const char *const yytname[] = "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG", - "$accept", "toplevelvars", "toplevelvar", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_port", "server_interface", "server_outgoing_interface", - "server_outgoing_range", "server_outgoing_port_permit", - "server_outgoing_port_avoid", "server_outgoing_num_tcp", - "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", - "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_mss", + "VAR_LOCAL_ZONE_OVERRIDE", "$accept", "toplevelvars", "toplevelvar", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_port", "server_interface", + "server_outgoing_interface", "server_outgoing_range", + "server_outgoing_port_permit", "server_outgoing_port_avoid", + "server_outgoing_num_tcp", "server_incoming_num_tcp", + "server_interface_automatic", "server_do_ip4", "server_do_ip6", + "server_do_udp", "server_do_tcp", "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_upstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", @@ -957,18 +960,18 @@ static const char *const yytname[] = "server_local_data", "server_local_data_ptr", "server_minimal_responses", "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix", "server_dns64_synthall", "server_define_tag", "server_local_zone_tag", - "access_control_tag", "server_ratelimit", "server_ratelimit_size", - "server_ratelimit_slabs", "server_ratelimit_for_domain", - "server_ratelimit_below_domain", "server_ratelimit_factor", - "server_qname_minimisation", "stub_name", "stub_host", "stub_addr", - "stub_first", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc", - "rc_control_enable", "rc_control_port", "rc_control_interface", - "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file", - "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt", - "content_dt", "dt_dnstap_enable", "dt_dnstap_socket_path", - "dt_dnstap_send_identity", "dt_dnstap_send_version", - "dt_dnstap_identity", "dt_dnstap_version", + "server_access_control_tag", "server_local_zone_override", + "server_ratelimit", "server_ratelimit_size", "server_ratelimit_slabs", + "server_ratelimit_for_domain", "server_ratelimit_below_domain", + "server_ratelimit_factor", "server_qname_minimisation", "stub_name", + "stub_host", "stub_addr", "stub_first", "stub_prime", "forward_name", + "forward_host", "forward_addr", "forward_first", "rcstart", + "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", + "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", + "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file", + "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable", + "dt_dnstap_socket_path", "dt_dnstap_send_identity", + "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version", "dt_dnstap_log_resolver_query_messages", "dt_dnstap_log_resolver_response_messages", "dt_dnstap_log_client_query_messages", @@ -1002,7 +1005,7 @@ static const yytype_uint16 yytoknum[] = 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425 + 425, 426 }; # endif @@ -1020,21 +1023,21 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -81, 119, -81, -81, -81, -81, -81, -81, -81, -81, + -81, 129, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -12, 39, 47, 40, 36, -80, 18, 19, 20, 24, 25, 26, 69, 72, - 73, 74, 75, 80, 108, 129, 130, 150, 151, 152, - 153, 154, 156, 157, 158, 159, 161, 162, 163, 164, - 165, 166, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 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, -81, -81, -81, + 73, 74, 75, 80, 108, 109, 120, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 161, 162, 163, 164, + 166, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, @@ -1047,29 +1050,30 @@ static const yytype_int16 yypact[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, 278, 279, 280, 281, 282, -81, -81, - -81, -81, -81, -81, 283, 284, 285, 286, -81, -81, - -81, -81, -81, 287, 288, 289, 290, 291, 292, 293, - 294, -81, -81, -81, -81, -81, -81, -81, -81, -81, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, 307, -81, -81, -81, -81, + -81, -81, -81, -81, -81, 280, 281, 282, 283, 284, + -81, -81, -81, -81, -81, -81, 285, 286, 287, 288, + -81, -81, -81, -81, -81, 289, 290, 291, 292, 293, + 294, 295, 296, -81, -81, -81, -81, -81, -81, -81, + -81, -81, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, 309, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, 310, 311, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, 308, 309, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, 312, 313, -81, -81, -81, -81, + -81, -81, -81, 314, 315, 316, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, 310, 311, -81, -81, -81, -81, -81, -81, - -81, 312, 313, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, -81 + -81, -81, 317, -81 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1077,8 +1081,8 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 10, 138, 146, 286, 332, 305, 3, - 12, 140, 148, 288, 307, 334, 4, 5, 6, 8, + 2, 0, 1, 10, 139, 147, 288, 334, 307, 3, + 12, 141, 149, 290, 309, 336, 4, 5, 6, 8, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1091,42 +1095,43 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 13, 14, - 72, 75, 84, 15, 23, 63, 16, 76, 77, 34, - 56, 71, 17, 18, 19, 20, 21, 22, 106, 107, - 108, 109, 110, 73, 62, 88, 105, 24, 25, 26, - 27, 28, 64, 78, 79, 94, 50, 60, 51, 89, - 44, 45, 46, 47, 98, 102, 114, 122, 133, 99, - 57, 29, 30, 31, 86, 115, 116, 117, 32, 33, - 35, 36, 38, 39, 37, 120, 40, 41, 42, 48, - 67, 103, 81, 121, 74, 129, 82, 83, 100, 101, - 87, 43, 65, 68, 49, 52, 90, 91, 66, 130, - 92, 53, 54, 55, 104, 93, 61, 95, 96, 97, - 131, 58, 59, 80, 69, 70, 85, 111, 112, 113, - 118, 119, 134, 135, 137, 123, 125, 124, 126, 127, - 128, 132, 136, 0, 0, 0, 0, 0, 139, 141, - 142, 143, 145, 144, 0, 0, 0, 0, 147, 149, - 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, - 0, 287, 289, 291, 290, 296, 292, 293, 294, 295, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 306, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 333, 335, 154, 153, - 158, 161, 159, 167, 168, 169, 170, 171, 172, 182, - 183, 184, 185, 186, 206, 207, 208, 213, 214, 164, - 215, 216, 219, 217, 218, 221, 222, 223, 236, 195, - 196, 197, 198, 224, 239, 191, 193, 240, 246, 247, - 248, 165, 205, 256, 257, 192, 251, 179, 160, 187, - 237, 243, 225, 0, 0, 260, 166, 155, 178, 229, - 156, 162, 163, 188, 189, 258, 227, 231, 232, 157, - 261, 209, 235, 180, 194, 241, 242, 245, 250, 190, - 254, 252, 253, 199, 204, 233, 234, 200, 201, 226, - 249, 181, 173, 174, 175, 176, 177, 262, 263, 264, - 210, 211, 212, 220, 265, 266, 228, 202, 337, 270, - 272, 271, 0, 0, 275, 230, 244, 255, 276, 203, - 267, 0, 0, 277, 278, 279, 281, 280, 282, 283, - 284, 285, 297, 299, 298, 301, 302, 303, 304, 300, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 336, 238, 259, 273, 274, 268, 269 + 0, 0, 0, 0, 0, 0, 0, 0, 11, 13, + 14, 72, 75, 84, 15, 23, 63, 16, 76, 77, + 34, 56, 71, 17, 18, 19, 20, 21, 22, 106, + 107, 108, 109, 110, 73, 62, 88, 105, 24, 25, + 26, 27, 28, 64, 78, 79, 94, 50, 60, 51, + 89, 44, 45, 46, 47, 98, 102, 114, 122, 133, + 99, 57, 29, 30, 31, 86, 115, 116, 117, 32, + 33, 35, 36, 38, 39, 37, 120, 40, 41, 42, + 48, 67, 103, 81, 121, 74, 129, 82, 83, 100, + 101, 87, 43, 65, 68, 49, 52, 90, 91, 66, + 130, 92, 53, 54, 55, 104, 93, 61, 95, 96, + 97, 131, 58, 59, 80, 69, 70, 85, 111, 112, + 113, 118, 119, 134, 135, 137, 138, 123, 125, 124, + 126, 127, 128, 132, 136, 0, 0, 0, 0, 0, + 140, 142, 143, 144, 146, 145, 0, 0, 0, 0, + 148, 150, 151, 152, 153, 0, 0, 0, 0, 0, + 0, 0, 0, 289, 291, 293, 292, 298, 294, 295, + 296, 297, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 308, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 335, 337, + 155, 154, 159, 162, 160, 168, 169, 170, 171, 172, + 173, 183, 184, 185, 186, 187, 207, 208, 209, 214, + 215, 165, 216, 217, 220, 218, 219, 222, 223, 224, + 237, 196, 197, 198, 199, 225, 240, 192, 194, 241, + 247, 248, 249, 166, 206, 257, 258, 193, 252, 180, + 161, 188, 238, 244, 226, 0, 0, 261, 167, 156, + 179, 230, 157, 163, 164, 189, 190, 259, 228, 232, + 233, 158, 262, 210, 236, 181, 195, 242, 243, 246, + 251, 191, 255, 253, 254, 200, 205, 234, 235, 201, + 202, 227, 250, 182, 174, 175, 176, 177, 178, 263, + 264, 265, 211, 212, 213, 221, 266, 267, 229, 203, + 339, 272, 274, 273, 0, 0, 277, 231, 245, 256, + 278, 204, 268, 0, 0, 0, 279, 280, 281, 283, + 282, 284, 285, 286, 287, 299, 301, 300, 303, 304, + 305, 306, 302, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 338, 239, 260, 275, 276, + 269, 270, 0, 271 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1149,30 +1154,30 @@ static const yytype_int8 yypgoto[] = -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81 + -81, -81, -81, -81, -81, -81, -81 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 9, 10, 16, 147, 11, 17, 278, 12, - 18, 288, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 279, 280, 281, 282, - 283, 289, 290, 291, 292, 13, 19, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 14, 20, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 15, 21, 336, 337, 272 + -1, 1, 9, 10, 16, 148, 11, 17, 280, 12, + 18, 290, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 281, 282, 283, + 284, 285, 291, 292, 293, 294, 13, 19, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 14, 20, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 15, 21, 338, 339, 274 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1182,37 +1187,37 @@ static const yytype_uint16 yytable[] = { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 335, 338, 339, - 340, 49, 50, 51, 341, 342, 343, 52, 53, 54, + 42, 43, 44, 45, 46, 47, 48, 337, 340, 341, + 342, 49, 50, 51, 343, 344, 345, 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, 91, 92, 273, 344, - 274, 275, 345, 346, 347, 348, 284, 93, 94, 95, - 349, 96, 97, 98, 285, 286, 99, 100, 101, 102, + 85, 86, 87, 88, 89, 90, 91, 92, 275, 346, + 276, 277, 347, 348, 349, 350, 286, 93, 94, 95, + 351, 96, 97, 98, 287, 288, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 350, 2, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 0, - 3, 293, 294, 295, 296, 297, 298, 299, 300, 351, - 352, 276, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 4, - 353, 354, 355, 356, 357, 5, 358, 359, 360, 361, - 277, 362, 363, 364, 365, 366, 367, 287, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 6, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 7, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - 8, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 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, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498 + 113, 114, 115, 116, 117, 118, 119, 120, 352, 353, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 2, + 354, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 3, 278, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 4, + 279, 364, 365, 366, 367, 5, 368, 289, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 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, 6, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 7, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 8, 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, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503 }; static const yytype_int16 yycheck[] = @@ -1228,14 +1233,15 @@ static const yytype_int16 yycheck[] = 41, 42, 10, 10, 10, 10, 39, 99, 100, 101, 10, 103, 104, 105, 47, 48, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 10, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 140, -1, - 11, 91, 92, 93, 94, 95, 96, 97, 98, 10, - 10, 102, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 40, - 10, 10, 10, 10, 10, 46, 10, 10, 10, 10, - 131, 10, 10, 10, 10, 10, 10, 130, 142, 143, + 122, 123, 124, 125, 126, 127, 128, 129, 10, 10, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, + 10, 91, 92, 93, 94, 95, 96, 97, 98, -1, + 11, 102, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, + 131, 10, 10, 10, 10, 46, 10, 130, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 90, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1248,17 +1254,16 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 172, 0, 11, 40, 46, 90, 106, 141, 173, - 174, 177, 180, 316, 327, 342, 175, 178, 181, 317, - 328, 343, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 173, 0, 11, 40, 46, 90, 106, 141, 174, + 175, 178, 181, 318, 329, 344, 176, 179, 182, 319, + 330, 345, 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, 43, 44, 45, 49, 50, 51, 52, 53, 54, 55, 56, @@ -1270,7 +1275,7 @@ static const yytype_uint16 yystos[] = 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 176, 183, 184, + 164, 165, 166, 167, 168, 169, 170, 171, 177, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, @@ -1283,13 +1288,13 @@ static const yytype_uint16 yystos[] = 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, 346, 39, 41, 42, 102, 131, 179, 307, - 308, 309, 310, 311, 39, 47, 48, 130, 182, 312, - 313, 314, 315, 91, 92, 93, 94, 95, 96, 97, - 98, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 107, 344, 345, 10, 10, + 305, 306, 307, 308, 348, 39, 41, 42, 102, 131, + 180, 309, 310, 311, 312, 313, 39, 47, 48, 130, + 183, 314, 315, 316, 317, 91, 92, 93, 94, 95, + 96, 97, 98, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 107, 346, 347, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1305,28 +1310,29 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 171, 172, 172, 173, 173, 173, 173, 173, 173, - 174, 175, 175, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 178, - 178, 179, 179, 179, 179, 179, 180, 181, 181, 182, - 182, 182, 182, 183, 184, 185, 186, 187, 188, 189, + 0, 172, 173, 173, 174, 174, 174, 174, 174, 174, + 175, 176, 176, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, + 179, 179, 180, 180, 180, 180, 180, 181, 182, 182, + 183, 183, 183, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, @@ -1339,12 +1345,12 @@ static const yytype_uint16 yyr1[] = 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, 317, 318, - 318, 318, 318, 318, 318, 318, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 328, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 343, 344, 345, 346 + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 319, 320, 320, 320, 320, 320, 320, 320, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 330, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 345, 346, 347, 348 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1363,27 +1369,27 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, - 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 3, 4, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 2, 2 }; @@ -2064,11 +2070,11 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2068 "util/configparser.c" /* yacc.c:1646 */ +#line 2074 "util/configparser.c" /* yacc.c:1646 */ break; - case 138: -#line 201 "./util/configparser.y" /* yacc.c:1646 */ + case 139: +#line 202 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2079,11 +2085,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2083 "util/configparser.c" /* yacc.c:1646 */ +#line 2089 "util/configparser.c" /* yacc.c:1646 */ break; - case 146: -#line 217 "./util/configparser.y" /* yacc.c:1646 */ + case 147: +#line 218 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2094,11 +2100,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2098 "util/configparser.c" /* yacc.c:1646 */ +#line 2104 "util/configparser.c" /* yacc.c:1646 */ break; - case 153: -#line 233 "./util/configparser.y" /* yacc.c:1646 */ + case 154: +#line 234 "./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) @@ -2106,11 +2112,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2110 "util/configparser.c" /* yacc.c:1646 */ +#line 2116 "util/configparser.c" /* yacc.c:1646 */ break; - case 154: -#line 242 "./util/configparser.y" /* yacc.c:1646 */ + case 155: +#line 243 "./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) @@ -2118,11 +2124,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2122 "util/configparser.c" /* yacc.c:1646 */ +#line 2128 "util/configparser.c" /* yacc.c:1646 */ break; - case 155: -#line 251 "./util/configparser.y" /* yacc.c:1646 */ + case 156: +#line 252 "./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) @@ -2132,11 +2138,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2136 "util/configparser.c" /* yacc.c:1646 */ +#line 2142 "util/configparser.c" /* yacc.c:1646 */ break; - case 156: -#line 262 "./util/configparser.y" /* yacc.c:1646 */ + case 157: +#line 263 "./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) @@ -2144,11 +2150,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2148 "util/configparser.c" /* yacc.c:1646 */ +#line 2154 "util/configparser.c" /* yacc.c:1646 */ break; - case 157: -#line 271 "./util/configparser.y" /* yacc.c:1646 */ + case 158: +#line 272 "./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) @@ -2156,11 +2162,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2160 "util/configparser.c" /* yacc.c:1646 */ +#line 2166 "util/configparser.c" /* yacc.c:1646 */ break; - case 158: -#line 280 "./util/configparser.y" /* yacc.c:1646 */ + case 159: +#line 281 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2168,11 +2174,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2172 "util/configparser.c" /* yacc.c:1646 */ +#line 2178 "util/configparser.c" /* yacc.c:1646 */ break; - case 159: -#line 289 "./util/configparser.y" /* yacc.c:1646 */ + case 160: +#line 290 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2184,11 +2190,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2188 "util/configparser.c" /* yacc.c:1646 */ +#line 2194 "util/configparser.c" /* yacc.c:1646 */ break; - case 160: -#line 302 "./util/configparser.y" /* yacc.c:1646 */ + case 161: +#line 303 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2202,11 +2208,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2206 "util/configparser.c" /* yacc.c:1646 */ +#line 2212 "util/configparser.c" /* yacc.c:1646 */ break; - case 161: -#line 317 "./util/configparser.y" /* yacc.c:1646 */ + case 162: +#line 318 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2214,11 +2220,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2218 "util/configparser.c" /* yacc.c:1646 */ +#line 2224 "util/configparser.c" /* yacc.c:1646 */ break; - case 162: -#line 326 "./util/configparser.y" /* yacc.c:1646 */ + case 163: +#line 327 "./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, @@ -2226,11 +2232,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2230 "util/configparser.c" /* yacc.c:1646 */ +#line 2236 "util/configparser.c" /* yacc.c:1646 */ break; - case 163: -#line 335 "./util/configparser.y" /* yacc.c:1646 */ + case 164: +#line 336 "./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, @@ -2238,11 +2244,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2242 "util/configparser.c" /* yacc.c:1646 */ +#line 2248 "util/configparser.c" /* yacc.c:1646 */ break; - case 164: -#line 344 "./util/configparser.y" /* yacc.c:1646 */ + case 165: +#line 345 "./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) @@ -2250,11 +2256,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2254 "util/configparser.c" /* yacc.c:1646 */ +#line 2260 "util/configparser.c" /* yacc.c:1646 */ break; - case 165: -#line 353 "./util/configparser.y" /* yacc.c:1646 */ + case 166: +#line 354 "./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) @@ -2262,11 +2268,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2266 "util/configparser.c" /* yacc.c:1646 */ +#line 2272 "util/configparser.c" /* yacc.c:1646 */ break; - case 166: -#line 362 "./util/configparser.y" /* yacc.c:1646 */ + case 167: +#line 363 "./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) @@ -2274,11 +2280,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2278 "util/configparser.c" /* yacc.c:1646 */ +#line 2284 "util/configparser.c" /* yacc.c:1646 */ break; - case 167: -#line 371 "./util/configparser.y" /* yacc.c:1646 */ + case 168: +#line 372 "./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) @@ -2286,11 +2292,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2290 "util/configparser.c" /* yacc.c:1646 */ +#line 2296 "util/configparser.c" /* yacc.c:1646 */ break; - case 168: -#line 380 "./util/configparser.y" /* yacc.c:1646 */ + case 169: +#line 381 "./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) @@ -2298,11 +2304,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2302 "util/configparser.c" /* yacc.c:1646 */ +#line 2308 "util/configparser.c" /* yacc.c:1646 */ break; - case 169: -#line 389 "./util/configparser.y" /* yacc.c:1646 */ + case 170: +#line 390 "./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) @@ -2310,11 +2316,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2314 "util/configparser.c" /* yacc.c:1646 */ +#line 2320 "util/configparser.c" /* yacc.c:1646 */ break; - case 170: -#line 398 "./util/configparser.y" /* yacc.c:1646 */ + case 171: +#line 399 "./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) @@ -2322,11 +2328,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2326 "util/configparser.c" /* yacc.c:1646 */ +#line 2332 "util/configparser.c" /* yacc.c:1646 */ break; - case 171: -#line 407 "./util/configparser.y" /* yacc.c:1646 */ + case 172: +#line 408 "./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) @@ -2334,11 +2340,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2338 "util/configparser.c" /* yacc.c:1646 */ +#line 2344 "util/configparser.c" /* yacc.c:1646 */ break; - case 172: -#line 416 "./util/configparser.y" /* yacc.c:1646 */ + case 173: +#line 417 "./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) @@ -2346,11 +2352,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2350 "util/configparser.c" /* yacc.c:1646 */ +#line 2356 "util/configparser.c" /* yacc.c:1646 */ break; - case 173: -#line 425 "./util/configparser.y" /* yacc.c:1646 */ + case 174: +#line 426 "./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) @@ -2358,11 +2364,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2362 "util/configparser.c" /* yacc.c:1646 */ +#line 2368 "util/configparser.c" /* yacc.c:1646 */ break; - case 174: -#line 434 "./util/configparser.y" /* yacc.c:1646 */ + case 175: +#line 435 "./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) @@ -2370,31 +2376,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2374 "util/configparser.c" /* yacc.c:1646 */ +#line 2380 "util/configparser.c" /* yacc.c:1646 */ break; - case 175: -#line 443 "./util/configparser.y" /* yacc.c:1646 */ + case 176: +#line 444 "./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 2384 "util/configparser.c" /* yacc.c:1646 */ +#line 2390 "util/configparser.c" /* yacc.c:1646 */ break; - case 176: -#line 450 "./util/configparser.y" /* yacc.c:1646 */ + case 177: +#line 451 "./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 2394 "util/configparser.c" /* yacc.c:1646 */ +#line 2400 "util/configparser.c" /* yacc.c:1646 */ break; - case 177: -#line 457 "./util/configparser.y" /* yacc.c:1646 */ + case 178: +#line 458 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2402,11 +2408,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2406 "util/configparser.c" /* yacc.c:1646 */ +#line 2412 "util/configparser.c" /* yacc.c:1646 */ break; - case 178: -#line 466 "./util/configparser.y" /* yacc.c:1646 */ + case 179: +#line 467 "./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) @@ -2414,11 +2420,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2418 "util/configparser.c" /* yacc.c:1646 */ +#line 2424 "util/configparser.c" /* yacc.c:1646 */ break; - case 179: -#line 475 "./util/configparser.y" /* yacc.c:1646 */ + case 180: +#line 476 "./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) @@ -2431,11 +2437,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2435 "util/configparser.c" /* yacc.c:1646 */ +#line 2441 "util/configparser.c" /* yacc.c:1646 */ break; - case 180: -#line 489 "./util/configparser.y" /* yacc.c:1646 */ + case 181: +#line 490 "./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) @@ -2443,11 +2449,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2447 "util/configparser.c" /* yacc.c:1646 */ +#line 2453 "util/configparser.c" /* yacc.c:1646 */ break; - case 181: -#line 498 "./util/configparser.y" /* yacc.c:1646 */ + case 182: +#line 499 "./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) @@ -2455,145 +2461,145 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2459 "util/configparser.c" /* yacc.c:1646 */ +#line 2465 "util/configparser.c" /* yacc.c:1646 */ break; - case 182: -#line 507 "./util/configparser.y" /* yacc.c:1646 */ + case 183: +#line 508 "./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 2469 "util/configparser.c" /* yacc.c:1646 */ +#line 2475 "util/configparser.c" /* yacc.c:1646 */ break; - case 183: -#line 514 "./util/configparser.y" /* yacc.c:1646 */ + case 184: +#line 515 "./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 2479 "util/configparser.c" /* yacc.c:1646 */ +#line 2485 "util/configparser.c" /* yacc.c:1646 */ break; - case 184: -#line 521 "./util/configparser.y" /* yacc.c:1646 */ + case 185: +#line 522 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); cfg_parser->cfg->directory = (yyvsp[0].str); } -#line 2489 "util/configparser.c" /* yacc.c:1646 */ +#line 2495 "util/configparser.c" /* yacc.c:1646 */ break; - case 185: -#line 528 "./util/configparser.y" /* yacc.c:1646 */ + case 186: +#line 529 "./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 2500 "util/configparser.c" /* yacc.c:1646 */ +#line 2506 "util/configparser.c" /* yacc.c:1646 */ break; - case 186: -#line 536 "./util/configparser.y" /* yacc.c:1646 */ + case 187: +#line 537 "./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 2510 "util/configparser.c" /* yacc.c:1646 */ +#line 2516 "util/configparser.c" /* yacc.c:1646 */ break; - case 187: -#line 543 "./util/configparser.y" /* yacc.c:1646 */ + case 188: +#line 544 "./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 2520 "util/configparser.c" /* yacc.c:1646 */ +#line 2526 "util/configparser.c" /* yacc.c:1646 */ break; - case 188: -#line 550 "./util/configparser.y" /* yacc.c:1646 */ + case 189: +#line 551 "./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 2530 "util/configparser.c" /* yacc.c:1646 */ +#line 2536 "util/configparser.c" /* yacc.c:1646 */ break; - case 189: -#line 557 "./util/configparser.y" /* yacc.c:1646 */ + case 190: +#line 558 "./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 2540 "util/configparser.c" /* yacc.c:1646 */ +#line 2546 "util/configparser.c" /* yacc.c:1646 */ break; - case 190: -#line 564 "./util/configparser.y" /* yacc.c:1646 */ + case 191: +#line 565 "./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 2551 "util/configparser.c" /* yacc.c:1646 */ +#line 2557 "util/configparser.c" /* yacc.c:1646 */ break; - case 191: -#line 572 "./util/configparser.y" /* yacc.c:1646 */ + case 192: +#line 573 "./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 2562 "util/configparser.c" /* yacc.c:1646 */ +#line 2568 "util/configparser.c" /* yacc.c:1646 */ break; - case 192: -#line 580 "./util/configparser.y" /* yacc.c:1646 */ + case 193: +#line 581 "./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 2573 "util/configparser.c" /* yacc.c:1646 */ +#line 2579 "util/configparser.c" /* yacc.c:1646 */ break; - case 193: -#line 588 "./util/configparser.y" /* yacc.c:1646 */ + case 194: +#line 589 "./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 2583 "util/configparser.c" /* yacc.c:1646 */ +#line 2589 "util/configparser.c" /* yacc.c:1646 */ break; - case 194: -#line 595 "./util/configparser.y" /* yacc.c:1646 */ + case 195: +#line 596 "./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 2593 "util/configparser.c" /* yacc.c:1646 */ +#line 2599 "util/configparser.c" /* yacc.c:1646 */ break; - case 195: -#line 602 "./util/configparser.y" /* yacc.c:1646 */ + case 196: +#line 603 "./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) @@ -2601,11 +2607,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2605 "util/configparser.c" /* yacc.c:1646 */ +#line 2611 "util/configparser.c" /* yacc.c:1646 */ break; - case 196: -#line 611 "./util/configparser.y" /* yacc.c:1646 */ + case 197: +#line 612 "./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) @@ -2613,53 +2619,53 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2617 "util/configparser.c" /* yacc.c:1646 */ +#line 2623 "util/configparser.c" /* yacc.c:1646 */ break; - case 197: -#line 620 "./util/configparser.y" /* yacc.c:1646 */ + case 198: +#line 621 "./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 2627 "util/configparser.c" /* yacc.c:1646 */ +#line 2633 "util/configparser.c" /* yacc.c:1646 */ break; - case 198: -#line 627 "./util/configparser.y" /* yacc.c:1646 */ + case 199: +#line 628 "./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 2637 "util/configparser.c" /* yacc.c:1646 */ +#line 2643 "util/configparser.c" /* yacc.c:1646 */ break; - case 199: -#line 634 "./util/configparser.y" /* yacc.c:1646 */ + case 200: +#line 635 "./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 2648 "util/configparser.c" /* yacc.c:1646 */ +#line 2654 "util/configparser.c" /* yacc.c:1646 */ break; - case 200: -#line 642 "./util/configparser.y" /* yacc.c:1646 */ + case 201: +#line 643 "./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 2659 "util/configparser.c" /* yacc.c:1646 */ +#line 2665 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: -#line 650 "./util/configparser.y" /* yacc.c:1646 */ + case 202: +#line 651 "./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) @@ -2668,11 +2674,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2672 "util/configparser.c" /* yacc.c:1646 */ +#line 2678 "util/configparser.c" /* yacc.c:1646 */ break; - case 202: -#line 660 "./util/configparser.y" /* yacc.c:1646 */ + case 203: +#line 661 "./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) @@ -2681,11 +2687,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2685 "util/configparser.c" /* yacc.c:1646 */ +#line 2691 "util/configparser.c" /* yacc.c:1646 */ break; - case 203: -#line 670 "./util/configparser.y" /* yacc.c:1646 */ + case 204: +#line 671 "./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) @@ -2694,11 +2700,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2698 "util/configparser.c" /* yacc.c:1646 */ +#line 2704 "util/configparser.c" /* yacc.c:1646 */ break; - case 204: -#line 680 "./util/configparser.y" /* yacc.c:1646 */ + case 205: +#line 681 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2710,11 +2716,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2714 "util/configparser.c" /* yacc.c:1646 */ +#line 2720 "util/configparser.c" /* yacc.c:1646 */ break; - case 205: -#line 693 "./util/configparser.y" /* yacc.c:1646 */ + case 206: +#line 694 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2724,22 +2730,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2728 "util/configparser.c" /* yacc.c:1646 */ +#line 2734 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: -#line 704 "./util/configparser.y" /* yacc.c:1646 */ + case 207: +#line 705 "./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 2739 "util/configparser.c" /* yacc.c:1646 */ +#line 2745 "util/configparser.c" /* yacc.c:1646 */ break; - case 207: -#line 712 "./util/configparser.y" /* yacc.c:1646 */ + case 208: +#line 713 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2751,11 +2757,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2755 "util/configparser.c" /* yacc.c:1646 */ +#line 2761 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: -#line 725 "./util/configparser.y" /* yacc.c:1646 */ + case 209: +#line 726 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2763,11 +2769,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2767 "util/configparser.c" /* yacc.c:1646 */ +#line 2773 "util/configparser.c" /* yacc.c:1646 */ break; - case 209: -#line 734 "./util/configparser.y" /* yacc.c:1646 */ + case 210: +#line 735 "./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) @@ -2775,11 +2781,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2779 "util/configparser.c" /* yacc.c:1646 */ +#line 2785 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 743 "./util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 744 "./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) @@ -2787,11 +2793,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2791 "util/configparser.c" /* yacc.c:1646 */ +#line 2797 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: -#line 752 "./util/configparser.y" /* yacc.c:1646 */ + case 212: +#line 753 "./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) @@ -2800,11 +2806,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2804 "util/configparser.c" /* yacc.c:1646 */ +#line 2810 "util/configparser.c" /* yacc.c:1646 */ break; - case 212: -#line 762 "./util/configparser.y" /* yacc.c:1646 */ + case 213: +#line 763 "./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) @@ -2813,22 +2819,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2817 "util/configparser.c" /* yacc.c:1646 */ +#line 2823 "util/configparser.c" /* yacc.c:1646 */ break; - case 213: -#line 772 "./util/configparser.y" /* yacc.c:1646 */ + case 214: +#line 773 "./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 2828 "util/configparser.c" /* yacc.c:1646 */ +#line 2834 "util/configparser.c" /* yacc.c:1646 */ break; - case 214: -#line 780 "./util/configparser.y" /* yacc.c:1646 */ + case 215: +#line 781 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2840,11 +2846,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2844 "util/configparser.c" /* yacc.c:1646 */ +#line 2850 "util/configparser.c" /* yacc.c:1646 */ break; - case 215: -#line 793 "./util/configparser.y" /* yacc.c:1646 */ + case 216: +#line 794 "./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) @@ -2852,22 +2858,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2856 "util/configparser.c" /* yacc.c:1646 */ +#line 2862 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 802 "./util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 803 "./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 2867 "util/configparser.c" /* yacc.c:1646 */ +#line 2873 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 810 "./util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 811 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2875,22 +2881,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2879 "util/configparser.c" /* yacc.c:1646 */ +#line 2885 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 819 "./util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 820 "./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 2890 "util/configparser.c" /* yacc.c:1646 */ +#line 2896 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 827 "./util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 828 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2902,11 +2908,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 2906 "util/configparser.c" /* yacc.c:1646 */ +#line 2912 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 840 "./util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 841 "./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) @@ -2914,21 +2920,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2918 "util/configparser.c" /* yacc.c:1646 */ +#line 2924 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 849 "./util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 850 "./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 2928 "util/configparser.c" /* yacc.c:1646 */ +#line 2934 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 856 "./util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 857 "./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) @@ -2937,11 +2943,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2941 "util/configparser.c" /* yacc.c:1646 */ +#line 2947 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 866 "./util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 867 "./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) @@ -2950,11 +2956,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2954 "util/configparser.c" /* yacc.c:1646 */ +#line 2960 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 876 "./util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 877 "./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) @@ -2963,11 +2969,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2967 "util/configparser.c" /* yacc.c:1646 */ +#line 2973 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 886 "./util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 887 "./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) @@ -2976,11 +2982,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2980 "util/configparser.c" /* yacc.c:1646 */ +#line 2986 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 896 "./util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 897 "./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) @@ -2989,11 +2995,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2993 "util/configparser.c" /* yacc.c:1646 */ +#line 2999 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 906 "./util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 907 "./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) @@ -3002,11 +3008,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3006 "util/configparser.c" /* yacc.c:1646 */ +#line 3012 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 916 "./util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 917 "./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) @@ -3015,11 +3021,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3019 "util/configparser.c" /* yacc.c:1646 */ +#line 3025 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 926 "./util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 927 "./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) @@ -3028,41 +3034,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3032 "util/configparser.c" /* yacc.c:1646 */ +#line 3038 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 936 "./util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 937 "./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 3042 "util/configparser.c" /* yacc.c:1646 */ +#line 3048 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 943 "./util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 944 "./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 3052 "util/configparser.c" /* yacc.c:1646 */ +#line 3058 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 950 "./util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 951 "./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 3062 "util/configparser.c" /* yacc.c:1646 */ +#line 3068 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 957 "./util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 958 "./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) @@ -3070,11 +3076,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3074 "util/configparser.c" /* yacc.c:1646 */ +#line 3080 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 966 "./util/configparser.y" /* yacc.c:1646 */ + case 235: +#line 967 "./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) @@ -3082,11 +3088,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3086 "util/configparser.c" /* yacc.c:1646 */ +#line 3092 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 975 "./util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 976 "./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) @@ -3094,21 +3100,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3098 "util/configparser.c" /* yacc.c:1646 */ +#line 3104 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 984 "./util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 985 "./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 3108 "util/configparser.c" /* yacc.c:1646 */ +#line 3114 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 991 "./util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 992 "./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) @@ -3117,11 +3123,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3121 "util/configparser.c" /* yacc.c:1646 */ +#line 3127 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 1001 "./util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 1002 "./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 && @@ -3137,21 +3143,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3141 "util/configparser.c" /* yacc.c:1646 */ +#line 3147 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 1018 "./util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 1019 "./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 3151 "util/configparser.c" /* yacc.c:1646 */ +#line 3157 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 1025 "./util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 1026 "./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) { @@ -3168,11 +3174,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3172 "util/configparser.c" /* yacc.c:1646 */ +#line 3178 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 1043 "./util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 1044 "./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) { @@ -3184,11 +3190,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3188 "util/configparser.c" /* yacc.c:1646 */ +#line 3194 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 1056 "./util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 1057 "./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) { @@ -3200,11 +3206,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3204 "util/configparser.c" /* yacc.c:1646 */ +#line 3210 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 1069 "./util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 1070 "./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) @@ -3212,11 +3218,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3216 "util/configparser.c" /* yacc.c:1646 */ +#line 3222 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 1078 "./util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 1079 "./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) @@ -3224,11 +3230,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3228 "util/configparser.c" /* yacc.c:1646 */ +#line 3234 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 1087 "./util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 1088 "./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) @@ -3236,11 +3242,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3240 "util/configparser.c" /* yacc.c:1646 */ +#line 3246 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 1096 "./util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 1097 "./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) @@ -3248,11 +3254,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3252 "util/configparser.c" /* yacc.c:1646 */ +#line 3258 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 1105 "./util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 1106 "./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) @@ -3261,11 +3267,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3265 "util/configparser.c" /* yacc.c:1646 */ +#line 3271 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 1115 "./util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 1116 "./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) @@ -3274,11 +3280,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3278 "util/configparser.c" /* yacc.c:1646 */ +#line 3284 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 1125 "./util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 1126 "./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) @@ -3286,11 +3292,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3290 "util/configparser.c" /* yacc.c:1646 */ +#line 3296 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 1134 "./util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 1135 "./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) @@ -3298,21 +3304,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3302 "util/configparser.c" /* yacc.c:1646 */ +#line 3308 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 1143 "./util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 1144 "./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 3312 "util/configparser.c" /* yacc.c:1646 */ +#line 3318 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 1150 "./util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 1151 "./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) @@ -3320,11 +3326,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3324 "util/configparser.c" /* yacc.c:1646 */ +#line 3330 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 1159 "./util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 1160 "./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) @@ -3332,11 +3338,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3336 "util/configparser.c" /* yacc.c:1646 */ +#line 3342 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 1168 "./util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 1169 "./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) @@ -3344,11 +3350,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3348 "util/configparser.c" /* yacc.c:1646 */ +#line 3354 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 1177 "./util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 1178 "./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) @@ -3357,22 +3363,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3361 "util/configparser.c" /* yacc.c:1646 */ +#line 3367 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 1186 "./util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 1187 "./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 3372 "util/configparser.c" /* yacc.c:1646 */ +#line 3378 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 1194 "./util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 1195 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3384,22 +3390,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3388 "util/configparser.c" /* yacc.c:1646 */ +#line 3394 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 1207 "./util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 1208 "./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 3399 "util/configparser.c" /* yacc.c:1646 */ +#line 3405 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 1215 "./util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 1216 "./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 && @@ -3422,21 +3428,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 3426 "util/configparser.c" /* yacc.c:1646 */ +#line 3432 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 1239 "./util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 1240 "./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 3436 "util/configparser.c" /* yacc.c:1646 */ +#line 3442 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 1246 "./util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 1247 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -3450,11 +3456,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 3454 "util/configparser.c" /* yacc.c:1646 */ +#line 3460 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 1261 "./util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 1262 "./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) @@ -3463,11 +3469,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3467 "util/configparser.c" /* yacc.c:1646 */ +#line 3473 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 1271 "./util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 1272 "./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) @@ -3476,31 +3482,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3480 "util/configparser.c" /* yacc.c:1646 */ +#line 3486 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 1281 "./util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 1282 "./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 3490 "util/configparser.c" /* yacc.c:1646 */ +#line 3496 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 1288 "./util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 1289 "./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 3500 "util/configparser.c" /* yacc.c:1646 */ +#line 3506 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 1295 "./util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 1296 "./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) @@ -3508,11 +3514,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3512 "util/configparser.c" /* yacc.c:1646 */ +#line 3518 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 1304 "./util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 1305 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -3525,11 +3531,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3529 "util/configparser.c" /* yacc.c:1646 */ +#line 3535 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 1318 "./util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 1319 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3547,11 +3553,11 @@ yyreduce: } } } -#line 3551 "util/configparser.c" /* yacc.c:1646 */ +#line 3557 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 1337 "./util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 1338 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -3569,11 +3575,26 @@ yyreduce: } } } -#line 3573 "util/configparser.c" /* yacc.c:1646 */ +#line 3579 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 1356 "./util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 1357 "./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, + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { + yyerror("out of memory"); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); + } + } +#line 3594 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 272: +#line 1369 "./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) @@ -3581,22 +3602,22 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3585 "util/configparser.c" /* yacc.c:1646 */ +#line 3606 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 1365 "./util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 1378 "./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 3596 "util/configparser.c" /* yacc.c:1646 */ +#line 3617 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 1373 "./util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 1386 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3608,11 +3629,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3612 "util/configparser.c" /* yacc.c:1646 */ +#line 3633 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 1386 "./util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 1399 "./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) { @@ -3624,11 +3645,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 3628 "util/configparser.c" /* yacc.c:1646 */ +#line 3649 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 1399 "./util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 1412 "./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) { @@ -3640,11 +3661,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 3644 "util/configparser.c" /* yacc.c:1646 */ +#line 3665 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 1412 "./util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 1425 "./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) @@ -3652,11 +3673,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3656 "util/configparser.c" /* yacc.c:1646 */ +#line 3677 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 1421 "./util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 1434 "./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) @@ -3665,11 +3686,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3669 "util/configparser.c" /* yacc.c:1646 */ +#line 3690 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 1431 "./util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 1444 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -3678,31 +3699,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 3682 "util/configparser.c" /* yacc.c:1646 */ +#line 3703 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 1441 "./util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 1454 "./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 3692 "util/configparser.c" /* yacc.c:1646 */ +#line 3713 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 1448 "./util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 1461 "./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 3702 "util/configparser.c" /* yacc.c:1646 */ +#line 3723 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 1455 "./util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 1468 "./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) @@ -3710,11 +3731,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3714 "util/configparser.c" /* yacc.c:1646 */ +#line 3735 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 1464 "./util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 1477 "./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) @@ -3723,11 +3744,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3727 "util/configparser.c" /* yacc.c:1646 */ +#line 3748 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 1474 "./util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 1487 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -3736,31 +3757,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 3740 "util/configparser.c" /* yacc.c:1646 */ +#line 3761 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 1484 "./util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 1497 "./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 3750 "util/configparser.c" /* yacc.c:1646 */ +#line 3771 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 1491 "./util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 1504 "./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 3760 "util/configparser.c" /* yacc.c:1646 */ +#line 3781 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 1498 "./util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1511 "./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) @@ -3768,19 +3789,19 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3772 "util/configparser.c" /* yacc.c:1646 */ +#line 3793 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1507 "./util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1520 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 3780 "util/configparser.c" /* yacc.c:1646 */ +#line 3801 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1518 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1531 "./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) @@ -3789,11 +3810,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3793 "util/configparser.c" /* yacc.c:1646 */ +#line 3814 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1528 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1541 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3801,21 +3822,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3805 "util/configparser.c" /* yacc.c:1646 */ +#line 3826 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1537 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1550 "./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 3815 "util/configparser.c" /* yacc.c:1646 */ +#line 3836 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1544 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1557 "./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) @@ -3824,122 +3845,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3828 "util/configparser.c" /* yacc.c:1646 */ +#line 3849 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1554 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1567 "./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 3838 "util/configparser.c" /* yacc.c:1646 */ +#line 3859 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1561 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1574 "./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 3848 "util/configparser.c" /* yacc.c:1646 */ +#line 3869 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1568 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1581 "./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 3858 "util/configparser.c" /* yacc.c:1646 */ +#line 3879 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1575 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1588 "./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 3868 "util/configparser.c" /* yacc.c:1646 */ +#line 3889 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1582 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1595 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 3876 "util/configparser.c" /* yacc.c:1646 */ +#line 3897 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1599 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1612 "./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 3887 "util/configparser.c" /* yacc.c:1646 */ +#line 3908 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1607 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1620 "./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 3897 "util/configparser.c" /* yacc.c:1646 */ +#line 3918 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1614 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1627 "./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 3908 "util/configparser.c" /* yacc.c:1646 */ +#line 3929 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1622 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1635 "./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 3919 "util/configparser.c" /* yacc.c:1646 */ +#line 3940 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1630 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1643 "./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 3929 "util/configparser.c" /* yacc.c:1646 */ +#line 3950 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1637 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1650 "./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 3939 "util/configparser.c" /* yacc.c:1646 */ +#line 3960 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1644 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1657 "./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) @@ -3947,11 +3968,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3951 "util/configparser.c" /* yacc.c:1646 */ +#line 3972 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1653 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1666 "./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) @@ -3959,11 +3980,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3963 "util/configparser.c" /* yacc.c:1646 */ +#line 3984 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1662 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1675 "./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) @@ -3971,11 +3992,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3975 "util/configparser.c" /* yacc.c:1646 */ +#line 3996 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1671 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1684 "./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) @@ -3983,11 +4004,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3987 "util/configparser.c" /* yacc.c:1646 */ +#line 4008 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1680 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1693 "./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) @@ -3995,11 +4016,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 3999 "util/configparser.c" /* yacc.c:1646 */ +#line 4020 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1689 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1702 "./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) @@ -4007,29 +4028,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4011 "util/configparser.c" /* yacc.c:1646 */ +#line 4032 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1698 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1711 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 4019 "util/configparser.c" /* yacc.c:1646 */ +#line 4040 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1707 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1720 "./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 4029 "util/configparser.c" /* yacc.c:1646 */ +#line 4050 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1713 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1726 "./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) @@ -4038,11 +4059,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4042 "util/configparser.c" /* yacc.c:1646 */ +#line 4063 "util/configparser.c" /* yacc.c:1646 */ break; -#line 4046 "util/configparser.c" /* yacc.c:1646 */ +#line 4067 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4270,7 +4291,7 @@ yyreturn: #endif return yyresult; } -#line 1721 "./util/configparser.y" /* yacc.c:1906 */ +#line 1734 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index ef1282859..53512fa5a 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -212,7 +212,8 @@ extern int yydebug; VAR_IP_FREEBIND = 422, VAR_DEFINE_TAG = 423, VAR_LOCAL_ZONE_TAG = 424, - VAR_ACCESS_CONTROL_TAG = 425 + VAR_ACCESS_CONTROL_TAG = 425, + VAR_LOCAL_ZONE_OVERRIDE = 426 }; #endif /* Tokens. */ @@ -384,6 +385,7 @@ extern int yydebug; #define VAR_DEFINE_TAG 423 #define VAR_LOCAL_ZONE_TAG 424 #define VAR_ACCESS_CONTROL_TAG 425 +#define VAR_LOCAL_ZONE_OVERRIDE 426 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -394,7 +396,7 @@ union YYSTYPE char* str; -#line 398 "util/configparser.h" /* yacc.c:1909 */ +#line 400 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index adaf01f84..92e159be7 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -126,7 +126,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN VAR_RATELIMIT_FACTOR %token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN %token VAR_QNAME_MINIMISATION VAR_IP_FREEBIND VAR_DEFINE_TAG VAR_LOCAL_ZONE_TAG -%token VAR_ACCESS_CONTROL_TAG +%token VAR_ACCESS_CONTROL_TAG VAR_LOCAL_ZONE_OVERRIDE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -195,7 +195,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_caps_whitelist | server_cache_max_negative_ttl | server_permit_small_holddown | server_qname_minimisation | server_ip_freebind | server_define_tag | server_local_zone_tag | - server_disable_dnssec_lame_check | access_control_tag + server_disable_dnssec_lame_check | server_access_control_tag | + server_local_zone_override ; stubstart: VAR_STUB_ZONE { @@ -1333,7 +1334,7 @@ server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG } } ; -access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG +server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, $3, @@ -1352,6 +1353,18 @@ access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG } } ; +server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG + { + OUTYY(("P(server_local_zone_override:%s %s %s)\n", $2, $3, $4)); + if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, + $2, $3, $4)) { + yyerror("out of memory"); + free($2); + free($3); + free($4); + } + } + ; server_ratelimit: VAR_RATELIMIT STRING_ARG { OUTYY(("P(server_ratelimit:%s)\n", $2));