]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- log-identity: config option to set sys log identity, patch from
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 3 Nov 2016 08:51:40 +0000 (08:51 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 3 Nov 2016 08:51:40 +0000 (08:51 +0000)
  "Robin H. Johnson" <robbat2@gentoo.org>

git-svn-id: file:///svn/unbound/trunk@3917 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/unbound.c
doc/Changelog
doc/example.conf.in
doc/unbound.conf.5.in
util/config_file.c
util/config_file.h
util/configlexer.c
util/configlexer.lex
util/configparser.c
util/configparser.h
util/configparser.y

index 88fbb6f2ed2b2dd9357f26c0428fa1c41f2c04f6..d1fc6eb9e0e60d7a27e3d593020d9a98fc4250c7 100644 (file)
@@ -244,10 +244,21 @@ checkrlimits(struct config_file* cfg)
 #endif /* S_SPLINT_S */
 }
 
+/** set default logfile identity based on value from argv[0] at startup **/
+static void
+log_ident_set_fromdefault(struct config_file* cfg,
+       const char *log_default_identity)
+{
+       if(cfg->log_identity == NULL || cfg->log_identity[0] == 0)
+               log_ident_set(log_default_identity);
+       else
+               log_ident_set(cfg->log_identity);
+}
+
 /** set verbosity, check rlimits, cache settings */
 static void
 apply_settings(struct daemon* daemon, struct config_file* cfg, 
-       int cmdline_verbose, int debug_mode)
+       int cmdline_verbose, int debug_mode, const char* log_default_identity)
 {
        /* apply if they have changed */
        verbosity = cmdline_verbose + cfg->verbosity;
@@ -258,6 +269,7 @@ apply_settings(struct daemon* daemon, struct config_file* cfg,
        }
        daemon_apply_cfg(daemon, cfg);
        checkrlimits(cfg);
+       log_ident_set_fromdefault(cfg, log_default_identity);
 }
 
 #ifdef HAVE_KILL
@@ -587,9 +599,10 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode,
  * @param cmdline_verbose: verbosity resulting from commandline -v.
  *    These increase verbosity as specified in the config file.
  * @param debug_mode: if set, do not daemonize.
+ * @param log_default_identity: Default identity to report in logs
  */
 static void 
-run_daemon(const char* cfgfile, int cmdline_verbose, int debug_mode)
+run_daemon(const char* cfgfile, int cmdline_verbose, int debug_mode, const char* log_default_identity)
 {
        struct config_file* cfg = NULL;
        struct daemon* daemon = NULL;
@@ -611,7 +624,7 @@ run_daemon(const char* cfgfile, int cmdline_verbose, int debug_mode)
                                        cfgfile);
                        log_warn("Continuing with default config settings");
                }
-               apply_settings(daemon, cfg, cmdline_verbose, debug_mode);
+               apply_settings(daemon, cfg, cmdline_verbose, debug_mode, log_default_identity);
                if(!done_setup)
                        config_lookup_uid(cfg);
        
@@ -619,7 +632,7 @@ run_daemon(const char* cfgfile, int cmdline_verbose, int debug_mode)
                if(!daemon_open_shared_ports(daemon))
                        fatal_exit("could not open ports");
                if(!done_setup) { 
-                       perform_setup(daemon, cfg, debug_mode, &cfgfile); 
+                       perform_setup(daemon, cfg, debug_mode, &cfgfile);
                        done_setup = 1; 
                } else {
                        /* reopen log after HUP to facilitate log rotation */
@@ -666,6 +679,7 @@ main(int argc, char* argv[])
        int c;
        const char* cfgfile = CONFIGFILE;
        const char* winopt = NULL;
+       const char* log_ident_default;
        int cmdline_verbose = 0;
        int debug_mode = 0;
 #ifdef UB_ON_WINDOWS
@@ -678,7 +692,8 @@ main(int argc, char* argv[])
 #endif
 
        log_init(NULL, 0, NULL);
-       log_ident_set(strrchr(argv[0],'/')?strrchr(argv[0],'/')+1:argv[0]);
+       log_ident_default = strrchr(argv[0],'/')?strrchr(argv[0],'/')+1:argv[0];
+       log_ident_set(log_ident_default);
        /* parse the options */
        while( (c=getopt(argc, argv, "c:dhvw:")) != -1) {
                switch(c) {
@@ -711,7 +726,7 @@ main(int argc, char* argv[])
        if(winopt) {
 #ifdef UB_ON_WINDOWS
                wsvc_command_option(winopt, cfgfile, cmdline_verbose, 
-                       cmdline_cfg);
+                       cmdline_cfg, log_ident_default);
 #else
                fatal_exit("option not supported");
 #endif
@@ -722,7 +737,7 @@ main(int argc, char* argv[])
                return 1;
        }
 
-       run_daemon(cfgfile, cmdline_verbose, debug_mode);
+       run_daemon(cfgfile, cmdline_verbose, debug_mode, log_ident_default);
        log_init(NULL, 0, NULL); /* close logfile */
        return 0;
 }
index d787934d0b8ca5f5c0ced21d5b07695492ce98b9..d4088b2595b4dee21aaa084e231c4cf8946f170d 100644 (file)
@@ -1,5 +1,7 @@
 3 November 2016: Wouter
        - .gitattributes line for githubs code language display.
+       - log-identity: config option to set sys log identity, patch from
+         "Robin H. Johnson" <robbat2@gentoo.org>
 
 2 November 2016: Wouter
        - iana portlist update.
index 9c097aa9f20312e3337072f2edbf074be879ca67..2e4770140c2e11828f783cd7cd5d0c7d67c24973 100644 (file)
@@ -275,9 +275,13 @@ server:
        # logfile: ""
 
        # Log to syslog(3) if yes. The log facility LOG_DAEMON is used to
-       # log to, with identity "unbound". If yes, it overrides the logfile.
+       # log to. If yes, it overrides the logfile.
        # use-syslog: yes
 
+       # Log identity to report. if empty, defaults to the name of argv[0]
+       # (usually "unbound").
+       # log-identity: ""
+
        # print UTC timestamp in ascii to logfile, default is epoch in seconds.
        # log-time-ascii: no
 
index effb93d14ed2701b3c5ff213f328aa4c73c0b7bc..f32dbd8f1fe526aa4bf516e1ff6e2ea3a99d5412 100644 (file)
@@ -534,6 +534,13 @@ The log facility LOG_DAEMON is used, with identity "unbound".
 The logfile setting is overridden when use\-syslog is turned on.
 The default is to log to syslog.
 .TP
+.B log\-identity: \fI<string>
+If "" is given (default), then the name of the executable, usually "unbound"
+is used to report to the log.  Enter a string to override it
+with that, which is useful on systems that run more than one instance of
+unbound, with different configurations, so that the logs can be easily
+distinguished against.
+.TP
 .B log\-time\-ascii: \fI<yes or no>
 Sets logfile lines to use a timestamp in UTC ascii. Default is no, which
 prints the seconds since 1970 in brackets. No effect if using syslog, in
index 7c668ba7cfcce57f326e59eb4b2e03ffe8af00d1..5cdc9b5f45dec723ee09879fe9264728d9968fc2 100644 (file)
@@ -105,6 +105,7 @@ config_create(void)
        cfg->ssl_port = 853;
        cfg->ssl_upstream = 0;
        cfg->use_syslog = 1;
+       cfg->log_identity = NULL; /* changed later with argv[0] */
        cfg->log_time_ascii = 0;
        cfg->log_queries = 0;
 #ifndef USE_WINSOCK
@@ -370,6 +371,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
          log_set_time_asc(cfg->log_time_ascii); }
        else S_SIZET_NONZERO("max-udp-size:", max_udp_size)
        else S_YNO("use-syslog:", use_syslog)
+       else S_STR("log-identity:", log_identity)
        else S_YNO("extended-statistics:", stat_extended)
        else S_YNO("statistics-cumulative:", stat_cumulative)
        else S_YNO("do-ip4:", do_ip4)
@@ -680,6 +682,7 @@ config_get_option(struct config_file* cfg, const char* opt,
        else O_YNO(opt, "statistics-cumulative", stat_cumulative)
        else O_YNO(opt, "extended-statistics", stat_extended)
        else O_YNO(opt, "use-syslog", use_syslog)
+       else O_STR(opt, "log-identity", log_identity)
        else O_YNO(opt, "log-time-ascii", log_time_ascii)
        else O_DEC(opt, "num-threads", num_threads)
        else O_IFC(opt, "interface", num_ifs, ifs)
index 4499ac3dae14f19e04451715c36c27d9d1adf745..bf518d1f175fe10e9373e1cd4dc1a26697912c80 100644 (file)
@@ -229,6 +229,8 @@ struct config_file {
        int log_time_ascii;
        /** log queries with one line per query */
        int log_queries;
+       /** log identity to report */
+       char* log_identity;
 
        /** do not report identity (id.server, hostname.bind) */
        int hide_identity;
index a2475be5e61756aa0fa3d41c903522f514378313..412c34b78b1e4c380a20a446a950414970b1a111 100644 (file)
@@ -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 194
-#define YY_END_OF_BUFFER 195
+#define YY_NUM_RULES 195
+#define YY_END_OF_BUFFER 196
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -387,219 +387,220 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[1921] =
+static yyconst flex_int16_t yy_accept[1930] =
     {   0,
-        1,    1,  176,  176,  180,  180,  184,  184,  188,  188,
-        1,    1,  195,  192,    1,  174,  174,  193,    2,  193,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      176,  177,  177,  178,  193,  180,  181,  181,  182,  193,
-      187,  184,  185,  185,  186,  193,  188,  189,  189,  190,
-      193,  191,  175,    2,  179,  193,  191,  192,    0,    1,
-        2,    2,    2,    2,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  176,    0,
-      180,    0,  187,    0,  184,  188,    0,  191,    0,    2,
-        2,  191,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  191,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  191,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,   76,  192,
-      192,  192,  192,  192,  192,    8,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   85,  191,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  191,  192,  192,  192,  192,  192,
-       36,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  154,  192,   14,   15,  192,   18,   17,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  140,  192,  192,  192,  192,  192,  192,  192,  192,
-        3,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  191,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  183,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,   39,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-       40,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,   20,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,   93,  192,  183,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  109,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   92,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   74,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,   25,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,   37,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-       38,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,   27,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  168,  192,
-      192,  192,  192,  192,  192,  192,   31,  192,   32,  192,
-      192,  192,   77,  192,   78,  192,   75,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,    7,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  147,  192,  192,
-      192,  192,   95,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,   28,  192,  192,  192,
-
-      192,  192,  192,  123,  192,  122,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   16,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   41,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   80,   79,  192,  192,  192,  192,  192,  192,
-      192,  119,  192,  192,  192,  192,  192,  192,  192,   86,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,   59,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,   63,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   35,  192,  192,  192,  192,  192,  192,  192,
-      192,  121,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,    6,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  115,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  133,  192,  116,  192,  192,  145,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-
-       26,  192,  192,  192,  192,   82,  192,   83,   81,  192,
-      192,  192,  192,  192,  192,  192,   91,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  117,
-      192,  192,  192,  192,  192,  192,  144,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-       73,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,   33,  192,  192,   22,
-      192,  192,  192,   19,  192,  100,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-       48,   50,  192,  192,  192,  192,  192,  192,  192,  192,
-
-      192,  155,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,   84,  192,  192,  192,  192,
-      192,  192,   90,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,   94,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  139,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  108,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      104,  192,  110,  192,  192,  192,  192,  192,   89,  192,
-      192,   69,  192,  131,  192,  192,  192,  192,  192,  146,
-
-      192,  192,  192,  192,  192,  192,  192,  160,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  107,
-      192,  192,  192,  192,  192,   51,   52,  192,  192,   34,
-       58,  111,  192,  124,  192,  148,  120,  192,  192,   44,
-      192,  113,  192,  192,  192,  192,  192,    9,  192,  192,
-      192,   72,  192,  192,  192,  192,  170,  192,  130,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,   96,
-      159,  192,  192,  192,  192,  192,  192,  192,  192,  141,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  112,  192,  192,   43,   45,
-      192,  192,  192,  192,  192,  192,  192,   71,  192,  192,
-      192,  192,  169,  192,  192,  192,  192,  135,   23,   24,
-      192,  192,  192,  192,  192,  192,  192,   68,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      137,  134,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,   42,  192,  192,  192,  192,  192,  192,  192,   13,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-       12,  192,  192,   21,  192,  192,  192,  173,  192,   46,
-
-      192,  143,  136,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  103,  102,  192,  192,  192,  192,
-      138,  132,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,   53,  192,  192,  192,  142,  192,  192,  192,  192,
-      192,  192,  192,  192,   47,  192,  192,  192,   97,   99,
-      125,  192,  192,  192,  101,  192,  192,  149,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  156,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  126,  192,  192,  192,   29,  192,  192,  192,  192,
-
-        4,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  152,  192,  192,  192,  192,  192,  192,  192,
-      192,  158,  192,  192,  129,  192,  192,  192,  192,  192,
-      192,  192,   56,  192,   30,  153,  192,   11,  192,  192,
-      192,  192,  192,  192,  127,   60,  192,  192,  192,  106,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      157,   87,  192,  192,  192,  192,   62,   66,   61,  192,
-       54,  192,   10,  192,  192,  192,  171,  192,  192,  105,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,   67,   65,  192,   55,  192,  118,  192,
-
-      192,  128,  192,  192,  192,  192,   98,   49,  192,  192,
-      192,  192,  192,  192,  192,   88,   64,   57,  192,  172,
-      192,  192,  192,  151,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,   70,  192,  150,  167,  192,  192,  192,
-      192,  192,  192,    5,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  114,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  163,  192,  192,  192,  192,  192,
-
-      192,  192,  192,  192,  192,  192,  192,  192,  161,  192,
-      164,  165,  192,  192,  192,  192,  192,  162,  166,    0
+        1,    1,  177,  177,  181,  181,  185,  185,  189,  189,
+        1,    1,  196,  193,    1,  175,  175,  194,    2,  194,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      177,  178,  178,  179,  194,  181,  182,  182,  183,  194,
+      188,  185,  186,  186,  187,  194,  189,  190,  190,  191,
+      194,  192,  176,    2,  180,  194,  192,  193,    0,    1,
+        2,    2,    2,    2,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  177,    0,
+      181,    0,  188,    0,  185,  189,    0,  192,    0,    2,
+        2,  192,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  192,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  192,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   76,
+      193,  193,  193,  193,  193,  193,    8,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,   85,  192,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  192,  193,  193,  193,
+      193,  193,   36,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  155,  193,   14,   15,  193,   18,   17,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  141,  193,  193,  193,  193,  193,
+      193,  193,  193,    3,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  192,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  184,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,   39,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,   40,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,   20,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,   93,  193,
+      184,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  109,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,   92,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,   74,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,   25,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+       37,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,   38,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,   27,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  169,  193,  193,  193,  193,  193,
+      193,  193,   31,  193,   32,  193,  193,  193,   77,  193,
+       78,  193,   75,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,    7,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  148,  193,  193,  193,  193,   95,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,   28,  193,  193,  193,  193,  193,  193,  124,
+      193,  123,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   16,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   41,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   80,
+       79,  193,  193,  193,  193,  193,  193,  193,  119,  193,
+      193,  193,  193,  193,  193,  193,   86,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,   59,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  193,  193,  193,   63,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   35,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  122,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,    6,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  115,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  134,  193,  116,  193,  193,  146,  193,  193,
+
+      193,  193,  193,  193,  193,  193,  193,  193,   26,  193,
+      193,  193,  193,   82,  193,   83,   81,  193,  193,  193,
+      193,  193,  193,  193,   91,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  117,  193,  193,
+      193,  193,  193,  120,  193,  145,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   73,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,   33,  193,  193,   22,  193,
+      193,  193,   19,  193,  100,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   48,
+
+       50,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      156,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,   84,  193,  193,  193,  193,  193,
+      193,   90,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,   94,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  140,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  108,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  104,
+      193,  110,  193,  193,  193,  193,  193,   89,  193,  193,
+
+       69,  193,  132,  193,  193,  193,  193,  193,  147,  193,
+      193,  193,  193,  193,  193,  193,  161,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  107,  193,
+      193,  193,  193,  193,   51,   52,  193,  193,   34,   58,
+      111,  193,  125,  193,  149,  121,  193,  193,   44,  193,
+      113,  193,  193,  193,  193,  193,    9,  193,  193,  193,
+       72,  193,  193,  193,  193,  171,  193,  131,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,   96,  160,
+
+      193,  193,  193,  193,  193,  193,  193,  193,  142,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  112,  193,  193,   43,   45,  193,
+      193,  193,  193,  193,  193,  193,   71,  193,  193,  193,
+      193,  170,  193,  193,  193,  193,  136,   23,   24,  193,
+      193,  193,  193,  193,  193,  193,   68,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  138,
+      135,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+       42,  193,  193,  193,  193,  193,  193,  193,   13,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,   12,
+
+      193,  193,   21,  193,  193,  193,  174,  193,   46,  193,
+      144,  137,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  103,  102,  193,  193,  193,  193,  139,
+      133,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+       53,  193,  193,  193,  143,  193,  193,  193,  193,  193,
+      193,  193,  193,   47,  193,  193,  193,   97,   99,  126,
+      193,  193,  193,  101,  193,  193,  150,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  157,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      127,  193,  193,  193,   29,  193,  193,  193,  193,    4,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  153,  193,  193,  193,  193,  193,  193,  193,  193,
+      159,  193,  193,  130,  193,  193,  193,  193,  193,  193,
+      193,   56,  193,   30,  154,  193,   11,  193,  193,  193,
+      193,  193,  193,  128,   60,  193,  193,  193,  106,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  158,
+       87,  193,  193,  193,  193,   62,   66,   61,  193,   54,
+      193,   10,  193,  193,  193,  172,  193,  193,  105,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,   67,   65,  193,   55,  193,  118,  193,  193,
+      129,  193,  193,  193,  193,   98,   49,  193,  193,  193,
+      193,  193,  193,  193,   88,   64,   57,  193,  173,  193,
+      193,  193,  152,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,   70,  193,  151,  168,  193,  193,  193,  193,
+      193,  193,    5,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  114,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+
+      193,  193,  193,  164,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  162,  193,  165,
+      166,  193,  193,  193,  193,  193,  163,  167,    0
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -642,23 +643,23 @@ static yyconst YY_CHAR yy_meta[40] =
         1,    1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_uint16_t yy_base[1935] =
+static yyconst flex_uint16_t yy_base[1944] =
     {   0,
         0,    0,   37,   40,   44,   51,   63,   75,   56,   68,
-       87,  108, 2699, 2266,   50, 3795, 3795, 3795,  129,   94,
+       87,  108, 1541, 1352,   50, 3808, 3808, 3808,  129,   94,
        70,  104,  130,   90,  109,  106,  127,  111,   84,  122,
       146,  148,   50,  170,  136,  158,  152,  180,  168,  191,
-     2256, 3795, 3795, 3795,   70, 1839, 3795, 3795, 3795,   42,
-     1670, 1528, 3795, 3795, 3795,  210, 1344, 3795, 3795, 3795,
-      141, 1237, 3795,  214, 3795,  218,  140, 1109,  224,  167,
+     1325, 3808, 3808, 3808,   70, 1315, 3808, 3808, 3808,   42,
+     1253, 1191, 3808, 3808, 3808,  210, 1121, 3808, 3808, 3808,
+      141,  989, 3808,  214, 3808,  218,  140,  945,  224,  167,
         0,  235,    0,    0,   92,  162,  164,  174,  193,  217,
       230,  219,  103,  178,  233,  225,  220,  221,  241,  243,
       244,  189,  249,  247,  256,  245,  252,  255,  254,  260,
 
       265,  268,  138,  272,  270,  271,  276,  280,  281,  287,
       273,  285,  282,  288,  289,  290,  295,  303,  300,  305,
-      297,  307,  308,  314,  317,  318,  310,  319, 1055,  329,
-      728,  122,  458,  342,  373,  327,  347,  222,  351,  355,
+      297,  307,  308,  314,  317,  318,  310,  319,  665,  329,
+      592,  122,  458,  342,  373,  327,  347,  222,  351,  355,
         0,  332,  348,  356,  350,  352,  354,  357,  341,  358,
       368,  359,  370,  379,  377,  398,  380,  366,  378,  382,
        49,  384,  386,  311,  389,  393,  376,  390,  396,  409,
@@ -671,412 +672,414 @@ static yyconst flex_uint16_t yy_base[1935] =
       514,  519,  525,  526,  528,  515,  524,  530,  532,  534,
       540,  537,  546,  544,  542,  553,  538,  549,  550,  552,
       554,  556,  557,  560,  561,  562,  566,  568,  569,  570,
-      573,  574,  576,  581,  577,  584,  592,  585,  595,  596,
-      598,  599,  601,  604,  602,  605,  613,  610,  606,  619,
-      616,  623,  624,  617,  621,  625,  635,  633,  632,  639,
-      641,  643,  644,  646,  664,  650,  649,  673,  648,  651,
-      662,  654,  686,  652,  671,  682,  684,  685,  692,  688,
-
-      690,  693,  699,  695,  696,  706,  698,  705,  709,  710,
-      712,  713,  715,  716,  722,  720,  723,  726,  733,  730,
-      740,  727,  655,  741,  738,  746,  744,  750,  751,  758,
-      754,  755,  756,  757,  759,  762,  765,  769, 3795,  771,
-      766,  773,  774,  776,  777, 3795,  779,  778,  780,  790,
-      782,  788,  784,  800,  806,  803,  802,  804,  805,  807,
-      810,  809,  829,  811,  813,  817,  839,  815,  816,  821,
-      827,  840,  838,  842,  843,  846,  847,  814,  848,  849,
-      851,  850, 3795,  859,  867,  860,  861,  864,  870,  874,
-      871,  880,  876,  881,  882,  885,  886,  887,  896,  892,
-
-      894,  899,  907,  901,  909,  915,  904,  911,  912,  913,
-      919,  918,  921,  920,  928,  924,  927,  930,  932,  934,
-      936,  939,  937,  948,  946,  949,  953,  956,  945,  959,
-      947,  960,  967,  965,  966,  970,  975,  968,  974,  981,
-      977,  983,  984,  985,  994,  991,  992, 1000,  997,  996,
-      998, 1012, 1008, 1001, 1013, 1009, 1016, 1002, 1017, 1018,
-     1019, 1023, 1024, 1025, 1031, 1029, 1030, 1032, 1035, 1036,
-     1041, 1043, 1044, 1045, 1050, 1051, 1053, 1061, 1062, 1052,
-     1064, 1065, 1054, 1069, 1072, 1073, 1075, 1080, 1081, 1083,
-     3795, 1089, 1085, 1087, 1086, 1088, 1099, 1095, 1093, 1096,
-
-     1122, 3795, 1097, 3795, 3795, 1100, 3795, 3795, 1104, 1102,
-     1110, 1115, 1123, 1145, 1119, 1107, 1126, 1129, 1136, 1130,
-     1138, 1128, 1153, 1150, 1156, 1160, 1140, 1148, 1158, 1161,
-     1162, 1168, 1166, 1171, 1172, 1174, 1184, 1187, 1183, 1185,
-     1188, 1190, 1175, 1192, 1194, 1176, 1200, 1202, 1204, 1208,
-     1205, 3795, 1206, 1207, 1210, 1209, 1217, 1214,  403, 1219,
-     3795, 1220, 1221, 1225, 1227, 1228, 1231, 1233, 1232, 1234,
-     1235, 1239, 1243, 1238, 1256, 1240, 1245, 1258, 1266, 1263,
-     1249, 1262, 1264, 1265, 1270, 1277, 1273, 1275, 1120, 1283,
-     1279, 1281, 1282, 1285, 1287, 1288, 1289, 1290, 1291, 1295,
-
-     1316, 1296, 1294, 1303, 1301, 1306, 1307, 1304, 1317, 1320,
-     1324, 1323, 1330, 1336, 1329, 1312, 1339, 1340, 1347, 1349,
-     1350, 1352, 1354, 1355, 1360, 1361, 1363, 1357, 1366, 1367,
-     1371, 1373, 3795, 1379, 1375, 1381, 1382, 1388, 1384, 1385,
-     1387, 1390, 1392, 1391, 1393, 1394, 1397, 1399, 1407, 3795,
-     1403, 1405, 1409, 1412, 1413, 1415, 1416, 1426, 1433, 1419,
-     3795, 1421, 1435, 1438, 1440, 1431, 1429, 1436, 1441, 1444,
-     1446, 1448, 1450, 1452, 1453, 1454, 1456, 1466, 1460, 1458,
-     1468, 1463, 1472, 1473, 1474, 1475, 1477, 3795, 1478, 1483,
-     1479, 1485, 1489, 1499, 1488, 1501, 1492, 1495, 1498, 1506,
-
-     1504, 1505, 1507, 1508, 3795, 1512,  186, 1513, 1515, 1516,
-     1523, 1524, 1520, 1529, 1521, 1528, 1532, 1538, 1539, 1540,
-     1541, 1543, 1545, 1546, 1548, 1549, 1550, 1551, 1554, 1557,
-     1561, 1565, 1563, 1567, 1569, 1571, 1572, 1573, 3795, 1578,
-     1579, 1580, 1583, 1584, 1585, 1586, 1587, 1589, 1593, 1594,
-     1596, 1601, 3795, 1611, 1600, 1604, 1602, 1613, 1603, 1624,
-     1617, 1620, 1625, 1627, 1621, 1633, 1631, 1637, 1638, 1644,
-     1639, 1641, 1635, 1629, 1655, 1656, 1652, 1654, 1659, 1660,
-     1313, 1653, 3795, 1662, 1663, 1665, 1667, 1685, 1672, 1669,
-     1674, 1681, 1687, 1671, 1690, 1692, 1693, 1698, 3795, 1699,
-
-     1700, 1694, 1704, 1701, 1707, 1709, 1711, 1712, 1717, 1716,
-     1718, 1719, 1725, 1727, 1728, 3795, 1731, 1734, 1736, 1742,
-     1730, 1738, 1740, 1745, 1746, 1747, 1748, 1754, 1750, 1752,
-     1753, 1755, 1758, 1756, 1760, 1761, 1763, 1775, 1769, 1777,
-     3795, 1762, 1788, 1780, 1778, 1791, 1784, 1795, 1796, 1794,
-     1797, 1799, 1801, 1802, 1803, 1804, 1806, 1808, 1809, 1813,
-     1814, 1815, 1812, 1817, 1811, 1832, 1820, 1833, 1834, 1835,
-     1823, 1840, 1848, 1851, 1852, 1854, 3795, 1857, 1858, 1847,
-     1859, 1836, 1860, 1868, 1871, 1861, 1869, 1872, 1873, 1875,
-     1882, 1874, 1876, 1878, 1883, 1885, 1884, 1886, 1889, 1891,
-
-     1896, 1904, 1906, 1909, 1887, 1907, 1910, 1912, 3795, 1915,
-     1920, 1917, 1921, 1924, 1926, 1932, 3795, 1929, 3795, 1928,
-     1936, 1939, 3795, 1941, 3795, 1944, 3795, 1945, 1949, 1938,
-     1930, 1951, 1952, 1954, 1959, 1956, 1960, 1962, 1963, 1964,
-     1966, 1967, 3795, 1971, 1973, 1975, 1977, 1981, 1979, 1980,
-     1983, 1982, 1988, 1993, 2001, 1987, 2008, 3795, 1995, 2005,
-     1994, 2006, 3795, 1997, 2010, 2014, 2015, 2016, 2023, 2020,
-     2024, 2027, 2017, 2028, 2041, 2029, 2037, 2038, 2039, 2040,
-     2048, 2044, 2046, 2050, 2047, 2053, 2054, 2056, 2058, 2061,
-     2062, 2065, 2063, 2064, 2066, 2068, 3795, 2070, 2077, 2078,
-
-     2079, 2085, 2087, 3795, 2081, 3795, 2091, 2092, 2099, 2098,
-     2100, 2088, 2106, 2102, 2110, 2113, 2108, 2116, 2117, 2119,
-     2120, 2122, 3795, 2121, 2123, 2124, 2126, 2130, 2127, 2137,
-     2131, 2144, 3795, 2150, 2147, 2148, 2154, 2151, 2155, 2161,
-     2158, 2160, 3795, 3795, 2159, 2164, 2166, 2168, 2178, 2170,
-     2172, 3795, 2174, 2176, 2183, 2191, 2192, 2189, 2179, 3795,
-     2185, 2182, 2193, 2199, 2201, 2203, 2195, 2209, 2205, 2208,
-     2210, 2212, 2218, 2220, 3795, 2222, 2223, 2225, 2228, 2229,
-     2230, 2231, 2233, 2236, 2235, 2238, 2237, 2246, 2247, 2249,
-     2250, 2251, 2254, 2255, 2260, 2262, 2263, 2273, 2274, 3795,
-
-     2281, 2264, 2283, 2265, 2280, 2284, 2291, 2287, 2272, 2288,
-     2294, 2293, 3795, 2295, 2296, 2298, 2302, 2303, 2305, 2307,
-     2310, 3795, 2312, 2315, 2316, 2319, 2318, 2320, 2322, 2324,
-     2332, 3795, 2330, 2338, 2334, 2336, 2342, 2344, 2341, 2347,
-     2349, 2345, 2351, 2355, 2353, 2357, 2359, 2360, 2362, 2363,
-     2364, 2368, 2374, 2369, 2384, 2376, 2389, 2373, 2381, 2371,
-     2391, 2398, 2401, 2386, 2399, 2405, 2402, 2403, 2404, 2406,
-     2413, 2410, 2420, 2409, 3795, 2419, 2417, 2424, 2426, 2427,
-     2428, 2430, 2433, 2429, 3795, 2436, 3795, 2437, 2442, 3795,
-     2443, 2445, 2446, 2448, 2449, 2450, 2452, 2453, 2464, 2451,
-
-     3795, 2460, 2462, 2468, 2470, 3795, 2474, 3795, 3795, 2463,
-     2471, 2481, 2475, 2482, 2484, 2488, 3795, 2489, 2490, 2493,
-     2491, 2495, 2497, 2499, 2501, 2498, 2502, 2503, 2505, 3795,
-     2507, 2504, 2508, 2514, 2515, 2518, 3795, 2520, 2529, 2521,
-     2530, 2531, 2532, 2536, 2538, 2539, 2545, 2543, 2542, 2544,
-     3795, 2546, 2549, 2551, 2553, 2557, 2558, 2566, 2562, 2568,
-     2564, 2571, 2573, 2582, 2560, 2574, 3795, 2579, 2585, 3795,
-     2587, 2577, 2588, 3795, 2589, 3795, 2592, 2591, 2593, 2594,
-     2602, 2596, 2608, 2609, 2610, 2611, 2599, 2620, 2613, 2617,
-     3795, 3795, 2623, 2624, 2626, 2629, 2627, 2631, 2640, 2636,
-
-     2643, 3795, 2632, 2645, 2638, 2644, 2646, 2634, 2647, 2654,
-     2656, 2655, 2662, 2648, 2658, 3795, 2664, 2665, 2666, 2669,
-     2668, 2671, 3795, 2673, 2675, 2681, 2679, 2682, 2683, 2697,
-     2699, 2676, 2688, 2703, 2705, 2707, 2700, 2709, 2710, 2712,
-     2714, 2715, 3795, 2716, 2718, 2720, 2723, 2724, 2725, 2726,
-     2732, 2736, 2727, 2730, 2737, 2741, 3795, 2738, 2743, 2744,
-     2747, 2750, 2752, 2754, 2755, 2760, 2763, 3795, 2757, 2762,
-     2764, 2765, 2770, 2768, 2775, 2774, 2776, 2779, 2782, 2780,
-     3795, 2786, 3795, 2787, 2794, 2797, 2798, 2788, 3795, 2800,
-     2802, 3795, 2801, 3795, 2809, 2814, 2803, 2804, 2818, 3795,
-
-     2821, 2822, 2824, 2826, 2827, 2828, 2829, 3795, 2831, 2834,
-     2833, 2839, 2840, 2842, 2845, 2843, 2846, 2853, 2852, 3795,
-     2850, 2854, 2862, 2861, 2865, 3795, 3795, 2864, 2870, 3795,
-     3795, 3795, 2873, 3795, 2868, 3795, 3795, 2874, 2876, 3795,
-     2881, 3795, 2882, 2883, 2885, 2887, 2888, 3795, 2889, 2890,
-     2892, 3795, 2894, 2900, 2896, 2897, 3795, 2899, 3795, 2905,
-     2904, 2907, 2911, 2918, 2920, 2923, 2913, 2915, 2924, 2926,
-     2927, 2929, 2928, 2931, 2932, 2935, 2937, 2940, 2942, 2944,
-     2945, 2943, 2947, 2949, 2950, 2951, 2960, 2963, 2967, 3795,
-     3795, 2954, 2964, 2969, 2970, 2972, 2973, 2976, 2977, 3795,
-
-     2980, 2975, 2985, 2983, 2986, 2987, 2995, 2988, 2997, 3006,
-     2999, 3000, 2989, 3009, 3002, 3795, 3003, 3010, 3795, 3795,
-     3013, 3016, 3021, 3023, 3018, 3025, 3026, 3795, 3027, 3028,
-     3035, 3031, 3795, 3040, 3037, 3046, 3048, 3795, 3795, 3795,
-     3049, 3041, 3043, 3053, 3054, 3051, 3057, 3795, 3060, 3061,
-     3062, 3064, 3069, 3072, 3073, 3076, 3082, 3078, 3085, 3087,
-     3795, 3795, 3088, 3094, 3091, 3092, 3090, 3093, 3096, 3098,
-     3100, 3795, 3102, 3106, 3107, 3109, 3110, 3113, 3116, 3795,
-     3055, 3111, 3115, 3122, 3117, 3123, 3126, 3128, 3129, 3133,
-     3795, 3135, 3139, 3795, 3141, 3140, 3142, 3795, 3146, 3795,
-
-     3149, 3795, 3795, 3143, 3150, 3153, 3159, 3161, 3165, 3155,
-     3162, 3171, 3168, 3170, 3795, 3795, 3180, 3169, 3172, 3182,
-     3795, 3795, 3181, 3183, 3184, 3185, 3187, 3188, 3191, 3193,
-     3196, 3194, 3197, 3205, 3195, 3209, 3199, 3208, 3215, 3210,
-     3216, 3795, 3218, 3220, 3221, 3795, 3222, 3228, 3225, 3232,
-     3231, 3238, 3235, 3242, 3795, 3243, 3244, 3239, 3795, 3795,
-     3795, 3245, 3253, 3249, 3795, 3255, 3261, 3795, 3267, 3259,
-     3257, 3274, 3263, 3270, 3271, 3278, 3247, 3280, 3795, 3276,
-     3281, 3283, 3286, 3285, 3287, 3288, 3291, 3292, 3293, 3301,
-     3298, 3795, 3305, 3309, 3306, 3795, 3313, 3302, 3310, 3315,
-
-     3795, 3320, 3314, 3316, 3324, 3326, 3318, 3327, 3329, 3331,
-     3332, 3340, 3795, 3336, 3342, 3343, 3345, 3344, 3352, 3351,
-     3354, 3795, 3356, 3357, 3795, 3359, 3358, 3360, 3367, 3371,
-     3374, 3375, 3795, 3378, 3795, 3795, 3381, 3795, 3384, 3379,
-     3385, 3386, 3388, 3389, 3795, 3795, 3390, 3392, 3396, 3795,
-     3397, 3399, 3402, 3400, 3403, 3404, 3408, 3409, 3410, 3413,
-     3795, 3795, 3414, 3416, 3421, 3425, 3795, 3795, 3795, 3433,
-     3795, 3435, 3795, 3437, 3423, 3428, 3795, 3444, 3430, 3795,
-     3438, 3440, 3446, 3451, 3453, 3454, 3448, 3455, 3457, 3458,
-     3460, 3461, 3467, 3795, 3795, 3469, 3795, 3472, 3795, 3474,
-
-     3476, 3795, 3477, 3481, 3464, 3485, 3795, 3795, 3487, 3491,
-     3488, 3492, 3493, 3495, 3494, 3795, 3795, 3795, 3496, 3795,
-     3500, 3498, 3501, 3795, 3503, 3506, 3505, 3507, 3511, 3508,
-     3516, 3509, 3521, 3517, 3523, 3535, 3532, 3536, 3528, 3530,
-     3543, 3540, 3547, 3795, 3542, 3795, 3795, 3539, 3549, 3555,
-     3548, 3551, 3552, 3795, 3556, 3559, 3560, 3561, 3563, 3567,
-     3575, 3565, 3568, 3576, 3583, 3585, 3577, 3591, 3593, 3587,
-     3579, 3589, 3600, 3597, 3599, 3795, 3601, 3602, 3603, 3604,
-     3609, 3613, 3605, 3614, 3619, 3623, 3625, 3607, 3630, 3627,
-     3631, 3633, 3635, 3636, 3795, 3637, 3639, 3641, 3643, 3645,
-
-     3647, 3648, 3649, 3654, 3651, 3657, 3664, 3661, 3795, 3665,
-     3795, 3795, 3669, 3659, 3671, 3673, 3676, 3795, 3795, 3795,
-     3703, 3710, 3717, 3724, 3731,   94, 3738, 3745, 3752, 3759,
-     3766, 3773, 3780, 3787
+      574,  576,  577,  573,  581,  587,  596,  597,  584,  588,
+      599,  602,  606,  607,  609,  613,  614,  615,  616,  622,
+      618,  620,  621,  623,  629,  630,  640,  641,  631,  633,
+      632,  642,  651,  643,  671,  634,  655,  663,  659,  660,
+      661,  668,  672,  666,  675,  669,  677,  678,  696,  681,
+
+      692,  694,  702,  698,  700,  709,  699,  710,  711,  703,
+      713,  712,  718,  720,  721,  723,  724,  725,  736,  728,
+      734,  731,  741,  739,  744,  750,  748,  742,  756,  759,
+      758,  746,  760,  761,  764,  765,  770,  763,  771, 3808,
+      776,  774,  778,  779,  780,  781, 3808,  783,  782,  785,
+      792,  789,  791,  797,  809,  811,  790,  794,  810,  807,
+      808,  816,  817,  837,  819,  821,  818,  825,  823,  824,
+      827,  831,  841,  833,  835,  846,  849,  850,  852,  851,
+      854,  855,  858, 3808,  862,  874,  859,  865,  867,  876,
+      878,  875,  886,  879,  882,  888,  889,  890,  892,  900,
+
+      896,  898,  902,  910,  907,  913,  919,  904,  915,  916,
+      917,  923,  922,  924,  927,  933,  931,  930,  934,  932,
+      938,  940,  943,  941,  954,  951,  953,  957,  959,  962,
+      952,  963,  966,  969,  975,  971,  973,  984,  974,  972,
+      978,  985,  986,  993,  994,  995, 1003,  996,  999, 1006,
+     1004, 1005, 1010, 1019, 1020, 1007, 1025, 1011, 1016, 1017,
+     1021, 1024, 1030, 1031, 1032, 1033, 1040, 1037, 1038, 1042,
+     1045, 1044, 1047, 1051, 1053, 1058, 1054, 1059, 1062, 1060,
+     1063, 1066, 1070, 1073, 1074, 1076, 1075, 1078, 1079, 1086,
+     1089, 1087, 3808, 1097, 1091, 1095, 1093, 1094, 1106, 1100,
+
+     1102, 1103, 1129, 3808, 1104, 3808, 3808, 1109, 3808, 3808,
+     1113, 1110, 1114, 1123, 1130, 1152, 1127, 1115, 1117, 1136,
+     1144, 1140, 1145, 1135, 1157, 1155, 1162, 1161, 1167, 1149,
+     1163, 1172, 1173, 1174, 1177, 1176, 1178, 1179, 1186, 1187,
+     1193, 1194, 1131, 1195, 1198, 1189, 1199, 1201, 1200, 1210,
+     1202, 1205, 1217, 1214, 3808, 1215, 1216, 1218, 1220, 1222,
+     1226,  403, 1227, 3808, 1228, 1231, 1229, 1232, 1235, 1239,
+     1237, 1240, 1242, 1243, 1245, 1247, 1258, 1256, 1248, 1251,
+     1271, 1272, 1269, 1263, 1274, 1270, 1276, 1277, 1284, 1280,
+     1281, 1285, 1292, 1288, 1290, 1291, 1294, 1295, 1296, 1301,
+
+     1302, 1303, 1304, 1327, 1305, 1307, 1313, 1312, 1314, 1316,
+     1329, 1319, 1321, 1340, 1339, 1341, 1342, 1345, 1349, 1350,
+     1351, 1358, 1323, 1360, 1355, 1369, 1362, 1363, 1371, 1373,
+     1377, 1365, 1380, 1382, 1383, 3808, 1389, 1388, 1390, 1392,
+     1398, 1395, 1394, 1397, 1396, 1401, 1402, 1403, 1404, 1411,
+     1407, 1414, 1420, 3808, 1416, 1418, 1417, 1426, 1428, 1429,
+     1430, 1437, 1445, 1441, 3808, 1442, 1448, 1449, 1419, 1446,
+     1444, 1451, 1452, 1456, 1455, 1457, 1462, 1463, 1465, 1461,
+     1469, 1479, 1474, 1470, 1481, 1480, 1482, 1485, 1486, 1487,
+     1489, 3808, 1490, 1493, 1491, 1495, 1509, 1511, 1497, 1514,
+
+     1500, 1503, 1510, 1520, 1515, 1518, 1521, 1523, 3808, 1524,
+      186, 1525, 1526, 1529, 1535, 1536, 1532, 1542, 1538, 1544,
+     1545, 1546, 1534, 1555, 1551, 1554, 1557, 1560, 1559, 1563,
+     1564, 1567, 1565, 1571, 1572, 1576, 1575, 1580, 1582, 1581,
+     1583, 1585, 3808, 1590, 1592, 1591, 1595, 1596, 1597, 1598,
+     1599, 1605, 1602, 1607, 1611, 1612, 3808, 1618, 1614, 1616,
+     1615, 1625, 1626, 1634, 1627, 1636, 1639, 1619, 1642, 1648,
+     1644, 1647, 1649, 1654, 1655, 1653, 1660, 1657, 1661, 1668,
+     1669, 1667, 1637, 1680, 1673, 1677, 1670, 3808, 1678, 1676,
+     1666, 1683, 1702, 1685, 1686, 1687, 1690, 1703, 1688, 1693,
+
+     1708, 1709, 1711, 3808, 1713, 1714, 1715, 1721, 1717, 1723,
+     1725, 1727, 1728, 1731, 1732, 1733, 1741, 1729, 1739, 1743,
+     3808, 1749, 1751, 1752, 1758, 1754, 1755, 1756, 1760, 1761,
+     1762, 1764, 1770, 1766, 1768, 1771, 1772, 1775, 1769, 1773,
+     1777, 1779, 1792, 1778, 1794, 3808, 1785, 1807, 1796, 1800,
+     1809, 1803, 1815, 1793, 1812, 1813, 1814, 1816, 1819, 1818,
+     1821, 1822, 1820, 1825, 1828, 1830, 1831, 1829, 1847, 1843,
+     1849, 1833, 1853, 1855, 1857, 1835, 1859, 1865, 1866, 1867,
+     1871, 3808, 1874, 1875, 1858, 1877, 1869, 1878, 1885, 1891,
+     1881, 1887, 1888, 1889, 1892, 1893, 1900, 1894, 1898, 1902,
+
+     1903, 1896, 1904, 1905, 1908, 1916, 1827, 1924, 1926, 1914,
+     1927, 1928, 1929, 1930, 3808, 1933, 1935, 1938, 1941, 1939,
+     1944, 1951, 3808, 1947, 3808, 1950, 1958, 1961, 3808, 1963,
+     3808, 1967, 3808, 1968, 1969, 1960, 1948, 1972, 1974, 1976,
+     1978, 1980, 1981, 1983, 1984, 1985, 1987, 1988, 3808, 1997,
+     1990, 1998, 2001, 1994, 2003, 2004, 2007, 2009, 1952, 2010,
+     2018, 2011, 2019, 3808, 2020, 2022, 2017, 2026, 3808, 2025,
+     2027, 2030, 2033, 2037, 2044, 2041, 2038, 2045, 2035, 2048,
+     2057, 2058, 2054, 2056, 2061, 2062, 2068, 2064, 2065, 2074,
+     2066, 2076, 2069, 2077, 2078, 2079, 2080, 2088, 2082, 2084,
+
+     2085, 2086, 3808, 2096, 2098, 2090, 2101, 2100, 2106, 3808,
+     2110, 3808, 2111, 2114, 2115, 2116, 2117, 2119, 2120, 2123,
+     2129, 2131, 2141, 2124, 2134, 2127, 2137, 2142, 2143, 3808,
+     2146, 2148, 2149, 2152, 2153, 2154, 2160, 2164, 2156, 3808,
+     2170, 2163, 2167, 2182, 2178, 2169, 2185, 2179, 2187, 3808,
+     3808, 2183, 2186, 2188, 2193, 2200, 2194, 2197, 3808, 2198,
+     2201, 2202, 2203, 2204, 2211, 2213, 3808, 2214, 2217, 2219,
+     2221, 2222, 2223, 2224, 2230, 2226, 2227, 2231, 2240, 2241,
+     2247, 3808, 2248, 2242, 2250, 2252, 2254, 2256, 2255, 2257,
+     2258, 2260, 2261, 2262, 2271, 2273, 2266, 2274, 2275, 2279,
+
+     2276, 2284, 2286, 2288, 2294, 2297, 3808, 2303, 2290, 2304,
+     2280, 2302, 2306, 2314, 2310, 2291, 2312, 2318, 2315, 3808,
+     2316, 2317, 2320, 2321, 2325, 2328, 2327, 2333, 2337, 3808,
+     2331, 2342, 2339, 2343, 2344, 2345, 2351, 2346, 2357, 3808,
+     2355, 2361, 2358, 2359, 2367, 2368, 2365, 2369, 2370, 2375,
+     2377, 2376, 2380, 2381, 2382, 2384, 2386, 2387, 2389, 2390,
+     2391, 2393, 2410, 2400, 2413, 2398, 2403, 2420, 2422, 2428,
+     2429, 2392, 2414, 2430, 2431, 2432, 2433, 2434, 2440, 2438,
+     2442, 2439, 3808, 2441, 2446, 2449, 2453, 2450, 2455, 2457,
+     2458, 2454, 3808, 2466, 3808, 2465, 2467, 3808, 2469, 2473,
+
+     2456, 2474, 2475, 2477, 2478, 2480, 2489, 2486, 3808, 2487,
+     2490, 2492, 2494, 3808, 2498, 3808, 3808, 2491, 2495, 2507,
+     2504, 2510, 2405, 2513, 3808, 2515, 2505, 2516, 2514, 2518,
+     2519, 2520, 2524, 2526, 2527, 2528, 2529, 3808, 2530, 2538,
+     2533, 2541, 2537, 3808, 2534, 3808, 2545, 2554, 2547, 2550,
+     2556, 2557, 2560, 2561, 2563, 2569, 2566, 2567, 2568, 3808,
+     2570, 2572, 2575, 2577, 2581, 2582, 2590, 2587, 2591, 2588,
+     2594, 2595, 2599, 2601, 2604, 3808, 2607, 2608, 3808, 2605,
+     2609, 2611, 3808, 2614, 3808, 2615, 2617, 2619, 2622, 2624,
+     2625, 2636, 2626, 2633, 2638, 2628, 2647, 2640, 2630, 3808,
+
+     3808, 2652, 2649, 2654, 2655, 2657, 2659, 2665, 2661, 2663,
+     3808, 2639, 2667, 2668, 2670, 2671, 2674, 2673, 2679, 2680,
+     2675, 2681, 2682, 2683, 3808, 2687, 2688, 2694, 2693, 2695,
+     2696, 3808, 2698, 2700, 2705, 2701, 2706, 2720, 2723, 2725,
+     2711, 2716, 2728, 2731, 2733, 2734, 2736, 2737, 2739, 2741,
+     2742, 3808, 2699, 2744, 2745, 2747, 2748, 2750, 2749, 2757,
+     2760, 2751, 2754, 2762, 2768, 3808, 2763, 2765, 2771, 2772,
+     2775, 2777, 2779, 2780, 2784, 2782, 3808, 2787, 2789, 2790,
+     2792, 2793, 2795, 2797, 2798, 2801, 2802, 2808, 2809, 3808,
+     2804, 3808, 2811, 2817, 2826, 2822, 2819, 3808, 2825, 2827,
+
+     3808, 2830, 3808, 2829, 2828, 2834, 2835, 2838, 3808, 2844,
+     2845, 2848, 2846, 2850, 2851, 2852, 3808, 2856, 2862, 2867,
+     2863, 2855, 2857, 2869, 2861, 2872, 2879, 2876, 3808, 2878,
+     2880, 2888, 2884, 2887, 3808, 3808, 2886, 2890, 3808, 3808,
+     3808, 2896, 3808, 2893, 3808, 3808, 2897, 2899, 3808, 2904,
+     3808, 2906, 2907, 2905, 2909, 2910, 3808, 2913, 2912, 2917,
+     3808, 2914, 2925, 2918, 2919, 3808, 2927, 3808, 2928, 2935,
+     2929, 2939, 2941, 2946, 2948, 2930, 2938, 2949, 2950, 2951,
+     2952, 2953, 2955, 2958, 2959, 2960, 2964, 2965, 2968, 2969,
+     2966, 2972, 2971, 2974, 2976, 2984, 2987, 2991, 3808, 3808,
+
+     2978, 2988, 2994, 2995, 2996, 2997, 3000, 3001, 3808, 3004,
+     2999, 3007, 3009, 3010, 3011, 3019, 3012, 3021, 3027, 3023,
+     3025, 3013, 3033, 3026, 3808, 3030, 3034, 3808, 3808, 3036,
+     3042, 3044, 3037, 3047, 3049, 3050, 3808, 3051, 3055, 3058,
+     3060, 3808, 3062, 3063, 3068, 3070, 3808, 3808, 3808, 3071,
+     3064, 3074, 3075, 3076, 3077, 3079, 3808, 3078, 3084, 3085,
+     3088, 3092, 3095, 3097, 3100, 3106, 3102, 3099, 3109, 3808,
+     3808, 3110, 3116, 3113, 3114, 3112, 3115, 3118, 3120, 3122,
+     3808, 3124, 3128, 3129, 3131, 3132, 3135, 3138, 3808, 3133,
+     3137, 3139, 3144, 3145, 3150, 3149, 3155, 3148, 3160, 3808,
+
+     3161, 3162, 3808, 3163, 3166, 3168, 3808, 3171, 3808, 3174,
+     3808, 3808, 3169, 3176, 3178, 3185, 3187, 3191, 3179, 3182,
+     3193, 3195, 3198, 3808, 3808, 3204, 3192, 3200, 3210, 3808,
+     3808, 3207, 3201, 3208, 3209, 3211, 3214, 3217, 3220, 3221,
+     3222, 3223, 3225, 3230, 3232, 3233, 3234, 3235, 3236, 3238,
+     3808, 3243, 3245, 3247, 3808, 3249, 3251, 3255, 3254, 3257,
+     3266, 3262, 3264, 3808, 3268, 3269, 3270, 3808, 3808, 3808,
+     3271, 3278, 3274, 3808, 3280, 3286, 3808, 3289, 3282, 3284,
+     3297, 3293, 3294, 3298, 3301, 3300, 3303, 3808, 3305, 3306,
+     3308, 3309, 3310, 3311, 3312, 3315, 3317, 3318, 3329, 3320,
+
+     3808, 3333, 3335, 3336, 3808, 3338, 3326, 3330, 3340, 3808,
+     3342, 3347, 3345, 3349, 3351, 3352, 3354, 3355, 3357, 3360,
+     3364, 3808, 3358, 3362, 3369, 3368, 3374, 3381, 3377, 3379,
+     3808, 3384, 3380, 3808, 3385, 3386, 3387, 3389, 3397, 3402,
+     3398, 3808, 3405, 3808, 3808, 3406, 3808, 3409, 3410, 3391,
+     3412, 3414, 3415, 3808, 3808, 3417, 3419, 3422, 3808, 3416,
+     3423, 3426, 3428, 3429, 3430, 3433, 3434, 3432, 3439, 3808,
+     3808, 3435, 3442, 3446, 3450, 3808, 3808, 3808, 3457, 3808,
+     3458, 3808, 3460, 3447, 3461, 3808, 3464, 3466, 3808, 3467,
+     3468, 3469, 3472, 3474, 3478, 3476, 3479, 3482, 3484, 3486,
+
+     3480, 3488, 3808, 3808, 3493, 3808, 3496, 3808, 3497, 3505,
+     3808, 3490, 3507, 3498, 3510, 3808, 3808, 3511, 3517, 3515,
+     3516, 3500, 3518, 3522, 3808, 3808, 3808, 3520, 3808, 3524,
+     3525, 3526, 3808, 3530, 3531, 3527, 3532, 3533, 3534, 3537,
+     3535, 3543, 3539, 3554, 3557, 3558, 3560, 3547, 3551, 3567,
+     3561, 3569, 3808, 3564, 3808, 3808, 3570, 3576, 3578, 3574,
+     3577, 3580, 3808, 3581, 3582, 3583, 3584, 3585, 3586, 3587,
+     3593, 3602, 3600, 3606, 3608, 3598, 3614, 3616, 3618, 3607,
+     3610, 3624, 3620, 3621, 3808, 3622, 3623, 3628, 3630, 3631,
+     3633, 3635, 3636, 3640, 3644, 3645, 3646, 3651, 3648, 3653,
+
+     3656, 3657, 3658, 3808, 3659, 3661, 3663, 3667, 3668, 3670,
+     3671, 3672, 3679, 3674, 3684, 3688, 3685, 3808, 3691, 3808,
+     3808, 3693, 3676, 3680, 3701, 3703, 3808, 3808, 3808, 3716,
+     3723, 3730, 3737, 3744,   94, 3751, 3758, 3765, 3772, 3779,
+     3786, 3793, 3800
     } ;
 
-static yyconst flex_int16_t yy_def[1935] =
+static yyconst flex_int16_t yy_def[1944] =
     {   0,
-     1920,    1, 1921, 1921, 1922, 1922, 1923, 1923, 1924, 1924,
-     1925, 1925, 1920, 1926, 1920, 1920, 1920, 1920, 1927, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1928, 1920, 1920, 1920, 1928, 1929, 1920, 1920, 1920, 1929,
-     1930, 1920, 1920, 1920, 1920, 1930, 1931, 1920, 1920, 1920,
-     1931, 1932, 1920, 1933, 1920, 1932, 1932, 1926, 1926, 1920,
-     1934, 1927, 1934, 1927, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1928, 1928,
-     1929, 1929, 1930, 1930, 1920, 1931, 1931, 1932, 1932, 1933,
-     1933, 1932, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1932, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1932, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1932, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1932, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1920, 1926, 1920, 1920, 1926, 1920, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1932, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1920, 1926, 1932, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926,
-     1926, 1926, 1920, 1926, 1920, 1926, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1920, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1920,
-     1926, 1926, 1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1926, 1920, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1920,
-     1920, 1920, 1926, 1920, 1926, 1920, 1920, 1926, 1926, 1920,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1920, 1926, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1920, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1926, 1926, 1920, 1926, 1926, 1926, 1920, 1926, 1920,
-
-     1926, 1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1926, 1926,
-     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1920, 1920,
-     1920, 1926, 1926, 1926, 1920, 1926, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-
-     1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1920, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1920, 1926, 1920, 1920, 1926, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1920, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1920, 1926,
-     1920, 1926, 1920, 1926, 1926, 1926, 1920, 1926, 1926, 1920,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1920, 1920, 1926, 1920, 1926, 1920, 1926,
-
-     1926, 1920, 1926, 1926, 1926, 1926, 1920, 1920, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1920, 1920, 1926, 1920,
-     1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1920, 1926, 1920, 1920, 1926, 1926, 1926,
-     1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
-     1926, 1926, 1926, 1926, 1920, 1926, 1926, 1926, 1926, 1926,
-
-     1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1920, 1926,
-     1920, 1920, 1926, 1926, 1926, 1926, 1926, 1920, 1920,    0,
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920
+     1929,    1, 1930, 1930, 1931, 1931, 1932, 1932, 1933, 1933,
+     1934, 1934, 1929, 1935, 1929, 1929, 1929, 1929, 1936, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1937, 1929, 1929, 1929, 1937, 1938, 1929, 1929, 1929, 1938,
+     1939, 1929, 1929, 1929, 1929, 1939, 1940, 1929, 1929, 1929,
+     1940, 1941, 1929, 1942, 1929, 1941, 1941, 1935, 1935, 1929,
+     1943, 1936, 1943, 1936, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1937, 1937,
+     1938, 1938, 1939, 1939, 1929, 1940, 1940, 1941, 1941, 1942,
+     1942, 1941, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1941, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1929, 1935, 1929, 1929, 1935, 1929, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1941, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1941, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1929, 1935,
+     1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1929, 1935, 1935, 1929, 1935, 1935,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935,
+     1935, 1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935,
+     1935, 1935, 1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935,
+
+     1929, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1929, 1929,
+     1929, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1929, 1935,
+     1929, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1929, 1935, 1935, 1935, 1935, 1929, 1935, 1929, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1929,
+
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+
+     1935, 1935, 1929, 1935, 1935, 1935, 1929, 1935, 1929, 1935,
+     1929, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935, 1935, 1929,
+     1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1929, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1929, 1929, 1929,
+     1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1929, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1929,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1929, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1929, 1935, 1929, 1929, 1935, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929,
+     1929, 1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935, 1929,
+     1935, 1929, 1935, 1935, 1935, 1929, 1935, 1935, 1929, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1929, 1929, 1935, 1929, 1935, 1929, 1935, 1935,
+     1929, 1935, 1935, 1935, 1935, 1929, 1929, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1929, 1929, 1935, 1929, 1935,
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1929, 1929, 1935, 1935, 1935, 1935,
+     1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935,
+
+     1935, 1935, 1935, 1929, 1935, 1935, 1935, 1935, 1935, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1929, 1935, 1929,
+     1929, 1935, 1935, 1935, 1935, 1935, 1929, 1929,    0, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929
     } ;
 
-static yyconst flex_uint16_t yy_nxt[3835] =
+static yyconst flex_uint16_t yy_nxt[3848] =
     {   0,
        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
        14,   18,   20,   21,   14,   22,   23,   24,   25,   14,
@@ -1125,7 +1128,7 @@ static yyconst flex_uint16_t yy_nxt[3835] =
       235,   69,   69,  236,   69,   69,  241,  242,   69,  224,
        69,  260,   69,  243,  225,   69,  238,  239,   69,  226,
       240,   69,  244,  249,  227,   69,  250,  245,   69,   69,
-      228,  229,  247,  251,  248,  253,   69,  256,   69,  672,
+      228,  229,  247,  251,  248,  253,   69,  256,   69,  676,
        69,  246,   69,   69,  252,  254,  258,  259,  257,   69,
       255,   69,   69,   69,   69,   69,   69,   69,   69,  262,
        69,  264,  261,   69,   69,  266,   69,   69,  268,   69,
@@ -1142,367 +1145,368 @@ static yyconst flex_uint16_t yy_nxt[3835] =
       316,   69,   69,  312,   69,   69,   69,  321,   69,   69,
       317,  322,   69,   69,   69,  328,  324,  320,   69,  318,
        69,   69,   69,  319,  329,   69,   69,  323,   69,   69,
-      327,  325,  326,   69,  330,  333,   69,   69,  337,  338,
-
-      340,  336,  331,  339,   69,  332,  335,   69,   69,  334,
-       69,   69,  346,   69,   69,  348,   69,   69,   69,  344,
-      345,  347,   69,  343,  341,   69,  353,  342,   69,   69,
-      350,   69,  349,   69,  351,   69,   69,   69,  352,  356,
-      355,  357,  363,  358,   69,   69,  362,   69,  354,  359,
-      364,   69,  360,   69,  361,   69,   69,  365,   69,  370,
-      139,   69,   69,   69,   69,  366,   69,   69,  368,  369,
-      381,  367,  372,  420,   69,  371,   69,  380,  373,  374,
-      382,  384,  385,   69,  383,   69,  387,  389,  375,  386,
-      376,  377,  378,  388,   69,  379,   69,   69,   69,  394,
-
-       69,  392,   69,  390,   69,   69,  398,   69,   69,  391,
-       69,   69,  393,  400,  396,  401,  402,   69,   69,  397,
-      395,   69,   69,  399,   69,   69,  407,   69,   69,  408,
-      403,  409,   69,  404,   69,   69,  406,  405,   69,   69,
-      132,  412,   69,  415,  414,   69,  410,  418,  411,  416,
-       69,  417,   69,   69,  413,  422,   69,  421,   69,  423,
-      419,  424,   69,   69,  426,  427,   69,   69,   69,   69,
-       69,   69,  432,  431,   69,  425,  429,   69,   69,  433,
-      430,   69,  435,   69,  436,   69,   69,  428,   69,   69,
-       69,   69,   69,  438,   69,  439,   69,  446,  434,  437,
-
-       69,  441,   69,  447,  449,  448,  445,  450,  440,  442,
-      444,  443,   69,  451,   69,   69,   69,   69,   69,   69,
-      455,   69,   69,   69,  457,   69,   69,   69,   69,   69,
-      470,  480,  456,   69,  472,  454,  452,  453,  458,   69,
-      459,   69,  460,  465,  466,  467,  468,  461,  471,  462,
-       69,   69,   69,  474,   69,   69,  469,  463,   69,   69,
-       69,   69,   69,   69,  473,  475,  476,  464,  484,  481,
-      477,  139,   69,   69,  486,  485,   69,  478,  483,   69,
-      482,  479,   69,   69,  487,  491,   69,  493,   69,  489,
-      490,  488,   69,   69,   69,  492,  495,   69,   69,   69,
-
-      494,  498,  497,  501,   69,  504,   69,  502,   69,  496,
-      505,   69,  507,   69,  506,  499,   69,  503,  500,   69,
-      508,   69,  509,   69,   69,   69,  514,   69,  511,  513,
-       69,   69,   69,   69,  515,  518,   69,  510,  516,   69,
-       69,  519,   69,  512,   69,  521,   69,  525,   69,   69,
-      522,   69,  517,  520,  523,  529,  527,   69,   69,   69,
-       69,   69,  524,  528,  531,   69,  526,  530,   69,  532,
-      535,   69,   69,  534,  539,  537,  536,   69,   69,   69,
-       69,  541,   69,  540,  538,  542,   69,   69,  546,   69,
-      548,  533,  543,   69,  547,   69,   69,   69,  544,  549,
-
-      545,  551,  550,   69,   69,  552,   69,  555,   69,   69,
-       69,  557,   69,   69,   69,  559,  553,  554,  556,  560,
-       69,   69,  562,  561,   69,   69,  558,  564,   69,   69,
-       69,   69,  563,  567,  569,   69,   69,   69,  574,  565,
-      570,   69,   69,   69,   69,  577,  566,   69,   69,  568,
-      571,  578,  573,   69,  572,   69,   69,   69,  580,  579,
-      575,  576,   69,   69,   69,   69,   69,  130,  585,  584,
-      583,  581,  586,   69,   69,  582,   69,   69,  587,  588,
-      592,   69,  589,  590,  139,   69,  591,   69,  595,  594,
-      593,  596,   69,   69,  598,   69,  601,   69,   69,   69,
-
-       69,   69,  599,  603,  600,   69,  606,   69,   69,   69,
-      604,   69,   69,  597,   69,  607,   69,  602,  605,   69,
-      618,   69,   69,  608,  615,  617,  619,   69,  620,  616,
-      621,   69,   69,  609,   69,   69,  629,  630,   69,  610,
-       69,   69,   69,  611,  632,  702,  612,  633,   69,  634,
-       69,  635,   69,  613,  641,  636,  614,   69,  622,  623,
-       69,  624,   69,  631,  625,   69,  637,  638,   69,  626,
-       69,  639,   69,   69,   69,  627,  628,  640,   69,  642,
-       69,  646,  645,   69,   69,  650,   69,   69,   69,  649,
-      643,  651,  644,  647,  652,   69,   69,   69,  653,   69,
-
-       69,  648,   69,  654,   69,  657,   69,  660,  655,  658,
-      656,  661,   69,  659,   69,  664,   69,   69,   69,   69,
-       69,   69,   69,  662,  663,  668,   69,  666,  667,   69,
-      670,   69,   69,   69,  673,  669,  665,   69,  676,   69,
-       69,  671,  674,   69,   69,   69,   69,   69,  682,  139,
-       69,   69,   69,  675,  681,   69,  687,   69,  677,  678,
-      685,   69,  679,  680,  683,  691,  684,  688,   69,  686,
-       69,  690,  689,  692,   69,   69,   69,   69,   69,  693,
-      694,  696,   69,  698,  699,   69,  695,   69,  700,   69,
-      703,   69,  705,   69,   69,   69,  707,  139,  697,   69,
-
-       69,   69,   69,   69,  709,  701,   69,   69,   69,  720,
-      721,  704,  706,   69,  708,   69,   69,  712,   69,   69,
-      710,  726,  724,  902,   69,   69,  711,  713,   69,   69,
-      722,  714,   69,  715,  725,   69,   69,  716,  723,  717,
-      729,   69,   69,  727,  718,  735,  728,  731,   69,  719,
-      730,   69,   69,  733,  738,  734,  137,  732,  737,   69,
-      739,   69,   69,  740,   69,  736,   69,   69,  741,   69,
-      742,  745,   69,   69,  748,   69,  744,  750,   69,   69,
-      749,  746,  753,   69,  747,   69,  755,   69,  743,  754,
-      756,   69,  751,   69,   69,  759,   69,   69,  752,   69,
-
-       69,  760,   69,   69,   69,   69,   69,  758,  762,   69,
-      766,   69,  757,  764,  770,   69,  761,   69,  763,   69,
-      769,   69,  765,  768,   69,   69,  767,   69,   69,  774,
-      775,   69,  776,   69,  771,  772,  773,  777,   69,  778,
-      779,   69,  782,   69,  780,   69,  783,   69,   69,  781,
-       69,  784,   69,   69,  785,  786,   69,  787,   69,  791,
-       69,  788,   69,  789,   69,   69,   69,  794,   69,  795,
-       69,  796,   69,  790,  798,   69,  793,  799,   69,  792,
-       69,  800,  797,  802,   69,   69,   69,   69,  801,   69,
-       69,   69,  807,  803,  808,   69,  813,   69,  810,  806,
-
-       69,   69,  811,  804,   69,  805,  814,   69,  809,  812,
-       69,   69,  816,   69,  820,  815,   69,   69,   69,   69,
-       69,  818,  819,  817,   69,   69,  822,   69,   69,  135,
-      829,  830,   69,   69,  821,   69,   69,  831,  823,  826,
-       69,   69,  827,  825,   69,  824,  832,  833,  828,  835,
-       69,   69,   69,   69,  834,   69,  841,   69,   69,  838,
-       69,   69,   69,   69,  846,  836,   69,  844,  839,   69,
-      837,  847,  842,   69,  840,   69,  848,   69,  843,   69,
-      850,   69,  845,   69,   69,   69,  853,  849,  852,  855,
-       69,   69,   69,  851,  857,   69,   69,   69,   69,   69,
-
-      858,   69,  854,  861,  856,   69,   69,  859,   69,  862,
-      860,  866,   69,   69,   69,   69,   69,  863,  870,  865,
-      864,  867,  869,   69,  872,   69,  871,  875,  868,   69,
-      874,  876,   69,   69,  873,  877,   69,   69,  880,   69,
-      883,   69,  882,   69,  884,   69,  879,   69,  878,   69,
-       69,   69,  881,   69,  885,  886,   69,  887,  889,  891,
-      888,  890,  892,  893,   69,   69,   69,   69,   69,  894,
-      895,   69,   69,  901,   69,   69,  903,   69,  904,   69,
-      896,   69,  134,   69,   69,  897,   69,  898,  907,  899,
-      905,  900,  908,   69,  912,  906,  909,   69,  910,   69,
-
-      911,  915,   69,  917,   69,   69,   69,  913,  914,  919,
-       69,   69,   69,   69,  920,  923,   69,  921,  925,   69,
-      918,   69,  927,   69,   69,  922,  926,  916,   69,   69,
-       69,   69,  932,  924,  929,  931,  930,   69,  936,   69,
-       69,  937,   69,   69,  928,  934,   69,  935,   69,  939,
-       69,  940,   69,  938,   69,  933,  943,   69,   69,   69,
-       69,  947,   69,  942,   69,   69,   69,   69,   69,  941,
-       69,  953,   69,   69,   69,   69,  948,  951,  944,  945,
-      957,   69,  949,  946,  950,  952,  958,   69,  954,   69,
-       69,  956,   69,  961,  960,  962,   69,  955,  965,  963,
-
-       69,  964,  968,   69,  959,  966,   69,   69,   69,   69,
-      967,   69,  969,   69,   69,   69,   69,  970,   69,  974,
-       69,   69,  977,   69,   69,   69,   69,   69,  971,   69,
-      985,  973,   69,  975,  984,   69,  976,  972,  978,  980,
-      979,  981,  982,  983,   69,   69,   69,   69,   69,  986,
-      987,  132,   69,  990,  988,  993,  991,  992,  994,   69,
-       69,  989, 1001,   69,   69,  995,   69,  996,  997,   69,
-       69,   69,   69,   69,  998, 1003, 1000,  999, 1005, 1004,
-       69,   69, 1006,   69,   69,   69,   69,   69,   69, 1012,
-       69, 1002, 1007, 1011,   69,   69,   69,   69,   69,   69,
-
-     1008,   69, 1020,   69, 1010, 1013, 1021, 1014,   69, 1015,
-     1009, 1017, 1026, 1019, 1016, 1023,   69, 1018,   69,   69,
-     1022,   69,   69, 1024,   69, 1025, 1029,   69, 1027,   69,
-     1030, 1033,   69,   69, 1034, 1028,   69, 1035,   69, 1038,
-       69,   69,   69, 1031,   69, 1040, 1042, 1032,   69, 1041,
-       69,   69, 1043,   69, 1036, 1044,   69,   69, 1037, 1039,
-     1045,   69, 1046,   69,   69, 1047,   69, 1048,   69, 1050,
-     1052,   69,   69, 1054,   69,   69,   69, 1049,   69,   69,
-     1057, 1051, 1060,   69, 1059,   69, 1056,   69, 1053,   69,
-     1063,   69,   69,   69,   69,   69, 1055, 1058, 1064,   69,
-
-       69, 1062, 1069, 1061, 1067,   69,   69,   69, 1071,   69,
-     1070, 1065, 1066,   69, 1068, 1073, 1075,   69,   69, 1072,
-       69, 1074,   69, 1079, 1077, 1076,   69,   69,   69,   69,
-     1085, 1082,   69, 1078, 1083,   69,   69, 1086, 1080,   69,
-       69,   69, 1092, 1090, 1088, 1087, 1084, 1081, 1091,   69,
-       69,   69,   69,   69, 1089, 1097,   69, 1096,   69,   69,
-       69, 1100,   69, 1099, 1101,   69,   69, 1093,   69, 1094,
-       69, 1095, 1108,   69,   69,   69,   69,   69,   69, 1098,
-       69, 1113,   69, 1102, 1105, 1106, 1103, 1107, 1104,   69,
-       69,   69, 1111,   69, 1114, 1109, 1110,   69, 1116,   69,
-
-       69, 1112, 1122,   69,   69, 1115, 1117, 1123, 1120, 1118,
-       69,   69,   69, 1121,   69, 1119, 1124, 1131,   69, 1127,
-       69, 1126,   69, 1130, 1132,   69, 1125, 1128,   69,   69,
-     1129,   69,   69,   69,   69,   69,   69, 1141,   69,   69,
-     1133, 1134,   69,   69, 1144, 1136, 1138, 1135, 1137,   69,
-     1145, 1143, 1147, 1140, 1142, 1148,   69, 1150, 1139,   69,
-       69, 1153,   69,   69, 1146, 1152,   69,   69, 1156, 1154,
-       69,   69,   69,   69, 1149, 1158,   69, 1151,   69, 1160,
-       69, 1159,   69, 1157,   69, 1164,   69, 1155,   69, 1161,
-       69,   69, 1168, 1175,   69,   69, 1162,   69, 1165, 1163,
-
-     1169,   69, 1166,   69,   69,   69, 1167,   69, 1170, 1171,
-     1172,   69, 1174,   69, 1173,   69, 1181,   69, 1177, 1176,
-       69,   69,   69, 1185,   69, 1178, 1180, 1179, 1184, 1182,
-       69, 1187,   69, 1186,   69,   69, 1190,   69, 1183, 1188,
-       69,   69,   69,   69, 1189,   69, 1192,   69,   69,   69,
-       69, 1193, 1191, 1196, 1202, 1194, 1197, 1201,   69,   69,
-     1195,   69,   69,   69, 1200, 1206,   69,   69,  130, 1198,
-     1199, 1208,   69, 1209,   69,   69,   69,   69,   69, 1210,
-     1211, 1204, 1203, 1205,   69,   69,   69, 1207, 1213, 1212,
-     1215, 1217,   69,   69, 1214,   69,   69, 1218, 1219,   69,
-
-       69, 1226, 1216,   69, 1224,   69,   69,   69,   69, 1230,
-       69, 1220, 1221, 1222,   69,   69, 1232,   69, 1223,   69,
-     1225, 1228,   69, 1235,   69, 1227, 1237,   69,   69, 1229,
-       69,   69,   69, 1236,   69, 1242,   69, 1233, 1239, 1240,
-     1231, 1234,   69, 1238,   69, 1246,   69, 1245,   69, 1249,
-       69, 1250, 1251,   69,   69, 1248,   69,   69, 1241,   69,
-     1244,   69, 1243,   69, 1252,   69, 1247,   69, 1257,   69,
-     1253,   69,   69, 1260,   69,   69,   69, 1254, 1273, 1256,
-       69,   69, 1255,   69, 1264,   69,   69, 1258,   69, 1261,
-     1266, 1263, 1265,   69, 1262, 1267,   69, 1259,   69, 1268,
-
-     1270,   69, 1274,   69, 1269, 1275, 1271, 1272, 1277, 1276,
-       69,   69, 1280,   69,   69,   69,   69,   69,   69, 1282,
-     1285,   69,   69, 1279, 1278,   69, 1281, 1287, 1283,   69,
-     1290,   69,   69, 1288, 1289, 1291,   69, 1292,   69,   69,
-       69,   69,   69, 1284, 1286,   69, 1294, 1295,   69,   69,
-     1297, 1296, 1299, 1298,   69,   69, 1302,   69,   69, 1293,
-       69,   69,   69,   69,   69,   69, 1300, 1301, 1307, 1304,
-     1308, 1309,   69, 1311,   69,   69,   69, 1310, 1303, 1305,
-       69, 1306,   69,   69, 1312, 1316,   69,   69, 1319, 1314,
-     1317, 1315, 1313,   69,   69, 1321,   69, 1318, 1322, 1323,
-
-       69,   69,   69,   69, 1320,   69, 1326,   69, 1324,   69,
-       69,   69, 1327,   69,   69,   69,   69,   69, 1337,   69,
-       69, 1329, 1325, 1330, 1336, 1331,   69,   69, 1328, 1333,
-       69, 1339,   69,   69, 1340, 1334, 1332, 1335, 1338, 1341,
-     1343,   69,   69,   69,   69, 1346, 1342, 1345,   69, 1347,
-       69,   69, 1351, 1348,   69,   69,   69,   69,   69, 1344,
-     1352,   69, 1357,   69, 1354,   69, 1358, 1353, 1349,   69,
-       69, 1350,   69, 1361,   69, 1356,   69, 1355,   69, 1362,
-       69, 1369, 1363,   69, 1359,   69,   69, 1367, 1364,   69,
-     1360,   69, 1365, 1368,   69, 1366, 1371,   69, 1370,   69,
-
-       69,   69, 1372,   69,   69,   69,   69, 1376,   69, 1374,
-     1377,   69, 1373, 1381,   69, 1380, 1375, 1382, 1378, 1383,
-       69,   69,   69,   69, 1387,   69, 1385, 1388, 1386,   69,
-     1379, 1389,   69, 1390, 1392,   69,   69, 1394,   69,   69,
-     1384,   69, 1395,   69,   69, 1393,   69, 1398,   69, 1391,
-       69, 1396,   69, 1399, 1400,   69,   69,   69,   69,   69,
-       69, 1397, 1402, 1405, 1406, 1408,   69,   69,   69, 1401,
-       69, 1404, 1409, 1403,   69, 1407,   69,   69,   69, 1411,
-       69,   69, 1410,   69, 1420,   69, 1412,   69,   69, 1413,
-     1421,   69, 1418,   69,   69,   69, 1425, 1416, 1920, 1414,
-
-       69, 1415, 1417, 1428, 1419, 1423, 1422, 1424, 1426,   69,
-     1427,   69,   69, 1429, 1430,   69, 1431,   69, 1432,   69,
-     1434,   69,   69, 1436,   69, 1437,   69,   69,   69, 1440,
-       69, 1433,   69, 1439, 1442,   69,   69,   69,   69,   69,
-     1435, 1445,   69, 1444,   69, 1446, 1438, 1448,   69,   69,
-       69, 1441, 1452,   69, 1443,   69,   69, 1450, 1449,   69,
-     1447, 1457,   69, 1456,   69, 1459,   69,   69, 1451,   69,
-     1453, 1455,   69, 1461,   69,   69,   69,   69, 1454, 1464,
-       69, 1463,   69, 1458, 1462, 1468,   69,   69,   69, 1473,
-     1466,   69,   69, 1460,   69, 1470, 1474, 1471,   69,   69,
-
-       69, 1465, 1469, 1467, 1478, 1472,   69, 1477, 1476,   69,
-       69, 1479,   69,   69,   69,   69,   69, 1920, 1475, 1480,
-     1481,   69, 1482, 1484, 1486, 1485,   69, 1483, 1489, 1490,
-       69, 1487, 1491,   69,   69, 1488,   69, 1493,   69,   69,
-       69,   69, 1497,   69, 1500,   69,   69, 1498, 1492, 1499,
-     1494,   69,   69, 1495,   69,   69, 1501,   69,   69, 1496,
-     1507, 1504,   69, 1506,   69,   69,   69, 1920, 1503, 1511,
-     1508, 1510, 1502,   69,   69, 1505,   69,   69, 1509, 1513,
-       69, 1512,   69, 1515, 1516,   69,   69, 1519,   69, 1521,
-     1514, 1518, 1520,   69,   69,   69, 1522,   69, 1517,   69,
-
-       69,   69,   69, 1528,   69, 1525,   69, 1530,   69,   69,
-     1533,   69,   69, 1523, 1527, 1529,   69,   69, 1535,   69,
-     1526, 1524, 1534,   69, 1532,   69, 1531,   69, 1537, 1538,
-       69, 1539,   69, 1536, 1540,   69,   69, 1541,   69,   69,
-       69,   69, 1548,   69,   69, 1542, 1546,   69, 1543,   69,
-     1544, 1545,   69, 1549,   69,   69,   69,   69, 1555,   69,
-     1547,   69,   69,   69, 1556, 1552,   69, 1559, 1560, 1551,
-     1554, 1561,   69, 1550, 1562,   69,   69, 1557, 1553,   69,
-     1563,   69,   69, 1558,   69,   69, 1564,   69,   69,   69,
-     1571, 1572,   69, 1568, 1565,   69, 1573,   69,   69,   69,
-
-       69,   69, 1567, 1566, 1574, 1569, 1570,   69, 1580,   69,
-     1575,   69,   69, 1581,   69,   69, 1576, 1577,   69, 1579,
-     1584,   69,   69, 1578, 1587,   69, 1585, 1583,   69, 1582,
-       69, 1590, 1591,   69, 1586,   69, 1594,   69,   69,   69,
-       69, 1588, 1595,   69, 1597, 1589, 1598,   69, 1593,   69,
-     1592, 1600,   69,   69, 1596,   69, 1599, 1602,   69, 1603,
-       69,   69, 1604,   69, 1606,   69,   69,   69, 1601,   69,
-     1607, 1608,   69,   69,   69, 1605,   69, 1610, 1612, 1613,
-     1615,   69, 1609, 1616,   69,   69, 1639, 1611,   69, 1619,
-       69, 1614, 1617, 1618,   69, 1620, 1621,   69, 1622,   69,
-
-       69, 1624,   69,   69,   69,   69,   69, 1625,   69, 1626,
-       69, 1627,   69, 1623,   69, 1630, 1629, 1632,   69,   69,
-     1628,   69,   69,   69, 1631,   69, 1637,   69,   69,   69,
-     1635, 1636, 1634, 1642,   69,   69, 1633, 1638,   69, 1646,
-       69,   69, 1645, 1640, 1644,   69, 1641,   69, 1643, 1647,
-     1648,   69,   69,   69,   69,   69, 1649, 1651,   69, 1654,
-     1655,   69,   69, 1657, 1650,   69, 1652,   69, 1658, 1653,
-     1659,   69, 1660,   69,   69, 1656, 1661,   69, 1664, 1665,
-       69,   69,   69,   69,   69, 1662, 1666, 1667, 1663, 1671,
-     1670, 1668,   69,   69,   69,   69,   69,   69, 1672,   69,
-
-       69, 1675, 1679,   69, 1669,   69,   69,   69,   69,   69,
-     1683,   69, 1673, 1674, 1678, 1676, 1681,   69, 1684, 1677,
-       69,   69,   69, 1685, 1680, 1682, 1686,   69,   69, 1692,
-       69, 1687,   69,   69,   69, 1693, 1689,   69, 1694, 1696,
-       69, 1697, 1690,   69,   69, 1700, 1688,   69, 1691, 1701,
-       69,   69, 1695, 1698,   69,   69,   69,   69, 1699,   69,
-     1702,   69, 1707, 1703, 1704,   69, 1708,   69, 1705,   69,
-     1709,   69, 1710,   69, 1711,   69, 1706, 1712, 1713,   69,
-     1714, 1716,   69,   69, 1721, 1720,   69, 1718,   69, 1715,
-       69, 1722,   69,   69, 1725,   69, 1717,   69,   69,   69,
-
-       69, 1719, 1726,   69,   69,   69, 1727, 1723, 1724, 1731,
-       69, 1730, 1733,   69,   69, 1728, 1735,   69,   69, 1729,
-     1736,   69,   69, 1737, 1738,   69,   69,   69,   69, 1734,
-       69, 1732,   69, 1742, 1739, 1745,   69, 1746,   69,   69,
-     1743,   69, 1750,   69,   69, 1740, 1741, 1751,   69, 1747,
-     1744, 1748,   69, 1752,   69,   69,   69,   69, 1755, 1758,
-     1753, 1749, 1756,   69,   69, 1761,   69, 1762,   69,   69,
-       69,   69,   69, 1920, 1754, 1757, 1764, 1766, 1767,   69,
-     1759, 1760, 1768,   69, 1765, 1769,   69,   69, 1763, 1771,
-       69,   69, 1770,   69, 1772, 1773,   69,   69,   69, 1777,
-
-       69,   69,   69, 1780,   69, 1774, 1778, 1776,   69,   69,
-     1779,   69,   69, 1781,   69,   69,   69, 1775, 1920, 1784,
-       69,   69,   69, 1786, 1785,   69,   69, 1794,   69, 1782,
-     1792, 1783, 1795,   69, 1787,   69, 1788,   69, 1789, 1790,
-       69, 1796,   69, 1791, 1797,   69, 1793,   69, 1799,   69,
-       69, 1798,   69, 1800, 1801, 1802,   69, 1803,   69, 1806,
-       69, 1805, 1807,   69, 1808,   69,   69,   69, 1804,   69,
-       69, 1809,   69,   69, 1920, 1813,   69, 1814, 1816,   69,
-     1817,   69, 1811, 1818,   69, 1810,   69, 1820,   69,   69,
-     1812, 1823, 1815,   69, 1822, 1819, 1824,   69, 1826,   69,
-
-       69, 1821, 1825,   69,   69,   69,   69,   69,   69, 1828,
-       69, 1832,   69,   69, 1827,   69, 1833,   69,   69,   69,
-       69,   69, 1831,   69, 1829, 1830, 1836, 1835,   69,   69,
-     1834, 1837, 1844,   69, 1846,   69, 1838, 1839, 1845, 1840,
-       69, 1843,   69, 1842,   69, 1841, 1847,   69,   69, 1848,
-     1852,   69,   69, 1849,   69,   69, 1857, 1851, 1854,   69,
-       69,   69, 1858,   69,   69, 1850, 1853,   69,   69, 1855,
-     1856,   69,   69,   69, 1859,   69, 1860,   69, 1920,   69,
-       69, 1870, 1862, 1861, 1867, 1864, 1865,   69,   69,   69,
-     1863,   69, 1868, 1871, 1866,   69, 1869,   69, 1875,   69,
-
-     1872,   69, 1873,   69, 1876,   69, 1877, 1880, 1874,   69,
-     1878,   69,   69,   69,   69,   69,   69,   69, 1883,   69,
-     1879,   69, 1887, 1920, 1882,   69,   69, 1890, 1881, 1886,
-     1888,   69, 1891, 1884, 1885,   69, 1889,   69, 1894,   69,
-     1892, 1895,   69,   69, 1893,   69, 1896,   69,   69,   69,
-     1897,   69, 1899,   69, 1901,   69, 1902,   69, 1905,   69,
-       69,   69, 1908,   69, 1898, 1909,   69, 1900, 1911,   69,
-     1910,   69, 1903,   69, 1904, 1912,   69,   69, 1906, 1907,
-     1913,   69, 1914,   69, 1918,   69, 1915, 1919,   69, 1920,
-     1916, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-
-     1920, 1920, 1917,   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,
-     1920,   72,   72,   72,   72,  129,  129, 1920, 1920, 1920,
-      129,  129,  131,  131, 1920, 1920,  131, 1920,  131,  133,
-     1920, 1920, 1920, 1920, 1920,  133,  136,  136, 1920, 1920,
-     1920,  136,  136,  138, 1920, 1920, 1920, 1920, 1920,  138,
-      140,  140, 1920,  140,  140,  140,  140,   73,   73, 1920,
-       73,   73,   73,   73,   13, 1920, 1920, 1920, 1920, 1920,
-
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920
+      327,  325,  326,   69,  330,  331,   69,  334,  336,   69,
+
+       69,  338,  339,  332,  132,  337,  333,  340,   69,   69,
+      335,   69,  341,  342,   69,  344,  343,  347,   69,   69,
+      345,   69,  349,  346,  348,   69,   69,   69,   69,  354,
+       69,  351,   69,   69,   69,   69,  357,  356,  358,  352,
+      350,   69,   69,   69,   69,   69,   69,  364,  353,  359,
+      355,  363,   69,   69,   69,   69,  366,  360,  365,  369,
+      361,  381,  362,   69,  367,  368,  371,   69,  370,  373,
+      383,  139,   69,   69,  384,   69,  382,  130,   69,  389,
+       69,   69,  372,   69,   69,  374,  375,   69,  387,   69,
+       69,  386,  385,   69,  393,  376,  392,  377,  378,  379,
+
+      388,  390,  380,  395,   69,  394,   69,  391,   69,  399,
+       69,   69,   69,  396,   69,   69,  397,  401,  402,  403,
+      398,   69,   69,   69,   69,   69,  400,  408,  409,  407,
+       69,  404,   69,   69,  410,   69,   69,   69,  405,  406,
+       69,  419,  416,   69,  413,  415,   69,  412,   69,  418,
+      411,   69,  417,   69,   69,  422,   69,  414,   69,  421,
+       69,  423,   69,  424,  420,  425,  428,  426,   69,  427,
+       69,   69,   69,   69,  429,   69,   69,   69,  434,  430,
+      433,  431,   69,   69,  437,  432,   69,  435,   69,  438,
+       69,   69,   69,   69,   69,   69,  436,   69,  440,  448,
+
+      441,   69,   69,   69,   69,  443,   69,  439,  450,   69,
+      449,  447,  442,  444,  446,  445,  452,  451,  453,   69,
+       69,   69,   69,   69,  455,  459,  457,  456,   69,   69,
+       69,   69,  470,   69,  458,   69,   69,   69,  472,   69,
+      474,  454,  471,   69,  460,   69,  469,   69,  461,   69,
+      462,  467,  468,   69,  476,  463,  473,  464,   69,  478,
+      477,   69,   69,   69,   69,  465,   69,   69,  475,  482,
+       69,   69,  483,  479,  139,  466,  486,   69,  487,   69,
+      480,  488,  485,  489,  481,  484,   69,   69,   69,  493,
+       69,   69,  491,  495,   69,  490,  492,  497,   69,  494,
+
+       69,   69,   69,  496,   69,  500,  499,  503,   69,  506,
+       69,  504,   69,  507,   69,  498,   69,  508,  509,   69,
+      501,  505,   69,  502,  510,   69,  511,   69,   69,   69,
+      516,   69,  513,  515,   69,   69,   69,  512,  517,   69,
+      520,  518,   69,   69,   69,   69,   69,  514,  521,  523,
+       69,  527,   69,   69,  524,   69,  522,   69,  525,  519,
+      529,  531,  526,   69,   69,   69,   69,  530,  533,   69,
+      528,   69,  532,  534,   69,   69,  536,  538,   69,  537,
+      539,   69,  542,   69,   69,   69,   69,   69,  544,  543,
+       69,  546,  549,  541,  540,  535,   69,   69,   69,  545,
+
+      551,  139,  547,  550,  548,   69,   69,   69,   69,  552,
+      554,   69,  553,  558,  555,   69,   69,   69,   69,   69,
+      560,  556,   69,   69,  557,  559,  563,  562,   69,   69,
+      564,   69,   69,   69,  565,  561,   69,   69,  566,  567,
+      572,  568,   69,   69,   69,   69,  569,  577,  570,   69,
+       69,  573,   69,  571,   69,  580,   69,   69,  574,   69,
+      576,  581,  575,   69,  583,   69,   69,  582,  578,  579,
+       69,   69,   69,  587,   69,   69,  588,  590,   69,  584,
+      591,  589,   69,  586,  585,   69,   69,  139,   69,  593,
+       69,   69,  597,  598,  594,  599,  592,  596,   69,   69,
+
+      595,   69,  601,   69,  604,   69,   69,   69,  603,   69,
+      602,  606,   69,  609,   69,   69,   69,  607,   69,  600,
+      610,   69,   69,  605,  608,   69,   69,   69,  621,   69,
+      622,  618,  611,  137,  620,   69,  623,  624,  619,   69,
+      612,   69,   69,   69,  632,  633,  613,   69,   69,  658,
+      614,  635,   69,  615,  634,  636,   69,   69,  638,  637,
+      616,   69,  639,  617,   69,  625,  626,   69,  627,   69,
+      640,  628,  641,   69,   69,   69,  629,  642,  643,   69,
+      645,  644,  630,  631,   69,   69,   69,  649,   69,   69,
+       69,   69,  135,  648,  655,  646,  653,  654,   69,   69,
+
+      656,   69,  651,  647,  650,   69,   69,   69,  652,  657,
+       69,   69,   69,   69,   69,  659,  662,   69,  660,  661,
+      663,  665,   69,  666,  668,  667,   69,   69,   69,   69,
+       69,  664,   69,  672,   69,  674,  670,  671,   69,   69,
+       69,   69,  677,   69,   69,  669,  673,   69,  680,   69,
+      678,   69,   69,  675,   69,   69,  686,   69,  685,   69,
+       69,  679,  681,   69,  682,  134,  689,  692,   69,  683,
+       69,  684,  687,  690,  688,   69,  691,  694,  695,  696,
+      693,   69,   69,   69,   69,  697,   69,  700,   69,   69,
+      702,  703,   69,   69,  698,  704,   69,   69,  699,  707,
+
+       69,  709,   69,   69,   69,  711,  139,   69,   69,  701,
+      706,  705,  713,   69,   69,   69,   69,   69,  724,   69,
+      708,  710,  712,  725,   69,   69,   69,  132,   69,  716,
+      728,   69,  714,   69,  743,   69,  717,  130,  715,   69,
+      726,   69,  718,  729,  719,  731,  730,  732,  720,  727,
+      721,   69,   69,   69,   69,  722,  733,   69,  735,  737,
+      723,   69,   69,   69,   69,  742,  734,   69,  736,  741,
+       69,  738,   69,  744,   69,   69,  740,   69,  745,  748,
+      746,   69,  739,   69,  752,   69,  749,  751,  750,   69,
+      753,  755,   69,  757,   69,   69,  759,  754,  747,  758,
+
+       69,   69,   69,  760,   69,  763,   69,   69,   69,   69,
+       69,  756,  764,   69,   69,   69,   69,  762,  766,   69,
+      770,  761,  768,   69,  767,  765,   69,  775,   69,   69,
+       69,   69,   69,  769,  791,  774,  771,  772,   69,  773,
+       69,   69,   69,  779,  778,  780,  781,  776,  777,   69,
+      783,  782,  784,   69,   69,  787,   69,   69,   69,  788,
+       69,   69,  789,   69,   69,  790,  785,   69,   69,   69,
+      786,  796,  792,   69,   69,   69,  793,   69,  794,  799,
+      800,   69,   69,  801,  795,  798,   69,  803,  797,  802,
+      804,   69,   69,   69,   69,  805,  807,   69,   69,   69,
+
+      806,   69,   69,   69,  812,   69,  813,   69,  815,   69,
+      808,  811,   69,  809,  816,   69,  818,  810,  819,  817,
+      814,   69,   69,   69,  820,  821,   69,   69,  825,  823,
+       69,  822,   69,   69,  824,   69,   69,   69,   69,  827,
+     1929,   69,  834,  835,   69,  826,   69,   69,   69,  836,
+       69,  831,  828,  832,   69,  830,   69,   69,   69,  837,
+      829,  833,  840,   69,  838,  842,   69,   69,  846,   69,
+      839,   69,   69,  841,  843,   69,   69,   69,  844,   69,
+      851,  849,  852,   69,   69,  845,  847,   69,   69,  848,
+      853,  855,   69,   69,   69,   69,  850,   69,  854,  858,
+
+      860,  857,   69,   69,   69,  856,  862,   69,   69,   69,
+       69,   69,  859,  863,   69,  866,  861,   69,  864,   69,
+      871,  867,  865,   69,   69,  875,   69,   69,   69,  868,
+       69,   69,  869,  874,  872,  870,  877,   69,   69,   69,
+      876,  881,  879,  873,  886,  882,   69,  878,   69,   69,
+      880,   69,  885,  901,   69,  888,   69,  889,  883,   69,
+       69,   69,  884,  887,  890,   69,   69,   69,  893,   69,
+      891,  892,   69,   69,  894,  898,  899,  895,   69,   69,
+       69,   69,   69,  896,  900,   69,  907,  908,   69,   69,
+       69,  897,   69,  909,  910,   69,  912,   69,   69,   69,
+
+       69,  902,   69,  911,  913,   69,  903,  918,  904,  914,
+      905,  916,  906,  915,   69,   69,  919,  917,  921,  923,
+       69,   69,  925,   69,  920,   69,   69,   69,  926,   69,
+      922,  927,  929,   69,  931,   69,  924,   69,  933,   69,
+       69,   69,  932,   69,   69,   69,  928, 1929,  935,  930,
+      937,   69,  936,   69,  938,   69,  942,  940,  943,  939,
+      934,   69,  941,   69,   69,  945,   69,   69,   69,  944,
+       69,  949,   69,   69,   69,  946,   69,  953,   69,  948,
+       69,   69,   69,   69,   69,   69,  947,   69,  959,   69,
+       69,   69,  954,  950,  951,  957,  963,   69,  955,  952,
+
+      956,  960,  958,  964,   69,   69,   69,  962,   69,  975,
+      961,  966,   69,  965,  968,   69,  967,  970,  969,   69,
+      971,   69,  974,  972,   69,   69,   69,   69,   69,  973,
+       69,   69,   69,   69,   69,  976,  980,   69,  983,   69,
+       69,   69,   69,   69,  977,   69,  979,   69,  981, 1929,
+      984, 1029,  978,  982,  986,   69,  985,  987,  988,   69,
+      989,   69,  991,  993,  990,   69,  992,   69,  997,   69,
+       69,   69,  999, 1000,  994,  996,  998,   69,   69,   69,
+     1001,   69,  995,   69, 1002, 1003,   69,   69, 1005,   69,
+       69, 1004, 1009,   69, 1006, 1007, 1010,   69, 1011,   69,
+
+       69,   69, 1012,   69,   69,   69,   69, 1019,   69, 1008,
+       69, 1018,   69, 1013,   69,   69,   69,   69, 1014, 1015,
+       69, 1027, 1024, 1017, 1929, 1020,   69, 1016,   69, 1021,
+     1032, 1028, 1026, 1022, 1023, 1030,   69, 1025,   69,   69,
+       69,   69,   69, 1031, 1036,   69, 1040,   69, 1037, 1034,
+       69,   69, 1033,   69, 1035, 1041,   69, 1042, 1045,   69,
+       69, 1038,   69,   69,   69, 1039, 1076, 1047, 1049, 1043,
+       69, 1048,   69,   69, 1050,   69, 1044, 1046, 1051,   69,
+       69,   69, 1053, 1052,   69, 1055,   69, 1054,   69, 1059,
+       69, 1057,   69,   69, 1061,   69,   69,   69, 1056,   69,
+
+       69, 1064,   69, 1058, 1929, 1066,   69, 1063, 1067,   69,
+       69, 1071, 1060,   69, 1070,   69,   69, 1062, 1065,   69,
+     1068,   69,   69,   69, 1069, 1078, 1080, 1077, 1074,   69,
+       69,   69,   69, 1082,   69, 1072, 1073,   69,   69,   69,
+     1086, 1075,   69, 1079, 1084,   69, 1081,   69, 1083,   69,
+       69, 1092, 1089,   69, 1087, 1090,   69,   69, 1093, 1094,
+       69, 1085, 1095, 1097, 1098, 1088,   69, 1091,   69,   69,
+       69, 1099, 1096,   69,   69, 1104,   69,   69,   69, 1103,
+       69,   69, 1106, 1108, 1100, 1107,   69, 1101,   69,   69,
+       69,   69,   69, 1102,   69, 1115,   69,   69,   69, 1105,
+
+       69, 1110,   69, 1113, 1112, 1114, 1109, 1120,   69, 1111,
+       69, 1118,   69,   69, 1116, 1121, 1117, 1122,   69, 1119,
+     1123, 1124,   69,   69, 1125, 1130,   69,   69,   69,   69,
+     1131,   69,   69, 1132, 1126,   69,   69, 1127, 1139,   69,
+     1134,   69, 1128,   69, 1136, 1133,   69, 1137, 1129,   69,
+     1138, 1135, 1140,   69,   69,   69, 1141, 1143,   69, 1142,
+       69,   69, 1149, 1144,   69,   69,   69, 1146,   69, 1929,
+     1145, 1152,   69, 1153, 1151,   69,   69, 1158, 1148,   69,
+     1150,   69,   69, 1147, 1160, 1155, 1157, 1154, 1156, 1161,
+       69,   69, 1164, 1159,   69,   69, 1162,   69,   69,   69,
+
+       69, 1163, 1166, 1168, 1165,   69,   69, 1172, 1167,   69,
+       69, 1169,   69,   69,   69,   69,   69, 1176, 1170, 1177,
+     1178, 1179, 1173,   69, 1171,   69,   69, 1174, 1183,   69,
+     1175,   69, 1180,   69,   69,   69,   69, 1189,   69,   69,
+     1185, 1182,   69,   69, 1929, 1184, 1186, 1187, 1181, 1192,
+     1190, 1193,   69,   69,   69, 1188, 1194, 1191, 1195,   69,
+       69, 1198,   69, 1197,   69, 1196,   69,   69,   69,   69,
+       69, 1200,   69,   69,   69, 1204, 1199, 1201,   69, 1202,
+     1210, 1205, 1209,   69, 1203,   69,   69,   69,   69, 1208,
+     1214,   69,   69, 1207, 1206, 1216,   69, 1217,   69, 1211,
+
+       69, 1219,   69,   69, 1218, 1212,   69, 1213, 1215,   69,
+     1221, 1223, 1220, 1225,   69,   69,   69, 1224,   69, 1226,
+     1222, 1227,   69, 1232,   69, 1234,   69,   69,   69,   69,
+       69, 1238,   69,   69, 1228, 1229, 1230,   69, 1240,   69,
+       69, 1231, 1236,   69, 1233,   69, 1243, 1235, 1244,   69,
+     1237,   69, 1245, 1246,   69,   69,   69,   69,   69, 1239,
+     1241, 1242, 1248,   69, 1251, 1249, 1247,   69, 1255,   69,
+       69,   69, 1254,   69, 1258, 1259, 1260,   69, 1257,   69,
+       69,   69,   69, 1250, 1252, 1253, 1261,   69,   69,   69,
+     1256, 1262,   69,   69,   69, 1266,   69, 1269,   69,   69,
+
+     1265,   69,   69,   69,   69,   69, 1273, 1263, 1264, 1274,
+       69, 1267,   69, 1270, 1275,   69, 1272,   69, 1271, 1331,
+     1268, 1276,   69, 1277, 1279,   69,   69, 1282, 1278, 1281,
+     1287, 1280,   69, 1283,   69, 1284, 1286, 1289, 1288, 1285,
+       69,   69,   69,   69,   69,   69,   69, 1294, 1291, 1296,
+       69,   69,   69,   69,   69, 1290, 1298, 1292,   69, 1299,
+     1300,   69,   69, 1297, 1301,   69,   69,   69,   69,   69,
+       69, 1293, 1295, 1303, 1304, 1306, 1305,   69,   69,   69,
+     1308,   69, 1302, 1307, 1311,   69,   69,   69, 1312,   69,
+       69, 1309,   69, 1310, 1316, 1313, 1318, 1317,   69,   69,
+
+     1320,   69,   69,   69,   69, 1314,   69,   69, 1315, 1325,
+       69, 1321, 1319, 1323, 1328, 1324,   69,   69, 1326,   69,
+     1322, 1327,   69, 1330, 1332,   69,   69,   69,   69, 1335,
+       69,   69,   69, 1329, 1333, 1336,   69, 1334,   69,   69,
+       69,   69,   69, 1338, 1339,   69,   69, 1345, 1340,   69,
+       69, 1337, 1346,   69, 1342, 1350, 1349,   69, 1348,   69,
+     1343, 1344,   69, 1347, 1341, 1352,   69, 1354,   69,   69,
+     1355, 1351,   69,   69, 1356,   69, 1360, 1357,   69,   69,
+       69,   69,   69, 1361,   69, 1353, 1366,   69, 1363,   69,
+     1367, 1358, 1362,   69,   69, 1359, 1929, 1370, 1365,   69,
+
+       69, 1364,   69,   69, 1371, 1372,   69,   69, 1368, 1376,
+     1377,   69, 1373,   69, 1369, 1374,   69,   69, 1375,   69,
+       69,   69, 1378,   69, 1380, 1381,   69,   69, 1379,   69,
+     1382,   69, 1385, 1386,   69, 1390,   69,   69,   69, 1384,
+       69, 1383,   69, 1389, 1387,   69, 1391, 1392,   69, 1394,
+       69,   69,   69, 1396, 1397, 1395, 1388, 1393, 1398,   69,
+     1399,   69, 1400, 1401,   69, 1403,   69,   69, 1404,   69,
+     1402,   69, 1407,   69, 1409,   69, 1410,   69, 1408,   69,
+       69, 1405,   69,   69, 1411,   69,   69,   69, 1414, 1406,
+     1417,   69,   69,   69,   69,   69, 1418, 1413, 1420,   69,
+
+       69, 1416, 1419, 1412, 1415,   69,   69,   69,   69, 1429,
+       69,   69,   69,   69, 1422, 1430, 1448,   69,   69, 1427,
+     1421, 1929, 1423,   69, 1424, 1425, 1426, 1432,   69, 1428,
+     1431, 1433,   69, 1434, 1435,   69, 1436,   69, 1437, 1439,
+       69, 1438, 1440,   69, 1441,   69,   69, 1443,   69,   69,
+     1445,   69, 1446,   69,   69, 1449,   69,   69, 1451,   69,
+       69,   69,   69,   69, 1454, 1442,   69, 1444, 1453,   69,
+     1455, 1457,   69, 1447,   69,   69, 1450,   69, 1452, 1461,
+       69, 1459, 1458,   69,   69, 1456, 1466,   69, 1465,   69,
+     1468,   69,   69, 1460,   69, 1462,   69, 1470, 1464,   69,
+
+     1463,   69,   69, 1471,   69,   69, 1473,   69, 1467,   69,
+       69, 1472, 1477,   69,   69, 1482,   69, 1475, 1469, 1479,
+       69,   69, 1480,   69, 1478, 1483, 1476, 1474, 1481,   69,
+     1486,   69, 1485, 1487,   69, 1488, 1484,   69,   69,   69,
+       69,   69,   69, 1489, 1495, 1496,   69,   69, 1493, 1499,
+       69, 1490, 1492, 1491, 1494, 1500,   69,   69,   69, 1498,
+       69, 1502,   69,   69,   69, 1506, 1497,   69,   69,   69,
+     1503, 1501, 1507,   69,   69,   69, 1504, 1508, 1509,   69,
+     1510,   69, 1505, 1512,   69, 1513, 1516, 1511,   69, 1515,
+       69,   69,   69, 1514, 1517, 1520,   69, 1519,   69,   69,
+
+       69, 1522,   69, 1524, 1521,   69, 1518, 1525,   69,   69,
+     1528,   69, 1523, 1530, 1527, 1529,   69,   69,   69,   69,
+     1531,   69,   69, 1526,   69,   69,   69, 1534, 1537,   69,
+       69,   69, 1539, 1532, 1929, 1538, 1536,   69, 1542,   69,
+       69,   69,   69, 1533, 1535, 1543, 1541,   69, 1540, 1544,
+       69,   69, 1547,   69, 1550, 1545, 1546, 1548,   69, 1549,
+       69,   69,   69,   69,   69,   69, 1557,   69, 1551, 1555,
+       69,   69,   69, 1552, 1553, 1554,   69,   69,   69, 1558,
+       69,   69, 1564,   69,   69, 1556,   69, 1565,   69, 1561,
+       69, 1568, 1560, 1569, 1563, 1570,   69, 1559, 1571,   69,
+
+       69, 1562, 1566,   69, 1572, 1567,   69,   69,   69,   69,
+     1573,   69,   69,   69, 1580, 1581,   69, 1577, 1574,   69,
+     1582,   69,   69,   69,   69,   69, 1583, 1576, 1575, 1578,
+     1579,   69, 1589,   69, 1590,   69, 1584,   69,   69,   69,
+     1585, 1586,   69, 1588, 1593,   69,   69, 1587,   69,   69,
+     1594, 1596, 1592, 1591,   69, 1600,   69, 1599, 1595,   69,
+     1603,   69,   69,   69, 1601, 1597, 1604,   69, 1598, 1607,
+       69, 1606,   69, 1609,   69,   69,   69, 1602, 1605, 1611,
+       69, 1612,   69,   69, 1613, 1608,   69,   69,   69,   69,
+       69,   69, 1616, 1617, 1610, 1615,   69,   69, 1614, 1619,
+
+       69, 1621, 1622, 1624,   69, 1620, 1625,   69, 1618,   69,
+     1630,   69,   69, 1628,   69, 1623, 1626, 1627,   69, 1629,
+     1631,   69,   69, 1633,   69,   69,   69,   69,   69, 1634,
+       69, 1635,   69, 1636,   69, 1632,   69, 1639, 1638, 1641,
+       69,   69, 1637,   69,   69,   69, 1640,   69, 1646,   69,
+       69,   69, 1644, 1645, 1643, 1651,   69,   69, 1642, 1647,
+       69,   69,   69, 1929, 1648, 1654, 1655,   69, 1656, 1649,
+     1650, 1653,   69,   69,   69,   69, 1652, 1657,   69, 1660,
+       69,   69, 1658,   69, 1663, 1664,   69, 1659,   69, 1666,
+       69,   69, 1661, 1667,   69, 1662, 1668,   69, 1669,   69,
+
+     1673, 1665, 1670,   69,   69,   69, 1674,   69, 1672, 1671,
+       69, 1676,   69,   69, 1675, 1677,   69, 1680, 1679,   69,
+       69,   69,   69,   69, 1681, 1684,   69, 1678, 1688,   69,
+     1682, 1683,   69,   69,   69,   69, 1692,   69, 1693, 1685,
+     1687, 1690,   69, 1686,   69,   69,   69,   69,   69, 1695,
+       69, 1689, 1929, 1691, 1701,   69, 1698,   69, 1694,   69,
+     1702,   69, 1705,   69, 1703, 1696,   69,   69, 1699,   69,
+     1700, 1706, 1697, 1709,   69, 1707,   69, 1710,   69, 1704,
+       69,   69,   69,   69, 1708, 1712,   69, 1711, 1716, 1713,
+       69, 1717,   69, 1714,   69, 1718,   69, 1719,   69, 1720,
+
+     1722,   69, 1721, 1723, 1725,   69,   69, 1715, 1729,   69,
+       69, 1727,   69,   69, 1731,   69, 1724,   69,   69, 1734,
+       69,   69,   69,   69,   69, 1735, 1726,   69, 1728,   69,
+       69, 1736,   69, 1733, 1740, 1739, 1732, 1730,   69, 1737,
+     1742,   69,   69, 1738, 1744,   69, 1745,   69,   69, 1747,
+       69, 1743,   69, 1746,   69, 1751, 1741,   69, 1748,   69,
+     1754,   69, 1755,   69,   69, 1749,   69,   69, 1759,   69,
+       69, 1750,   69, 1752,   69, 1760,   69, 1761, 1757, 1753,
+       69,   69, 1762, 1756, 1764, 1765,   69, 1758, 1767,   69,
+     1770,   69,   69,   69, 1763, 1771,   69,   69,   69,   69,
+
+     1776,   69, 1773,   69, 1775, 1766, 1768, 1769, 1777,   69,
+       69, 1772, 1774, 1778,   69, 1779, 1780,   69,   69, 1781,
+     1782,   69,   69, 1784,   69, 1786,   69,   69,   69,   69,
+     1789,   69, 1787, 1785,   69,   69, 1783, 1788,   69, 1790,
+       69,   69,   69, 1793,   69,   69,   69,   69, 1791, 1795,
+     1929,   69, 1794, 1803,   69, 1792, 1801, 1804,   69,   69,
+     1796, 1797,   69, 1798, 1799, 1800, 1805, 1802, 1806,   69,
+       69, 1808,   69,   69, 1807, 1811,   69, 1809,   69,   69,
+       69,   69, 1815, 1816,   69, 1817,   69, 1810,   69, 1814,
+       69,   69,   69, 1812,   69, 1818,   69, 1813,   69, 1825,
+
+       69, 1822,   69, 1823, 1826,   69, 1820, 1827,   69,   69,
+       69, 1824,   69, 1819, 1830, 1821, 1829,   69, 1828,   69,
+     1831, 1833,   69,   69, 1835, 1832, 1834,   69,   69,   69,
+       69, 1838,   69, 1837,   69, 1841,   69,   69,   69,   69,
+     1842, 1836,   69,   69,   69,   69,   69,   69, 1839,   69,
+     1840,   69, 1844, 1845, 1853,   69, 1846, 1843, 1847,   69,
+     1854, 1849, 1848,   69, 1851, 1855,   69, 1852, 1856,   69,
+       69, 1850,   69,   69, 1861, 1857,   69, 1858, 1860,   69,
+     1863,   69,   69, 1866, 1859, 1867,   69, 1862,   69,   69,
+       69, 1864,   69,   69,   69,   69,   69,   69,   69,   69,
+
+     1868, 1865, 1869, 1876, 1877,   69, 1929, 1871, 1873, 1874,
+       69, 1870,   69, 1872,   69, 1879, 1875, 1880,   69,   69,
+       69, 1884,   69, 1881, 1878, 1882,   69, 1885,   69, 1883,
+       69, 1889,   69,   69,   69,   69,   69, 1886, 1887, 1892,
+       69, 1888,   69,   69, 1896,   69, 1891,   69,   69, 1899,
+     1897, 1890,   69, 1900, 1893, 1895,   69,   69,   69, 1894,
+       69, 1901, 1904,   69, 1902,   69, 1898, 1905,   69,   69,
+       69,   69, 1906,   69, 1908,   69, 1910, 1903, 1911,   69,
+       69, 1914,   69,   69,   69, 1917,   69, 1907,   69, 1909,
+     1918,   69,   69, 1919, 1912, 1920,   69,   69, 1913, 1921,
+
+       69, 1915, 1916,   69, 1922,   69, 1929, 1925, 1923, 1929,
+     1924, 1926, 1927,   69, 1928,   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, 1929,   72,   72,   72,   72,  129,  129,
+     1929, 1929, 1929,  129,  129,  131,  131, 1929, 1929,  131,
+     1929,  131,  133, 1929, 1929, 1929, 1929, 1929,  133,  136,
+      136, 1929, 1929, 1929,  136,  136,  138, 1929, 1929, 1929,
+     1929, 1929,  138,  140,  140, 1929,  140,  140,  140,  140,
+
+       73,   73, 1929,   73,   73,   73,   73,   13, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929
     } ;
 
-static yyconst flex_int16_t yy_chk[3835] =
+static yyconst flex_int16_t yy_chk[3848] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1513,7 +1517,7 @@ static yyconst flex_int16_t yy_chk[3835] =
         9,  161,   33,    6,    7,    7,    7,    7,    9,    7,
        10,   10,   10,   45,   45,    7,    8,    8,    8,    8,
        10,    8,   21,   33,  161,   21,   21,    8,   11,   11,
-       11,   11,   11,   11, 1926,   20,   29,   20,   20,   11,
+       11,   11,   11,   11, 1935,   20,   29,   20,   20,   11,
 
        20,   29,   24,   21,   75,   20,   24,   75,   11,   12,
        12,   12,   12,   12,   12,   83,   22,   22,   26,   26,
@@ -1524,7 +1528,7 @@ static yyconst flex_int16_t yy_chk[3835] =
        32,   32,   35,  103,   37,   32,   67,   31,   70,   37,
        36,   36,   70,   31,   76,   36,   77,   31,   76,   37,
        39,   32,   34,   37,   37,   36,   78,   34,   36,   78,
-       84,   34,   38,   38,   39,   38,   77,   34,  707,   39,
+       84,   34,   38,   38,   39,   38,   77,   34,  711,   39,
 
        34,   92,   78,   40,   40,   79,   92,   34,   40,   84,
        38,   56,   40,   56,   56,   64,   56,   64,   64,   66,
@@ -1549,9 +1553,9 @@ static yyconst flex_int16_t yy_chk[3835] =
       159,  154,  157,  157,  160,  159,  162,  158,  163,  160,
 
       162,  165,  168,  163,  183,  166,  167,  168,  169,  155,
-      156,  183,  171,  169,  156,  559,  165,  166,  172,  156,
+      156,  183,  171,  169,  156,  562,  165,  166,  172,  156,
       166,  170,  170,  173,  156,  174,  174,  170,  173,  178,
-      156,  156,  171,  175,  172,  176,  177,  179,  175,  559,
+      156,  156,  171,  175,  172,  176,  177,  179,  175,  562,
       176,  170,  179,  180,  175,  177,  181,  182,  180,  184,
       178,  181,  182,  185,  186,  187,  188,  189,  190,  185,
       192,  187,  184,  191,  193,  189,  195,  194,  191,  198,
@@ -1567,365 +1571,366 @@ static yyconst flex_int16_t yy_chk[3835] =
       237,  227,  231,  233,  235,  230,  234,  234,  233,  235,
       236,  238,  239,  232,  240,  236,  241,  241,  242,  243,
       237,  242,  244,  245,  246,  248,  244,  240,  247,  238,
-      248,  249,  250,  239,  249,  251,  252,  243,  253,  255,
-      247,  245,  246,  254,  250,  252,  256,  258,  256,  256,
-
-      258,  255,  251,  257,  257,  251,  254,  259,  260,  253,
-      261,  262,  263,  263,  265,  265,  264,  266,  269,  261,
-      262,  264,  268,  260,  259,  267,  270,  259,  271,  274,
-      267,  270,  266,  275,  268,  272,  273,  276,  269,  273,
-      272,  273,  277,  274,  279,  278,  276,  277,  271,  275,
-      278,  280,  275,  281,  275,  282,  283,  279,  284,  283,
-      289,  287,  286,  290,  294,  279,  292,  323,  281,  282,
-      287,  280,  284,  323,  291,  283,  285,  286,  285,  285,
-      288,  289,  290,  295,  288,  288,  292,  294,  285,  291,
-      285,  285,  285,  293,  296,  285,  297,  298,  293,  299,
-
-      300,  297,  301,  295,  299,  302,  303,  304,  305,  296,
-      307,  303,  298,  305,  301,  306,  306,  308,  306,  302,
-      300,  309,  310,  304,  311,  312,  311,  313,  314,  312,
-      307,  313,  316,  308,  315,  317,  310,  309,  318,  322,
-      131,  316,  320,  318,  317,  319,  314,  321,  315,  319,
-      325,  320,  321,  324,  316,  325,  327,  324,  326,  326,
-      322,  327,  328,  329,  329,  330,  331,  332,  333,  334,
-      330,  335,  335,  334,  336,  328,  332,  337,  341,  336,
-      333,  338,  338,  340,  340,  342,  343,  331,  344,  345,
-      348,  347,  349,  342,  351,  343,  353,  350,  337,  341,
-
-      352,  345,  350,  351,  353,  352,  349,  354,  344,  347,
-      348,  347,  354,  355,  357,  356,  358,  359,  355,  360,
-      358,  362,  361,  364,  360,  365,  378,  368,  369,  366,
-      368,  378,  359,  370,  370,  357,  355,  356,  361,  371,
-      362,  363,  363,  364,  365,  366,  367,  363,  369,  363,
-      373,  367,  372,  372,  374,  375,  367,  363,  376,  377,
-      379,  380,  382,  381,  371,  373,  374,  363,  382,  379,
-      375,  384,  386,  387,  385,  384,  388,  376,  381,  385,
-      380,  377,  389,  391,  386,  390,  390,  392,  393,  388,
-      389,  387,  392,  394,  395,  391,  394,  396,  397,  398,
-
-      393,  397,  396,  399,  400,  401,  401,  399,  399,  395,
-      402,  402,  404,  404,  403,  398,  407,  400,  398,  403,
-      405,  405,  406,  408,  409,  410,  411,  406,  408,  410,
-      412,  411,  414,  413,  412,  415,  416,  407,  413,  417,
-      415,  416,  418,  409,  419,  418,  420,  420,  421,  423,
-      418,  422,  414,  417,  418,  424,  422,  429,  425,  431,
-      424,  426,  419,  423,  426,  427,  421,  425,  428,  427,
-      429,  430,  432,  428,  433,  431,  430,  434,  435,  433,
-      438,  435,  436,  434,  432,  436,  439,  437,  440,  441,
-      442,  427,  437,  440,  441,  442,  443,  444,  438,  443,
-
-      439,  445,  444,  446,  447,  445,  445,  448,  450,  449,
-      451,  450,  448,  454,  458,  451,  446,  447,  449,  452,
-      453,  456,  453,  452,  452,  455,  450,  455,  457,  459,
-      460,  461,  454,  458,  460,  462,  463,  464,  465,  456,
-      461,  466,  467,  465,  468,  468,  457,  469,  470,  459,
-      462,  469,  464,  471,  463,  472,  473,  474,  471,  470,
-      466,  467,  475,  476,  480,  477,  483,  129,  476,  475,
-      474,  472,  477,  478,  479,  473,  481,  482,  478,  479,
-      483,  484,  480,  481,  485,  486,  482,  487,  486,  485,
-      484,  487,  488,  489,  489,  490,  492,  493,  495,  494,
-
-      496,  492,  489,  494,  490,  499,  497,  498,  500,  503,
-      495,  497,  506,  488,  510,  498,  509,  493,  496,  516,
-      510,   68,  511,  499,  503,  509,  511,  512,  512,  506,
-      513,  515,  589,  500,  501,  513,  515,  516,  517,  501,
-      522,  518,  520,  501,  518,  589,  501,  519,  519,  520,
-      521,  521,  527,  501,  527,  522,  501,  514,  514,  514,
-      528,  514,  524,  517,  514,  523,  523,  524,  525,  514,
-      529,  525,  526,  530,  531,  514,  514,  526,  533,  528,
-      532,  532,  531,  534,  535,  536,  536,  543,  546,  535,
-      529,  537,  530,  533,  538,  539,  537,  540,  539,  538,
-
-      541,  534,  542,  540,  544,  543,  545,  546,  541,  544,
-      542,  547,  547,  545,  548,  550,  549,  551,  553,  554,
-      550,  556,  555,  548,  549,  555,  558,  553,  554,  557,
-      557,  560,  562,  563,  560,  556,  551,  564,  563,  565,
-      566,  558,  560,  567,  569,  568,  570,  571,  569,   62,
-      574,  572,  576,  562,  568,  573,  574,  577,  564,  565,
-      572,  581,  566,  567,  570,  578,  571,  575,  575,  573,
-      578,  577,  576,  579,  582,  580,  583,  584,  579,  580,
-      581,  583,  585,  585,  586,  587,  582,  588,  587,  586,
-      590,  591,  592,  592,  593,  590,  594,  594,  584,  595,
-
-      596,  597,  598,  599,  596,  588,  603,  600,  602,  602,
-      603,  591,  593,  605,  595,  604,  608,  599,  606,  607,
-      597,  608,  606,  781,  616,  781,  598,  600,  601,  609,
-      604,  601,  610,  601,  607,  612,  611,  601,  605,  601,
-      611,  615,  613,  609,  601,  616,  610,  613,  614,  601,
-      612,  617,  618,  614,  619,  615,   57,  613,  618,  619,
-      620,  620,  621,  621,  622,  617,  623,  624,  621,  628,
-      621,  623,  625,  626,  626,  627,  622,  628,  629,  630,
-      627,  624,  631,  631,  625,  632,  634,  635,  621,  632,
-      635,  634,  629,  636,  637,  638,  639,  640,  630,  641,
-
-      638,  639,  642,  644,  643,  645,  646,  637,  641,  647,
-      645,  648,  636,  643,  649,  651,  640,  652,  642,  649,
-      648,  653,  644,  647,  654,  655,  646,  656,  657,  654,
-      655,  660,  656,  662,  651,  652,  653,  657,  658,  658,
-      659,  667,  663,  666,  660,  659,  663,  663,  668,  662,
-      664,  664,  665,  669,  664,  665,  670,  666,  671,  670,
-      672,  667,  673,  668,  674,  675,  676,  673,  677,  674,
-      680,  675,  679,  669,  677,  682,  672,  678,  678,  671,
-      681,  679,  676,  681,  683,  684,  685,  686,  680,  687,
-      689,  691,  686,  682,  687,  690,  693,  692,  690,  685,
-
-      695,  693,  691,  683,  697,  684,  694,  698,  689,  692,
-      699,  694,  696,  696,  700,  695,  701,  702,  700,  703,
-      704,  698,  699,  697,  706,  708,  702,  709,  710,   52,
-      711,  712,  713,  715,  701,  711,  712,  713,  703,  708,
-      716,  714,  709,  706,  717,  704,  714,  715,  710,  717,
-      718,  719,  720,  721,  716,  722,  723,  723,  724,  720,
-      725,  726,  727,  728,  728,  718,  729,  726,  721,  730,
-      719,  729,  724,  731,  722,  733,  730,  732,  725,  734,
-      732,  735,  727,  736,  737,  738,  735,  731,  734,  737,
-      740,  741,  742,  733,  740,  743,  744,  745,  746,  747,
-
-      741,  748,  736,  744,  738,  749,  750,  742,  751,  745,
-      743,  749,  755,  752,  757,  759,  756,  746,  754,  748,
-      747,  750,  752,  754,  756,  758,  755,  759,  751,  761,
-      758,  760,  762,  765,  757,  760,  760,  763,  763,  764,
-      766,  774,  765,  767,  767,  766,  762,  773,  761,  768,
-      769,  771,  764,  772,  768,  769,  770,  770,  772,  774,
-      771,  773,  775,  776,  777,  782,  778,  775,  776,  777,
-      778,  779,  780,  780,  784,  785,  782,  786,  784,  787,
-      779,  790,   51,  794,  789,  779,  791,  779,  787,  779,
-      785,  779,  788,  792,  791,  786,  788,  788,  789,  793,
-
-      790,  794,  795,  796,  796,  797,  802,  792,  793,  798,
-      798,  800,  801,  804,  800,  803,  803,  801,  805,  805,
-      797,  806,  807,  807,  808,  802,  806,  795,  810,  809,
-      811,  812,  812,  804,  809,  811,  810,  813,  817,  814,
-      815,  818,  821,  817,  808,  814,  818,  815,  819,  820,
-      822,  821,  823,  819,  820,  813,  824,  824,  825,  826,
-      827,  828,  829,  823,  830,  831,  828,  832,  834,  822,
-      833,  833,  835,  836,  842,  837,  829,  831,  825,  826,
-      837,  839,  829,  827,  830,  832,  838,  838,  834,  840,
-      845,  836,  844,  842,  840,  843,  847,  835,  845,  843,
-
-      843,  844,  848,  846,  839,  846,  850,  848,  849,  851,
-      847,  852,  849,  853,  854,  855,  856,  850,  857,  854,
-      858,  859,  857,  865,  863,  860,  861,  862,  851,  864,
-      865,  853,  867,  855,  864,  871,  856,  852,  858,  860,
-      859,  861,  862,  863,  866,  868,  869,  870,  882,  866,
-      867,   46,  872,  870,  868,  873,  871,  872,  874,  880,
-      873,  869,  882,  874,  875,  875,  876,  876,  878,  878,
-      879,  881,  883,  886,  879,  884,  881,  880,  885,  884,
-      884,  887,  885,  885,  888,  889,  892,  890,  893,  891,
-      894,  883,  886,  890,  891,  895,  897,  896,  898,  905,
-
-      887,  899,  899,  900,  889,  892,  900,  893,  901,  894,
-      888,  896,  905,  898,  895,  902,  902,  897,  903,  906,
-      901,  904,  907,  903,  908,  904,  908,  910,  906,  912,
-      908,  911,  911,  913,  912,  907,  914,  913,  915,  916,
-      920,  918,  931,  908,  916,  920,  922,  910,  921,  921,
-      930,  922,  924,  924,  914,  926,  926,  928,  915,  918,
-      928,  929,  929,  932,  933,  930,  934,  931,  936,  933,
-      935,  935,  937,  937,  938,  939,  940,  932,  941,  942,
-      940,  934,  944,  944,  942,  945,  939,  946,  936,  947,
-      947,  949,  950,  948,  952,  951,  938,  941,  948,  956,
-
-      953,  946,  953,  945,  951,  954,  961,  959,  955,  964,
-      954,  949,  950,  955,  952,  957,  960,  960,  962,  956,
-      957,  959,  965,  965,  962,  961,  966,  967,  968,  973,
-      969,  968,  970,  964,  968,  969,  971,  970,  966,  972,
-      974,  976,  976,  974,  972,  971,  968,  967,  975,  977,
-      978,  979,  980,  975,  973,  981,  982,  980,  983,  985,
-      981,  984,  984,  983,  985,  986,  987,  977,  988,  978,
-      989,  979,  992,  990,  991,  993,  994,  992,  995,  982,
-      996,  998,  998,  986,  989,  990,  987,  991,  988,  999,
-     1000, 1001,  995, 1005,  999,  993,  994, 1002, 1001, 1003,
-
-     1012,  996, 1007, 1007, 1008, 1000, 1002, 1008, 1005, 1002,
-     1010, 1009, 1011, 1005, 1014, 1003, 1009, 1015, 1013, 1012,
-     1017, 1011, 1015, 1014, 1016, 1016, 1010, 1013, 1018, 1019,
-     1013, 1020, 1021, 1024, 1022, 1025, 1026, 1026, 1027, 1029,
-     1017, 1018, 1028, 1031, 1029, 1020, 1022, 1019, 1021, 1030,
-     1030, 1028, 1031, 1025, 1027, 1031, 1032, 1034, 1024, 1035,
-     1036, 1037, 1034, 1038, 1030, 1036, 1037, 1039, 1040, 1038,
-     1041, 1045, 1042, 1040, 1032, 1042, 1046, 1035, 1047, 1045,
-     1048, 1042, 1050, 1041, 1051, 1049, 1053, 1039, 1054, 1046,
-     1049, 1059, 1054, 1062, 1062, 1055, 1047, 1061, 1050, 1048,
-
-     1055, 1058, 1051, 1056, 1057, 1063, 1053, 1067, 1056, 1057,
-     1058, 1064, 1061, 1065, 1059, 1066, 1068, 1069, 1064, 1063,
-     1070, 1068, 1071, 1072, 1072, 1065, 1067, 1066, 1071, 1069,
-     1073, 1074, 1074, 1073, 1076, 1077, 1078, 1078, 1070, 1076,
-     1079, 1080, 1081, 1082, 1077, 1083, 1080, 1085, 1084, 1087,
-     1086, 1081, 1079, 1084, 1089, 1082, 1085, 1088, 1088, 1089,
-     1083, 1090, 1091, 1092, 1087, 1093, 1093, 1094,   41, 1085,
-     1086, 1095, 1095, 1096, 1096, 1097, 1102, 1104,   14, 1097,
-     1098, 1091, 1090, 1092, 1109, 1098, 1099, 1094, 1101, 1099,
-     1103, 1105, 1105, 1101, 1102, 1103, 1106, 1106, 1107, 1108,
-
-     1110, 1111, 1104, 1107, 1109, 1112, 1111, 1114, 1115, 1116,
-     1116, 1108, 1108, 1108, 1117, 1118, 1118, 1119, 1108, 1120,
-     1110, 1114, 1121, 1121, 1123, 1112, 1124, 1124, 1125, 1115,
-     1127, 1126, 1128, 1123, 1129, 1129, 1130, 1119, 1126, 1127,
-     1117, 1120, 1133, 1125, 1131, 1134, 1135, 1133, 1136, 1137,
-     1134, 1138, 1139, 1139, 1137, 1136, 1138, 1142, 1128, 1140,
-     1131, 1141, 1130, 1143, 1140, 1145, 1135, 1144, 1145, 1146,
-     1141, 1147, 1148, 1148, 1149, 1150, 1151, 1142, 1160, 1144,
-     1152, 1154, 1143, 1160, 1152, 1158, 1153, 1146, 1156, 1149,
-     1154, 1151, 1153, 1159, 1150, 1155, 1155, 1147, 1164, 1156,
-
-     1157, 1157, 1161, 1161, 1156, 1162, 1158, 1159, 1163, 1162,
-     1162, 1165, 1166, 1163, 1167, 1168, 1169, 1166, 1170, 1168,
-     1171, 1174, 1172, 1165, 1164, 1171, 1167, 1173, 1169, 1177,
-     1177, 1176, 1173, 1174, 1176, 1178, 1178, 1179, 1179, 1180,
-     1181, 1184, 1182, 1170, 1172, 1183, 1181, 1182, 1186, 1188,
-     1184, 1183, 1188, 1186, 1189, 1191, 1192, 1192, 1193, 1180,
-     1194, 1195, 1196, 1200, 1197, 1198, 1189, 1191, 1197, 1194,
-     1198, 1199, 1202, 1202, 1203, 1210, 1199, 1200, 1193, 1195,
-     1204, 1196, 1205, 1211, 1202, 1207, 1207, 1213, 1212, 1204,
-     1210, 1205, 1203, 1212, 1214, 1214, 1215, 1211, 1215, 1216,
-
-     1216, 1218, 1219, 1221, 1213, 1220, 1220, 1222, 1218, 1223,
-     1226, 1224, 1221, 1225, 1227, 1228, 1232, 1229, 1232, 1231,
-     1233, 1223, 1219, 1224, 1231, 1225, 1234, 1235, 1222, 1227,
-     1236, 1234, 1238, 1240, 1235, 1228, 1226, 1229, 1233, 1236,
-     1239, 1239, 1241, 1242, 1243, 1242, 1238, 1241, 1244, 1243,
-     1245, 1246, 1247, 1244, 1249, 1248, 1250, 1247, 1252, 1240,
-     1248, 1253, 1254, 1254, 1250, 1255, 1255, 1249, 1245, 1256,
-     1257, 1246, 1265, 1258, 1259, 1253, 1261, 1252, 1258, 1259,
-     1260, 1265, 1260, 1262, 1256, 1263, 1266, 1263, 1261, 1272,
-     1257, 1268, 1262, 1264, 1264, 1262, 1268, 1269, 1266, 1271,
-
-     1273, 1275, 1269, 1278, 1277, 1279, 1280, 1275, 1282, 1272,
-     1277, 1287, 1271, 1281, 1281, 1280, 1273, 1282, 1278, 1283,
-     1283, 1284, 1285, 1286, 1287, 1289, 1285, 1288, 1286, 1290,
-     1279, 1288, 1288, 1289, 1293, 1293, 1294, 1295, 1295, 1297,
-     1284, 1296, 1296, 1298, 1303, 1294, 1308, 1299, 1300, 1290,
-     1305, 1297, 1299, 1300, 1301, 1301, 1306, 1304, 1307, 1309,
-     1314, 1298, 1304, 1307, 1308, 1310, 1310, 1312, 1311, 1303,
-     1315, 1306, 1311, 1305, 1313, 1309, 1317, 1318, 1319, 1313,
-     1321, 1320, 1312, 1322, 1324, 1324, 1314, 1325, 1332, 1315,
-     1325, 1327, 1321, 1326, 1328, 1329, 1329, 1319,   13, 1317,
-
-     1333, 1318, 1320, 1332, 1322, 1327, 1326, 1328, 1330, 1330,
-     1331, 1331, 1337, 1333, 1334, 1334, 1335, 1335, 1336, 1336,
-     1338, 1338, 1339, 1340, 1340, 1341, 1341, 1342, 1344, 1345,
-     1345, 1337, 1346, 1344, 1347, 1347, 1348, 1349, 1350, 1353,
-     1339, 1350, 1354, 1349, 1351, 1351, 1342, 1352, 1352, 1355,
-     1358, 1346, 1356, 1356, 1348, 1359, 1360, 1354, 1353, 1361,
-     1351, 1362, 1362, 1361, 1363, 1364, 1364, 1365, 1355, 1369,
-     1358, 1360, 1366, 1366, 1370, 1367, 1371, 1372, 1359, 1370,
-     1374, 1369, 1373, 1363, 1367, 1374, 1376, 1375, 1377, 1379,
-     1372, 1378, 1380, 1365, 1379, 1376, 1380, 1377, 1382, 1384,
-
-     1388, 1371, 1375, 1373, 1386, 1378, 1385, 1385, 1384, 1386,
-     1387, 1387, 1390, 1393, 1391, 1397, 1398,    0, 1382, 1387,
-     1388, 1395, 1388, 1391, 1395, 1393, 1396, 1390, 1398, 1399,
-     1399, 1396, 1401, 1401, 1402, 1397, 1403, 1403, 1404, 1405,
-     1406, 1407, 1407, 1409, 1411, 1411, 1410, 1409, 1402, 1410,
-     1404, 1412, 1413, 1405, 1414, 1416, 1412, 1415, 1417, 1406,
-     1418, 1415, 1421, 1417, 1419, 1418, 1422,    0, 1414, 1423,
-     1419, 1422, 1413, 1424, 1423, 1416, 1428, 1425, 1421, 1425,
-     1435, 1424, 1429, 1429, 1433, 1433, 1438, 1439, 1439, 1443,
-     1428, 1438, 1441, 1441, 1443, 1444, 1444, 1445, 1435, 1446,
-
-     1447, 1449, 1450, 1451, 1451, 1447, 1453, 1454, 1455, 1456,
-     1458, 1458, 1454, 1445, 1450, 1453, 1461, 1460, 1461, 1462,
-     1449, 1446, 1460, 1463, 1456, 1467, 1455, 1468, 1463, 1464,
-     1464, 1465, 1465, 1462, 1466, 1466, 1469, 1467, 1470, 1471,
-     1473, 1472, 1474, 1474, 1475, 1468, 1472, 1476, 1469, 1477,
-     1470, 1471, 1478, 1475, 1479, 1482, 1480, 1481, 1481, 1483,
-     1473, 1484, 1485, 1486, 1482, 1478, 1492, 1485, 1486, 1477,
-     1480, 1487, 1487, 1476, 1488, 1488, 1493, 1483, 1479, 1489,
-     1489, 1494, 1495, 1484, 1496, 1497, 1492, 1502, 1498, 1499,
-     1499, 1501, 1501, 1496, 1493, 1504, 1502, 1503, 1505, 1506,
-
-     1508, 1513, 1495, 1494, 1503, 1497, 1498, 1507, 1509, 1509,
-     1504, 1511, 1512, 1510, 1515, 1517, 1505, 1506, 1510, 1508,
-     1513, 1514, 1518, 1507, 1517, 1521, 1514, 1512, 1522, 1511,
-     1525, 1522, 1523, 1523, 1515, 1524, 1526, 1526, 1527, 1529,
-     1530, 1518, 1527, 1532, 1530, 1521, 1531, 1531, 1525, 1535,
-     1524, 1534, 1534, 1542, 1529, 1543, 1532, 1536, 1536, 1537,
-     1537, 1541, 1541, 1546, 1543, 1544, 1545, 1581, 1535, 1547,
-     1544, 1545, 1549, 1550, 1551, 1542, 1552, 1547, 1550, 1551,
-     1553, 1553, 1546, 1554, 1554, 1555, 1581, 1549, 1556, 1557,
-     1558, 1552, 1555, 1556, 1557, 1558, 1559, 1559, 1560, 1560,
-
-     1563, 1564, 1567, 1565, 1566, 1568, 1564, 1565, 1569, 1566,
-     1570, 1567, 1571, 1563, 1573, 1570, 1569, 1573, 1574, 1575,
-     1568, 1576, 1577, 1582, 1571, 1578, 1578, 1583, 1579, 1585,
-     1576, 1577, 1575, 1584, 1584, 1586, 1574, 1579, 1587, 1588,
-     1588, 1589, 1587, 1582, 1586, 1590, 1583, 1592, 1585, 1589,
-     1590, 1593, 1596, 1595, 1597, 1604, 1592, 1595, 1599, 1599,
-     1601, 1601, 1605, 1605, 1593, 1606, 1596, 1610, 1606, 1597,
-     1607, 1607, 1608, 1608, 1611, 1604, 1609, 1609, 1612, 1613,
-     1613, 1618, 1614, 1612, 1619, 1610, 1614, 1617, 1611, 1620,
-     1619, 1617, 1617, 1623, 1620, 1624, 1625, 1626, 1623, 1627,
-
-     1628, 1625, 1629, 1629, 1618, 1630, 1632, 1635, 1631, 1633,
-     1633, 1637, 1624, 1624, 1628, 1626, 1631, 1634, 1634, 1627,
-     1638, 1636, 1640, 1635, 1630, 1632, 1636, 1639, 1641, 1643,
-     1643, 1637, 1644, 1645, 1647, 1644, 1639, 1649, 1645, 1648,
-     1648, 1649, 1640, 1651, 1650, 1652, 1638, 1653, 1641, 1652,
-     1652, 1658, 1647, 1650, 1654, 1656, 1657, 1662, 1651, 1677,
-     1653, 1664, 1662, 1654, 1656, 1663, 1663, 1666, 1657, 1671,
-     1664, 1670, 1666, 1667, 1667, 1673, 1658, 1667, 1669, 1669,
-     1670, 1672, 1674, 1675, 1677, 1676, 1672, 1674, 1680, 1671,
-     1676, 1678, 1678, 1681, 1682, 1682, 1673, 1684, 1683, 1685,
-
-     1686, 1675, 1683, 1687, 1688, 1689, 1684, 1680, 1681, 1688,
-     1691, 1687, 1690, 1690, 1698, 1685, 1693, 1693, 1695, 1686,
-     1694, 1694, 1699, 1695, 1697, 1697, 1703, 1700, 1704, 1691,
-     1707, 1689, 1702, 1702, 1698, 1705, 1705, 1706, 1706, 1708,
-     1703, 1709, 1710, 1710, 1711, 1699, 1700, 1711, 1714, 1707,
-     1704, 1708, 1712, 1712, 1715, 1716, 1718, 1717, 1716, 1719,
-     1714, 1709, 1717, 1720, 1719, 1721, 1721, 1723, 1723, 1724,
-     1727, 1726, 1728,    0, 1715, 1718, 1726, 1728, 1729, 1729,
-     1720, 1720, 1730, 1730, 1727, 1731, 1731, 1732, 1724, 1734,
-     1734, 1740, 1732, 1737, 1737, 1739, 1739, 1741, 1742, 1743,
-
-     1743, 1744, 1747, 1748, 1748, 1740, 1744, 1742, 1749, 1751,
-     1747, 1752, 1754, 1749, 1753, 1755, 1756, 1741,    0, 1753,
-     1757, 1758, 1759, 1755, 1754, 1760, 1763, 1764, 1764, 1751,
-     1760, 1752, 1765, 1765, 1756, 1775, 1757, 1766, 1758, 1758,
-     1776, 1766, 1779, 1759, 1770, 1770, 1763, 1772, 1774, 1774,
-     1781, 1772, 1782, 1775, 1776, 1778, 1778, 1779, 1783, 1783,
-     1787, 1782, 1784, 1784, 1785, 1785, 1786, 1788, 1781, 1789,
-     1790, 1786, 1791, 1792,    0, 1790, 1805, 1791, 1793, 1793,
-     1796, 1796, 1788, 1798, 1798, 1787, 1800, 1801, 1801, 1803,
-     1789, 1805, 1792, 1804, 1804, 1800, 1806, 1806, 1810, 1809,
-
-     1811, 1803, 1809, 1810, 1812, 1813, 1815, 1814, 1819, 1812,
-     1822, 1819, 1821, 1823, 1811, 1825, 1821, 1827, 1826, 1828,
-     1830, 1832, 1815, 1829, 1813, 1814, 1825, 1823, 1831, 1834,
-     1822, 1826, 1833, 1833, 1835, 1835, 1827, 1828, 1834, 1829,
-     1839, 1832, 1840, 1831, 1837, 1830, 1836, 1836, 1838, 1837,
-     1841, 1848, 1842, 1838, 1845, 1841, 1849, 1840, 1843, 1843,
-     1851, 1849, 1850, 1852, 1853, 1839, 1842, 1850, 1855, 1845,
-     1848, 1856, 1857, 1858, 1851, 1859, 1852, 1862,    0, 1860,
-     1863, 1863, 1855, 1853, 1860, 1857, 1858, 1861, 1864, 1867,
-     1856, 1871, 1861, 1864, 1859, 1865, 1862, 1866, 1868, 1870,
-
-     1865, 1872, 1866, 1868, 1869, 1869, 1870, 1873, 1867, 1874,
-     1871, 1875, 1873, 1877, 1878, 1879, 1880, 1883, 1877, 1888,
-     1872, 1881, 1881,    0, 1875, 1882, 1884, 1884, 1874, 1880,
-     1882, 1885, 1885, 1878, 1879, 1886, 1883, 1887, 1888, 1890,
-     1886, 1889, 1889, 1891, 1887, 1892, 1890, 1893, 1894, 1896,
-     1891, 1897, 1893, 1898, 1896, 1899, 1897, 1900, 1900, 1901,
-     1902, 1903, 1903, 1905, 1892, 1904, 1904, 1894, 1906, 1906,
-     1905, 1914, 1898, 1908, 1899, 1907, 1907, 1910, 1901, 1902,
-     1908, 1913, 1910, 1915, 1916, 1916, 1913, 1917, 1917,    0,
-     1914,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0, 1915, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
-     1922, 1922, 1922, 1922, 1922, 1922, 1922, 1923, 1923, 1923,
-     1923, 1923, 1923, 1923, 1924, 1924, 1924, 1924, 1924, 1924,
-     1924, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1927, 1927,
-        0, 1927, 1927, 1927, 1927, 1928, 1928,    0,    0,    0,
-     1928, 1928, 1929, 1929,    0,    0, 1929,    0, 1929, 1930,
-        0,    0,    0,    0,    0, 1930, 1931, 1931,    0,    0,
-        0, 1931, 1931, 1932,    0,    0,    0,    0,    0, 1932,
-     1933, 1933,    0, 1933, 1933, 1933, 1933, 1934, 1934,    0,
-     1934, 1934, 1934, 1934, 1920, 1920, 1920, 1920, 1920, 1920,
-
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
-     1920, 1920, 1920, 1920
+      248,  249,  250,  239,  249,  254,  251,  243,  252,  253,
+      247,  245,  246,  255,  250,  251,  259,  252,  254,  256,
+
+      260,  256,  256,  251,  131,  255,  251,  257,  257,  258,
+      253,  261,  258,  259,  262,  260,  259,  263,  263,  264,
+      261,  265,  265,  262,  264,  266,  267,  268,  269,  270,
+      271,  267,  272,  273,  270,  274,  273,  272,  273,  268,
+      266,  275,  276,  279,  281,  280,  286,  277,  269,  274,
+      271,  276,  277,  278,  282,  284,  279,  275,  278,  281,
+      275,  286,  275,  283,  279,  280,  283,  287,  282,  284,
+      288,  289,  290,  291,  288,  288,  287,  129,  294,  293,
+      292,  296,  283,  285,  293,  285,  285,  295,  291,  297,
+      298,  290,  289,  300,  297,  285,  296,  285,  285,  285,
+
+      292,  294,  285,  299,  301,  298,  302,  295,  299,  303,
+      304,  307,  305,  300,  303,  310,  301,  305,  306,  306,
+      302,  306,  308,  309,  312,  311,  304,  311,  312,  310,
+      313,  307,  314,  315,  313,  316,  317,  318,  308,  309,
+      320,  321,  318,  322,  316,  317,  321,  315,  319,  320,
+      314,  324,  319,  323,  328,  324,  325,  316,  332,  323,
+      327,  325,  326,  326,  322,  327,  330,  328,  329,  329,
+      331,  330,  333,  334,  331,  338,  335,  336,  336,  332,
+      335,  333,  337,  339,  339,  334,  342,  337,  341,  341,
+      343,  344,  345,  346,  349,  348,  338,  350,  343,  351,
+
+      344,  352,  357,  353,  351,  346,  358,  342,  353,  354,
+      352,  350,  345,  348,  349,  348,  355,  354,  356,  360,
+      361,  355,  359,  356,  357,  361,  359,  358,  362,  363,
+      367,  365,  368,  366,  360,  369,  370,  368,  369,  371,
+      371,  356,  368,  372,  362,  374,  367,  375,  363,  364,
+      364,  365,  366,  373,  373,  364,  370,  364,  376,  375,
+      374,  377,  378,  380,  379,  364,  381,  382,  372,  379,
+      383,  387,  380,  376,  385,  364,  383,  388,  385,  389,
+      377,  386,  382,  387,  378,  381,  386,  392,  390,  391,
+      391,  394,  389,  393,  395,  388,  390,  395,  393,  392,
+
+      396,  397,  398,  394,  399,  398,  397,  400,  401,  402,
+      402,  400,  400,  403,  403,  396,  408,  404,  405,  405,
+      399,  401,  404,  399,  406,  406,  407,  409,  410,  411,
+      412,  407,  409,  411,  413,  412,  414,  408,  413,  415,
+      416,  414,  418,  417,  420,  416,  419,  410,  417,  419,
+      421,  421,  422,  424,  419,  423,  418,   68,  419,  415,
+      423,  425,  420,  426,  431,  427,  425,  424,  427,  428,
+      422,  429,  426,  428,  430,  432,  429,  431,  433,  430,
+      432,  434,  435,  436,  440,  437,  439,  435,  437,  436,
+      441,  439,  442,  434,  433,  428,  438,  442,  443,  438,
+
+      444,   62,  440,  443,  441,  444,  445,  446,  448,  445,
+      447,  449,  446,  450,  447,  447,  451,  452,  450,  456,
+      452,  448,  453,  458,  449,  451,  454,  453,  459,  460,
+      454,  454,  455,  461,  455,  452,  462,  457,  456,  457,
+      462,  458,  463,  464,  465,  466,  459,  467,  460,  468,
+      469,  463,  467,  461,  470,  470,  472,  471,  464,  473,
+      466,  471,  465,  474,  473,  475,  477,  472,  468,  469,
+      476,  478,  480,  477,  479,  481,  478,  480,  482,  474,
+      481,  479,  483,  476,  475,  484,  485,  487,  486,  483,
+      488,  489,  487,  488,  484,  489,  482,  486,  490,  492,
+
+      485,  491,  491,  495,  494,  497,  498,  496,  492,  494,
+      491,  496,  500,  499,  501,  502,  505,  497,  499,  490,
+      500,  508,  512,  495,  498,  511,  513,  518,  512,  519,
+      513,  505,  501,   57,  511,  514,  514,  515,  508,  517,
+      502,  503,  515,  543,  517,  518,  503,  524,  520,  543,
+      503,  520,  522,  503,  519,  521,  521,  523,  523,  522,
+      503,  530,  524,  503,  516,  516,  516,  526,  516,  525,
+      525,  516,  526,  528,  527,  531,  516,  527,  528,  529,
+      530,  529,  516,  516,  532,  533,  534,  534,  536,  535,
+      537,  538,   52,  533,  540,  531,  538,  539,  539,  540,
+
+      541,  546,  536,  532,  535,  541,  542,  544,  537,  542,
+      545,  547,  549,  548,  551,  544,  547,  552,  545,  546,
+      548,  550,  550,  551,  553,  552,  554,  556,  557,  553,
+      558,  549,  559,  558,  560,  560,  556,  557,  561,  563,
+      565,  567,  563,  566,  568,  554,  559,  569,  566,  571,
+      563,  570,  572,  561,  573,  574,  572,  575,  571,  576,
+      579,  565,  567,  580,  568,   51,  575,  578,  578,  569,
+      577,  570,  573,  576,  574,  584,  577,  580,  581,  582,
+      579,  583,  586,  581,  582,  583,  585,  586,  587,  588,
+      588,  589,  590,  591,  584,  590,  589,  592,  585,  593,
+
+      594,  595,  595,  596,  593,  597,  597,  598,  599,  587,
+      592,  591,  599,  600,  601,  602,  603,  605,  605,  606,
+      594,  596,  598,  606,  608,  607,  609,   46,  610,  602,
+      609,  612,  600,  613,  623,  623,  603,   41,  601,  604,
+      607,  611,  604,  610,  604,  612,  611,  613,  604,  608,
+      604,  615,  614,  616,  617,  604,  614,  618,  616,  617,
+      604,  619,  620,  621,   14,  622,  615,  625,  616,  621,
+      622,  618,  624,  624,  627,  628,  620,  632,  624,  625,
+      624,  626,  619,  629,  629,  630,  626,  628,  627,  631,
+      630,  632,  633,  634,  634,  635,  637,  631,  624,  635,
+
+      638,  637,  639,  638,  640,  641,  643,  642,  645,  644,
+      641,  633,  642,  646,  647,  648,  649,  640,  644,  651,
+      648,  639,  646,  650,  645,  643,  652,  653,  655,  657,
+      656,  669,  653,  647,  669,  652,  649,  650,  658,  651,
+      659,  660,  661,  658,  657,  659,  660,  655,  656,  662,
+      662,  661,  663,  664,  666,  667,  671,  663,  670,  667,
+      667,  668,  668,  672,  673,  668,  664,  675,  674,  676,
+      666,  674,  670,  680,  677,  678,  671,  679,  672,  677,
+      678,  681,  684,  679,  673,  676,  683,  681,  675,  680,
+      682,  682,  686,  685,  687,  683,  685,  688,  689,  690,
+
+      684,  691,  693,  695,  690,  694,  691,  696,  694,  699,
+      686,  689,  701,  687,  695,  702,  697,  688,  698,  696,
+      693,  697,  703,  698,  699,  700,  700,  705,  704,  702,
+      706,  701,  704,  707,  703,  708,  710,  712,  713,  706,
+       13,  714,  715,  716,  717,  705,  723,  715,  716,  717,
+      719,  712,  707,  713,  718,  710,  720,  721,  722,  718,
+      708,  714,  721,  725,  719,  723,  726,  724,  727,  727,
+      720,  729,  728,  722,  724,  730,  731,  733,  725,  732,
+      732,  730,  733,  734,  735,  726,  728,  737,  736,  729,
+      734,  736,  738,  740,  739,  741,  731,  742,  735,  739,
+
+      741,  738,  744,  746,  745,  737,  744,  747,  748,  749,
+      750,  751,  740,  745,  753,  748,  742,  752,  746,  754,
+      753,  749,  747,  755,  756,  758,  759,  761,  760,  750,
+      758,  768,  751,  756,  754,  752,  760,  762,  763,  765,
+      759,  764,  762,  755,  768,  764,  764,  761,  766,  783,
+      763,  767,  767,  783,  769,  770,  771,  771,  765,  772,
+      770,  773,  766,  769,  772,  776,  774,  775,  775,  778,
+      773,  774,  777,  779,  776,  780,  781,  777,  791,  782,
+      780,  781,  787,  778,  782,  785,  785,  786,  790,  786,
+      789,  779,  784,  787,  789,  792,  791,  794,  795,  796,
+
+      799,  784,  797,  790,  792,  800,  784,  796,  784,  793,
+      784,  794,  784,  793,  793,  798,  797,  795,  799,  801,
+      801,  802,  803,  803,  798,  805,  806,  807,  805,  809,
+      800,  806,  808,  808,  810,  810,  802,  811,  812,  812,
+      813,  818,  811,  814,  815,  816,  807,    0,  814,  809,
+      816,  819,  815,  817,  817,  820,  822,  819,  823,  818,
+      813,  822,  820,  823,  824,  825,  826,  827,  828,  824,
+      825,  829,  829,  830,  831,  826,  832,  833,  834,  828,
+      835,  839,  833,  836,  837,  840,  827,  838,  838,  841,
+      844,  842,  834,  830,  831,  836,  842,  847,  834,  832,
+
+      835,  839,  837,  843,  843,  854,  845,  841,  849,  854,
+      840,  845,  850,  844,  848,  852,  847,  849,  848,  848,
+      850,  851,  853,  851,  855,  856,  857,  853,  858,  852,
+      860,  859,  863,  861,  862,  855,  859,  864,  862,  907,
+      865,  868,  866,  867,  856,  872,  858,  876,  860,    0,
+      863,  907,  857,  861,  865,  870,  864,  866,  867,  869,
+      868,  871,  870,  872,  869,  873,  871,  874,  876,  875,
+      885,  877,  878,  879,  873,  875,  877,  878,  879,  880,
+      880,  887,  874,  881,  881,  883,  883,  884,  885,  886,
+      888,  884,  889,  891,  886,  887,  889,  889,  890,  892,
+
+      893,  894,  890,  890,  895,  896,  898,  897,  902,  888,
+      899,  896,  897,  891,  900,  901,  903,  904,  892,  893,
+      905,  905,  902,  895,    0,  898,  910,  894,  906,  899,
+      910,  906,  904,  900,  901,  908,  908,  903,  909,  911,
+      912,  913,  914,  909,  914,  916,  917,  917,  914,  912,
+      918,  920,  911,  919,  913,  918,  921,  919,  922,  924,
+      937,  914,  926,  922,  959,  916,  959,  926,  928,  920,
+      927,  927,  936,  928,  930,  930,  921,  924,  932,  932,
+      934,  935,  935,  934,  938,  937,  939,  936,  940,  941,
+      941,  939,  942,  943,  943,  944,  945,  946,  938,  947,
+
+      948,  946,  951,  940,    0,  948,  954,  945,  950,  950,
+      952,  954,  942,  953,  953,  955,  956,  944,  947,  957,
+      951,  958,  960,  962,  952,  961,  963,  960,  957,  967,
+      961,  963,  965,  966,  966,  955,  956,  970,  968,  971,
+      971,  958,  972,  962,  968,  973,  965,  979,  967,  974,
+      977,  975,  974,  976,  972,  974,  975,  978,  976,  977,
+      980,  970,  978,  980,  981,  973,  983,  974,  984,  981,
+      982,  982,  979,  985,  986,  987,  988,  989,  991,  986,
+      987,  993,  989,  991,  983,  990,  990,  984,  992,  994,
+      995,  996,  997,  985,  999,  998, 1000, 1001, 1002,  988,
+
+      998,  993, 1006,  996,  995,  997,  992, 1004, 1004,  994,
+     1005, 1001, 1008, 1007,  999, 1005, 1000, 1006, 1009, 1002,
+     1007, 1008, 1011, 1013, 1008, 1014, 1014, 1015, 1016, 1017,
+     1015, 1018, 1019, 1016, 1009, 1020, 1024, 1011, 1022, 1026,
+     1018, 1021, 1011, 1022, 1020, 1017, 1025, 1020, 1013, 1027,
+     1021, 1019, 1023, 1023, 1028, 1029, 1024, 1026, 1031, 1025,
+     1032, 1033, 1033, 1027, 1034, 1035, 1036, 1029, 1039,    0,
+     1028, 1036, 1037, 1037, 1035, 1042, 1038, 1041, 1032, 1043,
+     1034, 1046, 1041, 1031, 1043, 1038, 1039, 1037, 1038, 1044,
+     1045, 1048, 1047, 1042, 1044, 1052, 1045, 1047, 1053, 1049,
+
+     1054, 1046, 1049, 1052, 1048, 1055, 1057, 1056, 1049, 1058,
+     1060, 1053, 1056, 1061, 1062, 1063, 1064, 1061, 1054, 1062,
+     1063, 1064, 1057, 1065, 1055, 1066, 1068, 1058, 1069, 1069,
+     1060, 1070, 1065, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
+     1071, 1068, 1075, 1078,    0, 1070, 1072, 1073, 1066, 1078,
+     1076, 1079, 1079, 1080, 1084, 1074, 1080, 1077, 1081, 1081,
+     1083, 1085, 1085, 1084, 1086, 1083, 1087, 1089, 1088, 1090,
+     1091, 1087, 1092, 1093, 1094, 1091, 1086, 1088, 1097, 1089,
+     1096, 1092, 1095, 1095, 1090, 1096, 1098, 1099, 1101, 1094,
+     1100, 1100, 1111, 1093, 1092, 1102, 1102, 1103, 1103, 1097,
+
+     1104, 1105, 1109, 1116, 1104, 1098, 1105, 1099, 1101, 1106,
+     1108, 1110, 1106, 1112, 1112, 1108, 1110, 1111, 1113, 1113,
+     1109, 1114, 1115, 1116, 1117, 1118, 1114, 1119, 1121, 1122,
+     1118, 1123, 1123, 1124, 1115, 1115, 1115, 1125, 1125, 1127,
+     1126, 1115, 1121, 1131, 1117, 1128, 1128, 1119, 1129, 1129,
+     1122, 1133, 1131, 1132, 1132, 1134, 1135, 1136, 1138, 1124,
+     1126, 1127, 1134, 1137, 1137, 1135, 1133, 1141, 1142, 1139,
+     1143, 1144, 1141, 1142, 1145, 1146, 1147, 1147, 1144, 1145,
+     1146, 1148, 1149, 1136, 1138, 1139, 1148, 1150, 1152, 1151,
+     1143, 1149, 1153, 1154, 1155, 1153, 1156, 1156, 1157, 1158,
+
+     1152, 1159, 1160, 1161, 1172, 1162, 1160, 1150, 1151, 1161,
+     1166, 1154, 1164, 1157, 1162, 1167, 1159, 1223, 1158, 1223,
+     1155, 1163, 1163, 1164, 1165, 1165, 1173, 1168, 1164, 1167,
+     1172, 1166, 1168, 1169, 1169, 1170, 1171, 1174, 1173, 1170,
+     1170, 1171, 1174, 1175, 1176, 1177, 1178, 1179, 1176, 1181,
+     1180, 1182, 1179, 1184, 1181, 1175, 1184, 1177, 1185, 1185,
+     1186, 1186, 1188, 1182, 1187, 1187, 1192, 1189, 1201, 1190,
+     1191, 1178, 1180, 1189, 1190, 1192, 1191, 1196, 1194, 1197,
+     1196, 1199, 1188, 1194, 1200, 1200, 1202, 1203, 1201, 1204,
+     1205, 1197, 1206, 1199, 1205, 1202, 1207, 1206, 1208, 1210,
+
+     1210, 1207, 1211, 1218, 1212, 1203, 1213, 1219, 1204, 1215,
+     1215, 1210, 1208, 1212, 1220, 1213, 1221, 1227, 1218, 1220,
+     1211, 1219, 1222, 1222, 1224, 1224, 1229, 1226, 1228, 1228,
+     1230, 1231, 1232, 1221, 1226, 1229, 1233, 1227, 1234, 1235,
+     1236, 1237, 1239, 1231, 1232, 1241, 1245, 1239, 1233, 1243,
+     1240, 1230, 1240, 1242, 1235, 1245, 1243, 1247, 1242, 1249,
+     1236, 1237, 1250, 1241, 1234, 1248, 1248, 1250, 1251, 1252,
+     1251, 1247, 1253, 1254, 1252, 1255, 1256, 1253, 1257, 1258,
+     1259, 1256, 1261, 1257, 1262, 1249, 1263, 1263, 1259, 1264,
+     1264, 1254, 1258, 1265, 1266, 1255,    0, 1267, 1262, 1268,
+
+     1270, 1261, 1267, 1269, 1268, 1269, 1271, 1272, 1265, 1272,
+     1273, 1273, 1270, 1274, 1266, 1271, 1275, 1280, 1271, 1277,
+     1278, 1281, 1274, 1282, 1277, 1278, 1284, 1286, 1275, 1287,
+     1280, 1288, 1284, 1286, 1289, 1290, 1290, 1291, 1293, 1282,
+     1296, 1281, 1299, 1289, 1287, 1294, 1291, 1292, 1292, 1294,
+     1295, 1312, 1298, 1296, 1297, 1295, 1288, 1293, 1297, 1297,
+     1298, 1303, 1299, 1302, 1302, 1304, 1304, 1305, 1305, 1306,
+     1303, 1307, 1308, 1309, 1310, 1310, 1312, 1308, 1309, 1313,
+     1314, 1306, 1315, 1316, 1313, 1318, 1317, 1321, 1316, 1307,
+     1319, 1319, 1320, 1322, 1323, 1324, 1320, 1315, 1322, 1326,
+
+     1327, 1318, 1321, 1314, 1317, 1329, 1328, 1330, 1331, 1333,
+     1333, 1353, 1334, 1336, 1324, 1334, 1353, 1335, 1337, 1330,
+     1323,    0, 1326, 1341, 1327, 1328, 1329, 1336, 1342, 1331,
+     1335, 1337, 1338, 1338, 1339, 1339, 1340, 1340, 1341, 1343,
+     1343, 1342, 1344, 1344, 1345, 1345, 1346, 1347, 1347, 1348,
+     1349, 1349, 1350, 1350, 1351, 1354, 1354, 1355, 1356, 1356,
+     1357, 1359, 1358, 1362, 1359, 1346, 1363, 1348, 1358, 1360,
+     1360, 1361, 1361, 1351, 1364, 1367, 1355, 1368, 1357, 1365,
+     1365, 1363, 1362, 1369, 1370, 1360, 1371, 1371, 1370, 1372,
+     1373, 1373, 1374, 1364, 1376, 1367, 1375, 1375, 1369, 1378,
+
+     1368, 1379, 1380, 1376, 1381, 1382, 1379, 1383, 1372, 1384,
+     1385, 1378, 1383, 1386, 1387, 1388, 1391, 1381, 1374, 1385,
+     1388, 1389, 1386, 1393, 1384, 1389, 1382, 1380, 1387, 1394,
+     1394, 1397, 1393, 1395, 1396, 1396, 1391, 1399, 1395, 1400,
+     1405, 1404, 1402, 1396, 1404, 1405, 1406, 1407, 1400, 1408,
+     1408, 1397, 1399, 1397, 1402, 1410, 1410, 1411, 1413, 1407,
+     1412, 1412, 1414, 1415, 1416, 1416, 1406, 1422, 1418, 1423,
+     1413, 1411, 1418, 1425, 1419, 1421, 1414, 1419, 1420, 1420,
+     1421, 1424, 1415, 1423, 1426, 1424, 1427, 1422, 1428, 1426,
+     1430, 1427, 1431, 1425, 1428, 1432, 1433, 1431, 1437, 1434,
+
+     1432, 1434, 1438, 1438, 1433, 1444, 1430, 1442, 1442, 1447,
+     1448, 1448, 1437, 1452, 1447, 1450, 1450, 1454, 1452, 1453,
+     1453, 1455, 1456, 1444, 1459, 1458, 1462, 1456, 1460, 1460,
+     1464, 1465, 1463, 1454,    0, 1462, 1459, 1463, 1467, 1467,
+     1469, 1471, 1476, 1455, 1458, 1469, 1465, 1470, 1464, 1470,
+     1477, 1472, 1473, 1473, 1476, 1471, 1472, 1474, 1474, 1475,
+     1475, 1478, 1479, 1480, 1481, 1482, 1483, 1483, 1477, 1481,
+     1484, 1485, 1486, 1478, 1479, 1480, 1487, 1488, 1491, 1484,
+     1489, 1490, 1490, 1493, 1492, 1482, 1494, 1491, 1495, 1487,
+     1501, 1494, 1486, 1495, 1489, 1496, 1496, 1485, 1497, 1497,
+
+     1502, 1488, 1492, 1498, 1498, 1493, 1503, 1504, 1505, 1506,
+     1501, 1511, 1507, 1508, 1508, 1510, 1510, 1505, 1502, 1512,
+     1511, 1513, 1514, 1515, 1517, 1522, 1512, 1504, 1503, 1506,
+     1507, 1516, 1518, 1518, 1519, 1520, 1513, 1521, 1524, 1519,
+     1514, 1515, 1526, 1517, 1522, 1523, 1527, 1516, 1530, 1533,
+     1523, 1526, 1521, 1520, 1531, 1532, 1532, 1531, 1524, 1534,
+     1535, 1535, 1536, 1538, 1533, 1527, 1536, 1539, 1530, 1540,
+     1540, 1539, 1541, 1543, 1543, 1544, 1551, 1534, 1538, 1545,
+     1545, 1546, 1546, 1550, 1550, 1541, 1552, 1553, 1554, 1555,
+     1558, 1556, 1553, 1554, 1544, 1552, 1559, 1560, 1551, 1556,
+
+     1561, 1559, 1560, 1562, 1562, 1558, 1563, 1563, 1555, 1564,
+     1568, 1568, 1565, 1566, 1567, 1561, 1564, 1565, 1566, 1567,
+     1569, 1569, 1572, 1573, 1576, 1574, 1575, 1577, 1573, 1574,
+     1578, 1575, 1579, 1576, 1580, 1572, 1582, 1579, 1578, 1582,
+     1583, 1584, 1577, 1585, 1586, 1590, 1580, 1587, 1587, 1591,
+     1588, 1592, 1585, 1586, 1584, 1593, 1593, 1594, 1583, 1588,
+     1598, 1596, 1595,    0, 1590, 1596, 1597, 1597, 1598, 1591,
+     1592, 1595, 1599, 1601, 1602, 1604, 1594, 1599, 1605, 1604,
+     1606, 1613, 1601, 1608, 1608, 1610, 1610, 1602, 1614, 1614,
+     1615, 1619, 1605, 1615, 1620, 1606, 1616, 1616, 1617, 1617,
+
+     1621, 1613, 1618, 1618, 1627, 1621, 1622, 1622, 1620, 1619,
+     1623, 1626, 1628, 1633, 1623, 1626, 1626, 1629, 1628, 1632,
+     1634, 1635, 1629, 1636, 1632, 1634, 1637, 1627, 1638, 1638,
+     1633, 1633, 1639, 1640, 1641, 1642, 1642, 1643, 1643, 1635,
+     1637, 1640, 1644, 1636, 1645, 1646, 1647, 1648, 1649, 1645,
+     1650, 1639,    0, 1641, 1652, 1652, 1648, 1653, 1644, 1654,
+     1653, 1656, 1657, 1657, 1654, 1646, 1659, 1658, 1649, 1660,
+     1650, 1658, 1647, 1661, 1662, 1659, 1663, 1661, 1661, 1656,
+     1665, 1666, 1667, 1671, 1660, 1663, 1673, 1662, 1671, 1665,
+     1672, 1672, 1675, 1666, 1679, 1673, 1680, 1675, 1676, 1676,
+
+     1678, 1678, 1676, 1679, 1681, 1682, 1683, 1667, 1685, 1681,
+     1684, 1683, 1686, 1685, 1687, 1687, 1680, 1689, 1690, 1691,
+     1691, 1692, 1693, 1694, 1695, 1692, 1682, 1696, 1684, 1697,
+     1698, 1693, 1700, 1690, 1697, 1696, 1689, 1686, 1707, 1694,
+     1699, 1699, 1708, 1695, 1702, 1702, 1703, 1703, 1704, 1706,
+     1706, 1700, 1709, 1704, 1711, 1711, 1698, 1713, 1707, 1712,
+     1714, 1714, 1715, 1715, 1716, 1708, 1717, 1718, 1719, 1719,
+     1723, 1709, 1720, 1712, 1724, 1720, 1721, 1721, 1717, 1713,
+     1726, 1725, 1723, 1716, 1725, 1726, 1727, 1718, 1728, 1729,
+     1730, 1730, 1733, 1728, 1724, 1732, 1732, 1735, 1736, 1737,
+
+     1738, 1738, 1735, 1750, 1737, 1727, 1729, 1729, 1739, 1739,
+     1741, 1733, 1736, 1740, 1740, 1741, 1743, 1743, 1746, 1746,
+     1748, 1748, 1749, 1750, 1751, 1752, 1752, 1753, 1760, 1756,
+     1757, 1757, 1753, 1751, 1758, 1761, 1749, 1756, 1762, 1758,
+     1763, 1764, 1765, 1762, 1768, 1766, 1767, 1772, 1760, 1764,
+        0, 1769, 1763, 1773, 1773, 1761, 1769, 1774, 1774, 1784,
+     1765, 1766, 1775, 1767, 1767, 1768, 1775, 1772, 1779, 1779,
+     1781, 1783, 1783, 1785, 1781, 1787, 1787, 1784, 1788, 1790,
+     1791, 1792, 1792, 1793, 1793, 1794, 1794, 1785, 1796, 1791,
+     1795, 1797, 1801, 1788, 1798, 1795, 1799, 1790, 1800, 1802,
+
+     1802, 1799, 1812, 1800, 1805, 1805, 1797, 1807, 1807, 1809,
+     1814, 1801, 1822, 1796, 1812, 1798, 1810, 1810, 1809, 1813,
+     1813, 1815, 1815, 1818, 1819, 1814, 1818, 1820, 1821, 1819,
+     1823, 1822, 1828, 1821, 1824, 1828, 1830, 1831, 1832, 1836,
+     1830, 1820, 1834, 1835, 1837, 1838, 1839, 1841, 1823, 1840,
+     1824, 1843, 1832, 1834, 1842, 1842, 1835, 1831, 1836, 1848,
+     1843, 1838, 1837, 1849, 1840, 1844, 1844, 1841, 1845, 1845,
+     1846, 1839, 1847, 1851, 1850, 1846, 1854, 1847, 1849, 1850,
+     1852, 1852, 1857, 1858, 1848, 1859, 1860, 1851, 1858, 1861,
+     1859, 1854, 1862, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
+
+     1860, 1857, 1861, 1869, 1870, 1871,    0, 1864, 1866, 1867,
+     1876, 1862, 1873, 1865, 1872, 1872, 1868, 1873, 1874, 1880,
+     1875, 1877, 1881, 1874, 1871, 1875, 1877, 1878, 1878, 1876,
+     1879, 1882, 1883, 1884, 1886, 1887, 1882, 1879, 1880, 1886,
+     1888, 1881, 1889, 1890, 1890, 1891, 1884, 1892, 1893, 1893,
+     1891, 1883, 1894, 1894, 1887, 1889, 1895, 1896, 1897, 1888,
+     1899, 1895, 1898, 1898, 1896, 1900, 1892, 1899, 1901, 1902,
+     1903, 1905, 1900, 1906, 1902, 1907, 1905, 1897, 1906, 1908,
+     1909, 1909, 1910, 1911, 1912, 1912, 1914, 1901, 1923, 1903,
+     1913, 1913, 1924, 1914, 1907, 1915, 1915, 1917, 1908, 1916,
+
+     1916, 1910, 1911, 1919, 1917, 1922,    0, 1923, 1919,    0,
+     1922, 1924, 1925, 1925, 1926, 1926, 1930, 1930, 1930, 1930,
+     1930, 1930, 1930, 1931, 1931, 1931, 1931, 1931, 1931, 1931,
+     1932, 1932, 1932, 1932, 1932, 1932, 1932, 1933, 1933, 1933,
+     1933, 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1936, 1936,    0, 1936, 1936, 1936, 1936, 1937, 1937,
+        0,    0,    0, 1937, 1937, 1938, 1938,    0,    0, 1938,
+        0, 1938, 1939,    0,    0,    0,    0,    0, 1939, 1940,
+     1940,    0,    0,    0, 1940, 1940, 1941,    0,    0,    0,
+        0,    0, 1941, 1942, 1942,    0, 1942, 1942, 1942, 1942,
+
+     1943, 1943,    0, 1943, 1943, 1943, 1943, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2136,7 +2141,7 @@ static void config_end_include(void)
 #define YY_NO_INPUT 1
 #endif
 
-#line 2138 "<stdout>"
+#line 2143 "<stdout>"
 
 #define INITIAL 0
 #define quotedstring 1
@@ -2359,7 +2364,7 @@ YY_DECL
        {
 #line 207 "./util/configlexer.lex"
 
-#line 2361 "<stdout>"
+#line 2366 "<stdout>"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2392,13 +2397,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 >= 1921 )
+                               if ( yy_current_state >= 1930 )
                                        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] != 3795 );
+               while ( yy_base[yy_current_state] != 3808 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -3024,314 +3029,319 @@ YY_RULE_SETUP
 case 120:
 YY_RULE_SETUP
 #line 331 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_LOG_IDENTITY) }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
 #line 332 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 333 "./util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
 #line 334 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
 #line 335 "./util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
 #line 336 "./util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
 #line 337 "./util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
 #line 338 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
 #line 339 "./util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
 #line 340 "./util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
 #line 341 "./util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
        YY_BREAK
 case 131:
 YY_RULE_SETUP
 #line 342 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
        YY_BREAK
 case 132:
 YY_RULE_SETUP
 #line 343 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
        YY_BREAK
 case 133:
 YY_RULE_SETUP
 #line 344 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
        YY_BREAK
 case 134:
 YY_RULE_SETUP
 #line 345 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
        YY_BREAK
 case 135:
 YY_RULE_SETUP
 #line 346 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
        YY_BREAK
 case 136:
 YY_RULE_SETUP
 #line 347 "./util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
        YY_BREAK
 case 137:
 YY_RULE_SETUP
 #line 348 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
 #line 349 "./util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
        YY_BREAK
 case 139:
 YY_RULE_SETUP
 #line 350 "./util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
 #line 351 "./util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
 #line 352 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(0, VAR_PYTHON) }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
 #line 353 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
 #line 354 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
 #line 355 "./util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
 #line 356 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
 #line 357 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
 #line 358 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
 #line 359 "./util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
 #line 360 "./util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
 #line 361 "./util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
 #line 362 "./util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
 #line 363 "./util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
 #line 364 "./util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
 #line 365 "./util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
 #line 366 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(0, VAR_DNSTAP) }
        YY_BREAK
 case 156:
 YY_RULE_SETUP
 #line 367 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
 #line 368 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 369 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
        YY_BREAK
 case 159:
 YY_RULE_SETUP
 #line 370 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
        YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 371 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
        YY_BREAK
 case 161:
 YY_RULE_SETUP
 #line 372 "./util/configlexer.lex"
-{
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 374 "./util/configlexer.lex"
+#line 373 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 376 "./util/configlexer.lex"
+#line 375 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 378 "./util/configlexer.lex"
+#line 377 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 380 "./util/configlexer.lex"
+#line 379 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 382 "./util/configlexer.lex"
+#line 381 "./util/configlexer.lex"
 {
-               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 384 "./util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 383 "./util/configlexer.lex"
+{
+               YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
        YY_BREAK
 case 168:
 YY_RULE_SETUP
 #line 385 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
        YY_BREAK
 case 169:
 YY_RULE_SETUP
 #line 386 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
 #line 387 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
        YY_BREAK
 case 171:
 YY_RULE_SETUP
 #line 388 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
        YY_BREAK
 case 172:
 YY_RULE_SETUP
 #line 389 "./util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
        YY_BREAK
 case 173:
 YY_RULE_SETUP
 #line 390 "./util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
        YY_BREAK
 case 174:
-/* rule 174 can match eol */
 YY_RULE_SETUP
 #line 391 "./util/configlexer.lex"
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+       YY_BREAK
+case 175:
+/* rule 175 can match eol */
+YY_RULE_SETUP
+#line 392 "./util/configlexer.lex"
 { LEXOUT(("NL\n")); cfg_parser->line++; }
        YY_BREAK
 /* Quoted strings. Strip leading and ending quotes */
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 394 "./util/configlexer.lex"
+#line 395 "./util/configlexer.lex"
 { BEGIN(quotedstring); LEXOUT(("QS ")); }
        YY_BREAK
 case YY_STATE_EOF(quotedstring):
-#line 395 "./util/configlexer.lex"
+#line 396 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 400 "./util/configlexer.lex"
+#line 401 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 177:
-/* rule 177 can match eol */
+case 178:
+/* rule 178 can match eol */
 YY_RULE_SETUP
-#line 401 "./util/configlexer.lex"
+#line 402 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end \""); 
                          cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 403 "./util/configlexer.lex"
+#line 404 "./util/configlexer.lex"
 {
         LEXOUT(("QE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3344,34 +3354,34 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* Single Quoted strings. Strip leading and ending quotes */
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 415 "./util/configlexer.lex"
+#line 416 "./util/configlexer.lex"
 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
        YY_BREAK
 case YY_STATE_EOF(singlequotedstr):
-#line 416 "./util/configlexer.lex"
+#line 417 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
        if(--num_args == 0) { BEGIN(INITIAL); }
        else                { BEGIN(val); }
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 421 "./util/configlexer.lex"
+#line 422 "./util/configlexer.lex"
 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 181:
-/* rule 181 can match eol */
+case 182:
+/* rule 182 can match eol */
 YY_RULE_SETUP
-#line 422 "./util/configlexer.lex"
+#line 423 "./util/configlexer.lex"
 { yyerror("newline inside quoted string, no end '"); 
                             cfg_parser->line++; BEGIN(INITIAL); }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 424 "./util/configlexer.lex"
+#line 425 "./util/configlexer.lex"
 {
         LEXOUT(("SQE "));
        if(--num_args == 0) { BEGIN(INITIAL); }
@@ -3384,38 +3394,38 @@ YY_RULE_SETUP
 }
        YY_BREAK
 /* include: directive */
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 436 "./util/configlexer.lex"
+#line 437 "./util/configlexer.lex"
 { 
        LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
        YY_BREAK
 case YY_STATE_EOF(include):
-#line 438 "./util/configlexer.lex"
+#line 439 "./util/configlexer.lex"
 {
         yyerror("EOF inside include directive");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 184:
-YY_RULE_SETUP
-#line 442 "./util/configlexer.lex"
-{ LEXOUT(("ISP ")); /* ignore */ }
-       YY_BREAK
 case 185:
-/* rule 185 can match eol */
 YY_RULE_SETUP
 #line 443 "./util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++;}
+{ LEXOUT(("ISP ")); /* ignore */ }
        YY_BREAK
 case 186:
+/* rule 186 can match eol */
 YY_RULE_SETUP
 #line 444 "./util/configlexer.lex"
-{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+{ LEXOUT(("NL\n")); cfg_parser->line++;}
        YY_BREAK
 case 187:
 YY_RULE_SETUP
 #line 445 "./util/configlexer.lex"
+{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
+       YY_BREAK
+case 188:
+YY_RULE_SETUP
+#line 446 "./util/configlexer.lex"
 {
        LEXOUT(("Iunquotedstr(%s) ", yytext));
        config_start_include_glob(yytext);
@@ -3423,27 +3433,27 @@ YY_RULE_SETUP
 }
        YY_BREAK
 case YY_STATE_EOF(include_quoted):
-#line 450 "./util/configlexer.lex"
+#line 451 "./util/configlexer.lex"
 {
         yyerror("EOF inside quoted string");
         BEGIN(inc_prev);
 }
        YY_BREAK
-case 188:
+case 189:
 YY_RULE_SETUP
-#line 454 "./util/configlexer.lex"
+#line 455 "./util/configlexer.lex"
 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
        YY_BREAK
-case 189:
-/* rule 189 can match eol */
+case 190:
+/* rule 190 can match eol */
 YY_RULE_SETUP
-#line 455 "./util/configlexer.lex"
+#line 456 "./util/configlexer.lex"
 { yyerror("newline before \" in include name"); 
                                  cfg_parser->line++; BEGIN(inc_prev); }
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 457 "./util/configlexer.lex"
+#line 458 "./util/configlexer.lex"
 {
        LEXOUT(("IQE "));
        yytext[yyleng - 1] = '\0';
@@ -3453,7 +3463,7 @@ YY_RULE_SETUP
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(val):
-#line 463 "./util/configlexer.lex"
+#line 464 "./util/configlexer.lex"
 {
        LEXOUT(("LEXEOF "));
        yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
@@ -3465,33 +3475,33 @@ case YY_STATE_EOF(val):
        }
 }
        YY_BREAK
-case 191:
+case 192:
 YY_RULE_SETUP
-#line 474 "./util/configlexer.lex"
+#line 475 "./util/configlexer.lex"
 { LEXOUT(("unquotedstr(%s) ", yytext)); 
                        if(--num_args == 0) { BEGIN(INITIAL); }
                        yylval.str = strdup(yytext); return STRING_ARG; }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 478 "./util/configlexer.lex"
+#line 479 "./util/configlexer.lex"
 {
        ub_c_error_msg("unknown keyword '%s'", yytext);
        }
        YY_BREAK
-case 193:
+case 194:
 YY_RULE_SETUP
-#line 482 "./util/configlexer.lex"
+#line 483 "./util/configlexer.lex"
 {
        ub_c_error_msg("stray '%s'", yytext);
        }
        YY_BREAK
-case 194:
+case 195:
 YY_RULE_SETUP
-#line 486 "./util/configlexer.lex"
+#line 487 "./util/configlexer.lex"
 ECHO;
        YY_BREAK
-#line 3493 "<stdout>"
+#line 3503 "<stdout>"
 
        case YY_END_OF_BUFFER:
                {
@@ -3782,7 +3792,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 >= 1921 )
+                       if ( yy_current_state >= 1930 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3810,11 +3820,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 >= 1921 )
+               if ( yy_current_state >= 1930 )
                        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 == 1920);
+       yy_is_jam = (yy_current_state == 1929);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4453,7 +4463,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 486 "./util/configlexer.lex"
+#line 487 "./util/configlexer.lex"
 
 
 
index 35b7ecb69ae5e83a7416cb0282f0c8de43a8594a..074ccf5a79a30bb76a5dc84c8c2608eed3cbb48d 100644 (file)
@@ -328,6 +328,7 @@ del-holddown{COLON}         { YDVAR(1, VAR_DEL_HOLDDOWN) }
 keep-missing{COLON}            { YDVAR(1, VAR_KEEP_MISSING) }
 permit-small-holddown{COLON}   { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
 use-syslog{COLON}              { YDVAR(1, VAR_USE_SYSLOG) }
+log-identity{COLON}            { YDVAR(1, VAR_LOG_IDENTITY) }
 log-time-ascii{COLON}          { YDVAR(1, VAR_LOG_TIME_ASCII) }
 log-queries{COLON}             { YDVAR(1, VAR_LOG_QUERIES) }
 local-zone{COLON}              { YDVAR(2, VAR_LOCAL_ZONE) }
index ee7eba88e1df151afb6246b3d4a8516247498085..588db9b4113d45eb1c5305a6e9b1aa51faff84b6 100644 (file)
@@ -301,7 +301,8 @@ extern int yydebug;
     VAR_ACCESS_CONTROL_VIEW = 432,
     VAR_VIEW_FIRST = 433,
     VAR_SERVE_EXPIRED = 434,
-    VAR_FAKE_DSA = 435
+    VAR_FAKE_DSA = 435,
+    VAR_LOG_IDENTITY = 436
   };
 #endif
 /* Tokens.  */
@@ -483,6 +484,7 @@ extern int yydebug;
 #define VAR_VIEW_FIRST 433
 #define VAR_SERVE_EXPIRED 434
 #define VAR_FAKE_DSA 435
+#define VAR_LOG_IDENTITY 436
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -493,7 +495,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 497 "util/configparser.c" /* yacc.c:355  */
+#line 499 "util/configparser.c" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -510,7 +512,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 514 "util/configparser.c" /* yacc.c:358  */
+#line 516 "util/configparser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -752,21 +754,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   357
+#define YYLAST   359
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  181
+#define YYNTOKENS  182
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  191
+#define YYNNTS  192
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  365
+#define YYNRULES  367
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  547
+#define YYNSTATES  550
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   435
+#define YYMAXUTOK   436
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -818,50 +820,50 @@ static const yytype_uint8 yytranslate[] =
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180
+     175,   176,   177,   178,   179,   180,   181
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   135,   135,   135,   136,   136,   137,   137,   138,   138,
-     138,   143,   148,   149,   150,   150,   150,   151,   151,   152,
-     152,   153,   153,   154,   154,   155,   155,   155,   156,   156,
-     156,   157,   157,   158,   158,   159,   159,   160,   160,   161,
-     161,   162,   162,   163,   163,   164,   164,   165,   165,   165,
-     166,   166,   166,   167,   167,   167,   168,   168,   169,   169,
-     170,   170,   171,   171,   172,   172,   172,   173,   173,   174,
-     174,   175,   175,   175,   176,   176,   177,   177,   178,   178,
-     179,   179,   179,   180,   180,   181,   181,   182,   182,   183,
-     183,   184,   184,   185,   185,   185,   186,   186,   187,   187,
-     187,   188,   188,   188,   189,   189,   189,   190,   190,   190,
-     191,   191,   191,   192,   192,   192,   193,   193,   194,   194,
-     195,   195,   196,   196,   197,   197,   197,   198,   198,   199,
-     199,   200,   200,   201,   201,   202,   202,   202,   203,   203,
-     204,   204,   205,   205,   206,   206,   207,   209,   221,   222,
-     223,   223,   223,   223,   223,   225,   237,   238,   239,   239,
-     239,   239,   241,   255,   256,   257,   257,   257,   257,   259,
-     268,   277,   288,   297,   306,   315,   328,   343,   352,   361,
-     370,   379,   388,   397,   406,   415,   424,   433,   442,   451,
-     460,   469,   478,   485,   492,   501,   510,   524,   533,   542,
-     549,   556,   580,   588,   595,   602,   609,   616,   624,   632,
-     640,   647,   654,   663,   672,   679,   686,   694,   702,   712,
-     722,   732,   745,   756,   764,   777,   786,   795,   804,   814,
-     824,   832,   845,   854,   862,   871,   879,   892,   901,   908,
-     918,   928,   938,   948,   958,   968,   978,   988,   995,  1002,
-    1009,  1018,  1027,  1036,  1043,  1053,  1070,  1077,  1095,  1108,
-    1121,  1130,  1139,  1148,  1157,  1167,  1177,  1186,  1195,  1206,
-    1215,  1222,  1231,  1240,  1249,  1258,  1266,  1279,  1287,  1315,
-    1322,  1337,  1347,  1357,  1364,  1371,  1380,  1394,  1413,  1432,
-    1444,  1456,  1468,  1479,  1488,  1496,  1509,  1522,  1535,  1544,
-    1554,  1564,  1574,  1581,  1588,  1597,  1607,  1617,  1624,  1631,
-    1640,  1650,  1679,  1688,  1697,  1702,  1703,  1704,  1704,  1704,
-    1705,  1705,  1705,  1706,  1706,  1708,  1718,  1727,  1734,  1744,
-    1751,  1758,  1765,  1772,  1777,  1778,  1779,  1779,  1780,  1780,
-    1781,  1781,  1782,  1783,  1784,  1785,  1786,  1787,  1789,  1797,
-    1804,  1812,  1820,  1827,  1834,  1843,  1852,  1861,  1870,  1879,
-    1888,  1893,  1894,  1895,  1897,  1903
+       0,   136,   136,   136,   137,   137,   138,   138,   139,   139,
+     139,   144,   149,   150,   151,   151,   151,   152,   152,   153,
+     153,   154,   154,   155,   155,   156,   156,   156,   157,   157,
+     157,   158,   158,   159,   159,   160,   160,   161,   161,   162,
+     162,   163,   163,   164,   164,   165,   165,   166,   166,   166,
+     167,   167,   167,   168,   168,   168,   169,   169,   170,   170,
+     171,   171,   172,   172,   173,   173,   173,   174,   174,   175,
+     175,   176,   176,   176,   177,   177,   178,   178,   179,   179,
+     180,   180,   180,   181,   181,   182,   182,   183,   183,   184,
+     184,   185,   185,   186,   186,   186,   187,   187,   188,   188,
+     188,   189,   189,   189,   190,   190,   190,   191,   191,   191,
+     192,   192,   192,   193,   193,   193,   194,   194,   195,   195,
+     196,   196,   197,   197,   198,   198,   198,   199,   199,   200,
+     200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
+     205,   205,   206,   206,   207,   207,   208,   208,   210,   222,
+     223,   224,   224,   224,   224,   224,   226,   238,   239,   240,
+     240,   240,   240,   242,   256,   257,   258,   258,   258,   258,
+     260,   269,   278,   289,   298,   307,   316,   329,   344,   353,
+     362,   371,   380,   389,   398,   407,   416,   425,   434,   443,
+     452,   461,   470,   479,   486,   493,   502,   511,   525,   534,
+     543,   550,   557,   581,   589,   596,   603,   610,   617,   625,
+     633,   641,   648,   655,   664,   673,   680,   687,   695,   703,
+     713,   723,   733,   746,   757,   765,   778,   787,   796,   805,
+     815,   825,   833,   846,   855,   863,   872,   880,   893,   902,
+     909,   919,   929,   939,   949,   959,   969,   979,   989,   996,
+    1003,  1010,  1019,  1028,  1037,  1044,  1054,  1071,  1078,  1096,
+    1109,  1122,  1131,  1140,  1149,  1158,  1168,  1178,  1187,  1196,
+    1207,  1216,  1223,  1232,  1241,  1250,  1259,  1267,  1280,  1288,
+    1316,  1323,  1338,  1348,  1358,  1365,  1372,  1381,  1395,  1414,
+    1433,  1445,  1457,  1469,  1480,  1489,  1497,  1510,  1523,  1536,
+    1545,  1555,  1565,  1575,  1582,  1589,  1598,  1608,  1618,  1625,
+    1632,  1641,  1651,  1680,  1689,  1698,  1703,  1704,  1705,  1705,
+    1705,  1706,  1706,  1706,  1707,  1707,  1709,  1719,  1728,  1735,
+    1745,  1752,  1759,  1766,  1773,  1778,  1779,  1780,  1780,  1781,
+    1781,  1782,  1782,  1783,  1784,  1785,  1786,  1787,  1788,  1790,
+    1798,  1805,  1813,  1821,  1828,  1835,  1844,  1853,  1862,  1871,
+    1880,  1889,  1894,  1895,  1896,  1898,  1904,  1914
 };
 #endif
 
@@ -933,12 +935,12 @@ static const char *const yytname[] =
   "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG",
   "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION",
   "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW",
-  "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "$accept",
-  "toplevelvars", "toplevelvar", "serverstart", "contents_server",
-  "content_server", "stubstart", "contents_stub", "content_stub",
-  "forwardstart", "contents_forward", "content_forward", "viewstart",
-  "contents_view", "content_view", "server_num_threads",
-  "server_verbosity", "server_statistics_interval",
+  "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA",
+  "VAR_LOG_IDENTITY", "$accept", "toplevelvars", "toplevelvar",
+  "serverstart", "contents_server", "content_server", "stubstart",
+  "contents_stub", "content_stub", "forwardstart", "contents_forward",
+  "content_forward", "viewstart", "contents_view", "content_view",
+  "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",
@@ -1010,7 +1012,7 @@ static const char *const yytname[] =
   "dt_dnstap_log_forwarder_query_messages",
   "dt_dnstap_log_forwarder_response_messages", "pythonstart",
   "contents_py", "content_py", "py_script",
-  "server_disable_dnssec_lame_check", YY_NULLPTR
+  "server_disable_dnssec_lame_check", "server_log_identity", YY_NULLPTR
 };
 #endif
 
@@ -1037,7 +1039,7 @@ static const yytype_uint16 yytoknum[] =
      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
+     435,   436
 };
 # endif
 
@@ -1070,7 +1072,7 @@ static const yytype_int16 yypact[] =
      125,   126,   127,   128,   130,   131,   134,   163,   164,   165,
      170,   171,   172,   214,   215,   216,   217,   218,   219,   220,
      221,   222,   226,   230,   231,   254,   255,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,  -128,  -128,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
@@ -1084,32 +1086,32 @@ static const yytype_int16 yypact[] =
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,   276,   277,   299,   301,   304,  -128,  -128,  -128,
-    -128,  -128,  -128,   305,   306,   307,   308,  -128,  -128,  -128,
-    -128,  -128,   309,   310,   311,   312,  -128,  -128,  -128,  -128,
-    -128,   313,   314,   315,   316,   317,   318,   319,   320,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   321,   322,
+    -128,  -128,  -128,  -128,   277,   299,   301,   305,   306,  -128,
+    -128,  -128,  -128,  -128,  -128,   307,   308,   309,   310,  -128,
+    -128,  -128,  -128,  -128,   311,   312,   313,   314,  -128,  -128,
+    -128,  -128,  -128,   315,   316,   317,   318,   319,   320,   321,
+     322,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
+     333,   334,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,  -128,  -128,   335,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,   333,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,  -128,   336,   337,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,   334,   335,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,   338,   339,  -128,  -128,  -128,  -128,  -128,
+    -128,  -128,  -128,   340,   341,   342,   343,   344,   345,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,   336,   337,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,   338,   339,   340,   341,   342,   343,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   344,
+    -128,  -128,   346,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,   345,
-     346,   347,  -128,  -128,  -128,  -128,  -128
+    -128,  -128,   347,   348,   349,  -128,  -128,  -128,  -128,  -128
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1117,8 +1119,8 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       2,     0,     1,    11,   147,   155,   314,   360,   333,   162,
-       3,    13,   149,   157,   164,   316,   335,   362,     4,     5,
+       2,     0,     1,    11,   148,   156,   315,   361,   334,   163,
+       3,    13,   150,   158,   165,   317,   336,   363,     4,     5,
        6,    10,     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,
@@ -1132,46 +1134,46 @@ 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,     0,    12,    14,
-      15,    74,    77,    86,    16,    25,    65,    17,    78,    79,
-      36,    58,    73,    18,    19,    21,    22,    20,    23,    24,
-     108,   109,   110,   111,   112,    75,    64,    90,   107,    26,
-      27,    28,    29,    30,    66,    80,    81,    96,    52,    62,
-      53,    91,    46,    47,    48,    49,   100,   104,   116,   124,
-     135,   101,    59,    31,    32,    33,    88,   117,   118,   119,
-      34,    35,    37,    38,    40,    41,    39,   122,    42,    43,
-      44,    50,    69,   105,    83,   123,    76,   131,    84,    85,
-     102,   103,    89,    45,    67,    70,    51,    54,    92,    93,
-      68,   132,    94,    55,    56,    57,   106,   145,   146,    95,
-      63,    97,    98,    99,   133,    60,    61,    82,    71,    72,
-      87,   113,   114,   115,   120,   121,   136,   137,   139,   141,
-     142,   140,   143,   125,   127,   126,   128,   129,   130,   134,
-     144,   138,     0,     0,     0,     0,     0,   148,   150,   151,
-     152,   154,   153,     0,     0,     0,     0,   156,   158,   159,
-     160,   161,     0,     0,     0,     0,   163,   165,   166,   167,
-     168,     0,     0,     0,     0,     0,     0,     0,     0,   315,
-     317,   319,   318,   324,   320,   321,   322,   323,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
+      14,    15,    74,    77,    86,    16,    25,    65,    17,    78,
+      79,    36,    58,    73,    18,    19,    21,    22,    20,    23,
+      24,   108,   109,   110,   111,   112,    75,    64,    90,   107,
+      26,    27,    28,    29,    30,    66,    80,    81,    96,    52,
+      62,    53,    91,    46,    47,    48,    49,   100,   104,   116,
+     124,   135,   101,    59,    31,    32,    33,    88,   117,   118,
+     119,    34,    35,    37,    38,    40,    41,    39,   122,    42,
+      43,    44,    50,    69,   105,    83,   123,    76,   131,    84,
+      85,   102,   103,    89,    45,    67,    70,    51,    54,    92,
+      93,    68,   132,    94,    55,    56,    57,   106,   145,   146,
+      95,    63,    97,    98,    99,   133,    60,    61,    82,    71,
+      72,    87,   113,   114,   115,   120,   121,   136,   137,   139,
+     141,   142,   140,   143,   125,   127,   126,   128,   129,   130,
+     134,   144,   138,   147,     0,     0,     0,     0,     0,   149,
+     151,   152,   153,   155,   154,     0,     0,     0,     0,   157,
+     159,   160,   161,   162,     0,     0,     0,     0,   164,   166,
+     167,   168,   169,     0,     0,     0,     0,     0,     0,     0,
+       0,   316,   318,   320,   319,   325,   321,   322,   323,   324,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     334,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   346,   347,     0,   361,   363,   170,   169,   174,   177,
-     175,   183,   184,   187,   185,   186,   188,   189,   199,   200,
-     201,   202,   203,   223,   224,   225,   230,   231,   180,   232,
-     233,   236,   234,   235,   238,   239,   240,   253,   212,   213,
-     214,   215,   241,   256,   208,   210,   257,   263,   264,   265,
-     181,   222,   275,   276,   209,   270,   196,   176,   204,   254,
-     260,   242,     0,     0,   279,   182,   171,   195,   246,   172,
-     178,   179,   205,   206,   277,   244,   248,   249,   173,   280,
-     226,   252,   197,   211,   258,   259,   262,   269,   207,   273,
-     271,   272,   216,   221,   250,   251,   217,   218,   243,   266,
-     198,   190,   191,   192,   193,   194,   281,   282,   283,   227,
-     228,   229,   237,   284,   285,   245,   219,   365,   293,   295,
-     294,     0,     0,   298,   247,   261,   274,   299,   300,   220,
-     286,     0,     0,     0,     0,     0,     0,   267,   268,   301,
-     302,   303,   305,   304,   306,   307,   308,   309,   310,     0,
-     312,   313,   325,   327,   326,   329,   330,   331,   332,   328,
-     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,   364,   255,   278,   296,   297,   287,   288,     0,
-       0,     0,   292,   311,   291,   289,   290
+       0,     0,   335,   337,   338,   339,   340,   341,   342,   343,
+     344,   345,   346,   347,   348,     0,   362,   364,   171,   170,
+     175,   178,   176,   184,   185,   188,   186,   187,   189,   190,
+     200,   201,   202,   203,   204,   224,   225,   226,   231,   232,
+     181,   233,   234,   237,   235,   236,   239,   240,   241,   254,
+     213,   214,   215,   216,   242,   257,   209,   211,   258,   264,
+     265,   266,   182,   223,   276,   277,   210,   271,   197,   177,
+     205,   255,   261,   243,     0,     0,   280,   183,   172,   196,
+     247,   173,   179,   180,   206,   207,   278,   245,   249,   250,
+     174,   281,   227,   253,   198,   212,   259,   260,   263,   270,
+     208,   274,   272,   273,   217,   222,   251,   252,   218,   219,
+     244,   267,   199,   191,   192,   193,   194,   195,   282,   283,
+     284,   228,   229,   230,   238,   285,   286,   246,   220,   366,
+     294,   296,   295,     0,     0,   299,   248,   262,   275,   300,
+     301,   221,   287,     0,     0,     0,     0,     0,     0,   268,
+     269,   367,   302,   303,   304,   306,   305,   307,   308,   309,
+     310,   311,     0,   313,   314,   326,   328,   327,   330,   331,
+     332,   333,   329,   349,   350,   351,   352,   353,   354,   355,
+     356,   357,   358,   359,   360,   365,   256,   279,   297,   298,
+     288,   289,     0,     0,     0,   293,   312,   292,   290,   291
 };
 
   /* YYPGOTO[NTERM-NUM].  */
@@ -1196,32 +1198,32 @@ static const yytype_int8 yypgoto[] =
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
     -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
-    -128
+    -128,  -128
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,    10,    11,    18,   158,    12,    19,   297,    13,
-      20,   307,    14,    21,   316,   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,
-     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
-     284,   285,   286,   287,   288,   289,   290,   298,   299,   300,
-     301,   302,   308,   309,   310,   311,   317,   318,   319,   320,
-      15,    22,   329,   330,   331,   332,   333,   334,   335,   336,
-     337,    16,    23,   350,   351,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,    17,    24,   364,   365,
-     291
+      -1,     1,    10,    11,    18,   159,    12,    19,   299,    13,
+      20,   309,    14,    21,   318,   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,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   300,   301,   302,
+     303,   304,   310,   311,   312,   313,   319,   320,   321,   322,
+      15,    22,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,    16,    23,   352,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,    17,    24,   366,   367,
+     292,   293
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1229,42 +1231,42 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_uint16 yytable[] =
 {
-       2,   312,   292,   363,   293,   294,   303,   366,   367,   368,
-       0,     3,   369,   370,   304,   305,   338,   339,   340,   341,
-     342,   343,   344,   345,   346,   347,   348,   349,   321,   322,
-     323,   324,   325,   326,   327,   328,   371,   313,   314,   372,
-     373,     4,   374,   375,   376,   377,   378,     5,   379,   380,
-     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
-     391,   392,   393,   394,   395,   295,   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,     6,   421,   422,   296,   423,   424,   306,   425,   426,
-     427,   428,   429,   430,   431,   432,   433,     7,   434,   435,
-     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,   315,
-     465,   466,     8,     0,   467,    25,    26,    27,    28,    29,
+       2,   314,   294,   365,   295,   296,   305,   368,   369,   370,
+       0,     3,   371,   372,   306,   307,   340,   341,   342,   343,
+     344,   345,   346,   347,   348,   349,   350,   351,   323,   324,
+     325,   326,   327,   328,   329,   330,   373,   315,   316,   374,
+     375,     4,   376,   377,   378,   379,   380,     5,   381,   382,
+     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,   297,   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,     6,   423,   424,   298,   425,   426,   308,   427,   428,
+     429,   430,   431,   432,   433,   434,   435,     7,   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,   317,
+     467,   468,     8,     0,   469,    25,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,   468,   469,   470,     9,    53,    54,    55,
-     471,   472,   473,    56,    57,    58,    59,    60,    61,    62,
+      50,    51,    52,   470,   471,   472,     9,    53,    54,    55,
+     473,   474,   475,    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,
-      93,    94,    95,    96,   474,   475,   476,   477,   478,   479,
-     480,   481,   482,    97,    98,    99,   483,   100,   101,   102,
-     484,   485,   103,   104,   105,   106,   107,   108,   109,   110,
+      93,    94,    95,    96,   476,   477,   478,   479,   480,   481,
+     482,   483,   484,    97,    98,    99,   485,   100,   101,   102,
+     486,   487,   103,   104,   105,   106,   107,   108,   109,   110,
      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   486,   487,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   488,   489,   490,   491,   492,
-     493,   494,   495,   496,   497,   498,   499,   500,   134,   135,
+     121,   122,   123,   124,   488,   489,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   490,   491,   492,   493,   494,
+     495,   496,   497,   498,   499,   500,   501,   502,   134,   135,
      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   501,
-     155,   502,   156,   157,   503,   504,   505,   506,   507,   508,
-     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
-     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
-     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
-     539,   540,   541,   542,   543,   544,   545,   546
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   503,
+     155,   504,   156,   157,   158,   505,   506,   507,   508,   509,
+     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
+     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
+     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
+     540,   541,   542,   543,   544,   545,   546,   547,   548,   549
 };
 
 static const yytype_int16 yycheck[] =
@@ -1300,20 +1302,20 @@ static const yytype_int16 yycheck[] =
       10,    10,    10,    10,    10,    10,    10,    10,   155,   156,
      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
      167,   168,   169,   170,   171,   172,   173,   174,   175,    10,
-     177,    10,   179,   180,    10,    10,    10,    10,    10,    10,
+     177,    10,   179,   180,   181,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    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,   182,     0,    11,    41,    47,    91,   107,   142,   176,
-     183,   184,   187,   190,   193,   341,   352,   367,   185,   188,
-     191,   194,   342,   353,   368,    12,    13,    14,    15,    16,
+       0,   183,     0,    11,    41,    47,    91,   107,   142,   176,
+     184,   185,   188,   191,   194,   342,   353,   368,   186,   189,
+     192,   195,   343,   354,   369,    12,    13,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
       37,    38,    39,    44,    45,    46,    50,    51,    52,    53,
@@ -1326,7 +1328,7 @@ static const yytype_uint16 yystos[] =
      126,   127,   128,   129,   130,   133,   134,   135,   136,   137,
      138,   139,   140,   141,   155,   156,   157,   158,   159,   160,
      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   177,   179,   180,   186,   196,
+     171,   172,   173,   174,   175,   177,   179,   180,   181,   187,
      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,
@@ -1340,14 +1342,14 @@ static const yytype_uint16 yystos[] =
      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
-     327,   371,    40,    42,    43,   103,   132,   189,   328,   329,
-     330,   331,   332,    40,    48,    49,   131,   192,   333,   334,
-     335,   336,    40,    76,    77,   178,   195,   337,   338,   339,
-     340,    92,    93,    94,    95,    96,    97,    98,    99,   343,
-     344,   345,   346,   347,   348,   349,   350,   351,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-     364,   365,   366,   108,   369,   370,    10,    10,    10,    10,
+     327,   328,   372,   373,    40,    42,    43,   103,   132,   190,
+     329,   330,   331,   332,   333,    40,    48,    49,   131,   193,
+     334,   335,   336,   337,    40,    76,    77,   178,   196,   338,
+     339,   340,   341,    92,    93,    94,    95,    96,    97,    98,
+      99,   344,   345,   346,   347,   348,   349,   350,   351,   352,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   355,   356,   357,   358,   359,   360,   361,   362,
+     363,   364,   365,   366,   367,   108,   370,   371,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
       10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
@@ -1365,29 +1367,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
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   181,   182,   182,   183,   183,   183,   183,   183,   183,
-     183,   184,   185,   185,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   187,   188,   188,
-     189,   189,   189,   189,   189,   190,   191,   191,   192,   192,
-     192,   192,   193,   194,   194,   195,   195,   195,   195,   196,
+       0,   182,   183,   183,   184,   184,   184,   184,   184,   184,
+     184,   185,   186,   186,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   188,   189,
+     189,   190,   190,   190,   190,   190,   191,   192,   192,   193,
+     193,   193,   193,   194,   195,   195,   196,   196,   196,   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,
@@ -1402,12 +1404,12 @@ static const yytype_uint16 yyr1[] =
      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
      317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
      327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
-     337,   338,   339,   340,   341,   342,   342,   343,   343,   343,
-     343,   343,   343,   343,   343,   344,   345,   346,   347,   348,
-     349,   350,   351,   352,   353,   353,   354,   354,   354,   354,
-     354,   354,   354,   354,   354,   354,   354,   354,   355,   356,
+     337,   338,   339,   340,   341,   342,   343,   343,   344,   344,
+     344,   344,   344,   344,   344,   344,   345,   346,   347,   348,
+     349,   350,   351,   352,   353,   354,   354,   355,   355,   355,
+     355,   355,   355,   355,   355,   355,   355,   355,   355,   356,
      357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
-     367,   368,   368,   369,   370,   371
+     367,   368,   369,   369,   370,   371,   372,   373
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1427,9 +1429,9 @@ 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,     2,     0,
-       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
-       1,     1,     1,     2,     0,     1,     1,     1,     1,     2,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       0,     1,     1,     1,     1,     1,     1,     2,     0,     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,
@@ -1438,18 +1440,18 @@ static const yytype_uint8 yyr2[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     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,     3,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
-       2,     2,     2,     2,     2,     2,     2,     3,     3,     4,
-       4,     4,     3,     2,     2,     2,     3,     3,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
+       2,     2,     2,     2,     2,     2,     2,     2,     3,     3,
+       4,     4,     4,     3,     2,     2,     2,     3,     3,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     3,     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,     3,     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,
-       1,     2,     0,     1,     2,     2
+       2,     1,     2,     0,     1,     2,     2,     2
 };
 
 
@@ -2126,15 +2128,15 @@ yyreduce:
   switch (yyn)
     {
         case 11:
-#line 144 "./util/configparser.y" /* yacc.c:1646  */
+#line 145 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(server:)\n")); 
        }
-#line 2134 "util/configparser.c" /* yacc.c:1646  */
+#line 2136 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 147:
-#line 210 "./util/configparser.y" /* yacc.c:1646  */
+  case 148:
+#line 211 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(stub_zone:)\n")); 
@@ -2145,11 +2147,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2149 "util/configparser.c" /* yacc.c:1646  */
+#line 2151 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 155:
-#line 226 "./util/configparser.y" /* yacc.c:1646  */
+  case 156:
+#line 227 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_stub* s;
                OUTYY(("\nP(forward_zone:)\n")); 
@@ -2160,11 +2162,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2164 "util/configparser.c" /* yacc.c:1646  */
+#line 2166 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 162:
-#line 242 "./util/configparser.y" /* yacc.c:1646  */
+  case 163:
+#line 243 "./util/configparser.y" /* yacc.c:1646  */
     {
                struct config_view* s;
                OUTYY(("\nP(view:)\n")); 
@@ -2177,11 +2179,11 @@ yyreduce:
                } else 
                        yyerror("out of memory");
        }
-#line 2181 "util/configparser.c" /* yacc.c:1646  */
+#line 2183 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 169:
-#line 260 "./util/configparser.y" /* yacc.c:1646  */
+  case 170:
+#line 261 "./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)
@@ -2189,11 +2191,11 @@ yyreduce:
                else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2193 "util/configparser.c" /* yacc.c:1646  */
+#line 2195 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 170:
-#line 269 "./util/configparser.y" /* yacc.c:1646  */
+  case 171:
+#line 270 "./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)
@@ -2201,11 +2203,11 @@ yyreduce:
                else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2205 "util/configparser.c" /* yacc.c:1646  */
+#line 2207 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 171:
-#line 278 "./util/configparser.y" /* yacc.c:1646  */
+  case 172:
+#line 279 "./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)
@@ -2215,11 +2217,11 @@ yyreduce:
                else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2219 "util/configparser.c" /* yacc.c:1646  */
+#line 2221 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 172:
-#line 289 "./util/configparser.y" /* yacc.c:1646  */
+  case 173:
+#line 290 "./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)
@@ -2227,11 +2229,11 @@ yyreduce:
                else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2231 "util/configparser.c" /* yacc.c:1646  */
+#line 2233 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 173:
-#line 298 "./util/configparser.y" /* yacc.c:1646  */
+  case 174:
+#line 299 "./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)
@@ -2239,11 +2241,11 @@ yyreduce:
                else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2243 "util/configparser.c" /* yacc.c:1646  */
+#line 2245 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 174:
-#line 307 "./util/configparser.y" /* yacc.c:1646  */
+  case 175:
+#line 308 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2251,11 +2253,11 @@ yyreduce:
                else cfg_parser->cfg->port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2255 "util/configparser.c" /* yacc.c:1646  */
+#line 2257 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 175:
-#line 316 "./util/configparser.y" /* yacc.c:1646  */
+  case 176:
+#line 317 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_ifs == 0)
@@ -2267,11 +2269,11 @@ yyreduce:
                else
                        cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
        }
-#line 2271 "util/configparser.c" /* yacc.c:1646  */
+#line 2273 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 176:
-#line 329 "./util/configparser.y" /* yacc.c:1646  */
+  case 177:
+#line 330 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2285,11 +2287,11 @@ yyreduce:
                        cfg_parser->cfg->out_ifs[
                                cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
        }
-#line 2289 "util/configparser.c" /* yacc.c:1646  */
+#line 2291 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 177:
-#line 344 "./util/configparser.y" /* yacc.c:1646  */
+  case 178:
+#line 345 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2297,11 +2299,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2301 "util/configparser.c" /* yacc.c:1646  */
+#line 2303 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 178:
-#line 353 "./util/configparser.y" /* yacc.c:1646  */
+  case 179:
+#line 354 "./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, 
@@ -2309,11 +2311,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2313 "util/configparser.c" /* yacc.c:1646  */
+#line 2315 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 179:
-#line 362 "./util/configparser.y" /* yacc.c:1646  */
+  case 180:
+#line 363 "./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, 
@@ -2321,11 +2323,11 @@ yyreduce:
                        yyerror("port number or range (\"low-high\") expected");
                free((yyvsp[0].str));
        }
-#line 2325 "util/configparser.c" /* yacc.c:1646  */
+#line 2327 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 180:
-#line 371 "./util/configparser.y" /* yacc.c:1646  */
+  case 181:
+#line 372 "./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)
@@ -2333,11 +2335,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2337 "util/configparser.c" /* yacc.c:1646  */
+#line 2339 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 181:
-#line 380 "./util/configparser.y" /* yacc.c:1646  */
+  case 182:
+#line 381 "./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)
@@ -2345,11 +2347,11 @@ yyreduce:
                else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2349 "util/configparser.c" /* yacc.c:1646  */
+#line 2351 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 182:
-#line 389 "./util/configparser.y" /* yacc.c:1646  */
+  case 183:
+#line 390 "./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)
@@ -2357,11 +2359,11 @@ yyreduce:
                else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2361 "util/configparser.c" /* yacc.c:1646  */
+#line 2363 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 183:
-#line 398 "./util/configparser.y" /* yacc.c:1646  */
+  case 184:
+#line 399 "./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)
@@ -2369,11 +2371,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2373 "util/configparser.c" /* yacc.c:1646  */
+#line 2375 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 184:
-#line 407 "./util/configparser.y" /* yacc.c:1646  */
+  case 185:
+#line 408 "./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)
@@ -2381,11 +2383,11 @@ yyreduce:
                else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2385 "util/configparser.c" /* yacc.c:1646  */
+#line 2387 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 185:
-#line 416 "./util/configparser.y" /* yacc.c:1646  */
+  case 186:
+#line 417 "./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)
@@ -2393,11 +2395,11 @@ yyreduce:
                else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2397 "util/configparser.c" /* yacc.c:1646  */
+#line 2399 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 186:
-#line 425 "./util/configparser.y" /* yacc.c:1646  */
+  case 187:
+#line 426 "./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)
@@ -2405,11 +2407,11 @@ yyreduce:
                else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2409 "util/configparser.c" /* yacc.c:1646  */
+#line 2411 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 187:
-#line 434 "./util/configparser.y" /* yacc.c:1646  */
+  case 188:
+#line 435 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2417,11 +2419,11 @@ yyreduce:
                else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2421 "util/configparser.c" /* yacc.c:1646  */
+#line 2423 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 188:
-#line 443 "./util/configparser.y" /* yacc.c:1646  */
+  case 189:
+#line 444 "./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)
@@ -2429,11 +2431,11 @@ yyreduce:
                 else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
                 free((yyvsp[0].str));
        }
-#line 2433 "util/configparser.c" /* yacc.c:1646  */
+#line 2435 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 189:
-#line 452 "./util/configparser.y" /* yacc.c:1646  */
+  case 190:
+#line 453 "./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)
@@ -2441,11 +2443,11 @@ yyreduce:
                else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2445 "util/configparser.c" /* yacc.c:1646  */
+#line 2447 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 190:
-#line 461 "./util/configparser.y" /* yacc.c:1646  */
+  case 191:
+#line 462 "./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)
@@ -2453,11 +2455,11 @@ yyreduce:
                else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2457 "util/configparser.c" /* yacc.c:1646  */
+#line 2459 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 191:
-#line 470 "./util/configparser.y" /* yacc.c:1646  */
+  case 192:
+#line 471 "./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)
@@ -2465,31 +2467,31 @@ yyreduce:
                else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2469 "util/configparser.c" /* yacc.c:1646  */
+#line 2471 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 192:
-#line 479 "./util/configparser.y" /* yacc.c:1646  */
+  case 193:
+#line 480 "./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 2479 "util/configparser.c" /* yacc.c:1646  */
+#line 2481 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 193:
-#line 486 "./util/configparser.y" /* yacc.c:1646  */
+  case 194:
+#line 487 "./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 2489 "util/configparser.c" /* yacc.c:1646  */
+#line 2491 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 194:
-#line 493 "./util/configparser.y" /* yacc.c:1646  */
+  case 195:
+#line 494 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2497,11 +2499,11 @@ yyreduce:
                else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2501 "util/configparser.c" /* yacc.c:1646  */
+#line 2503 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 195:
-#line 502 "./util/configparser.y" /* yacc.c:1646  */
+  case 196:
+#line 503 "./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)
@@ -2509,11 +2511,11 @@ yyreduce:
                else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2513 "util/configparser.c" /* yacc.c:1646  */
+#line 2515 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 196:
-#line 511 "./util/configparser.y" /* yacc.c:1646  */
+  case 197:
+#line 512 "./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)
@@ -2526,11 +2528,11 @@ yyreduce:
 #endif
                free((yyvsp[0].str));
        }
-#line 2530 "util/configparser.c" /* yacc.c:1646  */
+#line 2532 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 197:
-#line 525 "./util/configparser.y" /* yacc.c:1646  */
+  case 198:
+#line 526 "./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)
@@ -2538,11 +2540,11 @@ yyreduce:
                else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2542 "util/configparser.c" /* yacc.c:1646  */
+#line 2544 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 198:
-#line 534 "./util/configparser.y" /* yacc.c:1646  */
+  case 199:
+#line 535 "./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)
@@ -2550,31 +2552,31 @@ yyreduce:
                else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2554 "util/configparser.c" /* yacc.c:1646  */
+#line 2556 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 199:
-#line 543 "./util/configparser.y" /* yacc.c:1646  */
+  case 200:
+#line 544 "./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 2564 "util/configparser.c" /* yacc.c:1646  */
+#line 2566 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 200:
-#line 550 "./util/configparser.y" /* yacc.c:1646  */
+  case 201:
+#line 551 "./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 2574 "util/configparser.c" /* yacc.c:1646  */
+#line 2576 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 201:
-#line 557 "./util/configparser.y" /* yacc.c:1646  */
+  case 202:
+#line 558 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
                free(cfg_parser->cfg->directory);
@@ -2597,115 +2599,115 @@ yyreduce:
                                        d, strerror(errno));
                }
        }
-#line 2601 "util/configparser.c" /* yacc.c:1646  */
+#line 2603 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 202:
-#line 581 "./util/configparser.y" /* yacc.c:1646  */
+  case 203:
+#line 582 "./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 2612 "util/configparser.c" /* yacc.c:1646  */
+#line 2614 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 203:
-#line 589 "./util/configparser.y" /* yacc.c:1646  */
+  case 204:
+#line 590 "./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 2622 "util/configparser.c" /* yacc.c:1646  */
+#line 2624 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 204:
-#line 596 "./util/configparser.y" /* yacc.c:1646  */
+  case 205:
+#line 597 "./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 2632 "util/configparser.c" /* yacc.c:1646  */
+#line 2634 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 205:
-#line 603 "./util/configparser.y" /* yacc.c:1646  */
+  case 206:
+#line 604 "./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 2642 "util/configparser.c" /* yacc.c:1646  */
+#line 2644 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 206:
-#line 610 "./util/configparser.y" /* yacc.c:1646  */
+  case 207:
+#line 611 "./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 2652 "util/configparser.c" /* yacc.c:1646  */
+#line 2654 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 207:
-#line 617 "./util/configparser.y" /* yacc.c:1646  */
+  case 208:
+#line 618 "./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 2663 "util/configparser.c" /* yacc.c:1646  */
+#line 2665 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 208:
-#line 625 "./util/configparser.y" /* yacc.c:1646  */
+  case 209:
+#line 626 "./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 2674 "util/configparser.c" /* yacc.c:1646  */
+#line 2676 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 209:
-#line 633 "./util/configparser.y" /* yacc.c:1646  */
+  case 210:
+#line 634 "./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 2685 "util/configparser.c" /* yacc.c:1646  */
+#line 2687 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 210:
-#line 641 "./util/configparser.y" /* yacc.c:1646  */
+  case 211:
+#line 642 "./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 2695 "util/configparser.c" /* yacc.c:1646  */
+#line 2697 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 211:
-#line 648 "./util/configparser.y" /* yacc.c:1646  */
+  case 212:
+#line 649 "./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 2705 "util/configparser.c" /* yacc.c:1646  */
+#line 2707 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 212:
-#line 655 "./util/configparser.y" /* yacc.c:1646  */
+  case 213:
+#line 656 "./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)
@@ -2713,11 +2715,11 @@ yyreduce:
                else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2717 "util/configparser.c" /* yacc.c:1646  */
+#line 2719 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 213:
-#line 664 "./util/configparser.y" /* yacc.c:1646  */
+  case 214:
+#line 665 "./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)
@@ -2725,53 +2727,53 @@ yyreduce:
                else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2729 "util/configparser.c" /* yacc.c:1646  */
+#line 2731 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 214:
-#line 673 "./util/configparser.y" /* yacc.c:1646  */
+  case 215:
+#line 674 "./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 2739 "util/configparser.c" /* yacc.c:1646  */
+#line 2741 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 215:
-#line 680 "./util/configparser.y" /* yacc.c:1646  */
+  case 216:
+#line 681 "./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 2749 "util/configparser.c" /* yacc.c:1646  */
+#line 2751 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 216:
-#line 687 "./util/configparser.y" /* yacc.c:1646  */
+  case 217:
+#line 688 "./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 2760 "util/configparser.c" /* yacc.c:1646  */
+#line 2762 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 217:
-#line 695 "./util/configparser.y" /* yacc.c:1646  */
+  case 218:
+#line 696 "./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 2771 "util/configparser.c" /* yacc.c:1646  */
+#line 2773 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 218:
-#line 703 "./util/configparser.y" /* yacc.c:1646  */
+  case 219:
+#line 704 "./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)
@@ -2780,11 +2782,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2784 "util/configparser.c" /* yacc.c:1646  */
+#line 2786 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 219:
-#line 713 "./util/configparser.y" /* yacc.c:1646  */
+  case 220:
+#line 714 "./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)
@@ -2793,11 +2795,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2797 "util/configparser.c" /* yacc.c:1646  */
+#line 2799 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 220:
-#line 723 "./util/configparser.y" /* yacc.c:1646  */
+  case 221:
+#line 724 "./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)
@@ -2806,11 +2808,11 @@ yyreduce:
             (strcmp((yyvsp[0].str), "yes")==0);
         free((yyvsp[0].str));
     }
-#line 2810 "util/configparser.c" /* yacc.c:1646  */
+#line 2812 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 221:
-#line 733 "./util/configparser.y" /* yacc.c:1646  */
+  case 222:
+#line 734 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2822,11 +2824,11 @@ yyreduce:
                else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2826 "util/configparser.c" /* yacc.c:1646  */
+#line 2828 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 222:
-#line 746 "./util/configparser.y" /* yacc.c:1646  */
+  case 223:
+#line 747 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2836,22 +2838,22 @@ yyreduce:
                else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2840 "util/configparser.c" /* yacc.c:1646  */
+#line 2842 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 223:
-#line 757 "./util/configparser.y" /* yacc.c:1646  */
+  case 224:
+#line 758 "./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 2851 "util/configparser.c" /* yacc.c:1646  */
+#line 2853 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 224:
-#line 765 "./util/configparser.y" /* yacc.c:1646  */
+  case 225:
+#line 766 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2863,11 +2865,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2867 "util/configparser.c" /* yacc.c:1646  */
+#line 2869 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 225:
-#line 778 "./util/configparser.y" /* yacc.c:1646  */
+  case 226:
+#line 779 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2875,11 +2877,11 @@ yyreduce:
                else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2879 "util/configparser.c" /* yacc.c:1646  */
+#line 2881 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 226:
-#line 787 "./util/configparser.y" /* yacc.c:1646  */
+  case 227:
+#line 788 "./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)
@@ -2887,11 +2889,11 @@ yyreduce:
                else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2891 "util/configparser.c" /* yacc.c:1646  */
+#line 2893 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 227:
-#line 796 "./util/configparser.y" /* yacc.c:1646  */
+  case 228:
+#line 797 "./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)
@@ -2899,11 +2901,11 @@ yyreduce:
                else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2903 "util/configparser.c" /* yacc.c:1646  */
+#line 2905 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 228:
-#line 805 "./util/configparser.y" /* yacc.c:1646  */
+  case 229:
+#line 806 "./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)
@@ -2912,11 +2914,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2916 "util/configparser.c" /* yacc.c:1646  */
+#line 2918 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 229:
-#line 815 "./util/configparser.y" /* yacc.c:1646  */
+  case 230:
+#line 816 "./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)
@@ -2925,22 +2927,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 2929 "util/configparser.c" /* yacc.c:1646  */
+#line 2931 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 230:
-#line 825 "./util/configparser.y" /* yacc.c:1646  */
+  case 231:
+#line 826 "./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 2940 "util/configparser.c" /* yacc.c:1646  */
+#line 2942 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 231:
-#line 833 "./util/configparser.y" /* yacc.c:1646  */
+  case 232:
+#line 834 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2952,11 +2954,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 2956 "util/configparser.c" /* yacc.c:1646  */
+#line 2958 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 232:
-#line 846 "./util/configparser.y" /* yacc.c:1646  */
+  case 233:
+#line 847 "./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)
@@ -2964,22 +2966,22 @@ yyreduce:
                else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2968 "util/configparser.c" /* yacc.c:1646  */
+#line 2970 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 233:
-#line 855 "./util/configparser.y" /* yacc.c:1646  */
+  case 234:
+#line 856 "./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 2979 "util/configparser.c" /* yacc.c:1646  */
+#line 2981 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 234:
-#line 863 "./util/configparser.y" /* yacc.c:1646  */
+  case 235:
+#line 864 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -2987,22 +2989,22 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 2991 "util/configparser.c" /* yacc.c:1646  */
+#line 2993 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 235:
-#line 872 "./util/configparser.y" /* yacc.c:1646  */
+  case 236:
+#line 873 "./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 3002 "util/configparser.c" /* yacc.c:1646  */
+#line 3004 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 236:
-#line 880 "./util/configparser.y" /* yacc.c:1646  */
+  case 237:
+#line 881 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3014,11 +3016,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3018 "util/configparser.c" /* yacc.c:1646  */
+#line 3020 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 237:
-#line 893 "./util/configparser.y" /* yacc.c:1646  */
+  case 238:
+#line 894 "./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)
@@ -3026,21 +3028,21 @@ yyreduce:
                else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3030 "util/configparser.c" /* yacc.c:1646  */
+#line 3032 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 238:
-#line 902 "./util/configparser.y" /* yacc.c:1646  */
+  case 239:
+#line 903 "./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 3040 "util/configparser.c" /* yacc.c:1646  */
+#line 3042 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 239:
-#line 909 "./util/configparser.y" /* yacc.c:1646  */
+  case 240:
+#line 910 "./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)
@@ -3049,11 +3051,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3053 "util/configparser.c" /* yacc.c:1646  */
+#line 3055 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 240:
-#line 919 "./util/configparser.y" /* yacc.c:1646  */
+  case 241:
+#line 920 "./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)
@@ -3062,11 +3064,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3066 "util/configparser.c" /* yacc.c:1646  */
+#line 3068 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 241:
-#line 929 "./util/configparser.y" /* yacc.c:1646  */
+  case 242:
+#line 930 "./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)
@@ -3075,11 +3077,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3079 "util/configparser.c" /* yacc.c:1646  */
+#line 3081 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 242:
-#line 939 "./util/configparser.y" /* yacc.c:1646  */
+  case 243:
+#line 940 "./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)
@@ -3088,11 +3090,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3092 "util/configparser.c" /* yacc.c:1646  */
+#line 3094 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 949 "./util/configparser.y" /* yacc.c:1646  */
+  case 244:
+#line 950 "./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)
@@ -3101,11 +3103,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3105 "util/configparser.c" /* yacc.c:1646  */
+#line 3107 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 244:
-#line 959 "./util/configparser.y" /* yacc.c:1646  */
+  case 245:
+#line 960 "./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)
@@ -3114,11 +3116,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3118 "util/configparser.c" /* yacc.c:1646  */
+#line 3120 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 245:
-#line 969 "./util/configparser.y" /* yacc.c:1646  */
+  case 246:
+#line 970 "./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)
@@ -3127,11 +3129,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3131 "util/configparser.c" /* yacc.c:1646  */
+#line 3133 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 246:
-#line 979 "./util/configparser.y" /* yacc.c:1646  */
+  case 247:
+#line 980 "./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)
@@ -3140,41 +3142,41 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3144 "util/configparser.c" /* yacc.c:1646  */
+#line 3146 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 247:
-#line 989 "./util/configparser.y" /* yacc.c:1646  */
+  case 248:
+#line 990 "./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 3154 "util/configparser.c" /* yacc.c:1646  */
+#line 3156 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 248:
-#line 996 "./util/configparser.y" /* yacc.c:1646  */
+  case 249:
+#line 997 "./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 3164 "util/configparser.c" /* yacc.c:1646  */
+#line 3166 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1003 "./util/configparser.y" /* yacc.c:1646  */
+  case 250:
+#line 1004 "./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 3174 "util/configparser.c" /* yacc.c:1646  */
+#line 3176 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 250:
-#line 1010 "./util/configparser.y" /* yacc.c:1646  */
+  case 251:
+#line 1011 "./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)
@@ -3182,11 +3184,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3186 "util/configparser.c" /* yacc.c:1646  */
+#line 3188 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 251:
-#line 1019 "./util/configparser.y" /* yacc.c:1646  */
+  case 252:
+#line 1020 "./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)
@@ -3194,11 +3196,11 @@ yyreduce:
                else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3198 "util/configparser.c" /* yacc.c:1646  */
+#line 3200 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 252:
-#line 1028 "./util/configparser.y" /* yacc.c:1646  */
+  case 253:
+#line 1029 "./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)
@@ -3206,21 +3208,21 @@ yyreduce:
                else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3210 "util/configparser.c" /* yacc.c:1646  */
+#line 3212 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 253:
-#line 1037 "./util/configparser.y" /* yacc.c:1646  */
+  case 254:
+#line 1038 "./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 3220 "util/configparser.c" /* yacc.c:1646  */
+#line 3222 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 254:
-#line 1044 "./util/configparser.y" /* yacc.c:1646  */
+  case 255:
+#line 1045 "./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)
@@ -3229,11 +3231,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3233 "util/configparser.c" /* yacc.c:1646  */
+#line 3235 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 255:
-#line 1054 "./util/configparser.y" /* yacc.c:1646  */
+  case 256:
+#line 1055 "./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 &&
@@ -3249,21 +3251,21 @@ yyreduce:
                                fatal_exit("out of memory adding acl");
                }
        }
-#line 3253 "util/configparser.c" /* yacc.c:1646  */
+#line 3255 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 256:
-#line 1071 "./util/configparser.y" /* yacc.c:1646  */
+  case 257:
+#line 1072 "./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 3263 "util/configparser.c" /* yacc.c:1646  */
+#line 3265 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 257:
-#line 1078 "./util/configparser.y" /* yacc.c:1646  */
+  case 258:
+#line 1079 "./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) {
@@ -3280,11 +3282,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3284 "util/configparser.c" /* yacc.c:1646  */
+#line 3286 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 258:
-#line 1096 "./util/configparser.y" /* yacc.c:1646  */
+  case 259:
+#line 1097 "./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) {
@@ -3296,11 +3298,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3300 "util/configparser.c" /* yacc.c:1646  */
+#line 3302 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 259:
-#line 1109 "./util/configparser.y" /* yacc.c:1646  */
+  case 260:
+#line 1110 "./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) {
@@ -3312,11 +3314,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3316 "util/configparser.c" /* yacc.c:1646  */
+#line 3318 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 260:
-#line 1122 "./util/configparser.y" /* yacc.c:1646  */
+  case 261:
+#line 1123 "./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)
@@ -3324,11 +3326,11 @@ yyreduce:
                else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3328 "util/configparser.c" /* yacc.c:1646  */
+#line 3330 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 261:
-#line 1131 "./util/configparser.y" /* yacc.c:1646  */
+  case 262:
+#line 1132 "./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)
@@ -3336,11 +3338,11 @@ yyreduce:
                else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3340 "util/configparser.c" /* yacc.c:1646  */
+#line 3342 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 262:
-#line 1140 "./util/configparser.y" /* yacc.c:1646  */
+  case 263:
+#line 1141 "./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)
@@ -3348,11 +3350,11 @@ yyreduce:
                else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3352 "util/configparser.c" /* yacc.c:1646  */
+#line 3354 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 263:
-#line 1149 "./util/configparser.y" /* yacc.c:1646  */
+  case 264:
+#line 1150 "./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)
@@ -3360,11 +3362,11 @@ yyreduce:
                else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3364 "util/configparser.c" /* yacc.c:1646  */
+#line 3366 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 264:
-#line 1158 "./util/configparser.y" /* yacc.c:1646  */
+  case 265:
+#line 1159 "./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)
@@ -3373,11 +3375,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3377 "util/configparser.c" /* yacc.c:1646  */
+#line 3379 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 265:
-#line 1168 "./util/configparser.y" /* yacc.c:1646  */
+  case 266:
+#line 1169 "./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)
@@ -3386,11 +3388,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3390 "util/configparser.c" /* yacc.c:1646  */
+#line 3392 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 266:
-#line 1178 "./util/configparser.y" /* yacc.c:1646  */
+  case 267:
+#line 1179 "./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)
@@ -3398,11 +3400,11 @@ yyreduce:
                else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3402 "util/configparser.c" /* yacc.c:1646  */
+#line 3404 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 267:
-#line 1187 "./util/configparser.y" /* yacc.c:1646  */
+  case 268:
+#line 1188 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3410,11 +3412,11 @@ yyreduce:
                else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3414 "util/configparser.c" /* yacc.c:1646  */
+#line 3416 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 268:
-#line 1196 "./util/configparser.y" /* yacc.c:1646  */
+  case 269:
+#line 1197 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3424,11 +3426,11 @@ yyreduce:
                        log_warn("test option fake_dsa is enabled");
                free((yyvsp[0].str));
        }
-#line 3428 "util/configparser.c" /* yacc.c:1646  */
+#line 3430 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 269:
-#line 1207 "./util/configparser.y" /* yacc.c:1646  */
+  case 270:
+#line 1208 "./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)
@@ -3436,21 +3438,21 @@ yyreduce:
                else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3440 "util/configparser.c" /* yacc.c:1646  */
+#line 3442 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 270:
-#line 1216 "./util/configparser.y" /* yacc.c:1646  */
+  case 271:
+#line 1217 "./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 3450 "util/configparser.c" /* yacc.c:1646  */
+#line 3452 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 271:
-#line 1223 "./util/configparser.y" /* yacc.c:1646  */
+  case 272:
+#line 1224 "./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)
@@ -3458,11 +3460,11 @@ yyreduce:
                else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3462 "util/configparser.c" /* yacc.c:1646  */
+#line 3464 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 272:
-#line 1232 "./util/configparser.y" /* yacc.c:1646  */
+  case 273:
+#line 1233 "./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)
@@ -3470,11 +3472,11 @@ yyreduce:
                else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3474 "util/configparser.c" /* yacc.c:1646  */
+#line 3476 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 273:
-#line 1241 "./util/configparser.y" /* yacc.c:1646  */
+  case 274:
+#line 1242 "./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)
@@ -3482,11 +3484,11 @@ yyreduce:
                else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3486 "util/configparser.c" /* yacc.c:1646  */
+#line 3488 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 274:
-#line 1250 "./util/configparser.y" /* yacc.c:1646  */
+  case 275:
+#line 1251 "./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)
@@ -3495,22 +3497,22 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3499 "util/configparser.c" /* yacc.c:1646  */
+#line 3501 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 275:
-#line 1259 "./util/configparser.y" /* yacc.c:1646  */
+  case 276:
+#line 1260 "./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 3510 "util/configparser.c" /* yacc.c:1646  */
+#line 3512 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 276:
-#line 1267 "./util/configparser.y" /* yacc.c:1646  */
+  case 277:
+#line 1268 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3522,22 +3524,22 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3526 "util/configparser.c" /* yacc.c:1646  */
+#line 3528 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 277:
-#line 1280 "./util/configparser.y" /* yacc.c:1646  */
+  case 278:
+#line 1281 "./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 3537 "util/configparser.c" /* yacc.c:1646  */
+#line 3539 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 278:
-#line 1288 "./util/configparser.y" /* yacc.c:1646  */
+  case 279:
+#line 1289 "./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 &&
@@ -3564,21 +3566,21 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 3568 "util/configparser.c" /* yacc.c:1646  */
+#line 3570 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 279:
-#line 1316 "./util/configparser.y" /* yacc.c:1646  */
+  case 280:
+#line 1317 "./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 3578 "util/configparser.c" /* yacc.c:1646  */
+#line 3580 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 280:
-#line 1323 "./util/configparser.y" /* yacc.c:1646  */
+  case 281:
+#line 1324 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* ptr;
                OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -3592,11 +3594,11 @@ yyreduce:
                        yyerror("local-data-ptr could not be reversed");
                }
        }
-#line 3596 "util/configparser.c" /* yacc.c:1646  */
+#line 3598 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 281:
-#line 1338 "./util/configparser.y" /* yacc.c:1646  */
+  case 282:
+#line 1339 "./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)
@@ -3605,11 +3607,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3609 "util/configparser.c" /* yacc.c:1646  */
+#line 3611 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 282:
-#line 1348 "./util/configparser.y" /* yacc.c:1646  */
+  case 283:
+#line 1349 "./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)
@@ -3618,31 +3620,31 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3622 "util/configparser.c" /* yacc.c:1646  */
+#line 3624 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1358 "./util/configparser.y" /* yacc.c:1646  */
+  case 284:
+#line 1359 "./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 3632 "util/configparser.c" /* yacc.c:1646  */
+#line 3634 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 284:
-#line 1365 "./util/configparser.y" /* yacc.c:1646  */
+  case 285:
+#line 1366 "./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 3642 "util/configparser.c" /* yacc.c:1646  */
+#line 3644 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 285:
-#line 1372 "./util/configparser.y" /* yacc.c:1646  */
+  case 286:
+#line 1373 "./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)
@@ -3650,11 +3652,11 @@ yyreduce:
                else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3654 "util/configparser.c" /* yacc.c:1646  */
+#line 3656 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 286:
-#line 1381 "./util/configparser.y" /* yacc.c:1646  */
+  case 287:
+#line 1382 "./util/configparser.y" /* yacc.c:1646  */
     {
                char* p, *s = (yyvsp[0].str);
                OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -3667,11 +3669,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3671 "util/configparser.c" /* yacc.c:1646  */
+#line 3673 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 287:
-#line 1395 "./util/configparser.y" /* yacc.c:1646  */
+  case 288:
+#line 1396 "./util/configparser.y" /* yacc.c:1646  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3689,11 +3691,11 @@ yyreduce:
                        }
                }
        }
-#line 3693 "util/configparser.c" /* yacc.c:1646  */
+#line 3695 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 288:
-#line 1414 "./util/configparser.y" /* yacc.c:1646  */
+  case 289:
+#line 1415 "./util/configparser.y" /* yacc.c:1646  */
     {
                size_t len = 0;
                uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3711,11 +3713,11 @@ yyreduce:
                        }
                }
        }
-#line 3715 "util/configparser.c" /* yacc.c:1646  */
+#line 3717 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 289:
-#line 1433 "./util/configparser.y" /* yacc.c:1646  */
+  case 290:
+#line 1434 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -3726,11 +3728,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3730 "util/configparser.c" /* yacc.c:1646  */
+#line 3732 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 290:
-#line 1445 "./util/configparser.y" /* yacc.c:1646  */
+  case 291:
+#line 1446 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -3741,11 +3743,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3745 "util/configparser.c" /* yacc.c:1646  */
+#line 3747 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 291:
-#line 1457 "./util/configparser.y" /* yacc.c:1646  */
+  case 292:
+#line 1458 "./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,
@@ -3756,11 +3758,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3760 "util/configparser.c" /* yacc.c:1646  */
+#line 3762 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 292:
-#line 1469 "./util/configparser.y" /* yacc.c:1646  */
+  case 293:
+#line 1470 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -3770,11 +3772,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 3774 "util/configparser.c" /* yacc.c:1646  */
+#line 3776 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 293:
-#line 1480 "./util/configparser.y" /* yacc.c:1646  */
+  case 294:
+#line 1481 "./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)
@@ -3782,22 +3784,22 @@ yyreduce:
                else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3786 "util/configparser.c" /* yacc.c:1646  */
+#line 3788 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1489 "./util/configparser.y" /* yacc.c:1646  */
+  case 295:
+#line 1490 "./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 3797 "util/configparser.c" /* yacc.c:1646  */
+#line 3799 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1497 "./util/configparser.y" /* yacc.c:1646  */
+  case 296:
+#line 1498 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -3809,11 +3811,11 @@ yyreduce:
                }
                free((yyvsp[0].str));
        }
-#line 3813 "util/configparser.c" /* yacc.c:1646  */
+#line 3815 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 296:
-#line 1510 "./util/configparser.y" /* yacc.c:1646  */
+  case 297:
+#line 1511 "./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) {
@@ -3825,11 +3827,11 @@ yyreduce:
                                        "ratelimit-for-domain");
                }
        }
-#line 3829 "util/configparser.c" /* yacc.c:1646  */
+#line 3831 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 297:
-#line 1523 "./util/configparser.y" /* yacc.c:1646  */
+  case 298:
+#line 1524 "./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) {
@@ -3841,11 +3843,11 @@ yyreduce:
                                        "ratelimit-below-domain");
                }
        }
-#line 3845 "util/configparser.c" /* yacc.c:1646  */
+#line 3847 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 298:
-#line 1536 "./util/configparser.y" /* yacc.c:1646  */
+  case 299:
+#line 1537 "./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)
@@ -3853,11 +3855,11 @@ yyreduce:
                else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 3857 "util/configparser.c" /* yacc.c:1646  */
+#line 3859 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1545 "./util/configparser.y" /* yacc.c:1646  */
+  case 300:
+#line 1546 "./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)
@@ -3866,11 +3868,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3870 "util/configparser.c" /* yacc.c:1646  */
+#line 3872 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1555 "./util/configparser.y" /* yacc.c:1646  */
+  case 301:
+#line 1556 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3879,11 +3881,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3883 "util/configparser.c" /* yacc.c:1646  */
+#line 3885 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 301:
-#line 1565 "./util/configparser.y" /* yacc.c:1646  */
+  case 302:
+#line 1566 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->stubs->name)
@@ -3892,31 +3894,31 @@ yyreduce:
                free(cfg_parser->cfg->stubs->name);
                cfg_parser->cfg->stubs->name = (yyvsp[0].str);
        }
-#line 3896 "util/configparser.c" /* yacc.c:1646  */
+#line 3898 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 302:
-#line 1575 "./util/configparser.y" /* yacc.c:1646  */
+  case 303:
+#line 1576 "./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 3906 "util/configparser.c" /* yacc.c:1646  */
+#line 3908 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 303:
-#line 1582 "./util/configparser.y" /* yacc.c:1646  */
+  case 304:
+#line 1583 "./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 3916 "util/configparser.c" /* yacc.c:1646  */
+#line 3918 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 304:
-#line 1589 "./util/configparser.y" /* yacc.c:1646  */
+  case 305:
+#line 1590 "./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)
@@ -3924,11 +3926,11 @@ yyreduce:
                else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3928 "util/configparser.c" /* yacc.c:1646  */
+#line 3930 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 305:
-#line 1598 "./util/configparser.y" /* yacc.c:1646  */
+  case 306:
+#line 1599 "./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)
@@ -3937,11 +3939,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3941 "util/configparser.c" /* yacc.c:1646  */
+#line 3943 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 306:
-#line 1608 "./util/configparser.y" /* yacc.c:1646  */
+  case 307:
+#line 1609 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->forwards->name)
@@ -3950,31 +3952,31 @@ yyreduce:
                free(cfg_parser->cfg->forwards->name);
                cfg_parser->cfg->forwards->name = (yyvsp[0].str);
        }
-#line 3954 "util/configparser.c" /* yacc.c:1646  */
+#line 3956 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 307:
-#line 1618 "./util/configparser.y" /* yacc.c:1646  */
+  case 308:
+#line 1619 "./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 3964 "util/configparser.c" /* yacc.c:1646  */
+#line 3966 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 308:
-#line 1625 "./util/configparser.y" /* yacc.c:1646  */
+  case 309:
+#line 1626 "./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 3974 "util/configparser.c" /* yacc.c:1646  */
+#line 3976 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 309:
-#line 1632 "./util/configparser.y" /* yacc.c:1646  */
+  case 310:
+#line 1633 "./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)
@@ -3982,11 +3984,11 @@ yyreduce:
                else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 3986 "util/configparser.c" /* yacc.c:1646  */
+#line 3988 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 310:
-#line 1641 "./util/configparser.y" /* yacc.c:1646  */
+  case 311:
+#line 1642 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
                if(cfg_parser->cfg->views->name)
@@ -3995,11 +3997,11 @@ yyreduce:
                free(cfg_parser->cfg->views->name);
                cfg_parser->cfg->views->name = (yyvsp[0].str);
        }
-#line 3999 "util/configparser.c" /* yacc.c:1646  */
+#line 4001 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 311:
-#line 1651 "./util/configparser.y" /* yacc.c:1646  */
+  case 312:
+#line 1652 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -4027,11 +4029,11 @@ yyreduce:
                                fatal_exit("out of memory adding local-zone");
                }
        }
-#line 4031 "util/configparser.c" /* yacc.c:1646  */
+#line 4033 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 312:
-#line 1680 "./util/configparser.y" /* yacc.c:1646  */
+  case 313:
+#line 1681 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
                if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
@@ -4039,11 +4041,11 @@ yyreduce:
                        free((yyvsp[0].str));
                }
        }
-#line 4043 "util/configparser.c" /* yacc.c:1646  */
+#line 4045 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 313:
-#line 1689 "./util/configparser.y" /* yacc.c:1646  */
+  case 314:
+#line 1690 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
                if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4051,19 +4053,19 @@ yyreduce:
                else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4055 "util/configparser.c" /* yacc.c:1646  */
+#line 4057 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 314:
-#line 1698 "./util/configparser.y" /* yacc.c:1646  */
+  case 315:
+#line 1699 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(remote-control:)\n")); 
        }
-#line 4063 "util/configparser.c" /* yacc.c:1646  */
+#line 4065 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 325:
-#line 1709 "./util/configparser.y" /* yacc.c:1646  */
+  case 326:
+#line 1710 "./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)
@@ -4072,11 +4074,11 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4076 "util/configparser.c" /* yacc.c:1646  */
+#line 4078 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 326:
-#line 1719 "./util/configparser.y" /* yacc.c:1646  */
+  case 327:
+#line 1720 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
                if(atoi((yyvsp[0].str)) == 0)
@@ -4084,21 +4086,21 @@ yyreduce:
                else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
                free((yyvsp[0].str));
        }
-#line 4088 "util/configparser.c" /* yacc.c:1646  */
+#line 4090 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 327:
-#line 1728 "./util/configparser.y" /* yacc.c:1646  */
+  case 328:
+#line 1729 "./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 4098 "util/configparser.c" /* yacc.c:1646  */
+#line 4100 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 328:
-#line 1735 "./util/configparser.y" /* yacc.c:1646  */
+  case 329:
+#line 1736 "./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)
@@ -4107,122 +4109,122 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4111 "util/configparser.c" /* yacc.c:1646  */
+#line 4113 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 329:
-#line 1745 "./util/configparser.y" /* yacc.c:1646  */
+  case 330:
+#line 1746 "./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 4121 "util/configparser.c" /* yacc.c:1646  */
+#line 4123 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 330:
-#line 1752 "./util/configparser.y" /* yacc.c:1646  */
+  case 331:
+#line 1753 "./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 4131 "util/configparser.c" /* yacc.c:1646  */
+#line 4133 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 331:
-#line 1759 "./util/configparser.y" /* yacc.c:1646  */
+  case 332:
+#line 1760 "./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 4141 "util/configparser.c" /* yacc.c:1646  */
+#line 4143 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 332:
-#line 1766 "./util/configparser.y" /* yacc.c:1646  */
+  case 333:
+#line 1767 "./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 4151 "util/configparser.c" /* yacc.c:1646  */
+#line 4153 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 333:
-#line 1773 "./util/configparser.y" /* yacc.c:1646  */
+  case 334:
+#line 1774 "./util/configparser.y" /* yacc.c:1646  */
     {
                OUTYY(("\nP(dnstap:)\n"));
        }
-#line 4159 "util/configparser.c" /* yacc.c:1646  */
+#line 4161 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 348:
-#line 1790 "./util/configparser.y" /* yacc.c:1646  */
+  case 349:
+#line 1791 "./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 4170 "util/configparser.c" /* yacc.c:1646  */
+#line 4172 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 349:
-#line 1798 "./util/configparser.y" /* yacc.c:1646  */
+  case 350:
+#line 1799 "./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 4180 "util/configparser.c" /* yacc.c:1646  */
+#line 4182 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 350:
-#line 1805 "./util/configparser.y" /* yacc.c:1646  */
+  case 351:
+#line 1806 "./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 4191 "util/configparser.c" /* yacc.c:1646  */
+#line 4193 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 351:
-#line 1813 "./util/configparser.y" /* yacc.c:1646  */
+  case 352:
+#line 1814 "./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 4202 "util/configparser.c" /* yacc.c:1646  */
+#line 4204 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 352:
-#line 1821 "./util/configparser.y" /* yacc.c:1646  */
+  case 353:
+#line 1822 "./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 4212 "util/configparser.c" /* yacc.c:1646  */
+#line 4214 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 353:
-#line 1828 "./util/configparser.y" /* yacc.c:1646  */
+  case 354:
+#line 1829 "./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 4222 "util/configparser.c" /* yacc.c:1646  */
+#line 4224 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 354:
-#line 1835 "./util/configparser.y" /* yacc.c:1646  */
+  case 355:
+#line 1836 "./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)
@@ -4230,11 +4232,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4234 "util/configparser.c" /* yacc.c:1646  */
+#line 4236 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 355:
-#line 1844 "./util/configparser.y" /* yacc.c:1646  */
+  case 356:
+#line 1845 "./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)
@@ -4242,11 +4244,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_resolver_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4246 "util/configparser.c" /* yacc.c:1646  */
+#line 4248 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 356:
-#line 1853 "./util/configparser.y" /* yacc.c:1646  */
+  case 357:
+#line 1854 "./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)
@@ -4254,11 +4256,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4258 "util/configparser.c" /* yacc.c:1646  */
+#line 4260 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 357:
-#line 1862 "./util/configparser.y" /* yacc.c:1646  */
+  case 358:
+#line 1863 "./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)
@@ -4266,11 +4268,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_client_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4270 "util/configparser.c" /* yacc.c:1646  */
+#line 4272 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 358:
-#line 1871 "./util/configparser.y" /* yacc.c:1646  */
+  case 359:
+#line 1872 "./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)
@@ -4278,11 +4280,11 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4282 "util/configparser.c" /* yacc.c:1646  */
+#line 4284 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 359:
-#line 1880 "./util/configparser.y" /* yacc.c:1646  */
+  case 360:
+#line 1881 "./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)
@@ -4290,29 +4292,29 @@ yyreduce:
                else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
                        (strcmp((yyvsp[0].str), "yes")==0);
        }
-#line 4294 "util/configparser.c" /* yacc.c:1646  */
+#line 4296 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 360:
-#line 1889 "./util/configparser.y" /* yacc.c:1646  */
+  case 361:
+#line 1890 "./util/configparser.y" /* yacc.c:1646  */
     { 
                OUTYY(("\nP(python:)\n")); 
        }
-#line 4302 "util/configparser.c" /* yacc.c:1646  */
+#line 4304 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 364:
-#line 1898 "./util/configparser.y" /* yacc.c:1646  */
+  case 365:
+#line 1899 "./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 4312 "util/configparser.c" /* yacc.c:1646  */
+#line 4314 "util/configparser.c" /* yacc.c:1646  */
     break;
 
-  case 365:
-#line 1904 "./util/configparser.y" /* yacc.c:1646  */
+  case 366:
+#line 1905 "./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)
@@ -4321,11 +4323,21 @@ yyreduce:
                        (strcmp((yyvsp[0].str), "yes")==0);
                free((yyvsp[0].str));
        }
-#line 4325 "util/configparser.c" /* yacc.c:1646  */
+#line 4327 "util/configparser.c" /* yacc.c:1646  */
+    break;
+
+  case 367:
+#line 1915 "./util/configparser.y" /* yacc.c:1646  */
+    {
+               OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
+               free(cfg_parser->cfg->log_identity);
+               cfg_parser->cfg->log_identity = (yyvsp[0].str);
+       }
+#line 4337 "util/configparser.c" /* yacc.c:1646  */
     break;
 
 
-#line 4329 "util/configparser.c" /* yacc.c:1646  */
+#line 4341 "util/configparser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4553,7 +4565,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1912 "./util/configparser.y" /* yacc.c:1906  */
+#line 1921 "./util/configparser.y" /* yacc.c:1906  */
 
 
 /* parse helper routines could be here */
index d1aa32b7264044a3ba073d934a6189cbb33728c1..16d8e1c36dd4df8bf0fa7165b535d948cbf33675 100644 (file)
@@ -222,7 +222,8 @@ extern int yydebug;
     VAR_ACCESS_CONTROL_VIEW = 432,
     VAR_VIEW_FIRST = 433,
     VAR_SERVE_EXPIRED = 434,
-    VAR_FAKE_DSA = 435
+    VAR_FAKE_DSA = 435,
+    VAR_LOG_IDENTITY = 436
   };
 #endif
 /* Tokens.  */
@@ -404,6 +405,7 @@ extern int yydebug;
 #define VAR_VIEW_FIRST 433
 #define VAR_SERVE_EXPIRED 434
 #define VAR_FAKE_DSA 435
+#define VAR_LOG_IDENTITY 436
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -414,7 +416,7 @@ union YYSTYPE
 
        char*   str;
 
-#line 418 "util/configparser.h" /* yacc.c:1909  */
+#line 420 "util/configparser.h" /* yacc.c:1909  */
 };
 
 typedef union YYSTYPE YYSTYPE;
index 6ac12b5f9ec256c5ebbf91fd14812d2516401ed7..2a3df28914f44c52769e668ddd0fb16a2c23ec37 100644 (file)
@@ -130,6 +130,7 @@ extern struct config_parser_state* cfg_parser;
 %token VAR_LOCAL_ZONE_OVERRIDE VAR_ACCESS_CONTROL_TAG_ACTION
 %token VAR_ACCESS_CONTROL_TAG_DATA VAR_VIEW VAR_ACCESS_CONTROL_VIEW
 %token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_FAKE_DSA
+%token VAR_LOG_IDENTITY
 
 %%
 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -204,7 +205,7 @@ content_server: server_num_threads | server_verbosity | server_port |
        server_local_zone_override | server_access_control_tag_action |
        server_access_control_tag_data | server_access_control_view |
        server_qname_minimisation_strict | server_serve_expired |
-       server_fake_dsa
+       server_fake_dsa | server_log_identity
        ;
 stubstart: VAR_STUB_ZONE
        {
@@ -1909,6 +1910,14 @@ server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG
                        (strcmp($2, "yes")==0);
                free($2);
        }
+       ;
+server_log_identity: VAR_LOG_IDENTITY STRING_ARG
+       {
+               OUTYY(("P(server_log_identity:%s)\n", $2));
+               free(cfg_parser->cfg->log_identity);
+               cfg_parser->cfg->log_identity = $2;
+       }
+       ;
 %%
 
 /* parse helper routines could be here */